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,135 @@
1
+ # 正式状态 CLI 维护指南
2
+
3
+ 当前写入顺序为“权威事件分片 -> 全局兼容视图 -> JSONL 事件索引”。`verify` 同时检查事件分片自身 checksum 和最新分片与全局视图是否一致;`rebuild` 从每个 stream 的最新分片恢复 YAML,并按确定顺序重建 JSONL 索引。
4
+
5
+ ## 1. 权威源码与安装结果
6
+
7
+ | 路径 | 作用 |
8
+ | --- | --- |
9
+ | `lib/delivery-state.mjs` | 正式状态命令、校验、锁、原子写和审计实现 |
10
+ | `bin/ai-delivery.mjs` | 发行包 `state` 子命令透传入口 |
11
+ | `skills/ai-delivery-orchestrate/assets/project-template/.workflow/tools/state/state.mjs` | 安装后的自包含 CLI wrapper |
12
+ | `lib/project-installer.mjs` | 安装 wrapper、状态模块和 vendored `yaml` |
13
+ | `verification/delivery-state.test.mjs` | 正式状态公共命令契约测试 |
14
+ | `verification/project-installer.test.mjs` | 自包含安装、manifest、doctor 和实际执行测试 |
15
+
16
+ `lib/delivery-state.mjs` 是唯一实现源。安装器复制它,不维护第二份逻辑。wrapper 只注入 YAML adapter、输出 JSON 和设置失败退出码。
17
+
18
+ ## 2. 自包含运行时
19
+
20
+ 目标业务项目不应为了工作流修改自己的 `package.json`。`init` 将以下文件写入:
21
+
22
+ ```text
23
+ .workflow/tools/state/
24
+ state.mjs
25
+ delivery-state.mjs
26
+ vendor/yaml/
27
+ ```
28
+
29
+ `vendor/yaml/package.json` 必须保留,使 CommonJS `dist/*.js` 在业务项目声明 `"type": "module"` 时仍按正确模块类型加载。升级 `yaml` 时要重新运行安装测试和隔离项目测试。
30
+
31
+ ## 3. 状态流
32
+
33
+ 正式状态分为两个独立 revision stream:
34
+
35
+ - `workflow-state`;
36
+ - `artifact-registry`。
37
+
38
+ 每次 mutation:
39
+
40
+ 1. 获取两个 stream 共用的 formal-state lock,避免并发追加审计事件时相互覆盖;
41
+ 2. 读取并比较 `--expected-revision`;
42
+ 3. 校验命令输入和跨文件引用;
43
+ 4. revision 加一;
44
+ 5. 原子替换 YAML;
45
+ 6. 向 `state-events.jsonl` 追加包含 stream、revision、事件类型和 `after_checksum` 的审计事件;
46
+ 7. 释放锁。
47
+
48
+ 不要在新调用方中解析并重写正式 YAML。调用 `executeDeliveryStateCommand()`,或在已安装项目中执行 `.workflow/tools/state/state.mjs`。bootstrap 已按此边界登记诊断报告。
49
+
50
+ ## 4. 公共接口
51
+
52
+ 稳定 seam:
53
+
54
+ - `inspect`
55
+ - `verify`
56
+ - `artifact register`
57
+ - `artifact status`
58
+ - `transition`
59
+ - `gate request`
60
+ - `gate decide`
61
+
62
+ `transition` 还承载两个受约束的里程碑事件:
63
+
64
+ - `version-closed`:校验已完成的 `12-version-closeout` 和 `release-ready` 物料,只更新 `latest_line_version_id`;
65
+ - `release-archived`:校验已完成的 `R10-release-archive`、`released` 物料和目标生产版本,只更新 `production_version_id`、`production_release_id`。
66
+
67
+ 这些字段属于 `workflow-state` 审计流。不得把 `project.yaml` 变成第二写入口,也不得由查看器、Hook 或 R09 直接回写。
68
+
69
+ 新增行为时遵循一个失败测试、最小实现、单文件测试的 TDD 循环。测试只通过 `executeDeliveryStateCommand()` 或真实 CLI 观察行为,不测试内部函数。
70
+
71
+ 任何新增 mutation 都必须:
72
+
73
+ - 要求 `--expected-revision`;
74
+ - 使用正确 stream lock;
75
+ - 原子写;
76
+ - 产生审计事件;
77
+ - 返回新 revision;
78
+ - 保持 `verify` 可检测绕过写入;
79
+ - 在用户手册、正式状态契约和相关节点 Skill 中同步说明。
80
+
81
+ ## 5. `verify` 契约
82
+
83
+ 当前校验:
84
+
85
+ - `workflow-state.schema_version` 为 2(兼容读取 1),`artifact-registry.schema_version` 为 1;
86
+ - revision 为非负整数;
87
+ - revision 1 到当前 revision 的审计事件各出现一次;
88
+ - 当前正式 YAML checksum 与最后审计事件一致;
89
+ - 两个作用域有状态时必须有各自的 `scope_id`,且 active、blocked、completed 节点不重叠、节点位于正确作用域;
90
+ - 物料 ID 和路径唯一;
91
+ - 物料文件存在于 `.workflow/` 内,真实路径不逃逸;
92
+ - 登记 checksum 与当前文件 SHA-256 一致。
93
+
94
+ JSONL 审计不是外部签名账本。拥有仓库写权限的人可以同时篡改状态和审计文件;高保证环境应把 Git 签名、CI 证明或外部不可变审计存储作为补充,不能宣称本地 checksum 可抵御恶意共同篡改。
95
+
96
+ ## 6. 查看器集成
97
+
98
+ 查看器从 `artifact-registry.yaml` 结构化读取已登记物料。对于路径匹配的物料,注册表中的 ID、status、version 和 node 优先于正文字段;Git 未提交变更仍作为独立的“已变更”状态优先显示。查看器只读,不能调用状态 mutation。
99
+
100
+ 查看器在安装项目中读取同一 vendored YAML;在发行仓库测试环境中回退到包依赖。修改目录关系时同时验证源码模板和安装后运行时。
101
+
102
+ ## 7. Evolution Hook 接线
103
+
104
+ 正式状态 CLI 的物料、Gate 和 transition 写命令会通过安装后的 Evolution runtime 自动发出对应的 `before`、`after`、`failed` 事件。只有 checksum 绑定且人工批准的 `before` 阻断规则可以在写入前停止命令;`after` 和 `failed` 事件只记录结果,不回写正式状态。Evolution runtime 缺失或损坏由 `doctor` 报告,不得通过 Hook 直接修改正式状态文件。
105
+
106
+ ## 8. 验证命令
107
+
108
+ ```bash
109
+ node --test verification/delivery-state.test.mjs
110
+ node --test verification/project-installer.test.mjs
111
+ node --test verification/project-bootstrap.test.mjs
112
+ node --test verification/workflow-viewer.test.mjs
113
+ npm test
114
+ node --test verification/checkpoint-task-state.test.mjs
115
+ npm run audit:verify
116
+ ```
117
+
118
+ 还应在隔离目录执行 `init`、`doctor`、项目内 `state inspect` 和 `state verify`,并确认业务 `package.json` 未被修改。
119
+
120
+ ## 9. 完成定义
121
+
122
+ `workflow-state.yaml` 当前 schema 为 2。修改状态实现时必须保持 schema 1 只读兼容,并分别验证 `development_state` 与 `release_state` 的 scope、局部 revision、节点集合、Gate 集合和节点尝试。流程图不能退化为简单“上一编号节点”判断:平台准备允许并行,体验与产品允许带原因重开,后续迭代允许用成功的冻结基线物料满足未受影响的前置条件。
123
+
124
+ 安装诊断不得从项目内可编辑 manifest 推导可信 Skill 集合。固定 Skill 清单、Skill 目录摘要、Hook 摘要和状态运行时摘要以发行包为准;manifest 必须与发行包一致。`doctor` 还必须运行安装后状态 CLI 的 `inspect` 与 `verify`,并校验 JSON 输出语义。
125
+
126
+ 正式状态相关变更只有在以下条件全部满足后才完成:
127
+
128
+ - 公共命令测试通过;
129
+ - 安装后的自包含 CLI 实际可运行;
130
+ - bootstrap 等调用方没有直接写正式状态;
131
+ - `doctor` 检查运行时完整;
132
+ - 查看器仍为只读并正确显示注册表状态;
133
+ - 25 个 Skill 通过校验;
134
+ - 审计物料校验和全量测试通过;
135
+ - 用户手册、维护手册、文件索引和相关 Skill 已同步。
@@ -0,0 +1,186 @@
1
+ # 正式状态 CLI 使用指南
2
+
3
+ ## 可重建视图
4
+
5
+ 每次正式状态 mutation 会先写入 `.workflow/control/events/<stream>/<revision>-<event-id>.yaml` 权威事件分片,再刷新兼容的 `workflow-state.yaml`、`artifact-registry.yaml` 和 `state-events.jsonl` 视图。视图丢失或损坏时执行:
6
+
7
+ ```powershell
8
+ node .workflow/tools/state/state.mjs rebuild
9
+ node .workflow/tools/state/state.mjs verify
10
+ ```
11
+
12
+ `rebuild` 不从聊天记录推断状态,只读取不可变事件分片。没有事件分片的历史项目保持原视图不变。
13
+
14
+ > 适用入口:`.workflow/tools/state/state.mjs`
15
+ > 适用范围:正式流程、物料、Gate、候选和发布状态
16
+
17
+ ## 1. 为什么必须使用脚本
18
+
19
+ `.workflow/delivery/workflow-state.yaml` 和 `.workflow/delivery/artifact-registry.yaml` 是研发流程的控制面,不是普通说明文档。通过脚本修改可以统一完成:
20
+
21
+ - revision 乐观并发控制;
22
+ - 文件锁和原子替换;
23
+ - 物料 SHA-256 登记;
24
+ - Gate 证据和决策人校验;
25
+ - 节点状态不变量校验;
26
+ - `.workflow/delivery/state-events.jsonl` 审计记录;
27
+ - 中断后通过 `inspect` 和 `verify` 恢复可信上下文。
28
+
29
+ 禁止直接编辑上述两个 YAML、审计 JSONL,以及 `.workflow/delivery/runtime/` 下的任务状态。脚本失败时应修复输入、revision 冲突或脚本问题,不得手工绕过。
30
+
31
+ ## 2. 两个状态脚本的边界
32
+
33
+ | 状态 | 唯一写入口 |
34
+ | --- | --- |
35
+ | 正式流程、物料、Gate、候选、发布 | `node .workflow/tools/state/state.mjs ...` |
36
+ | 任务、checkpoint、恢复、活动任务、版本归档 | `node .agents/skills/ai-delivery-checkpoint-task/scripts/task-state.mjs ...` |
37
+
38
+ Hook 只记录脱敏生命周期事件和心跳,不得修改两类状态,也不得推断完成或批准。
39
+
40
+ ## 3. 标准操作顺序
41
+
42
+ 1. 先通过只读 Bootstrap inspect 读取 `next_action_owner`;仅当它为 `agent` 时才用 `task-state.mjs recover` 恢复并激活 `recommended_task_id`。`user/external` 等待态禁止写入;收到所需输入后,用带新 `--next-action` 的 `activate --next-action-owner agent` 原子恢复本机 runtime 并接管任务。
43
+ 2. 在 `.workflow/` 写入并验证本节点交付物。
44
+ 3. 运行 `inspect`,取得 `workflow_state.revision` 和 `artifact_registry.revision`。
45
+ 4. 登记物料或更新物料状态。
46
+ 5. 需要 Gate 时提交请求并记录明确决定。
47
+ 6. 使用已登记物料作为 evidence 完成节点流转。
48
+ 7. 运行 `verify`。
49
+ 8. 将物料 ID、revision 和验证结果写入任务 checkpoint 或完成记录。
50
+
51
+ ## 4. 只读命令
52
+
53
+ ```bash
54
+ node .workflow/tools/state/state.mjs inspect
55
+ node .workflow/tools/state/state.mjs verify
56
+ ```
57
+
58
+ `inspect` 返回规范化后的项目、流程和注册表状态,不写文件。`verify` 校验 Schema、revision、节点互斥、物料 ID/路径唯一性、路径边界、物料 checksum、审计 revision 连续性和正式状态文件最后 checksum。
59
+
60
+ 也可由发行包维护者运行:
61
+
62
+ ```bash
63
+ ai-delivery state inspect --project <project-root>
64
+ ai-delivery state verify --project <project-root>
65
+ ```
66
+
67
+ 项目执行和恢复时优先使用项目内 `.workflow/tools/state/state.mjs`,确保命令版本与项目安装版本一致。
68
+
69
+ ## 5. 物料命令
70
+
71
+ 首次登记:
72
+
73
+ ```bash
74
+ node .workflow/tools/state/state.mjs artifact register \
75
+ --expected-revision 0 \
76
+ --id ART-PRODUCT-001 \
77
+ --artifact-type product-baseline \
78
+ --path .workflow/iterations/ITER-01/02-product-definition/product-baseline.yaml \
79
+ --node 02-product-definition \
80
+ --status draft \
81
+ --version 1.0.0 \
82
+ --producer-skill ai-delivery-define-product
83
+ ```
84
+
85
+ 更新生命周期:
86
+
87
+ ```bash
88
+ node .workflow/tools/state/state.mjs artifact status \
89
+ --expected-revision 1 \
90
+ --id ART-PRODUCT-001 \
91
+ --status approved \
92
+ --evidence GATE-B-DECISION-001
93
+ ```
94
+
95
+ 已登记内容发生变化时,创建新文件和新 ID:
96
+
97
+ ```bash
98
+ node .workflow/tools/state/state.mjs artifact register \
99
+ --expected-revision 2 \
100
+ --id ART-PRODUCT-002 \
101
+ --path .workflow/iterations/ITER-01/02-product-definition/product-baseline-v2.yaml \
102
+ --node 02-product-definition \
103
+ --status draft \
104
+ --version 2.0.0 \
105
+ --supersedes ART-PRODUCT-001
106
+ ```
107
+
108
+ `--path` 必须是项目相对路径,以 `.workflow/` 开头,且真实文件不能通过符号链接逃逸。重复 ID、重复受控版本、无 evidence 的状态变更和 terminal 状态重写会被拒绝。
109
+
110
+ ## 6. 流程和 Gate 命令
111
+
112
+ 启动与完成节点:
113
+
114
+ ```bash
115
+ node .workflow/tools/state/state.mjs transition --expected-revision 0 --event node-started --iteration-id ITER-01 --node 02-product-definition
116
+ node .workflow/tools/state/state.mjs transition --expected-revision 1 --event node-completed --iteration-id ITER-01 --node 02-product-definition --evidence ART-PRODUCT-002
117
+ ```
118
+
119
+ 阻塞与解除阻塞必须提供原因。新迭代使用 `iteration-started` 和规划 evidence。候选与发布分别使用 `candidate-selected`、`release-selected` 和已登记的不可变制品 ID。
120
+
121
+ 版本完成和发布归档还需要两个里程碑事件。它们不启动发布,只把已由节点和物料证明的事实写入审计状态:
122
+
123
+ ```bash
124
+ node .workflow/tools/state/state.mjs transition \
125
+ --expected-revision <revision> \
126
+ --event version-closed \
127
+ --iteration-id <version-id> \
128
+ --artifact-id <closeout-artifact-id>
129
+
130
+ node .workflow/tools/state/state.mjs transition \
131
+ --expected-revision <revision> \
132
+ --event release-archived \
133
+ --iteration-id <release-id> \
134
+ --artifact-id <release-archive-artifact-id> \
135
+ --production-version-id <version-id>
136
+ ```
137
+
138
+ `version-closed` 要求 `12-version-closeout` 已完成,且物料来自该节点并处于 `release-ready`;它更新 `latest_line_version_id`。`release-archived` 要求 `R10-release-archive` 已完成,且物料来自该节点并处于 `released`;它更新 `production_version_id` 和 `production_release_id`。三个字段的权威来源都是 `workflow-state.yaml`,不得直接编辑;`project.yaml` 中的旧字段只用于兼容读取。
139
+
140
+ Gate 请求:
141
+
142
+ ```bash
143
+ node .workflow/tools/state/state.mjs gate request \
144
+ --expected-revision 1 \
145
+ --gate-id GATE-B \
146
+ --iteration-id ITER-01 \
147
+ --node 02-product-definition \
148
+ --evidence ART-PRODUCT-002
149
+ ```
150
+
151
+ Gate 决定:
152
+
153
+ ```bash
154
+ node .workflow/tools/state/state.mjs gate decide \
155
+ --expected-revision 2 \
156
+ --gate-id GATE-B \
157
+ --decision approved \
158
+ --actor human:product-manager \
159
+ --rationale "范围、终端和验收标准已核对" \
160
+ --evidence ART-PRODUCT-002
161
+ ```
162
+
163
+ 决定必须保留请求时的全部 evidence,并明确记录 `actor` 和 `rationale`。AI 文本、Hook、查看器操作或命令成功不能替代批准。非视觉体验范围把 UX Gate 设为 `not-required` 时,还必须附加来自 `02-product-definition`、状态成功且 `artifact_type` 包含 `terminal` 的已登记证据;推荐统一使用 `product-terminal-scope`。
164
+
165
+ ## 7. revision 冲突与失败恢复
166
+
167
+ 每个 mutation 都必须传 `--expected-revision`。收到 revision conflict 时:
168
+
169
+ 1. 停止当前写入,不自动递增数字重试。
170
+ 2. 重新运行 `inspect`。
171
+ 3. 比较他人已写入的状态、物料和审计事件。
172
+ 4. 判断当前动作是否仍需要、是否冲突或是否应生成新版本。
173
+ 5. 使用新的当前 revision 执行经过重新确认的命令。
174
+ 6. 运行 `verify`。
175
+
176
+ `verify` 失败时,根据错误修复物料或控制面。物料 checksum 不一致通常表示登记后被修改,应恢复原文件或创建新版本;audit checksum 不一致表示正式状态文件可能绕过脚本被修改,应从可信审计、版本控制和交付证据恢复,不能继续流转。
177
+
178
+ ## 8. 生产阶段
179
+
180
+ 研发与发布使用两个独立状态域:`development_state.scope_id` 由 `iteration-started` 建立,`release_state.scope_id` 由用户明确发布后执行 `release-started` 建立。两者分别保存局部 revision、活动/阻塞/完成节点、Gate、节点尝试次数和选定物料;顶层 `workflow_state.revision` 仍用于 `--expected-revision` 和审计串行化。
181
+
182
+ `node-started` 会验证流程图前置条件。当前迭代未执行的前置节点,可以用来自该节点且处于成功状态的已登记基线物料作为 evidence;这用于后续迭代只重访受影响基线。重新打开已完成节点必须提供 `--reason`,并产生新的节点尝试,旧 Gate 决定不能批准新一轮输出。
183
+
184
+ `node-completed` 只接受成功状态物料,并检查当前尝试的必需 Gate:`GATE-A`、`GATE-B`、`UX-LF`、`UX-VS`、`UX-UI` 和 `PRODUCTION-APPROVAL`。只有确实无视觉交互的体验范围可以依据产品终端证据把 UX Gate 决定为 `not-required`;Gate A、Gate B 和生产审批必须为 `approved`。历史 `12-release-preparation` 至 `16-version-archive` 只允许登记和读取审计物料,新的 transition 和 Gate 命令会拒绝这些节点。
185
+
186
+ 版本收尾、每个发布节点交接、生产审批、部署和发布归档前必须运行 `verify`。新研发流程使用 `12-version-closeout` 和 `release-ready`;完成该节点后通过 `version-closed` 记录累计研发版本,但不得创建任何 R 节点。独立发布使用 `R00-release-request` 至 `R10-release-archive`;启动 R00 时必须提供节点为 R00、状态成功且 `artifact_type: release-request` 的显式用户请求物料。R09 只产生生产验证结论,R10 完成并登记 `released` 归档物料后,才通过 `release-archived` 正式回写生产版本和 release ID。发布选择只能引用精确不可变 `version-ready` Tag 和已登记版本物料,生产审批只发生在 R07,并绑定精确 release ID、包 checksum、镜像 digest、配置、迁移、环境和回滚镜像;任一项变化均创建新发布候选并重新审批。