auditor-lambda 0.2.6 → 0.2.9

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 (125) hide show
  1. package/README.md +29 -7
  2. package/audit-code-wrapper-lib.mjs +1605 -330
  3. package/dist/adapters/eslint.js +9 -5
  4. package/dist/cli.d.ts +42 -1
  5. package/dist/cli.js +192 -80
  6. package/dist/coverage.d.ts +2 -2
  7. package/dist/coverage.js +5 -5
  8. package/dist/extractors/bucketing.d.ts +4 -0
  9. package/dist/extractors/bucketing.js +6 -2
  10. package/dist/extractors/disposition.d.ts +4 -0
  11. package/dist/extractors/disposition.js +15 -2
  12. package/dist/extractors/fileInventory.js +24 -28
  13. package/dist/extractors/flows.d.ts +5 -0
  14. package/dist/extractors/flows.js +25 -39
  15. package/dist/extractors/pathPatterns.d.ts +13 -3
  16. package/dist/extractors/pathPatterns.js +116 -53
  17. package/dist/extractors/risk.js +7 -1
  18. package/dist/extractors/surfaces.d.ts +4 -0
  19. package/dist/extractors/surfaces.js +11 -11
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.js +2 -1
  22. package/dist/io/artifacts.d.ts +59 -44
  23. package/dist/io/artifacts.js +80 -120
  24. package/dist/io/json.d.ts +2 -0
  25. package/dist/io/json.js +65 -19
  26. package/dist/io/runArtifacts.d.ts +2 -1
  27. package/dist/io/runArtifacts.js +44 -7
  28. package/dist/mcp/server.d.ts +1 -0
  29. package/dist/mcp/server.js +579 -0
  30. package/dist/orchestrator/advance.js +84 -56
  31. package/dist/orchestrator/dependencyMap.js +9 -13
  32. package/dist/orchestrator/executors.js +7 -2
  33. package/dist/orchestrator/flowCoverage.js +11 -5
  34. package/dist/orchestrator/flowPlanning.d.ts +7 -2
  35. package/dist/orchestrator/flowPlanning.js +46 -21
  36. package/dist/orchestrator/flowRequeue.js +29 -9
  37. package/dist/orchestrator/internalExecutors.d.ts +2 -1
  38. package/dist/orchestrator/internalExecutors.js +130 -69
  39. package/dist/orchestrator/planning.js +25 -3
  40. package/dist/orchestrator/requeue.js +20 -5
  41. package/dist/orchestrator/resultIngestion.js +5 -6
  42. package/dist/orchestrator/runtimeValidation.d.ts +7 -2
  43. package/dist/orchestrator/runtimeValidation.js +61 -49
  44. package/dist/orchestrator/runtimeValidationUpdate.js +2 -4
  45. package/dist/orchestrator/state.js +18 -13
  46. package/dist/orchestrator/taskBuilder.d.ts +4 -2
  47. package/dist/orchestrator/taskBuilder.js +153 -52
  48. package/dist/orchestrator/trivialAudit.js +8 -5
  49. package/dist/orchestrator/unitBuilder.d.ts +3 -1
  50. package/dist/orchestrator/unitBuilder.js +24 -16
  51. package/dist/prompts/renderWorkerPrompt.d.ts +1 -1
  52. package/dist/prompts/renderWorkerPrompt.js +19 -10
  53. package/dist/providers/claudeCodeProvider.d.ts +4 -1
  54. package/dist/providers/claudeCodeProvider.js +8 -5
  55. package/dist/providers/localSubprocessProvider.d.ts +4 -0
  56. package/dist/providers/localSubprocessProvider.js +7 -2
  57. package/dist/providers/spawnLoggedCommand.d.ts +9 -1
  58. package/dist/providers/spawnLoggedCommand.js +77 -29
  59. package/dist/reporting/mergeFindings.js +0 -11
  60. package/dist/reporting/synthesis.d.ts +26 -21
  61. package/dist/reporting/synthesis.js +97 -61
  62. package/dist/reporting/workBlocks.d.ts +12 -3
  63. package/dist/reporting/workBlocks.js +124 -70
  64. package/dist/supervisor/operatorHandoff.js +48 -18
  65. package/dist/supervisor/runLedger.d.ts +1 -1
  66. package/dist/supervisor/runLedger.js +112 -5
  67. package/dist/supervisor/sessionConfig.js +10 -10
  68. package/dist/types/externalAnalyzer.d.ts +3 -0
  69. package/dist/types/flowCoverage.d.ts +5 -1
  70. package/dist/types/flowCoverage.js +5 -1
  71. package/dist/types/flows.d.ts +6 -0
  72. package/dist/types/flows.js +1 -1
  73. package/dist/types/runLedger.d.ts +5 -1
  74. package/dist/types/runLedger.js +6 -1
  75. package/dist/types/runtimeValidation.d.ts +13 -3
  76. package/dist/types/runtimeValidation.js +16 -1
  77. package/dist/types/sessionConfig.d.ts +15 -2
  78. package/dist/types/sessionConfig.js +15 -1
  79. package/dist/types/surfaces.d.ts +4 -1
  80. package/dist/types/surfaces.js +1 -1
  81. package/dist/types/workerSession.d.ts +9 -0
  82. package/dist/types/workerSession.js +5 -1
  83. package/dist/types.d.ts +4 -7
  84. package/dist/validation/artifacts.d.ts +1 -1
  85. package/dist/validation/artifacts.js +33 -20
  86. package/dist/validation/auditResults.d.ts +2 -2
  87. package/dist/validation/auditResults.js +71 -114
  88. package/dist/validation/basic.d.ts +9 -1
  89. package/dist/validation/basic.js +40 -3
  90. package/dist/validation/sessionConfig.d.ts +4 -2
  91. package/dist/validation/sessionConfig.js +62 -15
  92. package/docs/agent-integrations.md +67 -38
  93. package/docs/artifacts.md +16 -56
  94. package/docs/bootstrap-install.md +60 -30
  95. package/docs/contract.md +22 -205
  96. package/docs/next-steps.md +76 -44
  97. package/docs/packaging.md +27 -3
  98. package/docs/product-direction.md +22 -0
  99. package/docs/production-launch-bar.md +4 -2
  100. package/docs/production-readiness.md +9 -5
  101. package/docs/releasing.md +98 -0
  102. package/docs/remediation-baseline.md +75 -0
  103. package/docs/run-flow.md +23 -11
  104. package/docs/session-config.md +50 -5
  105. package/docs/supervisor.md +7 -0
  106. package/docs/workflow-refactor-brief.md +177 -0
  107. package/package.json +4 -1
  108. package/schemas/audit_result.schema.json +8 -7
  109. package/schemas/audit_task.schema.json +3 -1
  110. package/schemas/coverage_matrix.schema.json +3 -3
  111. package/schemas/critical_flows.schema.json +6 -2
  112. package/schemas/file_disposition.schema.json +2 -2
  113. package/schemas/finding.schema.json +9 -4
  114. package/schemas/flow_coverage.schema.json +2 -2
  115. package/schemas/repo_manifest.schema.json +4 -4
  116. package/schemas/risk_register.schema.json +2 -2
  117. package/schemas/runtime_validation_report.schema.json +3 -3
  118. package/schemas/runtime_validation_tasks.schema.json +8 -2
  119. package/schemas/surface_manifest.schema.json +6 -3
  120. package/schemas/unit_manifest.schema.json +3 -2
  121. package/skills/audit-code/SKILL.md +16 -2
  122. package/skills/audit-code/audit-code.prompt.md +5 -8
  123. package/schemas/merged_findings.schema.json +0 -19
  124. package/schemas/root_cause_clusters.schema.json +0 -28
  125. package/schemas/synthesis_report.schema.json +0 -61
package/docs/contract.md CHANGED
@@ -1,59 +1,12 @@
1
- # audit-code response contract
1
+ # audit-code Response Contract
2
2
 
3
- This document describes the backend fallback JSON contract for `audit-code`.
3
+ This document follows [audit-goals.md](C:/Code/auditor-lambda/spec/audit-goals.md).
4
4
 
5
- The canonical product remains `/audit-code` in conversation.
5
+ ## Canonical output
6
6
 
7
- ## Backend fallback commands
7
+ The authoritative completed-audit output is repo-root `audit-report.md`.
8
8
 
9
- Repo-local fallback command from the target repository root:
10
-
11
- ```bash
12
- audit-code
13
- ```
14
-
15
- Useful helpers:
16
-
17
- ```bash
18
- audit-code prompt-path
19
- audit-code validate
20
- audit-code explain-task <task_id>
21
- audit-code --batch-results /path/to/audit-results-dir
22
- ```
23
-
24
- Repository-local wrapper equivalent:
25
-
26
- ```bash
27
- node audit-code.mjs
28
- ```
29
-
30
- ## Contract version
31
-
32
- Every canonical wrapper response includes:
33
-
34
- ```text
35
- contract_version: audit-code/v1alpha1
36
- ```
37
-
38
- Consumers should verify this value before assuming the response shape.
39
-
40
- ## Source of truth
41
-
42
- The versioned wrapper schema is:
43
-
44
- ```text
45
- schemas/audit-code-v1alpha1.schema.json
46
- ```
47
-
48
- Artifact-level schemas also live in `schemas/`, including:
49
-
50
- - `schemas/audit_task.schema.json`
51
- - `schemas/audit_result.schema.json`
52
- - `schemas/finding.schema.json`
53
-
54
- ## Top-level wrapper fields
55
-
56
- The current v1alpha1 wrapper contract includes:
9
+ Until completion, the wrapper response remains a JSON envelope with:
57
10
 
58
11
  - `contract_version`
59
12
  - `audit_state`
@@ -65,167 +18,31 @@ The current v1alpha1 wrapper contract includes:
65
18
  - `next_likely_step`
66
19
  - `handoff`
67
20
 
68
- `handoff` is a companion operator-context object. It includes:
69
-
70
- - repo and artifacts paths
71
- - pending obligations
72
- - suggested evidence-import paths and commands
73
- - provider guidance
74
- - stable paths to operator handoff artifacts
75
-
76
- ## Terminal states
77
-
78
- Consumers should continue invoking the same wrapper until:
79
-
80
- 1. `next_likely_step == null`
21
+ ## AuditResult contract
81
22
 
82
- Terminal interpretation:
23
+ Workers submit `AuditResult[]` shaped by `schemas/audit_result.schema.json`.
83
24
 
84
- - `audit_state.status == "complete"` means the audit finished end to end.
85
- - `audit_state.status == "blocked"` means no further automatic progress is available and the remaining work needs imported results or an interactive provider.
86
- - `progress_made` tells you whether the current invocation wrote additional artifacts before it reached that terminal state.
25
+ Important rules:
87
26
 
88
- When the wrapper emits a response, it also refreshes:
27
+ - `file_coverage` is required and must include every assigned file.
28
+ - `file_coverage[].total_lines` must match the current file line count.
29
+ - `findings[].affected_files` must be objects, not strings.
30
+ - `findings[].evidence` must be an array of plain strings.
89
31
 
90
- - `.audit-artifacts/operator-handoff.json`
91
- - `.audit-artifacts/operator-handoff.md`
32
+ Use `audit-code validate-results --results <file>` before ingestion to validate
33
+ results against the active task manifest.
92
34
 
93
- ## Artifact contract
35
+ ## Internal artifacts during incomplete runs
94
36
 
95
- These are the primary machine-readable artifacts:
37
+ The engine may keep resumable artifacts under `.audit-artifacts/`, including:
96
38
 
97
- - `repo_manifest.json`
98
- - `file_disposition.json`
99
- - `unit_manifest.json`
100
- - `critical_flows.json`
101
- - `coverage_matrix.json`
102
- - `runtime_validation_tasks.json`
103
- - `runtime_validation_report.json`
39
+ - intake/structure/planning artifacts
104
40
  - `audit_tasks.json`
105
41
  - `audit_results.jsonl`
106
42
  - `requeue_tasks.json`
107
- - `merged_findings.json`
108
- - `root_cause_clusters.json`
109
- - `synthesis_report.json`
110
-
111
- Important shape notes:
112
-
113
- - `audit_tasks.json`: each task already contains its resolved `file_paths`.
114
- - `coverage_matrix.json`: each file records `classification_status`, `audit_status`, `required_lenses`, and `completed_lenses`.
115
- - `synthesis_report.json`: includes `merged_findings`, semantic `root_cause_clusters`, and `work_blocks`.
116
-
117
- ## Task id conventions
118
-
119
- Current task ids follow a few stable patterns:
120
-
121
- - Standard unit/lens task: `<unit_id>:<lens>`
122
- - Large-file split task: `<unit_id>:<lens>:<file_path>`
123
- - External analyzer follow-up: `analyzer:<tool>:<lens>:<path>:<result_id>`
124
- - Requeue task: `requeue:<lens>:<path>`
125
-
126
- If you need the resolved task payload plus current coverage state, use:
127
-
128
- ```bash
129
- audit-code explain-task <task_id>
130
- ```
131
-
132
- ## AuditResult contract
133
-
134
- `AuditResult.findings[].evidence` is an array of plain strings only. Use entries like:
135
-
136
- ```text
137
- src/foo.ts:42 - variable overwritten before use
138
- ```
139
-
140
- `reviewed_ranges` now carries mechanical verification metadata:
141
-
142
- - `path`
143
- - `start`
144
- - `end`
145
- - `line_count`
146
-
147
- `line_count` must match the current total line count of the file. Ingestion also checks that any cited `affected_files` line span falls inside the declared `reviewed_ranges`.
148
-
149
- Worked example:
150
-
151
- ```json
152
- [
153
- {
154
- "task_id": "src-api-auth:security",
155
- "unit_id": "src-api-auth",
156
- "pass_id": "pass:security",
157
- "lens": "security",
158
- "agent_role": "security-auditor",
159
- "reviewed_ranges": [
160
- {
161
- "path": "src/api/auth.ts",
162
- "start": 1,
163
- "end": 48,
164
- "line_count": 48
165
- }
166
- ],
167
- "findings": [
168
- {
169
- "id": "finding-auth-1",
170
- "title": "Authentication failures are not logged",
171
- "category": "security",
172
- "severity": "medium",
173
- "confidence": "high",
174
- "lens": "security",
175
- "summary": "Rejected authentication attempts bypass structured audit logging.",
176
- "affected_files": [
177
- {
178
- "path": "src/api/auth.ts",
179
- "line_start": 18,
180
- "line_end": 26
181
- }
182
- ],
183
- "evidence": [
184
- "src/api/auth.ts:18 - failure branch returns without emitting audit telemetry"
185
- ]
186
- }
187
- ],
188
- "notes": [
189
- "Reviewed the entire file under the security lens."
190
- ],
191
- "requires_followup": false
192
- }
193
- ]
194
- ```
195
-
196
- Workers should validate against these schemas before submission instead of discovering shape errors during ingestion.
197
-
198
- ## Audit state shape
199
-
200
- `audit_state` includes:
201
-
202
- - `status`
203
- - `obligations`
204
- - optional `last_executor`
205
- - optional `last_obligation`
206
- - optional `blockers`
207
-
208
- `status` is one of:
209
-
210
- - `not_started`
211
- - `active`
212
- - `blocked`
213
- - `complete`
214
-
215
- Each obligation includes:
216
-
217
- - `id`
218
- - `state`
219
- - optional `reason`
220
-
221
- Obligation `state` is one of:
222
-
223
- - `missing`
224
- - `present`
225
- - `stale`
226
- - `blocked`
227
- - `satisfied`
228
-
229
- ## Compatibility note
43
+ - `runtime_validation_tasks.json`
44
+ - `runtime_validation_report.json` when runtime validation is planned
45
+ - dispatch files for the active worker task
230
46
 
231
- This contract is versioned as `v1alpha1` deliberately. It is stable enough for current product use, but it should still be treated as pre-v1.
47
+ These artifacts are internal and transient. On successful completion, they are
48
+ cleared out and only `audit-report.md` remains.
@@ -2,7 +2,7 @@
2
2
 
3
3
  This document tracks the next meaningful implementation work after the current skill-first productionization pass.
4
4
 
5
- As of April 18, 2026, this repository is not yet ready for a public production launch.
5
+ As of April 22, 2026, the shared MCP substrate and the first host-native installer pass have landed, but this repository is not yet ready for a public production launch.
6
6
 
7
7
  See:
8
8
 
@@ -15,45 +15,68 @@ The repository now supports:
15
15
  - `/audit-code` as the documented canonical product route
16
16
  - packaged and repository-local access to `skills/audit-code/audit-code.prompt.md`
17
17
  - `audit-code prompt-path` as a stable prompt lookup helper
18
- - `audit-code install` as a bootstrap installer for the currently automated repo-local host surfaces
18
+ - `audit-code install --host vscode|opencode|codex|claude-desktop|antigravity|all` as a bootstrap installer for the current host surfaces
19
+ - `audit-code mcp` as a first-class stdio MCP server entrypoint
20
+ - a stable MCP contract with the `start_audit`, `get_status`, `continue_audit`, `explain_task`, `validate_artifacts`, `import_results`, and `import_runtime_updates` tools
21
+ - repo-local MCP resources for current artifacts, operator handoff, install guidance, and the current audit report
22
+ - repo-local MCP prompts for `audit-code`, `review-task`, and `synthesize-report`
23
+ - generated `.audit-code/install/manifest.json` plus a shared repo-local MCP launcher script
24
+ - Codex install assets including a repo skill bundle, `AGENTS.md` support, MCP setup guidance, and an automation recipe
25
+ - Claude Desktop install assets including a project template, remote connector template, and generated local bundle artifacts
26
+ - OpenCode install assets including command, skill, prompt, and `opencode.json` support
27
+ - VS Code install assets including prompt file, Copilot instructions, custom agent, and `.vscode/mcp.json`
28
+ - Antigravity install assets including planning-mode guidance and MCP-oriented setup guidance
19
29
  - explicit failures for malformed backend config and corrupted artifact JSON
20
30
  - `audit-code validate` as a machine-readable backend operator check
21
31
  - an explicit in-repo release gate via `npm run verify:release`
22
32
  - structured operator handoff output plus `.audit-artifacts/operator-handoff.{json,md}` for blocked fallback runs
23
33
  - configured provider bridges that can continue audit-task review by writing structured results and handing control back to the bounded worker command
24
34
 
25
- That means the current release is suitable for a controlled alpha or beta skill-first workflow, but it is not yet the final public production end-state.
35
+ That means the current release is suitable for a controlled alpha or beta skill-first workflow with MCP-aware host bootstrapping, but it is not yet the final public production end-state.
26
36
 
27
37
  ## Near-term priorities
28
38
 
29
- ### 1. Reduce conversation setup friction
39
+ ### 1. Realign review dispatch with the conversation-owned workflow
30
40
 
31
- The biggest remaining UX gap is that some hosts still lack a verified repo-local install surface.
41
+ The highest-priority product refactor is to move semantic-review ownership back to the active conversation agent and to replace the current unit-first review fan-out with non-overlapping lens-aware review blocks.
32
42
 
33
43
  Near-term work should focus on:
34
44
 
35
- - host-specific setup guides that reduce copy-paste ambiguity
36
- - preserving `audit-code install` as the default no-guess bootstrap path
37
- - extending bootstrap coverage to hosts that still need manual prompt import
38
- - a shorter path from package install to a working `/audit-code` conversation flow
45
+ - making the active conversation agent the default owner of semantic review
46
+ - keeping `agent_task_batch_size` at one review block per task
47
+ - treating backend provider adapters as compatibility bridges rather than the default review owner
48
+ - replacing the current unit-first task planner with a non-overlapping lens-block planner
49
+ - deleting the stale audit state and rerunning the audit only after that refactor lands
39
50
 
40
- Current emphasis should follow actual operator usage:
51
+ The current handoff for this work is:
41
52
 
42
- - keep VS Code and OpenCode as the primary polished happy path
43
- - treat Claude Desktop and Antigravity as the highest-priority manual-import surfaces
44
- - avoid spending near-term effort on lower-priority editor integrations unless they materially improve the shared prompt-import path
53
+ - `docs/workflow-refactor-brief.md`
54
+ - `docs/remediation-baseline.md`
45
55
 
46
- ### 2. Make the conversation route more native
56
+ ### 2. Verify the shipped host integrations end to end
47
57
 
48
- The product goal is still conversational first, not fallback-CLI first.
58
+ The biggest remaining gap is not raw feature presence anymore. It is host-by-host proof that the generated assets work in the actual products they target.
49
59
 
50
60
  Near-term work should focus on:
51
61
 
52
- - first-class integrations for the most important editor or agent hosts
53
- - removing host-specific manual prompt wiring where practical
54
- - keeping the active conversation model and attached repo context as the default operating mode
62
+ - verifying the Codex skill bundle, `AGENTS.md`, MCP setup guidance, and automation recipe against the real Codex app flow
63
+ - installing and smoke-testing the generated Claude Desktop `DXT` or bundle output in a real Desktop environment
64
+ - validating that the OpenCode `opencode.json` shape, command file, and MCP config match current OpenCode behavior
65
+ - validating the VS Code prompt, agent, and `.vscode/mcp.json` flow inside a real workspace
66
+ - validating that the Antigravity planning-mode guidance is accurate and does not over-promise a native saved-workflow surface
55
67
 
56
- ### 3. Polish continuation through assisted review
68
+ ### 3. Close the remaining host-native UX gaps
69
+
70
+ The product goal is still conversational first, not fallback-CLI first, and some shipped surfaces are still guidance-heavy rather than truly native.
71
+
72
+ Near-term work should focus on:
73
+
74
+ - turning the Codex automation recipe into a proven, documented automation flow after real operator validation
75
+ - polishing Claude Desktop one-click install so the generated bundle is a clearly supported path instead of a mostly technical artifact
76
+ - deciding whether OpenCode and VS Code need any smaller UX refinements after smoke-testing, rather than assuming the first generated surfaces are final
77
+ - keeping Antigravity framed as a workflow-and-artifacts host until Google documents a stable project-local config surface
78
+
79
+ ### 4. Polish continuation through assisted review
57
80
 
58
81
  The repo-local backend fallback still intentionally stops in blocked state under `local-subprocess`, but configured provider bridges can now continue the audit-task review phase automatically.
59
82
 
@@ -63,32 +86,35 @@ Near-term work should focus on:
63
86
  - less operator guesswork when a configured provider fails to return usable results
64
87
  - stronger host-specific guidance for provider-assisted bridges
65
88
 
66
- ### 4. Harden publish and release operations
89
+ ### 5. Harden publish and release operations
67
90
 
68
91
  The packaged install story is in place, but release operations still need finishing work.
69
92
 
70
93
  Near-term work should focus on:
71
94
 
72
95
  - npm package-name availability and ownership
73
- - final publication automation and secret management
96
+ - one-time npm Trusted Publisher setup for `.github/workflows/publish-package.yml`
97
+ - the first GitHub Actions dry run and live publish through that workflow
98
+ - keeping prerelease publication off the `latest` dist-tag unless intentionally requested
74
99
  - keeping linked-install and packaged-install smoke checks as release gates
75
100
 
76
101
  ## Frictionless-ready checklist
77
102
 
78
103
  The repository should not be described as frictionless and production-ready until this checklist is substantially true:
79
104
 
80
- ### VS Code, OpenCode, and Claude Code
105
+ ### Codex, Claude Desktop, OpenCode, and VS Code
81
106
 
82
107
  - `audit-code install` remains the default bootstrap path
83
108
  - the generated repo-local surfaces are obvious in installer output and in `.audit-code/install/GETTING-STARTED.md`
84
109
  - a new user can invoke `/audit-code` without guessing where prompts or commands were written
110
+ - the generated MCP setup path works in the real host, not only in unit tests
85
111
  - smoke coverage continues to verify the exact repo-local files these hosts consume
86
112
 
87
- ### Claude Desktop and Antigravity
113
+ ### Antigravity
88
114
 
89
- - the installed prompt-import path is explicit, repo-local, and easy to discover
90
- - `.audit-code/install/GETTING-STARTED.md` gives host-specific steps instead of generic manual-import advice
91
- - docs avoid implying native repo-local slash-command support that is not actually shipped
115
+ - the planning-mode guidance is explicit, repo-local, and easy to discover
116
+ - `.audit-code/install/GETTING-STARTED.md` gives Antigravity-specific steps instead of generic prompt-import advice
117
+ - docs avoid implying native repo-local saved-workflow support that is not actually shipped
92
118
  - the backend fallback remains a clearly secondary path instead of the default recommendation
93
119
 
94
120
  ### Assisted review continuation
@@ -99,27 +125,28 @@ The repository should not be described as frictionless and production-ready unti
99
125
  ### Release operations
100
126
 
101
127
  - `npm run verify:release` remains green and authoritative
102
- - the real publish path is proven with npm ownership, `NPM_TOKEN`, and a real dry-run or pre-release publish
128
+ - the real publish path is proven with npm ownership, npm Trusted Publishing, and a real GitHub Actions dry run or prerelease publish
103
129
 
104
130
  ## Probable next steps
105
131
 
106
132
  These are the most likely next implementation steps based on the current codebase state, but they should still be treated as provisional rather than guaranteed:
107
133
 
108
- ### 1. Ship a real bootstrap installer instead of making users pick a host first
134
+ ### 1. Prove the host installers in real products
109
135
 
110
136
  Status:
111
137
 
112
- - completed for the currently automated repo-local hosts via `audit-code install`
138
+ - partially completed in code, not yet fully validated operationally
113
139
 
114
- Practical success bar now met:
140
+ Most likely shape:
115
141
 
116
- - a new user can run one install command and get repo-local `/audit-code` surfaces for VS Code / Copilot, OpenCode, and Claude Code without guessing where the prompt belongs
142
+ - run fresh-repo smoke checks inside Codex, Claude Desktop, OpenCode, and VS Code
143
+ - confirm that the generated files are both syntactically valid and actually discovered by each host
144
+ - tighten generated docs wherever operator confusion appears during those checks
145
+ - keep Antigravity as a documented planning-mode path unless a stable project config contract is published
117
146
 
118
- Follow-on shape:
147
+ Practical success bar:
119
148
 
120
- - keep the shared bootstrap path well-supported instead of growing one-off host installers
121
- - document the exact install and verification path for hosts that still need extra handling
122
- - only claim native support for a host once its install surface is equally concrete and testable
149
+ - a new operator can run one install command and reach a working `/audit-code` or MCP-backed flow in each claimed host without guesswork
123
150
 
124
151
  ### 2. Harden configured interactive-provider continuation
125
152
 
@@ -134,25 +161,30 @@ Practical success bar:
134
161
 
135
162
  - a configured provider can continue through audit-task review with good diagnostics and low operator guesswork when something goes wrong
136
163
 
137
- ### 3. Prove the release path outside the repository
164
+ ### 3. Finish the Claude Desktop and Antigravity follow-through
138
165
 
139
166
  Most likely shape:
140
167
 
141
- - confirm npm package-name ownership and `NPM_TOKEN` availability
142
- - run a real pre-release or dry-run publish
143
- - keep `npm run verify:release` as the minimum in-repo gate before publish
168
+ - prove the generated Claude Desktop local bundle in a real Desktop install flow
169
+ - decide whether to check in or generate the final desktop-extension packaging metadata more explicitly
170
+ - add remote connector deployment guidance that is specific enough for Team or Enterprise rollout
171
+ - document exactly how Antigravity-produced artifacts should flow back through `import_results` and `import_runtime_updates`
144
172
 
145
173
  Practical success bar:
146
174
 
147
- - the release workflow is demonstrated end to end instead of only being inferred from configuration
175
+ - Claude Desktop and Antigravity guidance is operational, specific, and consistent with what the products really support
148
176
 
149
- ### 4. Expand host-specific setup guidance after the first integration lands
177
+ ### 4. Prove the release path outside the repository
150
178
 
151
179
  Most likely shape:
152
180
 
153
- - keep the generated repo-local guide aligned with the real bootstrap surfaces for VS Code, OpenCode, and Claude Code
154
- - keep Claude Desktop and Antigravity guidance explicit about prompt import and terminal fallback rather than pretending native repo-local slash-command support
155
- - avoid broad host promises that the codebase does not yet verify
181
+ - confirm npm package-name ownership and npm Trusted Publisher configuration
182
+ - run a real GitHub Actions pre-release or dry-run publish
183
+ - keep `npm run verify:release` as the minimum in-repo gate before publish
184
+
185
+ Practical success bar:
186
+
187
+ - the release workflow is demonstrated end to end instead of only being inferred from configuration
156
188
 
157
189
  ## Non-goals for the next phase
158
190
 
package/docs/packaging.md CHANGED
@@ -31,6 +31,18 @@ npm install
31
31
  npm run verify:release
32
32
  ```
33
33
 
34
+ For live child-process output during packaged smoke debugging:
35
+
36
+ ```bash
37
+ AUDIT_CODE_VERBOSE=1 npm run smoke:packaged-audit-code
38
+ ```
39
+
40
+ For the linked-install variant:
41
+
42
+ ```bash
43
+ AUDIT_CODE_VERBOSE=1 npm run smoke:linked-audit-code
44
+ ```
45
+
34
46
  That script:
35
47
 
36
48
  - creates a tarball with `npm pack`
@@ -41,6 +53,8 @@ That script:
41
53
  - invokes the installed `audit-code` binary from `node_modules/.bin`
42
54
  - validates emitted JSON against `schemas/audit-code-v1alpha1.schema.json`
43
55
  - exercises the same evidence-import and completion flow used by the linked-command smoke test
56
+ - strips inherited `npm_config_*`, `NODE_AUTH_TOKEN`, and `NPM_TOKEN` values before nested npm operations so `npm publish --dry-run` does not accidentally suppress tarball generation or leak publish credentials into the smoke environment
57
+ - emits step-by-step progress plus a final success summary so CI logs show where the run failed or completed across both the linked and packaged smoke paths
44
58
 
45
59
  ## CI
46
60
 
@@ -61,22 +75,32 @@ The release publish gate also runs both installed-entrypoint smoke paths before
61
75
  The repository now includes packaging metadata and lifecycle hooks intended for registry publication:
62
76
 
63
77
  - `package.json` is no longer marked private
78
+ - `publishConfig.access` defaults publication to the public npm access level
64
79
  - package contents are curated with a `files` allowlist that includes the canonical prompt asset
65
80
  - `prepack` and `prepare` build the runtime artifact
66
81
  - `verify:release` codifies the minimum in-repo release gate
67
82
  - `prepublishOnly` now runs that full release gate, including both linked-install and packaged-install smoke validation
68
83
  - packaged smoke now verifies the tarball includes `audit-code-wrapper-lib.mjs`, the prompt asset, the response schema, and `dist/` entrypoints before install-time smoke runs
69
84
  - the GitHub publish workflow uses the same release gate before `npm publish`
85
+ - the GitHub publish workflow uses npm Trusted Publishing with GitHub OIDC instead of a long-lived publish token
86
+ - prerelease versions now default to the `next` dist-tag in the publish workflow unless an explicit tag override is chosen on manual dispatch
87
+
88
+ ## Remaining external release steps
89
+
90
+ Actual publication still depends on npm-side configuration outside the repository:
70
91
 
71
- ## Remaining external dependency
92
+ 1. confirm package ownership and intended publish target for `auditor-lambda`
93
+ 2. configure npm Trusted Publishing for `.github/workflows/publish-package.yml`
94
+ 3. run the first GitHub Actions dry run or live prerelease from that workflow path
72
95
 
73
- Actual publication still depends on confirmed npm package-name availability and ownership, plus a configured `NPM_TOKEN` secret for automated publishing.
96
+ The repository-side workflow already pins Node `22.14.0` and upgrades npm to `>=11.5.1`, which is the current minimum combination npm documents for GitHub Actions Trusted Publishing.
74
97
 
75
98
  ## Next packaging steps
76
99
 
77
100
  The next implementation phase should focus on:
78
101
 
79
- - completing npm publication prerequisites
102
+ - completing the one-time npm Trusted Publisher setup
103
+ - proving the GitHub Actions dry-run and live publish path end to end
80
104
  - preserving the packaged prompt asset and `audit-code prompt-path` as stable release guarantees
81
105
  - preserving `audit-code install` as a packaged-install compatibility guarantee
82
106
  - keeping linked-install and packaged-install smoke coverage in the publish gate
@@ -78,11 +78,32 @@ For repo-local backend usage:
78
78
  - `provider: "auto"` is the explicit opt-in mode for best-effort routing across configured or detected backends
79
79
  - explicit provider names should remain available for operators who want a specific backend
80
80
 
81
+ ## Semantic review ownership
82
+
83
+ The intended semantic-review owner is the active conversation agent.
84
+
85
+ That means:
86
+
87
+ - `/audit-code` should hand review work to the current conversation or host agent session first
88
+ - if that active agent can delegate to subagents in parallel, that fan-out belongs to the host runtime rather than to repo-local backend defaults
89
+ - backend provider adapters are compatibility bridges for fallback CLI usage, not the default owner of review work
90
+ - session-config should not be the normal mechanism for redirecting semantic review into a second external LLM CLI
91
+
92
+ ## Task-planning rule
93
+
94
+ The intended review planner should:
95
+
96
+ - determine which files require which lenses
97
+ - partition unresolved review into non-overlapping review blocks
98
+ - prefer lens-homogeneous blocks when practical
99
+ - keep the default dispatch granularity to one review block per task
100
+
81
101
  ## Default context & model rules
82
102
 
83
103
  1. By default, the current ChatGPT project conversation and its files should be treated as the primary context.
84
104
  2. The user should not need to supply `--root`, provider names, or backend-specific settings in normal usage.
85
105
  3. For backend CLI delegation, let the chosen provider own its own model-selection behavior unless explicitly configured.
106
+ 4. Backend fallback settings should not cap the active conversation agent's own subagent parallelism model.
86
107
 
87
108
  ## Development rule
88
109
 
@@ -92,6 +113,7 @@ Future development should optimize for the native skill UX first:
92
113
  - packaged installs should help users reach the prompt asset for that conversation route
93
114
  - the CLI and supervisor are implementation details and fallback harnesses
94
115
  - provider adapters are backend internals, not the primary product concept
116
+ - semantic-review dispatch belongs to the active conversation agent, not to an externally spawned fallback provider by default
95
117
  - docs, tests, and examples should present the skill-first flow before any CLI flow
96
118
 
97
119
  If documentation or implementation details conflict, prefer the skill-first contract above over the CLI-first backend shape.
@@ -20,6 +20,8 @@ Anything below `dist/index.js` remains a backend or development interface rather
20
20
  ### Node and package runtime
21
21
 
22
22
  - Node `>=20` is the minimum supported runtime from `package.json`
23
+ - GitHub Actions currently exercises the test suite on Node `20` and Node `22`
24
+ - release and publish automation stays pinned to Node `22.14.0`
23
25
  - packaged installs must include:
24
26
  - `audit-code`
25
27
  - `audit-code-wrapper-lib.mjs`
@@ -61,8 +63,8 @@ npm run verify:release
61
63
  In addition to the in-repo gate, production readiness still requires these external checks:
62
64
 
63
65
  1. confirm npm package-name ownership and intended publish target
64
- 2. confirm `NPM_TOKEN` availability for the publish workflow
65
- 3. run a real pre-release or dry-run publish from the release path you intend to use
66
+ 2. configure npm Trusted Publishing for `.github/workflows/publish-package.yml`
67
+ 3. run a real GitHub Actions dry run or prerelease publish from that workflow path
66
68
 
67
69
  ## Operator validation expectations
68
70
 
@@ -2,26 +2,30 @@
2
2
 
3
3
  ## Verdict
4
4
 
5
- As of April 18, 2026, this repository is not yet ready for a public production launch.
5
+ As of April 22, 2026, the package release path is ready for a public npm release candidate, but the broader host experience still has follow-through work before it should be described as a frictionless production launch.
6
6
 
7
- It is in good shape for a controlled alpha or beta release:
7
+ What is already true:
8
8
 
9
9
  - TypeScript build passes
10
10
  - automated test suite passes
11
11
  - linked-install smoke coverage passes
12
12
  - packaged-install smoke coverage passes
13
13
  - packaged tarball contract verification passes
14
+ - `npm run verify:release` passes for the current `0.2.8` worktree
15
+ - local `npm publish --dry-run` passes for `auditor-lambda@0.2.8`
16
+ - npm currently reports `auditor-lambda@0.2.6` as `latest`, so the checked-in release version is still unpublished
14
17
  - malformed config and corrupted artifact handling are explicit
15
18
  - blocked fallback runs now emit structured operator handoff guidance
16
19
  - supported repo-local hosts now share a bootstrap install path via `audit-code install`
17
20
  - configured provider-assisted review can now continue to completion in a single wrapper invocation
21
+ - the GitHub publish workflow is configured for Trusted Publishing through GitHub OIDC rather than a long-lived npm token
18
22
 
19
- ## Why It Is Not Yet Production-Ready
23
+ ## Why It Is Not Yet A Broad Production Claim
20
24
 
21
25
  The biggest remaining gaps are product and release-operational, not core wrapper correctness:
22
26
 
23
27
  1. npm publication is not fully proven end to end.
24
- The repo has publish automation, but package-name ownership and registry credentials still need to be confirmed outside the codebase.
28
+ The repo now has a Trusted Publishing workflow and a passing local dry run, but npm-side trusted publisher setup plus the first GitHub Actions dry run still need to be completed outside the codebase.
25
29
  2. The primary conversation-first product still has setup friction on hosts without a verified repo-local slash-command surface.
26
30
  VS Code / Copilot, OpenCode, and Claude Code now share a bootstrap path, but Claude Desktop, Antigravity, and other hosts still need more work.
27
31
  3. Provider-assisted continuation still needs polish outside the happy path.
@@ -32,7 +36,7 @@ The explicit launch bar is now documented in `docs/production-launch-bar.md`, an
32
36
  ## Required Next Steps
33
37
 
34
38
  1. Confirm release operations externally.
35
- Validate npm package-name availability and ownership for `auditor-lambda`, confirm `NPM_TOKEN` access in GitHub Actions, and run a real pre-release or dry-run publish from the release workflow path.
39
+ Validate npm package-name ownership for `auditor-lambda`, configure npm Trusted Publishing for `.github/workflows/publish-package.yml`, and run a real GitHub Actions dry run or prerelease publish from that workflow path.
36
40
  2. Extend bootstrap coverage beyond the currently automated hosts.
37
41
  Keep `audit-code install` stable for VS Code / Copilot, OpenCode, and Claude Code, and close the remaining friction gap for hosts that still lack a verified repo-local install surface.
38
42
  3. Polish provider-assisted UX.