@aipper/aiws-spec 0.0.51 → 0.0.53
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/docs/pi-plugins-manifest.json +10 -9
- package/docs/pi-plugins-manifest.md +6 -6
- package/docs/skill-manifest.json +18 -0
- package/package.json +1 -1
- package/templates/workspace/.opencode/README.md +49 -0
- package/templates/workspace/.opencode/command/ws-frontend-design.md +17 -0
- package/templates/workspace/.opencode/commands/using-aiws.md +18 -7
- package/templates/workspace/.opencode/plugins/memory-autoload.js +185 -0
- package/templates/workspace/.opencode/skills/codebase-design/SKILL.md +114 -0
- package/templates/workspace/.opencode/skills/domain-modeling/SKILL.md +74 -0
- package/templates/workspace/.opencode/skills/grill-with-docs/SKILL.md +7 -0
- package/templates/workspace/.opencode/skills/tdd/SKILL.md +36 -0
- package/templates/workspace/.opencode/skills/using-aiws/SKILL.md +2 -1
- package/templates/workspace/.opencode/skills/ws-dev/SKILL.md +24 -3
- package/templates/workspace/.opencode/skills/ws-plan/SKILL.md +15 -1
- package/templates/workspace/.opencode/skills/ws-review/SKILL.md +22 -0
- package/templates/workspace/AGENTS.md +13 -0
- package/templates/workspace/manifest.json +9 -121
- package/templates/workspace/.opencode/command/p-aiws-change-archive.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-finish.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-list.md +0 -26
- package/templates/workspace/.opencode/command/p-aiws-change-new.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-next.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-start.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-status.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-sync.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-change-templates-init.md +0 -26
- package/templates/workspace/.opencode/command/p-aiws-change-templates-which.md +0 -26
- package/templates/workspace/.opencode/command/p-aiws-change-validate.md +0 -27
- package/templates/workspace/.opencode/command/p-aiws-hooks-install.md +0 -26
- package/templates/workspace/.opencode/command/p-aiws-hooks-status.md +0 -26
- package/templates/workspace/.opencode/command/p-aiws-init.md +0 -23
- package/templates/workspace/.opencode/command/p-aiws-rollback.md +0 -16
- package/templates/workspace/.opencode/command/p-aiws-update.md +0 -22
- package/templates/workspace/.opencode/command/p-aiws-validate.md +0 -17
- package/templates/workspace/.opencode/command/ws-analyze.md +0 -30
- package/templates/workspace/.opencode/command/ws-auto.md +0 -33
- package/templates/workspace/.opencode/command/ws-autonomy.md +0 -25
- package/templates/workspace/.opencode/command/ws-bugfix.md +0 -35
- package/templates/workspace/.opencode/command/ws-commit.md +0 -87
- package/templates/workspace/.opencode/command/ws-delegate.md +0 -33
- package/templates/workspace/.opencode/command/ws-deliver.md +0 -75
- package/templates/workspace/.opencode/command/ws-handoff.md +0 -43
- package/templates/workspace/.opencode/command/ws-intake.md +0 -22
- package/templates/workspace/.opencode/command/ws-migrate.md +0 -25
- package/templates/workspace/.opencode/command/ws-plan-verify.md +0 -28
- package/templates/workspace/.opencode/command/ws-preflight.md +0 -35
- package/templates/workspace/.opencode/command/ws-pull.md +0 -87
- package/templates/workspace/.opencode/command/ws-push.md +0 -93
- package/templates/workspace/.opencode/command/ws-quality-review.md +0 -30
- package/templates/workspace/.opencode/command/ws-req-change.md +0 -45
- package/templates/workspace/.opencode/command/ws-req-contract-sync.md +0 -21
- package/templates/workspace/.opencode/command/ws-req-contract-validate.md +0 -16
- package/templates/workspace/.opencode/command/ws-req-flow-sync.md +0 -23
- package/templates/workspace/.opencode/command/ws-req-review.md +0 -36
- package/templates/workspace/.opencode/command/ws-rule.md +0 -27
- package/templates/workspace/.opencode/command/ws-spec-review.md +0 -30
- package/templates/workspace/.opencode/command/ws-submodule-setup.md +0 -57
- package/templates/workspace/.opencode/command/ws-verify-before-complete.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-archive.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-finish.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-list.md +0 -26
- package/templates/workspace/.opencode/commands/p-aiws-change-new.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-next.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-start.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-status.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-sync.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-change-templates-init.md +0 -26
- package/templates/workspace/.opencode/commands/p-aiws-change-templates-which.md +0 -26
- package/templates/workspace/.opencode/commands/p-aiws-change-validate.md +0 -27
- package/templates/workspace/.opencode/commands/p-aiws-hooks-install.md +0 -26
- package/templates/workspace/.opencode/commands/p-aiws-hooks-status.md +0 -26
- package/templates/workspace/.opencode/commands/p-aiws-init.md +0 -23
- package/templates/workspace/.opencode/commands/p-aiws-rollback.md +0 -16
- package/templates/workspace/.opencode/commands/p-aiws-update.md +0 -22
- package/templates/workspace/.opencode/commands/p-aiws-validate.md +0 -17
- package/templates/workspace/.opencode/commands/ws-analyze.md +0 -30
- package/templates/workspace/.opencode/commands/ws-auto.md +0 -33
- package/templates/workspace/.opencode/commands/ws-autonomy.md +0 -25
- package/templates/workspace/.opencode/commands/ws-bugfix.md +0 -35
- package/templates/workspace/.opencode/commands/ws-commit.md +0 -18
- package/templates/workspace/.opencode/commands/ws-delegate.md +0 -33
- package/templates/workspace/.opencode/commands/ws-deliver.md +0 -18
- package/templates/workspace/.opencode/commands/ws-handoff.md +0 -18
- package/templates/workspace/.opencode/commands/ws-intake.md +0 -22
- package/templates/workspace/.opencode/commands/ws-migrate.md +0 -18
- package/templates/workspace/.opencode/commands/ws-plan-verify.md +0 -18
- package/templates/workspace/.opencode/commands/ws-preflight.md +0 -35
- package/templates/workspace/.opencode/commands/ws-pull.md +0 -18
- package/templates/workspace/.opencode/commands/ws-push.md +0 -18
- package/templates/workspace/.opencode/commands/ws-quality-review.md +0 -30
- package/templates/workspace/.opencode/commands/ws-req-change.md +0 -45
- package/templates/workspace/.opencode/commands/ws-req-contract-sync.md +0 -21
- package/templates/workspace/.opencode/commands/ws-req-contract-validate.md +0 -16
- package/templates/workspace/.opencode/commands/ws-req-flow-sync.md +0 -23
- package/templates/workspace/.opencode/commands/ws-req-review.md +0 -36
- package/templates/workspace/.opencode/commands/ws-rule.md +0 -27
- package/templates/workspace/.opencode/commands/ws-spec-review.md +0 -30
- package/templates/workspace/.opencode/commands/ws-submodule-setup.md +0 -18
- package/templates/workspace/.opencode/commands/ws-verify-before-complete.md +0 -18
- package/templates/workspace/.opencode/skills/ws-handoff/SKILL.md +0 -18
- package/templates/workspace/.opencode/skills/ws-intake/SKILL.md +0 -80
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 私有:Hooks 状态:查看当前仓库 hooks 门禁状态
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:aiws-hooks-status -->
|
|
5
|
-
# aiws hooks status
|
|
6
|
-
|
|
7
|
-
(私有原子入口;日常优先用 ws-* 链路。)
|
|
8
|
-
|
|
9
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
10
|
-
|
|
11
|
-
目标:
|
|
12
|
-
- 查看当前仓库 hooks 门禁状态(只读)
|
|
13
|
-
|
|
14
|
-
执行(在仓库根目录):
|
|
15
|
-
```bash
|
|
16
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
17
|
-
./node_modules/.bin/aiws hooks status .
|
|
18
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
19
|
-
aiws hooks status .
|
|
20
|
-
else
|
|
21
|
-
npx @aipper/aiws hooks status .
|
|
22
|
-
fi
|
|
23
|
-
```
|
|
24
|
-
<!-- AIWS_MANAGED_END:opencode:aiws-hooks-status -->
|
|
25
|
-
|
|
26
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 私有:初始化:落盘 AIWS 真值与门禁文件
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:aiws-init -->
|
|
5
|
-
# aiws init
|
|
6
|
-
|
|
7
|
-
(私有原子入口;日常优先用 ws-* 链路。)
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 生成/补齐真值文件与门禁文件(以 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md` 为准)
|
|
11
|
-
- 写入/更新 `.gitignore` 的 aiws 托管块
|
|
12
|
-
- 生成/更新 `.aiws/manifest.json`(用于漂移检测)
|
|
13
|
-
|
|
14
|
-
建议执行:
|
|
15
|
-
1) `npx @aipper/aiws init`
|
|
16
|
-
2) `npx @aipper/aiws validate`
|
|
17
|
-
|
|
18
|
-
约束:
|
|
19
|
-
- 不写入任何 secrets
|
|
20
|
-
- 只允许更新托管块(`AIWS_MANAGED_BEGIN/END`)或 spec 指定的 `replace_file` 文件
|
|
21
|
-
<!-- AIWS_MANAGED_END:opencode:aiws-init -->
|
|
22
|
-
|
|
23
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 私有:回滚:从 .aiws/backups 恢复快照
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:aiws-rollback -->
|
|
5
|
-
# aiws rollback
|
|
6
|
-
|
|
7
|
-
(私有原子入口;日常优先用 ws-* 链路。)
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 从 `.aiws/backups/` 恢复到某次备份快照
|
|
11
|
-
|
|
12
|
-
建议执行:
|
|
13
|
-
- `npx @aipper/aiws rollback latest`
|
|
14
|
-
<!-- AIWS_MANAGED_END:opencode:aiws-rollback -->
|
|
15
|
-
|
|
16
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 私有:更新:刷新模板与 tool-native 文件(先备份)
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:aiws-update -->
|
|
5
|
-
# aiws update
|
|
6
|
-
|
|
7
|
-
(私有原子入口;日常优先用 ws-* 链路。)
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 基于当前 `@aipper/aiws-spec` 刷新模板与 tool-native 文件
|
|
11
|
-
- 更新前备份到 `.aiws/backups/<timestamp>/`
|
|
12
|
-
|
|
13
|
-
建议执行:
|
|
14
|
-
1) `npx @aipper/aiws update`
|
|
15
|
-
2) `npx @aipper/aiws validate`
|
|
16
|
-
|
|
17
|
-
约束:
|
|
18
|
-
- 不写入任何 secrets
|
|
19
|
-
- 只更新托管块或 spec 指定的 `replace_file` 文件
|
|
20
|
-
<!-- AIWS_MANAGED_END:opencode:aiws-update -->
|
|
21
|
-
|
|
22
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 私有:门禁:校验 required/托管块/漂移(可落盘 stamp)
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:aiws-validate -->
|
|
5
|
-
# aiws validate
|
|
6
|
-
|
|
7
|
-
(私有原子入口;日常优先用 ws-* 链路。)
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 作为 CI/本地门禁:校验 required 文件结构、托管块、`.aiws/manifest.json` 漂移
|
|
11
|
-
- 强门禁:缺 `python3`/缺 required 脚本也应失败
|
|
12
|
-
|
|
13
|
-
建议执行:
|
|
14
|
-
- `npx @aipper/aiws validate`
|
|
15
|
-
<!-- AIWS_MANAGED_END:opencode:aiws-validate -->
|
|
16
|
-
|
|
17
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 分析:实现前技术分析并落盘证据
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-analyze -->
|
|
5
|
-
# ws analyze
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:在开始实现/修复前做一次技术分析,产出可执行的最小行动清单,并把证据落盘到 `.agentdocs/tmp/analyze/`。
|
|
10
|
-
|
|
11
|
-
输入:
|
|
12
|
-
- 主题/需求:`$ARGUMENTS`(若为空,先问用户一句“本次分析主题是什么?”)
|
|
13
|
-
|
|
14
|
-
步骤(建议):
|
|
15
|
-
1) 先运行 `/ws-preflight`。
|
|
16
|
-
2) 基于真值文件与当前代码现状,输出:
|
|
17
|
-
- 目标 / 非目标
|
|
18
|
-
- 现状证据(文件路径/接口路径)
|
|
19
|
-
- 推荐方案(1 个)+ 备选(可选)
|
|
20
|
-
- 风险与回滚(3–8 条)
|
|
21
|
-
- 最小验证命令(可复现)
|
|
22
|
-
3) 将分析落盘到:`.agentdocs/tmp/analyze/opencode-analysis.md`(目录不存在则创建)。
|
|
23
|
-
4) 回复中必须包含:`Evidence:` 证据文件路径。
|
|
24
|
-
|
|
25
|
-
安全:
|
|
26
|
-
- 不打印 secrets(尤其 `secrets/test-accounts.json`)。
|
|
27
|
-
- 不执行破坏性命令。
|
|
28
|
-
<!-- AIWS_MANAGED_END:opencode:ws-analyze -->
|
|
29
|
-
|
|
30
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 自动 bootstrap:检查 update、确保 watchdog 已启动,并给出下一步
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-auto -->
|
|
5
|
-
# ws auto
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:为当前 OpenCode 工作区执行一次显式 auto bootstrap,先补齐托管内容,再按条件启动 watchdog。
|
|
10
|
-
|
|
11
|
-
执行建议:
|
|
12
|
-
1) 先运行 `/ws-preflight`,确认 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md` 已读取。
|
|
13
|
-
2) 在项目根运行 `aiws opencode auto .`。
|
|
14
|
-
3) 输出:
|
|
15
|
-
- `Auto Bootstrap:`
|
|
16
|
-
- `Update:`
|
|
17
|
-
- `OpenCode mode:`
|
|
18
|
-
- `Watchdog:`
|
|
19
|
-
- `Next:`
|
|
20
|
-
4) 若输出 `watchdog:` 为已启动状态:
|
|
21
|
-
- 若当前任务意图明确:继续 `/using-aiws`、`/ws-plan`、`/ws-dev` 或 `/ws-review`
|
|
22
|
-
- 若当前只是要声明自主协作合同:继续 `/ws-autonomy`
|
|
23
|
-
5) 若输出 `watchdog: skipped (...)`:
|
|
24
|
-
- 明确写出原因
|
|
25
|
-
- 不要假装已经进入 autonomous 模式
|
|
26
|
-
|
|
27
|
-
边界:
|
|
28
|
-
- 允许通过 `aiws update .` 刷新 AIWS 托管内容。
|
|
29
|
-
- 不自动复制 `.opencode/oh-my-opencode.json.example` 成真实配置。
|
|
30
|
-
- 不自动批准 host permission,不自动执行 tmux rescue。
|
|
31
|
-
<!-- AIWS_MANAGED_END:opencode:ws-auto -->
|
|
32
|
-
|
|
33
|
-
可在下方追加本项目对 auto bootstrap 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 自主协作实验:声明 completion/retry/rescue 合同,并按需启用 tmux helper
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-autonomy -->
|
|
5
|
-
# ws autonomy
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:声明当前 OpenCode/oMo 任务的 autonomous execution mode,并写清 completion/retry/rescue 合同。
|
|
10
|
-
|
|
11
|
-
执行建议:
|
|
12
|
-
1) 先运行 `/ws-preflight`,再读取 `packages/spec/docs/opencode-autonomous-swarm.md` 与 `packages/spec/docs/opencode-omo-adapter.md`。
|
|
13
|
-
2) 输出:
|
|
14
|
-
- `Execution Mode: single-agent / omo-native / omo-native + tmux-swarm`
|
|
15
|
-
- `Completion Contract:`
|
|
16
|
-
- `Retry Contract:`
|
|
17
|
-
- `Rescue Policy:`
|
|
18
|
-
- `Evidence:`
|
|
19
|
-
3) 若选择 `omo-native + tmux-swarm`:
|
|
20
|
-
- 先运行 `.opencode/helpers/tmux-swarm-scan.sh`
|
|
21
|
-
- 仅在需要安全白名单救援时运行 `.opencode/helpers/tmux-swarm-rescue.sh`
|
|
22
|
-
4) 明确这是实验层,不接管 runtime controller,不替代 `ws-plan` / `ws-dev` / `ws-review`。
|
|
23
|
-
<!-- AIWS_MANAGED_END:opencode:ws-autonomy -->
|
|
24
|
-
|
|
25
|
-
可在下方追加本项目对 autonomous swarm 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 缺陷修复:禅道 MCP 拉单、图片证据落盘并汇总 fix_bus_issues.csv
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-bugfix -->
|
|
5
|
-
# ws bugfix
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 通过禅道 MCP 拉单、图片证据落盘并汇总 `issues/fix_bus_issues.csv`。
|
|
11
|
-
|
|
12
|
-
建议流程:
|
|
13
|
-
1) 先运行 `/ws-preflight`。
|
|
14
|
-
2) 若当前不在 `change/<change-id>` 分支 / worktree,先建立 change 上下文:
|
|
15
|
-
- 工作区先保持干净
|
|
16
|
-
- 仓库已有提交:优先 `aiws change start <change-id> --hooks --switch`
|
|
17
|
-
- superproject + submodule:优先 `aiws change start <change-id> --hooks --switch`
|
|
18
|
-
- 仓库尚无提交 / 不满足 worktree 前置条件:回退 `aiws change start <change-id> --hooks --no-switch`
|
|
19
|
-
3) 若上一步创建了 worktree:后续 bug 证据、CSV 更新、`/ws-dev` 修复都必须在该 worktree 中继续。
|
|
20
|
-
4) 通过已配置 zentao MCP 拉取 bug 字段与附件列表。
|
|
21
|
-
5) 落盘证据到当前 active change 上下文的 `changes/<change-id>/bug/`:
|
|
22
|
-
- `zentao-bug-<bug-id>.json`
|
|
23
|
-
- `zentao-bug-<bug-id>.md`
|
|
24
|
-
- `images/<bug-id>/...`
|
|
25
|
-
6) upsert 当前 active change 上下文中的 `issues/fix_bus_issues.csv`(主键 `Bug_ID`)。
|
|
26
|
-
7) 进入 `/ws-dev` 修复并回填 `Fix_Status/Verify_Command/Updated_At`。
|
|
27
|
-
8) 质量门:`aiws change validate <change-id> --strict` + `aiws validate . --stamp`。
|
|
28
|
-
|
|
29
|
-
强制约束:
|
|
30
|
-
- 不自动 commit / push。
|
|
31
|
-
- 不写入 secrets(token、cookie、内网地址)。
|
|
32
|
-
- 无法复现时先输出阻塞信息并落盘,不直接改代码。
|
|
33
|
-
<!-- AIWS_MANAGED_END:opencode:ws-bugfix -->
|
|
34
|
-
|
|
35
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 提交:门禁/审计后提交(submodule 感知)
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-commit -->
|
|
5
|
-
# ws commit
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:在**当前分支可直提**的前提下,先做审计与门禁,并在存在 submodule 时给出正确的提交顺序(先 submodule,再 superproject),最后执行 `git commit`。
|
|
10
|
-
补充:若你经常遇到 submodule detached,建议日常拉取优先使用 `/ws-pull`(尽量把 submodule “挂回分支”且不改变 gitlink commit)。
|
|
11
|
-
|
|
12
|
-
安全约束(强制):
|
|
13
|
-
- 不自动 `git add -A`;只在用户明确指示时才做 staging
|
|
14
|
-
- 不使用 `--no-verify` 绕过 hooks
|
|
15
|
-
- 不自动 push
|
|
16
|
-
- 不打印 secrets
|
|
17
|
-
- commit message 优先使用中文;若启用了 `.githooks/commit-msg`,默认仅提示,只有 strict 模式才会拒绝全英文首行(`Merge/Revert/fixup!/squash!` 例外)
|
|
18
|
-
|
|
19
|
-
步骤(建议):
|
|
20
|
-
1) 先运行 `/ws-preflight`。
|
|
21
|
-
2) 运行 `/ws-review`(优先落盘审计证据到 `changes/<change-id>/review/`)。
|
|
22
|
-
3) 运行门禁校验并写 stamp:
|
|
23
|
-
```bash
|
|
24
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
25
|
-
./node_modules/.bin/aiws validate . --stamp
|
|
26
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
27
|
-
aiws validate . --stamp
|
|
28
|
-
else
|
|
29
|
-
npx @aipper/aiws validate . --stamp
|
|
30
|
-
fi
|
|
31
|
-
```
|
|
32
|
-
4) 输出提交上下文(必须输出给用户确认):
|
|
33
|
-
```bash
|
|
34
|
-
git branch --show-current
|
|
35
|
-
git status --porcelain
|
|
36
|
-
```
|
|
37
|
-
5) submodule 感知检查:
|
|
38
|
-
```bash
|
|
39
|
-
if [[ -f .gitmodules ]]; then
|
|
40
|
-
git config --file .gitmodules --get-regexp '^submodule\\..*\\.path$' || true
|
|
41
|
-
fi
|
|
42
|
-
while read -r _ sub_path; do
|
|
43
|
-
[[ -z "${sub_path:-}" ]] && continue
|
|
44
|
-
echo "== submodule: ${sub_path} =="
|
|
45
|
-
git -C "${sub_path}" rev-parse --abbrev-ref HEAD 2>/dev/null || true
|
|
46
|
-
git -C "${sub_path}" status --porcelain || true
|
|
47
|
-
done < <(git config --file .gitmodules --get-regexp '^submodule\\..*\\.path$' 2>/dev/null || true)
|
|
48
|
-
```
|
|
49
|
-
判定规则(强制):
|
|
50
|
-
- 任一 submodule `git status --porcelain` 非空:停止提交 superproject;先在对应 submodule 完成 commit,再回到 superproject 更新并提交 gitlink。
|
|
51
|
-
- 若该 submodule 当前为 detached HEAD:先按 `.gitmodules` 的目标分支挂到 `aiws/pin/<target-branch>`;不要直接切 `change/<change-id>` / `main` / `master`。
|
|
52
|
-
6) 检查 staging(必须输出给用户确认):
|
|
53
|
-
```bash
|
|
54
|
-
git status --porcelain
|
|
55
|
-
git diff --staged --submodule=short
|
|
56
|
-
```
|
|
57
|
-
7) 若没有 staged changes:停止并提示用户先明确要提交哪些文件(例如 `git add -p` 或 `git add <path>`)。
|
|
58
|
-
8) 优先生成并确认中文 commit message(格式建议:`<类型>: <简述>`;若用户明确要求英文也可保留,但 strict 模式下会被 hook 拒绝)。
|
|
59
|
-
9) 执行提交(不带 `--no-verify`):
|
|
60
|
-
```bash
|
|
61
|
-
git commit -m "<message>"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
输出必须包含:
|
|
65
|
-
- `证据(Evidence):` `changes/<change-id>/review/*`(无 change-id 时回退 `.agentdocs/tmp/review/*`) + `.agentdocs/tmp/aiws-validate/*`
|
|
66
|
-
- `上下文(Context):` 当前分支 + 是否检测到 submodule + 若阻断则给出阻断原因
|
|
67
|
-
- `下一步(Next):` 若存在 submodule 改动,先提示用户进入 submodule 提交
|
|
68
|
-
<!-- AIWS_MANAGED_END:opencode:ws-commit -->
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
description: 提交:门禁/审计后提交(submodule 感知)
|
|
72
|
-
---
|
|
73
|
-
# ws-commit
|
|
74
|
-
|
|
75
|
-
Thin CLI wrapper. Delegates to `aiws commit`.
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
79
|
-
./node_modules/.bin/aiws commit
|
|
80
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
81
|
-
aiws commit
|
|
82
|
-
else
|
|
83
|
-
npx @aipper/aiws commit
|
|
84
|
-
fi
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 委托:按 AIWS 合同拆分子任务,并优先借用 oMo agent
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-delegate -->
|
|
5
|
-
# ws delegate
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:先写清 delegation plan,再决定是否优先借用 `oh-my-opencode` 的 `planner-sisyphus` / `explore` / `librarian` / `oracle`;若不可用则回退,不阻断流程。
|
|
10
|
-
|
|
11
|
-
执行建议:
|
|
12
|
-
1) 先运行 `/ws-preflight`,再读取 `packages/spec/docs/workflow-delegation-contracts.md` 与 `packages/spec/docs/opencode-omo-adapter.md`。
|
|
13
|
-
2) 先写 `Delegation Plan:`,至少包含:
|
|
14
|
-
- `role`
|
|
15
|
-
- `preferred agent`
|
|
16
|
-
- `task`
|
|
17
|
-
- `readScope`
|
|
18
|
-
- `writeScope`
|
|
19
|
-
- `artifactTargets`
|
|
20
|
-
- `fallback`
|
|
21
|
-
3) 若检测到 `.opencode/oh-my-opencode.json` 或当前会话明确可用相关 agent:
|
|
22
|
-
- planning 优先 `planner-sisyphus`
|
|
23
|
-
- 探索优先 `@explore` / `@librarian`
|
|
24
|
-
- 独立审查优先 `@oracle`
|
|
25
|
-
4) 主 agent 统一收敛结果,并把产物回收到:
|
|
26
|
-
- `changes/<id>/analysis/`
|
|
27
|
-
- `changes/<id>/patches/`
|
|
28
|
-
- `changes/<id>/review/`
|
|
29
|
-
- `changes/<id>/evidence/`
|
|
30
|
-
5) 若 oMo agent 不可用:明确回退为普通 OpenCode delegation / 单 agent 执行。
|
|
31
|
-
<!-- AIWS_MANAGED_END:opencode:ws-delegate -->
|
|
32
|
-
|
|
33
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 交付:submodules+superproject 分步提交并安全合并回 base
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-deliver -->
|
|
5
|
-
# ws deliver
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:适配 superproject + submodule(数量不固定)的交付收尾,降低提交顺序和合并回 base 分支的出错概率:
|
|
10
|
-
1) 先逐个提交 submodule(每个 repo 单独确认 commit message;默认 `git add -p`)
|
|
11
|
-
2) 再提交 superproject(包含 submodule gitlink 指针更新 + 自身改动/变更工件)
|
|
12
|
-
3) 最后 fast-forward 合并回目标分支(复用 `aiws change finish`;建议用 `/ws-finish`)
|
|
13
|
-
|
|
14
|
-
强制约束:
|
|
15
|
-
- 不自动 `git add -A`。
|
|
16
|
-
- 不自动 push。
|
|
17
|
-
- 不自动删除分支。
|
|
18
|
-
|
|
19
|
-
建议流程(按顺序):
|
|
20
|
-
1) 先运行 `/ws-preflight`。
|
|
21
|
-
2) 如果存在 `.gitmodules` 但缺少 `submodule.<name>.branch`,先运行 `/ws-submodule-setup` 并提交 `.gitmodules`(否则 `aiws validate .` 会失败,且 submodule 工作流会产生人为差异)。
|
|
22
|
-
2.1) 若存在 submodule:必须准备 `changes/<change-id>/submodules.targets`,并覆盖所有 submodule path;这是本次交付的目标分支真值。
|
|
23
|
-
- 生成该文件时可先做默认预填:detached HEAD 默认建议取 `.gitmodules` 声明分支;已附着在本地分支时默认建议取当前分支。
|
|
24
|
-
- 上述都只是建议值;真正的 deliver/finish 只认 `submodules.targets`。
|
|
25
|
-
2) 发现 submodules:
|
|
26
|
-
- `git submodule status --recursive`
|
|
27
|
-
3) 逐个提交 submodules(按上一步顺序):
|
|
28
|
-
- `git -C "<sub_path>" status --porcelain`
|
|
29
|
-
- 先说明该 submodule 目标分支的来源:attached branch 默认建议取当前分支;detached HEAD 默认建议取 `.gitmodules`;若与 `submodules.targets` 已落盘值冲突,则以 `submodules.targets` 为准
|
|
30
|
-
- 若当前为 detached HEAD:不要直接切 `change/<change-id>` / `main` / `master`;先按 `submodules.targets`(若分支为 `.` 则展开为 `.ws-change.json` 的 `base_branch`)挂到 `aiws/pin/<target-branch>`
|
|
31
|
-
- `git -C "<sub_path>" add -p`
|
|
32
|
-
- `git -C "<sub_path>" diff --staged --stat`
|
|
33
|
-
- 生成并让用户确认该 submodule 的 commit message(每个 repo 单独确认)
|
|
34
|
-
- `git -C "<sub_path>" commit -m "<message>"`
|
|
35
|
-
4) 提交 superproject(gitlinks + 自身改动):
|
|
36
|
-
- `git diff --submodule`
|
|
37
|
-
- `git add <submodule-path-1> <submodule-path-2> ...`
|
|
38
|
-
- `git add -p`
|
|
39
|
-
- 生成并让用户确认 superproject 的 commit message
|
|
40
|
-
- `git commit -m "<message>"`
|
|
41
|
-
5) (推荐)门禁 + 证据:
|
|
42
|
-
- `aiws validate . --stamp`(未安装全局 aiws 时可用 `npx @aipper/aiws validate . --stamp`)
|
|
43
|
-
5.1) (强烈建议)生成持久证据并回填 `Evidence_Path`:
|
|
44
|
-
- `aiws change evidence <change-id>`(未安装全局 aiws 时可用 `npx @aipper/aiws change evidence <change-id>`)
|
|
45
|
-
5.2) (可选)生成状态快照(建议):
|
|
46
|
-
- `aiws change state <change-id> --write`
|
|
47
|
-
6) 安全合并回目标分支:
|
|
48
|
-
- 优先运行 `/ws-finish`(底层调用 `aiws change finish`,默认 `--ff-only`;push 成功后会清理对应 change worktree)
|
|
49
|
-
|
|
50
|
-
输出要求:
|
|
51
|
-
- `Submodules:` 每个 submodule 的 commit 摘要(repo/path → sha → message)
|
|
52
|
-
- `Superproject:` commit 摘要
|
|
53
|
-
- `Merge:` `/ws-finish` 输出(into/from)
|
|
54
|
-
- `Worktree cleanup:` 若存在独立 change worktree,输出清理结果(removed/skipped + reason)
|
|
55
|
-
- `Evidence:` `.agentdocs/tmp/aiws-validate/*.json`(若使用 --stamp)
|
|
56
|
-
<!-- AIWS_MANAGED_END:opencode:ws-deliver -->
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
description: 交付:submodules+superproject 分步提交并安全合并回 base
|
|
60
|
-
---
|
|
61
|
-
# ws-deliver
|
|
62
|
-
|
|
63
|
-
Thin CLI wrapper. Delegates to `aiws deliver`.
|
|
64
|
-
|
|
65
|
-
```bash
|
|
66
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
67
|
-
./node_modules/.bin/aiws deliver
|
|
68
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
69
|
-
aiws deliver
|
|
70
|
-
else
|
|
71
|
-
npx @aipper/aiws deliver
|
|
72
|
-
fi
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 交接:查看归档 change 的 handoff.md(标准由 aiws change finish --push 自动归档生成)
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-handoff -->
|
|
5
|
-
# ws handoff
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 交接与回放:通过 `handoff.md` 让已归档的 change 可被下一位/下一次会话快速接力。
|
|
11
|
-
- handoff 文件位置:`changes/archive/<date>-<change-id>/handoff.md`(默认由 `aiws change finish --push` 自动归档时生成)。
|
|
12
|
-
|
|
13
|
-
执行建议:
|
|
14
|
-
1) 先确认 change 已通过 `/ws-finish` 或 `aiws change finish --push` 完成自动归档。
|
|
15
|
-
2) 查看 handoff:
|
|
16
|
-
```bash
|
|
17
|
-
change_id="<change-id>"
|
|
18
|
-
ls -1 changes/archive/*-"${change_id}"/handoff.md
|
|
19
|
-
sed -n '1,160p' changes/archive/*-"${change_id}"/handoff.md
|
|
20
|
-
```
|
|
21
|
-
3) 依赖提示:
|
|
22
|
-
- 若你在某个 change 的 `proposal.md` 声明了 `Depends_On`,`aiws change start` 会尝试读取依赖 change 的 `handoff.md` 并输出摘要(前提:依赖已归档且 handoff 存在)。
|
|
23
|
-
- 若是历史/异常场景尚未归档,再手工运行 `/p-aiws-change-archive`。
|
|
24
|
-
<!-- AIWS_MANAGED_END:opencode:ws-handoff -->
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
description: 交接:查看归档 change 的 handoff.md(标准由 aiws change finish --push 自动归档生成)
|
|
28
|
-
---
|
|
29
|
-
# ws-handoff
|
|
30
|
-
|
|
31
|
-
Thin CLI wrapper. Delegates to `aiws handoff`.
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
35
|
-
./node_modules/.bin/aiws handoff
|
|
36
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
37
|
-
aiws handoff
|
|
38
|
-
else
|
|
39
|
-
npx @aipper/aiws handoff
|
|
40
|
-
fi
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 计划前置澄清:逐条冻结问题并写入 intake 草案,再交给 ws-plan
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-intake -->
|
|
5
|
-
# ws intake
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 在正式 `/ws-plan` 前,先把需求里的待确认问题逐条澄清并冻结。
|
|
11
|
-
|
|
12
|
-
执行建议:
|
|
13
|
-
1) 先读取 `AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`。
|
|
14
|
-
2) 若存在最新 `plan/*.intake.md`,先续写;否则创建新的 intake 草案。
|
|
15
|
-
3) 把问题写成 `Open Questions`,状态只允许 `open / in_discussion / frozen / deferred`。
|
|
16
|
-
4) 每次只推进 1 条 `Current question`,允许围绕这 1 条问题多轮沟通。
|
|
17
|
-
5) 当前问题未标记为 `frozen` 或 `deferred` 前,不进入下一题。
|
|
18
|
-
6) 每轮都要把结论落到 `plan/<timestamp>-<slug>.intake.md`,并输出 `Ready for ws-plan: yes/no`。
|
|
19
|
-
7) 只有关键问题已冻结时,`Next` 才能进入 `/ws-plan`;否则继续 `/ws-intake`。
|
|
20
|
-
<!-- AIWS_MANAGED_END:opencode:ws-intake -->
|
|
21
|
-
|
|
22
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 迁移:把仓库对齐到 aiws workspace 模板
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-migrate -->
|
|
5
|
-
# ws migrate
|
|
6
|
-
|
|
7
|
-
用中文输出;命令与路径保持原样不翻译。
|
|
8
|
-
|
|
9
|
-
目标:把当前仓库补齐为 aiws workspace 模板,并启用可验证门禁。
|
|
10
|
-
|
|
11
|
-
执行(在项目根目录):
|
|
12
|
-
1) 若已存在 `.aiws/manifest.json`:`npx @aipper/aiws update .`
|
|
13
|
-
2) 否则:`npx @aipper/aiws init .`
|
|
14
|
-
3) 门禁校验:`npx @aipper/aiws validate .`
|
|
15
|
-
4) 启用本机 git hooks(推荐,本地生效):`git config core.hooksPath .githooks`
|
|
16
|
-
|
|
17
|
-
回滚:
|
|
18
|
-
- 恢复最近一次快照:`npx @aipper/aiws rollback . latest`
|
|
19
|
-
|
|
20
|
-
约束:
|
|
21
|
-
- 不写入任何 secrets。
|
|
22
|
-
- 不执行破坏性命令。
|
|
23
|
-
<!-- AIWS_MANAGED_END:opencode:ws-migrate -->
|
|
24
|
-
|
|
25
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 计划质检:执行前检查并给出最小修正项
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-plan-verify -->
|
|
5
|
-
# ws plan verify
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:
|
|
10
|
-
- 执行前检查计划是否跑偏,并给出最小修正项。
|
|
11
|
-
|
|
12
|
-
执行建议:
|
|
13
|
-
1) 先运行 `/ws-preflight`。
|
|
14
|
-
2) 运行严格门禁:
|
|
15
|
-
```bash
|
|
16
|
-
if [[ -x "./node_modules/.bin/aiws" ]]; then
|
|
17
|
-
./node_modules/.bin/aiws change validate <change-id> --strict
|
|
18
|
-
elif command -v aiws >/dev/null 2>&1; then
|
|
19
|
-
aiws change validate <change-id> --strict
|
|
20
|
-
else
|
|
21
|
-
npx @aipper/aiws change validate <change-id> --strict
|
|
22
|
-
fi
|
|
23
|
-
```
|
|
24
|
-
3) 若失败:先修 `proposal.md` / `plan` 的绑定字段与验证命令,再复跑。
|
|
25
|
-
4) 通过后再进入 `/ws-dev`。
|
|
26
|
-
<!-- AIWS_MANAGED_END:opencode:ws-plan-verify -->
|
|
27
|
-
|
|
28
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: 预检:读取真值文件并输出约束摘要
|
|
3
|
-
---
|
|
4
|
-
<!-- AIWS_MANAGED_BEGIN:opencode:ws-preflight -->
|
|
5
|
-
# ws preflight
|
|
6
|
-
|
|
7
|
-
用中文输出(命令/路径/代码标识符保持原样不翻译)。
|
|
8
|
-
|
|
9
|
-
目标:在开始任何“写代码/改配置/落盘文件”之前,对齐工作区真值文件,避免规则漂移。
|
|
10
|
-
|
|
11
|
-
执行步骤(强制):
|
|
12
|
-
1) 定位项目根目录(submodule 感知):
|
|
13
|
-
- 优先:`git rev-parse --show-superproject-working-tree`(submodule 内上溯到 superproject 根)
|
|
14
|
-
- 若为空:`git rev-parse --show-toplevel`
|
|
15
|
-
- 若两者都失败:停止并让用户确认当前目录是否为项目根(不要猜测)。
|
|
16
|
-
2) 在项目根目录读取以下文件(存在则必须读取;缺失则明确报告缺失项,不要臆测内容):
|
|
17
|
-
- `AI_PROJECT.md`
|
|
18
|
-
- `REQUIREMENTS.md`
|
|
19
|
-
- `AI_WORKSPACE.md`
|
|
20
|
-
3) 输出:
|
|
21
|
-
- `Root:` <项目根路径>
|
|
22
|
-
- `Found:` <实际读取到的文件列表>
|
|
23
|
-
- `Missing:` <缺失文件列表>
|
|
24
|
-
- `OpenCode mode:`
|
|
25
|
-
- 若检测到 `.opencode/oh-my-opencode.json`:`oMo-enabled`
|
|
26
|
-
- 否则:`standard-opencode`
|
|
27
|
-
- 若为 `oMo-enabled`:附一句说明后续 `ws-plan` / `ws-review` / `ws-spec-review` / `ws-quality-review` / `ws-delegate` 会优先借用 oMo agent
|
|
28
|
-
- `Key rules:` 3–8 条 bullet(范围/禁止项/必须产物/必须验证命令)
|
|
29
|
-
|
|
30
|
-
安全:
|
|
31
|
-
- 不打印 secrets;遇到疑似敏感值只提示“存在风险”但不要复述原文。
|
|
32
|
-
- 不执行破坏性命令。
|
|
33
|
-
<!-- AIWS_MANAGED_END:opencode:ws-preflight -->
|
|
34
|
-
|
|
35
|
-
可在下方追加本项目对 OpenCode 的额外说明(托管块外内容会被保留)。
|