@harness-forge/cli 1.1.1 → 1.2.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 (109) hide show
  1. package/.agents/skills/recursive-structured-analysis/SKILL.md +26 -0
  2. package/.agents/skills/recursive-structured-analysis/agents/openai.yaml +3 -0
  3. package/AGENTS.md +6 -0
  4. package/CHANGELOG.md +3 -0
  5. package/README.md +22 -2
  6. package/dist/application/install/agent-manifest.d.ts +9 -0
  7. package/dist/application/install/agent-manifest.d.ts.map +1 -1
  8. package/dist/application/install/agent-manifest.js +42 -1
  9. package/dist/application/install/agent-manifest.js.map +1 -1
  10. package/dist/application/install/apply-install.d.ts +1 -1
  11. package/dist/application/install/apply-install.d.ts.map +1 -1
  12. package/dist/application/install/apply-install.js +5 -5
  13. package/dist/application/install/apply-install.js.map +1 -1
  14. package/dist/application/install/generate-guidance.d.ts.map +1 -1
  15. package/dist/application/install/generate-guidance.js +1 -0
  16. package/dist/application/install/generate-guidance.js.map +1 -1
  17. package/dist/application/install/refresh-workspace-runtime.js +1 -1
  18. package/dist/application/install/refresh-workspace-runtime.js.map +1 -1
  19. package/dist/application/install/shared-runtime.d.ts +1 -1
  20. package/dist/application/install/shared-runtime.d.ts.map +1 -1
  21. package/dist/application/install/shared-runtime.js +11 -5
  22. package/dist/application/install/shared-runtime.js.map +1 -1
  23. package/dist/application/install/update-workspace.d.ts +21 -0
  24. package/dist/application/install/update-workspace.d.ts.map +1 -0
  25. package/dist/application/install/update-workspace.js +132 -0
  26. package/dist/application/install/update-workspace.js.map +1 -0
  27. package/dist/application/recursive/derive-language-capabilities.d.ts +4 -0
  28. package/dist/application/recursive/derive-language-capabilities.d.ts.map +1 -0
  29. package/dist/application/recursive/derive-language-capabilities.js +182 -0
  30. package/dist/application/recursive/derive-language-capabilities.js.map +1 -0
  31. package/dist/application/recursive/plan-task.d.ts.map +1 -1
  32. package/dist/application/recursive/plan-task.js +30 -1
  33. package/dist/application/recursive/plan-task.js.map +1 -1
  34. package/dist/application/recursive/run-structured-analysis.d.ts +17 -0
  35. package/dist/application/recursive/run-structured-analysis.d.ts.map +1 -0
  36. package/dist/application/recursive/run-structured-analysis.js +261 -0
  37. package/dist/application/recursive/run-structured-analysis.js.map +1 -0
  38. package/dist/application/runtime/command-catalog.d.ts +16 -0
  39. package/dist/application/runtime/command-catalog.d.ts.map +1 -1
  40. package/dist/application/runtime/command-catalog.js +155 -48
  41. package/dist/application/runtime/command-catalog.js.map +1 -1
  42. package/dist/cli/commands/maintenance.d.ts.map +1 -1
  43. package/dist/cli/commands/maintenance.js +20 -15
  44. package/dist/cli/commands/maintenance.js.map +1 -1
  45. package/dist/cli/commands/recursive.d.ts.map +1 -1
  46. package/dist/cli/commands/recursive.js +103 -1
  47. package/dist/cli/commands/recursive.js.map +1 -1
  48. package/dist/domain/recursive/adr-candidate.d.ts +2 -2
  49. package/dist/domain/recursive/asr.d.ts +2 -2
  50. package/dist/domain/recursive/execution-policy.d.ts +57 -0
  51. package/dist/domain/recursive/execution-policy.d.ts.map +1 -0
  52. package/dist/domain/recursive/execution-policy.js +26 -0
  53. package/dist/domain/recursive/execution-policy.js.map +1 -0
  54. package/dist/domain/recursive/language-capabilities.d.ts +95 -0
  55. package/dist/domain/recursive/language-capabilities.d.ts.map +1 -0
  56. package/dist/domain/recursive/language-capabilities.js +24 -0
  57. package/dist/domain/recursive/language-capabilities.js.map +1 -0
  58. package/dist/domain/recursive/structured-run-result.d.ts +34 -0
  59. package/dist/domain/recursive/structured-run-result.d.ts.map +1 -0
  60. package/dist/domain/recursive/structured-run-result.js +16 -0
  61. package/dist/domain/recursive/structured-run-result.js.map +1 -0
  62. package/dist/domain/recursive/structured-run.d.ts +51 -0
  63. package/dist/domain/recursive/structured-run.d.ts.map +1 -0
  64. package/dist/domain/recursive/structured-run.js +30 -0
  65. package/dist/domain/recursive/structured-run.js.map +1 -0
  66. package/dist/domain/recursive/template-registry.d.ts +12 -12
  67. package/dist/domain/runtime/decision-record.d.ts +4 -4
  68. package/dist/domain/runtime/task-pack.d.ts +2 -2
  69. package/dist/domain/runtime/template-registry.d.ts +6 -6
  70. package/dist/domain/state/install-state.d.ts +1 -1
  71. package/dist/domain/state/install-state.d.ts.map +1 -1
  72. package/dist/infrastructure/recursive/session-store.d.ts +28 -0
  73. package/dist/infrastructure/recursive/session-store.d.ts.map +1 -1
  74. package/dist/infrastructure/recursive/session-store.js +96 -3
  75. package/dist/infrastructure/recursive/session-store.js.map +1 -1
  76. package/dist/shared/constants.d.ts +10 -0
  77. package/dist/shared/constants.d.ts.map +1 -1
  78. package/dist/shared/constants.js +10 -0
  79. package/dist/shared/constants.js.map +1 -1
  80. package/docs/agents.md +13 -0
  81. package/docs/commands.md +33 -3
  82. package/docs/generated-artifacts.md +13 -0
  83. package/docs/install/targets.md +3 -0
  84. package/docs/installation.md +9 -0
  85. package/docs/maintenance-lifecycle.md +8 -3
  86. package/docs/quickstart.md +5 -2
  87. package/docs/release-process.md +2 -0
  88. package/docs/target-support-matrix.md +7 -4
  89. package/manifests/catalog/capability-taxonomy.json +6 -0
  90. package/manifests/catalog/compatibility-matrix.json +103 -1
  91. package/manifests/catalog/flow-artifacts.json +40 -0
  92. package/manifests/catalog/harness-capability-matrix.json +61 -1
  93. package/manifests/catalog/package-surface.json +8 -0
  94. package/manifests/targets/core.json +8 -4
  95. package/package.json +1 -1
  96. package/schemas/runtime/recursive-execution-policy.schema.json +47 -0
  97. package/schemas/runtime/recursive-language-capabilities.schema.json +46 -0
  98. package/schemas/runtime/recursive-run-meta.schema.json +28 -0
  99. package/schemas/runtime/recursive-run-result.schema.json +36 -0
  100. package/scripts/ci/release-smoke.mjs +4 -0
  101. package/scripts/ci/smoke-runner.mjs +12 -0
  102. package/scripts/ci/validate-doc-command-alignment.mjs +19 -2
  103. package/scripts/ci/validate-manifest-runtime-consistency.mjs +12 -1
  104. package/scripts/ci/validate-packed-install-surface.mjs +14 -0
  105. package/skills/recursive-structured-analysis/SKILL.md +48 -0
  106. package/targets/claude-code/adapter.json +3 -2
  107. package/targets/codex/adapter.json +3 -2
  108. package/targets/cursor/adapter.json +3 -2
  109. package/targets/opencode/adapter.json +3 -2
package/docs/agents.md CHANGED
@@ -14,6 +14,9 @@ AI content into the hidden `.hforge/` layer.
14
14
  - `.hforge/library/rules/` and `.hforge/library/knowledge/` for hidden installed rule and knowledge surfaces
15
15
  - `.hforge/runtime/recursive/sessions/` for optional hard-task recursive
16
16
  sessions that stay hidden alongside the rest of the AI layer
17
+ - `.hforge/runtime/recursive/language-capabilities.json` for the canonical
18
+ recursive structured-analysis capability map before deeper recursive
19
+ investigation begins
17
20
  - `docs/authoring/enhanced-skill-import.md` for curated research and validation provenance behind imported skill upgrades
18
21
  - `RESEARCH-SOURCES.md` and `VALIDATION.md` for optional pack-level provenance detail
19
22
 
@@ -29,6 +32,8 @@ AI content into the hidden `.hforge/` layer.
29
32
  - when the application repo should stay clean and treat AI-only content as a hidden support layer
30
33
  - when a task is multi-hop, ambiguous, or architecture-heavy enough to justify
31
34
  an explicit recursive session instead of growing the prompt
35
+ - when a recursive session needs one bounded structured analysis step with a
36
+ durable run record instead of chat-only reasoning
32
37
 
33
38
  ## Discovery rule
34
39
 
@@ -39,6 +44,14 @@ AI content into the hidden `.hforge/` layer.
39
44
  - in installed workspaces, recursive runtime state lives under
40
45
  `.hforge/runtime/recursive/sessions/<sessionId>/` and should be treated as
41
46
  hidden operational state rather than product code
47
+ - use recursive structured analysis as the promoted execution surface for
48
+ recursive investigation, and treat the REPL as optional rather than
49
+ authoritative
50
+ - treat `.hforge/runtime/recursive/language-capabilities.json` as the honest
51
+ recursive support contract before claiming a language has deep or native
52
+ structured-analysis support
53
+ - treat Cursor and OpenCode recursive promotion as translated shared-runtime
54
+ guidance, not native parity with Codex or Claude Code
42
55
  - for custom agents that do not want to parse prose only, load
43
56
  `.hforge/agent-manifest.json` first and treat every surface it marks
44
57
  `treatAsProductCode: false` as AI-layer content rather than application code
package/docs/commands.md CHANGED
@@ -23,6 +23,7 @@ maintenance commands through the `hforge` CLI.
23
23
  - `shell setup` and `shell status` for optional PATH integration without forcing a global npm install
24
24
  - `status` for current workspace state
25
25
  - `refresh` for shared runtime regeneration after install or maintenance work
26
+ - `update` and `upgrade` for non-destructive package refresh from the latest published Harness Forge version while preserving gathered runtime state
26
27
  - `task` for task-runtime inspection
27
28
  - `pack` for task-pack inspection
28
29
  - `review` for runtime and decision-health summaries
@@ -36,9 +37,11 @@ maintenance commands through the `hforge` CLI.
36
37
  Cursor, and OpenCode support inspection
37
38
  - `template validate` and `template suggest` for template and workflow flows
38
39
  - `flow status` for recoverable Speckit state
39
- - `recursive plan`, `recursive inspect`, `recursive adr`, `recursive resume`,
40
- `recursive finalize`, `recursive compact`, and `recursive repl` for optional
41
- recursive-runtime operation on difficult work
40
+ - `recursive plan`, `recursive capabilities`, `recursive run`,
41
+ `recursive runs`, `recursive inspect-run`, `recursive inspect`,
42
+ `recursive adr`, `recursive resume`, `recursive finalize`,
43
+ `recursive compact`, and `recursive repl` for optional recursive-runtime
44
+ operation on difficult work
42
45
  - `observability summarize` and `observability report` for local metrics and
43
46
  effectiveness review
44
47
  - `parallel plan`, `parallel status`, and `parallel merge-check` for shard
@@ -53,6 +56,12 @@ maintenance commands through the `hforge` CLI.
53
56
  Use bare `hforge` after `shell setup`, after a global install, or by replacing
54
57
  it with the workspace-local launcher under `.hforge/generated/bin/`.
55
58
 
59
+ For agents inside an installed workspace, the safest execution order is:
60
+
61
+ 1. `.hforge/generated/bin/hforge.cmd` or `.ps1` on Windows, or `./.hforge/generated/bin/hforge` on POSIX
62
+ 2. bare `hforge`
63
+ 3. `npx @harness-forge/cli`
64
+
56
65
  ```bash
57
66
  npx @harness-forge/cli
58
67
  npx @harness-forge/cli shell setup --yes
@@ -63,6 +72,8 @@ hforge shell status --json
63
72
  hforge init --root . --json
64
73
  hforge bootstrap --root . --yes
65
74
  hforge refresh --root . --json
75
+ hforge update --root . --dry-run --yes
76
+ hforge update --root . --yes
66
77
  hforge task list --root . --json
67
78
  hforge task inspect TASK-001 --root . --json
68
79
  hforge pack inspect TASK-001 --root . --json
@@ -81,6 +92,10 @@ hforge template validate --json
81
92
  hforge template suggest bugfix
82
93
  hforge flow status --json
83
94
  hforge recursive plan "investigate billing retry behavior" --task-id TASK-001 --json
95
+ hforge recursive capabilities --root . --json
96
+ hforge recursive run RS-123 --file analyze-billing.mjs --json
97
+ hforge recursive runs RS-123 --json
98
+ hforge recursive inspect-run RS-123 RUN-001 --json
84
99
  hforge recursive inspect RS-123 --json
85
100
  hforge observability summarize --json
86
101
  hforge observability report . --json
@@ -95,6 +110,12 @@ hforge upgrade-surface --json
95
110
  hforge prune --json
96
111
  ```
97
112
 
113
+ The `update` and `upgrade` commands download the requested published package
114
+ version or dist-tag, reapply managed surfaces, write an install-state backup
115
+ under `.hforge/state/`, and intentionally preserve gathered runtime state such
116
+ as task artifacts, decision records, recursive sessions, and observability
117
+ signals.
118
+
98
119
  ## Maintainer source-checkout examples
99
120
 
100
121
  When developing Harness Forge itself from a source checkout, the equivalent
@@ -177,6 +198,10 @@ hforge parallel merge-check --json
177
198
 
178
199
  ```bash
179
200
  hforge recursive plan "investigate billing retry behavior across the route and service" --task-id TASK-001 --json
201
+ hforge recursive capabilities --root . --json
202
+ hforge recursive run RS-123 --file analyze-billing.mjs --json
203
+ hforge recursive runs RS-123 --json
204
+ hforge recursive inspect-run RS-123 RUN-001 --json
180
205
  hforge recursive inspect RS-123 --json
181
206
  hforge recursive compact RS-123 --json
182
207
  hforge recursive finalize RS-123 --json
@@ -187,6 +212,11 @@ The `recursive plan` entrypoint writes a durable draft session under
187
212
  budget policy, the seeded handles, and the current promotion state, and leaves
188
213
  ordinary non-recursive task/runtime flows untouched.
189
214
 
215
+ The promoted recursive structured-analysis path uses
216
+ `.hforge/runtime/recursive/language-capabilities.json` as the canonical
217
+ workspace capability map and records run artifacts under
218
+ `.hforge/runtime/recursive/sessions/<sessionId>/runs/`.
219
+
190
220
  ### Inspect the hidden runtime after initialization
191
221
 
192
222
  ```bash
@@ -85,8 +85,19 @@ explicit and recoverable.
85
85
  template registry for task-time artifacts
86
86
  - `.hforge/runtime/recursive/sessions/RS-XXX/session.json` is the durable draft
87
87
  or active recursive session identity, budget, handles, and tool surface
88
+ - `.hforge/runtime/recursive/language-capabilities.json` is the canonical
89
+ recursive structured-analysis capability map for language adapter depth,
90
+ degraded states, and native-execution posture
91
+ - `.hforge/runtime/recursive/sessions/RS-XXX/execution-policy.json` is the
92
+ session-scoped structured-execution posture for recursive analysis runs
93
+ - `.hforge/runtime/recursive/sessions/RS-XXX/capabilities.json` is the
94
+ session-visible recursive capability snapshot used by structured runs
88
95
  - `.hforge/runtime/recursive/sessions/RS-XXX/memory.json` is compact
89
96
  recursive-session working memory for the current investigation
97
+ - `.hforge/runtime/recursive/sessions/RS-XXX/runs/RUN-XXX/meta.json` is the
98
+ durable metadata record for one structured recursive analysis run
99
+ - `.hforge/runtime/recursive/sessions/RS-XXX/runs/RUN-XXX/result.json` is the
100
+ machine-readable result for one structured recursive analysis run
90
101
  - `.hforge/runtime/recursive/sessions/RS-XXX/trace.jsonl` is append-only
91
102
  recursive trace output for operator auditability
92
103
  - `.hforge/runtime/recursive/sessions/RS-XXX/summary.json` is the deterministic
@@ -94,6 +105,8 @@ explicit and recoverable.
94
105
  - `.specify/state/flow-state.json` is runtime state, not an authored source
95
106
  - `.hforge/state/install-state.json` is generated install-state and runtime-version metadata, not authored product content
96
107
  - `.hforge/state/post-install-guidance.txt` is generated operator guidance for init, install, and recovery flows
108
+ - `.hforge/state/update-backup-*.json` is the pre-update install-state snapshot
109
+ written before a non-destructive `hforge update` or `hforge upgrade` apply run
97
110
 
98
111
  ## Artifact lineage rules
99
112
 
@@ -17,6 +17,7 @@ The runtime now hydrates baseline repo-intelligence artifacts during bootstrap:
17
17
  - `.hforge/runtime/repo/recommendations.json`
18
18
  - `.hforge/runtime/repo/instruction-plan.json`
19
19
  - `.hforge/runtime/findings/risk-signals.json`
20
+ - `.hforge/runtime/recursive/language-capabilities.json`
20
21
 
21
22
  Canonical target support truth lives in
22
23
  `manifests/catalog/harness-capability-matrix.json`.
@@ -27,3 +28,5 @@ Use it when you need to answer:
27
28
  - what fallback behavior degraded support requires
28
29
  - whether a support claim is still aligned with the generated
29
30
  `docs/target-support-matrix.md` surface
31
+ - whether recursive structured analysis is promoted natively or only through
32
+ translated shared-runtime guidance for the selected target
@@ -47,8 +47,15 @@ After install changes, use:
47
47
 
48
48
  ```bash
49
49
  hforge refresh --root /path/to/your/workspace --json
50
+ hforge update --root /path/to/your/workspace --dry-run --yes
51
+ hforge update --root /path/to/your/workspace --yes
50
52
  ```
51
53
 
54
+ The non-destructive updater downloads the requested published Harness Forge
55
+ version or dist-tag, reapplies managed surfaces, writes an install-state backup
56
+ under `.hforge/state/`, and preserves gathered runtime state such as task
57
+ artifacts, decision records, recursive sessions, and observability outputs.
58
+
52
59
  Every successful install also writes a shared runtime summary under
53
60
  `.hforge/runtime/` and materializes the canonical hidden AI layer under
54
61
  `.hforge/library/` and `.hforge/templates/`:
@@ -76,6 +83,8 @@ Every successful install also writes a shared runtime summary under
76
83
  - `.hforge/runtime/recursive/sessions/RS-XXX/session.json` appears only when an
77
84
  operator explicitly escalates hard work into recursive mode and records the
78
85
  durable draft session, budget, handles, and promotion state
86
+ - `.hforge/runtime/recursive/language-capabilities.json` records the canonical
87
+ recursive structured-analysis capability truth for the workspace
79
88
 
80
89
  ## Shell integration vs global install
81
90
 
@@ -14,6 +14,7 @@ Harness Forge maintenance should answer three questions quickly:
14
14
  | `audit` | detailed install-state summary |
15
15
  | `diff-install` | compare recorded managed files against what still exists |
16
16
  | `refresh` | rewrite shared runtime summaries and baseline repo-intelligence artifacts |
17
+ | `update` / `upgrade` | download the requested published Harness Forge version and reapply managed surfaces while preserving gathered runtime state |
17
18
  | `sync` | normalize duplicated install-state entries |
18
19
  | `upgrade-surface` | explain how to refresh an older install safely |
19
20
  | `prune` | identify duplicate recorded writes before cleanup |
@@ -24,9 +25,10 @@ Harness Forge maintenance should answer three questions quickly:
24
25
  1. run `doctor` to spot obvious drift
25
26
  2. run `audit` for the full install-state summary
26
27
  3. use `refresh` when installed targets are correct but shared runtime summaries drifted
27
- 4. use `diff-install` and `sync` to understand state mismatch
28
- 4. use `upgrade-surface` before refreshing an older install
29
- 5. use `prune` only after reviewing the candidates
28
+ 4. use `update --dry-run --yes` to preview a non-destructive package refresh when you want newer managed content
29
+ 5. use `diff-install` and `sync` to understand state mismatch
30
+ 6. use `upgrade-surface` before refreshing an older install if you only need guidance
31
+ 7. use `prune` only after reviewing the candidates
30
32
 
31
33
  ## Example commands
32
34
 
@@ -34,6 +36,8 @@ Harness Forge maintenance should answer three questions quickly:
34
36
  hforge doctor --json
35
37
  hforge audit --json
36
38
  hforge refresh --root . --json
39
+ hforge update --root . --dry-run --yes
40
+ hforge update --root . --yes
37
41
  hforge diff-install --json
38
42
  hforge sync --json
39
43
  hforge upgrade-surface --json
@@ -44,6 +48,7 @@ hforge prune --json
44
48
 
45
49
  - maintenance commands should be diagnostic first and destructive second
46
50
  - drift should point to concrete files or bundle ids
51
+ - update should preserve gathered runtime state such as task artifacts, decision indexes, recursive sessions, and observability signals
47
52
  - upgrade guidance should tell the operator what to rerun next
48
53
  - prune should never remove state silently without explicit opt-in
49
54
  - refresh should be safe to rerun and should not require reinstalling bundles just to regenerate runtime summaries
@@ -8,6 +8,8 @@ npx @harness-forge/cli init --root . --agent codex --dry-run
8
8
  npx @harness-forge/cli bootstrap --root .
9
9
  npx @harness-forge/cli init --root . --json
10
10
  hforge commands --json
11
+ hforge recursive capabilities --root . --json
12
+ hforge update --root . --dry-run --yes
11
13
  npm run validate:release
12
14
  ```
13
15
 
@@ -37,5 +39,6 @@ npm run validate:release
37
39
  6. choose a target (`claude-code` or `codex`)
38
40
  7. preview the install plan for the language and capability bundles you need
39
41
  8. inspect an existing repository with `recommend` when the right pack is not obvious
40
- 9. use `refresh`, `task`, `pack`, `review`, and `export` to inspect the hidden runtime once work is in flight
41
- 10. use `.specify/` and the promoted skills for real work
42
+ 9. use `refresh`, `task`, `pack`, `review`, `export`, and `recursive capabilities` to inspect the hidden runtime once work is in flight
43
+ 10. use `update --dry-run --yes` before refreshing to the latest published Harness Forge package in place
44
+ 11. use `.specify/` and the promoted skills for real work
@@ -16,6 +16,8 @@
16
16
  - `npm run validate:doc-command-alignment`
17
17
  - `npm run validate:runtime-consistency`
18
18
  - `npm run validate:release`
19
+ - confirm recursive structured-analysis docs and generated-artifact surfaces stay aligned
20
+ - confirm `hforge update --root <repo> --dry-run --yes` still previews a safe non-destructive refresh path
19
21
 
20
22
  ## Publish posture
21
23
 
@@ -24,10 +24,10 @@ cross-surface relationships.
24
24
 
25
25
  | Target | Overall support | Strengths | Gaps |
26
26
  | --- | --- | --- | --- |
27
- | `codex` | full | Templates and docs, Workflow validation, Repo intelligence, Flow orchestration, Maintenance commands, Local observability | Typed hooks |
28
- | `claude-code` | full | Templates and docs, Workflow validation, Repo intelligence, Flow orchestration, Typed hooks, Maintenance commands, Local observability | none |
29
- | `cursor` | partial | none | Templates and docs, Workflow validation, Repo intelligence, Flow orchestration, Typed hooks, Maintenance commands, Local observability |
30
- | `opencode` | partial | none | Templates and docs, Workflow validation, Repo intelligence, Flow orchestration, Typed hooks, Maintenance commands, Local observability |
27
+ | `codex` | full | Templates and docs, Workflow validation, Repo intelligence, Recursive structured analysis, Flow orchestration, Maintenance commands, Local observability | Typed hooks |
28
+ | `claude-code` | full | Templates and docs, Workflow validation, Repo intelligence, Recursive structured analysis, Flow orchestration, Typed hooks, Maintenance commands, Local observability | none |
29
+ | `cursor` | partial | none | Templates and docs, Workflow validation, Repo intelligence, Recursive structured analysis, Flow orchestration, Typed hooks, Maintenance commands, Local observability |
30
+ | `opencode` | partial | none | Templates and docs, Workflow validation, Repo intelligence, Recursive structured analysis, Flow orchestration, Typed hooks, Maintenance commands, Local observability |
31
31
 
32
32
  ## Capability honesty
33
33
 
@@ -36,6 +36,7 @@ cross-surface relationships.
36
36
  | Templates and docs | full (native) | full (native) | partial (documentation-only) | partial (documentation-only) |
37
37
  | Workflow validation | full (native) | full (native) | partial (documentation-only) | partial (documentation-only) |
38
38
  | Repo intelligence | full (native) | full (native) | partial (translated) | partial (translated) |
39
+ | Recursive structured analysis | full (native) | full (native) | partial (translated) | partial (translated) |
39
40
  | Flow orchestration | full (native) | full (native) | unsupported (unsupported) | unsupported (unsupported) |
40
41
  | Typed hooks | partial (documentation-only) | full (native) | unsupported (unsupported) | unsupported (unsupported) |
41
42
  | Maintenance commands | full (native) | full (native) | partial (documentation-only) | partial (documentation-only) |
@@ -56,6 +57,7 @@ cross-surface relationships.
56
57
  - Templates and docs: partial via documentation-only. Fallback: Use generated docs and manifests as the support surface instead of expecting a native Cursor runtime install. Cursor can consume packaged docs and portable guidance, but not a first-class runtime mapping.
57
58
  - Workflow validation: partial via documentation-only. Fallback: Run the validators from the repository rather than relying on a Cursor-specific runtime integration. Validation guidance is portable, but no Cursor-native runtime wiring is shipped.
58
59
  - Repo intelligence: partial via translated. Fallback: Inspect `.hforge/runtime/index.json` and `.hforge/library/`, then run the intelligence scripts directly and treat the output as operator guidance. Repo intelligence is available as thin bridges, portable scripts, and generated hidden `.hforge/` state rather than a native Cursor runtime surface.
60
+ - Recursive structured analysis: partial via translated. Fallback: Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native Cursor parity. Cursor receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload.
59
61
  - Flow orchestration: unsupported via unsupported. Fallback: Do not rely on packaged flow recovery for Cursor; use `.hforge/runtime/index.json` and the thin bridge surfaces only. No first-class Cursor flow-state recovery surface is shipped beyond the hidden `.hforge/` runtime summary and bridge surfaces.
60
62
  - Typed hooks: unsupported via unsupported. Fallback: Use hook docs as references only; do not claim native Cursor hook execution. Cursor does not have a packaged native hook runtime in this repository.
61
63
  - Maintenance commands: partial via documentation-only. Fallback: Run the maintenance commands from the repository rather than expecting Cursor-specific runtime integration. Maintenance guidance is portable, but a Cursor-native runtime surface is not shipped.
@@ -66,6 +68,7 @@ cross-surface relationships.
66
68
  - Templates and docs: partial via documentation-only. Fallback: Use generated docs and manifests as the support surface instead of expecting a native OpenCode runtime install. OpenCode can consume packaged docs and portable guidance, but not a first-class runtime mapping.
67
69
  - Workflow validation: partial via documentation-only. Fallback: Run the validators from the repository rather than relying on an OpenCode-specific runtime integration. Validation guidance is portable, but no OpenCode-native runtime wiring is shipped.
68
70
  - Repo intelligence: partial via translated. Fallback: Inspect `.hforge/runtime/index.json` and `.hforge/library/`, then run the intelligence scripts directly and treat the output as operator guidance. Repo intelligence is available as thin bridges, portable scripts, and generated hidden `.hforge/` state rather than a native OpenCode runtime surface.
71
+ - Recursive structured analysis: partial via translated. Fallback: Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native OpenCode parity. OpenCode receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload.
69
72
  - Flow orchestration: unsupported via unsupported. Fallback: Do not rely on packaged flow recovery for OpenCode; use `.hforge/runtime/index.json` and the thin bridge surfaces only. No first-class OpenCode flow-state recovery surface is shipped beyond the hidden `.hforge/` runtime summary and bridge surfaces.
70
73
  - Typed hooks: unsupported via unsupported. Fallback: Use hook docs as references only; do not claim native OpenCode hook execution. OpenCode does not have a packaged native hook runtime in this repository.
71
74
  - Maintenance commands: partial via documentation-only. Fallback: Run the maintenance commands from the repository rather than expecting OpenCode-specific runtime integration. Maintenance guidance is portable, but an OpenCode-native runtime surface is not shipped.
@@ -19,6 +19,12 @@
19
19
  "displayName": "Repo intelligence",
20
20
  "description": "Repository scanning, framework detection, and evidence-backed recommendation output."
21
21
  },
22
+ {
23
+ "id": "recursive-structured-analysis",
24
+ "family": "orchestration",
25
+ "displayName": "Recursive structured analysis",
26
+ "description": "Session-scoped structured recursive analysis, capability truth, durable run records, and related bridge guidance."
27
+ },
22
28
  {
23
29
  "id": "flow-orchestration",
24
30
  "family": "orchestration",
@@ -1,5 +1,5 @@
1
1
  {
2
- "generatedAt": "2026-03-28T16:55:31.339Z",
2
+ "generatedAt": "2026-03-28T21:42:25.027Z",
3
3
  "entries": [
4
4
  {
5
5
  "subjectType": "language",
@@ -775,6 +775,23 @@
775
775
  "fallbackBehavior": "Inspect .hforge/observability artifacts directly.",
776
776
  "notes": "Local observability is available for Claude Code workflows."
777
777
  },
778
+ {
779
+ "subjectType": "target",
780
+ "subjectId": "claude-code",
781
+ "relationType": "supports-capability",
782
+ "relatedType": "capability",
783
+ "relatedId": "recursive-structured-analysis",
784
+ "supportLevel": "full",
785
+ "supportMode": "native",
786
+ "confidence": 0.96,
787
+ "evidenceSource": [
788
+ "src/cli/commands/recursive.ts",
789
+ "src/application/recursive/run-structured-analysis.ts",
790
+ "targets/claude-code/adapter.json"
791
+ ],
792
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json`, recursive session artifacts, and the promoted recursive CLI surfaces.",
793
+ "notes": "Claude Code promotes recursive structured analysis through the shared runtime capability map, structured run commands, and durable session artifacts."
794
+ },
778
795
  {
779
796
  "subjectType": "target",
780
797
  "subjectId": "claude-code",
@@ -1055,6 +1072,14 @@
1055
1072
  "relatedId": "python-engineering",
1056
1073
  "supportLevel": "full"
1057
1074
  },
1075
+ {
1076
+ "subjectType": "target",
1077
+ "subjectId": "claude-code",
1078
+ "relationType": "supports",
1079
+ "relatedType": "skill",
1080
+ "relatedId": "recursive-structured-analysis",
1081
+ "supportLevel": "full"
1082
+ },
1058
1083
  {
1059
1084
  "subjectType": "target",
1060
1085
  "subjectId": "claude-code",
@@ -1545,6 +1570,23 @@
1545
1570
  "fallbackBehavior": "Inspect .hforge/observability artifacts directly.",
1546
1571
  "notes": "Local observability is available for Codex workflows."
1547
1572
  },
1573
+ {
1574
+ "subjectType": "target",
1575
+ "subjectId": "codex",
1576
+ "relationType": "supports-capability",
1577
+ "relatedType": "capability",
1578
+ "relatedId": "recursive-structured-analysis",
1579
+ "supportLevel": "full",
1580
+ "supportMode": "native",
1581
+ "confidence": 0.95,
1582
+ "evidenceSource": [
1583
+ "src/cli/commands/recursive.ts",
1584
+ "src/application/recursive/run-structured-analysis.ts",
1585
+ "targets/codex/adapter.json"
1586
+ ],
1587
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json`, recursive session artifacts, and the promoted recursive CLI surfaces.",
1588
+ "notes": "Codex promotes recursive structured analysis through the shared runtime capability map, structured run commands, and durable session artifacts."
1589
+ },
1548
1590
  {
1549
1591
  "subjectType": "target",
1550
1592
  "subjectId": "codex",
@@ -1825,6 +1867,14 @@
1825
1867
  "relatedId": "python-engineering",
1826
1868
  "supportLevel": "full"
1827
1869
  },
1870
+ {
1871
+ "subjectType": "target",
1872
+ "subjectId": "codex",
1873
+ "relationType": "supports",
1874
+ "relatedType": "skill",
1875
+ "relatedId": "recursive-structured-analysis",
1876
+ "supportLevel": "full"
1877
+ },
1828
1878
  {
1829
1879
  "subjectType": "target",
1830
1880
  "subjectId": "codex",
@@ -2349,6 +2399,23 @@
2349
2399
  "fallbackBehavior": "Inspect the local observability artifacts directly from the repository.",
2350
2400
  "notes": "Observability artifacts are portable, but no native Cursor runtime surface is shipped."
2351
2401
  },
2402
+ {
2403
+ "subjectType": "target",
2404
+ "subjectId": "cursor",
2405
+ "relationType": "supports-capability",
2406
+ "relatedType": "capability",
2407
+ "relatedId": "recursive-structured-analysis",
2408
+ "supportLevel": "partial",
2409
+ "supportMode": "translated",
2410
+ "confidence": 0.84,
2411
+ "evidenceSource": [
2412
+ "targets/cursor/adapter.json",
2413
+ "src/cli/commands/recursive.ts",
2414
+ "docs/agents.md"
2415
+ ],
2416
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native Cursor parity.",
2417
+ "notes": "Cursor receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload."
2418
+ },
2352
2419
  {
2353
2420
  "subjectType": "target",
2354
2421
  "subjectId": "cursor",
@@ -2656,6 +2723,15 @@
2656
2723
  "supportLevel": "partial",
2657
2724
  "notes": "Cursor only provides partial skill support for python-engineering."
2658
2725
  },
2726
+ {
2727
+ "subjectType": "target",
2728
+ "subjectId": "cursor",
2729
+ "relationType": "supports",
2730
+ "relatedType": "skill",
2731
+ "relatedId": "recursive-structured-analysis",
2732
+ "supportLevel": "partial",
2733
+ "notes": "Cursor only provides partial skill support for recursive-structured-analysis."
2734
+ },
2659
2735
  {
2660
2736
  "subjectType": "target",
2661
2737
  "subjectId": "cursor",
@@ -3199,6 +3275,23 @@
3199
3275
  "fallbackBehavior": "Inspect the local observability artifacts directly from the repository.",
3200
3276
  "notes": "Observability artifacts are portable, but no native OpenCode runtime surface is shipped."
3201
3277
  },
3278
+ {
3279
+ "subjectType": "target",
3280
+ "subjectId": "opencode",
3281
+ "relationType": "supports-capability",
3282
+ "relatedType": "capability",
3283
+ "relatedId": "recursive-structured-analysis",
3284
+ "supportLevel": "partial",
3285
+ "supportMode": "translated",
3286
+ "confidence": 0.84,
3287
+ "evidenceSource": [
3288
+ "targets/opencode/adapter.json",
3289
+ "src/cli/commands/recursive.ts",
3290
+ "docs/agents.md"
3291
+ ],
3292
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native OpenCode parity.",
3293
+ "notes": "OpenCode receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload."
3294
+ },
3202
3295
  {
3203
3296
  "subjectType": "target",
3204
3297
  "subjectId": "opencode",
@@ -3506,6 +3599,15 @@
3506
3599
  "supportLevel": "partial",
3507
3600
  "notes": "OpenCode only provides partial skill support for python-engineering."
3508
3601
  },
3602
+ {
3603
+ "subjectType": "target",
3604
+ "subjectId": "opencode",
3605
+ "relationType": "supports",
3606
+ "relatedType": "skill",
3607
+ "relatedId": "recursive-structured-analysis",
3608
+ "supportLevel": "partial",
3609
+ "notes": "OpenCode only provides partial skill support for recursive-structured-analysis."
3610
+ },
3509
3611
  {
3510
3612
  "subjectType": "target",
3511
3613
  "subjectId": "opencode",
@@ -288,6 +288,30 @@
288
288
  "required": false,
289
289
  "lineageRole": "recursive-session"
290
290
  },
291
+ {
292
+ "id": "recursive-runtime-language-capabilities",
293
+ "stage": "shared",
294
+ "pathPattern": ".hforge/runtime/recursive/language-capabilities.json",
295
+ "generatedBy": "recursive-runtime",
296
+ "required": false,
297
+ "lineageRole": "recursive-language-capabilities"
298
+ },
299
+ {
300
+ "id": "recursive-runtime-execution-policy",
301
+ "stage": "shared",
302
+ "pathPattern": ".hforge/runtime/recursive/sessions/*/execution-policy.json",
303
+ "generatedBy": "recursive-runtime",
304
+ "required": false,
305
+ "lineageRole": "recursive-execution-policy"
306
+ },
307
+ {
308
+ "id": "recursive-runtime-session-capabilities",
309
+ "stage": "shared",
310
+ "pathPattern": ".hforge/runtime/recursive/sessions/*/capabilities.json",
311
+ "generatedBy": "recursive-runtime",
312
+ "required": false,
313
+ "lineageRole": "recursive-session-capabilities"
314
+ },
291
315
  {
292
316
  "id": "recursive-runtime-memory",
293
317
  "stage": "shared",
@@ -312,6 +336,22 @@
312
336
  "required": false,
313
337
  "lineageRole": "recursive-summary"
314
338
  },
339
+ {
340
+ "id": "recursive-runtime-run-meta",
341
+ "stage": "shared",
342
+ "pathPattern": ".hforge/runtime/recursive/sessions/*/runs/*/meta.json",
343
+ "generatedBy": "recursive-runtime",
344
+ "required": false,
345
+ "lineageRole": "recursive-structured-run"
346
+ },
347
+ {
348
+ "id": "recursive-runtime-run-result",
349
+ "stage": "shared",
350
+ "pathPattern": ".hforge/runtime/recursive/sessions/*/runs/*/result.json",
351
+ "generatedBy": "recursive-runtime",
352
+ "required": false,
353
+ "lineageRole": "recursive-structured-run-result"
354
+ },
315
355
  {
316
356
  "id": "flow-state",
317
357
  "stage": "shared",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "../../schemas/manifests/harness-capability-matrix.schema.json",
3
3
  "version": 1,
4
- "generatedAt": "2026-03-25T00:00:00.000Z",
4
+ "generatedAt": "2026-03-28T00:00:00.000Z",
5
5
  "targets": [
6
6
  {
7
7
  "targetId": "codex",
@@ -50,6 +50,21 @@
50
50
  "notes": "Repo intelligence is a first-class Codex surface and compiles into the hidden `.hforge/` AI layer.",
51
51
  "fallbackBehavior": "Inspect `.hforge/runtime/index.json` and `.hforge/library/`, or run the intelligence scripts directly if the CLI is unavailable."
52
52
  },
53
+ {
54
+ "capabilityId": "recursive-structured-analysis",
55
+ "supportLevel": "full",
56
+ "supportMode": "native",
57
+ "evidenceSource": [
58
+ "src/cli/commands/recursive.ts",
59
+ "src/application/recursive/run-structured-analysis.ts",
60
+ "targets/codex/adapter.json"
61
+ ],
62
+ "lastValidatedAt": "2026-03-28T00:00:00.000Z",
63
+ "validationMethod": "recursive-runtime-and-adapter-review",
64
+ "confidence": 0.95,
65
+ "notes": "Codex promotes recursive structured analysis through the shared runtime capability map, structured run commands, and durable session artifacts.",
66
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json`, recursive session artifacts, and the promoted recursive CLI surfaces."
67
+ },
53
68
  {
54
69
  "capabilityId": "flow-orchestration",
55
70
  "supportLevel": "full",
@@ -156,6 +171,21 @@
156
171
  "notes": "Repo intelligence is a first-class Claude Code surface and compiles into the hidden `.hforge/` AI layer.",
157
172
  "fallbackBehavior": "Inspect `.hforge/runtime/index.json` and `.hforge/library/`, or run the intelligence scripts directly if the CLI is unavailable."
158
173
  },
174
+ {
175
+ "capabilityId": "recursive-structured-analysis",
176
+ "supportLevel": "full",
177
+ "supportMode": "native",
178
+ "evidenceSource": [
179
+ "src/cli/commands/recursive.ts",
180
+ "src/application/recursive/run-structured-analysis.ts",
181
+ "targets/claude-code/adapter.json"
182
+ ],
183
+ "lastValidatedAt": "2026-03-28T00:00:00.000Z",
184
+ "validationMethod": "recursive-runtime-and-adapter-review",
185
+ "confidence": 0.96,
186
+ "notes": "Claude Code promotes recursive structured analysis through the shared runtime capability map, structured run commands, and durable session artifacts.",
187
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json`, recursive session artifacts, and the promoted recursive CLI surfaces."
188
+ },
159
189
  {
160
190
  "capabilityId": "flow-orchestration",
161
191
  "supportLevel": "full",
@@ -262,6 +292,21 @@
262
292
  "notes": "Repo intelligence is available as thin bridges, portable scripts, and generated hidden `.hforge/` state rather than a native Cursor runtime surface.",
263
293
  "fallbackBehavior": "Inspect `.hforge/runtime/index.json` and `.hforge/library/`, then run the intelligence scripts directly and treat the output as operator guidance."
264
294
  },
295
+ {
296
+ "capabilityId": "recursive-structured-analysis",
297
+ "supportLevel": "partial",
298
+ "supportMode": "translated",
299
+ "evidenceSource": [
300
+ "targets/cursor/adapter.json",
301
+ "src/cli/commands/recursive.ts",
302
+ "docs/agents.md"
303
+ ],
304
+ "lastValidatedAt": "2026-03-28T00:00:00.000Z",
305
+ "validationMethod": "shared-runtime-promotion-review",
306
+ "confidence": 0.84,
307
+ "notes": "Cursor receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload.",
308
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native Cursor parity."
309
+ },
265
310
  {
266
311
  "capabilityId": "flow-orchestration",
267
312
  "supportLevel": "unsupported",
@@ -367,6 +412,21 @@
367
412
  "notes": "Repo intelligence is available as thin bridges, portable scripts, and generated hidden `.hforge/` state rather than a native OpenCode runtime surface.",
368
413
  "fallbackBehavior": "Inspect `.hforge/runtime/index.json` and `.hforge/library/`, then run the intelligence scripts directly and treat the output as operator guidance."
369
414
  },
415
+ {
416
+ "capabilityId": "recursive-structured-analysis",
417
+ "supportLevel": "partial",
418
+ "supportMode": "translated",
419
+ "evidenceSource": [
420
+ "targets/opencode/adapter.json",
421
+ "src/cli/commands/recursive.ts",
422
+ "docs/agents.md"
423
+ ],
424
+ "lastValidatedAt": "2026-03-28T00:00:00.000Z",
425
+ "validationMethod": "shared-runtime-promotion-review",
426
+ "confidence": 0.84,
427
+ "notes": "OpenCode receives recursive structured-analysis promotion through shared-runtime capability maps and durable session artifacts rather than a native target runtime payload.",
428
+ "fallbackBehavior": "Use `.hforge/runtime/recursive/language-capabilities.json` and recursive session artifacts as the honest support surface instead of claiming native OpenCode parity."
429
+ },
370
430
  {
371
431
  "capabilityId": "flow-orchestration",
372
432
  "supportLevel": "unsupported",