@aipper/aiws-spec 0.0.29 → 0.0.31

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.
Files changed (126) hide show
  1. package/docs/workflow-delegation-contracts.json +40 -1
  2. package/docs/workflow-delegation-contracts.md +10 -0
  3. package/docs/workflow-delegation-contracts.schema.json +57 -0
  4. package/docs/workflow-governance-rules.md +1 -1
  5. package/docs/workflow-review-gates.json +6 -0
  6. package/docs/workflow-review-gates.md +14 -5
  7. package/docs/workflow-review-gates.schema.json +4 -0
  8. package/docs/workflow-router-rules.json +46 -14
  9. package/docs/workflow-router-rules.md +19 -16
  10. package/docs/workflow-router-rules.schema.json +4 -0
  11. package/docs/workflow-stage-contracts.json +22 -2
  12. package/docs/workflow-stage-contracts.md +15 -13
  13. package/docs/workflow-stage-contracts.schema.json +12 -1
  14. package/package.json +1 -1
  15. package/templates/workspace/.agents/skills/p-aiws-change-archive/SKILL.md +1 -1
  16. package/templates/workspace/.agents/skills/p-aiws-change-finish/SKILL.md +1 -1
  17. package/templates/workspace/.agents/skills/p-aiws-change-new/SKILL.md +2 -2
  18. package/templates/workspace/.agents/skills/p-aiws-change-start/SKILL.md +1 -1
  19. package/templates/workspace/.agents/skills/p-aiws-change-sync/SKILL.md +2 -2
  20. package/templates/workspace/.agents/skills/p-aiws-change-validate/SKILL.md +1 -1
  21. package/templates/workspace/.agents/skills/p-aiws-validate/SKILL.md +1 -1
  22. package/templates/workspace/.agents/skills/p-tasks-plan/SKILL.md +7 -7
  23. package/templates/workspace/.agents/skills/using-aiws/SKILL.md +11 -7
  24. package/templates/workspace/.agents/skills/ws-analyze/SKILL.md +2 -2
  25. package/templates/workspace/.agents/skills/ws-bugfix/SKILL.md +8 -8
  26. package/templates/workspace/.agents/skills/ws-commit/SKILL.md +5 -5
  27. package/templates/workspace/.agents/skills/ws-delegate/SKILL.md +4 -4
  28. package/templates/workspace/.agents/skills/ws-deliver/SKILL.md +5 -5
  29. package/templates/workspace/.agents/skills/ws-dev/SKILL.md +32 -2
  30. package/templates/workspace/.agents/skills/ws-dev-lite/SKILL.md +2 -2
  31. package/templates/workspace/.agents/skills/ws-finish/SKILL.md +9 -5
  32. package/templates/workspace/.agents/skills/ws-frontend-design/SKILL.md +1 -1
  33. package/templates/workspace/.agents/skills/ws-handoff/SKILL.md +5 -5
  34. package/templates/workspace/.agents/skills/ws-migrate/SKILL.md +18 -0
  35. package/templates/workspace/.agents/skills/ws-plan/SKILL.md +5 -5
  36. package/templates/workspace/.agents/skills/ws-plan-verify/SKILL.md +5 -5
  37. package/templates/workspace/.agents/skills/ws-pull/SKILL.md +18 -0
  38. package/templates/workspace/.agents/skills/ws-push/SKILL.md +18 -0
  39. package/templates/workspace/.agents/skills/ws-quality-review/SKILL.md +5 -5
  40. package/templates/workspace/.agents/skills/ws-review/SKILL.md +8 -8
  41. package/templates/workspace/.agents/skills/ws-spec-review/SKILL.md +5 -5
  42. package/templates/workspace/.agents/skills/ws-submodule-setup/SKILL.md +18 -0
  43. package/templates/workspace/.agents/skills/ws-verify-before-complete/SKILL.md +5 -5
  44. package/templates/workspace/{changes → .aiws/changes}/README.md +13 -13
  45. package/templates/workspace/{changes → .aiws/changes}/templates/proposal.md +12 -12
  46. package/templates/workspace/{changes → .aiws/changes}/templates/tasks.md +8 -8
  47. package/templates/workspace/{issues → .aiws/issues}/problem-issues.csv +1 -1
  48. package/templates/workspace/.aiws/journal/.gitkeep +1 -0
  49. package/templates/workspace/{requirements → .aiws/requirements}/requirements-issues.csv +1 -1
  50. package/templates/workspace/.aiws/tmp/.gitkeep +0 -0
  51. package/templates/workspace/{tools → .aiws/tools}/requirements_contract.py +2 -2
  52. package/templates/workspace/{tools → .aiws/tools}/requirements_contract_sync.py +2 -2
  53. package/templates/workspace/{tools → .aiws/tools}/requirements_flow_gen.py +1 -1
  54. package/templates/workspace/{tools → .aiws/tools}/server_test_runner.py +10 -10
  55. package/templates/workspace/{tools → .aiws/tools}/ws_change_check.py +23 -23
  56. package/templates/workspace/{tools → .aiws/tools}/ws_resolve_sub_target.sh +2 -2
  57. package/templates/workspace/{tools → .aiws/tools}/ws_tasks_plan.py +3 -3
  58. package/templates/workspace/.claude/skills/ws-commit/SKILL.md +5 -5
  59. package/templates/workspace/.claude/skills/ws-deliver/SKILL.md +5 -5
  60. package/templates/workspace/.claude/skills/ws-finish/SKILL.md +9 -5
  61. package/templates/workspace/.claude/skills/ws-handoff/SKILL.md +5 -5
  62. package/templates/workspace/.claude/skills/ws-migrate/SKILL.md +18 -0
  63. package/templates/workspace/.claude/skills/ws-plan-verify/SKILL.md +5 -5
  64. package/templates/workspace/.claude/skills/ws-pull/SKILL.md +18 -0
  65. package/templates/workspace/.claude/skills/ws-push/SKILL.md +18 -0
  66. package/templates/workspace/.claude/skills/ws-submodule-setup/SKILL.md +18 -0
  67. package/templates/workspace/.claude/skills/ws-verify-before-complete/SKILL.md +5 -5
  68. package/templates/workspace/.githooks/pre-commit +13 -0
  69. package/templates/workspace/.githooks/pre-push +7 -0
  70. package/templates/workspace/.opencode/commands/ws-finish.md +66 -1
  71. package/templates/workspace/.opencode/helpers/approval-whitelist-check.sh +1 -1
  72. package/templates/workspace/.opencode/helpers/approval-whitelist-run.sh +1 -1
  73. package/templates/workspace/.opencode/helpers/approval-whitelist-watchdog.sh +1 -1
  74. package/templates/workspace/.opencode/helpers/tmux-swarm-rescue.sh +1 -1
  75. package/templates/workspace/.opencode/helpers/tmux-swarm-scan.sh +1 -1
  76. package/templates/workspace/.opencode/lib/aiws-context.js +953 -0
  77. package/templates/workspace/.opencode/plugins/aiws-inject-context.js +201 -0
  78. package/templates/workspace/.opencode/plugins/aiws-session-start.js +86 -0
  79. package/templates/workspace/.opencode/plugins/aiws-workflow-state.js +116 -0
  80. package/templates/workspace/.opencode/scripts/ws-plan-gen-submodule-targets.sh +27 -0
  81. package/templates/workspace/.opencode/scripts/ws-plan-setup-worktree.sh +31 -0
  82. package/templates/workspace/.opencode/skills/p-aiws-change-archive/SKILL.md +1 -1
  83. package/templates/workspace/.opencode/skills/p-aiws-change-finish/SKILL.md +1 -1
  84. package/templates/workspace/.opencode/skills/p-aiws-change-new/SKILL.md +2 -2
  85. package/templates/workspace/.opencode/skills/p-aiws-change-start/SKILL.md +1 -1
  86. package/templates/workspace/.opencode/skills/p-aiws-change-sync/SKILL.md +2 -2
  87. package/templates/workspace/.opencode/skills/p-aiws-change-validate/SKILL.md +1 -1
  88. package/templates/workspace/.opencode/skills/p-aiws-validate/SKILL.md +1 -1
  89. package/templates/workspace/.opencode/skills/p-tasks-plan/SKILL.md +7 -7
  90. package/templates/workspace/.opencode/skills/using-aiws/SKILL.md +40 -3
  91. package/templates/workspace/.opencode/skills/ws-analyze/SKILL.md +2 -2
  92. package/templates/workspace/.opencode/skills/ws-autonomy/SKILL.md +1 -1
  93. package/templates/workspace/.opencode/skills/ws-bugfix/SKILL.md +7 -7
  94. package/templates/workspace/.opencode/skills/ws-commit/SKILL.md +5 -5
  95. package/templates/workspace/.opencode/skills/ws-delegate/SKILL.md +26 -4
  96. package/templates/workspace/.opencode/skills/ws-deliver/SKILL.md +5 -5
  97. package/templates/workspace/.opencode/skills/ws-dev/SKILL.md +54 -6
  98. package/templates/workspace/.opencode/skills/ws-dev-lite/SKILL.md +6 -3
  99. package/templates/workspace/.opencode/skills/ws-finish/SKILL.md +9 -5
  100. package/templates/workspace/.opencode/skills/ws-frontend-design/SKILL.md +1 -1
  101. package/templates/workspace/.opencode/skills/ws-handoff/SKILL.md +5 -5
  102. package/templates/workspace/.opencode/skills/ws-intake/SKILL.md +32 -2
  103. package/templates/workspace/.opencode/skills/ws-migrate/SKILL.md +5 -5
  104. package/templates/workspace/.opencode/skills/ws-plan/SKILL.md +16 -58
  105. package/templates/workspace/.opencode/skills/ws-plan-verify/SKILL.md +5 -5
  106. package/templates/workspace/.opencode/skills/ws-pull/SKILL.md +5 -5
  107. package/templates/workspace/.opencode/skills/ws-push/SKILL.md +5 -5
  108. package/templates/workspace/.opencode/skills/ws-quality-review/SKILL.md +11 -6
  109. package/templates/workspace/.opencode/skills/ws-review/SKILL.md +33 -13
  110. package/templates/workspace/.opencode/skills/ws-spec-review/SKILL.md +5 -5
  111. package/templates/workspace/.opencode/skills/ws-submodule-setup/SKILL.md +5 -5
  112. package/templates/workspace/.opencode/skills/ws-verify-before-complete/SKILL.md +36 -5
  113. package/templates/workspace/AGENTS.md +32 -87
  114. package/templates/workspace/AI_PROJECT.md +4 -4
  115. package/templates/workspace/AI_WORKSPACE.md +1 -1
  116. package/templates/workspace/REQUIREMENTS.md +1 -1
  117. package/templates/workspace/gitignore +1 -1
  118. package/templates/workspace/manifest.json +96 -334
  119. /package/templates/workspace/{changes → .aiws/changes}/templates/design.md +0 -0
  120. /package/templates/workspace/{memory-bank → .aiws/memory-bank}/README.md +0 -0
  121. /package/templates/workspace/{memory-bank → .aiws/memory-bank}/architecture.md +0 -0
  122. /package/templates/workspace/{memory-bank → .aiws/memory-bank}/implementation-plan.md +0 -0
  123. /package/templates/workspace/{memory-bank → .aiws/memory-bank}/progress.md +0 -0
  124. /package/templates/workspace/{memory-bank → .aiws/memory-bank}/tech-stack.md +0 -0
  125. /package/templates/workspace/{requirements → .aiws/requirements}/CHANGELOG.md +0 -0
  126. /package/templates/workspace/{secrets → .aiws/secrets}/test-accounts.example.json +0 -0
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: p-aiws-change-new
3
- description: 私有:创建 changes/<change-id> 工件
3
+ description: 私有:创建 .aiws/changes/<change-id> 工件
4
4
  ---
5
5
 
6
6
  目标:
7
- - 创建 `changes/<change-id>/` 工件目录与基础文件(proposal/tasks/可选 design)
7
+ - 创建 `.aiws/changes/<change-id>/` 工件目录与基础文件(proposal/tasks/可选 design)
8
8
 
9
9
  要求:
10
10
  - `change-id` 必须是 kebab-case:`^[a-z0-9]+(-[a-z0-9]+)*$`
@@ -4,7 +4,7 @@ description: 私有:切分支并初始化变更工件(可选安装 hooks)
4
4
  ---
5
5
 
6
6
  目标:
7
- - 切到分支 `change/<change-id>` 并初始化 `changes/<change-id>/` 工件
7
+ - 切到分支 `change/<change-id>` 并初始化 `.aiws/changes/<change-id>/` 工件
8
8
  - 若检测到 `.gitmodules`(git submodules),默认优先使用 `--worktree`(失败则回退为 `--no-switch`),避免切走 superproject 分支导致 submodule 状态混乱
9
9
 
10
10
  要求:
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: p-aiws-change-sync
3
- description: 私有:同步真值基线到 changes/<change-id>(写入 .ws-change.json)
3
+ description: 私有:同步真值基线到 .aiws/changes/<change-id>(写入 .ws-change.json)
4
4
  ---
5
5
 
6
6
  目标:
7
- - 将当前真值文件(`AI_PROJECT.md` / `AI_WORKSPACE.md` / `REQUIREMENTS.md`)的 hash 快照同步到 `changes/<change-id>/.ws-change.json`
7
+ - 将当前真值文件(`AI_PROJECT.md` / `AI_WORKSPACE.md` / `REQUIREMENTS.md`)的 hash 快照同步到 `.aiws/changes/<change-id>/.ws-change.json`
8
8
 
9
9
  执行(在仓库根目录):
10
10
  ```bash
@@ -4,7 +4,7 @@ description: 私有:校验 changes 工件(可 strict)
4
4
  ---
5
5
 
6
6
  目标:
7
- - 校验 `changes/<change-id>/` 工件完整性、归因与 WS:TODO(用于 hooks/CI)
7
+ - 校验 `.aiws/changes/<change-id>/` 工件完整性、归因与 WS:TODO(用于 hooks/CI)
8
8
 
9
9
  执行(在仓库根目录):
10
10
  ```bash
@@ -19,4 +19,4 @@ fi
19
19
  ```
20
20
 
21
21
  证据(可选):
22
- - stamp:`.agentdocs/tmp/aiws-validate/*.json`(由 `.gitignore` 忽略)
22
+ - stamp:`.aiws/tmp/aiws-validate/*.json`(由 `.gitignore` 忽略)
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: p-tasks-plan
3
- description: 原子:tasks 同步(从 changes/<id>/tasks.md 生成 update_plan payload)
3
+ description: 原子:tasks 同步(从 .aiws/changes/<id>/tasks.md 生成 update_plan payload)
4
4
  ---
5
5
 
6
6
  用中文输出(命令/路径/代码标识符保持原样不翻译)。
7
7
 
8
8
  目标:
9
- - 用 `changes/<change-id>/tasks.md` 的 checkbox 任务作为“步骤真值”
9
+ - 用 `.aiws/changes/<change-id>/tasks.md` 的 checkbox 任务作为“步骤真值”
10
10
  - 生成可直接用于 `update_plan` 的 JSON payload(`pending/in_progress/completed`)
11
11
  - 输出当前进度摘要(done/total + 当前 in_progress)
12
12
 
13
13
  约束:
14
14
  - 不写入任何 secrets(token、账号、内网端点等不得进入 git)
15
- - 只读 `changes/<id>/tasks.md`(不自动改写 tasks 文件)
15
+ - 只读 `.aiws/changes/<id>/tasks.md`(不自动改写 tasks 文件)
16
16
  - 未运行不声称已运行
17
17
 
18
18
  执行步骤(建议):
@@ -20,18 +20,18 @@ description: 原子:tasks 同步(从 changes/<id>/tasks.md 生成 update_pla
20
20
  2) 推断 `change-id`:
21
21
  - 优先从当前分支名读取:`git rev-parse --abbrev-ref HEAD`(期望形如 `change/<change-id>`)
22
22
  - 若无法推断:让用户明确本次要同步的 `<change-id>`
23
- 3) 检查 tasks 文件存在:`test -f changes/<change-id>/tasks.md`
23
+ 3) 检查 tasks 文件存在:`test -f .aiws/changes/<change-id>/tasks.md`
24
24
  4) 输出进度摘要:
25
25
  ```bash
26
- python3 tools/ws_tasks_plan.py status --file changes/<change-id>/tasks.md
26
+ python3 tools/ws_tasks_plan.py status --file .aiws/changes/<change-id>/tasks.md
27
27
  ```
28
28
  5) 生成 `update_plan` payload(JSON 输出到 stdout):
29
29
  ```bash
30
- python3 tools/ws_tasks_plan.py plan --file changes/<change-id>/tasks.md --explanation "sync tasks.md -> update_plan"
30
+ python3 tools/ws_tasks_plan.py plan --file .aiws/changes/<change-id>/tasks.md --explanation "sync tasks.md -> update_plan"
31
31
  ```
32
32
  6) 调用 `update_plan`,将上一步 JSON 原样作为入参(确保任意时刻最多 1 条 `in_progress`)。
33
33
 
34
34
  输出要求:
35
35
  - `Change_ID:` <change-id>
36
- - `Tasks:` `changes/<change-id>/tasks.md`
36
+ - `Tasks:` `.aiws/changes/<change-id>/tasks.md`
37
37
  - `Next:` 推荐下一步(通常为继续完善 tasks 或进入 `$ws-dev`)
@@ -19,7 +19,7 @@ description: 默认 workflow bootstrap/router:先读真值,再路由到正
19
19
  - `AI_PROJECT.md`
20
20
  - `REQUIREMENTS.md`
21
21
  - `AI_WORKSPACE.md`
22
- - 若已存在:当前 `change/<change-id>` 上下文、`plan/...`、`changes/<change-id>/...`
22
+ - 若已存在:当前 `change/<change-id>` 上下文、`plan/...`、`.aiws/changes/<change-id>/...`
23
23
 
24
24
  必需输出:
25
25
  - `Root:` 当前项目根
@@ -55,8 +55,8 @@ description: 默认 workflow bootstrap/router:先读真值,再路由到正
55
55
  - finish / merge / push / cleanup:`$ws-finish`
56
56
  - handoff / archive summary:`$ws-handoff`
57
57
  - 新需求或中大型变更,且存在多条待确认问题 / 用户要求逐条多轮沟通:`$ws-intake`
58
- - 需要先出设计方案(design 未过审前不进入实现):`$ws-design`
59
- - 需要更新规范/验收标准(必须先过 review):`$ws-spec-update`
58
+ - 需要先出设计方案(design 作为 plan 阶段一部分):`$ws-plan`
59
+ - 需要更新规范/验收标准(必须先过 req-review):`$ws-req-change`
60
60
  - 中大型实现、需要方案、需要 change/worktree,且需求已经冻结:`$ws-plan`
61
61
  - 小步明确实现/修复/配置调整:`$ws-dev`(若是 simple/local 单点修复,且用户明确希望走轻量入口,可显式进入 `$ws-dev-lite`)
62
62
  4) 若任务意图或归因不明确:
@@ -81,10 +81,14 @@ description: 默认 workflow bootstrap/router:先读真值,再路由到正
81
81
  - 否则:
82
82
  - `Next:` 进入对应主 skill
83
83
  - 然后在同一轮中继续遵循对应 skill 的契约
84
- 7) 路由约束:
85
- - router 自己不是实现阶段;不要在给出 route 之前直接改代码
86
- - 除非用户只想听判断结果,否则给出 route 后应继续按对应 skill 的规则推进
87
- - 一次只选择一个主 route;不要把 `ws-plan` / `ws-dev` / `ws-review` / `ws-finish` 混成并行终态
84
+ 7) 路由约束:
85
+ - router 自己不是实现阶段;不要在给出 route 之前直接改代码
86
+ - 除非用户只想听判断结果,否则给出 route 后应继续按对应 skill 的规则推进
87
+ - 一次只选择一个主 route;不要把 `ws-plan` / `ws-dev` / `ws-review` / `ws-finish` 混成并行终态
88
+ - **上下文先于判决**:路由 `direct_implementation` 前必须先收集项目上下文——具体检查:`git status --porcelain`(已改动文件数)、`git diff --stat`(改动行范围)。仅当改动文件数 ≤ 3 且改动总行数 ≤ 100 且验证入口明确时,才可判 direct。
89
+ - **Subagent 不可用时**:降级为当前 agent 直接执行,但必须在 evidence 中记录降级原因
90
+ - **上下文先于判决**:路由 `direct_implementation` 前必须先收集项目上下文——`git status --porcelain`(已改动文件数)、`git diff --stat`(改动行范围)。仅当改动文件数 ≤ 3 且改动总行数 ≤ 100 且验证入口明确时,才可判 direct。
91
+ - Subagent 不可用时的降级路径:`ready-for-dev` → 当前 agent 直接执行 ws-dev;`in-progress` → 当前 agent 自审(evaluate-optimize 1 轮);`review` → 当前 agent 本地 review(不阻断)。降级时必须在 evidence 中记录降级原因
88
92
  8) 若执行过程中发现复杂度升高:
89
93
  - 从 `$ws-dev` 回退到 `$ws-plan`
90
94
  - 从 `$ws-plan` 回退到 `$ws-intake`(当发现需求并未冻结)
@@ -5,7 +5,7 @@ description: 分析(定位问题与收集上下文)
5
5
 
6
6
  用中文输出(命令/路径/代码标识符保持原样不翻译)。
7
7
 
8
- 目标:在开始实现/修复前做一次技术分析,产出可执行的最小行动清单,并把证据落盘到 `.agentdocs/tmp/analyze/`。
8
+ 目标:在开始实现/修复前做一次技术分析,产出可执行的最小行动清单,并把证据落盘到 `.aiws/tmp/analyze/`。
9
9
 
10
10
  输入:
11
11
  - 主题/需求:用户在本次消息中提供的主题(若不明确,先问一句“本次分析主题是什么?”)
@@ -18,7 +18,7 @@ description: 分析(定位问题与收集上下文)
18
18
  - 推荐方案(1 个)+ 备选(可选)
19
19
  - 风险与回滚(3–8 条)
20
20
  - 最小验证命令(可复现)
21
- 3) 将分析落盘到:`.agentdocs/tmp/analyze/codex-analysis.md`(目录不存在则创建)。
21
+ 3) 将分析落盘到:`.aiws/tmp/analyze/codex-analysis.md`(目录不存在则创建)。
22
22
  4) 回复中必须包含:`Evidence:` 证据文件路径。
23
23
 
24
24
  安全:
@@ -1,13 +1,13 @@
1
1
  ---
2
2
  name: ws-bugfix
3
- description: 缺陷修复(通过禅道 MCP 拉取 bug 与附件,下载图片证据,汇总到 issues/fix_bus_issues.csv,并绑定到 changes/<change-id>/)
3
+ description: 缺陷修复(通过禅道 MCP 拉取 bug 与附件,下载图片证据,汇总到 issues/fix_bus_issues.csv,并绑定到 .aiws/changes/<change-id>/)
4
4
  ---
5
5
 
6
6
  用中文输出(命令/路径/代码标识符保持原样不翻译)。
7
7
 
8
8
  目标:
9
9
  - 用禅道 MCP 拉取 bug 详情与附件(尤其图片)
10
- - 把证据落盘到 `changes/<change-id>/bug/`(避免只停留在对话)
10
+ - 把证据落盘到 `.aiws/changes/<change-id>/bug/`(避免只停留在对话)
11
11
  - 把修复任务汇总/更新到 `issues/fix_bus_issues.csv`
12
12
  - 与 `ws-dev` / `aiws change` 流程绑定,确保可追溯、可验证
13
13
 
@@ -21,7 +21,7 @@ description: 缺陷修复(通过禅道 MCP 拉取 bug 与附件,下载图片
21
21
  2) 准备 `change-id`(建议:`bug-<bug-id>` 或 `bugfix-<bug-id>-<slug>`)。
22
22
  3) 建立 change 上下文(推荐先于任何落盘):
23
23
  - 若当前还不在 `change/<change-id>` 分支 / worktree,先调用 `aiws change start`
24
- - 工作区必须先干净;否则不要先写 `changes/<change-id>/bug/` 或 `issues/fix_bus_issues.csv`,避免后续切 worktree 时工件留在原工作区
24
+ - 工作区必须先干净;否则不要先写 `.aiws/changes/<change-id>/bug/` 或 `issues/fix_bus_issues.csv`,避免后续切 worktree 时工件留在原工作区
25
25
  - 仓库已有提交:优先 `--worktree`
26
26
  - superproject + submodule:优先 `--worktree --submodules`
27
27
  - 仓库尚无提交 / 不满足 worktree 前置条件:回退 `--no-switch`
@@ -46,7 +46,7 @@ fi
46
46
  - 优先复用 `$ws-dev` 的 `submodules.targets` 生成/确认流程
47
47
  - detached HEAD 时默认建议取 `.gitmodules` 声明的分支
48
48
  - 已附着在某个本地分支时默认建议取当前分支
49
- - 以上都只是建议值,最终必须显式写入 `changes/<change-id>/submodules.targets`
49
+ - 以上都只是建议值,最终必须显式写入 `.aiws/changes/<change-id>/submodules.targets`
50
50
 
51
51
  建议流程(按顺序):
52
52
 
@@ -58,14 +58,14 @@ fi
58
58
  - 若当前环境没有 zentao MCP 工具:立即停止并提示用户先配置,不要猜数据。
59
59
 
60
60
  ## 2) 证据落盘(强制)
61
- 在当前 active change 上下文的 `changes/<change-id>/bug/` 下落盘:
61
+ 在当前 active change 上下文的 `.aiws/changes/<change-id>/bug/` 下落盘:
62
62
  - `zentao-bug-<bug-id>.json`:原始字段快照(避免信息丢失)
63
63
  - `zentao-bug-<bug-id>.md`:人类可读摘要(复现步骤/期望/实际/风险)
64
64
  - `images/<bug-id>/...`:下载的图片附件(保留原扩展名)
65
65
 
66
66
  建议目录:
67
67
  ```text
68
- changes/<change-id>/bug/
68
+ .aiws/changes/<change-id>/bug/
69
69
  zentao-bug-<bug-id>.json
70
70
  zentao-bug-<bug-id>.md
71
71
  images/<bug-id>/
@@ -83,7 +83,7 @@ Bug_ID,Title,Severity,Module,Status,Assigned_To,Change_ID,Image_Count,Image_Path
83
83
 
84
84
  字段约束:
85
85
  - `Change_ID`:必须等于当前 `change-id`
86
- - `Evidence_Path`:指向 `changes/<change-id>/bug/zentao-bug-<bug-id>.md`
86
+ - `Evidence_Path`:指向 `.aiws/changes/<change-id>/bug/zentao-bug-<bug-id>.md`
87
87
  - `Image_Paths`:多个路径用 `;` 分隔
88
88
  - `Fix_Status`:`TODO|DOING|DONE|BLOCKED`
89
89
 
@@ -107,5 +107,5 @@ aiws validate . --stamp
107
107
  - `Change_ID:` `<change-id>`
108
108
  - `Change context:` `<当前分支或 worktree 路径>`
109
109
  - `CSV:` `issues/fix_bus_issues.csv` 中对应 `Bug_ID` 行的关键字段
110
- - `Evidence:` `changes/<change-id>/bug/zentao-bug-<bug-id>.md` + 图片目录
110
+ - `Evidence:` `.aiws/changes/<change-id>/bug/zentao-bug-<bug-id>.md` + 图片目录
111
111
  - `Verify:` 实际运行命令与结果(未运行不声称已运行)
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: ws-commit
3
- description: `aiws ws-commit` 的薄包装入口
3
+ description: `aiws commit` 的薄包装入口
4
4
  ---
5
5
 
6
6
  # ws-commit
7
7
 
8
- `aiws ws-commit` 的薄包装入口。
8
+ `aiws commit` 的薄包装入口。
9
9
 
10
10
  ```bash
11
11
  if [[ -x "./node_modules/.bin/aiws" ]]; then
12
- ./node_modules/.bin/aiws ws-commit
12
+ ./node_modules/.bin/aiws commit
13
13
  elif command -v aiws >/dev/null 2>&1; then
14
- aiws ws-commit
14
+ aiws commit
15
15
  else
16
- npx @aipper/aiws ws-commit
16
+ npx @aipper/aiws commit
17
17
  fi
18
18
  ```
@@ -55,10 +55,10 @@ description: 原生多 agent 委托入口(Codex 优先;先定义角色/边
55
55
  5) 若当前环境不支持,或无法稳定约束 scope:
56
56
  - 明确输出 `Execution Mode: fallback single-agent`
57
57
  - 仍按 AIWS 协同工件约定执行:
58
- - `changes/<id>/analysis/`
59
- - `changes/<id>/patches/`
60
- - `changes/<id>/review/`
61
- - `changes/<id>/evidence/`
58
+ - `.aiws/changes/<id>/analysis/`
59
+ - `.aiws/changes/<id>/patches/`
60
+ - `.aiws/changes/<id>/review/`
61
+ - `.aiws/changes/<id>/evidence/`
62
62
  6) 不论是否启用原生多 agent,都不要跳过:
63
63
  - 需求归因
64
64
  - 验证命令
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: ws-deliver
3
- description: `aiws ws-deliver` 的薄包装入口
3
+ description: `aiws deliver` 的薄包装入口
4
4
  ---
5
5
 
6
6
  # ws-deliver
7
7
 
8
- `aiws ws-deliver` 的薄包装入口。
8
+ `aiws deliver` 的薄包装入口。
9
9
 
10
10
  ```bash
11
11
  if [[ -x "./node_modules/.bin/aiws" ]]; then
12
- ./node_modules/.bin/aiws ws-deliver
12
+ ./node_modules/.bin/aiws deliver
13
13
  elif command -v aiws >/dev/null 2>&1; then
14
- aiws ws-deliver
14
+ aiws deliver
15
15
  else
16
- npx @aipper/aiws ws-deliver
16
+ npx @aipper/aiws deliver
17
17
  fi
18
18
  ```
@@ -20,7 +20,7 @@ description: 开发(按需求实现并验证;适用于任何需要修改代
20
20
 
21
21
  - `变更文件(Changed):` 实际改动清单
22
22
  - `验证(Verify):` 实际运行的命令与结果说明
23
- - `证据(Evidence):` `plan/...`、`changes/<change-id>/...`、`.agentdocs/tmp/...` 等证据路径
23
+ - `证据(Evidence):` `plan/...`、`.aiws/changes/<change-id>/...`、`.aiws/tmp/...` 等证据路径
24
24
  - `Next:` 若准备提交,建议 `$ws-review` 或 `$ws-commit`
25
25
 
26
26
  ## 阻断条件
@@ -43,12 +43,23 @@ description: 开发(按需求实现并验证;适用于任何需要修改代
43
43
  - 已有计划:先 `$ws-plan-verify`,通过后进入实现。
44
44
  - `$ws-plan` 已创建 worktree:直接在该 worktree 中继续。
45
45
 
46
+ ### 1.5 Design Gate(入口检查)
47
+
48
+ 在进入实现前,先验证绑定工件是否完整:
49
+
50
+ - 若计划或实际改动超过 2 个文件:**必须**检查 `.aiws/changes/<change-id>/` 下是否存在 `proposal.md` 和 `tasks.md`
51
+ - 若缺失:**阻断**并输出信息 `Design Gate: proposal.md and tasks.md required for multi-file implementations. Run $ws-plan first.`
52
+ - 若为单文件/小改动(≤2 文件):此检查为 advisory 级别,缺失仅在输出中提示但不阻断
53
+ - Design Gate 检查结果需记录在输出中,作为实现入口证据
54
+
55
+ Design Gate 通过后,继续进入变更归因与实现。
56
+
46
57
  ### 2. 建立变更归因
47
58
 
48
59
  - 若 `git status --porcelain` 仅有计划/工件文件,属于预期行为,继续即可。
49
60
  - 若需创建新 change:`aiws change start <change-id> --hooks --no-switch`
50
61
  - 若需切换分支:先确认无额外未提交改动,再 `git switch change/<change-id>`
51
- - 若存在 submodule(`.gitmodules`):进入编码前必须准备好 `changes/<change-id>/submodules.targets`。`aiws change start` 的 `--submodules` 标志会自动处理。参考 `changes/README.md` 和 `changes/<change-id>/submodules.targets` 格式。
62
+ - 若存在 submodule(`.gitmodules`):进入编码前必须准备好 `.aiws/changes/<change-id>/submodules.targets`。`aiws change start` 的 `--submodules` 标志会自动处理。参考 `changes/README.md` 和 `.aiws/changes/<change-id>/submodules.targets` 格式。
52
63
 
53
64
  ### 3. 实现策略:默认 dispatch aiws-worker(Subagent-First)
54
65
 
@@ -60,9 +71,28 @@ description: 开发(按需求实现并验证;适用于任何需要修改代
60
71
  - 根据 review 结果决定 fix 或收敛 evidence
61
72
  - **Inline escape hatch**:如果用户明确说"你直接改"或"do it inline",主 session 可直接写代码,但必须落盘 evidence 记录理由
62
73
 
74
+ ### 3.1 自我修正循环(evaluate-optimize)
75
+
76
+ 收到 sub-agent 或自行产出实现后,执行自我修正循环:
77
+
78
+ 1. **Evaluate** — 检查实现质量:
79
+ - lint / typecheck 是否通过
80
+ - 是否遵循现有代码模式(文件结构、命名约定、错误处理风格)
81
+ - 是否有明显 bug 或边界缺失
82
+ 2. **Optimize** — 修复发现的问题(最多 2 轮)
83
+ - 每轮修复后重新 evaluate
84
+ - 若 2 轮后仍有问题 → escalate 到 `$ws-review`
85
+ 3. **TDD 优先** — 对于中大型改动,优先按 RED→GREEN→REFACTOR 顺序:
86
+ - RED:先写一个会失败的测试
87
+ - GREEN:实现最小代码让测试通过
88
+ - REFACTOR:在测试保护下重构
89
+
90
+ 注意:TDD 在简单修复时不强制,但对新增功能/中等以上复杂度变更建议遵循。
91
+
63
92
  ### 4. 其他规则
64
93
 
65
94
  - 需求调整:先 `$ws-req-review` → 确认后 `$ws-req-change`
95
+ - **TDD 约束**:新增功能必须补测试(RED→GREEN→REFACTOR);bug fix 至少补一条回归测试
66
96
  - 最小改动:每处改动必须归因到 `REQUIREMENTS.md` 或 `issues/problem-issues.csv`
67
97
  - 验证:运行 `AI_WORKSPACE.md` 声明的命令;未运行不声称已运行
68
98
  - 多步任务:使用 `update_plan` 工具跟踪状态
@@ -44,8 +44,8 @@ description: 轻量开发(simple/local 单点修复;最小改动 + 最小验
44
44
  - 若只需局部回归,允许运行更窄的验证,但要说明为什么足够
45
45
  5) 留下至少一个可追溯证据:
46
46
  - 实际改动文件
47
- - 或 `.agentdocs/tmp/...`
48
- - 或 `changes/<change-id>/...`
47
+ - 或 `.aiws/tmp/...`
48
+ - 或 `.aiws/changes/<change-id>/...`
49
49
  6) 输出:
50
50
  - `变更文件(Changed):`
51
51
  - `验证(Verify):`
@@ -1,18 +1,22 @@
1
1
  ---
2
2
  name: ws-finish
3
- description: `aiws ws-finish` 的薄包装入口
3
+ description: `aiws finish` 的收尾入口(finish_resume_required)
4
4
  ---
5
5
 
6
6
  # ws-finish
7
7
 
8
- `aiws ws-finish` 的薄包装入口。
8
+ `aiws finish` 的收尾入口。
9
+
10
+ 关键契约:
11
+ - 若 `aiws change status <change-id>` 输出 `governance_rule: finish_resume_required`,继续执行 `aiws change finish <change-id> --push`
12
+ - 普通 finish 的 `validate/evidence/state` 仍应在 `change/<change-id>` worktree 完成,不要在目标 worktree 里跑 `aiws validate . --stamp`
9
13
 
10
14
  ```bash
11
15
  if [[ -x "./node_modules/.bin/aiws" ]]; then
12
- ./node_modules/.bin/aiws ws-finish
16
+ ./node_modules/.bin/aiws finish
13
17
  elif command -v aiws >/dev/null 2>&1; then
14
- aiws ws-finish
18
+ aiws finish
15
19
  else
16
- npx @aipper/aiws ws-finish
20
+ npx @aipper/aiws finish
17
21
  fi
18
22
  ```
@@ -123,4 +123,4 @@ app-ui 规则:
123
123
  - `Visual thesis:` 一句话
124
124
  - `Changed:` 改动文件清单
125
125
  - `Verify:` 实际运行命令 + 预期结果
126
- - `Evidence:` 相关 `plan/...`、`changes/<change-id>/...` 或截图/审计路径
126
+ - `Evidence:` 相关 `plan/...`、`.aiws/changes/<change-id>/...` 或截图/审计路径
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: ws-handoff
3
- description: `aiws ws-handoff` 的薄包装入口
3
+ description: `aiws handoff` 的薄包装入口
4
4
  ---
5
5
 
6
6
  # ws-handoff
7
7
 
8
- `aiws ws-handoff` 的薄包装入口。
8
+ `aiws handoff` 的薄包装入口。
9
9
 
10
10
  ```bash
11
11
  if [[ -x "./node_modules/.bin/aiws" ]]; then
12
- ./node_modules/.bin/aiws ws-handoff
12
+ ./node_modules/.bin/aiws handoff
13
13
  elif command -v aiws >/dev/null 2>&1; then
14
- aiws ws-handoff
14
+ aiws handoff
15
15
  else
16
- npx @aipper/aiws ws-handoff
16
+ npx @aipper/aiws handoff
17
17
  fi
18
18
  ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: ws-migrate
3
+ description: `aiws migrate` 的薄包装入口
4
+ ---
5
+
6
+ # ws-migrate
7
+
8
+ `aiws migrate` 的薄包装入口。
9
+
10
+ ```bash
11
+ if [[ -x "./node_modules/.bin/aiws" ]]; then
12
+ ./node_modules/.bin/aiws migrate
13
+ elif command -v aiws >/dev/null 2>&1; then
14
+ aiws migrate
15
+ else
16
+ npx @aipper/aiws migrate
17
+ fi
18
+ ```
@@ -16,7 +16,7 @@ description: 规划(生成可落盘 plan/ 工件;供 ws-dev 执行)
16
16
  - 不写入任何 secrets(token、账号、内网端点等不得进入 git)
17
17
  - 本 skill 只负责“想清楚怎么做 + 落盘计划”,不要直接大规模改动代码
18
18
  - 未运行不声称已运行;验证命令要写清“预期结果”
19
- - 若存在 `changes/<change-id>/proposal.md`,计划与 proposal 的绑定字段必须保持一致(不一致时先修正再继续)
19
+ - 若存在 `.aiws/changes/<change-id>/proposal.md`,计划与 proposal 的绑定字段必须保持一致(不一致时先修正再继续)
20
20
 
21
21
  阶段定位:
22
22
  - planning 阶段;负责把用户目标收敛为 change 绑定、计划文件和验证入口。
@@ -25,7 +25,7 @@ description: 规划(生成可落盘 plan/ 工件;供 ws-dev 执行)
25
25
  - 当前任务描述
26
26
  - 真值文件:`AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`
27
27
  - 若已存在:最新 `plan/*.intake.md`
28
- - 若已存在:`changes/<change-id>/proposal.md`
28
+ - 若已存在:`.aiws/changes/<change-id>/proposal.md`
29
29
  - 若已有计划:当前 `plan/...` 文件
30
30
 
31
31
  必需输出:
@@ -52,7 +52,7 @@ description: 规划(生成可落盘 plan/ 工件;供 ws-dev 执行)
52
52
  3) 若用户任务描述不清,且也没有可消费的 intake 草案:先问 1-3 个关键澄清问题(不要猜);若问题较多则回退到 `$ws-intake`
53
53
  4) 判断复杂度:`simple / medium / complex`(给出一句理由),并估算步骤数。
54
54
  5) 识别或建立主索引 / change 上下文:
55
- - 若存在 `changes/<change-id>/proposal.md`:读取其中 `Change_ID` / `Req_ID` / `Problem_ID` / `Contract_Row` / `Evidence_Path`
55
+ - 若存在 `.aiws/changes/<change-id>/proposal.md`:读取其中 `Change_ID` / `Req_ID` / `Problem_ID` / `Contract_Row` / `Evidence_Path`
56
56
  - 若缺失关键绑定:先补齐 proposal(至少 `Change_ID`、`Req_ID|Problem_ID`、`Contract_Row`)再继续生成计划
57
57
  - 若当前不在 `change/<change-id>` 分支 / worktree,且本次任务需要新建 change:先调用 `aiws change start` 建立上下文,再继续写 plan
58
58
  - 推荐顺序:
@@ -101,7 +101,7 @@ fi
101
101
  - `Submodules`(当存在 `.gitmodules` 且声明了 submodule 条目时,强制):声明“本次 change 的 submodule 目标分支真值”(用于同一 superproject 分支内的多渠道交付;也避免仅靠 `.gitmodules` 默认分支导致交付推送到错误分支)
102
102
  - `Verify`:可复现命令 + 期望结果(优先引用 `AI_WORKSPACE.md` 的入口;必要时补充 e2e)
103
103
  - `Risks & Rollback`:风险点 + 回滚方案(例如 git 回滚、`aiws rollback`、恢复备份等)
104
- - `Evidence`:计划文件路径;若创建了变更工件则附 `changes/<change-id>/...`
104
+ - `Evidence`:计划文件路径;若创建了变更工件则附 `.aiws/changes/<change-id>/...`
105
105
  8) 若存在 change proposal:回填并对齐 `proposal.md` 的 `Plan_File`(必要时同步 `Contract_Row` / `Evidence_Path`),保证 plan/proposal 一致。
106
106
  9) 运行 `$ws-plan-verify` 作为执行前质量门(计划不过长、不跑偏、验证可复现)。
107
107
  10) 若计划涉及“需求/验收”变更:先用 `$ws-req-review` 评审 → 用户确认后再 `$ws-req-change` 落盘(避免需求漂移)。
@@ -111,7 +111,7 @@ fi
111
111
  - 背景:`.gitmodules submodule.<name>.branch` 适合作为“团队默认分支真值”,但当同一 superproject 分支需要在不同交付中选择不同 submodule 目标分支(多渠道)时,仅靠 `.gitmodules` 不足。
112
112
  - 强约束:当 `.gitmodules` 声明了 submodule 条目时,门禁会要求本次 change 存在该文件且覆盖所有 submodule path(否则 `aiws validate .` / `aiws change validate --strict` 阻断)。
113
113
  - 约定:为本次 change 落盘一个“交付目标分支映射”文件,并在后续 `$ws-dev`/`$ws-deliver`/`$ws-finish` 优先使用它:
114
- - 文件:`changes/<change-id>/submodules.targets`
114
+ - 文件:`.aiws/changes/<change-id>/submodules.targets`
115
115
  - 格式:每行一个 submodule(忽略空行与 `#` 注释),字段用空白分隔(推荐 `TAB`):
116
116
  - 第 1 列:submodule path(例如 `vendor/foo`)
117
117
  - 第 2 列:target branch(例如 `release/channel-a`)
@@ -1,18 +1,18 @@
1
1
  ---
2
2
  name: ws-plan-verify
3
- description: `aiws ws-plan-verify` 的薄包装入口
3
+ description: `aiws plan-verify` 的薄包装入口
4
4
  ---
5
5
 
6
6
  # ws-plan-verify
7
7
 
8
- `aiws ws-plan-verify` 的薄包装入口。
8
+ `aiws plan-verify` 的薄包装入口。
9
9
 
10
10
  ```bash
11
11
  if [[ -x "./node_modules/.bin/aiws" ]]; then
12
- ./node_modules/.bin/aiws ws-plan-verify
12
+ ./node_modules/.bin/aiws plan-verify
13
13
  elif command -v aiws >/dev/null 2>&1; then
14
- aiws ws-plan-verify
14
+ aiws plan-verify
15
15
  else
16
- npx @aipper/aiws ws-plan-verify
16
+ npx @aipper/aiws plan-verify
17
17
  fi
18
18
  ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: ws-pull
3
+ description: `aiws pull` 的薄包装入口
4
+ ---
5
+
6
+ # ws-pull
7
+
8
+ `aiws pull` 的薄包装入口。
9
+
10
+ ```bash
11
+ if [[ -x "./node_modules/.bin/aiws" ]]; then
12
+ ./node_modules/.bin/aiws pull
13
+ elif command -v aiws >/dev/null 2>&1; then
14
+ aiws pull
15
+ else
16
+ npx @aipper/aiws pull
17
+ fi
18
+ ```
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: ws-push
3
+ description: `aiws push` 的薄包装入口
4
+ ---
5
+
6
+ # ws-push
7
+
8
+ `aiws push` 的薄包装入口。
9
+
10
+ ```bash
11
+ if [[ -x "./node_modules/.bin/aiws" ]]; then
12
+ ./node_modules/.bin/aiws push
13
+ elif command -v aiws >/dev/null 2>&1; then
14
+ aiws push
15
+ else
16
+ npx @aipper/aiws push
17
+ fi
18
+ ```
@@ -7,7 +7,7 @@ description: 质量审查(行为回归 / 测试覆盖 / 实现质量)
7
7
 
8
8
  目标:
9
9
  - 审查当前改动的行为正确性、边界条件、测试覆盖和实现质量
10
- - 把“代码/行为层 findings”优先落盘到 `changes/<change-id>/review/quality-review.md`
10
+ - 把“代码/行为层 findings”优先落盘到 `.aiws/changes/<change-id>/review/quality-review.md`
11
11
 
12
12
  阶段定位:
13
13
  - review 子 gate;负责实现质量、行为回归与验证覆盖审查。
@@ -16,10 +16,10 @@ description: 质量审查(行为回归 / 测试覆盖 / 实现质量)
16
16
  - 当前 `git diff`
17
17
  - 已执行的验证结果
18
18
  - 相关代码 / 配置 / 测试文件
19
- - 若存在:`changes/<change-id>/analysis/`、`patches/`、已有 review 文件
19
+ - 若存在:`.aiws/changes/<change-id>/analysis/`、`patches/`、已有 review 文件
20
20
 
21
21
  必需输出:
22
- - `证据(Evidence):` `changes/<change-id>/review/quality-review.md` 或回退 `.agentdocs/tmp/review/quality-review.md`
22
+ - `证据(Evidence):` `.aiws/changes/<change-id>/review/quality-review.md` 或回退 `.aiws/tmp/review/quality-review.md`
23
23
  - `主要发现(Findings):` 高到低排序的问题 / 风险 / 缺失测试
24
24
  - `下一步(Next):` 最小修复项与回归命令
25
25
 
@@ -39,8 +39,8 @@ description: 质量审查(行为回归 / 测试覆盖 / 实现质量)
39
39
  - 测试是否足以支撑改动
40
40
  - 是否存在明显复杂度、耦合、可维护性或性能问题
41
41
  3) 将结论落盘到:
42
- - 默认:`changes/<change-id>/review/quality-review.md`
43
- - 回退:`.agentdocs/tmp/review/quality-review.md`
42
+ - 默认:`.aiws/changes/<change-id>/review/quality-review.md`
43
+ - 回退:`.aiws/tmp/review/quality-review.md`
44
44
  4) 输出:
45
45
  - `证据(Evidence):`
46
46
  - `主要发现(Findings):`
@@ -5,7 +5,7 @@ description: 评审(提交前审计与证据落盘)
5
5
 
6
6
  用中文输出(命令/路径/代码标识符保持原样不翻译)。
7
7
 
8
- 目标:在提交/交付前审计当前改动,对照真值文件检查是否越界,并把审计证据优先落盘到 `changes/<change-id>/review/`(若无法确定 `change-id` 再回退 `.agentdocs/tmp/review/`)。
8
+ 目标:在提交/交付前审计当前改动,对照真值文件检查是否越界,并把审计证据优先落盘到 `.aiws/changes/<change-id>/review/`(若无法确定 `change-id` 再回退 `.aiws/tmp/review/`)。
9
9
  若当前语境已经明确是“准备交付/finish”,则本入口不应只停留在通用 review:应继续同时补齐 `$ws-spec-review` 与 `$ws-quality-review`,把 dual review gate 一次性收敛完。
10
10
 
11
11
  阶段定位:
@@ -16,10 +16,10 @@ description: 评审(提交前审计与证据落盘)
16
16
  - 已执行的验证结果
17
17
  - 真值文件:`AI_PROJECT.md` / `REQUIREMENTS.md` / `AI_WORKSPACE.md`
18
18
  - 当前 `change/<change-id>` 上下文(若能识别)
19
- - 若存在:`changes/<change-id>/analysis/`、`patches/`、已有 `review/` 文件
19
+ - 若存在:`.aiws/changes/<change-id>/analysis/`、`patches/`、已有 `review/` 文件
20
20
 
21
21
  必需输出:
22
- - 审计文件:`changes/<change-id>/review/codex-review.md` 或回退 `.agentdocs/tmp/review/codex-review.md`
22
+ - 审计文件:`.aiws/changes/<change-id>/review/codex-review.md` 或回退 `.aiws/tmp/review/codex-review.md`
23
23
  - `主要风险(Top risks):` 3-8 条
24
24
  - `下一步(Next):` 最小修复清单 + 最小验证命令
25
25
 
@@ -35,15 +35,15 @@ description: 评审(提交前审计与证据落盘)
35
35
  2) 基于 `git status` / `git diff`(以及你实际运行过的测试结果),对照 `AI_PROJECT.md` 与 `REQUIREMENTS.md` 检查:
36
36
  - 是否存在越界目录改动/危险操作
37
37
  - 是否有可复现验证命令与证据
38
- - 是否维护了 `changes/<change-id>/` 或相关 `issues/*.csv`
38
+ - 是否维护了 `.aiws/changes/<change-id>/` 或相关 `issues/*.csv`
39
39
  - 若存在 `analysis/` / `patches/`:审查这些委托工件是否已被主 agent 理解、是否需要采用/拒绝,并把结论写入 review 文件
40
40
  3) 将审计落盘到(目录不存在则创建):
41
- - 默认:`changes/<change-id>/review/codex-review.md`
42
- - 回退:`.agentdocs/tmp/review/codex-review.md`(仅在无法确定 `change-id` 时使用)
41
+ - 默认:`.aiws/changes/<change-id>/review/codex-review.md`
42
+ - 回退:`.aiws/tmp/review/codex-review.md`(仅在无法确定 `change-id` 时使用)
43
43
  - 若已有其它 reviewer 文件:不要覆盖它们;当前 reviewer 应写自己的文件或更新自己的汇总文件
44
44
  4) 若当前任务已进入“准备提交/交付/finish”的语境,继续补齐 dual review gate:
45
- - 运行/收敛 `$ws-spec-review`,落盘 `changes/<change-id>/review/spec-review.md`(或回退 `.agentdocs/tmp/review/spec-review.md`)
46
- - 运行/收敛 `$ws-quality-review`,落盘 `changes/<change-id>/review/quality-review.md`(或回退 `.agentdocs/tmp/review/quality-review.md`)
45
+ - 运行/收敛 `$ws-spec-review`,落盘 `.aiws/changes/<change-id>/review/spec-review.md`(或回退 `.aiws/tmp/review/spec-review.md`)
46
+ - 运行/收敛 `$ws-quality-review`,落盘 `.aiws/changes/<change-id>/review/quality-review.md`(或回退 `.aiws/tmp/review/quality-review.md`)
47
47
  - 不要把单个 `codex-review.md` 误当成 finish gate 已完成
48
48
  5) 回复中输出:
49
49
  - `证据(Evidence):` 证据文件路径