@nimiplatform/nimi-coding 0.2.8 → 0.3.1

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 (206) hide show
  1. package/CHANGELOG.md +10 -90
  2. package/CONTRIBUTING.md +5 -34
  3. package/README.md +47 -350
  4. package/README.zh-CN.md +33 -287
  5. package/cli/commands/start.mjs +48 -688
  6. package/cli/commands/validate-spec-audit.mjs +1 -5
  7. package/cli/commands/validate-spec-governance.mjs +20 -0
  8. package/cli/constants.mjs +9 -417
  9. package/cli/help.mjs +28 -145
  10. package/cli/index.mjs +5 -33
  11. package/cli/lib/blueprint-audit.mjs +5 -12
  12. package/cli/lib/bootstrap.mjs +0 -9
  13. package/cli/lib/contracts.mjs +0 -163
  14. package/cli/lib/doctor.mjs +155 -10
  15. package/cli/lib/entrypoints.mjs +63 -167
  16. package/cli/lib/internal/contracts-loaders.mjs +0 -85
  17. package/cli/lib/internal/contracts-parse.mjs +84 -520
  18. package/cli/lib/internal/governance/ai/check-agents-freshness.mjs +13 -8
  19. package/cli/lib/internal/surface-taxonomy-validators.mjs +316 -66
  20. package/cli/lib/internal/validators-shared.mjs +0 -16
  21. package/cli/lib/internal/validators-spec-helpers.mjs +7 -140
  22. package/cli/lib/internal/validators-spec.mjs +103 -342
  23. package/cli/lib/shared.mjs +1 -42
  24. package/cli/lib/validators.mjs +0 -48
  25. package/cli/seeds/seed-policy.yaml +0 -3
  26. package/config/bootstrap.yaml +4 -4
  27. package/config/spec-generation-inputs.yaml +6 -12
  28. package/contracts/domain-admission.schema.yaml +3 -3
  29. package/contracts/migration-inventory.schema.yaml +12 -75
  30. package/contracts/negative-fixtures.yaml +19 -99
  31. package/contracts/placement-contract.schema.yaml +49 -78
  32. package/contracts/projection-edge.schema.yaml +37 -121
  33. package/contracts/shared-enums.yaml +4 -8
  34. package/contracts/spec-generation-inputs.schema.yaml +15 -112
  35. package/contracts/spec-layout.schema.yaml +32 -0
  36. package/contracts/surface-taxonomy.schema.yaml +43 -94
  37. package/contracts/table-family.schema.yaml +1 -1
  38. package/contracts/tracked-output-admission.schema.yaml +13 -66
  39. package/methodology/core.yaml +33 -25
  40. package/methodology/four-closure-policy.yaml +18 -26
  41. package/methodology/role-separation-policy.yaml +21 -27
  42. package/methodology/spec-reconstruction.yaml +17 -34
  43. package/package.json +2 -4
  44. package/spec/_meta/spec-tree-model.yaml +5 -101
  45. package/spec/product-scope.yaml +25 -57
  46. package/adapters/README.md +0 -25
  47. package/adapters/claude/README.md +0 -89
  48. package/adapters/claude/profile.yaml +0 -70
  49. package/adapters/codex/README.md +0 -53
  50. package/adapters/codex/profile.yaml +0 -78
  51. package/adapters/oh-my-codex/README.md +0 -184
  52. package/adapters/oh-my-codex/profile.yaml +0 -46
  53. package/cli/commands/admit-high-risk-decision.mjs +0 -108
  54. package/cli/commands/audit-sweep.mjs +0 -364
  55. package/cli/commands/closeout.mjs +0 -186
  56. package/cli/commands/decide-high-risk-execution.mjs +0 -124
  57. package/cli/commands/handoff.mjs +0 -123
  58. package/cli/commands/ingest-high-risk-execution.mjs +0 -95
  59. package/cli/commands/review-high-risk-execution.mjs +0 -95
  60. package/cli/commands/sweep-design.mjs +0 -295
  61. package/cli/commands/sweep.mjs +0 -22
  62. package/cli/commands/topic-formatters.mjs +0 -382
  63. package/cli/commands/topic-goal.mjs +0 -33
  64. package/cli/commands/topic-options-shared.mjs +0 -27
  65. package/cli/commands/topic-options-workflow.mjs +0 -767
  66. package/cli/commands/topic-options.mjs +0 -626
  67. package/cli/commands/topic-runner.mjs +0 -169
  68. package/cli/commands/topic.mjs +0 -795
  69. package/cli/commands/validate-acceptance.mjs +0 -5
  70. package/cli/commands/validate-execution-packet.mjs +0 -5
  71. package/cli/commands/validate-orchestration-state.mjs +0 -5
  72. package/cli/commands/validate-prompt.mjs +0 -5
  73. package/cli/commands/validate-worker-output.mjs +0 -5
  74. package/cli/lib/adapter-profiles.mjs +0 -403
  75. package/cli/lib/audit-execution.mjs +0 -52
  76. package/cli/lib/audit-sweep-runtime/admissions.mjs +0 -508
  77. package/cli/lib/audit-sweep-runtime/audit-validity.mjs +0 -356
  78. package/cli/lib/audit-sweep-runtime/chunks.mjs +0 -697
  79. package/cli/lib/audit-sweep-runtime/claude-auditor.mjs +0 -658
  80. package/cli/lib/audit-sweep-runtime/closeout.mjs +0 -144
  81. package/cli/lib/audit-sweep-runtime/codex-auditor-evidence.mjs +0 -654
  82. package/cli/lib/audit-sweep-runtime/codex-auditor.mjs +0 -527
  83. package/cli/lib/audit-sweep-runtime/common.mjs +0 -341
  84. package/cli/lib/audit-sweep-runtime/coverage-quality.mjs +0 -172
  85. package/cli/lib/audit-sweep-runtime/evidence-assignment.mjs +0 -155
  86. package/cli/lib/audit-sweep-runtime/format.mjs +0 -57
  87. package/cli/lib/audit-sweep-runtime/ingest.mjs +0 -486
  88. package/cli/lib/audit-sweep-runtime/inventory-spec-chunks.mjs +0 -425
  89. package/cli/lib/audit-sweep-runtime/inventory.mjs +0 -798
  90. package/cli/lib/audit-sweep-runtime/ledger.mjs +0 -315
  91. package/cli/lib/audit-sweep-runtime/p0p1-profile.mjs +0 -101
  92. package/cli/lib/audit-sweep-runtime/remediation.mjs +0 -349
  93. package/cli/lib/audit-sweep-runtime/rerun.mjs +0 -129
  94. package/cli/lib/audit-sweep-runtime/risk-budget.mjs +0 -300
  95. package/cli/lib/audit-sweep-runtime/status.mjs +0 -62
  96. package/cli/lib/audit-sweep-runtime/validators-ledger.mjs +0 -215
  97. package/cli/lib/audit-sweep-runtime/validators.mjs +0 -797
  98. package/cli/lib/audit-sweep.mjs +0 -19
  99. package/cli/lib/authority-convergence.mjs +0 -720
  100. package/cli/lib/closeout.mjs +0 -732
  101. package/cli/lib/codex-sdk-runner.mjs +0 -76
  102. package/cli/lib/external-execution.mjs +0 -101
  103. package/cli/lib/handoff.mjs +0 -812
  104. package/cli/lib/high-risk-admission.mjs +0 -512
  105. package/cli/lib/high-risk-decision.mjs +0 -353
  106. package/cli/lib/high-risk-ingest.mjs +0 -321
  107. package/cli/lib/high-risk-review.mjs +0 -267
  108. package/cli/lib/internal/contracts-parse-high-risk.mjs +0 -131
  109. package/cli/lib/internal/contracts-validators.mjs +0 -399
  110. package/cli/lib/internal/doctor-bootstrap-surface.mjs +0 -406
  111. package/cli/lib/internal/doctor-delegated-surface.mjs +0 -256
  112. package/cli/lib/internal/doctor-finalize.mjs +0 -383
  113. package/cli/lib/internal/doctor-format.mjs +0 -286
  114. package/cli/lib/internal/doctor-inspectors.mjs +0 -327
  115. package/cli/lib/internal/doctor-state.mjs +0 -205
  116. package/cli/lib/internal/validators-artifacts.mjs +0 -515
  117. package/cli/lib/sweep-design-runtime/common.mjs +0 -246
  118. package/cli/lib/sweep-design-runtime/engine.mjs +0 -733
  119. package/cli/lib/sweep-design-runtime/fix-topic.mjs +0 -414
  120. package/cli/lib/sweep-design-runtime/lifecycle.mjs +0 -54
  121. package/cli/lib/sweep-design-runtime/results.mjs +0 -324
  122. package/cli/lib/sweep-design.mjs +0 -8
  123. package/cli/lib/topic-artifacts.mjs +0 -186
  124. package/cli/lib/topic-authority-coverage.mjs +0 -73
  125. package/cli/lib/topic-closeout.mjs +0 -560
  126. package/cli/lib/topic-common.mjs +0 -404
  127. package/cli/lib/topic-decisions.mjs +0 -332
  128. package/cli/lib/topic-draft-packets.mjs +0 -167
  129. package/cli/lib/topic-execution.mjs +0 -533
  130. package/cli/lib/topic-goal.mjs +0 -440
  131. package/cli/lib/topic-ledger.mjs +0 -281
  132. package/cli/lib/topic-lifecycle-artifacts.mjs +0 -173
  133. package/cli/lib/topic-root-validation.mjs +0 -288
  134. package/cli/lib/topic-runner-commands.mjs +0 -174
  135. package/cli/lib/topic-runner-deferral.mjs +0 -532
  136. package/cli/lib/topic-runner-stale-gates.mjs +0 -114
  137. package/cli/lib/topic-runner-validation.mjs +0 -138
  138. package/cli/lib/topic-runner.mjs +0 -727
  139. package/cli/lib/topic-scaffold.mjs +0 -252
  140. package/cli/lib/topic-waves.mjs +0 -403
  141. package/cli/lib/topic.mjs +0 -81
  142. package/config/audit-execution-artifacts.yaml +0 -20
  143. package/config/external-execution-artifacts.yaml +0 -16
  144. package/config/host-adapter.yaml +0 -30
  145. package/config/host-profile.yaml +0 -29
  146. package/config/installer-evidence.yaml +0 -31
  147. package/config/skill-installer.yaml +0 -23
  148. package/config/skill-manifest.yaml +0 -48
  149. package/config/skills.yaml +0 -30
  150. package/contracts/acceptance.schema.yaml +0 -16
  151. package/contracts/admission-checklist.schema.yaml +0 -15
  152. package/contracts/audit-chunk.schema.yaml +0 -123
  153. package/contracts/audit-closeout.schema.yaml +0 -51
  154. package/contracts/audit-finding.schema.yaml +0 -61
  155. package/contracts/audit-ledger.schema.yaml +0 -138
  156. package/contracts/audit-plan.schema.yaml +0 -138
  157. package/contracts/audit-remediation-map.schema.yaml +0 -52
  158. package/contracts/audit-rerun.schema.yaml +0 -31
  159. package/contracts/audit-sweep-result.yaml +0 -53
  160. package/contracts/authority-convergence-audit.schema.yaml +0 -19
  161. package/contracts/closeout.schema.yaml +0 -25
  162. package/contracts/decision-review.schema.yaml +0 -16
  163. package/contracts/doc-spec-audit-result.yaml +0 -19
  164. package/contracts/execution-packet.schema.yaml +0 -49
  165. package/contracts/external-host-compatibility.yaml +0 -22
  166. package/contracts/forbidden-shortcuts.catalog.yaml +0 -23
  167. package/contracts/high-risk-admission.schema.yaml +0 -23
  168. package/contracts/high-risk-execution-result.yaml +0 -20
  169. package/contracts/orchestration-state.schema.yaml +0 -41
  170. package/contracts/overflow-continuation.schema.yaml +0 -12
  171. package/contracts/packet.schema.yaml +0 -30
  172. package/contracts/pending-note.schema.yaml +0 -17
  173. package/contracts/prompt.schema.yaml +0 -12
  174. package/contracts/remediation.schema.yaml +0 -16
  175. package/contracts/result.schema.yaml +0 -24
  176. package/contracts/spec-reconstruction-result.yaml +0 -41
  177. package/contracts/sweep-design-result.yaml +0 -349
  178. package/contracts/topic-goal.schema.yaml +0 -87
  179. package/contracts/topic-run-ledger.schema.yaml +0 -72
  180. package/contracts/topic-step-decision.schema.yaml +0 -45
  181. package/contracts/topic.schema.yaml +0 -65
  182. package/contracts/true-close.schema.yaml +0 -15
  183. package/contracts/wave.schema.yaml +0 -29
  184. package/contracts/worker-output.schema.yaml +0 -15
  185. package/contracts/workflow-consumer.schema.yaml +0 -110
  186. package/methodology/audit-sweep-p0p1-recall.yaml +0 -45
  187. package/methodology/authority-convergence-policy.yaml +0 -42
  188. package/methodology/overflow-continuation-policy.yaml +0 -14
  189. package/methodology/skill-exchange-projection.yaml +0 -114
  190. package/methodology/skill-handoff.yaml +0 -34
  191. package/methodology/skill-installer-result.yaml +0 -27
  192. package/methodology/skill-installer-summary-projection.yaml +0 -181
  193. package/methodology/skill-runtime.yaml +0 -23
  194. package/methodology/spec-target-truth-profile.yaml +0 -46
  195. package/methodology/topic-lifecycle-report.yaml +0 -144
  196. package/methodology/topic-lifecycle.yaml +0 -37
  197. package/methodology/topic-naming-ontology.yaml +0 -21
  198. package/methodology/topic-ontology.yaml +0 -38
  199. package/methodology/topic-validation-policy.yaml +0 -9
  200. package/methodology/wave-dag-policy.yaml +0 -14
  201. package/spec/_meta/command-gating-matrix.yaml +0 -143
  202. package/spec/_meta/generate-drift-migration-checklist.yaml +0 -137
  203. package/spec/_meta/governance-routing-cutover-checklist.yaml +0 -35
  204. package/spec/_meta/phase2-impacted-surface-matrix.yaml +0 -44
  205. package/spec/_meta/spec-authority-cutover-readiness.yaml +0 -102
  206. package/spec/bootstrap-state.yaml +0 -99
package/cli/help.mjs CHANGED
@@ -1,157 +1,40 @@
1
1
  import { VERSION } from "./constants.mjs";
2
- import {
3
- localize,
4
- styleCommand,
5
- styleHeading,
6
- styleMuted,
7
- } from "./lib/ui.mjs";
2
+ import { localize, styleCommand, styleHeading, styleMuted } from "./lib/ui.mjs";
8
3
 
9
4
  export function helpText() {
10
- const lines = [
5
+ const commands = [
6
+ "nimicoding start [--yes]",
7
+ "nimicoding sync [--apply|--check|--dry-run] [--json]",
8
+ "nimicoding clear [--yes]",
9
+ "nimicoding doctor [--verbose|--json]",
10
+ "nimicoding blueprint-audit [--blueprint-root <path>] [--canonical-root <path>] [--json] [--write-local]",
11
+ "nimicoding validate-spec-tree [.nimi/spec]",
12
+ "nimicoding validate-spec-audit [.nimi/local/state/spec-generation/spec-generation-audit.yaml]",
13
+ "nimicoding classify-spec-tree --profile <profile-id> --root .nimi/spec [--emit <path>] [--json]",
14
+ "nimicoding generate-spec-migration-plan --profile <profile-id> --root .nimi/spec --emit .nimi/local/state/spec-surface/migration-plan.json [--json]",
15
+ "nimicoding validate-placement --profile <profile-id> --root .nimi/spec [--json]",
16
+ "nimicoding validate-table-family --profile <profile-id> --root .nimi/spec [--json]",
17
+ "nimicoding validate-projection-edges --profile <profile-id> --root .nimi/spec [--json]",
18
+ "nimicoding validate-guidance-bodies --profile <profile-id> --root .nimi/spec [--json]",
19
+ "nimicoding validate-domain-admission --profile <profile-id> --root .nimi/spec [--json]",
20
+ "nimicoding validate-tracked-output-admission --profile <profile-id> --root .nimi/spec [--json]",
21
+ "nimicoding validate-spec-governance --profile <profile-id> --scope <all|host-defined-scope>",
22
+ "nimicoding generate-spec-derived-docs --profile <profile-id> --scope <all|host-defined-scope> [--check]",
23
+ "nimicoding validate-ai-governance --profile <profile-id> --scope <all|agents-freshness|context-budget|structure-budget|high-risk-doc-metadata>",
24
+ ];
25
+
26
+ return [
11
27
  styleHeading(`nimicoding ${VERSION}`),
12
28
  "",
13
29
  localize("Usage:", "用法:"),
14
30
  ` ${styleCommand("nimicoding --help")}`,
15
31
  ` ${styleCommand("nimicoding --version")}`,
16
- ` ${styleCommand("nimicoding start")}`,
17
- ` ${styleCommand("nimicoding start --yes")}`,
18
- ` ${styleCommand("nimicoding start --host <generic|codex|claude|oh-my-codex>")}`,
19
- ` ${styleCommand("nimicoding clear")}`,
20
- ` ${styleCommand("nimicoding clear --yes")}`,
21
- ` ${styleCommand("nimicoding sync [--apply|--check|--dry-run] [--json]")}`,
22
- ` ${styleCommand("nimicoding topic create <slug> --justification <text> [--title <text>] [--json]")}`,
23
- ` ${styleCommand("nimicoding topic status [<topic-id>|<topic-path>] [--json]")}`,
24
- ` ${styleCommand("nimicoding topic run-next-step <topic-id> [--json]")}`,
25
- ` ${styleCommand("nimicoding topic run-ledger <init|record|build|status> <topic-id> --run-id <id> [--json]")}`,
26
- ` ${styleCommand("nimicoding topic-runner <step|run> <topic-id> --run-id <id> --adapter <codex|oh_my_codex|claude> [--execute-host] [--json]")}`,
27
- ` ${styleCommand("nimicoding topic validate [<topic-id>|<topic-path>] [--json]")}`,
28
- ` ${styleCommand("nimicoding topic validate graph <topic-id> [--json]")}`,
29
- ` ${styleCommand("nimicoding topic validate admission <topic-id> <wave-id> [--json]")}`,
30
- ` ${styleCommand("nimicoding topic wave add <topic-id> <wave-id> <slug> --goal <text> --owner-domain <text> [--dep <wave-id>] [--json]")}`,
31
- ` ${styleCommand("nimicoding topic wave select <topic-id> <wave-id> [--json]")}`,
32
- ` ${styleCommand("nimicoding topic wave admit <topic-id> <wave-id> [--json]")}`,
33
- ` ${styleCommand("nimicoding topic packet freeze <topic-id> --from <draft-path> [--json]")}`,
34
- ` ${styleCommand("nimicoding topic worker dispatch <topic-id> --packet <packet-id> [--json]")}`,
35
- ` ${styleCommand("nimicoding topic audit dispatch <topic-id> --packet <packet-id> [--json]")}`,
36
- ` ${styleCommand("nimicoding topic result record <topic-id> --kind <worker|implementation|audit|preflight|judgement> --verdict <PASS|NEEDS_REVISION|FAIL|OVERFLOW> --from <path> --verified-at <iso8601> [--json]")}`,
37
- ` ${styleCommand("nimicoding topic remediation open <topic-id> --kind <a|b|continuation|execution-state-closure> --reason <token> [--overflowed-packet <packet-id>] [--json]")}`,
38
- ` ${styleCommand("nimicoding topic overflow continue <topic-id> --packet <continuation-packet-id> --overflowed-packet <packet-id> --manager-judgement <text> --same-owner-domain [--json]")}`,
39
- ` ${styleCommand("nimicoding topic hold <topic-id> --reason <token> --summary <text> [--reopen-criteria <text>] [--close-trigger <text>] [--json]")}`,
40
- ` ${styleCommand("nimicoding topic resume <topic-id> --criteria-met <text> [--json]")}`,
41
- ` ${styleCommand("nimicoding topic validate closure <topic-id> <wave-id> [--json]")}`,
42
- ` ${styleCommand("nimicoding topic closeout wave <topic-id> <wave-id> --authority <open|closed|blocked> --semantic <open|closed|blocked> --consumer <open|closed|blocked> --drift-resistance <open|closed|blocked> --disposition <complete|partial|deferred> [--json]")}`,
43
- ` ${styleCommand("nimicoding topic true-close-audit <topic-id> --judgement <text> [--json]")}`,
44
- ` ${styleCommand("nimicoding topic closeout topic <topic-id> --authority <open|closed|blocked> --semantic <open|closed|blocked> --consumer <open|closed|blocked> --drift-resistance <open|closed|blocked> --disposition <complete|partial|deferred> [--json]")}`,
45
- ` ${styleCommand("nimicoding topic decision-review <topic-id> <slug> --decision <text> --replaced-scope <text> --active-replacement-scope <text> [--disposition <retired|superseded|unchanged>] [--target-wave <wave-id>] [--date <YYYY-MM-DD>] [--json]")}`,
46
- ` ${styleCommand("nimicoding doctor")}`,
47
- ` ${styleCommand("nimicoding doctor --verbose")}`,
48
- ` ${styleCommand("nimicoding doctor --json")}`,
49
- ` ${styleCommand("nimicoding blueprint-audit [--blueprint-root <path>] [--canonical-root <path>] [--json] [--write-local]")}`,
50
- ` ${styleCommand("nimicoding handoff --skill <skill-id>")}`,
51
- ` ${styleCommand("nimicoding handoff --skill <skill-id> --json")}`,
52
- ` ${styleCommand("nimicoding handoff --skill <skill-id> --prompt")}`,
53
- ` ${styleCommand("nimicoding sweep audit plan --root <dir> [--criteria <csv>] [--exclude <csv>] [--max-files <n>] [--sweep-id <id>] [--json]")}`,
54
- ` ${styleCommand("nimicoding sweep audit chunk dispatch --sweep-id <id> --chunk-id <chunk-id> --dispatched-at <iso8601> [--auditor <id>] [--json]")}`,
55
- ` ${styleCommand("nimicoding sweep audit chunk audit-codex --sweep-id <id> --chunk-id <chunk-id> --dispatched-at <iso8601> --verified-at <iso8601> --reviewed-at <iso8601> [--from-raw-output <ref>] [--timeout-ms <ms>] [--json]")}`,
56
- ` ${styleCommand("nimicoding sweep audit chunk audit-claude --sweep-id <id> --chunk-id <chunk-id> --dispatched-at <iso8601> --verified-at <iso8601> --reviewed-at <iso8601> [--from-raw-output <ref>] [--timeout-ms <ms>] [--json]")}`,
57
- ` ${styleCommand("nimicoding sweep audit chunk ingest --sweep-id <id> --chunk-id <chunk-id> --from <json> --verified-at <iso8601> [--json]")}`,
58
- ` ${styleCommand("nimicoding sweep audit chunk review --sweep-id <id> --chunk-id <chunk-id> --verdict <pass|fail> --reviewed-at <iso8601> [--summary <text>] [--json]")}`,
59
- ` ${styleCommand("nimicoding sweep audit chunk skip --sweep-id <id> --chunk-id <chunk-id> --reason <text> --skipped-at <iso8601> [--json]")}`,
60
- ` ${styleCommand("nimicoding sweep audit ledger build --sweep-id <id> [--verified-at <iso8601>] [--json]")}`,
61
- ` ${styleCommand("nimicoding sweep audit remediation-map build --sweep-id <id> [--max-findings <n>] [--verified-at <iso8601>] [--json]")}`,
62
- ` ${styleCommand("nimicoding sweep audit finding resolve --sweep-id <id> --finding-id <id> --disposition <remediated|accepted-risk|false-positive|deferred-backlog> --from <json> --verified-at <iso8601> [--json]")}`,
63
- ` ${styleCommand("nimicoding sweep audit closeout summary --sweep-id <id> --verified-at <iso8601> [--json]")}`,
64
- ` ${styleCommand("nimicoding sweep audit status --sweep-id <id> [--json]")}`,
65
- ` ${styleCommand("nimicoding sweep design intake --sweep-id <id> [--run-id <id>] [--json]")}`,
66
- ` ${styleCommand("nimicoding sweep design packet-build --run-id <id> --packet-id <id> (--finding-id <id>|--finding-ids <csv>) [--explicit-question <text>] [--prior-design-state-refs <csv>] [--prior-design-state-marker <state>] [--current-cluster-refs <csv>] [--current-wave-refs <csv>] [--authority-only] [--json]")}`,
67
- ` ${styleCommand("nimicoding sweep design packet-build-batch --run-id <id> --batch-size <n> [--finding-ids <csv>] [--packet-prefix <id>] [--manifest-id <id>] [--explicit-question <text>] [--json]")}`,
68
- ` ${styleCommand("nimicoding sweep design auditor-prompt --run-id <id> --packet-id <id> [--json]")}`,
69
- ` ${styleCommand("nimicoding sweep design result-ingest --run-id <id> --from <yaml> [--mode <focused|all>] [--json]")}`,
70
- ` ${styleCommand("nimicoding sweep design ledger-validate --run-id <id> [--json]")}`,
71
- ` ${styleCommand("nimicoding sweep design finalize --run-id <id> [--json]")}`,
72
- ` ${styleCommand("nimicoding sweep design wave-plan --run-id <id> --topic-id <id> [--json]")}`,
73
- ` ${styleCommand("nimicoding sweep design fix-topic --run-id <id> [--slug <slug>] [--title <title>] [--admit-first-wave|--admit-wave-id <id>] [--json]")}`,
74
- ` ${styleCommand("nimicoding admit-high-risk-decision --from <json> --admitted-at <iso8601> [--json] [--write-local]")}`,
75
- ` ${styleCommand("nimicoding closeout --skill <skill-id> --outcome <completed|blocked|failed> --verified-at <iso8601>")}`,
76
- ` ${styleCommand("nimicoding closeout --skill <skill-id> --outcome <completed|blocked|failed> --verified-at <iso8601> --json")}`,
77
- ` ${styleCommand("nimicoding closeout --skill <skill-id> --outcome <completed|blocked|failed> --verified-at <iso8601> --write-local")}`,
78
- ` ${styleCommand("nimicoding closeout --from <json> [--json] [--write-local]")}`,
79
- ` ${styleCommand("nimicoding decide-high-risk-execution --from <json> --acceptance <path> --verified-at <iso8601> [--json] [--write-local]")}`,
80
- ` ${styleCommand("nimicoding ingest-high-risk-execution --from <json> [--json] [--write-local]")}`,
81
- ` ${styleCommand("nimicoding review-high-risk-execution --from <json> [--json] [--write-local]")}`,
82
- ` ${styleCommand("nimicoding validate-execution-packet <path>")}`,
83
- ` ${styleCommand("nimicoding validate-orchestration-state <path>")}`,
84
- ` ${styleCommand("nimicoding validate-spec-governance --profile <profile-id> --scope <all|host-defined-scope>")}`,
85
- ` ${styleCommand("nimicoding validate-spec-audit [.nimi/spec/_meta/spec-generation-audit.yaml]")}`,
86
- ` ${styleCommand("nimicoding validate-spec-tree [.nimi/spec]")}`,
87
- ` ${styleCommand("nimicoding classify-spec-tree --profile <profile-id> --root .nimi/spec [--emit <path>] [--json]")}`,
88
- ` ${styleCommand("nimicoding generate-spec-migration-plan --profile <profile-id> --root .nimi/spec --emit .nimi/local/state/spec-surface/migration-plan.json [--json]")}`,
89
- ` ${styleCommand("nimicoding validate-placement --profile <profile-id> --root .nimi/spec [--json]")}`,
90
- ` ${styleCommand("nimicoding validate-table-family --profile <profile-id> --root .nimi/spec [--json]")}`,
91
- ` ${styleCommand("nimicoding validate-projection-edges --profile <profile-id> --root .nimi/spec [--json]")}`,
92
- ` ${styleCommand("nimicoding validate-guidance-bodies --profile <profile-id> --root .nimi/spec [--json]")}`,
93
- ` ${styleCommand("nimicoding validate-domain-admission --profile <profile-id> --root .nimi/spec [--json]")}`,
94
- ` ${styleCommand("nimicoding validate-tracked-output-admission --profile <profile-id> --root .nimi/spec [--json]")}`,
95
- ` ${styleCommand("nimicoding generate-spec-derived-docs --profile <profile-id> --scope <all|host-defined-scope> [--check]")}`,
96
- ` ${styleCommand("nimicoding validate-ai-governance --profile <profile-id> --scope <all|agents-freshness|context-budget|structure-budget|high-risk-doc-metadata>")}`,
97
- ` ${styleCommand("nimicoding validate-prompt <path>")}`,
98
- ` ${styleCommand("nimicoding validate-worker-output <path>")}`,
99
- ` ${styleCommand("nimicoding validate-acceptance <path>")}`,
32
+ ...commands.map((command) => ` ${styleCommand(command)}`),
100
33
  "",
101
- localize("Notes:", "说明:"),
102
- styleMuted(localize(
103
- " - `nimicoding topic` currently implements root control, Wave 2 graph/admission/freeze, Wave 3 dispatch/result/decision-review, Wave 4 remediation/overflow control, Wave 5 closure/true-close gates, Wave 6 read-only golden-fixture audit, and pending hold/resume lifecycle control",
104
- " - `nimicoding topic` 当前实现 root control、Wave 2 graph/admission/freeze、Wave 3 dispatch/result/decision-review、Wave 4 remediation/overflow control、Wave 5 closure/true-close gate、Wave 6 只读 golden fixture 审计,以及 pending hold/resume 生命周期控制",
105
- )),
106
- styleMuted(localize(
107
- " - `topic create` requires an explicit justification so topic entry does not silently become the default path",
108
- " - `topic create` 要求显式 justification,避免 topic entry 静默变成默认路径",
109
- )),
110
- styleMuted(localize(
111
- " - `nimicoding start` is the primary entrypoint; it sets up the project and prepares the next AI task",
112
- " - `nimicoding start` 是主入口;它会准备项目并为下一项 AI 任务做好准备",
113
- )),
114
34
  styleMuted(localize(
115
- " - interactive `nimicoding start` describes one option, asks once, and applies one option at a time",
116
- " - 交互式 `nimicoding start` 会逐项说明、逐项确认、逐项执行",
35
+ "Nimi Coding defines methodology, canonical spec construction, and deterministic governance checks. AI task planning and execution belong to the host.",
36
+ "Nimi Coding 只定义方法论、canonical spec 构建和确定性治理校验;AI 任务规划与执行由宿主负责。",
117
37
  )),
118
- styleMuted(localize(
119
- " - `nimicoding start` can also choose a target host and print a short paste-ready prompt directly in the terminal",
120
- " - `nimicoding start` 还可以选择目标 Host,并直接在终端输出一段可粘贴的短 prompt",
121
- )),
122
- styleMuted(localize(
123
- " - `nimicoding clear` removes only managed AI blocks plus package-owned .nimi/config, .nimi/contracts, and .nimi/methodology files that still match the packaged seed",
124
- " - `nimicoding clear` 只会移除托管 AI 区块,以及仍与包内 seed 完全一致的 .nimi/config、.nimi/contracts、.nimi/methodology 文件",
125
- )),
126
- styleMuted(localize(
127
- " - `nimicoding clear` does not remove .nimi/spec, .nimi/local, or .nimi/cache for you",
128
- " - `nimicoding clear` 不会替你移除 .nimi/spec、.nimi/local 或 .nimi/cache",
129
- )),
130
- styleMuted(localize(
131
- " - `nimicoding sync` is the package-owned seed projection contract: --apply rewrites drifted package_canonical files and seeds missing entries; --check exits non-zero on package_canonical drift or any missing seed; host-owned seed entries are seeded once and never overwritten",
132
- " - `nimicoding sync` 是 package 拥有的 seed 投影契约:--apply 会刷新 drifted package_canonical 文件并补齐缺失 seed;--check 在 package_canonical drift 或 seed 缺失时退出非零;host-owned seed 条目仅初始化一次,之后永不覆盖",
133
- )),
134
- styleMuted(localize(
135
- " - `nimicoding doctor` shows the user-facing summary; add `--verbose` for internal contract detail",
136
- " - `nimicoding doctor` 默认显示用户视图;加 `--verbose` 可查看内部契约细节",
137
- )),
138
- styleMuted(localize(
139
- " - `nimicoding blueprint-audit` is an optional benchmark parity check when a blueprint root is declared",
140
- " - `nimicoding blueprint-audit` 是可选的 benchmark 等价检查,仅在声明 blueprint root 时使用",
141
- )),
142
- styleMuted(localize(
143
- " - `nimicoding validate-spec-audit` checks whether the generated canonical files carry explicit file-level evidence, inference, and unresolved-gap tracking",
144
- " - `nimicoding validate-spec-audit` 用于检查生成的 canonical 文件是否携带显式的逐文件证据、推断来源和未解决缺口记录",
145
- )),
146
- styleMuted(localize(
147
- " - `nimicoding handoff --prompt` writes local prompt/json refs under .nimi/local/handoff/",
148
- " - `nimicoding handoff --prompt` 会把本地 prompt/json ref 写入 .nimi/local/handoff/",
149
- )),
150
- styleMuted(localize(
151
- " - use `--lang zh` or `--lang en` to switch human-readable output",
152
- " - 使用 `--lang zh` 或 `--lang en` 切换人类可读输出语言",
153
- )),
154
- ];
155
-
156
- return `${lines.join("\n")}\n`;
38
+ "",
39
+ ].join("\n");
157
40
  }
package/cli/index.mjs CHANGED
@@ -1,56 +1,31 @@
1
1
  import { runBlueprintAudit } from "./commands/blueprint-audit.mjs";
2
+ import { runClassifySpecTree } from "./commands/classify-spec-tree.mjs";
2
3
  import { runClear } from "./commands/clear.mjs";
3
- import { runCloseout } from "./commands/closeout.mjs";
4
- import { runAdmitHighRiskDecision } from "./commands/admit-high-risk-decision.mjs";
5
- import { runSweep } from "./commands/sweep.mjs";
6
- import { runDecideHighRiskExecution } from "./commands/decide-high-risk-execution.mjs";
7
4
  import { runDoctor } from "./commands/doctor.mjs";
8
- import { runHandoff } from "./commands/handoff.mjs";
9
- import { runIngestHighRiskExecution } from "./commands/ingest-high-risk-execution.mjs";
10
- import { runReviewHighRiskExecution } from "./commands/review-high-risk-execution.mjs";
11
- import { runStart } from "./commands/start.mjs";
12
- import { runSync } from "./commands/sync.mjs";
13
- import { runTopic } from "./commands/topic.mjs";
14
- import { runTopicRunnerCommand } from "./commands/topic-runner.mjs";
15
- import { runValidateAcceptance } from "./commands/validate-acceptance.mjs";
16
5
  import { runGenerateSpecDerivedDocs } from "./commands/generate-spec-derived-docs.mjs";
17
6
  import { runGenerateSpecMigrationPlan } from "./commands/generate-spec-migration-plan.mjs";
18
- import { runClassifySpecTree } from "./commands/classify-spec-tree.mjs";
7
+ import { runStart } from "./commands/start.mjs";
8
+ import { runSync } from "./commands/sync.mjs";
19
9
  import { runValidateAiGovernance } from "./commands/validate-ai-governance.mjs";
20
10
  import { runValidateDomainAdmission } from "./commands/validate-domain-admission.mjs";
21
- import { runValidateExecutionPacket } from "./commands/validate-execution-packet.mjs";
22
11
  import { runValidateGuidanceBodies } from "./commands/validate-guidance-bodies.mjs";
23
- import { runValidateOrchestrationState } from "./commands/validate-orchestration-state.mjs";
24
12
  import { runValidatePlacement } from "./commands/validate-placement.mjs";
25
13
  import { runValidateProjectionEdges } from "./commands/validate-projection-edges.mjs";
26
- import { runValidateSpecGovernance } from "./commands/validate-spec-governance.mjs";
27
14
  import { runValidateSpecAudit } from "./commands/validate-spec-audit.mjs";
15
+ import { runValidateSpecGovernance } from "./commands/validate-spec-governance.mjs";
28
16
  import { runValidateSpecTree } from "./commands/validate-spec-tree.mjs";
29
17
  import { runValidateTableFamily } from "./commands/validate-table-family.mjs";
30
18
  import { runValidateTrackedOutputAdmission } from "./commands/validate-tracked-output-admission.mjs";
31
- import { runValidatePrompt } from "./commands/validate-prompt.mjs";
32
- import { runValidateWorkerOutput } from "./commands/validate-worker-output.mjs";
33
19
  import { helpText } from "./help.mjs";
34
- import { configureCliUi, localize, parseGlobalUiOptions } from "./lib/ui.mjs";
35
20
  import { VERSION } from "./constants.mjs";
21
+ import { configureCliUi, localize, parseGlobalUiOptions } from "./lib/ui.mjs";
36
22
 
37
23
  const COMMANDS = {
38
24
  start: runStart,
39
25
  sync: runSync,
40
- topic: runTopic,
41
- "topic-runner": runTopicRunnerCommand,
42
26
  clear: runClear,
43
27
  doctor: runDoctor,
44
28
  "blueprint-audit": runBlueprintAudit,
45
- handoff: runHandoff,
46
- closeout: runCloseout,
47
- sweep: runSweep,
48
- "admit-high-risk-decision": runAdmitHighRiskDecision,
49
- "decide-high-risk-execution": runDecideHighRiskExecution,
50
- "ingest-high-risk-execution": runIngestHighRiskExecution,
51
- "review-high-risk-execution": runReviewHighRiskExecution,
52
- "validate-execution-packet": runValidateExecutionPacket,
53
- "validate-orchestration-state": runValidateOrchestrationState,
54
29
  "validate-spec-governance": runValidateSpecGovernance,
55
30
  "validate-spec-audit": runValidateSpecAudit,
56
31
  "validate-spec-tree": runValidateSpecTree,
@@ -64,9 +39,6 @@ const COMMANDS = {
64
39
  "generate-spec-derived-docs": runGenerateSpecDerivedDocs,
65
40
  "generate-spec-migration-plan": runGenerateSpecMigrationPlan,
66
41
  "validate-ai-governance": runValidateAiGovernance,
67
- "validate-prompt": runValidatePrompt,
68
- "validate-worker-output": runValidateWorkerOutput,
69
- "validate-acceptance": runValidateAcceptance,
70
42
  };
71
43
 
72
44
  export async function runCli(args) {
@@ -2,7 +2,7 @@ import { mkdir, readFile, readdir, writeFile } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  import YAML from "yaml";
4
4
 
5
- import { loadBlueprintReference, loadSpecGenerationInputsConfig, loadSpecTreeModelContract } from "./contracts.mjs";
5
+ import { loadBlueprintReference, loadSpecGenerationInputsConfig } from "./contracts.mjs";
6
6
  import { pathExists } from "./fs-helpers.mjs";
7
7
  import {
8
8
  localize,
@@ -11,8 +11,8 @@ import {
11
11
  styleStatus,
12
12
  } from "./ui.mjs";
13
13
 
14
- const BLUEPRINT_AUDIT_CONTRACT_VERSION = "nimicoding.blueprint-audit.v1";
15
- const DEFAULT_REPORT_PATH = ".nimi/local/report/blueprint-equivalence-audit.json";
14
+ const BLUEPRINT_AUDIT_CONTRACT_VERSION = "nimicoding.blueprint-audit.v2";
15
+ const DEFAULT_REPORT_PATH = ".nimi/local/state/spec-generation/blueprint-equivalence-audit.json";
16
16
 
17
17
  async function collectFiles(rootPath, relativePrefix = "") {
18
18
  const info = await pathExists(rootPath);
@@ -186,12 +186,11 @@ async function compareRuleIds(blueprintAbsoluteRoot, canonicalAbsoluteRoot, pres
186
186
  }
187
187
 
188
188
  export async function buildBlueprintAuditPayload(projectRoot, options = {}) {
189
- const specTreeModel = await loadSpecTreeModelContract(projectRoot);
190
189
  const blueprintReference = await loadBlueprintReference(projectRoot);
191
190
  const specGenerationInputs = await loadSpecGenerationInputsConfig(projectRoot);
192
191
 
193
192
  const canonicalRoot = options.canonicalRoot
194
- ?? specTreeModel.canonicalRoot
193
+ ?? specGenerationInputs.canonicalTargetRoot
195
194
  ?? ".nimi/spec";
196
195
  const blueprintRoot = options.blueprintRoot
197
196
  ?? blueprintReference.root
@@ -246,7 +245,7 @@ export async function buildBlueprintAuditPayload(projectRoot, options = {}) {
246
245
  const reportPath = path.join(projectRoot, DEFAULT_REPORT_PATH);
247
246
  const nextSteps = [];
248
247
  if (missingDomains.length > 0 || kernelMarkdown.missing.length > 0 || kernelTables.missing.length > 0 || !indexPresent) {
249
- nextSteps.push("Copy the missing blueprint structure into `/.nimi/spec/**` before attempting authority cutover.");
248
+ nextSteps.push("Resolve the missing blueprint structure under `/.nimi/spec/**` before claiming equivalence.");
250
249
  }
251
250
  if (domainGuides.missing.length > 0) {
252
251
  nextSteps.push("Thin and map domain guides only after kernel coverage is in place.");
@@ -263,12 +262,6 @@ export async function buildBlueprintAuditPayload(projectRoot, options = {}) {
263
262
  blueprintRoot,
264
263
  canonicalRoot,
265
264
  blueprintReference,
266
- specTreeModel: {
267
- ok: specTreeModel.ok,
268
- profile: specTreeModel.profile,
269
- canonicalRoot: specTreeModel.canonicalRoot,
270
- authorityMode: specTreeModel.authorityMode,
271
- },
272
265
  specGenerationInputs: {
273
266
  ok: specGenerationInputs.ok,
274
267
  mode: specGenerationInputs.mode,
@@ -189,15 +189,6 @@ export async function inspectBootstrapCompatibility(projectRoot) {
189
189
  const contractId = readYamlScalar(bootstrapConfigText, "bootstrap_contract");
190
190
  const contractVersion = readYamlScalar(bootstrapConfigText, "bootstrap_contract_version");
191
191
 
192
- if (!contractId && !contractVersion) {
193
- return {
194
- status: initializedBy === PACKAGE_NAME ? "legacy" : "unsupported",
195
- initializedBy,
196
- contractId,
197
- contractVersion,
198
- };
199
- }
200
-
201
192
  if (initializedBy !== PACKAGE_NAME) {
202
193
  return {
203
194
  status: "unsupported",
@@ -1,52 +1,13 @@
1
- import path from "node:path";
2
- import { fileURLToPath } from "node:url";
3
-
4
1
  import {
5
2
  loadBlueprintReference as loadBlueprintReferenceInternal,
6
- loadCommandGatingMatrix as loadCommandGatingMatrixInternal,
7
- loadAuditSweepContract as loadAuditSweepContractInternal,
8
- loadDocSpecAuditContract as loadDocSpecAuditContractInternal,
9
- loadExternalHostCompatibilityContract as loadExternalHostCompatibilityContractInternal,
10
- loadHighRiskAdmissionContract as loadHighRiskAdmissionContractInternal,
11
- loadHighRiskExecutionContract as loadHighRiskExecutionContractInternal,
12
- loadHighRiskSchemaContracts as loadHighRiskSchemaContractsInternal,
13
3
  loadSpecGenerationAuditContract as loadSpecGenerationAuditContractInternal,
14
4
  loadSpecGenerationInputsConfig as loadSpecGenerationInputsConfigInternal,
15
5
  loadSpecGenerationInputsContract as loadSpecGenerationInputsContractInternal,
16
- loadSpecReconstructionContract as loadSpecReconstructionContractInternal,
17
- loadSpecTreeModelContract as loadSpecTreeModelContractInternal,
18
6
  } from "./internal/contracts-loaders.mjs";
19
- import { readTextIfFile } from "./fs-helpers.mjs";
20
- import { parseYamlText } from "./yaml-helpers.mjs";
21
- import { matchCommandGatingRule } from "./internal/contracts-parse.mjs";
22
- import {
23
- validateAuditSweepSummary as validateAuditSweepSummaryInternal,
24
- validateDocSpecAuditSummary as validateDocSpecAuditSummaryInternal,
25
- validateHighRiskAdmissionRecord as validateHighRiskAdmissionRecordInternal,
26
- validateHighRiskAdmissionsSpec as validateHighRiskAdmissionsSpecInternal,
27
- validateHighRiskExecutionSummary as validateHighRiskExecutionSummaryInternal,
28
- validateSpecReconstructionSummary as validateSpecReconstructionSummaryInternal,
29
- } from "./internal/contracts-validators.mjs";
30
-
31
- const PACKAGE_REF_PREFIX = "package://@nimiplatform/nimi-coding/";
32
- const PACKAGE_ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "..", "..");
33
-
34
- export function findCommandGatingRule(commandGatingMatrix, command, skillId = null) {
35
- return matchCommandGatingRule(commandGatingMatrix, command, skillId);
36
- }
37
-
38
- export function loadSpecReconstructionContract(projectRoot) {
39
- return loadSpecReconstructionContractInternal(projectRoot);
40
- }
41
-
42
- export function loadSpecTreeModelContract(projectRoot) {
43
- return loadSpecTreeModelContractInternal(projectRoot);
44
- }
45
7
 
46
8
  export function loadSpecGenerationInputsContract(projectRoot) {
47
9
  return loadSpecGenerationInputsContractInternal(projectRoot);
48
10
  }
49
-
50
11
  export function loadSpecGenerationAuditContract(projectRoot) {
51
12
  return loadSpecGenerationAuditContractInternal(projectRoot);
52
13
  }
@@ -55,130 +16,6 @@ export function loadSpecGenerationInputsConfig(projectRoot) {
55
16
  return loadSpecGenerationInputsConfigInternal(projectRoot);
56
17
  }
57
18
 
58
- export function loadCommandGatingMatrix(projectRoot) {
59
- return loadCommandGatingMatrixInternal(projectRoot);
60
- }
61
-
62
19
  export function loadBlueprintReference(projectRoot) {
63
20
  return loadBlueprintReferenceInternal(projectRoot);
64
21
  }
65
-
66
- export function loadDocSpecAuditContract(projectRoot) {
67
- return loadDocSpecAuditContractInternal(projectRoot);
68
- }
69
-
70
- export function loadAuditSweepContract(projectRoot) {
71
- return loadAuditSweepContractInternal(projectRoot);
72
- }
73
-
74
- export function loadHighRiskExecutionContract(projectRoot) {
75
- return loadHighRiskExecutionContractInternal(projectRoot);
76
- }
77
-
78
- export function loadHighRiskAdmissionContract(projectRoot) {
79
- return loadHighRiskAdmissionContractInternal(projectRoot);
80
- }
81
-
82
- export function loadExternalHostCompatibilityContract(projectRoot) {
83
- return loadExternalHostCompatibilityContractInternal(projectRoot);
84
- }
85
-
86
- export function loadHighRiskSchemaContracts(projectRoot) {
87
- return loadHighRiskSchemaContractsInternal(projectRoot);
88
- }
89
-
90
- export function validateSpecReconstructionSummary(summary, contract, verifiedAt) {
91
- return validateSpecReconstructionSummaryInternal(summary, contract, verifiedAt);
92
- }
93
-
94
- export function validateDocSpecAuditSummary(summary, contract, verifiedAt) {
95
- return validateDocSpecAuditSummaryInternal(summary, contract, verifiedAt);
96
- }
97
-
98
- export function validateAuditSweepSummary(summary, contract, verifiedAt) {
99
- return validateAuditSweepSummaryInternal(summary, contract, verifiedAt);
100
- }
101
-
102
- export function validateHighRiskExecutionSummary(summary, contract, verifiedAt) {
103
- return validateHighRiskExecutionSummaryInternal(summary, contract, verifiedAt);
104
- }
105
-
106
- export function validateHighRiskAdmissionRecord(record, contract) {
107
- return validateHighRiskAdmissionRecordInternal(record, contract);
108
- }
109
-
110
- export function validateHighRiskAdmissionsSpec(spec, contract) {
111
- return validateHighRiskAdmissionsSpecInternal(spec, contract);
112
- }
113
-
114
- async function loadYamlWithFallback(projectRoot, primaryRef, fallbackRef) {
115
- const primaryText = await readTextIfFile(path.join(projectRoot, primaryRef));
116
- if (primaryText !== null) {
117
- return {
118
- path: primaryRef,
119
- text: primaryText,
120
- data: parseYamlText(primaryText),
121
- };
122
- }
123
-
124
- const fallbackText = await readTextIfFile(path.join(PACKAGE_ROOT, fallbackRef));
125
- return {
126
- path: `${PACKAGE_REF_PREFIX}${fallbackRef}`,
127
- text: fallbackText,
128
- data: parseYamlText(fallbackText),
129
- };
130
- }
131
-
132
- export async function loadTopicRuntimeContracts(projectRoot) {
133
- const [
134
- topicSchema,
135
- waveSchema,
136
- packetSchema,
137
- resultSchema,
138
- closeoutSchema,
139
- remediationSchema,
140
- decisionReviewSchema,
141
- pendingNoteSchema,
142
- topicStepDecisionSchema,
143
- topicRunLedgerSchema,
144
- forbiddenShortcutsCatalog,
145
- lifecycleReport,
146
- fourClosurePolicy,
147
- validationPolicy,
148
- authorityConvergencePolicy,
149
- ] = await Promise.all([
150
- loadYamlWithFallback(projectRoot, ".nimi/contracts/topic.schema.yaml", "contracts/topic.schema.yaml"),
151
- loadYamlWithFallback(projectRoot, ".nimi/contracts/wave.schema.yaml", "contracts/wave.schema.yaml"),
152
- loadYamlWithFallback(projectRoot, ".nimi/contracts/packet.schema.yaml", "contracts/packet.schema.yaml"),
153
- loadYamlWithFallback(projectRoot, ".nimi/contracts/result.schema.yaml", "contracts/result.schema.yaml"),
154
- loadYamlWithFallback(projectRoot, ".nimi/contracts/closeout.schema.yaml", "contracts/closeout.schema.yaml"),
155
- loadYamlWithFallback(projectRoot, ".nimi/contracts/remediation.schema.yaml", "contracts/remediation.schema.yaml"),
156
- loadYamlWithFallback(projectRoot, ".nimi/contracts/decision-review.schema.yaml", "contracts/decision-review.schema.yaml"),
157
- loadYamlWithFallback(projectRoot, ".nimi/contracts/pending-note.schema.yaml", "contracts/pending-note.schema.yaml"),
158
- loadYamlWithFallback(projectRoot, ".nimi/contracts/topic-step-decision.schema.yaml", "contracts/topic-step-decision.schema.yaml"),
159
- loadYamlWithFallback(projectRoot, ".nimi/contracts/topic-run-ledger.schema.yaml", "contracts/topic-run-ledger.schema.yaml"),
160
- loadYamlWithFallback(projectRoot, ".nimi/contracts/forbidden-shortcuts.catalog.yaml", "contracts/forbidden-shortcuts.catalog.yaml"),
161
- loadYamlWithFallback(projectRoot, ".nimi/methodology/topic-lifecycle-report.yaml", "methodology/topic-lifecycle-report.yaml"),
162
- loadYamlWithFallback(projectRoot, ".nimi/methodology/four-closure-policy.yaml", "methodology/four-closure-policy.yaml"),
163
- loadYamlWithFallback(projectRoot, ".nimi/methodology/topic-validation-policy.yaml", "methodology/topic-validation-policy.yaml"),
164
- loadYamlWithFallback(projectRoot, ".nimi/methodology/authority-convergence-policy.yaml", "methodology/authority-convergence-policy.yaml"),
165
- ]);
166
-
167
- return {
168
- topicSchema,
169
- waveSchema,
170
- packetSchema,
171
- resultSchema,
172
- closeoutSchema,
173
- remediationSchema,
174
- decisionReviewSchema,
175
- pendingNoteSchema,
176
- topicStepDecisionSchema,
177
- topicRunLedgerSchema,
178
- forbiddenShortcutsCatalog,
179
- lifecycleReport,
180
- fourClosurePolicy,
181
- validationPolicy,
182
- authorityConvergencePolicy,
183
- };
184
- }