@nimiplatform/nimi-coding 0.2.7 → 0.3.0

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 (207) hide show
  1. package/CHANGELOG.md +8 -80
  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/constants.mjs +9 -417
  8. package/cli/dev/run-cli-smoke.mjs +24 -0
  9. package/cli/dev/run-suite.mjs +17 -0
  10. package/cli/help.mjs +28 -145
  11. package/cli/index.mjs +5 -33
  12. package/cli/lib/blueprint-audit.mjs +5 -12
  13. package/cli/lib/bootstrap.mjs +0 -9
  14. package/cli/lib/contracts.mjs +0 -163
  15. package/cli/lib/doctor.mjs +155 -10
  16. package/cli/lib/entrypoints.mjs +63 -167
  17. package/cli/lib/internal/contracts-loaders.mjs +0 -85
  18. package/cli/lib/internal/contracts-parse.mjs +84 -520
  19. package/cli/lib/internal/governance/ai/check-agents-freshness.mjs +13 -8
  20. package/cli/lib/internal/surface-taxonomy-validators.mjs +316 -66
  21. package/cli/lib/internal/validators-shared.mjs +0 -16
  22. package/cli/lib/internal/validators-spec-helpers.mjs +7 -140
  23. package/cli/lib/internal/validators-spec.mjs +103 -342
  24. package/cli/lib/shared.mjs +1 -42
  25. package/cli/lib/validators.mjs +0 -48
  26. package/cli/seeds/seed-policy.yaml +0 -3
  27. package/config/bootstrap.yaml +4 -4
  28. package/config/spec-generation-inputs.yaml +6 -12
  29. package/contracts/domain-admission.schema.yaml +3 -3
  30. package/contracts/migration-inventory.schema.yaml +12 -75
  31. package/contracts/negative-fixtures.yaml +19 -99
  32. package/contracts/placement-contract.schema.yaml +49 -78
  33. package/contracts/projection-edge.schema.yaml +37 -121
  34. package/contracts/shared-enums.yaml +4 -8
  35. package/contracts/spec-generation-inputs.schema.yaml +15 -112
  36. package/contracts/spec-layout.schema.yaml +32 -0
  37. package/contracts/surface-taxonomy.schema.yaml +43 -94
  38. package/contracts/table-family.schema.yaml +1 -1
  39. package/contracts/tracked-output-admission.schema.yaml +13 -66
  40. package/methodology/core.yaml +33 -25
  41. package/methodology/four-closure-policy.yaml +18 -26
  42. package/methodology/role-separation-policy.yaml +21 -27
  43. package/methodology/spec-reconstruction.yaml +17 -34
  44. package/package.json +4 -6
  45. package/spec/_meta/spec-tree-model.yaml +5 -101
  46. package/spec/product-scope.yaml +25 -57
  47. package/adapters/README.md +0 -25
  48. package/adapters/claude/README.md +0 -89
  49. package/adapters/claude/profile.yaml +0 -70
  50. package/adapters/codex/README.md +0 -53
  51. package/adapters/codex/profile.yaml +0 -78
  52. package/adapters/oh-my-codex/README.md +0 -184
  53. package/adapters/oh-my-codex/profile.yaml +0 -46
  54. package/cli/commands/admit-high-risk-decision.mjs +0 -108
  55. package/cli/commands/audit-sweep.mjs +0 -364
  56. package/cli/commands/closeout.mjs +0 -186
  57. package/cli/commands/decide-high-risk-execution.mjs +0 -124
  58. package/cli/commands/handoff.mjs +0 -123
  59. package/cli/commands/ingest-high-risk-execution.mjs +0 -95
  60. package/cli/commands/review-high-risk-execution.mjs +0 -95
  61. package/cli/commands/sweep-design.mjs +0 -295
  62. package/cli/commands/sweep.mjs +0 -22
  63. package/cli/commands/topic-formatters.mjs +0 -382
  64. package/cli/commands/topic-goal.mjs +0 -33
  65. package/cli/commands/topic-options-shared.mjs +0 -27
  66. package/cli/commands/topic-options-workflow.mjs +0 -767
  67. package/cli/commands/topic-options.mjs +0 -626
  68. package/cli/commands/topic-runner.mjs +0 -169
  69. package/cli/commands/topic.mjs +0 -795
  70. package/cli/commands/validate-acceptance.mjs +0 -5
  71. package/cli/commands/validate-execution-packet.mjs +0 -5
  72. package/cli/commands/validate-orchestration-state.mjs +0 -5
  73. package/cli/commands/validate-prompt.mjs +0 -5
  74. package/cli/commands/validate-worker-output.mjs +0 -5
  75. package/cli/lib/adapter-profiles.mjs +0 -403
  76. package/cli/lib/audit-execution.mjs +0 -52
  77. package/cli/lib/audit-sweep-runtime/admissions.mjs +0 -508
  78. package/cli/lib/audit-sweep-runtime/audit-validity.mjs +0 -356
  79. package/cli/lib/audit-sweep-runtime/chunks.mjs +0 -697
  80. package/cli/lib/audit-sweep-runtime/claude-auditor.mjs +0 -647
  81. package/cli/lib/audit-sweep-runtime/closeout.mjs +0 -144
  82. package/cli/lib/audit-sweep-runtime/codex-auditor-evidence.mjs +0 -654
  83. package/cli/lib/audit-sweep-runtime/codex-auditor.mjs +0 -516
  84. package/cli/lib/audit-sweep-runtime/common.mjs +0 -341
  85. package/cli/lib/audit-sweep-runtime/coverage-quality.mjs +0 -172
  86. package/cli/lib/audit-sweep-runtime/evidence-assignment.mjs +0 -155
  87. package/cli/lib/audit-sweep-runtime/format.mjs +0 -57
  88. package/cli/lib/audit-sweep-runtime/ingest.mjs +0 -486
  89. package/cli/lib/audit-sweep-runtime/inventory-spec-chunks.mjs +0 -425
  90. package/cli/lib/audit-sweep-runtime/inventory.mjs +0 -798
  91. package/cli/lib/audit-sweep-runtime/ledger.mjs +0 -315
  92. package/cli/lib/audit-sweep-runtime/p0p1-profile.mjs +0 -101
  93. package/cli/lib/audit-sweep-runtime/remediation.mjs +0 -349
  94. package/cli/lib/audit-sweep-runtime/rerun.mjs +0 -129
  95. package/cli/lib/audit-sweep-runtime/risk-budget.mjs +0 -300
  96. package/cli/lib/audit-sweep-runtime/status.mjs +0 -62
  97. package/cli/lib/audit-sweep-runtime/validators-ledger.mjs +0 -215
  98. package/cli/lib/audit-sweep-runtime/validators.mjs +0 -797
  99. package/cli/lib/audit-sweep.mjs +0 -19
  100. package/cli/lib/authority-convergence.mjs +0 -704
  101. package/cli/lib/closeout.mjs +0 -732
  102. package/cli/lib/codex-sdk-runner.mjs +0 -76
  103. package/cli/lib/external-execution.mjs +0 -101
  104. package/cli/lib/handoff.mjs +0 -812
  105. package/cli/lib/high-risk-admission.mjs +0 -512
  106. package/cli/lib/high-risk-decision.mjs +0 -353
  107. package/cli/lib/high-risk-ingest.mjs +0 -321
  108. package/cli/lib/high-risk-review.mjs +0 -267
  109. package/cli/lib/internal/contracts-parse-high-risk.mjs +0 -131
  110. package/cli/lib/internal/contracts-validators.mjs +0 -399
  111. package/cli/lib/internal/doctor-bootstrap-surface.mjs +0 -406
  112. package/cli/lib/internal/doctor-delegated-surface.mjs +0 -256
  113. package/cli/lib/internal/doctor-finalize.mjs +0 -383
  114. package/cli/lib/internal/doctor-format.mjs +0 -286
  115. package/cli/lib/internal/doctor-inspectors.mjs +0 -327
  116. package/cli/lib/internal/doctor-state.mjs +0 -205
  117. package/cli/lib/internal/validators-artifacts.mjs +0 -515
  118. package/cli/lib/sweep-design-runtime/common.mjs +0 -246
  119. package/cli/lib/sweep-design-runtime/engine.mjs +0 -733
  120. package/cli/lib/sweep-design-runtime/fix-topic.mjs +0 -414
  121. package/cli/lib/sweep-design-runtime/lifecycle.mjs +0 -54
  122. package/cli/lib/sweep-design-runtime/results.mjs +0 -324
  123. package/cli/lib/sweep-design.mjs +0 -8
  124. package/cli/lib/topic-artifacts.mjs +0 -186
  125. package/cli/lib/topic-authority-coverage.mjs +0 -73
  126. package/cli/lib/topic-closeout.mjs +0 -560
  127. package/cli/lib/topic-common.mjs +0 -404
  128. package/cli/lib/topic-decisions.mjs +0 -332
  129. package/cli/lib/topic-draft-packets.mjs +0 -167
  130. package/cli/lib/topic-execution.mjs +0 -515
  131. package/cli/lib/topic-goal.mjs +0 -440
  132. package/cli/lib/topic-ledger.mjs +0 -281
  133. package/cli/lib/topic-lifecycle-artifacts.mjs +0 -173
  134. package/cli/lib/topic-root-validation.mjs +0 -288
  135. package/cli/lib/topic-runner-commands.mjs +0 -174
  136. package/cli/lib/topic-runner-deferral.mjs +0 -532
  137. package/cli/lib/topic-runner-stale-gates.mjs +0 -114
  138. package/cli/lib/topic-runner-validation.mjs +0 -138
  139. package/cli/lib/topic-runner.mjs +0 -727
  140. package/cli/lib/topic-scaffold.mjs +0 -252
  141. package/cli/lib/topic-waves.mjs +0 -403
  142. package/cli/lib/topic.mjs +0 -81
  143. package/config/audit-execution-artifacts.yaml +0 -20
  144. package/config/external-execution-artifacts.yaml +0 -16
  145. package/config/host-adapter.yaml +0 -30
  146. package/config/host-profile.yaml +0 -29
  147. package/config/installer-evidence.yaml +0 -31
  148. package/config/skill-installer.yaml +0 -23
  149. package/config/skill-manifest.yaml +0 -48
  150. package/config/skills.yaml +0 -30
  151. package/contracts/acceptance.schema.yaml +0 -16
  152. package/contracts/admission-checklist.schema.yaml +0 -15
  153. package/contracts/audit-chunk.schema.yaml +0 -123
  154. package/contracts/audit-closeout.schema.yaml +0 -51
  155. package/contracts/audit-finding.schema.yaml +0 -61
  156. package/contracts/audit-ledger.schema.yaml +0 -138
  157. package/contracts/audit-plan.schema.yaml +0 -138
  158. package/contracts/audit-remediation-map.schema.yaml +0 -52
  159. package/contracts/audit-rerun.schema.yaml +0 -31
  160. package/contracts/audit-sweep-result.yaml +0 -53
  161. package/contracts/authority-convergence-audit.schema.yaml +0 -19
  162. package/contracts/closeout.schema.yaml +0 -25
  163. package/contracts/decision-review.schema.yaml +0 -16
  164. package/contracts/doc-spec-audit-result.yaml +0 -19
  165. package/contracts/execution-packet.schema.yaml +0 -49
  166. package/contracts/external-host-compatibility.yaml +0 -22
  167. package/contracts/forbidden-shortcuts.catalog.yaml +0 -23
  168. package/contracts/high-risk-admission.schema.yaml +0 -23
  169. package/contracts/high-risk-execution-result.yaml +0 -20
  170. package/contracts/orchestration-state.schema.yaml +0 -41
  171. package/contracts/overflow-continuation.schema.yaml +0 -12
  172. package/contracts/packet.schema.yaml +0 -30
  173. package/contracts/pending-note.schema.yaml +0 -17
  174. package/contracts/prompt.schema.yaml +0 -12
  175. package/contracts/remediation.schema.yaml +0 -16
  176. package/contracts/result.schema.yaml +0 -24
  177. package/contracts/spec-reconstruction-result.yaml +0 -41
  178. package/contracts/sweep-design-result.yaml +0 -349
  179. package/contracts/topic-goal.schema.yaml +0 -87
  180. package/contracts/topic-run-ledger.schema.yaml +0 -72
  181. package/contracts/topic-step-decision.schema.yaml +0 -45
  182. package/contracts/topic.schema.yaml +0 -65
  183. package/contracts/true-close.schema.yaml +0 -15
  184. package/contracts/wave.schema.yaml +0 -29
  185. package/contracts/worker-output.schema.yaml +0 -15
  186. package/contracts/workflow-consumer.schema.yaml +0 -110
  187. package/methodology/audit-sweep-p0p1-recall.yaml +0 -45
  188. package/methodology/authority-convergence-policy.yaml +0 -42
  189. package/methodology/overflow-continuation-policy.yaml +0 -14
  190. package/methodology/skill-exchange-projection.yaml +0 -114
  191. package/methodology/skill-handoff.yaml +0 -34
  192. package/methodology/skill-installer-result.yaml +0 -27
  193. package/methodology/skill-installer-summary-projection.yaml +0 -181
  194. package/methodology/skill-runtime.yaml +0 -23
  195. package/methodology/spec-target-truth-profile.yaml +0 -46
  196. package/methodology/topic-lifecycle-report.yaml +0 -144
  197. package/methodology/topic-lifecycle.yaml +0 -37
  198. package/methodology/topic-naming-ontology.yaml +0 -21
  199. package/methodology/topic-ontology.yaml +0 -38
  200. package/methodology/topic-validation-policy.yaml +0 -9
  201. package/methodology/wave-dag-policy.yaml +0 -14
  202. package/spec/_meta/command-gating-matrix.yaml +0 -143
  203. package/spec/_meta/generate-drift-migration-checklist.yaml +0 -137
  204. package/spec/_meta/governance-routing-cutover-checklist.yaml +0 -35
  205. package/spec/_meta/phase2-impacted-surface-matrix.yaml +0 -44
  206. package/spec/_meta/spec-authority-cutover-readiness.yaml +0 -102
  207. 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
- }