ai-delivery-workflow 0.2.2

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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/bin/ai-delivery.mjs +138 -0
  4. package/bin/validate-skills.mjs +12 -0
  5. package/docs/DUAL-REPOSITORY-WORKSPACE.zh-CN.md +125 -0
  6. package/docs/EVOLUTION-MAINTENANCE.zh-CN.md +75 -0
  7. package/docs/EVOLUTION-USER-GUIDE.zh-CN.md +160 -0
  8. package/docs/FILE-REFERENCE.zh-CN.md +503 -0
  9. package/docs/PROJECT-MANUAL.zh-CN.md +931 -0
  10. package/docs/STATE-CLI-MAINTENANCE.zh-CN.md +135 -0
  11. package/docs/STATE-CLI-USER-GUIDE.zh-CN.md +186 -0
  12. package/docs/VIEWER-MAINTENANCE.zh-CN.md +373 -0
  13. package/docs/VIEWER-USER-GUIDE.zh-CN.md +235 -0
  14. package/lib/delivery-state.mjs +1220 -0
  15. package/lib/evolution.mjs +971 -0
  16. package/lib/project-bootstrap.mjs +927 -0
  17. package/lib/project-installer.mjs +1184 -0
  18. package/lib/skill-validator.mjs +154 -0
  19. package/lib/toml-hooks.mjs +97 -0
  20. package/lib/workspace.mjs +302 -0
  21. package/lib/yaml-runtime.mjs +18 -0
  22. package/package.json +39 -0
  23. package/skills/ai-delivery-assemble-release/SKILL.md +27 -0
  24. package/skills/ai-delivery-assemble-release/agents/openai.yaml +4 -0
  25. package/skills/ai-delivery-assemble-release/assets/release-candidate-manifest.yaml +22 -0
  26. package/skills/ai-delivery-assemble-release/assets/release-git-plan.yaml +9 -0
  27. package/skills/ai-delivery-assemble-release/assets/release-material-index.csv +2 -0
  28. package/skills/ai-delivery-assemble-release/assets/version-inclusion.csv +2 -0
  29. package/skills/ai-delivery-assemble-release/references/release-assembly-contract.md +7 -0
  30. package/skills/ai-delivery-assemble-release/scripts/plan-release.mjs +298 -0
  31. package/skills/ai-delivery-bootstrap/SKILL.md +59 -0
  32. package/skills/ai-delivery-bootstrap/agents/openai.yaml +4 -0
  33. package/skills/ai-delivery-bootstrap/references/bootstrap-contract.md +70 -0
  34. package/skills/ai-delivery-checkpoint-task/SKILL.md +63 -0
  35. package/skills/ai-delivery-checkpoint-task/agents/openai.yaml +4 -0
  36. package/skills/ai-delivery-checkpoint-task/assets/codex-hook-config.toml +92 -0
  37. package/skills/ai-delivery-checkpoint-task/assets/runtime-template/resume.md +15 -0
  38. package/skills/ai-delivery-checkpoint-task/assets/runtime-template/task.json +30 -0
  39. package/skills/ai-delivery-checkpoint-task/assets/runtime-template/version-archive.json +10 -0
  40. package/skills/ai-delivery-checkpoint-task/references/checkpoint-contract.md +95 -0
  41. package/skills/ai-delivery-checkpoint-task/references/checkpoint-recovery.zh-CN.md +111 -0
  42. package/skills/ai-delivery-checkpoint-task/scripts/hook-event.mjs +131 -0
  43. package/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs +1073 -0
  44. package/skills/ai-delivery-close-version/SKILL.md +33 -0
  45. package/skills/ai-delivery-close-version/agents/openai.yaml +4 -0
  46. package/skills/ai-delivery-close-version/assets/line-advance-record.yaml +12 -0
  47. package/skills/ai-delivery-close-version/assets/version-lineage.yaml +12 -0
  48. package/skills/ai-delivery-close-version/assets/version-manifest.yaml +20 -0
  49. package/skills/ai-delivery-close-version/references/version-closeout-contract.md +20 -0
  50. package/skills/ai-delivery-define-product/SKILL.md +76 -0
  51. package/skills/ai-delivery-define-product/agents/openai.yaml +4 -0
  52. package/skills/ai-delivery-define-product/assets/product-template/acceptance-criteria.csv +1 -0
  53. package/skills/ai-delivery-define-product/assets/product-template/discovery-baseline.md +19 -0
  54. package/skills/ai-delivery-define-product/assets/product-template/feature-detail.md +19 -0
  55. package/skills/ai-delivery-define-product/assets/product-template/feature-terminals.csv +1 -0
  56. package/skills/ai-delivery-define-product/assets/product-template/features.csv +1 -0
  57. package/skills/ai-delivery-define-product/assets/product-template/product-baseline.yaml +8 -0
  58. package/skills/ai-delivery-define-product/assets/product-template/product-manual.md +24 -0
  59. package/skills/ai-delivery-define-product/assets/product-template/terminals.csv +1 -0
  60. package/skills/ai-delivery-define-product/assets/product-template/user-stories.csv +1 -0
  61. package/skills/ai-delivery-define-product/references/product-contract.md +57 -0
  62. package/skills/ai-delivery-deploy-production/SKILL.md +45 -0
  63. package/skills/ai-delivery-deploy-production/agents/openai.yaml +4 -0
  64. package/skills/ai-delivery-deploy-production/references/deployment-contract.md +7 -0
  65. package/skills/ai-delivery-design-architecture/SKILL.md +67 -0
  66. package/skills/ai-delivery-design-architecture/agents/openai.yaml +4 -0
  67. package/skills/ai-delivery-design-architecture/assets/architecture-template/architecture-baseline.md +25 -0
  68. package/skills/ai-delivery-design-architecture/assets/architecture-template/architecture-gate.yaml +15 -0
  69. package/skills/ai-delivery-design-architecture/assets/architecture-template/prototype-architecture-validation.yaml +58 -0
  70. package/skills/ai-delivery-design-architecture/references/architecture-contract.md +32 -0
  71. package/skills/ai-delivery-design-experience/SKILL.md +71 -0
  72. package/skills/ai-delivery-design-experience/agents/openai.yaml +4 -0
  73. package/skills/ai-delivery-design-experience/assets/experience-template/canvas-catalog.csv +1 -0
  74. package/skills/ai-delivery-design-experience/assets/experience-template/canvas-pages.csv +1 -0
  75. package/skills/ai-delivery-design-experience/assets/experience-template/component-state-matrix.csv +1 -0
  76. package/skills/ai-delivery-design-experience/assets/experience-template/design-tokens.json +19 -0
  77. package/skills/ai-delivery-design-experience/assets/experience-template/experience-baseline.yaml +17 -0
  78. package/skills/ai-delivery-design-experience/assets/experience-template/experience-change-domains.csv +1 -0
  79. package/skills/ai-delivery-design-experience/assets/experience-template/experience-change-set.csv +1 -0
  80. package/skills/ai-delivery-design-experience/assets/experience-template/feature-screen-coverage.csv +1 -0
  81. package/skills/ai-delivery-design-experience/assets/experience-template/formal-ui-confirmation.yaml +33 -0
  82. package/skills/ai-delivery-design-experience/assets/experience-template/interaction-contract.csv +1 -0
  83. package/skills/ai-delivery-design-experience/assets/experience-template/low-fidelity-confirmation.yaml +32 -0
  84. package/skills/ai-delivery-design-experience/assets/experience-template/page-catalog.csv +1 -0
  85. package/skills/ai-delivery-design-experience/assets/experience-template/page-component-map.csv +1 -0
  86. package/skills/ai-delivery-design-experience/assets/experience-template/product-prototype-reconciliation.yaml +28 -0
  87. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-adjustment-log.csv +1 -0
  88. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-confirmation.yaml +99 -0
  89. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-file-terminals.csv +1 -0
  90. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-files.csv +1 -0
  91. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-impact-assessment.yaml +25 -0
  92. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-manifest.yaml +74 -0
  93. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-product-coverage.csv +1 -0
  94. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-review-comments.csv +1 -0
  95. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-review-decision.yaml +29 -0
  96. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-review-sessions.csv +1 -0
  97. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-set.yaml +22 -0
  98. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-tool-candidates.csv +1 -0
  99. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-tool-selection.yaml +22 -0
  100. package/skills/ai-delivery-design-experience/assets/experience-template/prototype-traceability.csv +1 -0
  101. package/skills/ai-delivery-design-experience/assets/experience-template/requirement-change-set.csv +1 -0
  102. package/skills/ai-delivery-design-experience/assets/experience-template/screen-states.csv +1 -0
  103. package/skills/ai-delivery-design-experience/assets/experience-template/ui-framework-candidates.csv +1 -0
  104. package/skills/ai-delivery-design-experience/assets/experience-template/ui-framework-selection.yaml +18 -0
  105. package/skills/ai-delivery-design-experience/assets/experience-template/ui-handoff.yaml +44 -0
  106. package/skills/ai-delivery-design-experience/assets/experience-template/visual-direction.yaml +16 -0
  107. package/skills/ai-delivery-design-experience/assets/experience-template/visual-system-confirmation.yaml +31 -0
  108. package/skills/ai-delivery-design-experience/references/experience-contract.md +82 -0
  109. package/skills/ai-delivery-design-experience/references/prototype-management-contract.md +68 -0
  110. package/skills/ai-delivery-design-tests/SKILL.md +56 -0
  111. package/skills/ai-delivery-design-tests/agents/openai.yaml +4 -0
  112. package/skills/ai-delivery-design-tests/assets/test-design-template/iteration-test-contract.md +19 -0
  113. package/skills/ai-delivery-design-tests/assets/test-design-template/prototype-test-scope.csv +1 -0
  114. package/skills/ai-delivery-design-tests/assets/test-design-template/prototype-test-validation.yaml +73 -0
  115. package/skills/ai-delivery-design-tests/references/test-design-contract.md +31 -0
  116. package/skills/ai-delivery-develop-iteration/SKILL.md +66 -0
  117. package/skills/ai-delivery-develop-iteration/agents/openai.yaml +4 -0
  118. package/skills/ai-delivery-develop-iteration/assets/development-template/task-experience-change-traceability.csv +1 -0
  119. package/skills/ai-delivery-develop-iteration/assets/development-template/task-prototype-traceability.csv +1 -0
  120. package/skills/ai-delivery-develop-iteration/references/development-contract.md +39 -0
  121. package/skills/ai-delivery-evolve-workflow/SKILL.md +57 -0
  122. package/skills/ai-delivery-evolve-workflow/agents/openai.yaml +4 -0
  123. package/skills/ai-delivery-evolve-workflow/references/evolution-contract.md +42 -0
  124. package/skills/ai-delivery-execute-test/SKILL.md +34 -0
  125. package/skills/ai-delivery-execute-test/agents/openai.yaml +4 -0
  126. package/skills/ai-delivery-execute-test/references/test-execution-contract.md +7 -0
  127. package/skills/ai-delivery-execute-work-package/SKILL.md +53 -0
  128. package/skills/ai-delivery-execute-work-package/agents/openai.yaml +4 -0
  129. package/skills/ai-delivery-execute-work-package/references/work-package-contract.md +20 -0
  130. package/skills/ai-delivery-manage-git/SKILL.md +60 -0
  131. package/skills/ai-delivery-manage-git/agents/openai.yaml +4 -0
  132. package/skills/ai-delivery-manage-git/references/git-policy.md +42 -0
  133. package/skills/ai-delivery-manage-standards/SKILL.md +44 -0
  134. package/skills/ai-delivery-manage-standards/agents/openai.yaml +4 -0
  135. package/skills/ai-delivery-manage-standards/assets/standards-template/standard.md +25 -0
  136. package/skills/ai-delivery-manage-standards/references/standards-contract.md +20 -0
  137. package/skills/ai-delivery-orchestrate/SKILL.md +105 -0
  138. package/skills/ai-delivery-orchestrate/agents/openai.yaml +4 -0
  139. package/skills/ai-delivery-orchestrate/assets/project-template/.codex/config.toml +92 -0
  140. package/skills/ai-delivery-orchestrate/assets/project-template/.gitattributes +6 -0
  141. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/delivery/artifact-registry.yaml +3 -0
  142. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/delivery/project.yaml +6 -0
  143. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/delivery/standards-baseline.yaml +8 -0
  144. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/delivery/workflow-state.yaml +34 -0
  145. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/decisions/.gitkeep +0 -0
  146. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/experiments/.gitkeep +0 -0
  147. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/feedback/.gitkeep +0 -0
  148. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/index.yaml +7 -0
  149. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/promotion/.gitkeep +0 -0
  150. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/evolution/proposals/.gitkeep +0 -0
  151. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/extensions/.gitkeep +0 -0
  152. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/standards/STD-ARTIFACT-PATH-001.md +47 -0
  153. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/standards/STD-DOC-LANG-001.md +62 -0
  154. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/standards/STD-TEST-LOCATION-001.md +23 -0
  155. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/standards/index.yaml +36 -0
  156. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/bootstrap/bootstrap.mjs +33 -0
  157. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/evolution/evolve.mjs +15 -0
  158. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/hooks/hook-event.mjs +131 -0
  159. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/state/state.mjs +21 -0
  160. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/public/app.js +546 -0
  161. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/public/index.html +199 -0
  162. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/public/styles.css +529 -0
  163. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/server.mjs +780 -0
  164. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/start.cmd +4 -0
  165. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/start.ps1 +2 -0
  166. package/skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/viewer/start.sh +4 -0
  167. package/skills/ai-delivery-orchestrate/assets/project-template/AGENTS.md +44 -0
  168. package/skills/ai-delivery-orchestrate/references/formal-state-contract.md +64 -0
  169. package/skills/ai-delivery-orchestrate/references/workflow-model.md +29 -0
  170. package/skills/ai-delivery-orchestrate-release/SKILL.md +33 -0
  171. package/skills/ai-delivery-orchestrate-release/agents/openai.yaml +4 -0
  172. package/skills/ai-delivery-orchestrate-release/assets/release-request.yaml +9 -0
  173. package/skills/ai-delivery-orchestrate-release/assets/version-selection.yaml +16 -0
  174. package/skills/ai-delivery-orchestrate-release/references/release-workflow-contract.md +11 -0
  175. package/skills/ai-delivery-plan-iteration/SKILL.md +57 -0
  176. package/skills/ai-delivery-plan-iteration/agents/openai.yaml +4 -0
  177. package/skills/ai-delivery-plan-iteration/assets/planning-template/backlog.csv +1 -0
  178. package/skills/ai-delivery-plan-iteration/assets/planning-template/slice-dependencies.csv +1 -0
  179. package/skills/ai-delivery-plan-iteration/assets/planning-template/slice-experience-change-traceability.csv +1 -0
  180. package/skills/ai-delivery-plan-iteration/assets/planning-template/slice-prototype-traceability.csv +1 -0
  181. package/skills/ai-delivery-plan-iteration/assets/planning-template/slice-sources.csv +1 -0
  182. package/skills/ai-delivery-plan-iteration/assets/planning-template/vertical-slices.csv +1 -0
  183. package/skills/ai-delivery-plan-iteration/references/planning-contract.md +40 -0
  184. package/skills/ai-delivery-prepare-platform/SKILL.md +49 -0
  185. package/skills/ai-delivery-prepare-platform/agents/openai.yaml +4 -0
  186. package/skills/ai-delivery-prepare-platform/assets/platform-template/environment-ledger.csv +1 -0
  187. package/skills/ai-delivery-prepare-platform/references/platform-contract.md +18 -0
  188. package/skills/ai-delivery-prepare-release/SKILL.md +47 -0
  189. package/skills/ai-delivery-prepare-release/agents/openai.yaml +4 -0
  190. package/skills/ai-delivery-prepare-release/assets/release-template/delivery-items.csv +1 -0
  191. package/skills/ai-delivery-prepare-release/assets/release-template/release-manifest.yaml +18 -0
  192. package/skills/ai-delivery-prepare-release/references/release-contract.md +21 -0
  193. package/skills/ai-delivery-review-change/SKILL.md +40 -0
  194. package/skills/ai-delivery-review-change/agents/openai.yaml +4 -0
  195. package/skills/ai-delivery-review-change/references/review-contract.md +20 -0
  196. package/skills/ai-delivery-triage-failure/SKILL.md +45 -0
  197. package/skills/ai-delivery-triage-failure/agents/openai.yaml +4 -0
  198. package/skills/ai-delivery-triage-failure/references/failure-routing-contract.md +13 -0
  199. package/skills/ai-delivery-validate-artifacts/SKILL.md +37 -0
  200. package/skills/ai-delivery-validate-artifacts/agents/openai.yaml +4 -0
  201. package/skills/ai-delivery-validate-artifacts/references/artifact-contract.md +44 -0
  202. package/skills/ai-delivery-verify-candidate/SKILL.md +56 -0
  203. package/skills/ai-delivery-verify-candidate/agents/openai.yaml +4 -0
  204. package/skills/ai-delivery-verify-candidate/assets/verification-template/defect-artifacts.csv +1 -0
  205. package/skills/ai-delivery-verify-candidate/assets/verification-template/defects.csv +1 -0
  206. package/skills/ai-delivery-verify-candidate/assets/verification-template/test-work-packages.csv +1 -0
  207. package/skills/ai-delivery-verify-candidate/references/candidate-verification-contract.md +23 -0
  208. package/skills/ai-delivery-verify-production/SKILL.md +50 -0
  209. package/skills/ai-delivery-verify-production/agents/openai.yaml +4 -0
  210. package/skills/ai-delivery-verify-production/assets/production-verification-template/production-verification.md +15 -0
  211. package/skills/ai-delivery-verify-production/references/production-verification-contract.md +14 -0
@@ -0,0 +1,931 @@
1
+ # AI Delivery Workflow 完整项目手册
2
+
3
+ > 仓库身份:当前源码仓库是工作流维护与发行项目,不是下文所述的业务工作区。不要对当前源码仓库套用双仓初始化、业务项目 bootstrap 或 `.workflow/` 状态恢复;下文双仓契约描述的是安装目标。
4
+ >
5
+ > 当前工作区契约:本手册现行版本只支持“工作流控制仓库 + 一个直接子目录代码仓库”,不支持旧单仓迁移,也不使用 Git submodule。完整规则见 [DUAL-REPOSITORY-WORKSPACE.zh-CN.md](DUAL-REPOSITORY-WORKSPACE.zh-CN.md)。
6
+
7
+ ```text
8
+ workspace/.git 工作流 Git
9
+ workspace/.workflow/ 正式物料和共享状态
10
+ workspace/.workflow/config/workspace.yaml
11
+ workspace/code/.git 代码 Git
12
+ ```
13
+
14
+ 初始化器会创建缺失的工作流 Git 和代码 Git,或绑定已有代码 Git,或使用 `--code-remote` clone;根 `.gitignore` 精确加入 `/code/`。所有代码扫描和代码 Git 命令只针对配置的代码目录。
15
+
16
+ 初始化器还会合并根 `.gitattributes`,对 `.workflow/**`、项目级 `ai-delivery-*` Skills、`.codex/config.toml`、`AGENTS.md`、`.gitignore` 和 `.gitattributes` 强制 `eol=lf`。这是 checksum 可移植性约束;不会修改嵌套代码仓的换行策略。缺失规则会使 `doctor` 失败,避免 Windows checkout 后正式状态和物料被误判为篡改。
17
+
18
+ > 文档版本:1.0
19
+ > 适用包版本:`ai-delivery-workflow@0.2.0`
20
+ > 默认文档语言:简体中文
21
+ > 文件级索引:[FILE-REFERENCE.zh-CN.md](FILE-REFERENCE.zh-CN.md)
22
+ > 全流程审计物料(历史 V1 与当前契约 V2):[../audit/README.md](../audit/README.md)
23
+ > 正式状态命令:[STATE-CLI-USER-GUIDE.zh-CN.md](STATE-CLI-USER-GUIDE.zh-CN.md)
24
+
25
+ ## 1. 项目是什么
26
+
27
+ AI Delivery Workflow 是一套安装在单个代码仓库内的 AI 研发流程。它把从需求发现到生产验证的工作拆成可验证节点,以版本化产物作为节点之间的输入和输出,并通过项目级 skills、Hook、状态文件和 checkpoint 让 AI 可以在不同会话中继续工作。
28
+
29
+ 它解决的不是“让 AI 扮演一组固定岗位”,而是以下问题:
30
+
31
+ - 每个节点必须读取哪些已确认输入;
32
+ - 产出哪些人和机器都能审阅的交付物;
33
+ - 哪些决定必须由人完成;
34
+ - 下游如何验证上游,而不是默认相信上游;
35
+ - 一个迭代中断后,如何从持久化状态继续;
36
+ - 发布、部署和回滚如何绑定同一不可变版本;
37
+ - 对话中形成的新规范如何沉淀,并在后续任务中生效。
38
+
39
+ 本项目本身是“工作流发行包”。安装后,目标业务仓库才是工作流的运行场所。
40
+
41
+ ## 2. 适用范围与边界
42
+
43
+ 适合:
44
+
45
+ - 从零开始的最小前后端项目;
46
+ - 已有代码但缺少结构化研发上下文的存量项目;
47
+ - 需要 AI 连续完成产品、架构、体验、测试、开发和上线工作的项目;
48
+ - 需要产物追踪、人工关键决策、任务恢复和版本归档的项目。
49
+
50
+ 当前边界:
51
+
52
+ - 不替代代码托管、CI、镜像仓库、密钥系统或生产平台;
53
+ - 不自动授予生产权限;
54
+ - 不把 Hook 事件当成任务完成证明;
55
+ - 不自动重放生产部署、数据库迁移、付款、通知或破坏性动作;
56
+ - 不把项目 skills 安装到用户全局目录;
57
+ - 不预设“前端工程师”“服务端工程师”等固定角色,开发能力由需求、架构和工作包动态推导。
58
+
59
+ ## 3. 核心设计原则
60
+
61
+ ### 3.1 产物驱动
62
+
63
+ 每个节点都接收带稳定 ID、版本和状态的正式产物,并输出下一节点可验证的正式产物。聊天内容只用于交互,不作为唯一事实来源。
64
+
65
+ ### 3.2 角色动态化
66
+
67
+ 流程节点代表责任边界,不等于传统岗位。产品定义、架构设计、测试设计等节点有明确职责;开发阶段则根据功能、终端、技术栈、组件和风险动态生成能力角色及技术工作包。
68
+
69
+ ### 3.3 下游验证
70
+
71
+ 普通节点交接不要求人工逐件批准,由下游按契约验证输入。关键业务或不可逆决定保留人工 Gate,见第 8 节。
72
+
73
+ ### 3.4 基线不可变
74
+
75
+ 已批准、冻结、发布或归档的产物不得原地修改。发生变化时创建新版本,标记受影响的下游产物为 `stale`,只重做受影响链路。
76
+
77
+ ### 3.5 版本是归档单位
78
+
79
+ 一次生产部署对应一个迭代版本。任务可以单独完成,但不能单独归档;生产验证成功或版本明确放弃后,才把整个迭代的所有已关闭任务归档。
80
+
81
+ ### 3.6 默认中文
82
+
83
+ 面向人的文档默认使用简体中文。命令、路径、代码标识、Schema 字段、枚举值、协议名和引用原文保持原样。
84
+
85
+ ### 3.7 文档集中存放
86
+
87
+ 所有研发流程文档默认写入项目根目录 `.workflow/`。控制状态放在 `.workflow/delivery/`,规范放在 `.workflow/standards/`,长期产品、架构和体验基线分别放在 `.workflow/product/`、`.workflow/architecture/` 和 `.workflow/experience/`,迭代节点交付物默认放在 `.workflow/iterations/<iteration-id>/<node-id>/`。
88
+
89
+ 应用源码、自动化测试源码、依赖清单、仓库配置、镜像、发布二进制及其他非文档制品保留在其原生位置;描述这些制品身份、digest、变更、部署、验证和回滚的文档仍必须进入 `.workflow/`。`.workflow/` 默认纳入版本控制,只有 `.workflow/delivery/runtime/` 加入 Git 忽略。
90
+
91
+ ### 3.8 测试集中存放
92
+
93
+ 维护仓库的通用、长期验证源码统一位于根 `verification/` 并纳入 Git。业务项目的应用自动化测试位于代码仓库 `<code_repository.path>`,沿用该仓库已有框架、命名和原生测试目录,不得写入 `.workflow/`。
94
+
95
+ `audit/` 候选包、部署副本和历史审计快照中内嵌的测试文件属于审计物料,可保留原路径;验证这些物料的维护入口位于根 `verification/`。本维护仓库的一切临时仓库、日志、缓存、报告、认证辅助文件和单次场景脚本统一放入被忽略的 `.tmp/`。
96
+
97
+ ## 4. 工作流组成
98
+
99
+ 安装包由四层组成:
100
+
101
+ | 层 | 位置 | 作用 |
102
+ | --- | --- | --- |
103
+ | CLI | `bin/ai-delivery.mjs` | 安装、检查、引导和诊断目标项目。 |
104
+ | 安装与引导库 | `lib/` | 合并项目配置、识别项目状态、生成存量代码上下文。 |
105
+ | 项目 skills | `skills/ai-delivery-*` | 定义各研发节点的输入、过程、输出、Gate 和失败路由。 |
106
+ | 审计与验证 | `audit/`、`verification/` | 保留历史 V1 执行证据,以 ITER-V2 验证当前契约,并用通用测试验证安装、引导和原型交接;两者均不随 `init` 安装。 |
107
+ | 临时运行物料 | `.tmp/` | 保存测试工作区、缓存、日志、报告、临时 Git 仓库、打包文件和单次场景脚本,整体忽略且可随时删除。 |
108
+
109
+ 安装到业务项目后,主要目录如下:
110
+
111
+ ```text
112
+ <project-root>/
113
+ .agents/skills/ai-delivery-*/ # 25 个项目级 Skills
114
+ .codex/config.toml # 项目级 Codex Hook 配置
115
+ .workflow/
116
+ config/
117
+ workspace.yaml # 双仓绑定的唯一权威配置
118
+ install-manifest.json # 安装清单
119
+ tools/
120
+ bootstrap/ # 自包含项目识别与自主入口
121
+ hooks/hook-event.mjs # Hook 事件记录器
122
+ state/ # 自包含正式状态 CLI 与 YAML 运行时
123
+ evolution/ # 自包含 Evolution CLI
124
+ viewer/ # 可选、只读、可重装的工作流查看器
125
+ delivery/
126
+ project.yaml # 项目描述与旧字段兼容回退
127
+ workflow-state.yaml # 正式流程、Gate、累计研发和生产身份
128
+ artifact-registry.yaml # 正式物料注册表
129
+ state-events.jsonl # 正式状态审计事件
130
+ standards-baseline.yaml # 当前规范基线
131
+ bootstrap/ # 引导扫描产生的上下文
132
+ runtime/ # 被忽略的本地任务、心跳、活动标记与备份
133
+ control/ # 可共享任务、Checkpoint、Gate、版本与发布分片
134
+ standards/ # 项目规范
135
+ evolution/ # 反馈、提案、试验和决策
136
+ extensions/ # 已注册项目级扩展版本
137
+ product/ # 长期产品基线
138
+ architecture/ # 长期架构基线
139
+ experience/ # 长期体验基线
140
+ iterations/ # 迭代节点交付物
141
+ releases/ # 独立发布交付物
142
+ code/ # 被外层 Git 忽略的独立代码 Git 仓库
143
+ AGENTS.md # AI 工作说明
144
+ .gitignore # 精确忽略 code/ 与本地 runtime
145
+ .gitattributes # 固定工作流受控文本为 LF
146
+ ```
147
+
148
+ 安装器为上述可能为空但必须跨 clone 保留的内容目录,以及 `.workflow/control/` 下的任务、Checkpoint、物料、Gate、版本、发布和事件分片目录创建 `.gitkeep`。这些占位文件属于结构契约;重新克隆后无需再次执行 `init` 即可通过 `doctor`。
149
+
150
+ ## 5. 安装、升级与诊断
151
+
152
+ ### 5.1 前提
153
+
154
+ - Node.js `>=18`;
155
+ - 目标目录已经存在;
156
+ - 对目标项目目录有写权限;
157
+ - 目标不得是用户主目录、`~/.codex` 或 `~/.agents`;
158
+ - 安装完成后允许重新启动一个 Codex 任务,以刷新项目级 skill 发现和 Hook 信任。
159
+
160
+ ### 5.2 从 npm 仓库安装到当前项目
161
+
162
+ 在目标业务项目根目录执行:
163
+
164
+ ```bash
165
+ npx ai-delivery-workflow@latest init .
166
+ npx ai-delivery-workflow@latest doctor .
167
+ ```
168
+
169
+ 这只会写入当前项目,不会安装全局 skill。
170
+
171
+ `init` 会同时内置正式状态 CLI 和本地工作流物料查看器,不修改业务项目 `package.json`。安装完成后无需安装额外前端依赖,直接在目标项目运行:
172
+
173
+ ```powershell
174
+ .\.workflow\tools\viewer\start.cmd
175
+ ```
176
+
177
+ 或:
178
+
179
+ ```powershell
180
+ .\.workflow\tools\viewer\start.ps1
181
+ ```
182
+
183
+ macOS/Linux:
184
+
185
+ ```bash
186
+ sh ./.workflow/tools/viewer/start.sh
187
+ ```
188
+
189
+ 服务默认监听 `127.0.0.1:4173` 并打开浏览器。可使用 `--port 4180` 指定端口,使用 `--no-open` 禁止自动打开浏览器。查看器只读取 `.workflow/`,不会修改、批准、迁移或删除正式物料。
190
+
191
+ ### 5.3 从本地源码安装到另一个项目
192
+
193
+ 开发或尚未发布到 npm 时,可直接调用本仓库 CLI:
194
+
195
+ ```powershell
196
+ node E:\work\ai\codex\workflow\bin\ai-delivery.mjs init E:\path\to\target-project
197
+ node E:\work\ai\codex\workflow\bin\ai-delivery.mjs doctor E:\path\to\target-project
198
+ ```
199
+
200
+ 也可先在本仓库执行 `npm pack`,再在目标项目使用生成的 `.tgz`:
201
+
202
+ ```powershell
203
+ npx --yes --package E:\path\to\ai-delivery-workflow-0.2.0.tgz ai-delivery init .
204
+ ```
205
+
206
+ 安装完成后,在目标项目中新建 Codex 任务。不要继续依赖安装前的会话来判断 skill 是否可用。
207
+
208
+ ### 5.4 预览和处理冲突
209
+
210
+ 只预览,不写文件:
211
+
212
+ ```bash
213
+ npx ai-delivery-workflow@latest init . --dry-run
214
+ ```
215
+
216
+ 同一发行版本内检测到受管 Skill、Hook 或核心运行时被修改时,默认安装会停止。确认需要采用当前发行基线覆盖这些修改后,才执行:
217
+
218
+ ```bash
219
+ npx ai-delivery-workflow@latest init . --force
220
+ ```
221
+
222
+ `--force` 会把被替换的受管文件备份到 `.workflow/delivery/runtime/backups/<timestamp>/`。它不会授权覆盖冲突的已批准规范正文;规范冲突必须按规范治理流程处理。
223
+
224
+ 当安装器检测到有效安装清单中的包版本发生变化时,会自动备份并升级受管 Skill、Hook、Bootstrap、状态、Evolution 和查看器;产品、架构、体验、迭代、发布、规范及正式状态物料不被替换。升级后仍需执行 `doctor`。
225
+
226
+ 安装器不会把降级当作升级。目标包版本早于已安装版本时默认拒绝;只有用户明确批准降级并审阅备份影响后,才可使用 `--force`。
227
+
228
+ 旧项目中的 `.ai-delivery/` 会在升级时先完整备份,再迁入 `.workflow/config/` 和 `.workflow/tools/`;验证失败时旧目录不会删除。`.workflow/tools/viewer/` 是唯一可选工具,删除后不影响核心工作流,重新执行 `init` 即可恢复。
229
+
230
+ ### 5.5 升级
231
+
232
+ 推荐步骤:
233
+
234
+ 1. 提交或备份业务项目当前改动。
235
+ 2. 执行新版 `init --dry-run`。
236
+ 3. 审阅 skill、Hook 和模板变化。
237
+ 4. 处理规范冲突。
238
+ 5. 执行新版 `init`;仅在同版本受管文件冲突且明确采用发行基线时使用 `--force`。
239
+ 6. 执行 `doctor`。
240
+ 7. 新建 Codex 任务,对 AI 说“继续”;AI 自主调用 Bootstrap 和后续 Skill。
241
+
242
+ #### 从旧目录布局迁移
243
+
244
+ 早期项目可能把流程状态放在根目录 `delivery/` 和 `standards/`。升级前必须:
245
+
246
+ 1. 停止所有正在运行的工作流任务并保存 checkpoint。
247
+ 2. 将 `delivery/` 移动为 `.workflow/delivery/`。
248
+ 3. 将 `standards/` 移动为 `.workflow/standards/`。
249
+ 4. 将其他研发流程文档按类型迁入 `.workflow/product/`、`.workflow/architecture/`、`.workflow/experience/` 或 `.workflow/iterations/<iteration-id>/<node-id>/`。
250
+ 5. 更新注册表路径、交付物引用和受影响 checksum。
251
+ 6. 将 `.gitignore` 中的 `delivery/runtime/` 改为 `.workflow/delivery/runtime/`,不得忽略整个 `.workflow/`。
252
+ 7. 确认根目录不再残留旧 `delivery/` 或 `standards/` 后,执行 `init --dry-run`、`init` 和 `doctor`。
253
+
254
+ 安装器检测到旧布局或新旧布局并存时会停止,不会自动移动文件或选择权威状态。
255
+
256
+ ### 5.6 CLI 命令
257
+
258
+ | 命令 | 是否写文件 | 用途 |
259
+ | --- | --- | --- |
260
+ | `ai-delivery init [project]` | 是 | 安装 25 个 Skills、Hook、Bootstrap/状态/Evolution CLI、初始交付模板和默认规范。 |
261
+ | `ai-delivery init [project] --dry-run` | 否 | 预览安装或升级动作。 |
262
+ | `ai-delivery init [project] --force` | 是 | 备份并替换冲突的受管文件。 |
263
+ | `ai-delivery inspect [project]` | 否 | 输出机器可读的项目、代码、流程和运行时状态。 |
264
+ | `ai-delivery bootstrap [project]` | 视状态而定 | 初始化空项目或存量项目上下文,或把中断项目路由到恢复。 |
265
+ | `ai-delivery bootstrap [project] --dry-run` | 否 | 预览引导动作。 |
266
+ | `ai-delivery doctor [project]` | 否 | 校验安装清单、关键 skills、Hook 配置和项目文件。 |
267
+ | `ai-delivery state <command> --project <project>` | 视子命令而定 | 发行包维护入口;透传正式状态命令。项目执行时优先用项目内 `.workflow/tools/state/state.mjs`。 |
268
+ | `ai-delivery evolve <command> --project <project>` | 视子命令而定 | 记录反馈并治理项目级扩展。项目执行时优先用项目内 `.workflow/tools/evolution/evolve.mjs`。 |
269
+ | `ai-delivery --version` | 否 | 输出包版本。 |
270
+
271
+ 完全未安装的项目不能依靠项目内 skill 自行引导,因为此时 skill 尚不存在。第一次必须先通过 CLI 执行 `init` 或 `bootstrap`。
272
+
273
+ ### 5.7 工作流物料查看器
274
+
275
+ 查看器是随 `init` 安装的项目内只读系统,主要提供:
276
+
277
+ - 按当前迭代和 17 个研发节点查看物料数量与进度;
278
+ - 按状态、类型、节点、Git 变更和全文关键字筛选;
279
+ - 展示物料 ID、版本、更新时间、大小、Git 状态和 SHA-256;
280
+ - 从文档路径引用推导上游与下游关系;
281
+ - 识别正文采用的规范 ID;
282
+ - 格式化预览 Markdown、CSV、JSON、YAML、JSONL、TOML、文本和图片;
283
+ - 在窄屏上把详情区切换为抽屉,保留节点、筛选和物料表主流程。
284
+
285
+ 默认只绑定本机回环地址。确需允许局域网访问时可显式传入 `--host`,但必须先评估项目文档的敏感性和终端网络边界。查看器不会提供写接口,也不会读取 `.workflow/` 之外的文件。
286
+
287
+ 完整操作、字段识别、升级和故障处理见[工作流物料查看器使用指南](VIEWER-USER-GUIDE.zh-CN.md);修改源码、扩展 API 或调整界面前,先阅读[工作流物料查看器维护指南](VIEWER-MAINTENANCE.zh-CN.md)。
288
+
289
+ ## 6. 项目状态识别与自主规划
290
+
291
+ 每次新会话或进入陌生仓库,AI 会先运行项目内只读识别;用户无需执行该命令:
292
+
293
+ ```bash
294
+ node .workflow/tools/bootstrap/bootstrap.mjs inspect
295
+ ```
296
+
297
+ 引导器只返回以下五种状态之一:
298
+
299
+ | 状态 | 含义 | 推荐动作 |
300
+ | --- | --- | --- |
301
+ | `empty-uninitialized` | 无完整工作流,也无代码证据。 | 安装工作流,进入产品发现,引导用户说明问题、用户和成功标准。 |
302
+ | `codebase-uninitialized` | 有代码证据,但无完整工作流。 | 安装并生成草稿代码上下文,由用户校正后进入产品发现。 |
303
+ | `workflow-ready` | 安装完整,无可恢复任务。 | 根据正式产物和 Gate 状态选择下一节点。 |
304
+ | `workflow-interrupted` | 存在活动、中断、阻塞或依赖就绪任务。 | 先读取 `next_action_owner`;仅 `agent` 转到 checkpoint 恢复,`user/external` 只返回问题或等待条件且零写入。 |
305
+ | `workflow-inconsistent` | 安装不完整、状态损坏、身份冲突或依赖缺失。 | 停止推进,修复一致性问题。 |
306
+
307
+ `bootstrap` 为新项目生成的文件全部是 `draft`:
308
+
309
+ ```text
310
+ .workflow/delivery/bootstrap/
311
+ latest.yaml
312
+ runs/<bootstrap-run-id>/
313
+ project-state-report.yaml
314
+ repository-baseline.yaml
315
+ codebase-inventory.csv
316
+ context-index.csv
317
+ adoption-assessment.md
318
+ bootstrap-plan.yaml
319
+ ```
320
+
321
+ 这些文件描述“仓库里观察到了什么”,不代表“产品应该做什么”。存量代码不能绕过产品发现直接进入开发。
322
+
323
+ 扫描会忽略 Git 元数据、工作流自身目录、依赖缓存、构建输出、覆盖率、虚拟环境和 vendor 目录,并从上下文产物中排除密钥及明显敏感文件。
324
+
325
+ ## 7. 完整研发流程
326
+
327
+ ```mermaid
328
+ flowchart LR
329
+ B["Bootstrap"] --> D["产品发现"]
330
+ D --> P["产品定义"]
331
+ P --> A1["初始架构"]
332
+ A1 --> LF["可运行低保真原型 / UX-LF"]
333
+ A1 --> PLAT["平台准备"]
334
+ LF --> VS["视觉系统与框架 / UX-VS"]
335
+ VS --> UI["可运行正式 UI / UX-UI"]
336
+ UI --> PR["产品与原型统一核对"]
337
+ PR --> A2["架构校准"]
338
+ A2 --> PLAN["迭代规划"]
339
+ PLAN --> TEST["测试设计"]
340
+ TEST --> DEV["开发实现"]
341
+ DEV --> REVIEW["独立变更审查"]
342
+ REVIEW --> VERIFY["候选验证"]
343
+ PLAT --> VERIFY
344
+ VERIFY --> RELEASE["发布准备"]
345
+ RELEASE --> APPROVE["生产审批"]
346
+ APPROVE --> DEPLOY["生产部署"]
347
+ DEPLOY --> PROD["生产验证"]
348
+ PROD --> ARCHIVE["版本归档"]
349
+ ```
350
+
351
+ ### 7.1 节点流转物料
352
+
353
+ | 序号 | 节点 / skill | 主要输入 | 必需过程 | 主要输出 | 放行方式 |
354
+ | ---: | --- | --- | --- | --- | --- |
355
+ | 0 | 引导 `$ai-delivery-bootstrap` | 仓库、安装和运行时状态 | 只读扫描、状态分类、敏感文件排除、恢复判断 | 项目状态报告、代码清单、上下文索引、引导计划 | 状态契约 |
356
+ | 1 | 产品发现 `$ai-delivery-define-product` | 用户原始想法、存量观察 | 逐项访谈问题、用户、目标、边界、假设和成功信号 | `discovery-baseline.md`、Gate A 决策 | 人工 Gate A |
357
+ | 2 | 产品定义 `$ai-delivery-define-product` | 已批准发现基线 | 定义终端、功能、关联、故事、验收标准、版本路线和统一术语 | 产品手册、产品基线、终端矩阵、功能表、功能详情、故事、验收标准、版本路线图 | 人工 Gate B |
358
+ | 3 | 初始架构 `$ai-delivery-design-architecture` | 产品基线、终端和质量约束 | 设计应用、技术、数据、安全、部署和可观测架构;选择技术栈 | 初始架构、技术栈清单、接口草案、架构决策 | 重大决策人工批准 |
359
+ | 4 | 体验设计 `$ai-delivery-design-experience` | 产品基线、终端矩阵、功能说明、初始架构 | 选原型工具;制作可运行低保真原型并通过 `UX-LF`;选视觉系统/UI 框架并通过 `UX-VS`;制作可运行正式 UI 并通过 `UX-UI`;逐条记录调整;最后统一核对产品需求 | 三道 Gate、交互契约、Token、框架选型、组件状态、调整/变更集、产品核对、`ui-handoff.yaml` | 工具人工选择;三道体验 Gate 均人工确认;产品核对必须 `aligned` |
360
+ | 5 | 架构校准 `$ai-delivery-design-architecture` | 初始架构、ready UI handoff、产品核对、体验变更集 | 校验 UI 框架兼容性、组件/接口/数据和非功能设计,把可执行变更推进到 `ready-for-development` | 最终架构、正式接口契约、组件影响、原型架构接收凭据 | 下游契约验证 |
361
+ | 6 | 平台准备 `$ai-delivery-prepare-platform` | 初始架构、技术栈和交付约束 | 准备构建、CI/CD、环境、配置、制品、观测和回滚能力 | 平台就绪报告、CI、环境台账、配置键清单 | 候选验证前汇合 |
362
+ | 7 | 迭代规划 `$ai-delivery-plan-iteration` | 产品路线、最终架构、ready UI handoff、体验变更集 | 按业务价值、紧迫度、风险和学习价值排序;把可执行体验变更映射到垂直切片 | backlog、垂直切片、来源/原型/体验变更追踪、依赖、迭代计划 | 下游契约验证 |
363
+ | 8 | 测试设计 `$ai-delivery-design-tests` | 迭代切片、架构、ready UI handoff、交互/组件状态、体验变更 | 按 `experience_change_id` 设计行为、视觉回归、响应式、无障碍、数据、环境和质量门禁 | 测试策略、迭代测试契约、体验变更测试追踪、质量门禁、原型测试收据 | 下游契约验证 |
364
+ | 9 | 开发实现 `$ai-delivery-develop-iteration` | 切片、架构、ready UI handoff、体验变更、公开测试契约 | 按结构化变更拆工作包和 `create/update/remove/migrate/no-code` 动作;逐包 TDD;组装候选 | 技术工作包、任务-体验变更追踪、代码、TDD 证据、候选清单 | 工作包验证 |
365
+ | 10 | 变更审查 `$ai-delivery-review-change` | 工作包变更、需求、架构、规范和测试证据 | 由独立上下文审查行为、架构、质量、安全和测试 | 审查报告、发现清单、审查决策 | 阻断问题关闭 |
366
+ | 11 | 候选验证 `$ai-delivery-verify-candidate` | 不可变候选、平台环境、产品、架构、原型和测试契约 | 动态拆风险测试包,独立执行功能、集成、端到端及非功能验证 | 测试工作包、覆盖矩阵、证据、缺陷和候选决策 | 独立验证通过 |
367
+ | 12 | 发布准备 `$ai-delivery-prepare-release` | 已验证候选、完整变更集 | 冻结版本,核对所有需求、架构、代码、镜像、配置、数据和运维变更,验证回滚 | 发布清单、上线交付清单、变更覆盖、回滚就绪说明 | 进入生产审批 |
368
+ | 13 | 生产审批 | 精确发布 ID、目标环境、制品 digest 和计划 | 人工核对本次迭代的完整部署包 | `approval.yaml` | 人工批准 |
369
+ | 14 | 生产部署 `$ai-delivery-deploy-production` | 未变化的已批准发布包 | 独立执行部署、记录每步结果,不混入开发或测试职责 | 部署计划、部署记录、部署证据、环境台账更新 | 技术执行结果 |
370
+ | 15 | 生产验证 `$ai-delivery-verify-production` | 部署记录、发布清单、生产验证计划 | 独立验证技术和业务信号,决定发布、回滚或失败路由 | 生产验证报告、烟雾证据、发布决策 | `released` 或失败路由 |
371
+ | 16 | 版本归档 `$ai-delivery-checkpoint-task` | `released` 或 `abandoned` 版本及全部关闭任务 | 核对证据,复制任务、checkpoint、事件和恢复摘要,写轻量索引 | 版本清单、版本索引、任务索引和归档详情 | 归档契约 |
372
+
373
+ ### 7.2 为什么先架构再体验
374
+
375
+ 产品定义中的“渠道与终端范围矩阵”和“功能-终端关联”先明确要设计哪些终端。初始架构随后给出技术能力、接口边界、安全、部署和性能约束,体验设计据此产出可实现的原型。原型完成后再做架构校准,吸收页面状态和交互产生的真实技术影响。
376
+
377
+ 因此顺序是:
378
+
379
+ ```text
380
+ 产品定义 -> 初始架构 -> 体验设计 -> 架构校准
381
+ ```
382
+
383
+ ### 7.3 领域语言
384
+
385
+ 本流程不引入完整 DDD 战术建模。产品手册必须维护领域术语和统一业务语言,产品、架构、体验、测试、代码和上线文档使用同一组规范术语。术语变化属于产品基线变化,必须做下游影响分析。
386
+
387
+ ## 8. 人工 Gate
388
+
389
+ 当前必须由人作出决定的项目:
390
+
391
+ | Gate | 人工决定 | AI 在决定前后做什么 |
392
+ | --- | --- | --- |
393
+ | Discovery Gate A | 问题、目标用户、边界和成功信号是否可进入产品定义 | AI 先整理发现基线;批准后冻结版本。 |
394
+ | Product Gate B | 产品手册、终端、功能、故事、验收标准、路线图是否完整 | AI 校验全部强制物料;批准后形成产品基线。 |
395
+ | 重大架构决策 | 高影响、难逆转的技术决策是否采用 | AI 给出选项、证据、影响和决策记录。 |
396
+ | 原型工具选择 | 每个原型集成员使用哪个实际可用工具 | AI 先列候选工具和适配理由,人在开始创作前选择。 |
397
+ | `UX-LF` | 可运行低保真原型的布局、交互方式和细节是否通过 | AI 必须提供可实际操作、会产生状态变化的原型,并记录每轮评论和调整。 |
398
+ | `UX-VS` | 视觉方向、字体、色彩、Token、组件状态和 UI 框架选择是否通过 | AI 根据产品性质与技术架构给出候选和证据,人在正式 UI 制作前确认。 |
399
+ | `UX-UI` | 应用选定系统后的可运行正式 UI 是否通过 | AI 保持已确认交互,记录所有修订,直到最新轮次批准且评论全部终结。 |
400
+ | 生产部署审批 | 是否允许把精确 package hash 部署到指定环境 | AI 必须先列出完整变更和回滚条件。 |
401
+ | 规范治理 | 新增、修改、废弃或例外是否生效 | AI 起草版本化规范,批准后注册并固定版本。 |
402
+
403
+ 除上述 Gate 外,中间交付默认由下游按契约验证,不要求额外人工确认。
404
+
405
+ ## 9. 原型设计与上下游交接
406
+
407
+ ### 9.1 原型成员和工具
408
+
409
+ 一个产品可有多个终端或原型成员。每个成员在开始设计前独立维护:
410
+
411
+ - `prototype-tool-candidates.csv`:Pencil、Figma、项目内 UI/UX skill 或其他可用工具;
412
+ - `prototype-tool-selection.yaml`:人工选择、版本、能力和限制;
413
+ - `prototype-manifest.yaml` / `prototype-set.yaml`:原型成员身份和版本。
414
+
415
+ AI 必须根据当前项目、终端、交互复杂度、协作需求和可用工具推荐,不得假设所有原型都在同一个工具或文件中。
416
+
417
+ ### 9.2 页面编号
418
+
419
+ 页面使用稳定编号:
420
+
421
+ ```text
422
+ P01-页面名称A
423
+ P02-页面名称B
424
+ P01-01-页面名称1
425
+ P01-02-页面名称2
426
+ ```
427
+
428
+ 规则:
429
+
430
+ - 主页面编号为 `P01`、`P02`;
431
+ - 子页面继承主页面编号,如 `P01-01`;
432
+ - 页面显示名称可以调整,但稳定 ID 不复用;
433
+ - 功能、终端、页面、状态、画布、文件和具体元素使用显式关系表追踪。
434
+
435
+ ### 9.3 画布和文件
436
+
437
+ - 同一主页面及其派生子页面可以放在同一画布族;
438
+ - 无关主页面应拆为独立画布或原型文件;
439
+ - `canvas-catalog.csv` 管理画布;
440
+ - `canvas-pages.csv` 管理画布与页面关系;
441
+ - `prototype-files.csv` 管理原型源文件;
442
+ - `prototype-file-terminals.csv` 管理文件与终端关系;
443
+ - 不允许用“全部页面放在一个无限画布”替代管理。
444
+
445
+ ### 9.4 分阶段可运行原型与确认
446
+
447
+ 视觉或交互终端必须顺序执行:
448
+
449
+ 1. 制作可运行低保真原型,覆盖布局、交互、状态、错误与恢复;不能用静态截图或无行为热区代替;
450
+ 2. 人工操作并决定 `UX-LF`,未通过则调整并重新评审;
451
+ 3. 定义视觉方向、字体、色彩、间距、响应式、无障碍和组件状态,比较兼容的 UI 框架/Skill/MCP,由人确认 `UX-VS`;
452
+ 4. 使用选定系统制作可运行正式 UI,由人确认 `UX-UI`;
453
+ 5. 每次调整立即写入 `prototype-adjustment-log.csv`,并关联评论、稳定对象、前后修订、原因、体验变更、需求变更和上下游影响;
454
+ 6. 全部原型成为候选后,把累计调整一次性交给产品定义节点,双向核对需求是否被覆盖、原型是否引入未批准行为;
455
+ 7. 需求变化生成新产品基线和 Gate B 证据,并使受影响原型失效后重新评审;被拒绝的原型行为必须移除;
456
+ 8. 只有 `product-prototype-reconciliation.yaml` 为 `valid/aligned` 才能冻结体验基线。
457
+
458
+ 只有确实没有视觉界面和用户操作的终端才可把视觉 Gate 标为 `not-applicable`,并必须给出产品终端证据,不能对交互页面使用 `contract-only` 绕过人工确认。
459
+
460
+ ### 9.5 交接身份
461
+
462
+ `ui-handoff.yaml` 是唯一的下游就绪入口。它绑定三道体验 Gate、产品核对、交互契约、设计 Token、UI 框架、组件状态、页面组件映射、体验/需求变更和原型集 checksum。架构校准、规划、测试设计、开发和候选验证必须携带同一组 identity/checksum;下游不得直接修改冻结体验物料,也不得通过视觉比对猜测新增或修改。
463
+
464
+ ## 10. 迭代规划、任务拆分和 TDD
465
+
466
+ ### 10.1 先规划业务切片
467
+
468
+ 迭代规划按业务结果排序,不先拆“前端任务”和“服务端任务”。它输出可独立验证的垂直切片、来源、依赖和版本顺序。
469
+
470
+ 优先级至少考虑:
471
+
472
+ - 业务价值;
473
+ - 紧迫度;
474
+ - 风险降低;
475
+ - 学习价值;
476
+ - 前置依赖;
477
+ - 版本准入和退出条件。
478
+
479
+ ### 10.2 开发时再拆技术工作包
480
+
481
+ 进入开发后,AI 根据切片、架构、终端、原型和测试接缝动态拆分技术任务。例如某个版本可能需要 Web、API、数据迁移和构建能力,也可能只有一个脚本任务。技术栈由最终架构下发。
482
+
483
+ 每个工作包必须声明:
484
+
485
+ - 稳定任务 ID、目标和范围;
486
+ - 所需能力角色;
487
+ - 依赖和可并行关系;
488
+ - 允许修改的文件或模块;
489
+ - 技术栈和执行命令;
490
+ - 原型页面、状态和元素引用;
491
+ - `experience_change_id`、变更类型和 `create/update/remove/migrate/no-code` 实施动作;
492
+ - 公开测试接缝;
493
+ - 预期交付物和完成证据。
494
+
495
+ ### 10.3 TDD
496
+
497
+ 开发工作包采用 Red-Green-Refactor:
498
+
499
+ 1. 从公开测试契约选择本工作包义务;
500
+ 2. 先写或运行会失败的测试,保存 Red 证据;
501
+ 3. 实现最小行为使测试通过,保存 Green 证据;
502
+ 4. 在测试保护下重构;
503
+ 5. 运行工作包范围和必要回归;
504
+ 6. 交给独立变更审查。
505
+
506
+ 开发中的 TDD 不替代独立测试。开发者负责证明实现满足公开契约,候选验证节点负责以独立上下文验证整个不可变候选。
507
+
508
+ ## 11. Git、候选版本和回滚
509
+
510
+ 推荐分支模型:
511
+
512
+ | Git 对象 | 作用 |
513
+ | --- | --- |
514
+ | `main` | 受保护、可发布的集成基线。 |
515
+ | 迭代分支 | 汇总一个迭代版本的已审查工作包。 |
516
+ | 工作包分支 / worktree | 隔离单个技术任务,缩小 AI 上下文和冲突范围。 |
517
+ | hotfix 分支 | 修复已存在的生产行为问题。 |
518
+ | 不可变 release Tag | 绑定已冻结发布版本。 |
519
+
520
+ 原则:
521
+
522
+ - 工作包合并前必须通过独立变更审查;
523
+ - 同一任务的多个 worktree 指向同一个主 `state_root`;
524
+ - 候选失败、发布记录、Tag 和部署记录都保留,不覆盖历史;
525
+ - 生产转换串行化,同一时间只推进一个生产发布;
526
+ - Git 分支不承担生产回滚。
527
+
528
+ 生产回滚使用上一个稳定镜像 digest 或发布清单中声明的等价不可变制品。回滚是一次新的部署状态转换,必须有执行和验证记录。没有历史稳定镜像时,发布准备必须明确替代策略,如停止服务并移除首版部署,不能虚构镜像回滚能力。
529
+
530
+ ## 12. 发布、上线交付清单和生产部署
531
+
532
+ 每次生产部署只对应一个迭代版本。发布准备必须列出本次所有实际变更,包括但不限于:
533
+
534
+ - 产品需求、功能、故事和验收标准;
535
+ - 终端、页面、原型和交互状态;
536
+ - 应用、技术、数据、安全和部署架构;
537
+ - 源码、依赖、构建产物和数据库变更;
538
+ - Docker/OCI 镜像及 digest;
539
+ - 环境变量、配置文件、密钥引用和开关;
540
+ - 基础设施、权限、网络、监控和告警;
541
+ - 测试报告、已知限制和风险接受;
542
+ - 发布说明、操作步骤、验证步骤和回滚步骤。
543
+
544
+ `delivery-items.csv` 按实际情况记录交付物。不存在 Docker 镜像时应标记不适用并说明实际制品,不能为了模板完整而虚构镜像。
545
+
546
+ 生产审批绑定:
547
+
548
+ - 精确迭代和 release ID;
549
+ - 精确目标环境;
550
+ - 精确 package hash / image digest;
551
+ - 完整交付清单;
552
+ - 部署和验证计划;
553
+ - 回滚制品及条件。
554
+
555
+ 审批后任一绑定项变化,原审批失效,必须重新准备和审批。
556
+
557
+ 生产部署始终是独立节点。候选测试通过不等于已部署,部署完成也不等于已发布;只有生产验证输出 `released`,迭代才可关闭和归档。
558
+
559
+ ## 13. Checkpoint、Hook 和中断恢复
560
+
561
+ ### 13.1 两类受控状态
562
+
563
+ - 正式状态:`.workflow/delivery/workflow-state.yaml`、`artifact-registry.yaml` 和 `state-events.jsonl`,唯一写入口是 `.workflow/tools/state/state.mjs`;
564
+ - runtime 状态:`.workflow/delivery/runtime/` 中的任务快照、checkpoint、恢复摘要、活动标记和版本归档,唯一写入口是 `task-state.mjs`。
565
+
566
+ Hook 只记录生命周期和心跳,不能证明产物已完成,也不能修改任一受控状态。禁止直接编辑受控文件;脚本失败时必须处理原因,不得手工绕过。
567
+
568
+ ### 13.2 正式流程、物料和 Gate
569
+
570
+ ```bash
571
+ node .workflow/tools/state/state.mjs inspect
572
+ node .workflow/tools/state/state.mjs verify
573
+ ```
574
+
575
+ 每次 mutation 必须使用 `inspect` 返回的对应 `revision` 作为 `--expected-revision`。物料通过 `artifact register/status` 管理,节点、迭代、候选和发布通过 `transition` 管理,Gate 通过 `gate request/decide` 管理。Gate 决定必须包含明确 `actor`、`rationale` 和已登记 evidence。已登记物料变化时创建新 ID 并使用 `--supersedes`,不能原地覆盖。
576
+
577
+ `workflow-state.yaml` schema 2 包含独立的 `development_state` 与 `release_state`。研发由 `iteration-started` 建立,发布仅在用户明确请求后由 `release-started` 建立;两个状态域分别维护 scope ID、局部 revision、节点、Gate、节点尝试和选定物料,因此发布期间仍可继续下一累计版本研发。顶层 revision 只负责审计流串行化,任何一个状态域都不得重置另一个。
578
+
579
+ 状态 CLI 根据流程图元数据校验前置依赖,不采用简单的相邻编号规则。平台准备可与体验设计并行;产品和体验可因原型校正带原因重开;后续迭代可用已登记的成功冻结基线满足未受影响的前置条件。节点完成证据必须处于允许的成功状态,并完成当前节点尝试的强制 Gate。生产审批 Gate ID 固定为 `PRODUCTION-APPROVAL`,不能标记为 `not-required`。
580
+
581
+ 节点交接、生产审批、部署、版本归档和中断恢复后都必须运行 `verify`。完整命令、revision 冲突恢复和生产规则见[正式状态 CLI 使用指南](STATE-CLI-USER-GUIDE.zh-CN.md)。
582
+
583
+ ### 13.3 任务登记
584
+
585
+ 在执行一个已知任务组前,先把整组任务登记为 `queued`,包含 `sequence` 和 `depends_on`。这样,10 个任务完成 5 个后中断,新会话可以计算第 6 个任务,而不是重新执行或依赖聊天记忆。
586
+
587
+ 安装后的脚本路径是:
588
+
589
+ ```text
590
+ .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs
591
+ ```
592
+
593
+ 典型命令:
594
+
595
+ ```bash
596
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs init --task-id TASK-01 --iteration-id ITER-01 --node development --skill ai-delivery-develop-iteration --status queued --sequence 1 --goal "任务 1" --next-action "执行任务 1" --next-action-owner agent
597
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs recover --iteration-id ITER-01
598
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs activate --task-id TASK-01
599
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs checkpoint --task-id TASK-01 --status checkpointed --completed-step "公开契约已验证" --next-action "实现最小行为"
600
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs finish --task-id TASK-01 --status completed --actual-output "artifact.yaml" --next-action "恢复迭代并选择下一任务"
601
+ ```
602
+
603
+ ### 13.4 恢复顺序
604
+
605
+ 新会话:
606
+
607
+ 1. `$ai-delivery-bootstrap` 或 `inspect` 识别项目;
608
+ 2. 读取 `runtime.next_action_owner`、`next_action` 和 `recommended_task_id`;
609
+ 3. 若责任方为 `user`,原样提出记录的问题并停止,期间不执行 recover、activate、checkpoint、正式状态、物料或 Git 写入;
610
+ 4. 若责任方为 `external`,只报告等待条件并停止;
611
+ 5. 仅当责任方为 `agent` 时执行 `recover --iteration-id <id>`,并对照分支、worktree、脏文件、产物、外部系统和证据校准;
612
+ 6. 激活推荐任务,从记录的幂等 `next_action` 继续。用户或外部输入到达后,先通过 CLI 同时提供 `--next-action-owner agent` 和新的幂等 `--next-action`。
613
+
614
+ 推荐规则:
615
+
616
+ 1. 优先已有 `preparing`、`running`、`checkpointed`、`pending-review`、`blocked` 或 `interrupted` 任务;
617
+ 2. 否则选择依赖均为 `completed` 的 `queued` 任务;
618
+ 3. 按 `sequence`,再按 `task_id` 排序;
619
+ 4. 无可执行任务时返回 `null` 并列出等待依赖。
620
+
621
+ `next_action_owner` 固定为 `agent | user | external`,旧任务默认为 `agent`。它是防止重启时误写状态的执行边界,不是提示性备注。任务 evidence 采用有序集合语义,重复提交同一引用不会追加重复项。
622
+
623
+ 生产和外部动作恢复前必须重新读取真实状态和授权,禁止自动重放。
624
+
625
+ ### 13.5 归档
626
+
627
+ ```bash
628
+ node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs archive-version --iteration-id ITER-01 --version-status released --release-id REL-01 --evidence "production-verification@1"
629
+ ```
630
+
631
+ 权威归档始终写入 `.workflow/control/archives/versions/<version-id>/`。默认还在被忽略的 runtime 中保留可丢弃详细副本;无需该副本时增加 `--portable-only`。
632
+
633
+ 归档条件:
634
+
635
+ - 版本为 `released` 或明确 `abandoned`;
636
+ - `released` 版本有 release ID 和生产验证证据;
637
+ - 该版本所有任务均已关闭;
638
+ - 不存在 queued、running、blocked 或 interrupted 等未关闭任务。
639
+
640
+ 默认恢复不加载已关闭任务详情;归档后恢复命令不扫描归档目录,从而减少上下文占用。审计归档时直接读取 `.workflow/control/archives/versions/<version-id>/`。
641
+
642
+ ## 14. 规范沉淀
643
+
644
+ 对话中出现可复用规则时,调用 `$ai-delivery-manage-standards`:
645
+
646
+ 1. 判断它是一次性决定还是持续规范;
647
+ 2. 起草稳定 ID、版本、适用范围、规则、理由和验证方式;
648
+ 3. 由人批准新增、修改、废弃或例外;
649
+ 4. 写入 `.workflow/standards/` 并登记 `.workflow/standards/index.yaml`;
650
+ 5. 当前任务把采用版本固定到 `.workflow/delivery/standards-baseline.yaml`;
651
+ 6. 后续 AI 在执行前解析并应用相应规范。
652
+
653
+ 规范冲突不能由安装器或下游节点静默覆盖。批准基线变化后,应评估对在途产物的影响。
654
+
655
+ 默认安装的规范包括:`STD-DOC-LANG-001`(默认中文)、`STD-ARTIFACT-PATH-001`(工作流文档路径)和 `STD-TEST-LOCATION-001`(应用测试遵循代码仓库原生约定)。
656
+
657
+ ### 14.1 项目级工作流自进化
658
+
659
+ 明确的用户意见由 `$ai-delivery-evolve-workflow` 自动记录为脱敏反馈,并返回 `FDB-*`。重复失败、返工和 Gate 驳回可以作为客观信号;单次 AI 推测只允许保存为 `ai-observation`,不能单独形成提案。
660
+
661
+ 自进化只在任务完成、版本收尾或显式 review 时评估:
662
+
663
+ ```text
664
+ observed → proposed → trial → active
665
+ ├→ disabled / rolled-back
666
+ └→ rejected / superseded / expired
667
+ ```
668
+
669
+ 低风险非阻断扩展可自动试运行,并在三次适用执行或一个完整迭代后按指标自动启用。改变路由、模板和校验行为属于中风险;脚本、阻断、Git、部署、安全、权限和外部系统属于高风险。中高风险必须取得绑定扩展版本与 SHA-256 的明确人工批准。
670
+
671
+ ```bash
672
+ node .workflow/tools/evolution/evolve.mjs inspect
673
+ node .workflow/tools/evolution/evolve.mjs evaluate --safe-point task
674
+ node .workflow/tools/evolution/evolve.mjs verify
675
+ ```
676
+
677
+ 原始事件和 staging 位于被忽略的 `.workflow/delivery/runtime/evolution/`;脱敏反馈、提案、实验、决策和已注册扩展纳入工作流 Git。扩展不得修改受管 Skill、状态 CLI、Hook、人工 Gate 或项目规范。详见[自进化使用指南](EVOLUTION-USER-GUIDE.zh-CN.md)。
678
+
679
+ ## 15. 25 个 Skills 如何使用
680
+
681
+ ### 15.1 主流程 skills
682
+
683
+ | Skill | 调用时机 |
684
+ | --- | --- |
685
+ | `$ai-delivery-bootstrap` | 新会话、陌生仓库、首次引导、中断或状态不明。 |
686
+ | `$ai-delivery-define-product` | 新产品、重要需求、产品范围或术语变化。 |
687
+ | `$ai-delivery-design-architecture` | 产品基线批准后、体验完成后校准,或架构约束变化。 |
688
+ | `$ai-delivery-design-experience` | 初始架构后,依次完成可运行低保真、视觉系统、正式 UI、调整记录和产品统一核对。 |
689
+ | `$ai-delivery-prepare-platform` | 初始架构后并行准备构建、环境、配置和发布平台。 |
690
+ | `$ai-delivery-plan-iteration` | 架构校准后规划或调整迭代优先级与顺序。 |
691
+ | `$ai-delivery-design-tests` | 开发前设计测试策略、原型可测性和公开测试契约。 |
692
+ | `$ai-delivery-develop-iteration` | 对一个已计划垂直切片进行技术拆分和候选组装。 |
693
+ | `$ai-delivery-execute-work-package` | 执行一个边界明确的技术工作包并实施 TDD。 |
694
+ | `$ai-delivery-review-change` | 工作包合并前或修复后做独立变更审查。 |
695
+ | `$ai-delivery-verify-candidate` | 开发候选与平台环境汇合后进行独立验证。 |
696
+ | `$ai-delivery-execute-test` | 执行一个独立风险测试工作包。 |
697
+ | `$ai-delivery-close-version` | 迭代候选验证通过后冻结计划版本、推进累计研发线并归档任务;不发布。 |
698
+ | `$ai-delivery-orchestrate-release` | 用户明确提出发布后选择截止版本并编排 R00 至 R10。 |
699
+ | `$ai-delivery-assemble-release` | 计算连续版本闭包、校验不可变 Tag 与 Git 血缘并汇总发布物料。 |
700
+ | `$ai-delivery-prepare-release` | R05 发布验证通过后在 R06 准备完整上线清单;不审批、不部署。 |
701
+ | `$ai-delivery-deploy-production` | 精确发布包获人工审批后独立执行生产部署。 |
702
+ | `$ai-delivery-verify-production` | 每次生产部署或回滚后独立验证。 |
703
+
704
+ ### 15.2 横切 skills
705
+
706
+ | Skill | 调用时机 |
707
+ | --- | --- |
708
+ | `$ai-delivery-orchestrate` | 协调完整流程、决定下一节点、处理变更影响和状态报告。 |
709
+ | `$ai-delivery-checkpoint-task` | 任务前后、里程碑、中断、恢复和版本归档。 |
710
+ | `$ai-delivery-validate-artifacts` | 每次节点流转前、产物变化后或状态不一致时。 |
711
+ | `$ai-delivery-triage-failure` | 测试、环境、需求、架构、发布或生产失败时确定回流节点。 |
712
+ | `$ai-delivery-manage-git` | 创建、校验、合并、冻结、标记和清理 Git 状态。 |
713
+ | `$ai-delivery-manage-standards` | 对话形成规范、规范变化、例外或冲突时。 |
714
+ | `$ai-delivery-evolve-workflow` | 用户提出工作流意见、重复问题达到门槛、任务或版本到达安全点、扩展需要批准或回退时。 |
715
+
716
+ 用户不需要记住或手工串起任何 specialist Skill 和工作流命令。`init` 完成后,在项目根目录开启新的 AI 会话,使用普通自然语言即可:
717
+
718
+ ```text
719
+ 开始
720
+ 继续这个项目
721
+ 现在做到哪一步了?
722
+ 我想做一个团队值班交接系统
723
+ 我要发布已经完成的版本
724
+ ```
725
+
726
+ AI 必须在后台自主选择 `$ai-delivery-bootstrap`、编排、checkpoint、专业节点和发布 Skill,并自行运行项目内 CLI。用户只回答业务问题、审阅交付物、决定人工 Gate 和批准外部副作用;AI 不得要求用户复制命令、选择 Skill 或记忆流程节点。安装后的只读入口是 `node .workflow/tools/bootstrap/bootstrap.mjs inspect`,它不依赖全局 `ai-delivery` 命令。若只读结果表明 `next_action_owner: user`,AI 只能返回已记录的问题,重复说“继续”也不得增加 attempt、revision、evidence 或 checkpoint。
727
+
728
+ ## 16. 常见使用场景
729
+
730
+ ### 16.1 空目录创建新产品
731
+
732
+ ```bash
733
+ npx ai-delivery-workflow@latest bootstrap .
734
+ npx ai-delivery-workflow@latest doctor .
735
+ ```
736
+
737
+ 新建 Codex 任务后:
738
+
739
+ ```text
740
+ 调用 $ai-delivery-bootstrap 读取引导结果,从产品发现开始。
741
+ 一次只向我确认一个需要人工决定的问题。
742
+ ```
743
+
744
+ ### 16.2 已有代码首次接入
745
+
746
+ ```bash
747
+ npx ai-delivery-workflow@latest inspect .
748
+ npx ai-delivery-workflow@latest bootstrap .
749
+ ```
750
+
751
+ 先审阅:
752
+
753
+ - `.workflow/delivery/bootstrap/latest.yaml`;
754
+ - 本次 run 的 `adoption-assessment.md`;
755
+ - `repository-baseline.yaml`;
756
+ - `codebase-inventory.csv`;
757
+ - `context-index.csv`。
758
+
759
+ 让用户纠正“观察事实”后,仍从产品发现建立“目标意图”。
760
+
761
+ ### 16.3 已安装项目继续执行
762
+
763
+ ```text
764
+ 调用 $ai-delivery-bootstrap 和 $ai-delivery-orchestrate。
765
+ 从 checkpoint 的 recommended_task_id 继续,不根据聊天记录猜测。
766
+ ```
767
+
768
+ ### 16.4 完成一个计划版本
769
+
770
+ 顺序固定为:
771
+
772
+ ```text
773
+ 候选验证通过
774
+ -> 版本收尾和不可变 version-ready Tag
775
+ -> line/<product-id> 快进
776
+ -> release-ready
777
+ -> 整个计划版本任务归档
778
+ -> 停止并等待下一版本或用户发布请求
779
+ ```
780
+
781
+ ### 16.5 独立发布多个已完成版本
782
+
783
+ 用户明确选择发布截止版本后:
784
+
785
+ ```text
786
+ R00 发布请求
787
+ -> R01 版本选择和连续闭包
788
+ -> R02 发布资格
789
+ -> R03 物料整合
790
+ -> R04 发布候选
791
+ -> R05 发布验证
792
+ -> R06 发布准备
793
+ -> R07 人工生产审批
794
+ -> R08 独立生产部署
795
+ -> R09 独立生产验证
796
+ -> R10 发布归档
797
+ ```
798
+
799
+ 例如生产在 `VER-02`、目标为 `VER-05`,本次新增范围是 `VER-03..VER-05`。目标等于生产版本时允许重新发布,但必须使用新 release ID 并完整重做环境快照、验证和审批。目标早于生产版本时拒绝发布,恢复旧版本必须部署旧镜像 digest。
800
+
801
+ 版本收尾和发布归档都必须通过正式状态 CLI 固化事实。`version-closed` 在 `12-version-closeout` 完成并登记 `release-ready` 物料后更新 `latest_line_version_id`;它不会触发发布。`release-archived` 在 R10 完成并登记 `released` 物料后更新 `production_version_id` 和 `production_release_id`。R09 只能提供已验证身份,不能直接写入生产事实。以上三个字段以 `.workflow/delivery/workflow-state.yaml` 为权威来源,`project.yaml` 仅保留项目描述和旧项目兼容字段。
802
+
803
+ 版本任务归档写入 `.workflow/control/archives/versions/<version-id>/`,保存版本 Manifest、任务快照和共享 checkpoint。只有可携带归档完整写入后,脚本才移除 `.workflow/control/tasks/` 与 `.workflow/control/checkpoints/` 中该版本的活动分片。普通恢复以及 `--include-closed` 都只扫描活动集合;历史详情必须通过显式审计读取归档。`.workflow/delivery/runtime/archive/` 仅是可丢弃的本地详细副本。
804
+
805
+ ## 17. AI 新会话读取顺序
806
+
807
+ 后续 AI 进入项目时,应按以下顺序加载最少但足够的上下文:
808
+
809
+ 1. 根 `AGENTS.md`;
810
+ 2. 本手册和文件参考;
811
+ 3. `.workflow/delivery/project.yaml`;
812
+ 4. `.workflow/delivery/workflow-state.yaml`;
813
+ 5. `.workflow/delivery/artifact-registry.yaml`;
814
+ 6. `.workflow/standards/index.yaml` 和 `.workflow/delivery/standards-baseline.yaml` 指向的规范;
815
+ 7. `$ai-delivery-bootstrap` 的只读识别结果;
816
+ 8. `recover` 返回的当前推荐任务及其 `resume.md`;
817
+ 9. 推荐任务声明的精确输入产物;
818
+ 10. 只有在审计时才加载已关闭或已归档任务详情。
819
+
820
+ 不要先遍历全部审计物料、全部历史归档或全部聊天记录。正式状态、推荐任务和输入引用足以决定下一步。
821
+
822
+ ## 18. 全流程审计物料
823
+
824
+ `audit/` 使用最小前后端系统 TaskLite 保存两类证据。它只属于本维护仓库,不随 `init` 安装到业务项目:
825
+
826
+ - Node.js HTTP 服务;
827
+ - 原生浏览器 Web 前端;
828
+ - 任务创建和列表 API;
829
+ - 根目录编号 `00` 至 `16` 是历史 V1:完成了当时版本的产品、架构、体验、规划、测试、TDD、审查、候选验证、发布、部署、生产验证和归档;
830
+ - `audit/ITER-V2/` 是当前契约示例:在 V1 不可变基线上交付“完成任务”,补齐最新原型管理、上下游接收凭据和当前验证规则;
831
+ - `audit/RELEASE-TRAIN-DEMO/` 演示五个严格递进版本、生产停在 VER-02、统一发布至 VER-05,以及同版本重新发布。
832
+ - `audit/AUTONOMOUS-GUIDANCE/` 保存零命令引导黑盒证据;远程 commit/tree 与四个关键 Git blob 的路径归属可离线复算,`fork_turns`、输入边界和未要求命令等平台行为在没有可信平台签名时明确保持 `unattested`。
833
+
834
+ 历史 V1 只能证明当时契约下的执行记录,不能单独证明当前 25 个 Skills 的完整符合性。当前规范来源始终是 `skills/**/SKILL.md`、对应 `references/` 和 `assets/`。
835
+
836
+ 推荐阅读:
837
+
838
+ 1. [../audit/README.md](../audit/README.md):示例入口和运行方式;
839
+ 2. [../audit/FILE-GUIDE.zh-CN.md](../audit/FILE-GUIDE.zh-CN.md):`audit/` 中每个文件的用途;
840
+ 3. [../audit/REVIEW-CHECKLIST.md](../audit/REVIEW-CHECKLIST.md):人工审阅清单;
841
+ 4. [../audit/V1-CONTRACT-COMPATIBILITY.md](../audit/V1-CONTRACT-COMPATIBILITY.md):历史 V1 与当前契约的差异;
842
+ 5. `audit/00-governance/material-index.csv`:历史 V1 的主要流转物料;
843
+ 6. 按根目录 `01` 至 `16` 审阅历史 V1;
844
+ 7. 按 `audit/ITER-V2/` 的编号顺序审阅当前契约 V2;
845
+ 8. 最后运行 `npm run audit:verify`。
846
+
847
+ 自主引导专项校验也可单独运行 `node verification/audit/verify-autonomous-guidance.mjs`。该命令验证仓库快照、摘要、Git blob OID 和任务语义,但不会把维护者记录的平台运行声明当作独立认证事实。
848
+
849
+ 审计目录中的 V1 已归档,不应原地修改。流程契约演进和新功能通过新的迭代版本及产物版本体现。
850
+
851
+ ## 19. 本仓库开发与验证
852
+
853
+ 本工作流维护仓库的通用自动化测试、专项验证器和长期测试辅助程序必须位于根 `verification/` 并纳入 Git;`audit/` 保存可审阅流程物料和历史快照,不保存维护测试入口;一切可丢弃运行物写入整体忽略的 `.tmp/`。这些维护仓库目录不写入安装目标模板,也不替业务代码仓库决定测试目录或版本控制策略。
854
+
855
+ 安装依赖:
856
+
857
+ ```bash
858
+ npm install
859
+ ```
860
+
861
+ 单独校验全部 25 个项目级 Skill:
862
+
863
+ ```bash
864
+ npm run skills:validate
865
+ ```
866
+
867
+ 该命令执行 `bin/validate-skills.mjs`,由 `lib/skill-validator.mjs` 提供校验逻辑,并复用项目已锁定的 Node.js `yaml` 依赖,不要求 Python 或 `PyYAML`。这两个文件随 npm 包发布,保证维护命令在打包后仍可执行,但 `init` 不会把它们复制到业务项目。校验范围包括:
868
+
869
+ 1. `skills/` 必须恰好包含 25 个 Skill 目录;
870
+ 2. 每个 `SKILL.md` 必须存在,并具有可解析的 YAML frontmatter;
871
+ 3. frontmatter 的字段、`name`、`description`、hyphen-case、长度和目录名一致性必须符合 Skill 契约;
872
+ 4. 每个 `agents/openai.yaml` 必须存在并提供非空的 `display_name`、`short_description` 和 `default_prompt`,默认提示必须引用对应 `$skill-name`;
873
+ 5. `PROJECT-MANUAL.zh-CN.md` 和 `FILE-REFERENCE.zh-CN.md` 必须覆盖每个 Skill。
874
+
875
+ 校验失败时命令逐条输出文件和原因,并返回非零退出码。应修复 Skill 或文档后重新执行,不得跳过校验,也不需要为此安装全局 Python 依赖。`verification/skill-validation.test.mjs` 还使用无效 fixture 证明校验器确实能够拒绝错误输入,避免只对当前文件做恒真检查。
876
+
877
+ 执行自动化测试:
878
+
879
+ ```bash
880
+ npm test
881
+ ```
882
+
883
+ `npm test` 会自动包含 `verification/skill-validation.test.mjs`;`npm run skills:validate` 用于需要快速、独立检查 Skill 集合的场景。两者都只属于当前工作流维护仓库,不会复制到安装后的业务项目。
884
+
885
+ 执行审计物料一致性校验:
886
+
887
+ ```bash
888
+ npm run audit:verify
889
+ ```
890
+
891
+ 检查 npm 发布内容:
892
+
893
+ ```bash
894
+ npm pack --dry-run
895
+ ```
896
+
897
+ skill 自身还应使用 skill 校验器检查 frontmatter、命名和引用;YAML 产物应使用结构化解析器逐个解析,不应用字符串匹配替代语法校验。
898
+
899
+ ## 20. 故障排查
900
+
901
+ | 现象 | 原因与处理 |
902
+ | --- | --- |
903
+ | 新会话找不到 `$ai-delivery-*` | 确认 `.agents/skills/` 存在,运行 `doctor`,然后重新启动 Codex 任务。 |
904
+ | `init` 报 managed file conflict | 先运行 `--dry-run` 审阅;确认替换后用 `--force`,备份位于 `.workflow/delivery/runtime/backups/`。 |
905
+ | 规范正文冲突 | 不要强制覆盖;调用规范治理流程创建新版本或解决冲突。 |
906
+ | `workflow-inconsistent` | 查看 `inspect` 的 errors、missing files 和依赖问题,修复后再编排。 |
907
+ | 中断后不知道从哪继续 | 先运行只读 Bootstrap inspect。仅当 `next_action_owner: agent` 时运行 `recover --iteration-id <id>` 并读取 `recommended_task_id`;`user/external` 不得 recover。 |
908
+ | 后续任务无法 activate | 其 `depends_on` 任务缺失或未处于 `completed`;修复正式计划和运行时状态。 |
909
+ | Hook 有事件但节点没完成 | 正常现象;Hook 只是审计和心跳,必须由任务快照和正式产物证明完成。 |
910
+ | 发布审批后制品或配置变化 | 原审批失效,重新执行发布准备和生产审批。 |
911
+ | 候选验证失败 | 调用 `$ai-delivery-triage-failure`,把证据送回真正拥有问题的产品、体验、架构、平台、开发或测试设计节点。 |
912
+ | 生产需要回滚 | 部署上一个稳定镜像 digest,再独立执行生产验证;不要创建“回滚分支”。 |
913
+ | `.workflow/delivery/runtime/` 丢失 | 本机恢复信息无法完整重建;跨机器工作前应把该目录保存到受控、加密、受限的状态存储。 |
914
+ | 检测到根目录 `delivery/` 或 `standards/` | 按 5.5 节迁移到 `.workflow/`,更新引用和 checksum;不要用 `--force` 绕过。 |
915
+ | `.workflow/` 被整体忽略 | 删除该忽略规则,只保留 `.workflow/delivery/runtime/`;正式研发文档必须进入版本控制。 |
916
+ | 查看器端口被占用 | 使用 `.\.workflow\tools\viewer\start.cmd --port 4180` 选择其他端口。 |
917
+ | 查看器没有自动打开浏览器 | 读取终端输出中的 URL 手工打开;远程或 CI 环境使用 `--no-open`。 |
918
+ | 查看器没有显示最新物料 | 点击“刷新”;确认文件位于项目 `.workflow/` 且未超过 10,000 项扫描上限。 |
919
+
920
+ ## 21. 维护规则
921
+
922
+ - 新增或删除 skill 时,同步更新本手册、第 15 节和文件参考;
923
+ - 修改 CLI 时,同步更新第 5 节;
924
+ - 修改主流程或 Gate 时,同步更新第 7、8 节和 `workflow-model.md`;
925
+ - 修改原型契约时,同步更新第 9 节和原型交接测试;
926
+ - 修改 checkpoint 命令或状态时,同步更新第 13 节及恢复示例;
927
+ - 修改 npm 发布文件时,运行 `npm pack --dry-run`;
928
+ - 新文档默认中文;
929
+ - 已批准、冻结、发布和 `audit/` 中已归档版本不原地重写。
930
+
931
+ 本手册说明“如何使用和维护整个系统”;逐文件职责见 [FILE-REFERENCE.zh-CN.md](FILE-REFERENCE.zh-CN.md)。