opencode-skills-collection 4.1.5 → 4.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +15 -1
- package/bundled-skills/axonx/SKILL.md +374 -0
- package/bundled-skills/axonx/references/LICENSE.md +201 -0
- package/bundled-skills/browser-extension-launch/SKILL.md +102 -0
- package/bundled-skills/browser-extension-launch/references/acceptance.md +103 -0
- package/bundled-skills/browser-extension-launch/references/complex-workflow.md +46 -0
- package/bundled-skills/browser-extension-launch/references/dependencies.md +62 -0
- package/bundled-skills/browser-extension-launch/references/development.md +42 -0
- package/bundled-skills/browser-extension-launch/references/efficient-delivery.md +52 -0
- package/bundled-skills/browser-extension-launch/references/host-compatibility.md +58 -0
- package/bundled-skills/browser-extension-launch/references/playwright-mcp.md +102 -0
- package/bundled-skills/browser-extension-launch/references/product-loop.md +35 -0
- package/bundled-skills/browser-extension-launch/references/publishing.md +103 -0
- package/bundled-skills/browser-extension-launch/references/required-skills.json +153 -0
- package/bundled-skills/browser-extension-launch/references/workflow.md +71 -0
- package/bundled-skills/byagent/SKILL.md +125 -0
- package/bundled-skills/cloudish/SKILL.md +188 -0
- package/bundled-skills/define-my-content-pillars/SKILL.md +127 -0
- package/bundled-skills/draft-my-comments/SKILL.md +132 -0
- package/bundled-skills/fxmacrodata/SKILL.md +224 -0
- package/bundled-skills/get-seen-in-replies/SKILL.md +134 -0
- package/bundled-skills/jobs-to-be-done-analyst/SKILL.md +1 -1
- package/bundled-skills/onboarding-psychologist/SKILL.md +1 -1
- package/bundled-skills/repurpose-into-a-post/SKILL.md +134 -0
- package/bundled-skills/same-idea-both-platforms/SKILL.md +111 -0
- package/bundled-skills/supercov/SKILL.md +119 -0
- package/bundled-skills/turn-this-into-a-thread/SKILL.md +130 -0
- package/bundled-skills/why-did-this-post-flop/SKILL.md +130 -0
- package/bundled-skills/write-in-my-voice/SKILL.md +140 -0
- package/package.json +1 -1
- package/skills_index.json +458 -2
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# 高效实施、复验与收尾
|
|
2
|
+
|
|
3
|
+
开始规划、准备最终审查或发生返工时读取。保留所有必需技能和真实验收;优化的是重复工作,不以时间预算豁免失败场景。
|
|
4
|
+
|
|
5
|
+
## 开发前准备
|
|
6
|
+
|
|
7
|
+
- 在实际执行环境中确认工作目录、Node/包管理器、所选脚手架版本及项目缓存可用;先运行最小正式构建。记录可重用命令与目录,后续不凭记忆重写路径。不固定某台机器的版本、端口或绝对路径。
|
|
8
|
+
- 从实际读取的必需技能提取会影响实现的硬约束,例如异步消息响应、权限、存储和代码规范;能用现有 lint/静态检查发现的,在第一次浏览器验收前检查。规范来自当前技能,不能误说成浏览器平台强制规则。
|
|
9
|
+
- 先验证所选 MCP 能真实安装扩展、触发原生入口并读取结果;复制、截图或重启等特殊能力仅在需求涉及时早测。替代默认 Playwright MCP 仍须按依赖规则取得用户选择。版本和环境未变时复用已核实结果。
|
|
10
|
+
- 新建或改变使用流程先实际执行 product-designer,按 [产品使用闭环](product-loop.md) 定义继续使用与恢复,验收包含连续两轮;效率优化不得省略这一体验关卡。
|
|
11
|
+
- 将 AC 写成“前置状态 → 实际动作 → 预期 → 证据”,提前覆盖核心路径、故障恢复及产品承诺的持久化。涉及设置时用非默认值;涉及清空、并发保存或跨浏览器重开时明确列项。不要等最终审查才发明测试范围,也不为简单功能增加无关矩阵。
|
|
12
|
+
|
|
13
|
+
## 拆票与批次
|
|
14
|
+
|
|
15
|
+
复杂插件仍执行 setup → to-spec → to-tickets → implement。按用户功能、独立风险和模块契约拆票,不按文件数量或同一种机制支持几个网站拆出重复流水线。
|
|
16
|
+
|
|
17
|
+
主代理可合并尚未关闭、同一共享实现且需要一起验证的票,保留原 AC 映射与模块所有权,更新依赖,不删需求。每张实际实施票仍需真实验收和 code-review。无依赖且写入范围不冲突的模块可独立开发;有依赖的工作不得因合批绕过前置条件。
|
|
18
|
+
|
|
19
|
+
同一固定候选的一次双轴审查可以覆盖多个就绪票及最终版本,前提是明确列全基线、差异、规格和 AC,并分别回填结论。最终跨模块验收票仍保留,但可直接引用同一候选、同一实际操作的证据,不为工单编号重复安装和操作。不能用分模块检查代替缺失的整体路径。
|
|
20
|
+
|
|
21
|
+
## 按影响复验
|
|
22
|
+
|
|
23
|
+
| 改动 | 必需工作 |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| 仅文档、工单状态、会话归档,运行包字节未变 | 校核记录、链接与原指纹;不重跑产品测试、浏览器或已通过的代码审查 |
|
|
26
|
+
| 局部界面或独立逻辑 | 正常构建与针对性检查;加载新候选,验证实际原生核心路径和受影响操作;涉及保存则重开验证 |
|
|
27
|
+
| 权限、入口、消息、共享状态、存储、过滤规则或依赖变化 | 对新候选验证相关跨模块路径、失败恢复及适用持久化;影响无法界定时扩大回归 |
|
|
28
|
+
| 仅打包,ZIP 内相对路径和字节均与已验收目录相同 | 本地交付核对文件清单与哈希;有商店发布需求时仍执行发布参考要求的 ZIP 解压加载验证 |
|
|
29
|
+
|
|
30
|
+
每次运行包变化都生成新指纹,最终候选始终必须有实际加载、原生入口、核心流程和适用重开的当前证据。复用未变模块的历史深测时,记录旧候选、覆盖场景、未变的依赖及影响判断,作为历史证据单列;不得修改旧指纹或把未重跑场景标为新候选实测。属于当前最终验收必需场景的,仍须在当前候选实际执行。现有门禁不支持用历史通过记录冒充当前通过。
|
|
31
|
+
|
|
32
|
+
## 审查前备齐,失败后只修缺口
|
|
33
|
+
|
|
34
|
+
准备固定基线、全部差异(含新文件)、AC、当前成品、真实证据和门禁报告,以及本次交付要求的 ZIP 与 FINAL_REPORT 草稿。报告写明待审查,不预填通过。用机器检查先发现文件缺失、JSON 无效、必需场景 ID 缺失和哈希不符,再交 code-review;静态检查单列,不能填成必需真实浏览器场景。
|
|
35
|
+
|
|
36
|
+
双轴审查必需执行。功能/安全/数据问题必须修复复验;明确的项目硬规范也必须满足,但应在前置检查中发现。建议性重构或纯偏好不自动扩大交付范围。整改复审聚焦原 findings、修复差异及受影响 AC,不因状态文档变化重启整个审查周期。
|
|
37
|
+
|
|
38
|
+
遇到已知工作目录或证据格式错误,diagnosing-bugs 可复用已确认根因,修正调用并验证结果,不重做无关产品实验。连续出现同类返工时,主代理应检查编排、模板和依赖是否有问题,合并重复动作;不得降低预期来结束任务。
|
|
39
|
+
|
|
40
|
+
## 一次收尾与时间记录
|
|
41
|
+
|
|
42
|
+
只有目标内 AC、当前验收门禁和双轴审查通过且交付文件齐全,才进入收尾。一次更新权威工单、简短状态索引、最终报告和本地版本记录后交付;不再增加全文日志、形式化清理、新审查或产品测试。发现实质缺陷则返回对应节点。
|
|
43
|
+
|
|
44
|
+
规格和工单为权威正文,state 仅索引,报告链接证据;不要手工维护多份相同状态。已有状态工具可用时调用它更新索引;没有工具则一次性更新必要字段,不临时开发一套任务平台。结束后不为“再确认一次”循环运行同一套检查。
|
|
45
|
+
|
|
46
|
+
记录首次开始、各阶段结束及中断/恢复时间。多项目并行时区分整体历时和各项目历时,不能相加冒充用户等待时间。预计明显超出计划或用户催促时,立即报告已完成成品、剩余具体问题,并缩减无关范围与重复步骤;不凭空承诺剩余分钟数。
|
|
47
|
+
|
|
48
|
+
## 用户要求独立 CLI 或完整会话时
|
|
49
|
+
|
|
50
|
+
仅在本次有此要求时启用。每个项目保留独立目录与原会话 ID,按用户指定模型和强度运行;说明配置/历史/profile 隔离与操作系统隔离的区别。记录控制消息是否真正进入会话;排队不等于已送达,不把中断重启当作常规消息通道。恢复时只传缺口和下一动作,不重复初始化或读取全部技能。
|
|
51
|
+
|
|
52
|
+
从原始公开消息生成 conversation.md,明确标注用户原话、主线程委派、恢复指令和 AI 回复;保留原始主/子会话、工具事件及校验清单,不导出认证文件或把内部推理展开成公开对话。无法取得原始内容时标明缺失,不能补写。运行中采用增量或按需快照,结束后做一次完整导出和一致性核对;避免多写入者覆盖同一个 Markdown。该记录不自动代表包含桌面主线程全部聊天。
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Agent host compatibility
|
|
2
|
+
|
|
3
|
+
Read this when installing, resuming on a different agent, or resolving a missing tool or child skill. The shared workflow is host-neutral; installation paths, tool names, permission prompts, and browser automation vary by host.
|
|
4
|
+
|
|
5
|
+
## Verified Skill CLI targets
|
|
6
|
+
|
|
7
|
+
The public repository root contains one valid `SKILL.md`. Skill CLI 1.7.0 discovered it and installed the complete folder for these targets in an isolated project:
|
|
8
|
+
|
|
9
|
+
| Agent target | Skill CLI id | Installed through |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| Codex | `codex` | shared `.agents/skills` |
|
|
12
|
+
| Claude Code | `claude-code` | `.claude/skills` plus shared skill files |
|
|
13
|
+
| Cursor | `cursor` | shared `.agents/skills` |
|
|
14
|
+
| GitHub Copilot | `github-copilot` | shared `.agents/skills` |
|
|
15
|
+
| OpenCode | `opencode` | shared `.agents/skills` |
|
|
16
|
+
|
|
17
|
+
Install for all five:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx skills add xiehuan123/browser-extension-launch \
|
|
21
|
+
--skill browser-extension-launch \
|
|
22
|
+
--agent codex claude-code cursor github-copilot opencode
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Use `-g` for user-level installation. Current Skill CLI 1.7.0 requires Node.js 22.20+. Other supported agents can use `--agent '*'`; do not claim a host is verified until its installation and required runtime capabilities have been exercised.
|
|
26
|
+
|
|
27
|
+
## Capability contract
|
|
28
|
+
|
|
29
|
+
Before doing project work, identify the host and verify these capabilities separately:
|
|
30
|
+
|
|
31
|
+
1. Read and write the project and skill resources.
|
|
32
|
+
2. Run local commands in the project directory.
|
|
33
|
+
3. Load or control a real browser environment capable of exercising an unpacked extension and its native entry point.
|
|
34
|
+
4. Preserve project state and evidence across turns or sessions.
|
|
35
|
+
5. Invoke installed child skills, or execute an explicitly documented portable fallback.
|
|
36
|
+
|
|
37
|
+
Installing this skill does not grant those tools. A host lacking file or shell access can only provide guidance. A host lacking controlled extension-capable browser automation cannot certify a working delivery; keep acceptance blocked or deliver source only when the user explicitly chooses that scope.
|
|
38
|
+
|
|
39
|
+
## Child skill adapters
|
|
40
|
+
|
|
41
|
+
Prefer the named child skills because their reviewed workflows are the reference implementation. Discover installed skills first. When missing and the host supports Skill CLI, install from the pinned public sources in `required-skills.json`, targeting the current agent.
|
|
42
|
+
|
|
43
|
+
- `chrome-extensions`, `extension-create`, `diagnosing-bugs`, `code-review`, and the complex-project chain have public sources recorded in the dependency manifest.
|
|
44
|
+
- `product-designer` has no verified portable public source in the current manifest. On hosts where it is absent, `product-loop.md` is the approved portable fallback. Record that fallback instead of claiming the named skill ran.
|
|
45
|
+
- A host-native skill may replace a named child only when its actual instructions cover the same outcome and constraints. Record its source, what was read, produced artifacts, and any gaps.
|
|
46
|
+
|
|
47
|
+
Never install by guessing a similarly named repository. Do not overwrite a customized skill. If installation requires the host to restart, save progress and verify discovery after restart.
|
|
48
|
+
|
|
49
|
+
## Browser tool adapters
|
|
50
|
+
|
|
51
|
+
The acceptance contract is provider-neutral even though `playwright-mcp.md` is the reference setup:
|
|
52
|
+
|
|
53
|
+
- Prefer Playwright MCP when it can load the current extension and operate the native entry point.
|
|
54
|
+
- Chrome DevTools MCP, another browser MCP, or a controlled browser harness is acceptable only after capability probing shows it covers the required actions.
|
|
55
|
+
- Record the selected provider, browser version, package fingerprint, native entry evidence, core flow, reopen behavior, and repeat use.
|
|
56
|
+
- Webpage screenshots, a directly opened popup HTML file, mocked Chrome APIs, and static package checks do not replace native extension acceptance.
|
|
57
|
+
|
|
58
|
+
Use the acceptance gate's provider and user-choice fields. If no provider can exercise the needed native browser surface, explain the concrete gap and keep the affected delivery state blocked.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Playwright MCP:真实插件端到端验收
|
|
2
|
+
|
|
3
|
+
## 必需路径和环境选择
|
|
4
|
+
|
|
5
|
+
本编排默认必须使用 **Microsoft Playwright MCP** 对实际插件构建做端到端验证。先发现并读取当前可调用工具和服务信息,再核实浏览器、插件加载与原生入口能力。仅有 Playwright npm 包、浏览器截图、普通页面自动化或桥接扩展,不代表此关卡已具备全部能力。
|
|
6
|
+
|
|
7
|
+
1. 已有 Playwright MCP 且能力足够:沿用已经授权的独立测试环境,准备当前构建和原始操作记录。
|
|
8
|
+
2. 缺少服务/浏览器、启动失败、不能加载插件或不能触发必需原生入口:解释具体缺口,询问用户是否安装、启用或修复 Playwright MCP,或采用能够覆盖缺口的受控替代。
|
|
9
|
+
3. 等待用户明确选择。可推荐经核实具有扩展操作能力的 Chrome DevTools MCP、其他浏览器 MCP 或受控浏览器,并说明可覆盖的操作与限制。不得静默切换服务、默认使用用户日常浏览器,或改用人工清单来宣告完成。
|
|
10
|
+
4. 取得选择后记录实际用户原话、来源和时间,沿用该选择及授权。不得为同一环境内的例行加载、重载和检查反复询问;换服务、换到日常浏览器等超出选择范围的变化需要重新确认。
|
|
11
|
+
5. 用户拒绝安装且未选择可用替代时,保持 `blocked` 和未验收状态,可继续不依赖该环境的准备工作。
|
|
12
|
+
|
|
13
|
+
此说明仅规定后续插件项目的执行方式。更新编排 skill 时不要因此自行启动浏览器、验证历史例子或改动用户现有全局 MCP 服务。
|
|
14
|
+
|
|
15
|
+
## 已核实的来源
|
|
16
|
+
|
|
17
|
+
- 维护者:[Microsoft / playwright-mcp](https://github.com/microsoft/playwright-mcp)。核实日期:2026-09-11;源码提交 `8a13ef8e9f7385a0f89477922127f31cbfde9761`。
|
|
18
|
+
- 已发布包:`@playwright/mcp@0.0.80`,Apache-2.0,Node.js ≥18。优先复用现有兼容的 Node 20 或更高版本,不另行降级。
|
|
19
|
+
- 该版本依赖 `playwright` 和 `playwright-core` 的 `1.63.0-alpha-2026-08-31`。浏览器二进制必须与实际安装的 Playwright 版本匹配;具体安装操作在用户选择准备环境后按该版本官方说明执行。
|
|
20
|
+
- 0.0.80 是本次核实的固定参考,不代表对任何宿主都完成了兼容测试。保留已可用的版本;升级前核实差异并记录实际版本。
|
|
21
|
+
|
|
22
|
+
依据:[固定版本 package.json](https://github.com/microsoft/playwright-mcp/blob/8a13ef8e9f7385a0f89477922127f31cbfde9761/package.json)、[许可证](https://github.com/microsoft/playwright-mcp/blob/8a13ef8e9f7385a0f89477922127f31cbfde9761/LICENSE)。
|
|
23
|
+
|
|
24
|
+
## 区分服务、库和桥接扩展
|
|
25
|
+
|
|
26
|
+
| 能力 | 作用 | 验收边界 |
|
|
27
|
+
| --- | --- | --- |
|
|
28
|
+
| Playwright MCP | AI 通过当前服务的真实工具操作浏览器并观察页面 | 当前官方清单没有通用的“安装任意插件”工具;不能虚构工具名。若某版本提供 `browser_install`,也须读工具说明,它不能据名字被当成插件安装器 |
|
|
29
|
+
| Playwright 库 | 使用 Chromium 持久上下文和启动参数加载未打包扩展 | 库脚本不等于 MCP 验收;可用于已授权环境准备或补充验证,不能静默取代默认 MCP |
|
|
30
|
+
| Playwright Bridge / Extension | `--extension` 连接已有 Chrome/Edge 页面及其登录状态 | 它是连接器,不是待测插件安装器;连接成功不证明 popup、侧栏或工具栏入口可操作 |
|
|
31
|
+
|
|
32
|
+
官方扩展测试文档要求使用持久上下文;Chrome/Edge 已移除相关命令行侧载参数,采用此加载方式时应使用 Playwright 随附的 Chromium。Chromium 支持有头或受支持的无头扩展测试,不能写成“任何插件都不支持无头”。本编排优先有头独立环境,以便检查真实入口和收集证据;仍需核实 MCP 是否能够操作具体入口。
|
|
33
|
+
|
|
34
|
+
依据:[官方扩展测试文档](https://playwright.dev/docs/chrome-extensions)、[Playwright MCP 配置](https://github.com/microsoft/playwright-mcp/blob/8a13ef8e9f7385a0f89477922127f31cbfde9761/README.md)、[官方桥接扩展说明](https://github.com/microsoft/playwright/blob/main/packages/extension/README.md)。
|
|
35
|
+
|
|
36
|
+
## 实际加载方案
|
|
37
|
+
|
|
38
|
+
下面是根据官方 MCP `browser.launchOptions` 转发配置与 Playwright 扩展测试文档组合出的配置示意,**本次仅核实文档和来源,未实机验证该组合**。执行者须对实际宿主完成能力预检,不能把配置示意当成功记录。
|
|
39
|
+
|
|
40
|
+
用户选择准备该环境后,在待测项目中生成专用配置,填入最终解包产物的绝对路径。不要覆盖既有全局服务;优先使用宿主支持的项目级服务或另命名的专用服务,并按宿主真实配置能力执行。配置文件保存于项目记录目录,浏览器 profile 必须独立且不能被并行会话共享。
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"browser": {
|
|
45
|
+
"browserName": "chromium",
|
|
46
|
+
"isolated": false,
|
|
47
|
+
"userDataDir": "/ABS/PROJECT/.extension-launch/browser-profile",
|
|
48
|
+
"launchOptions": {
|
|
49
|
+
"channel": "chromium",
|
|
50
|
+
"headless": false,
|
|
51
|
+
"args": [
|
|
52
|
+
"--disable-extensions-except=/ABS/PROJECT/FINAL_UNPACKED_EXTENSION",
|
|
53
|
+
"--load-extension=/ABS/PROJECT/FINAL_UNPACKED_EXTENSION"
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"saveSession": true,
|
|
58
|
+
"outputDir": "/ABS/PROJECT/.extension-launch/evidence/playwright"
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
参考服务启动参数如下。占位路径必须替换,不要原样执行;执行前确认 Node、相匹配的 Chromium、宿主服务重载方式及用户选择均已就绪。
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
npx -y @playwright/mcp@0.0.80 --config /ABS/PROJECT/playwright-mcp.json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
这里通过浏览器启动配置加载待测产物,随后通过 MCP 工具执行测试;不声称 MCP 存在专用插件安装工具。不要同时设置 `--extension` 来完成侧载,桥接模式会忽略上述 `browser` 配置。ZIP 须先解压为当前候选目录,并校验指纹;不要拿开发服务器的页面代替实际构建。
|
|
69
|
+
|
|
70
|
+
加载后必须观察到正确的扩展 ID、版本和当前构建来源。Manifest V3 有 service worker 时,可用实际上下文的 worker URL 辅助确定 ID;没有 worker 的插件应通过真实扩展管理信息取得 ID,不能为了取 ID 改动插件。只声明了参数、浏览器启动成功或打开了空白页都不算安装通过。
|
|
71
|
+
|
|
72
|
+
## 从真实入口验证完整路径
|
|
73
|
+
|
|
74
|
+
按 [真实验收契约](acceptance.md) 记录候选 SHA-256,以及至少五个必需场景:`install`、`native_entry`、`primary_flow`、`reopen`、`repeat_use`。最后一项按产品闭环从正常用户路径连续完成两轮,记录继续与退出/恢复,不通过脚本调用内部处理器替代再次操作。
|
|
75
|
+
|
|
76
|
+
使用当前 MCP 的真实工具逐步执行:加载并核对插件 → 从实际工具栏、原生侧栏、菜单或已定义的命令入口触发 → 完成核心操作 → 观察真实产出 → 关闭并重开适用入口 → 核对状态。保存原始工具结果、截图、导出内容或可复查的其他证据。
|
|
77
|
+
|
|
78
|
+
MCP 能操作网页不等于能点击浏览器工具栏。直接导航到 `chrome-extension://<id>/popup.html` 可作扩展页面辅助检查,不能替代工具栏 popup 的 `native_entry`。模拟 Chrome API、注入假的 `chrome` 对象、直接调用业务函数或直接写入存储,都不能证明用户完成了真实流程。
|
|
79
|
+
|
|
80
|
+
遇到原生入口能力不足,返回环境选择步骤。只有已说明且确实无法自动化的原生环节才安排用户辅助操作,并保留 `blocked` 直到取得可核对的真实结果;AI 随后接回受控验证。人工辅助不免除自动化服务、用户选择和核心结果证据。
|
|
81
|
+
|
|
82
|
+
## 服务选择证据
|
|
83
|
+
|
|
84
|
+
默认环境记录 `environment.automation_provider: "playwright-mcp"`。用户明确选替代时,服务值限于 `chrome-devtools-mcp`、`browser-mcp` 或 `controlled-browser`,同时提供:
|
|
85
|
+
|
|
86
|
+
```json
|
|
87
|
+
{
|
|
88
|
+
"browser_choice": {
|
|
89
|
+
"default_provider": "playwright-mcp",
|
|
90
|
+
"selected_provider": "chrome-devtools-mcp",
|
|
91
|
+
"reason": "填写实际核实的能力缺口与替代覆盖方式",
|
|
92
|
+
"user_decision": {
|
|
93
|
+
"status": "approved",
|
|
94
|
+
"evidence_path": "browser-choice/user-decision.md"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
这是字段示意,不能预填用户已批准。`selected_provider` 必须与实际环境一致;选择证据必须是验收 JSON 同目录范围内的非空原始记录,保留用户实际选择及可追溯来源,不能是 AI 写出的同意,也不能指向验收 JSON 本身。
|
|
101
|
+
|
|
102
|
+
场景方式仍使用 `real_browser_tool` 或有真实见证记录的 `witnessed_manual`。人工辅助不是第四种服务,也不是绕过选择记录的办法。任何必需场景失败、未测、候选哈希变化或门禁拒绝,都不能宣布验收完成。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 产品使用闭环
|
|
2
|
+
|
|
3
|
+
新建插件、改变用户流程或处理体验缺陷时,必须实际执行 `product-designer`。输入用户原话和已有决定,输出写入现有规格,不另建一套产品文档。小需求用短段落或表格即可;只读技能名字、列功能清单不算完成。
|
|
4
|
+
|
|
5
|
+
## 从开始到下一次使用
|
|
6
|
+
|
|
7
|
+
规格在拆票前必须回答:用户从哪里进入、做什么、如何知道成功、如何处理结果、如何继续下一次、如何结束,以及取消/失败后如何恢复。逐状态写出可见反馈、可发现的下一动作与数据保留方式,并形成体验 AC。
|
|
8
|
+
|
|
9
|
+
结果页不能只有结果而无后续动作。例如取色应从结果面板“重新取色”进入下一轮,保留已选结果并支持取消返回;不能默认要求用户关面板再去浏览器工具栏重启。按钮、快捷键和连续模式只是实现选项,选符合任务的最短可发现路径,不强制所有插件套相同界面。
|
|
10
|
+
|
|
11
|
+
自动型插件没有结果面板时,闭环是后续网页/事件继续自动生效,并且用户可发现状态、暂停、恢复和退出方式;不要为去广告或自动跳转硬加每次确认。确属一次性操作则第二轮用下一项输入或再次访问验证,不能把“没有再次按钮”直接判失败,也不能用“不适用”豁免整个闭环检查。
|
|
12
|
+
|
|
13
|
+
## AI 决策与用户决策
|
|
14
|
+
|
|
15
|
+
- AI 主动补齐再次操作、取消、关闭、成功反馈、错误恢复等基本路径,记录为设计决定,不要求用户逐按钮批准。
|
|
16
|
+
- 连续采集还是单次确认、自动执行还是先预览、覆盖还是追加等明显影响用途/数据或打断程度的选择,先从上下文判断;信息不足时向用户用日常场景说明推荐和取舍,等待必要答案,再实施依赖部分。技术拆分、框架、测试方法仍由 AI 决定。
|
|
17
|
+
- 不把“用户没提”当作缺少基本闭环的理由,也不以补闭环扩成账号、云同步、批量管理等无关功能。
|
|
18
|
+
|
|
19
|
+
## 真实连续使用验收
|
|
20
|
+
|
|
21
|
+
最终候选必须增加 `repeat_use` 必需场景:从已验证的真实入口开始,连续完成两轮任务,第二轮通过用户可发现的正常路径继续;记录每轮入口/触发、实际结果,以及第二轮如何开始。再实际验证结束、取消或失败后的可恢复状态。
|
|
22
|
+
|
|
23
|
+
交互型插件优先使用真实 MCP 点击、键盘或指针操作。不得通过脚本调用内部处理器、强设存储、隐藏快捷方式或重新初始化页面来替代用户继续操作;读取 DOM/存储和确定性测试数据可作核对。浏览器原生入口本来就必须使用时,记录平台约束及为什么该路径合理,不机械禁止工具栏操作。
|
|
24
|
+
|
|
25
|
+
例如取色连续选 A、复制、在面板再次取 B、取消或退出;自动跳转连续访问两个受支持外链;广告过滤在动态插入或下一网页继续工作,并实际暂停/恢复。以上仅为场景设计参考,不自动触发修改或重测已有例子。
|
|
26
|
+
|
|
27
|
+
code-review 的 Spec 轴须核对这条闭环本身是否完整,不能只看已有 AC 全打勾。`product-designer` 对实际页面的反馈、继续操作和恢复结果做体验复核,复用同一批浏览器证据,不新开整套流水线。若规格遗漏必要基本动作,先补体验 AC,再修复,不以实现“符合不完整规格”关闭问题。
|
|
28
|
+
|
|
29
|
+
最终报告分列“技术功能”与“使用闭环”,分别说明通过/未通过及证据。缺再次操作或只能靠绕路完成任务时,技术测试通过也不能称完整可用。验收门禁只验证证据结构与版本,不能自动判断入口是否易发现;需保留实际界面、连续操作与上述复核结论。
|
|
30
|
+
|
|
31
|
+
## 证据字段与旧记录
|
|
32
|
+
|
|
33
|
+
`repeat_use` 沿用场景的 steps、expected、actual、artifactPaths;另含 `rounds` 数组,至少两项,每项填写实际非空 `entry`(用户入口/自动触发)和 `outcome`;`continuation` 描述两轮如何衔接,`exit_or_recovery` 描述实际退出或恢复结果。不得预填通过或用字段齐全冒充操作发生。
|
|
34
|
+
|
|
35
|
+
新门禁要求此场景;旧报告缺失时将不能通过新检查。保留旧报告和历史结论,不自动重写、补造证据或启动用户已停止的例子。继续该项目时再补齐实际验收,并标明原有技术检查与新体验检查的区别。
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# 发布、审核跟进与维护
|
|
2
|
+
|
|
3
|
+
准备上架、提交、拒审、上线或更新时读取,同时必须执行 chrome-extensions 的发布部分,按实际实现维护其要求的 CHROMEWEBSTORE.md 和引用检查清单;本文件补充编排,不替代子技能。Chrome 官方基线核查于 2026-09-11;正式提交当天重查政策、后台必填项和实际账号。其他浏览器单独核实对应官方规则。
|
|
4
|
+
|
|
5
|
+
## 上下文明确发布意图后才提醒
|
|
6
|
+
|
|
7
|
+
这不是每个项目的固定前置阶段。只有用户说要上架、公开发布、上线到商店,或当前会话已明确包含商店发布目标时,才触发下列提醒。单说“做个插件”、只想本地使用、技能本身名字含“上线”,或者 init 的默认 goal=live,都不能触发开通账号或付款提示。只是“给朋友用”而分发渠道未定时,先在需要时确认分发目标,不先要求开发者注册。
|
|
8
|
+
|
|
9
|
+
将真实上下文依据写入 `release.publishing_intent.context_evidence`,标记意图已成立再给一次当前缺项的简短说明;既有账户或已完成事项不重复提示。账号准备可以与已授权开发并行,不能变成阻止第一版制作的统一关卡。
|
|
10
|
+
|
|
11
|
+
| 需要告知/核查的事项 | 用户能理解的说明 |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| Google 账号 | 需要能正常登录、长期使用并接收通知的账号;已有账号可用,不一律要求另建 |
|
|
14
|
+
| Chrome Web Store 开发者身份 | 首次自己创建发布者需完成开发者注册;已有发布者或团队授权先检查实际权限,不重复开通 |
|
|
15
|
+
| 注册费 | 首次注册的参考金额为一次性 **5 美元**,不是每个插件都再收一次;支付时以当时页面金额和币种为准 |
|
|
16
|
+
| 付款方式 | 提前准备付款页支持、能完成国际线上支付的银行卡,常见是国际信用卡;支持哪些卡种、是否支持借记卡及地区要求须在实际付款页核实,不承诺任何一张卡必定可用 |
|
|
17
|
+
| 验证和资料 | 两步验证、发布者名称和已验证联系邮箱;Trader/Non-Trader 等声明按实际用途由发布者决定 |
|
|
18
|
+
|
|
19
|
+
Chrome 官方注册说明要求注册及一次性费用;2026-04-28 的官方公告明确新发布者仍需 5 美元注册费。当前官方注册文档没有给出适用于所有地区的完整银行卡清单,不能拿 Google Play 开发者的付款规则代替 Chrome Web Store,也不能把“只支持国际信用卡”当已核实的普遍规定。来源:[注册](https://developer.chrome.com/docs/webstore/register)、[5 美元官方说明](https://developer.chrome.com/blog/cws-role-expansion-developer-dashboard)、[账号设置](https://developer.chrome.com/docs/webstore/set-up-account)。
|
|
20
|
+
|
|
21
|
+
只保存完成/待办、非敏感页面结果及必要提交证据。用户在官方页面完成账号验证、银行卡信息、付款确认及真实身份声明,不在对话或项目中收集密码、验证码、完整卡号和证件内容。
|
|
22
|
+
|
|
23
|
+
## 先形成可交付材料
|
|
24
|
+
|
|
25
|
+
准备票关联独立验收票。AI 生成以下内容放在 `release/<version>/` 等明确位置,不让新手拼装;ZIP 和检查报告须在构建目录外。
|
|
26
|
+
|
|
27
|
+
| 交付 | 内容 |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| ZIP 和报告 | manifest 根目录、正式文件、版本、哈希、静态检查及警告处理 |
|
|
30
|
+
| 可粘贴文案 | 名称、简述、详细功能、用法、分类、语言、实际限制;对应后台字段 |
|
|
31
|
+
| 素材 | 最终图标、当前候选版本真实功能截图、小宣传图;标注用途 |
|
|
32
|
+
| 权限与数据清单 | 权限→功能;读什么→在哪处理→保存多久→给谁→如何清除,涵盖依赖和第三方服务 |
|
|
33
|
+
| 隐私及支持 | 按实现生成;适用公开链接未登录可访问,不指向私有仓库 |
|
|
34
|
+
| 发布安排 | 人群、地区、自动/手动发布、发布者待办及实际授权依据 |
|
|
35
|
+
| 发布记录和教程 | 候选版本、验收、提交/审核证据、下一步、最终入口及首条操作 |
|
|
36
|
+
|
|
37
|
+
只要求材料时交付到此范围;要求上线则持续推进,不把材料完成当目标完成。
|
|
38
|
+
|
|
39
|
+
## 包和素材
|
|
40
|
+
|
|
41
|
+
使用当前宿主可用的压缩与哈希工具检查错误及警告并生成新 ZIP;更新版本还须与上一版本比较。静态检查覆盖有限,结合代码、依赖、实际浏览器检查补全,解压最终 ZIP 加载并让证据关联同一哈希。
|
|
42
|
+
|
|
43
|
+
Chrome 基线为 Manifest V3,ZIP 根直接有 manifest.json;版本依官方整数格式递增,改显示版名不足以升级。正式目录排除开发服务器依赖、依赖源码目录、私钥和环境文件,核对运行引用。[准备上传](https://developer.chrome.com/docs/webstore/prepare)、[版本规则](https://developer.chrome.com/docs/extensions/reference/manifest/version)
|
|
44
|
+
|
|
45
|
+
远程代码扫描只能给线索,复核依赖及动态加载;网络 URL 不自动等于远程执行,关键词无命中也不证明完全没有。[MV3 政策](https://developer.chrome.com/docs/webstore/program-policies/mv3-requirements)
|
|
46
|
+
|
|
47
|
+
素材基线:包内 128×128 PNG 图标,1–5 张 1280×800 或 640×400 真实截图,440×280 小宣传图;1400×560 大宣传图可选。功能截图不以概念生图冒充。视频字段若官方页面措辞不一致,核实当前后台必填性并记录,不臆造硬阻塞。[图片规范](https://developer.chrome.com/docs/webstore/images)、[商店字段](https://developer.chrome.com/docs/webstore/cws-dashboard-listing)
|
|
48
|
+
|
|
49
|
+
## 账号及数据披露
|
|
50
|
+
|
|
51
|
+
发布者需开发者注册和费用支付、两步验证、发布者和联系资料、适用 Trader/Non-Trader 声明及验证。注册费按上文给出 5 美元参考,实际金额及付款方式再看当前页;身份声明按实际情况由发布者决定。官网验证、地址等按业务区分必须/条件要求/可选,不一律要求购买域名。[注册](https://developer.chrome.com/docs/webstore/register)、[账号设置](https://developer.chrome.com/docs/webstore/set-up-account)、[两步验证](https://developer.chrome.com/docs/webstore/program-policies/two-step-verification)、[身份声明](https://developer.chrome.com/docs/webstore/program-policies/trader-verification-faq)
|
|
52
|
+
|
|
53
|
+
账号准备与开发可并行。本人登录、验证码、付款、身份操作在官方界面逐步完成并核实;只记完成/待办,不保存密码、验证码、证件内容,不提前索取全部凭证。
|
|
54
|
+
|
|
55
|
+
用途清楚聚焦、最小权限且逐项解释。网页文字、网址、截图仅在本机处理也可能是用户数据处理,不能自动填无数据收集。涉及用户数据处理时核实并满足公开隐私政策等要求,真正不处理数据时区别官方义务和自愿说明。[隐私字段](https://developer.chrome.com/docs/webstore/cws-dashboard-privacy)、[用户数据 FAQ](https://developer.chrome.com/docs/webstore/program-policies/user-data-faq)
|
|
56
|
+
|
|
57
|
+
从代码及依赖形成数据清单,对照实际网络行为、后台勾选和公开政策保持一致;适用的披露、同意、安全处理和 Limited Use 依当前官方要求落实,不照搬通用政策。[开发者政策](https://developer.chrome.com/docs/webstore/program-policies/policies#protecting-user-privacy)
|
|
58
|
+
|
|
59
|
+
## 内置浏览器协助填写与素材等待
|
|
60
|
+
|
|
61
|
+
发布意图明确且用户已提供相关信息后,由 AI 使用内置浏览器或当前获准的发布浏览器会话进入官方开发者后台,准备并填写名称、简述、详细介绍、语言、分类、支持/隐私链接、权限理由、图标、截图及宣传图。能根据真实实现生成的文案由 AI 准备,缺少真实发布者信息或重要分发决定才询问;不让用户重新逐字段输入已经提供的内容。
|
|
62
|
+
|
|
63
|
+
测试通道与发布通道区分:插件 E2E 仍默认 Playwright MCP;登录商店、填写资料、上传用户授权素材可以使用内置浏览器,不把“发布表单能打开”记作插件验收。复用用户已有合法会话,按工具当时的登录、付款和协议操作规则处理;不修改现有全局浏览器服务来填一个表单。
|
|
64
|
+
|
|
65
|
+
先在项目里准备可审阅的字段和素材,再按已有授权填写、保存草稿或提交。读取实际后台页面以确定字段和按钮,上传后核对预览、名称和保存状态,记录当前停留的草稿/表单位置。用户已经授权并提供相同范围资料时不重复询问常规填写、选图或保存动作;实际提交/公开发布仍对应明确的发布安排与当时工具权限。
|
|
66
|
+
|
|
67
|
+
素材按以下分支执行:
|
|
68
|
+
|
|
69
|
+
1. 用户已有图片:先检查内容、尺寸及用途,对应到图标、截图、小宣传图等字段;只做所需裁切或格式调整。
|
|
70
|
+
2. 需要生成图标或宣传图:读取并执行 imagegen 或用户明确选用的实际生成技能,检查输出可用性。功能截图必须取自当前真实插件,不能生成一张假界面替代。
|
|
71
|
+
3. 生成能力不存在、调用失败或生成结果不可用:保存 `release.assets.status=waiting_user_assets`、`waiting_for_user_upload=true` 和具体缺项,**停在素材这一步,直接请用户上传需要的图片文件**,同时说明字段、尺寸及数量。不要使用仅能接收文字的提问工具索要文件,不放占位图、旧图或空白图,不擅自改用其他付费服务。
|
|
72
|
+
4. 等待期间保留已填字段、已生成文件和当前后台位置;可以完成独立的本地文字整理,但不能将缺图资料标为可提交,也不能跳过上传完成发布。收到用户文件后检查并填回对应字段,再恢复到原来的步骤,不重新开始整个流程。
|
|
73
|
+
|
|
74
|
+
默认需要的图片和尺寸见上文“包和素材”;例如缺小宣传图时明确要求 440×280,而不是泛泛说“自己准备图片”。素材来源、实际生成/上传结果、失败原因和用户补充文件均记录在发布票及 CHROMEWEBSTORE.md。
|
|
75
|
+
|
|
76
|
+
## 提交及状态
|
|
77
|
+
|
|
78
|
+
先做好候选包、文案、隐私及发布安排,再处理尚缺授权。已授权动作继续执行,不重复确认;未获授权的外部写入不能因材料已好就代办。缺重要决定时展示这些可审阅成果及当前影响。
|
|
79
|
+
|
|
80
|
+
Public 面向所选地区公开展示;Unlisted 不公开列出但持链接者都可安装,不能称私密;Private 限定测试者/群组等。各方式仍遵守政策及审核。[分发设置](https://developer.chrome.com/docs/webstore/cws-dashboard-distribution)
|
|
81
|
+
|
|
82
|
+
通过可用官方界面或连接器依授权上传、填写、提交并读回结果;没有操作通道则给可粘贴内容及当前一步。不要猜后台 API,不把上传成功当已提交。受限功能按需给审核说明,不将私人长期凭证打入包。[测试说明](https://developer.chrome.com/docs/webstore/cws-dashboard-test-instructions)
|
|
83
|
+
|
|
84
|
+
```text
|
|
85
|
+
待提交 → 已提交审核 → 被拒待修复 → 修复、相关复验后重提
|
|
86
|
+
→ 审核通过待发布 → 已发布待安装验证
|
|
87
|
+
→ 自动发布后:已发布待安装验证
|
|
88
|
+
已发布待安装验证 → 目标用户从商店安装并完成首用 → 已验证可安装
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
支持审核后自动或手动发布;手动发布窗口基线 30 天,执行时核实后台截止时间。不承诺审核固定天数或保证通过。[首次发布](https://developer.chrome.com/docs/webstore/publish)、[审核流程](https://developer.chrome.com/docs/webstore/review-process)
|
|
92
|
+
|
|
93
|
+
记录包、商店项目 ID、提交时间/凭据、观察时间、审核反馈、下一步及负责人。跨会话监控仅在宿主确实支持且已授权时安排,无变化时安静;否则明确保存供下次检查。等待期不是失败也不是完成。
|
|
94
|
+
|
|
95
|
+
商店出现后以目标受众入口安装,核对版本、权限提示、核心操作才报告可安装。受限分发用目标授权身份核查,不强求未登录安装;公开素材和政策仍检查未登录访问。
|
|
96
|
+
|
|
97
|
+
## 拒审、更新和交接
|
|
98
|
+
|
|
99
|
+
保存拒审理由摘要及官方引用,关联修复票或有依据申诉;代码/权限/数据改变后相关复验并同步材料再提交,不反复提交同一被拒包。
|
|
100
|
+
|
|
101
|
+
更新沿用同一商店项目,交完整新包并递增版本,检查旧数据、原功能、新权限和介绍;审核中不能说线上已更新。线上问题按当时官方回退流程和授权处理,不把旧 ZIP 重传当必然降级。[更新说明](https://developer.chrome.com/docs/webstore/update)
|
|
102
|
+
|
|
103
|
+
保留源码可恢复版本、已发布包哈希、商店项目/版本、真实入口、短教程和反馈渠道。后续问题回到复现及修复票,不跳过记录直接更改线上承诺。
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"verified_at": "2026-09-11",
|
|
4
|
+
"skills": [
|
|
5
|
+
{
|
|
6
|
+
"name": "chrome-extensions",
|
|
7
|
+
"required_when": "extension-development-and-publishing",
|
|
8
|
+
"bundled_substitute_allowed": false,
|
|
9
|
+
"source": {
|
|
10
|
+
"repo": "GoogleChrome/modern-web-guidance",
|
|
11
|
+
"path": "skills/chrome-extensions",
|
|
12
|
+
"ref": "bfd8c8dded770f3ba07a518e28991a32df40f902",
|
|
13
|
+
"license": "Apache-2.0",
|
|
14
|
+
"entry_sha256": "c67d9e4ba9da93ed0da8b0147235e5890aa24e659548f65b7765c5af0a470c3f"
|
|
15
|
+
},
|
|
16
|
+
"verified_local_entry_sha256": "c67d9e4ba9da93ed0da8b0147235e5890aa24e659548f65b7765c5af0a470c3f",
|
|
17
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "extension-create",
|
|
21
|
+
"required_when": "new-project",
|
|
22
|
+
"bundled_substitute_allowed": false,
|
|
23
|
+
"source": {
|
|
24
|
+
"repo": "quangpl/browser-extension-skills",
|
|
25
|
+
"path": "skills/extension-create",
|
|
26
|
+
"ref": "249886cf8137086792b6c3a5a2f7adce117a9f8d",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"entry_sha256": "579b05e875ae6b63ce98aad54e4e0a4ad0b55afb3779e77f3d9cc511e99fc1f2"
|
|
29
|
+
},
|
|
30
|
+
"verified_local_entry_sha256": "579b05e875ae6b63ce98aad54e4e0a4ad0b55afb3779e77f3d9cc511e99fc1f2",
|
|
31
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "setup-matt-pocock-skills",
|
|
35
|
+
"required_when": "complex-project-setup",
|
|
36
|
+
"bundled_substitute_allowed": false,
|
|
37
|
+
"source": {
|
|
38
|
+
"repo": "mattpocock/skills",
|
|
39
|
+
"path": "skills/engineering/setup-matt-pocock-skills",
|
|
40
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"entry_sha256": "2bcd89e97777cdb705914424e39c97d5db524c8eb4eafac8120778a07774f0ec"
|
|
43
|
+
},
|
|
44
|
+
"verified_local_entry_sha256": "310fb1a73c0467e617e17d7c41d4a2278b5405c4a27f36d7cd22bb4599aee6bb",
|
|
45
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"name": "to-spec",
|
|
49
|
+
"required_when": "complex-spec-and-parent-ticket",
|
|
50
|
+
"bundled_substitute_allowed": false,
|
|
51
|
+
"source": {
|
|
52
|
+
"repo": "mattpocock/skills",
|
|
53
|
+
"path": "skills/engineering/to-spec",
|
|
54
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
55
|
+
"license": "MIT",
|
|
56
|
+
"entry_sha256": "43ad9cf318e5e7d3d1fa360253a37021796dc87a0c2e595ad262661a10f85088"
|
|
57
|
+
},
|
|
58
|
+
"verified_local_entry_sha256": "5d26479544b08048d3a8f79d937b39bc613a617f026b3fd083bafc1e99a7b811",
|
|
59
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "to-tickets",
|
|
63
|
+
"required_when": "complex-ticket-splitting",
|
|
64
|
+
"bundled_substitute_allowed": false,
|
|
65
|
+
"source": {
|
|
66
|
+
"repo": "mattpocock/skills",
|
|
67
|
+
"path": "skills/engineering/to-tickets",
|
|
68
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
69
|
+
"license": "MIT",
|
|
70
|
+
"entry_sha256": "5c9fba69845c2519b9b35b9af42ae5142c21f8ca15ac2123dc2722002c8058ae"
|
|
71
|
+
},
|
|
72
|
+
"verified_local_entry_sha256": "5ecdf1d4df8a360ed39df21a2347f97ba177afd449a577da4f6b6ea8e1ebb808",
|
|
73
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"name": "implement",
|
|
77
|
+
"required_when": "complex-ticket-implementation",
|
|
78
|
+
"bundled_substitute_allowed": false,
|
|
79
|
+
"source": {
|
|
80
|
+
"repo": "mattpocock/skills",
|
|
81
|
+
"path": "skills/engineering/implement",
|
|
82
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
83
|
+
"license": "MIT",
|
|
84
|
+
"entry_sha256": "6d3fd9e83b8f36e5213854779db49b256a457a7ebb4a503e53fa7dcff696adc3"
|
|
85
|
+
},
|
|
86
|
+
"verified_local_entry_sha256": "6d3fd9e83b8f36e5213854779db49b256a457a7ebb4a503e53fa7dcff696adc3",
|
|
87
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "diagnosing-bugs",
|
|
91
|
+
"required_when": "on-failure",
|
|
92
|
+
"bundled_substitute_allowed": false,
|
|
93
|
+
"source": {
|
|
94
|
+
"repo": "mattpocock/skills",
|
|
95
|
+
"path": "skills/engineering/diagnosing-bugs",
|
|
96
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
97
|
+
"license": "MIT",
|
|
98
|
+
"entry_sha256": "77f3cf31bc99b2f49af943222526531fcc9fc41d047626d3640e875e85af3e84"
|
|
99
|
+
},
|
|
100
|
+
"verified_local_entry_sha256": "b9339b09ee3980808d8c5a35c7251b891b8b1e0036ec4ca37812b976ebddf6b6",
|
|
101
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "code-review",
|
|
105
|
+
"required_when": "implementation-and-release-review",
|
|
106
|
+
"bundled_substitute_allowed": false,
|
|
107
|
+
"source": {
|
|
108
|
+
"repo": "mattpocock/skills",
|
|
109
|
+
"path": "skills/engineering/code-review",
|
|
110
|
+
"ref": "3cca18b368ae95cdbdebbff572ccafa662551015",
|
|
111
|
+
"license": "MIT",
|
|
112
|
+
"entry_sha256": "47f4e52c21694def9c7c11cbfbf891ca35eac7a93e395797515be3c8a409ae50"
|
|
113
|
+
},
|
|
114
|
+
"verified_local_entry_sha256": "9cf46653dd9c710ea1e6c22423caf31a794c88773bc94bdaa23140277f470442",
|
|
115
|
+
"local_version_policy": "reuse compatible installed copy; do not assume local copy equals upstream revision"
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"conditional_host_skills": [
|
|
119
|
+
"tdd",
|
|
120
|
+
"triage",
|
|
121
|
+
"domain-modeling",
|
|
122
|
+
"ui-designer",
|
|
123
|
+
"motion-designer",
|
|
124
|
+
"imagegen",
|
|
125
|
+
"modern-web-guidance"
|
|
126
|
+
],
|
|
127
|
+
"mcp": {
|
|
128
|
+
"preferred_provider": "playwright-mcp",
|
|
129
|
+
"package": "@playwright/mcp",
|
|
130
|
+
"version": "0.0.80",
|
|
131
|
+
"repo": "microsoft/playwright-mcp",
|
|
132
|
+
"ref": "8a13ef8e9f7385a0f89477922127f31cbfde9761",
|
|
133
|
+
"license": "Apache-2.0",
|
|
134
|
+
"node_requirement": ">=18",
|
|
135
|
+
"environment_fallback_requires_user_decision": true,
|
|
136
|
+
"configuration_reference": "playwright-mcp.md"
|
|
137
|
+
},
|
|
138
|
+
"required_host_skills": [
|
|
139
|
+
{
|
|
140
|
+
"name": "product-designer",
|
|
141
|
+
"required_when": "new_or_changed_user_flow_and_experience_acceptance",
|
|
142
|
+
"bundled_substitute_allowed": true,
|
|
143
|
+
"source": {
|
|
144
|
+
"kind": "host-installed",
|
|
145
|
+
"entry": "product-designer/SKILL.md",
|
|
146
|
+
"upstream_status": "not_verified"
|
|
147
|
+
},
|
|
148
|
+
"verified_local_entry_sha256": "d0995fcc2a4accdb7df4a47d01a7263af6423298db95b76f8eb186a7b95caf74",
|
|
149
|
+
"portable_fallback": "product-loop.md",
|
|
150
|
+
"missing_policy": "prefer verified host skill; otherwise execute and record the bundled product-loop portable fallback, never invent a repository"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# 任务、决定和恢复
|
|
2
|
+
|
|
3
|
+
新想法、需求变化、任务调度及继续项目时读取。先由主代理判断复杂度并记录理由;复杂项目必须执行 [复杂插件编排](complex-workflow.md) 的 setup → to-spec → to-tickets → implement 链。新项目默认本地工单,不连接 GitHub;已有仓库的任务规范优先。
|
|
4
|
+
|
|
5
|
+
## 必要问题
|
|
6
|
+
|
|
7
|
+
从原话、项目和已有决定查明:谁用、在哪使用、做什么得到什么、数据如何保存及流出、第一版边界。事实自行检查,可逆实现自行决定,不把技术选型列成问卷。
|
|
8
|
+
|
|
9
|
+
“保存句子”可建议“选一句话保存,关掉再打开还能找到,先放这台电脑”;跨电脑使用影响范围时才进一步问同步。不得悄悄上传网页内容,也不要开场索要发布账号。
|
|
10
|
+
|
|
11
|
+
重要问题先给具体建议和代价,再问实际选择。决定记录:编号、问题、回答或暂定方案、依据(用户原话/项目约定/AI假设)、影响的规格和验收、替代哪个旧决定。明确答案直接采用,AI 建议保留暂定身份。
|
|
12
|
+
|
|
13
|
+
新建/改变使用流程先执行 product-designer,按 [产品使用闭环](product-loop.md) 将首次到再次使用、退出和恢复写入同一规格,形成体验 AC,再进行工单拆分。基本动作由 AI 决策,重要体验取舍才询问;不把所有设计问题交给新手。
|
|
14
|
+
|
|
15
|
+
规格包含一句话用途、用户故事、范围内外、入口到结果、失败时保留什么、数据及费用、验收、未决事项。信息足够就开始,不制造额外确认关卡。新功能先更新范围和依赖再实现。
|
|
16
|
+
|
|
17
|
+
## 文件和权威来源
|
|
18
|
+
|
|
19
|
+
使用宿主文件工具建立 `state.json`(机器索引)、`progress.md`(简短进度)、`spec.md`、`decisions.md`、`tasks/`、`evidence/`。在 `state.json` 中记录 `goal: local|materials|live`;先自用或只要材料时,其余发布模板标为范围外,不阻止当前主任务收口。模板须细化后执行;本地任务本身是正式依据,无需转成远程工单。
|
|
20
|
+
|
|
21
|
+
简单项目的任务正文承载范围和逐条证据。复杂项目由 to-spec/to-tickets 在 tracker 中生成真正的规格和单票文件,`.extension-launch/` 仅记录调度索引,不能把初始化模板当成已发布的技能产物。`state.json` 不能覆盖权威正文;规格保留产品承诺。主代理汇总状态,并行代理仅写各自任务、实现及证据,避免并发覆盖。
|
|
22
|
+
|
|
23
|
+
更新状态和关键记录先保留上次有效内容,再用同目录临时文件原子替换。备份不进入运行包。结束一轮时同步进度摘要,不能只靠对话。
|
|
24
|
+
|
|
25
|
+
## 任务最小字段及关闭条件
|
|
26
|
+
|
|
27
|
+
每票有稳定编号、类型、父票、前置依赖、状态、范围内外、所需能力及状态、验收编号、候选版本/变更起点、证据、审查、未完成事项、关闭条件和下一步。已有票能涵盖的小修改复用,不重复制造全套任务。
|
|
28
|
+
|
|
29
|
+
| 类型 | 最少内容 | 关闭条件 |
|
|
30
|
+
| --- | --- | --- |
|
|
31
|
+
| 主任务 | 问题、范围、决定、子票和整体承诺 | 承诺内实施及独立真实验收通过,有当前文件的 `gate-report`;若目标上线,还需商店首用证据 |
|
|
32
|
+
| 实施 | 可体验功能、依赖、改动边界、验收 | 当前文件真实安装、原生入口的核心操作及适用的关闭重开通过;审查、可恢复版本与 `gate-report` 齐全 |
|
|
33
|
+
| 独立验收 | 当前候选包、依赖、跨功能矩阵、环境和证据 | 必需真实场景通过,回归修复复验,验收门禁通过;待测不能关闭 |
|
|
34
|
+
| 发布准备 | 包、素材、文案、权限数据、公开链接、账号事项 | 最终 ZIP 解压后真实验收及门禁通过,约定准备交付完成;尚待本人事项继续跟踪 |
|
|
35
|
+
| 上线跟踪 | 分发安排、提交记录、反馈、商店入口 | 目标人群实际安装并完成首用 |
|
|
36
|
+
|
|
37
|
+
按完整用户功能拆分,如“保存并重开找回”;前置依赖完成才能实施。文件不重叠且契约稳定可并行,冲突实现串行。分流原因(缺信息/可执行/需本人)和进度(实现中/审核中)分开,不混成一组顺序关卡。
|
|
38
|
+
|
|
39
|
+
模拟测试或包检查通过不能把实施票推进为完成。必须默认使用 Playwright MCP 加载实际产物并完成原生入口端到端验证;环境不支持时按依赖参考询问安装/启用或替代选择,未取得选择不能跳过或静默换工具。真实功能失败则必须执行 diagnosing-bugs 复现、诊断、修复及复验;受控加载工具未就绪则将验收关卡及依赖交付设为 `blocked` 并继续修通,未经用户选择不切换日常 Chrome。本人仅处理确实无法自动化的原生环节,给出当前一步后核实结果并接回验证,不能仅转交人工清单就关闭主任务。已有测试授权持续有效,不增加常规批准票。
|
|
40
|
+
|
|
41
|
+
任务证据须链接当前 `candidate` 指纹、真实验收 JSON 和新的 `gate-report.json`。验收 JSON 至少覆盖 `install`、`native_entry`、`primary_flow`、`reopen`、`repeat_use`;按 [验收参考](acceptance.md) 校验构建指纹与证据,并用宿主文件工具写入新报告。仅 `gate_passed: true` 可满足门禁条件,静态包报告不充当该报告;生成报告不代替主代理回填任务状态。
|
|
42
|
+
|
|
43
|
+
## 版本与审查
|
|
44
|
+
|
|
45
|
+
验收条目用“前置条件 → 操作 → 预期结果 → 验证及证据”,以 AC-01 等稳定编号关联规格、实施和验证,不只有勾选框。
|
|
46
|
+
|
|
47
|
+
改动前记录旧功能和版本基线。已有本地 Git 时沿用;没有时建立源码快照及恢复说明,不需要远程账号。快照包含恢复所需源码和依赖锁定信息,排除账号秘密、缓存和无关私人数据。运行包 ZIP 不能替代复杂项目源码备份。
|
|
48
|
+
|
|
49
|
+
每张实施票和候选版本必须真正执行 code-review,分别回答“符合项目规范吗”“实现规格承诺了吗”,保留两个独立审查结果。主代理预先提供固定基线、覆盖新文件的真实差异和本地规格,原生 Local Markdown tracker 无需 GitHub。确需工作区或快照差异适配时写明方法,不能用空 diff 或包内简短审查代替该技能。审查通过也不等于真实使用验收。
|
|
50
|
+
|
|
51
|
+
审查前按 [高效交付](efficient-delivery.md) 备齐交付文件、当前证据和标为待审查的报告;同一候选的批量审查须明确覆盖各票,不因归档更新重审产品。验收和双轴审查通过后一次更新必要记录并交付,禁止为收尾文档重新运行全部检查。
|
|
52
|
+
|
|
53
|
+
## 恢复及可选同步
|
|
54
|
+
|
|
55
|
+
读取索引后核实项目、版本、改动、票和证据存在性、包哈希、待答问题、能力是否仍可用。文件存在不证明内容正确;源代码或包变化后按影响范围重验,矛盾以实际证据纠正。
|
|
56
|
+
|
|
57
|
+
保存下一条具体动作和阻塞条件。重新加载宿主后验证能力生效再继续;换工具需打开同一项目,不承诺自动共享对话。
|
|
58
|
+
|
|
59
|
+
只有用户选择 GitHub 协作后才按授权同步具体仓库和范围,维护本地/远程编号映射、去重及失败状态,并明确权威任务系统。上传范围不默认含私人测试数据或全部项目文件。
|
|
60
|
+
|
|
61
|
+
## 用户要求保存示例时
|
|
62
|
+
|
|
63
|
+
为每场演练建立独立 `examples/<编号-名称>/`,至少包含两个部分:完整的 `extension/`,以及 `conversation.md`。相关需求、决定、测试、独立审查、失败和验收证据放入 `records/`,与运行文件分开。不能只列几个选题或复制同一插件换名充数。
|
|
64
|
+
|
|
65
|
+
用户要求独立 CLI 或完整会话时,按 [高效交付](efficient-delivery.md) 的专门约定保存主线程实际输入、公开 AI 回复及原始文件;完整记录要求不能用关键往返摘录替代。
|
|
66
|
+
|
|
67
|
+
会话记录注明日期、来源和完整度。能取得原始消息则保留实际需求及关键往返;只有可见摘录时写“整理稿”,不得补写成逐字原文。为说明流程而写的对话明确标“演示”,场景角色的回答不能当作真实用户授权或实测结论。记录实际实现选择、检查结果、修复以及下一步,并链接证据。
|
|
68
|
+
|
|
69
|
+
把临时产物迁入例子目录,核对源文件哈希,保留有用原始证据;原始未回填进度原样存档并另写当前状态。更新索引和包内链接后,默认使用 Playwright MCP(或用户在环境不支持时明确选择的受控替代)加载迁入的当前实际产物,完成原生入口端到端核心操作、适用关闭重开及验收门禁,把 `gate-report` 和实际证据收入 `records/`,才将例子标为可用并关闭交付。
|
|
70
|
+
|
|
71
|
+
已有例子缺真实验收时,如实归档旧状态并继续补做;不能把“未验证”作为正常完成的交付出口,也不能补写对话让演练显示完成。确有本人操作依赖则保留 `blocked`。仅用户明确只要源码或要求中止时,按该范围交出标为未验收的源码。商店验证只在要求的发布范围内执行,不把本地实测写成商店通过。
|