@namewta/speculo 0.7.4 → 0.7.5

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 (157) hide show
  1. package/README.md +2 -2
  2. package/package.json +1 -1
  3. package/template/canonical/README.md +208 -63
  4. package/template/canonical/canonical-person-steelman-deliberation.md +518 -0
  5. package/template/skills/engineering-standards-builder/README.md +43 -0
  6. package/template/skills/engineering-standards-builder/SKILL.md +233 -0
  7. package/template/skills/engineering-standards-builder/examples/README.md +15 -0
  8. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/build.gradle.kts +5 -0
  9. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/expected.json +12 -0
  10. package/template/skills/engineering-standards-builder/examples/fallback/kotlin-gradle/src/main/kotlin/example/App.kt +2 -0
  11. package/template/skills/engineering-standards-builder/examples/go/service/.golangci.yml +3 -0
  12. package/template/skills/engineering-standards-builder/examples/go/service/cmd/api/main.go +3 -0
  13. package/template/skills/engineering-standards-builder/examples/go/service/expected.json +23 -0
  14. package/template/skills/engineering-standards-builder/examples/go/service/go.mod +3 -0
  15. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service.go +2 -0
  16. package/template/skills/engineering-standards-builder/examples/go/service/internal/service/service_test.go +3 -0
  17. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/expected.json +22 -0
  18. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/pom.xml +12 -0
  19. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  20. package/template/skills/engineering-standards-builder/examples/java/spring-boot-maven/src/test/java/dev/speculo/orders/OrdersApplicationTest.java +3 -0
  21. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/.github/workflows/ci.yml +11 -0
  22. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/package.json +11 -0
  23. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/src/App.vue +2 -0
  24. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/apps/web/tsconfig.json +8 -0
  25. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/expected.json +22 -0
  26. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/package.json +11 -0
  27. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/pnpm-workspace.yaml +2 -0
  28. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/pom.xml +12 -0
  29. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/orders/src/main/java/dev/speculo/orders/OrdersApplication.java +7 -0
  30. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/go.mod +3 -0
  31. package/template/skills/engineering-standards-builder/examples/polyglot/monorepo/services/worker/main.go +2 -0
  32. package/template/skills/engineering-standards-builder/examples/rust/workspace/Cargo.toml +7 -0
  33. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/Cargo.toml +8 -0
  34. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/cli/src/main.rs +1 -0
  35. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/Cargo.toml +5 -0
  36. package/template/skills/engineering-standards-builder/examples/rust/workspace/crates/core/src/lib.rs +3 -0
  37. package/template/skills/engineering-standards-builder/examples/rust/workspace/expected.json +14 -0
  38. package/template/skills/engineering-standards-builder/examples/rust/workspace/rust-toolchain.toml +3 -0
  39. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/expected.json +21 -0
  40. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/package.json +20 -0
  41. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.test.tsx +2 -0
  42. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/App.tsx +1 -0
  43. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/src/main.tsx +3 -0
  44. package/template/skills/engineering-standards-builder/examples/typescript/react-vite/tsconfig.json +10 -0
  45. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/expected.json +22 -0
  46. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/package.json +21 -0
  47. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.test.ts +2 -0
  48. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/App.vue +7 -0
  49. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/src/main.ts +4 -0
  50. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/tsconfig.json +11 -0
  51. package/template/skills/engineering-standards-builder/examples/typescript/vue-vite/vite.config.ts +2 -0
  52. package/template/skills/engineering-standards-builder/manifest.txt +112 -0
  53. package/template/skills/engineering-standards-builder/references/go/00-detection-and-scope.md +37 -0
  54. package/template/skills/engineering-standards-builder/references/go/01-language-and-idioms.md +34 -0
  55. package/template/skills/engineering-standards-builder/references/go/02-modules-packages-and-layout.md +34 -0
  56. package/template/skills/engineering-standards-builder/references/go/03-errors-context-and-concurrency.md +38 -0
  57. package/template/skills/engineering-standards-builder/references/go/04-testing-tooling-quality-gates.md +46 -0
  58. package/template/skills/engineering-standards-builder/references/go/README.md +9 -0
  59. package/template/skills/engineering-standards-builder/references/java/00-detection-and-scope.md +40 -0
  60. package/template/skills/engineering-standards-builder/references/java/01-language-packages-and-api.md +35 -0
  61. package/template/skills/engineering-standards-builder/references/java/02-build-modules-and-dependencies.md +39 -0
  62. package/template/skills/engineering-standards-builder/references/java/03-errors-nullability-resources-concurrency.md +36 -0
  63. package/template/skills/engineering-standards-builder/references/java/04-testing-tooling-quality-gates.md +36 -0
  64. package/template/skills/engineering-standards-builder/references/java/README.md +10 -0
  65. package/template/skills/engineering-standards-builder/references/java/frameworks/spring-boot.md +74 -0
  66. package/template/skills/engineering-standards-builder/references/rules/00-governance-and-precedence.md +52 -0
  67. package/template/skills/engineering-standards-builder/references/rules/01-project-discovery.md +79 -0
  68. package/template/skills/engineering-standards-builder/references/rules/02-evidence-topology-and-scope.md +87 -0
  69. package/template/skills/engineering-standards-builder/references/rules/03-interview-and-decisions.md +77 -0
  70. package/template/skills/engineering-standards-builder/references/rules/04-architecture-and-dependency-boundaries.md +58 -0
  71. package/template/skills/engineering-standards-builder/references/rules/05-files-directories-and-naming.md +53 -0
  72. package/template/skills/engineering-standards-builder/references/rules/06-apis-errors-resources-and-concurrency.md +53 -0
  73. package/template/skills/engineering-standards-builder/references/rules/07-documentation-and-comments.md +46 -0
  74. package/template/skills/engineering-standards-builder/references/rules/08-testing-strategy.md +45 -0
  75. package/template/skills/engineering-standards-builder/references/rules/09-security-configuration-and-data.md +44 -0
  76. package/template/skills/engineering-standards-builder/references/rules/10-performance-observability-and-i18n.md +36 -0
  77. package/template/skills/engineering-standards-builder/references/rules/11-tooling-quality-gates-and-ci.md +69 -0
  78. package/template/skills/engineering-standards-builder/references/rules/12-git-review-and-delivery.md +46 -0
  79. package/template/skills/engineering-standards-builder/references/rules/13-adoption-exceptions-and-ratchets.md +60 -0
  80. package/template/skills/engineering-standards-builder/references/rules/14-generation-contract.md +105 -0
  81. package/template/skills/engineering-standards-builder/references/rules/15-validation-contract.md +65 -0
  82. package/template/skills/engineering-standards-builder/references/rules/16-language-adapter-contract.md +55 -0
  83. package/template/skills/engineering-standards-builder/references/rules/README.md +23 -0
  84. package/template/skills/engineering-standards-builder/references/rust/00-detection-and-scope.md +38 -0
  85. package/template/skills/engineering-standards-builder/references/rust/01-language-api-and-safety.md +35 -0
  86. package/template/skills/engineering-standards-builder/references/rust/02-crates-workspaces-and-layout.md +36 -0
  87. package/template/skills/engineering-standards-builder/references/rust/03-errors-ownership-and-concurrency.md +37 -0
  88. package/template/skills/engineering-standards-builder/references/rust/04-testing-tooling-quality-gates.md +44 -0
  89. package/template/skills/engineering-standards-builder/references/rust/README.md +9 -0
  90. package/template/skills/engineering-standards-builder/references/typescript/00-detection-and-scope.md +58 -0
  91. package/template/skills/engineering-standards-builder/references/typescript/01-language-and-type-system.md +49 -0
  92. package/template/skills/engineering-standards-builder/references/typescript/02-modules-packages-and-runtime-boundaries.md +49 -0
  93. package/template/skills/engineering-standards-builder/references/typescript/03-functions-async-errors-resources.md +42 -0
  94. package/template/skills/engineering-standards-builder/references/typescript/04-testing-tooling-quality-gates.md +51 -0
  95. package/template/skills/engineering-standards-builder/references/typescript/README.md +27 -0
  96. package/template/skills/engineering-standards-builder/references/typescript/app-types/cli.md +11 -0
  97. package/template/skills/engineering-standards-builder/references/typescript/app-types/library.md +11 -0
  98. package/template/skills/engineering-standards-builder/references/typescript/frameworks/react.md +71 -0
  99. package/template/skills/engineering-standards-builder/references/typescript/frameworks/vue.md +131 -0
  100. package/template/skills/engineering-standards-builder/references/typescript/runtimes/browser.md +15 -0
  101. package/template/skills/engineering-standards-builder/references/typescript/runtimes/electron.md +25 -0
  102. package/template/skills/engineering-standards-builder/references/typescript/runtimes/node.md +13 -0
  103. package/template/skills/engineering-standards-builder/scripts/discover-project.mjs +957 -0
  104. package/template/skills/engineering-standards-builder/scripts/self-test.mjs +203 -0
  105. package/template/skills/engineering-standards-builder/scripts/sync-manifest.mjs +105 -0
  106. package/template/skills/engineering-standards-builder/scripts/validate-builder.mjs +255 -0
  107. package/template/skills/engineering-standards-builder/scripts/validate-generated-skill.mjs +286 -0
  108. package/template/skills/engineering-standards-builder/templates/README.md +18 -0
  109. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript--standards.md +6 -0
  110. package/template/skills/engineering-standards-builder/templates/compatibility/agents-typescript-standards.md +6 -0
  111. package/template/skills/engineering-standards-builder/templates/compatibility/claude-engineering-standards.md +6 -0
  112. package/template/skills/engineering-standards-builder/templates/compatibility/claude-typescript-standards.md +6 -0
  113. package/template/skills/engineering-standards-builder/templates/project-skill/SKILL.md.template +26 -0
  114. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/00-project-profile.md.template +26 -0
  115. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/01-module-map.md.template +27 -0
  116. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/02-decisions-and-exceptions.md.template +31 -0
  117. package/template/skills/engineering-standards-builder/templates/project-skill/references/project/review-checklist.md.template +14 -0
  118. package/template/skills/source-code-zip-skill/SKILL.md +343 -0
  119. package/template/skills/source-code-zip-skill/scripts/zip_source_code.py +638 -0
  120. package/template/workflows/person/INDEX.md +1 -0
  121. package/template/workflows/person/S-steelman-deliberation/S-steelman-deliberation.md +218 -0
  122. package/template/workflows/person/S-steelman-deliberation/_templates/decision-template.md +51 -0
  123. package/template/workflows/person/S-steelman-deliberation/_templates/steelman-dossier-template.md +96 -0
  124. package/template/workflows/person/S-steelman-deliberation/deliberate.md +127 -0
  125. package/template/workflows/person/S-steelman-deliberation/evidence-gate.md +37 -0
  126. package/template/workflows/person/S-steelman-deliberation/judge.md +69 -0
  127. package/template/workflows/person/S-steelman-deliberation/tools/validate-steelman-change.mjs +697 -0
  128. package/template/skills/typescript-standards-builder/README.md +0 -53
  129. package/template/skills/typescript-standards-builder/SKILL.md +0 -245
  130. package/template/skills/typescript-standards-builder/examples/sample-generated-tree.md +0 -30
  131. package/template/skills/typescript-standards-builder/examples/sample-interview-decisions.md +0 -26
  132. package/template/skills/typescript-standards-builder/manifest.txt +0 -29
  133. package/template/skills/typescript-standards-builder/references/00-governance-and-fixed-defaults.md +0 -77
  134. package/template/skills/typescript-standards-builder/references/01-project-discovery.md +0 -100
  135. package/template/skills/typescript-standards-builder/references/02-interview-workflow.md +0 -129
  136. package/template/skills/typescript-standards-builder/references/03-project-architecture-and-directory-layout.md +0 -84
  137. package/template/skills/typescript-standards-builder/references/04-file-directory-and-symbol-naming.md +0 -92
  138. package/template/skills/typescript-standards-builder/references/05-modules-imports-exports-and-dependencies.md +0 -63
  139. package/template/skills/typescript-standards-builder/references/06-typescript-type-system.md +0 -64
  140. package/template/skills/typescript-standards-builder/references/07-functions-async-errors-and-resources.md +0 -42
  141. package/template/skills/typescript-standards-builder/references/08-comments-jsdoc-and-documentation.md +0 -51
  142. package/template/skills/typescript-standards-builder/references/09-testing-strategy.md +0 -58
  143. package/template/skills/typescript-standards-builder/references/10-react-and-frontend.md +0 -39
  144. package/template/skills/typescript-standards-builder/references/11-node-cli-and-cross-platform.md +0 -31
  145. package/template/skills/typescript-standards-builder/references/12-formatting-lint-and-complexity.md +0 -58
  146. package/template/skills/typescript-standards-builder/references/13-configuration-dependencies-and-ci.md +0 -71
  147. package/template/skills/typescript-standards-builder/references/14-security-performance-and-i18n.md +0 -32
  148. package/template/skills/typescript-standards-builder/references/15-git-review-and-delivery.md +0 -28
  149. package/template/skills/typescript-standards-builder/references/16-adoption-exceptions-and-migration.md +0 -61
  150. package/template/skills/typescript-standards-builder/references/17-generation-contract.md +0 -104
  151. package/template/skills/typescript-standards-builder/references/README.md +0 -37
  152. package/template/skills/typescript-standards-builder/templates/agents-compat-skill/SKILL.md +0 -1
  153. package/template/skills/typescript-standards-builder/templates/claude-skill/SKILL.md +0 -1
  154. package/template/skills/typescript-standards-builder/templates/project-skill/SKILL.md.template +0 -34
  155. package/template/skills/typescript-standards-builder/templates/project-skill/references/00-project-profile.md.template +0 -17
  156. package/template/skills/typescript-standards-builder/templates/project-skill/references/10-review-checklist.md +0 -23
  157. package/template/skills/typescript-standards-builder/templates/project-skill/references/11-decisions-and-exceptions.md.template +0 -19
@@ -0,0 +1,218 @@
1
+ ---
2
+ id: person/steelman-deliberation
3
+ type: workflow-entry
4
+ workflow: person
5
+ name: 双向钢人论证
6
+ description: 将尚未厘清的复杂问题经真实问题重述、正反双向钢人化与关键变量识别,在一次关键追问后推进为明确判断和可执行行动
7
+ keywords: [双向钢人, steelman, 决策, 反谄媚, 关键变量, 明确判断]
8
+ ---
9
+
10
+ # 双向钢人论证
11
+
12
+ 本 work 的主导词是**钢人化**。它不负责替用户把既有立场说得更顺耳,也不以“正反都说一点”制造表面平衡;它负责在结论形成前,把用户真正要解决的问题、支持当前倾向的最强可信论证、反对当前倾向的最强可信论证和决定结论的变量同时推进到可检验状态,再只关闭一个最高价值的不确定性,最后承担判断责任。
13
+
14
+ 核心动作保持为:
15
+
16
+ 1. 用最完整、最有力的方式,重述用户真正想解决的问题;
17
+ 2. 使用钢人论证法,分别给出支持当前想法与反对它的最强论证;
18
+ 3. 找出双方真正的分歧,以及最可能改变结论的关键变量;
19
+ 4. 只问用户一个最关键的问题;等用户回答后,再给出明确判断、理由和下一步行动。
20
+
21
+ ## 输入、权威与边界
22
+
23
+ ### 必需输入
24
+
25
+ - 一个需要选择、判断、取舍、排序或制定策略的具体问题。
26
+
27
+ 缺失可识别问题,或输入只是无需权衡的事实查询时,返回 `blocked-input`,说明缺少什么,不制造虚假争论。
28
+
29
+ ### 可选输入
30
+
31
+ - 用户当前倾向、候选方案与反对意见;
32
+ - 时间窗口、预算、资源、风险和不可逆约束;
33
+ - 已知事实、项目材料、证据或外部来源;
34
+ - 用户已经明确的目标、价值排序和成功标准;
35
+ - 调用方显式提供的 `{change}`。
36
+
37
+ 不存在的可选输入静默跳过;已经明确的信息不得重复询问。
38
+
39
+ ### 权威顺序
40
+
41
+ 1. 用户明确陈述的目标、价值偏好和不可外部发现的约束;
42
+ 2. 已验证的代码、测试、配置、schema、材料和当前外部事实;
43
+ 3. `<Path>{roots.state}/person/changes/{change}/steelman-dossier.md</Path>` 中冻结的回答前分析;
44
+ 4. 合理推断;
45
+ 5. 未验证假设。
46
+
47
+ 低优先级内容不得覆盖高优先级内容。用户的确信程度不是事实证据;模型表达得有说服力也不是事实证据。
48
+
49
+ ### 职责边界
50
+
51
+ 本 work 拥有:
52
+
53
+ - `<Path>{roots.state}/person/changes/{change}/steelman-dossier.md</Path>`;
54
+ - `<Path>{roots.state}/person/changes/{change}/decision.md</Path>`;
55
+ - `<Path>{roots.state}/person/changes/{change}/.status.json</Path>` 中 `work_id: person/steelman-deliberation` 的生命周期;
56
+ - `<Path>{roots.state}/person/status.json</Path>` 的 `active` 数组中属于本 work 的条目。
57
+
58
+ 它不修改其他 person work 的产物或 active 条目,不把运行时状态写回 `{roots.workflows}/person/_state/`,也不提交、推送、发布、部署或执行不可逆操作。
59
+
60
+ ## 流程
61
+
62
+ ### 1. 解析 roots,选择或恢复 change
63
+
64
+ 先读取 `<Path>{roots.state}/workspace.json</Path>` 解析公共 roots,再读取 `<Path>{roots.state}/person/status.json</Path>`。选择 change 的顺序固定为:
65
+
66
+ 1. 调用方提供 `{change}`:验证名称不含路径穿越,使用该 change;
67
+ 2. 未提供时,筛选 `active` 中 `work_id === "person/steelman-deliberation"` 的条目;
68
+ 3. 只有一个候选:恢复它;
69
+ 4. 多个候选:返回 `blocked-change-selection`,列出 change 名称,不自行猜测;
70
+ 5. 没有候选:创建 `YYYY-MM-DD-steelman-<topic-slug>`;同名已存在时追加最小未占用的 `-01`、`-02`。
71
+
72
+ 新建 change 时创建 `<Path>{roots.state}/person/changes/{change}/</Path>` 和 change `.status.json`。恢复时先读 `.status.json`、已有 dossier 和 decision,禁止重新询问或重写已经确认的内容。
73
+
74
+ **完成标准**:恰有一个合法 change 被选定;新建与恢复可区分;没有覆盖其他 change 或其他 work 的状态。
75
+
76
+ ### 2. 判断当前阶段
77
+
78
+ 根据 change `.status.json` 和权威工件恢复:
79
+
80
+ - 无 dossier:进入 `deliberating`;
81
+ - dossier 存在、`phase === "awaiting-answer"`:恢复 dossier,仅处理同一个关键问题;
82
+ - `phase === "judging"`:从冻结 dossier 和已记录用户回答继续裁决;
83
+ - decision 存在且验证通过:返回 `completed`,不重复生成;
84
+ - 状态与工件矛盾:返回 `validation-failed`,列出冲突路径,不推进状态。
85
+
86
+ **完成标准**:当前阶段由持久化证据决定,而不是根据对话印象猜测。
87
+
88
+ ### 3. 回答前的双向钢人化
89
+
90
+ 仅在没有有效 dossier 时读取 `<Path>{roots.workflows}/person/S-steelman-deliberation/deliberate.md</Path>`,按其顺序完成真实问题重述、证据分层、双向钢人、分歧与关键变量识别,并形成唯一关键问题。
91
+
92
+ 若问题依赖会变化的公开事实、专业事实、冲突材料、代码/测试/配置,或属于医疗、法律、财务、安全等高风险领域,再读取 `<Path>{roots.workflows}/person/S-steelman-deliberation/evidence-gate.md</Path>`;可发现的事实先探索,不拿来问用户。
93
+
94
+ 使用 `<Path>{roots.workflows}/person/S-steelman-deliberation/_templates/steelman-dossier-template.md</Path>` 在 change 目录下的唯一临时子目录中写入候选 dossier 与候选 `.status.json`,重读后运行:
95
+
96
+ ```bash
97
+ node <Path>{roots.workflows}/person/S-steelman-deliberation/tools/validate-steelman-change.mjs</Path> \
98
+ --phase awaiting-answer \
99
+ --change-dir <Path>{roots.state}/person/changes/{change}</Path> \
100
+ --dossier-file <Path>{roots.state}/person/changes/{change}/.steelman-stage/steelman-dossier.md</Path> \
101
+ --status-file <Path>{roots.state}/person/changes/{change}/.steelman-stage/.status.json</Path>
102
+ ```
103
+
104
+ 临时目录名在并发时追加唯一后缀。校验通过后,先原子替换正式 dossier,再原子替换 change `.status.json`;workflow active 只在步骤 4 确认需要等待用户时更新。校验失败时删除临时目录并保持正式工件和旧状态不变。
105
+
106
+ **完成标准**:dossier 是回答前的冻结快照;正反最强可信论证、真正分歧、关键变量和唯一问题均存在;没有最终判断或行动建议;校验退出码为 0。
107
+
108
+ ### 4. 只关闭一个最高价值的不确定性
109
+
110
+ 若 dossier 中的关键问题尚未被回答:
111
+
112
+ 1. 将 change phase 更新为 `awaiting-answer`;
113
+ 2. 在 workflow `status.json.active` 中 upsert 本 work 的条目,保留未知字段和其他 work 条目;
114
+ 3. 展示 dossier 的必要内容;
115
+ 4. 原样提出 dossier 中的唯一关键问题;
116
+ 5. 返回 `awaiting-user-answer`。
117
+
118
+ 此阶段禁止给出方案排序、倾向性结论、最终建议或下一步行动。
119
+
120
+ 若用户原始输入已经清楚回答了该问题,将问题和对应回答原文记录到 `.status.json`,设置 `key_question_asked: false` 与 `question_disposition: already-answered`,不重复追问,也不新增 workflow active 等待项,直接进入步骤 5。
121
+
122
+ 恢复后若用户没有实质回答,原样重复同一个问题;不得提出第二个问题。若用户回答改变了原始问题、候选集合、决策目标或成功标准,返回 `reframe-required`,保留旧 dossier,并建议创建新 change;不得把新问题偷偷塞回冻结分析。
123
+
124
+ **完成标准**:最多向用户提出一个问题;该问题关闭一个可能改变结论的用户特异变量;回答与问题可从持久化状态恢复。
125
+
126
+ ### 5. 明确裁决并形成行动
127
+
128
+ 关键问题得到有效回答后,将回答原文写入 change `.status.json`,设置 `phase: judging`,再读取 `<Path>{roots.workflows}/person/S-steelman-deliberation/judge.md</Path>`。必须基于冻结 dossier 和用户回答裁决,不重做一份迎合回答的新钢人分析。
129
+
130
+ 使用 `<Path>{roots.workflows}/person/S-steelman-deliberation/_templates/decision-template.md</Path>` 在唯一临时目录中写入候选 decision 与候选完成态 `.status.json`,随后运行:
131
+
132
+ ```bash
133
+ node <Path>{roots.workflows}/person/S-steelman-deliberation/tools/validate-steelman-change.mjs</Path> \
134
+ --phase completed \
135
+ --change-dir <Path>{roots.state}/person/changes/{change}</Path> \
136
+ --decision-file <Path>{roots.state}/person/changes/{change}/.steelman-stage/decision.md</Path> \
137
+ --status-file <Path>{roots.state}/person/changes/{change}/.steelman-stage/.status.json</Path>
138
+ ```
139
+
140
+ 校验通过后才原子替换正式 decision 和 change 状态,并只从 workflow `status.json.active` 删除匹配当前 `change` 且属于本 work 的条目。校验失败时删除临时目录、返回 `validation-failed`,保留可恢复的 `judging` 状态。
141
+
142
+ **完成标准**:decision 给出明确判断、决定性理由、对最强反方的回应、具体行动、反转条件及置信度;状态与工件一致;校验退出码为 0。
143
+
144
+ ## 状态合同
145
+
146
+ ### Workflow 状态
147
+
148
+ `<Path>{roots.state}/person/status.json</Path>` 保持 `schema_version: 1`,本 work 只管理 `active` 数组中的如下条目:
149
+
150
+ ```json
151
+ {
152
+ "change": "2026-08-18-steelman-company-anniversary",
153
+ "work_id": "person/steelman-deliberation",
154
+ "phase": "awaiting-answer",
155
+ "updated_at": "2026-08-18T00:00:00.000Z"
156
+ }
157
+ ```
158
+
159
+ 读取—合并—写入时保留未知顶层字段、未知 entry 字段和其他 work 的全部条目。写临时文件、重读 JSON、再原子替换。
160
+
161
+ ### Change 状态
162
+
163
+ `<Path>{roots.state}/person/changes/{change}/.status.json</Path>` 至少包含:
164
+
165
+ ```json
166
+ {
167
+ "schema_version": 1,
168
+ "artifact": "person-work-status",
169
+ "workflow": "person",
170
+ "change": "2026-08-18-steelman-company-anniversary",
171
+ "work_id": "person/steelman-deliberation",
172
+ "status": "active",
173
+ "phase": "awaiting-answer",
174
+ "key_question": "[唯一关键问题]",
175
+ "key_question_asked": true,
176
+ "question_disposition": "asked",
177
+ "answer_received": false,
178
+ "user_answer": null,
179
+ "created_at": "2026-08-18T00:00:00.000Z",
180
+ "updated_at": "2026-08-18T00:00:00.000Z",
181
+ "completed_at": null,
182
+ "blockers": []
183
+ }
184
+ ```
185
+
186
+ 允许转换:
187
+
188
+ ```text
189
+ intake → deliberating → awaiting-answer → judging → completed
190
+ 任一活动阶段 → blocked
191
+ awaiting-answer → reframe-required
192
+ ```
193
+
194
+ `question_disposition` 只能是 `asked | already-answered`;前者要求 `key_question_asked: true`,后者要求 `key_question_asked: false`。工件先验证,change 状态后更新,workflow active 最后更新。状态只是工件的索引,不替代工件本身。
195
+
196
+ ## 返回合同
197
+
198
+ 每次返回都给出:
199
+
200
+ - `result`:`awaiting-user-answer | completed | blocked-input | blocked-change-selection | blocked-evidence | reframe-required | validation-failed`;
201
+ - `change`;
202
+ - 权威工件完整 `<Path>…</Path>` 路径;
203
+ - 已运行验证命令、退出码和关键结果;
204
+ - 尚未解决的高影响问题;
205
+ - `decision_type`(完成时):`recommend | reject | conditional | defer-for-evidence`;
206
+ - 下一路由:等待回答时返回 `<Path>{roots.workflows}/person/S-steelman-deliberation/S-steelman-deliberation.md</Path>` 并携带同一 change;问题已重构时创建新 change;否则明确完成。
207
+
208
+ 只有 `completed` 才能声明已经形成最终判断。`awaiting-user-answer` 的下一路由始终是带着同一 change 回到本入口。
209
+
210
+ ## 全局完成标准
211
+
212
+ - 用户真正要解决的问题与表层问法已区分;
213
+ - 当前倾向和最强反方都经过可信、可识别的钢人化;
214
+ - 没有编造证据、虚假平衡或因用户立场降低证据标准;
215
+ - 只关闭了一个最高价值的不确定性,且没有重复追问已知信息;
216
+ - 回答前 dossier 保持冻结,回答后 decision 可追溯到关键变量和用户回答;
217
+ - 最终答案不是任何人都能套用的通用建议,而是明确判断与可验证行动;
218
+ - owned 工件、change 状态与 workflow active 一致,验证证据已返回。
@@ -0,0 +1,51 @@
1
+ ---
2
+ schema_version: 1
3
+ artifact: steelman-decision
4
+ workflow: person
5
+ work_id: person/steelman-deliberation
6
+ change: "[TODO: change]"
7
+ status: completed
8
+ decision_type: "[TODO: recommend | reject | conditional | defer-for-evidence]"
9
+ generated_at: "[TODO: ISO-8601]"
10
+ ---
11
+
12
+ # 决策结论
13
+
14
+ ## 唯一关键问题
15
+
16
+ [TODO: 与 dossier 完全一致的问题]
17
+
18
+ ## 用户回答
19
+
20
+ [TODO: 完整保留 .status.json 中的用户回答原文]
21
+
22
+ ## 明确判断
23
+
24
+ [TODO: 一句话说明选择什么、不选择什么,或满足什么条件后选择什么]
25
+
26
+ ## 决定性理由
27
+
28
+ 1. [TODO: 用户回答如何确定关键变量]
29
+ 2. [TODO: 关键变量如何使某个钢人的成立条件更满足]
30
+ 3. [TODO: 为什么该判断服务于当前用户的目标与约束]
31
+
32
+ ## 为什么另一边没有赢
33
+
34
+ - **最强反方说对了什么**:[TODO]
35
+ - **仍不足以获胜的原因**:[TODO]
36
+ - **它会在什么条件下获胜**:[TODO]
37
+
38
+ ## 下一步行动
39
+
40
+ | 动作 | 责任人 | 时机/截止 | 完成证据 |
41
+ |---|---|---|---|
42
+ | [TODO] | [TODO] | [TODO] | [TODO] |
43
+
44
+ ## 反转条件
45
+
46
+ - [TODO: 会改变当前判断的事实、阈值或价值变化]
47
+
48
+ ## 置信度与剩余不确定性
49
+
50
+ - **置信度**:[TODO: 高 / 中 / 低]
51
+ - **剩余不确定性**:[TODO: 来源及影响]
@@ -0,0 +1,96 @@
1
+ ---
2
+ schema_version: 1
3
+ artifact: steelman-dossier
4
+ workflow: person
5
+ work_id: person/steelman-deliberation
6
+ change: "[TODO: change]"
7
+ status: awaiting-answer
8
+ generated_at: "[TODO: ISO-8601]"
9
+ ---
10
+
11
+ # 双向钢人论证
12
+
13
+ ## 原始问题
14
+
15
+ [TODO: 保留用户原始问题及必要上下文]
16
+
17
+ ## 真正问题重述
18
+
19
+ - **表层问题**:[TODO: 用户字面问题]
20
+ - **真正决策**:[TODO: 最终需要作出的选择或判断]
21
+ - **当前倾向**:[TODO: 已表达倾向;未表达则写“未表达”]
22
+ - **时间尺度**:[TODO: 相关时间窗口]
23
+ - **约束**:[TODO: 预算、资源、期限、不可逆性、利益相关方]
24
+ - **关键假设**:[TODO: 尚未验证但影响判断的前提]
25
+
26
+ ## 决策目标与成功标准
27
+
28
+ - **要优化的目标**:[TODO: 用户真正重视的结果]
29
+ - **价值排序**:[TODO: 目标之间的优先级]
30
+ - **成功标准**:[TODO: 可观察结果]
31
+
32
+ ## 已知事实、推断、价值与未知
33
+
34
+ ### 已验证事实
35
+
36
+ - [TODO: 事实与证据]
37
+
38
+ ### 合理推断
39
+
40
+ - [TODO: 推断及可被推翻的条件]
41
+
42
+ ### 用户价值偏好
43
+
44
+ - [TODO: 用户拥有最终权威的偏好]
45
+
46
+ ### 尚未验证假设
47
+
48
+ - [TODO: 未知及其影响]
49
+
50
+ ## 双向钢人
51
+
52
+ <!-- 二元问题使用“钢人 A / 钢人 B”。三个及以上选项删除下面两个钢人块,改为至少两个“### 选项 X:名称”块;每个选项块必须包含“#### 最强支持论证”“#### 最强反对论证”“#### 成立条件”“#### 失败条件”。删除本说明。 -->
53
+
54
+ ### 钢人 A:支持当前倾向的最强可信论证
55
+
56
+ - **核心主张**:[TODO]
57
+ - **成立前提**:[TODO]
58
+ - **最强理由与证据**:[TODO]
59
+ - **最有利条件**:[TODO]
60
+ - **最好可能结果**:[TODO]
61
+ - **最难回答的质疑**:[TODO]
62
+ - **失败事实或阈值**:[TODO]
63
+
64
+ ### 钢人 B:反对当前倾向或支持最强替代的最强可信论证
65
+
66
+ - **核心主张**:[TODO]
67
+ - **成立前提**:[TODO]
68
+ - **最强理由与证据**:[TODO]
69
+ - **最有利条件**:[TODO]
70
+ - **最好可能结果**:[TODO]
71
+ - **最难回答的质疑**:[TODO]
72
+ - **失败事实或阈值**:[TODO]
73
+
74
+ ## 共同基础
75
+
76
+ - [TODO: 双方共同接受的事实、目标或约束]
77
+
78
+ ## 真正分歧
79
+
80
+ - **分歧类型**:[TODO: 事实 / 因果 / 风险 / 时间尺度 / 价值]
81
+ - **分歧内容**:[TODO: 为什么双方在最强版本下仍得出不同结论]
82
+ - **非分歧项**:[TODO: 只是措辞不同的部分]
83
+
84
+ ## 关键变量
85
+
86
+ | 变量 | 当前假设 | 改变结论的阈值 | 当前不确定性 | 可外部发现 | 用户特异性 |
87
+ |---|---|---|---|---|---|
88
+ | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] | [TODO] |
89
+
90
+ ## 唯一关键问题
91
+
92
+ [TODO: 只写一个问题;它必须关闭一个最高价值的用户特异变量?]
93
+
94
+ ## 证据缺口与适用边界
95
+
96
+ - [TODO: 缺口、来源冲突、高风险边界;没有则写“无决定性缺口”]
@@ -0,0 +1,127 @@
1
+ # 回答前:双向钢人化协议
2
+
3
+ 仅在当前 change 没有通过验证的 `steelman-dossier.md` 时读取本文件。完成本阶段后停止形成结论;后续裁决规则由 `judge.md` 拥有。
4
+
5
+ ## 1. 重述真正要解决的问题
6
+
7
+ 先区分并写清:
8
+
9
+ | 层次 | 必须回答的内容 |
10
+ |---|---|
11
+ | 表层问题 | 用户字面上问了什么 |
12
+ | 真正决策 | 用户最终需要选择、拒绝、排序或承诺什么 |
13
+ | 当前倾向 | 用户目前偏向哪一边;未表达时明确写“未表达” |
14
+ | 决策目标 | 真正优化的是收入、速度、品牌、自由、关系、学习、风险还是其他目标 |
15
+ | 时间尺度 | 短期与长期是否会产生不同答案 |
16
+ | 约束 | 预算、资源、期限、不可逆性和利益相关方 |
17
+ | 假设 | 哪些尚未验证的前提正在推动判断 |
18
+ | 成功标准 | 什么可观察结果代表问题被真正解决 |
19
+
20
+ 重述必须通过可识别性检查:用户应当能说“对,这才是我真正想解决的问题”。可以补全结构,不得替用户偷换目标、价值观、事实或立场。
21
+
22
+ ## 2. 分离事实、推断、价值与未知
23
+
24
+ 把输入逐项归入:
25
+
26
+ - **已验证事实**:有材料、代码、测试、配置或可靠来源支持;
27
+ - **合理推断**:由事实推导,但仍可能被新证据推翻;
28
+ - **用户价值偏好**:只有用户能够决定的优化方向;
29
+ - **尚未验证假设**:当前影响结论但缺乏证据的前提。
30
+
31
+ 不要把流畅叙事当证据,不要把用户的信心当证据。可外部发现且会影响结论的事实,先按 `evidence-gate.md` 探索。
32
+
33
+ ## 3. 进行双向钢人化
34
+
35
+ 钢人化不是替某一边宣传,而是先把对方会认可的最强可信版本补完整,再判断。
36
+
37
+ ### 二元问题或已有明确倾向
38
+
39
+ 分别形成:
40
+
41
+ 1. **钢人 A:支持用户当前倾向的最强可信论证**;
42
+ 2. **钢人 B:反对当前倾向、或支持最强替代方案的最强可信论证**。
43
+
44
+ 每个钢人必须覆盖:
45
+
46
+ - 核心主张;
47
+ - 成立所需前提;
48
+ - 最强理由与证据;
49
+ - 最有利适用条件;
50
+ - 最好可能结果;
51
+ - 对方最难回答的质疑;
52
+ - 会使该论证失败的事实或阈值。
53
+
54
+ ### 三个及以上真实候选方案
55
+
56
+ 不要强行压成一个“支持”桶和一个“反对”桶。对每个可行选项使用稳定结构:
57
+
58
+ ```markdown
59
+ ### 选项 A:<名称>
60
+ #### 最强支持论证
61
+ ...
62
+ #### 最强反对论证
63
+ ...
64
+ #### 成立条件
65
+ ...
66
+ #### 失败条件
67
+ ...
68
+ ```
69
+
70
+ 每个选项都必须包含四个小节。只覆盖真实可行选项,不为了显得全面制造虚假选择。
71
+
72
+ ### 四条硬约束
73
+
74
+ 1. 强化的是**可信版本**,不得凭空创造事实、来源、概率或用户动机;
75
+ 2. 两边采用相同证据标准,但不要求结论概率相等;
76
+ 3. 一边在事实层面明显更弱时,明确写出,不制造虚假对等;
77
+ 4. 论证必须保持可识别性和意图一致性,不能强化成原立场持有者都不认可的新立场。
78
+
79
+ ## 4. 找出共同基础与真正分歧
80
+
81
+ 分别列出:
82
+
83
+ - 双方共同接受的事实或目标;
84
+ - 真正冲突的事实判断、因果预测、风险容忍、时间尺度或价值排序;
85
+ - 只是措辞不同、实际上并不冲突的部分。
86
+
87
+ 真正分歧必须能解释“为什么双方在看过彼此最强版本后仍得出不同结论”。
88
+
89
+ ## 5. 找到会改变结论的关键变量
90
+
91
+ 建立变量表:
92
+
93
+ | 变量 | 当前假设 | 哪个阈值会改变结论 | 当前不确定性 | 是否可外部发现 | 用户特异性 |
94
+ |---|---|---|---|---|---|
95
+
96
+ 只保留真正可能翻转方案排序、风险判断或行动时机的变量。复杂问题可以有多个变量,但要识别其中最具决定性的一个。
97
+
98
+ ## 6. 只选择一个关键问题
99
+
100
+ 为候选问题按以下维度比较:
101
+
102
+ ```text
103
+ 决策影响 × 当前不确定性 × 用户特异性 × 用户可回答性
104
+ ```
105
+
106
+ 最终问题必须同时满足:
107
+
108
+ - 只关闭一个变量;
109
+ - 用户回答后可能改变结论;
110
+ - 只能由用户提供,或至少用户是该偏好的权威;
111
+ - 与当前处境、目标或约束绑定;
112
+ - 不是模型可通过代码、材料或公开资料查明的事实;
113
+ - 不是把多个问题用逗号、斜杠或连续问号伪装成一句。
114
+
115
+ 如果用户输入已经明确回答该变量,仍把问题写入 dossier,并把对应原文作为已提供回答持久化;不要再次询问。
116
+
117
+ ## 7. 回答前停止条件
118
+
119
+ 生成 dossier 后:
120
+
121
+ - 不给出最终建议;
122
+ - 不排序方案;
123
+ - 不写“我更倾向”;
124
+ - 不提供下一步行动;
125
+ - 不用措辞暗示哪个钢人已经获胜。
126
+
127
+ 唯一允许面向用户的下一动作,是原样提出那个关键问题并等待回答。
@@ -0,0 +1,37 @@
1
+ # 条件分支:证据与高风险门禁
2
+
3
+ 只在结论依赖时效事实、专业事实、冲突材料、代码/测试/配置,或涉及医疗、法律、财务、安全等高风险判断时读取。
4
+
5
+ ## 触发条件
6
+
7
+ 满足任一项即触发:
8
+
9
+ - 关键事实可能随时间变化;
10
+ - 用户提供的事实互相冲突;
11
+ - 某个钢人的成立高度依赖尚未验证的事实;
12
+ - 需要读取代码、配置、schema、测试、日志或项目文档;
13
+ - 错误判断可能造成显著健康、法律、财务或安全损害。
14
+
15
+ ## 执行顺序
16
+
17
+ 1. 列出会实质改变结论的事实缺口;
18
+ 2. 先读取已有材料、代码、测试、配置和权威来源;
19
+ 3. 记录来源、日期、适用范围和互相冲突之处;
20
+ 4. 将结果归入“已验证事实 / 合理推断 / 未知”;
21
+ 5. 再进行钢人化或裁决。
22
+
23
+ 模型能发现的事实不得伪装成“用户偏好问题”转问用户。无法验证的内容保持未知,不编造证据,也不因为两边都能写出论证就认为两边同样可信。
24
+
25
+ ## 阻塞条件
26
+
27
+ 当缺失证据同时满足以下条件时返回 `blocked-evidence`:
28
+
29
+ - 它会改变最终判断;
30
+ - 当前工具、材料或权限无法取得;
31
+ - 不能通过明确的条件式判断安全地隔离风险。
32
+
33
+ 返回时写明:缺少的证据、受影响的判断、可取得该证据的人、取得方法和恢复 work 的条件。
34
+
35
+ ## 高风险边界
36
+
37
+ 高风险场景中的双向钢人只用于暴露假设和权衡,不把非专业意见包装成确定诊断或法律/财务结论。最终 decision 必须写清适用边界、需由何种合格主体确认,以及在确认前不能执行的动作。
@@ -0,0 +1,69 @@
1
+ # 回答后:明确裁决协议
2
+
3
+ 仅在冻结的 `steelman-dossier.md` 已通过验证,且唯一关键问题得到有效回答后读取本文件。
4
+
5
+ ## 1. 锁定裁决依据
6
+
7
+ 裁决只使用:
8
+
9
+ - 冻结 dossier 中的真实问题重述、双方钢人、共同基础、真正分歧和关键变量;
10
+ - 用户对唯一关键问题的原始回答;
11
+ - 在回答后新出现、且按 evidence gate 验证过的决定性事实。
12
+
13
+ 不得因用户回答偏向某一边而倒改 dossier、降低证据标准或重写最强反方。新事实与冻结分析冲突时,在 decision 中明确记录偏差及影响。
14
+
15
+ ## 2. 选择一种明确判断
16
+
17
+ `decision_type` 必须是:
18
+
19
+ - `recommend`:建议选择某方案;
20
+ - `reject`:建议不选择当前方案;
21
+ - `conditional`:满足明确条件 C 时选择 X,否则选择 Y;
22
+ - `defer-for-evidence`:暂缓判断,直到取得会改变结论的证据 E。
23
+
24
+ `defer-for-evidence` 只能用于关键证据真实缺失且不同结果会翻转结论的情况,并必须写明证据、责任人、取得方法、截止时点和判断阈值。它不是回避判断的默认出口。
25
+
26
+ ## 3. 写出决定性理由
27
+
28
+ 把用户回答连接到关键变量和结论:
29
+
30
+ ```text
31
+ 用户回答 → 关键变量取值/优先级 → 哪个钢人的成立条件更满足 → 明确判断
32
+ ```
33
+
34
+ 理由应当针对这个用户的目标、约束、时间尺度与风险,而不是任何人都能套用的通用建议。
35
+
36
+ ## 4. 正面处理最强反方
37
+
38
+ 必须指出:
39
+
40
+ - 最强反方真正说对了什么;
41
+ - 为什么它仍不足以赢得当前判断;
42
+ - 在什么新条件下它会反转当前结论。
43
+
44
+ 不得用弱化版本、稻草人或忽略反方的方式宣布胜利。
45
+
46
+ ## 5. 转化为可验证行动
47
+
48
+ 下一步行动至少包含:
49
+
50
+ | 动作 | 责任人 | 时机/截止 | 完成证据 |
51
+ |---|---|---|---|
52
+
53
+ 行动必须能直接推进当前决策,不写“持续关注”“综合考虑”“加强沟通”等不可验证口号。需要试验时,写清样本、周期、指标和停止条件。
54
+
55
+ ## 6. 标注反转条件与置信度
56
+
57
+ 列出会改变结论的事实、阈值或用户偏好变化。置信度使用 `高 | 中 | 低`,并说明剩余不确定性来自哪里;不得用置信度代替证据。
58
+
59
+ ## 7. 反不粘锅门禁
60
+
61
+ 以下表达不能充当最终结论:
62
+
63
+ - “两边都有道理”;
64
+ - “具体情况具体分析”;
65
+ - “你可以综合考虑”;
66
+ - “最终还是看你自己”;
67
+ - 只重复利弊而不选择、不设条件也不定义证据门槛。
68
+
69
+ 这些句子可以作为局部限定,但 decision 的第一段必须让读者明确知道现在该做什么、不要做什么,或满足什么条件后做什么。