Skip to main content
ClaudeWave
Skill1.4k repo starsupdated today

aiprompts

The aiprompts skill is a design proposal document for a Lime Web/Browser Scene Skill system that standardizes how to integrate web access capabilities into Lime's product architecture. Use this when building reusable web-based scene skills that involve opening pages, extracting content, and saving artifacts, as it provides a framework for separating concerns between scene skills, site adapters, browser runtime, and artifact viewers while preventing architectural duplication across multiple website-specific implementations.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/limecloud/lime /tmp/aiprompts && cp -r /tmp/aiprompts/internal/aiprompts/web-browser-scene- ~/.claude/skills/aiprompts
Then start a new Claude Code session; the skill loads automatically.

web-browser-scene-skill.md

# Lime Web / Browser Scene Skill 设计提案

## 这份文档回答什么

本文件把外部 `web-access` 一类 skill 仓库里值得借鉴的内容,翻译成 Lime 自己可长期演进的设计语言,主要回答:

- 外部 Web skill 对 Lime 到底有什么帮助
- 哪些能力适合吸收进 Lime,哪些不应该直接引入
- `Scene Skill`、`site-adapter`、浏览器运行时、`a2ui`、产物保存之间应该如何解耦
- 面向网页读取、登录态访问、长文导出、素材保存这类场景时,Lime 应该如何做一套可复用主线

它是 `skill-standard.md`、`site-adapter-standard.md`、`command-runtime.md` 的专题补充文档。

## 什么时候先读

出现以下任一情况时,先读本文件,再决定是否写代码:

- 想新增一个“输入网址 -> 打开页面 -> 抽取内容 -> 保存产物”的 slash scene
- 想把浏览器读取、登录态访问、页面导出、图片下载做成可复用技能
- 想参考外部 `SKILL.md` 仓库改 Lime 的网页能力
- 想把某个网页导出需求做成长期产品能力,而不是一次性脚本
- 想给 `site-adapter` 增加预热、滚动、懒加载等待、媒体下载等通用能力

## 设计结论

### 1. 外部 `web-access` / Agent Skills 对 Lime 有帮助,但不能直接替代 Lime 运行时

可以借鉴的部分:

- Agent Skills 包结构
- Skill 作为 bundle 的组织方式
- 前置检查、站点经验、工具选择策略
- 针对动态页面的预热、滚动、媒体提取思路
- “像人一样判断是否完成任务”的流程设计

不应直接引入的部分:

- 外部自带的 CDP proxy / daemon / HTTP API
- 外部工具仓库定义的运行时协议
- 外部环境变量约定和执行入口
- 把外部 `SKILL.md` 或 SkillToolset 直接当成 Lime 产品事实源

### 2. Lime 的长期真相仍然是 `Scene Skill`

网页类 slash 场景的长期真相必须保持为:

`scene -> gate request -> a2ui -> Scene Skill -> site-adapter -> Lime runtime -> artifact/viewer`

固定边界如下:

- `Scene Skill` 负责产品语义、流程推进、步骤回放
- `gate request` 负责声明缺什么输入、补完后如何恢复
- `a2ui` 只负责收集输入,不负责定义协议
- `site-adapter` 负责页面执行与抽取,不负责产品命名
- Lime 浏览器运行时负责 CDP / session / tab 生命周期
- viewer 只消费产物,不反向定义运行时

### 3. 先做“通用网页场景框架”,再挂具体站点能力

不要为了 X、公众号、知乎分别长三套流程。

应该先沉淀一套通用 Web / Browser Scene Skill 框架,再把不同站点的差异下沉到:

- `site-adapter`
- `references/site-patterns`
- 运行时 helper
- 抽取后处理器

## 标准分层

### 1. Scene Skill 层

职责:

- 定义对用户可见的场景名称、说明、产物语义
- 组织完整流程
- 在对话中回放步骤,而不是把过程藏进工具卡
- 统一声明补参需求

推荐模式组合:

- 主模式使用 `Pipeline`
- 缺参使用 `Inversion`
- 产物输出使用 `Generator`
- 站点 / 浏览器能力封装使用 `Tool Wrapper`

### 2. Gate Request 层

职责:

- 表达缺失输入
- 表达字段校验规则
- 表达恢复点和继续执行条件

建议最小字段:

- `url`
- `project_id` 或等价项目上下文
- `target_language`
- `save_mode`
- `include_images`
- `overwrite_existing`

固定原则:

- `gate request` 是输入协议真相
- `a2ui` 是 GUI 映射层
- 不把表单结构写死进 skill catalog 或 site-adapter 参数

### 3. Site Adapter 层

职责:

- 页面进入
- DOM 预热
- 长页滚动
- 懒加载资源等待
- 内容抽取
- 标准化返回 `markdown_bundle` / `saved_content`

站点差异应优先留在这里,而不是上浮到 slash scene。

### 4. Runtime Helper 层

职责:

- 提供所有动态页面通用的执行辅助能力
- 不带业务语义
- 不带站点命名

适合沉淀的 helper:

- `waitForDomStable`
- `scrollUntilSettled`
- `waitForImagesReady`
- `resolveRoot`
- 延迟代码块与媒体的完整性检测

### 5. Artifact / Viewer 层

职责:

- 展示最终保存产物
- 优先打开项目内真实文件
- 渲染 Markdown 中的相对图片路径
- 不把过程状态冒充成最终产物

固定原则:

- 真正产物必须落项目目录
- 预览应打开保存后的 Markdown,而不是临时摘要
- 图片应作为同一产物包的一部分被渲染

## 推荐目录结构

对于一个长期可维护的 Web / Browser Scene Skill,建议目录按下面拆:

```text
skill/
├── SKILL.md
├── references/
│   ├── tool-routing.md
│   ├── site-patterns/
│   │   ├── x.com.md
│   │   └── ...
│   └── gotchas.md
├── templates/
│   └── markdown-export-template.md
├── examples/
│   └── export-result-example.md
└── scripts/
    └── validate-output.mjs
```

说明:

- `SKILL.md` 只放触发、路由、流程规则
- 工具选择矩阵放 `references/tool-routing.md`
- 站点经验放 `references/site-patterns/`
- 输出结构放 `templates/`
- 产物校验可放 `scripts/`

这里的 `SKILL.md` 应优先理解为 **Agent Skills 兼容包入口**,不是 Lime 最终运行时协议。

## 推荐流程主线

以下流程适用于“导出网页内容并保存为 Markdown”这一整类场景,而不只适用于 X。

### Step 1. 命中 Scene Skill

入口可以是:

- slash 场景
- 技能中心
- 输入框里的 URL 场景联想

但命中后统一收口到同一个 `Scene Skill`,不要在多个入口各写一套流程。

### Step 2. 产出 Gate Request

如果缺少以下任一信息,就先产出结构化 `gate request`:

- 目标 URL
- 目标项目
- 保存语言
- 是否下载图片

前端再把它映射成 `a2ui` 表单。

### Step 3. 运行时预检查

运行时预检查应该是 Lime 自己的过程步骤,而不是外部脚本真相。

适合检查:

- 当前是否有可用浏览器会话
- 当前站点是否需要登录态
- 当前项目是否允许落盘
- 当前 skill 所需参数是否已经补齐

这些步骤应回放到对话里。

### Step 4. 预热页面

在 `site-adapter` 里先做通用预热:

1. 等待 DOM 稳定
2. 滚动到稳定
3. 再次等待 DOM 稳定
4. 等待图片资源就绪
5. 再进入抽取

不要把这段逻辑写死在某个 slash 场景组件里。

### Step 5. 抽取标准内容

标准抽取至少包括:

- 标题
- 作者 / 来源
- 发布时间
- 正文段落
- 代码块
- 图片列表
- 封面或头图
- 源地址与 slug

抽取结果应标准化为:

- 主 Markdown 文档
- 媒体资源列表
- 元数据文件

### Step 6. 后处理

后处理不重新抓站点,只消费已保存结果。

推荐能力:

- 翻译为目标语言
- 保留 fenced code block
- 保留相对图片路径
- 清理无意义包装文案
- 校验代码块和图片是否缺失

### Step 7. 保存与预览

推荐保存结构:

```text
exports/<scene-key>/<slug>/
├── index.md
├── meta.json
└── images/
    ├── 001.jpg
    └── ...
```

viewer 打开时应优先定位:

- `index.md`
- 与其同目录的 `images/`

而不是打开工具过程或中间摘要。

## 外部 `web-access` 最值得吸收的四类内容

### 1. 工具选择矩阵

外部 skill 的价值之一,是把“什么时候用搜索、什么时候直接进浏览器、什么时候要读真实页面”讲清楚。

在 Lime 中,这些内容适合沉淀到:

- `references/tool-routing.md`
- 运行时提示词模板
- 站点 gotchas

而不适合直接写死在前端 if/else。

### 2. 站点经验库

不同站点的注意事项应留在 `references/site-patterns/` 一类位置,例如:

- URL 模式
- 登录前后差异
- 懒加载行为
- 代码块或图片常见丢失模式

这类内容是高信号知识,适合作为长期资产。

### 3. 动态页面预热思路

外部 skill 里“先滚动、等稳定、再提取”的思路非常值得保留,但应下沉为 Lime runtime helper,而不是保留外部 daemon。

### 4. 最小侵入原则

默认不打扰用户已有 tab、尽量使用受控 tab、完成后回收临时上下文,这类原则适合写进 Lime 的浏览器场景规范。

## 明确不要做的事情

- 不引入第二套浏览器 runtime
- 不在 Lime 内部再接一套外部 daemon
- 不把外部 `SKILL.md` 当成 Lime 协议
- 不把站点逻辑写死在 slash 组件里
- 不把缺参逻辑写成散落的弹窗或 toast
- 不让 viewer 打开“过程卡”冒充最终产物
- 不让翻译、摘要、抽取互相重抓站点

## 面向实现的推荐拆分

### A. 通用层

- Scene Skill 标准输入
- `gate request -> a2ui` 映射
- 通用预热 helper
- 通用 Markdown 产物协议
- 通用图片下载器

### B. 站点层

- X 长文导出
- 公众号文章导出
- 博客 / 文档页面导出

### C. 后处理层

- 翻译
- 结构校验
- 产物预览

这三层应保持单向依赖:

`scene -> adapter/helper -> post-process -> artifact`

不要反过来让 post-process 定义 scene 协议。

## 当前建议

对 Lime 当前阶段,最合适的路线是:

1. 继续坚持 `Scene Skill` 作为产品真相
2. 继续坚持 `site-adapter` 只是步骤执行器
3. 借鉴外部 `web-access` 的内容设计,不引入它的执行内核
4. 先把动态页面通用 helper、站点经验和 Markdown 产物协议沉淀稳
5. 再逐步扩展更多站点,而不是为每个站点单独长一套 slash 流程

一句话总结:

> 外部 `web-access` 最值得借鉴的是“怎么设计强 skill”,不是“把它的 proxy 搬进 Lime”。
analysisSkill

对当前文本、对话或显式文件内容做结构化分析,并区分事实、判断与待确认项。

article-writerSkill

内容工厂专用写作 Skill,生成批量文案、短视频脚本和图片提示词,并输出可回写的 contentFactoryWorkspacePatch。

brand-persona-knowledge-builderSkill

将品牌定位、价值观、受众画像、语气风格、内容样例、危机回应和表达禁区,整理成符合 Agent Knowledge v0.6 document-first 标准、可被 AI 安全调用的品牌人设知识库。适用于用户要求“整理品牌人设”“沉淀品牌口吻”“把品牌资料变成可复用语气库”“维护品牌 persona pack”的场景。

brand-product-knowledge-builderSkill

将品牌产品资料、规格参数、卖点证据、FAQ、价格权益、竞品区别和合规边界,整理成符合 Agent Knowledge v0.6 document-first 标准、可被 AI 安全调用的产品资料知识库。适用于用户要求“整理产品知识库”“沉淀产品 FAQ”“把品牌产品资料变成项目资料”“维护产品资料包”的场景。

broadcast_generateSkill

将文章整理为可转播客音频的源文本(下游负责真实音频合成)。

campaign-operations-knowledge-builderSkill

将活动目标、用户路径、渠道分工、物料资产、时间节奏、风险预案和复盘结论等资料,整理成符合 Agent Knowledge v0.6 document-first 标准、可被 AI 安全调用的运营类知识库。适用于用户要求“整理活动 / Campaign 运营知识库”“沉淀运营 SOP”“把运营资料变成项目资料”“维护运营知识库”的场景。

content-operations-knowledge-builderSkill

将选题日历、栏目矩阵、素材资产、发布节奏、复盘结论和内容边界等资料,整理成符合 Agent Knowledge v0.6 document-first 标准、可被 AI 安全调用的运营类知识库。适用于用户要求“整理内容运营知识库”“沉淀运营 SOP”“把运营资料变成项目资料”“维护运营知识库”的场景。

content-reviewerSkill

内容工厂专用复核 Skill,检查事实依据、平台适配、AI 味、风险和人工确认建议。