@nimiplatform/nimi-coding 0.2.8 → 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 (205) hide show
  1. package/CHANGELOG.md +8 -92
  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/help.mjs +28 -145
  9. package/cli/index.mjs +5 -33
  10. package/cli/lib/blueprint-audit.mjs +5 -12
  11. package/cli/lib/bootstrap.mjs +0 -9
  12. package/cli/lib/contracts.mjs +0 -163
  13. package/cli/lib/doctor.mjs +155 -10
  14. package/cli/lib/entrypoints.mjs +63 -167
  15. package/cli/lib/internal/contracts-loaders.mjs +0 -85
  16. package/cli/lib/internal/contracts-parse.mjs +84 -520
  17. package/cli/lib/internal/governance/ai/check-agents-freshness.mjs +13 -8
  18. package/cli/lib/internal/surface-taxonomy-validators.mjs +316 -66
  19. package/cli/lib/internal/validators-shared.mjs +0 -16
  20. package/cli/lib/internal/validators-spec-helpers.mjs +7 -140
  21. package/cli/lib/internal/validators-spec.mjs +103 -342
  22. package/cli/lib/shared.mjs +1 -42
  23. package/cli/lib/validators.mjs +0 -48
  24. package/cli/seeds/seed-policy.yaml +0 -3
  25. package/config/bootstrap.yaml +4 -4
  26. package/config/spec-generation-inputs.yaml +6 -12
  27. package/contracts/domain-admission.schema.yaml +3 -3
  28. package/contracts/migration-inventory.schema.yaml +12 -75
  29. package/contracts/negative-fixtures.yaml +19 -99
  30. package/contracts/placement-contract.schema.yaml +49 -78
  31. package/contracts/projection-edge.schema.yaml +37 -121
  32. package/contracts/shared-enums.yaml +4 -8
  33. package/contracts/spec-generation-inputs.schema.yaml +15 -112
  34. package/contracts/spec-layout.schema.yaml +32 -0
  35. package/contracts/surface-taxonomy.schema.yaml +43 -94
  36. package/contracts/table-family.schema.yaml +1 -1
  37. package/contracts/tracked-output-admission.schema.yaml +13 -66
  38. package/methodology/core.yaml +33 -25
  39. package/methodology/four-closure-policy.yaml +18 -26
  40. package/methodology/role-separation-policy.yaml +21 -27
  41. package/methodology/spec-reconstruction.yaml +17 -34
  42. package/package.json +2 -4
  43. package/spec/_meta/spec-tree-model.yaml +5 -101
  44. package/spec/product-scope.yaml +25 -57
  45. package/adapters/README.md +0 -25
  46. package/adapters/claude/README.md +0 -89
  47. package/adapters/claude/profile.yaml +0 -70
  48. package/adapters/codex/README.md +0 -53
  49. package/adapters/codex/profile.yaml +0 -78
  50. package/adapters/oh-my-codex/README.md +0 -184
  51. package/adapters/oh-my-codex/profile.yaml +0 -46
  52. package/cli/commands/admit-high-risk-decision.mjs +0 -108
  53. package/cli/commands/audit-sweep.mjs +0 -364
  54. package/cli/commands/closeout.mjs +0 -186
  55. package/cli/commands/decide-high-risk-execution.mjs +0 -124
  56. package/cli/commands/handoff.mjs +0 -123
  57. package/cli/commands/ingest-high-risk-execution.mjs +0 -95
  58. package/cli/commands/review-high-risk-execution.mjs +0 -95
  59. package/cli/commands/sweep-design.mjs +0 -295
  60. package/cli/commands/sweep.mjs +0 -22
  61. package/cli/commands/topic-formatters.mjs +0 -382
  62. package/cli/commands/topic-goal.mjs +0 -33
  63. package/cli/commands/topic-options-shared.mjs +0 -27
  64. package/cli/commands/topic-options-workflow.mjs +0 -767
  65. package/cli/commands/topic-options.mjs +0 -626
  66. package/cli/commands/topic-runner.mjs +0 -169
  67. package/cli/commands/topic.mjs +0 -795
  68. package/cli/commands/validate-acceptance.mjs +0 -5
  69. package/cli/commands/validate-execution-packet.mjs +0 -5
  70. package/cli/commands/validate-orchestration-state.mjs +0 -5
  71. package/cli/commands/validate-prompt.mjs +0 -5
  72. package/cli/commands/validate-worker-output.mjs +0 -5
  73. package/cli/lib/adapter-profiles.mjs +0 -403
  74. package/cli/lib/audit-execution.mjs +0 -52
  75. package/cli/lib/audit-sweep-runtime/admissions.mjs +0 -508
  76. package/cli/lib/audit-sweep-runtime/audit-validity.mjs +0 -356
  77. package/cli/lib/audit-sweep-runtime/chunks.mjs +0 -697
  78. package/cli/lib/audit-sweep-runtime/claude-auditor.mjs +0 -658
  79. package/cli/lib/audit-sweep-runtime/closeout.mjs +0 -144
  80. package/cli/lib/audit-sweep-runtime/codex-auditor-evidence.mjs +0 -654
  81. package/cli/lib/audit-sweep-runtime/codex-auditor.mjs +0 -527
  82. package/cli/lib/audit-sweep-runtime/common.mjs +0 -341
  83. package/cli/lib/audit-sweep-runtime/coverage-quality.mjs +0 -172
  84. package/cli/lib/audit-sweep-runtime/evidence-assignment.mjs +0 -155
  85. package/cli/lib/audit-sweep-runtime/format.mjs +0 -57
  86. package/cli/lib/audit-sweep-runtime/ingest.mjs +0 -486
  87. package/cli/lib/audit-sweep-runtime/inventory-spec-chunks.mjs +0 -425
  88. package/cli/lib/audit-sweep-runtime/inventory.mjs +0 -798
  89. package/cli/lib/audit-sweep-runtime/ledger.mjs +0 -315
  90. package/cli/lib/audit-sweep-runtime/p0p1-profile.mjs +0 -101
  91. package/cli/lib/audit-sweep-runtime/remediation.mjs +0 -349
  92. package/cli/lib/audit-sweep-runtime/rerun.mjs +0 -129
  93. package/cli/lib/audit-sweep-runtime/risk-budget.mjs +0 -300
  94. package/cli/lib/audit-sweep-runtime/status.mjs +0 -62
  95. package/cli/lib/audit-sweep-runtime/validators-ledger.mjs +0 -215
  96. package/cli/lib/audit-sweep-runtime/validators.mjs +0 -797
  97. package/cli/lib/audit-sweep.mjs +0 -19
  98. package/cli/lib/authority-convergence.mjs +0 -720
  99. package/cli/lib/closeout.mjs +0 -732
  100. package/cli/lib/codex-sdk-runner.mjs +0 -76
  101. package/cli/lib/external-execution.mjs +0 -101
  102. package/cli/lib/handoff.mjs +0 -812
  103. package/cli/lib/high-risk-admission.mjs +0 -512
  104. package/cli/lib/high-risk-decision.mjs +0 -353
  105. package/cli/lib/high-risk-ingest.mjs +0 -321
  106. package/cli/lib/high-risk-review.mjs +0 -267
  107. package/cli/lib/internal/contracts-parse-high-risk.mjs +0 -131
  108. package/cli/lib/internal/contracts-validators.mjs +0 -399
  109. package/cli/lib/internal/doctor-bootstrap-surface.mjs +0 -406
  110. package/cli/lib/internal/doctor-delegated-surface.mjs +0 -256
  111. package/cli/lib/internal/doctor-finalize.mjs +0 -383
  112. package/cli/lib/internal/doctor-format.mjs +0 -286
  113. package/cli/lib/internal/doctor-inspectors.mjs +0 -327
  114. package/cli/lib/internal/doctor-state.mjs +0 -205
  115. package/cli/lib/internal/validators-artifacts.mjs +0 -515
  116. package/cli/lib/sweep-design-runtime/common.mjs +0 -246
  117. package/cli/lib/sweep-design-runtime/engine.mjs +0 -733
  118. package/cli/lib/sweep-design-runtime/fix-topic.mjs +0 -414
  119. package/cli/lib/sweep-design-runtime/lifecycle.mjs +0 -54
  120. package/cli/lib/sweep-design-runtime/results.mjs +0 -324
  121. package/cli/lib/sweep-design.mjs +0 -8
  122. package/cli/lib/topic-artifacts.mjs +0 -186
  123. package/cli/lib/topic-authority-coverage.mjs +0 -73
  124. package/cli/lib/topic-closeout.mjs +0 -560
  125. package/cli/lib/topic-common.mjs +0 -404
  126. package/cli/lib/topic-decisions.mjs +0 -332
  127. package/cli/lib/topic-draft-packets.mjs +0 -167
  128. package/cli/lib/topic-execution.mjs +0 -533
  129. package/cli/lib/topic-goal.mjs +0 -440
  130. package/cli/lib/topic-ledger.mjs +0 -281
  131. package/cli/lib/topic-lifecycle-artifacts.mjs +0 -173
  132. package/cli/lib/topic-root-validation.mjs +0 -288
  133. package/cli/lib/topic-runner-commands.mjs +0 -174
  134. package/cli/lib/topic-runner-deferral.mjs +0 -532
  135. package/cli/lib/topic-runner-stale-gates.mjs +0 -114
  136. package/cli/lib/topic-runner-validation.mjs +0 -138
  137. package/cli/lib/topic-runner.mjs +0 -727
  138. package/cli/lib/topic-scaffold.mjs +0 -252
  139. package/cli/lib/topic-waves.mjs +0 -403
  140. package/cli/lib/topic.mjs +0 -81
  141. package/config/audit-execution-artifacts.yaml +0 -20
  142. package/config/external-execution-artifacts.yaml +0 -16
  143. package/config/host-adapter.yaml +0 -30
  144. package/config/host-profile.yaml +0 -29
  145. package/config/installer-evidence.yaml +0 -31
  146. package/config/skill-installer.yaml +0 -23
  147. package/config/skill-manifest.yaml +0 -48
  148. package/config/skills.yaml +0 -30
  149. package/contracts/acceptance.schema.yaml +0 -16
  150. package/contracts/admission-checklist.schema.yaml +0 -15
  151. package/contracts/audit-chunk.schema.yaml +0 -123
  152. package/contracts/audit-closeout.schema.yaml +0 -51
  153. package/contracts/audit-finding.schema.yaml +0 -61
  154. package/contracts/audit-ledger.schema.yaml +0 -138
  155. package/contracts/audit-plan.schema.yaml +0 -138
  156. package/contracts/audit-remediation-map.schema.yaml +0 -52
  157. package/contracts/audit-rerun.schema.yaml +0 -31
  158. package/contracts/audit-sweep-result.yaml +0 -53
  159. package/contracts/authority-convergence-audit.schema.yaml +0 -19
  160. package/contracts/closeout.schema.yaml +0 -25
  161. package/contracts/decision-review.schema.yaml +0 -16
  162. package/contracts/doc-spec-audit-result.yaml +0 -19
  163. package/contracts/execution-packet.schema.yaml +0 -49
  164. package/contracts/external-host-compatibility.yaml +0 -22
  165. package/contracts/forbidden-shortcuts.catalog.yaml +0 -23
  166. package/contracts/high-risk-admission.schema.yaml +0 -23
  167. package/contracts/high-risk-execution-result.yaml +0 -20
  168. package/contracts/orchestration-state.schema.yaml +0 -41
  169. package/contracts/overflow-continuation.schema.yaml +0 -12
  170. package/contracts/packet.schema.yaml +0 -30
  171. package/contracts/pending-note.schema.yaml +0 -17
  172. package/contracts/prompt.schema.yaml +0 -12
  173. package/contracts/remediation.schema.yaml +0 -16
  174. package/contracts/result.schema.yaml +0 -24
  175. package/contracts/spec-reconstruction-result.yaml +0 -41
  176. package/contracts/sweep-design-result.yaml +0 -349
  177. package/contracts/topic-goal.schema.yaml +0 -87
  178. package/contracts/topic-run-ledger.schema.yaml +0 -72
  179. package/contracts/topic-step-decision.schema.yaml +0 -45
  180. package/contracts/topic.schema.yaml +0 -65
  181. package/contracts/true-close.schema.yaml +0 -15
  182. package/contracts/wave.schema.yaml +0 -29
  183. package/contracts/worker-output.schema.yaml +0 -15
  184. package/contracts/workflow-consumer.schema.yaml +0 -110
  185. package/methodology/audit-sweep-p0p1-recall.yaml +0 -45
  186. package/methodology/authority-convergence-policy.yaml +0 -42
  187. package/methodology/overflow-continuation-policy.yaml +0 -14
  188. package/methodology/skill-exchange-projection.yaml +0 -114
  189. package/methodology/skill-handoff.yaml +0 -34
  190. package/methodology/skill-installer-result.yaml +0 -27
  191. package/methodology/skill-installer-summary-projection.yaml +0 -181
  192. package/methodology/skill-runtime.yaml +0 -23
  193. package/methodology/spec-target-truth-profile.yaml +0 -46
  194. package/methodology/topic-lifecycle-report.yaml +0 -144
  195. package/methodology/topic-lifecycle.yaml +0 -37
  196. package/methodology/topic-naming-ontology.yaml +0 -21
  197. package/methodology/topic-ontology.yaml +0 -38
  198. package/methodology/topic-validation-policy.yaml +0 -9
  199. package/methodology/wave-dag-policy.yaml +0 -14
  200. package/spec/_meta/command-gating-matrix.yaml +0 -143
  201. package/spec/_meta/generate-drift-migration-checklist.yaml +0 -137
  202. package/spec/_meta/governance-routing-cutover-checklist.yaml +0 -35
  203. package/spec/_meta/phase2-impacted-surface-matrix.yaml +0 -44
  204. package/spec/_meta/spec-authority-cutover-readiness.yaml +0 -102
  205. package/spec/bootstrap-state.yaml +0 -99
@@ -1,89 +0,0 @@
1
- # Claude Code Adapter
2
-
3
- This adapter defines how to use `@nimiplatform/nimi-coding` with Claude Code
4
- without turning Claude into the semantic owner.
5
-
6
- ## Intent
7
-
8
- Use Claude Code for:
9
-
10
- - inline coding with direct filesystem access
11
- - exploration, planning, and execution in a single session
12
- - review and decision projection (manager-ready, not manager-owned)
13
- - AGENTS.md-governed module-scoped work via PreToolUse hooks
14
-
15
- Keep `nimicoding` responsible for:
16
-
17
- - project-local `.nimi/**` truth
18
- - authority boundaries
19
- - handoff constraints
20
- - packet, prompt, worker-output, and acceptance schema ownership
21
- - fail-closed validation
22
-
23
- ## Integration Mode
24
-
25
- Claude Code integrates differently from oh-my-codex:
26
-
27
- | Concern | oh-my-codex | Claude Code |
28
- |---|---|---|
29
- | Host class | external execution host | inline coding host |
30
- | Instruction format | AGENTS.md (native) | CLAUDE.md (native) + AGENTS.md (hook-injected) |
31
- | Module context | automatic on every interaction | PreToolUse hook on Read/Edit/Write |
32
- | Operational state | `.omx/` | `.claude/` |
33
- | Execution mode | external handoff via JSON | inline in-repo execution |
34
- | Review capability | execution only | execution + inline review |
35
-
36
- ## Boundary
37
-
38
- Treat the systems as layered rather than merged:
39
-
40
- - `@nimiplatform/nimi-coding` is the semantic kernel.
41
- - Claude Code is a constrained inline coding host.
42
- - This adapter is only the bridge.
43
-
44
- Claude Code may read `.nimi/**` and produce execution artifacts, but it must not:
45
-
46
- - become the owner of `.nimi/spec/**`
47
- - treat cutover readiness as an authority flip
48
- - decide semantic acceptance or final disposition
49
- - redefine methodology state from `.claude/**` operational state
50
- - bypass `nimicoding doctor`, `handoff`, or validator gates
51
- - use hooks as a replacement for AGENTS.md authority
52
-
53
- ## Context Channel
54
-
55
- Claude Code receives module-level AGENTS.md content through a PreToolUse hook:
56
-
57
- 1. Hook fires on **Read**, **Edit**, and **Write** tool calls
58
- 2. Script walks up from the target file to find the nearest `AGENTS.md`
59
- 3. Content is injected as `additionalContext` before the tool executes
60
- 4. Root `AGENTS.md` is already synced into `CLAUDE.md` (not re-injected)
61
- 5. **Grep/Glob/Bash** do not trigger injection — manual AGENTS.md reads
62
- are still needed for search-based exploration
63
-
64
- The `CLAUDE.md` managed block (marker `nimicoding:managed:claude`) provides
65
- the baseline methodology context. Module-level AGENTS.md provides scoped
66
- constraints on top of that baseline.
67
-
68
- ## Coverage Gap
69
-
70
- | Tool | Hook fires? | Module AGENTS.md visible? |
71
- |---|---|---|
72
- | Read | Yes | Automatic |
73
- | Edit | Yes | Automatic |
74
- | Write | Yes | Automatic |
75
- | Grep | No | Manual read needed |
76
- | Glob | No | Manual read needed |
77
- | Bash | No | Manual read needed |
78
- | Agent (subagent) | No | Manual read needed |
79
-
80
- ## Mapping
81
-
82
- | Claude concern | Adapter rule | `nimicoding` owner |
83
- |---|---|---|
84
- | exploration/planning | hook-injected module context | `.nimi/methodology/skill-handoff.yaml` |
85
- | prompt handoff | consume exported prompt/context | `.nimi/methodology/skill-handoff.yaml` |
86
- | worker output | write candidate artifact only under declared local roots | `.nimi/contracts/worker-output.schema.yaml` |
87
- | evidence | write candidate artifact only under declared local roots | packet/evidence contract family |
88
- | inline review | project decision material, do not decide | manager-reviewed `nimicoding` semantics |
89
- | final disposition | Claude must not decide | manager-reviewed `nimicoding` semantics |
@@ -1,70 +0,0 @@
1
- version: 1
2
- adapter_profile:
3
- id: claude
4
- host_class: inline_coding_host
5
- upstream_seed_profile: external_ai_host
6
- purpose: >
7
- Constrain Claude Code to act as an inline coding host for nimicoding
8
- methodology execution, with AGENTS.md authority injected via PreToolUse
9
- hooks and CLAUDE.md as the native entrypoint, without promoting Claude
10
- operational state into semantic truth.
11
- semantic_owner:
12
- - .nimi/methodology
13
- - .nimi/spec
14
- - .nimi/contracts
15
- - .nimi/config
16
- operational_owner:
17
- - .claude
18
- - .nimi/local
19
- - .nimi/cache
20
- admitted_skill_surfaces:
21
- - spec_reconstruction
22
- - doc_spec_audit
23
- - audit_sweep
24
- - high_risk_execution
25
- - inline_review
26
- - authority_convergence_audit
27
- context_integration:
28
- native_entrypoint: CLAUDE.md
29
- module_context_channel: PreToolUse_hook_agents_md_injection
30
- managed_block_marker: "nimicoding:managed:claude"
31
- hook_matcher: Read|Edit|Write
32
- hook_script: .claude/hooks/inject-agents-md.sh
33
- agents_md_authority: >
34
- AGENTS.md files remain the authoritative module-level rules.
35
- CLAUDE.md defers to AGENTS.md on conflict. The hook injects the
36
- nearest AGENTS.md as additionalContext on Read/Edit/Write tool
37
- calls. Grep/Glob/Bash do not trigger injection.
38
- prompt_handoff:
39
- bootstrap_surface:
40
- - nimicoding handoff --skill spec_reconstruction --prompt
41
- - nimicoding handoff --skill doc_spec_audit --prompt
42
- - nimicoding handoff --skill audit_sweep --prompt
43
- - nimicoding handoff --skill high_risk_execution --prompt
44
- future_surface:
45
- status: active_via_hooks
46
- commands: []
47
- channel: CLAUDE.md managed block + PreToolUse AGENTS.md hooks
48
- output_handoff:
49
- worker_output_target: .nimi/local/outputs/** candidate artifact
50
- evidence_target: .nimi/local/evidence/** candidate artifact
51
- closeout_target: local-only closeout payload unless later admitted
52
- authority_convergence_audit:
53
- execution_projection: claude_task_subagent_auditor
54
- dispatch_source: nimicoding topic audit dispatch
55
- output_target: .nimi/local/outputs/** candidate audit evidence
56
- semantic_effect: none_until_manager_records_topic_audit_result
57
- required_prompt_posture:
58
- - audit_only_no_code_or_spec_edits
59
- - report_PASS_NEEDS_REVISION_or_FAIL
60
- - list_blocking_findings_concerns_deferred_non_blockers_and_authority_refs
61
- hard_constraints:
62
- - claude_must_not_become_semantic_owner
63
- - claude_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
64
- - claude_must_not_define_acceptance_disposition_or_finding_judgment
65
- - claude_operational_state_must_remain_operational_only
66
- - claude_hooks_must_not_replace_agents_md_authority
67
- - unresolved_authority_or_missing_context_must_fail_closed
68
- - claude_subagent_authority_convergence_output_must_remain_candidate_evidence
69
- current_gaps:
70
- - automatic_semantic_admission_automation_not_packaged_in_standalone
@@ -1,53 +0,0 @@
1
- # Codex Adapter Sketch
2
-
3
- This adapter defines native Codex support for `@nimiplatform/nimi-coding`.
4
-
5
- It is intentionally separate from `oh_my_codex`. `oh_my_codex` is an external
6
- adapter boundary; `codex` is the native Codex SDK host boundary.
7
-
8
- ## Boundary
9
-
10
- - Codex SDK owns operational thread execution.
11
- - `.nimi/**` remains semantic truth.
12
- - Topic decisions come from `nimicoding topic run-next-step`.
13
- - Run continuity is recorded by `nimicoding topic run-ledger`.
14
- - Codex thread IDs are operational state and must not become semantic truth.
15
-
16
- ## SDK Surface
17
-
18
- The admitted native surface is the official TypeScript package:
19
-
20
- - package: `@openai/codex-sdk`
21
- - primary API: `new Codex().startThread().run(prompt)`
22
- - resume API: `new Codex().resumeThread(threadId).run(prompt)`
23
-
24
- The first packaged runner must call the SDK directly. It must not shell out to
25
- the Codex CLI and must not route through `oh_my_codex`.
26
-
27
- ## Execution Rule
28
-
29
- The runner may call Codex only after `run-next-step` returns:
30
-
31
- - `stop_class: continue`
32
- - a mechanical `recommended_action`
33
- - a concrete `next_command_ref`
34
-
35
- `continue` means the next package-owned command is placeholder-free and
36
- mechanically determined. It may include lifecycle transitions such as admitting
37
- the uniquely selected wave or freezing the uniquely matching draft packet; those
38
- transitions do not by themselves create a human gate.
39
-
40
- All other stop classes must be represented as run-ledger events and returned to
41
- the manager/operator without hidden continuation.
42
-
43
- ## Native Review Boundary
44
-
45
- Codex native review features are admitted only as lower-layer host capabilities:
46
-
47
- - automatic approval review may evaluate permission prompts and risk posture
48
- - GitHub automatic review may provide PR findings
49
- - both outputs may be recorded as `.nimi/local/evidence/**` candidate evidence
50
-
51
- They must not admit a wave, freeze a packet, record a result verdict, close a
52
- wave, close a topic, or satisfy true-close. Those transitions remain
53
- `nimicoding topic` command semantics with package-owned artifact lineage.
@@ -1,78 +0,0 @@
1
- version: 1
2
- adapter_profile:
3
- id: codex
4
- host_class: native_codex_sdk_host
5
- upstream_seed_profile: external_ai_host
6
- purpose: >
7
- Constrain native Codex SDK execution to act as a direct Codex host for
8
- nimicoding topic-loop dispatch, using @openai/codex-sdk thread runs without
9
- promoting Codex thread state into semantic truth.
10
- semantic_owner:
11
- - .nimi/methodology
12
- - .nimi/spec
13
- - .nimi/contracts
14
- - .nimi/config
15
- operational_owner:
16
- - .codex
17
- - .nimi/local
18
- - .nimi/cache
19
- admitted_skill_surfaces:
20
- - spec_reconstruction
21
- - doc_spec_audit
22
- - audit_sweep
23
- - high_risk_execution
24
- - topic_loop_execution
25
- - authority_convergence_audit
26
- prompt_handoff:
27
- bootstrap_surface:
28
- - nimicoding handoff --skill spec_reconstruction --prompt
29
- - nimicoding handoff --skill doc_spec_audit --prompt
30
- - nimicoding handoff --skill audit_sweep --prompt
31
- - nimicoding handoff --skill high_risk_execution --prompt
32
- future_surface:
33
- status: active_via_codex_sdk
34
- commands:
35
- - Codex.startThread().run
36
- - Codex.resumeThread().run
37
- output_handoff:
38
- worker_output_target: .nimi/local/outputs/** candidate artifact
39
- evidence_target: .nimi/local/evidence/** candidate artifact
40
- closeout_target: local-only closeout payload unless later admitted
41
- authority_convergence_audit:
42
- execution_projection: codex_subagent_auditor
43
- dispatch_source: nimicoding topic audit dispatch
44
- output_target: .nimi/local/outputs/** candidate audit evidence
45
- semantic_effect: none_until_manager_records_topic_audit_result
46
- required_prompt_posture:
47
- - audit_only_no_code_or_spec_edits
48
- - report_PASS_NEEDS_REVISION_or_FAIL
49
- - list_blocking_findings_concerns_deferred_non_blockers_and_authority_refs
50
- native_review_boundary:
51
- approval_review:
52
- scope: lower_layer_permission_review
53
- semantic_effect: none
54
- evidence_target: .nimi/local/evidence/** candidate artifact
55
- github_auto_review:
56
- scope: lower_layer_pr_review_findings
57
- semantic_effect: evidence_only
58
- evidence_target: .nimi/local/evidence/** candidate artifact
59
- forbidden_semantic_substitutions:
60
- - wave_admission
61
- - packet_freeze
62
- - result_verdict
63
- - wave_closeout
64
- - topic_closeout
65
- - true_close
66
- hard_constraints:
67
- - codex_sdk_must_not_become_semantic_owner
68
- - codex_sdk_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
69
- - codex_sdk_must_not_define_acceptance_disposition_or_finding_judgment
70
- - codex_thread_state_must_remain_operational_only
71
- - codex_sdk_runs_must_be_recorded_in_topic_run_ledger
72
- - codex_native_approval_review_must_remain_permission_review_only
73
- - codex_github_auto_review_must_remain_evidence_only
74
- - codex_review_must_not_substitute_nimicoding_semantic_commands
75
- - unresolved_authority_or_missing_context_must_fail_closed
76
- - codex_subagent_authority_convergence_output_must_remain_candidate_evidence
77
- current_gaps:
78
- - topic_semantic_orchestrator_command_surface_not_yet_packaged
@@ -1,184 +0,0 @@
1
- # oh-my-codex Adapter Sketch
2
-
3
- This adapter sketch defines how to use `@nimiplatform/nimi-coding` with
4
- `oh-my-codex` (OMX) without turning OMX into the semantic owner.
5
-
6
- ## Intent
7
-
8
- Use OMX for:
9
-
10
- - multi-agent or role-based execution
11
- - external host routing
12
- - long-running or autonomy-first execution behavior
13
- - operational observability
14
-
15
- Keep `nimicoding` responsible for:
16
-
17
- - project-local `.nimi/**` truth
18
- - authority boundaries
19
- - handoff constraints
20
- - packet, prompt, worker-output, and acceptance schema ownership
21
- - fail-closed validation
22
-
23
- ## Boundary
24
-
25
- Treat the systems as layered rather than merged:
26
-
27
- - `@nimiplatform/nimi-coding` is the semantic kernel.
28
- - `oh-my-codex` is a constrained external execution host.
29
- - This adapter is only the bridge.
30
-
31
- OMX may read `.nimi/**` and produce execution artifacts, but it must not:
32
-
33
- - become the owner of `.nimi/spec/**`
34
- - treat cutover readiness as an authority flip
35
- - decide semantic acceptance or final disposition
36
- - redefine methodology state from `.omx/**` runtime state
37
- - bypass `nimicoding doctor`, `handoff`, or validator gates
38
-
39
- ## Current Audit Summary
40
-
41
- The current package is already boundary-complete for standalone adapter use:
42
-
43
- - bootstrap seeding includes `skill-manifest`, `host-profile`, delegated
44
- `skill-runtime`, and `skill-handoff`
45
- - `doctor` fail-closes when delegated-runtime posture, host-adapter truth, or
46
- the package-owned OMX adapter overlay drifts
47
- - the generic external-host compatibility contract remains the baseline, and
48
- OMX only adds an admitted overlay on top of it
49
- - `nimicoding doctor` and `nimicoding handoff` now report the supported
50
- host posture directly from that packaged compatibility contract, alongside
51
- named overlay status and future-only host-specific surfaces
52
- - `handoff --json` exports the authoritative machine contract, while
53
- `handoff --prompt` remains a human-readable projection, and both include
54
- selected OMX overlay metadata
55
- - `closeout` safely projects external results into local-only artifacts
56
- - execution artifact validators already exist for packet, orchestration-state,
57
- prompt, worker-output, and acceptance
58
-
59
- The main remaining gap is not boundary definition. It is automation:
60
-
61
- - `high_risk_execution` now has a packaged local-only result contract
62
- - this package intentionally does not ship a packet-bound run kernel,
63
- provider execution, or automatic canonical semantic promotion loop
64
- - the adapter profile marks `run-next-prompt` as a future-only, not-packaged
65
- surface rather than an available standalone command
66
-
67
- That means OMX interop is already viable for prompt/output/evidence handoff,
68
- named host-profile recognition, and explicit manager-owned admission, but
69
- final high-risk completion should still stay bounded by `nimicoding`
70
- validators, explicit local closeout/decision/ingest/review surfaces, and
71
- manual manager-side admission rather than automatic semantic promotion. The
72
- local admission evidence target is now also shape-validated by a package-owned
73
- admission schema contract before `nimicoding` accepts it as semantic truth.
74
-
75
- ## Recommended First-User Flow
76
-
77
- ### 1. Bootstrap project-local truth
78
-
79
- Run inside the target project:
80
-
81
- ```sh
82
- nimicoding start
83
- nimicoding doctor
84
- ```
85
-
86
- The result must keep delegated runtime ownership and non-self-hosted posture
87
- clean before OMX is introduced.
88
-
89
- ### 2. Reconstruct `.nimi/spec/**` through explicit handoff
90
-
91
- Export the authoritative bootstrap handoff contract:
92
-
93
- ```sh
94
- nimicoding handoff --skill spec_reconstruction --json
95
- ```
96
-
97
- Use the JSON payload as OMX's machine contract. `--prompt` may still be used
98
- as a host briefing, but it is not the authoritative surface. OMX should
99
- return only the declared canonical tree outputs and must not invent new semantic
100
- owners. In a host project, `.nimi/spec/**` is current authority only when the
101
- host has admitted or reconstructed it; OMX still must not redefine that
102
- authority or promote its own runtime state into semantic truth.
103
-
104
- Then project the closeout locally:
105
-
106
- ```sh
107
- nimicoding closeout \
108
- --skill spec_reconstruction \
109
- --outcome completed \
110
- --verified-at 2026-04-11T00:00:00Z \
111
- --from <result.json> \
112
- --write-local
113
- ```
114
-
115
- ### 3. Audit drift before execution
116
-
117
- If needed:
118
-
119
- ```sh
120
- nimicoding handoff --skill doc_spec_audit --prompt
121
- nimicoding closeout --skill doc_spec_audit --outcome completed --verified-at <utc> --from <result.json> --write-local
122
- ```
123
-
124
- This stays local-only and must not replace semantic truth.
125
-
126
- ### 4. Dispatch high-risk execution through OMX
127
-
128
- Export the high-risk handoff contract:
129
-
130
- ```sh
131
- nimicoding handoff --skill high_risk_execution --json
132
- ```
133
-
134
- OMX should consume the declared `.nimi/**` context and produce:
135
-
136
- - packet/orchestration/prompt/worker-output/evidence refs under the declared
137
- local artifact roots in `.nimi/config/external-execution-artifacts.yaml`
138
- - a local-only external execution summary that satisfies the packaged
139
- `high_risk_execution` result contract
140
- - no claim of semantic completion, acceptance, or disposition
141
-
142
- The worker output must satisfy the seeded schema and include the strict
143
- `Runner Signal` block shape expected by the promoted internal methodology.
144
-
145
- ### 5. Keep semantic review in `nimicoding`
146
-
147
- For now, treat OMX output as execution candidate material:
148
-
149
- - validate packet, prompt, worker-output, and acceptance mechanically
150
- - keep final acceptance/disposition under manager-owned `nimicoding` review
151
- - keep `.omx/**` state operational only
152
-
153
- In practice, this means the first real user can use OMX as the execution host
154
- today, while standalone `nimicoding` remains the host-agnostic semantic and
155
- interop boundary package. The standalone package intentionally does not own
156
- packet-bound runtime, provider-backed execution, scheduler, notification, or
157
- automation surfaces yet, even though `nimicoding closeout` can import a
158
- fail-closed local-only execution summary and
159
- `nimicoding ingest-high-risk-execution` can mechanically validate the
160
- referenced packet/prompt/output candidates while
161
- `nimicoding review-high-risk-execution` can project a manager-ready local
162
- attachment bundle, `nimicoding decide-high-risk-execution` can record a
163
- manager-owned local disposition, and `nimicoding admit-high-risk-decision`
164
- can explicitly write canonical summary admission into `.nimi/spec` without
165
- promoting OMX runtime state.
166
-
167
- ## Mapping
168
-
169
- | OMX concern | Adapter rule | `nimicoding` owner |
170
- |---|---|---|
171
- | planning/execution routing | operational only | none |
172
- | prompt handoff | consume exported prompt/context | `.nimi/methodology/skill-handoff.yaml` |
173
- | worker output | write candidate artifact only under declared local roots | `.nimi/contracts/worker-output.schema.yaml` |
174
- | evidence | write candidate artifact only under declared local roots | packet/evidence contract family |
175
- | final disposition | OMX must not decide | manager-reviewed `nimicoding` semantics |
176
-
177
- ## Next Product Steps
178
-
179
- The minimum follow-up work from here is:
180
-
181
- 1. Add canonical semantic promotion automation around the explicit admission
182
- surface so manager-owned decisions no longer require manual admission steps.
183
- 2. Keep host-specific runtime execution support out of standalone unless a
184
- later admitted packet explicitly expands package ownership.
@@ -1,46 +0,0 @@
1
- version: 1
2
- adapter_profile:
3
- id: oh_my_codex
4
- host_class: external_execution_host
5
- upstream_seed_profile: external_ai_host
6
- purpose: >
7
- Constrain oh-my-codex to act as an external execution host for
8
- nimicoding handoff/prompt/output/evidence exchange without promoting OMX
9
- runtime state into semantic truth.
10
- semantic_owner:
11
- - .nimi/methodology
12
- - .nimi/spec
13
- - .nimi/contracts
14
- - .nimi/config
15
- operational_owner:
16
- - .omx
17
- - .nimi/local
18
- - .nimi/cache
19
- admitted_skill_surfaces:
20
- - spec_reconstruction
21
- - doc_spec_audit
22
- - audit_sweep
23
- - high_risk_execution
24
- prompt_handoff:
25
- bootstrap_surface:
26
- - nimicoding handoff --skill spec_reconstruction --prompt
27
- - nimicoding handoff --skill doc_spec_audit --prompt
28
- - nimicoding handoff --skill audit_sweep --prompt
29
- - nimicoding handoff --skill high_risk_execution --prompt
30
- future_surface:
31
- status: future_only_not_packaged
32
- commands:
33
- - nimicoding run-next-prompt
34
- output_handoff:
35
- worker_output_target: .nimi/local/outputs/** candidate artifact
36
- evidence_target: .nimi/local/evidence/** candidate artifact
37
- closeout_target: local-only closeout payload unless later admitted
38
- hard_constraints:
39
- - omx_must_not_become_semantic_owner
40
- - omx_must_not_write_canonical_.nimi/spec_truth_directly_without_validator_admission
41
- - omx_must_not_define_acceptance_disposition_or_finding_judgment
42
- - omx_runtime_state_must_remain_operational_only
43
- - unresolved_authority_or_missing_context_must_fail_closed
44
- current_gaps:
45
- - automatic_semantic_admission_automation_not_packaged_in_standalone
46
- - host_specific_runtime_execution_not_packaged_in_standalone
@@ -1,108 +0,0 @@
1
- import {
2
- buildHighRiskAdmissionPayload,
3
- formatHighRiskAdmissionPayload,
4
- writeHighRiskAdmission,
5
- } from "../lib/high-risk-admission.mjs";
6
- import { localize } from "../lib/ui.mjs";
7
-
8
- function parseAdmitHighRiskDecisionOptions(args) {
9
- const options = {
10
- fromPath: null,
11
- admittedAt: null,
12
- json: false,
13
- writeLocal: false,
14
- };
15
-
16
- for (let index = 0; index < args.length; index += 1) {
17
- const arg = args[index];
18
-
19
- if (arg === "--json") {
20
- options.json = true;
21
- continue;
22
- }
23
-
24
- if (arg === "--write-local") {
25
- options.writeLocal = true;
26
- continue;
27
- }
28
-
29
- if (arg === "--from" || arg === "--admitted-at") {
30
- const next = args[index + 1];
31
- if (!next || next.startsWith("--")) {
32
- return {
33
- ok: false,
34
- error: `${localize(
35
- `nimicoding admit-high-risk-decision refused: ${arg} requires a value.`,
36
- `nimicoding admit-high-risk-decision 已拒绝:${arg} 需要一个值。`,
37
- )}\n`,
38
- };
39
- }
40
-
41
- if (arg === "--from") {
42
- options.fromPath = next;
43
- } else {
44
- options.admittedAt = next;
45
- }
46
- index += 1;
47
- continue;
48
- }
49
-
50
- return {
51
- ok: false,
52
- error: `${localize(
53
- `nimicoding admit-high-risk-decision refused: unknown option ${arg}.`,
54
- `nimicoding admit-high-risk-decision 已拒绝:未知选项 ${arg}。`,
55
- )}\n`,
56
- };
57
- }
58
-
59
- if (!options.fromPath) {
60
- return {
61
- ok: false,
62
- error: `${localize(
63
- "nimicoding admit-high-risk-decision refused: explicit --from is required.",
64
- "nimicoding admit-high-risk-decision 已拒绝:必须显式提供 `--from`。",
65
- )}\n`,
66
- };
67
- }
68
-
69
- if (!options.admittedAt) {
70
- return {
71
- ok: false,
72
- error: `${localize(
73
- "nimicoding admit-high-risk-decision refused: explicit --admitted-at is required.",
74
- "nimicoding admit-high-risk-decision 已拒绝:必须显式提供 `--admitted-at`。",
75
- )}\n`,
76
- };
77
- }
78
-
79
- return { ok: true, options };
80
- }
81
-
82
- export async function runAdmitHighRiskDecision(args) {
83
- const parsed = parseAdmitHighRiskDecisionOptions(args);
84
- if (!parsed.ok) {
85
- process.stderr.write(parsed.error);
86
- return 2;
87
- }
88
-
89
- const payload = await buildHighRiskAdmissionPayload(process.cwd(), parsed.options);
90
- if (payload.inputError) {
91
- process.stderr.write(payload.error);
92
- return payload.exitCode;
93
- }
94
-
95
- if (payload.ok && parsed.options.writeLocal) {
96
- await writeHighRiskAdmission(process.cwd(), payload);
97
- }
98
-
99
- if (parsed.options.json) {
100
- process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
101
- } else {
102
- process.stdout.write(formatHighRiskAdmissionPayload(payload));
103
- }
104
-
105
- return payload.exitCode;
106
- }
107
-
108
- export { parseAdmitHighRiskDecisionOptions };