auditor-lambda 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/audit-code-wrapper-lib.mjs +458 -380
- package/dist/cli.js +258 -11
- package/dist/coverage.d.ts +0 -1
- package/dist/coverage.js +3 -34
- package/dist/extractors/fileInventory.js +2 -0
- package/dist/io/artifacts.js +2 -1
- package/dist/orchestrator/advance.js +70 -52
- package/dist/orchestrator/flowCoverage.js +2 -1
- package/dist/orchestrator/flowPlanning.d.ts +1 -1
- package/dist/orchestrator/flowPlanning.js +21 -28
- package/dist/orchestrator/internalExecutors.js +0 -1
- package/dist/orchestrator/taskBuilder.d.ts +7 -2
- package/dist/orchestrator/taskBuilder.js +55 -47
- package/dist/prompts/renderWorkerPrompt.js +32 -0
- package/dist/providers/claudeCodeProvider.js +6 -0
- package/dist/providers/index.js +5 -2
- package/dist/providers/opencodeProvider.js +6 -1
- package/dist/providers/types.d.ts +1 -0
- package/dist/reporting/mergeFindings.js +0 -7
- package/dist/reporting/rootCause.d.ts +0 -1
- package/dist/reporting/rootCause.js +0 -6
- package/dist/reporting/synthesis.js +18 -0
- package/dist/supervisor/runLedger.js +6 -2
- package/dist/types/sessionConfig.d.ts +8 -0
- package/dist/types/workerSession.d.ts +2 -0
- package/dist/types.d.ts +1 -2
- package/dist/validation/auditResults.d.ts +11 -0
- package/dist/validation/auditResults.js +118 -0
- package/dist/validation/sessionConfig.js +15 -1
- package/docs/agent-integrations.md +61 -56
- package/docs/agent-roles.md +69 -69
- package/docs/architecture.md +90 -90
- package/docs/artifacts.md +69 -69
- package/docs/bootstrap-install.md +1 -1
- package/docs/model-selection.md +86 -86
- package/docs/next-steps.md +11 -9
- package/docs/packaging.md +3 -3
- package/docs/pipeline.md +152 -152
- package/docs/production-readiness.md +6 -5
- package/docs/repo-layout.md +18 -18
- package/docs/run-flow.md +5 -5
- package/docs/session-config.md +216 -210
- package/docs/supervisor.md +70 -70
- package/docs/windows-setup.md +139 -139
- package/package.json +56 -56
- package/schemas/audit-code-v1alpha1.schema.json +76 -76
- package/schemas/audit_result.schema.json +48 -48
- package/schemas/audit_task.schema.json +49 -49
- package/schemas/coverage_matrix.schema.json +0 -15
- package/schemas/file_disposition.schema.json +33 -33
- package/schemas/finding.schema.json +58 -62
- package/schemas/flow_coverage.schema.json +44 -44
- package/schemas/root_cause_clusters.schema.json +0 -4
- package/schemas/runtime_validation_report.schema.json +34 -34
- package/schemas/synthesis_report.schema.json +61 -61
- package/skills/audit-code/SKILL.md +37 -37
- package/skills/audit-code/audit-code.prompt.md +56 -54
|
@@ -24,7 +24,7 @@ Installed always-on compatibility surfaces:
|
|
|
24
24
|
|
|
25
25
|
Installed repo-local canonical assets:
|
|
26
26
|
|
|
27
|
-
- `.audit-code/install/audit-code.
|
|
27
|
+
- `.audit-code/install/audit-code.import.md`
|
|
28
28
|
- `.audit-code/install/SKILL.md`
|
|
29
29
|
- `.audit-code/install/GETTING-STARTED.md`
|
|
30
30
|
|
package/docs/model-selection.md
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
# model selection
|
|
2
|
-
|
|
3
|
-
This repository has two distinct model-selection layers.
|
|
4
|
-
|
|
5
|
-
## 1. Skill-first product rule
|
|
6
|
-
|
|
7
|
-
The canonical product surface is `/audit-code` in conversation.
|
|
8
|
-
|
|
9
|
-
For that surface, the default model rule is:
|
|
10
|
-
|
|
11
|
-
- use the active conversation model by default
|
|
12
|
-
- avoid forcing the user to supply a model in normal usage
|
|
13
|
-
|
|
14
|
-
That is the intended product contract.
|
|
15
|
-
|
|
16
|
-
## 2. Backend provider rule
|
|
17
|
-
|
|
18
|
-
When the local backend delegates bounded worker runs into an external provider, model selection becomes provider-specific.
|
|
19
|
-
|
|
20
|
-
That means the supervisor should not invent a global model abstraction unless it can be implemented consistently across adapters.
|
|
21
|
-
|
|
22
|
-
Today the practical rule is:
|
|
23
|
-
|
|
24
|
-
- no provider-specific model override by default
|
|
25
|
-
- let each provider use its own default model unless explicitly configured otherwise
|
|
26
|
-
- when a model is required, pass it through the provider's own native CLI arguments via `extra_args`
|
|
27
|
-
|
|
28
|
-
## Current provider behavior
|
|
29
|
-
|
|
30
|
-
### `local-subprocess`
|
|
31
|
-
|
|
32
|
-
No external LLM provider is selected here.
|
|
33
|
-
|
|
34
|
-
The supervisor simply launches the bounded local worker command.
|
|
35
|
-
|
|
36
|
-
### `claude-code`
|
|
37
|
-
|
|
38
|
-
The built-in Claude Code adapter supports model overrides through `claude_code.extra_args`.
|
|
39
|
-
|
|
40
|
-
Example:
|
|
41
|
-
|
|
42
|
-
```json
|
|
43
|
-
{
|
|
44
|
-
"provider": "claude-code",
|
|
45
|
-
"ui_mode": "visible",
|
|
46
|
-
"claude_code": {
|
|
47
|
-
"command": "claude",
|
|
48
|
-
"extra_args": ["--model", "sonnet"]
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Use this only when you want to force a specific Claude Code model instead of relying on the user's normal Claude Code default.
|
|
54
|
-
|
|
55
|
-
### `opencode`
|
|
56
|
-
|
|
57
|
-
The built-in OpenCode adapter supports model overrides through `opencode.extra_args`.
|
|
58
|
-
|
|
59
|
-
Example:
|
|
60
|
-
|
|
61
|
-
```json
|
|
62
|
-
{
|
|
63
|
-
"provider": "opencode",
|
|
64
|
-
"ui_mode": "visible",
|
|
65
|
-
"opencode": {
|
|
66
|
-
"command": "opencode",
|
|
67
|
-
"extra_args": ["--model", "anthropic/claude-sonnet-4.5"]
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Use this only when you want to force a specific OpenCode provider/model pair instead of relying on the user's normal OpenCode default.
|
|
73
|
-
|
|
74
|
-
### `subprocess-template` and `vscode-task`
|
|
75
|
-
|
|
76
|
-
These adapters do not define model semantics themselves.
|
|
77
|
-
|
|
78
|
-
If you need model selection here, include it in the external launcher command template or in the external tool being invoked.
|
|
79
|
-
|
|
80
|
-
## Recommendation
|
|
81
|
-
|
|
82
|
-
For the cleanest product behavior:
|
|
83
|
-
|
|
84
|
-
1. in conversation, let `/audit-code` inherit the active conversation model
|
|
85
|
-
2. for repo-local backend usage, do not force model selection unless the operator has a concrete reason
|
|
86
|
-
3. when needed, set model selection in the provider-native config rather than inventing another repo-level abstraction
|
|
1
|
+
# model selection
|
|
2
|
+
|
|
3
|
+
This repository has two distinct model-selection layers.
|
|
4
|
+
|
|
5
|
+
## 1. Skill-first product rule
|
|
6
|
+
|
|
7
|
+
The canonical product surface is `/audit-code` in conversation.
|
|
8
|
+
|
|
9
|
+
For that surface, the default model rule is:
|
|
10
|
+
|
|
11
|
+
- use the active conversation model by default
|
|
12
|
+
- avoid forcing the user to supply a model in normal usage
|
|
13
|
+
|
|
14
|
+
That is the intended product contract.
|
|
15
|
+
|
|
16
|
+
## 2. Backend provider rule
|
|
17
|
+
|
|
18
|
+
When the local backend delegates bounded worker runs into an external provider, model selection becomes provider-specific.
|
|
19
|
+
|
|
20
|
+
That means the supervisor should not invent a global model abstraction unless it can be implemented consistently across adapters.
|
|
21
|
+
|
|
22
|
+
Today the practical rule is:
|
|
23
|
+
|
|
24
|
+
- no provider-specific model override by default
|
|
25
|
+
- let each provider use its own default model unless explicitly configured otherwise
|
|
26
|
+
- when a model is required, pass it through the provider's own native CLI arguments via `extra_args`
|
|
27
|
+
|
|
28
|
+
## Current provider behavior
|
|
29
|
+
|
|
30
|
+
### `local-subprocess`
|
|
31
|
+
|
|
32
|
+
No external LLM provider is selected here.
|
|
33
|
+
|
|
34
|
+
The supervisor simply launches the bounded local worker command.
|
|
35
|
+
|
|
36
|
+
### `claude-code`
|
|
37
|
+
|
|
38
|
+
The built-in Claude Code adapter supports model overrides through `claude_code.extra_args`.
|
|
39
|
+
|
|
40
|
+
Example:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"provider": "claude-code",
|
|
45
|
+
"ui_mode": "visible",
|
|
46
|
+
"claude_code": {
|
|
47
|
+
"command": "claude",
|
|
48
|
+
"extra_args": ["--model", "sonnet"]
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Use this only when you want to force a specific Claude Code model instead of relying on the user's normal Claude Code default.
|
|
54
|
+
|
|
55
|
+
### `opencode`
|
|
56
|
+
|
|
57
|
+
The built-in OpenCode adapter supports model overrides through `opencode.extra_args`.
|
|
58
|
+
|
|
59
|
+
Example:
|
|
60
|
+
|
|
61
|
+
```json
|
|
62
|
+
{
|
|
63
|
+
"provider": "opencode",
|
|
64
|
+
"ui_mode": "visible",
|
|
65
|
+
"opencode": {
|
|
66
|
+
"command": "opencode",
|
|
67
|
+
"extra_args": ["--model", "anthropic/claude-sonnet-4.5"]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Use this only when you want to force a specific OpenCode provider/model pair instead of relying on the user's normal OpenCode default.
|
|
73
|
+
|
|
74
|
+
### `subprocess-template` and `vscode-task`
|
|
75
|
+
|
|
76
|
+
These adapters do not define model semantics themselves.
|
|
77
|
+
|
|
78
|
+
If you need model selection here, include it in the external launcher command template or in the external tool being invoked.
|
|
79
|
+
|
|
80
|
+
## Recommendation
|
|
81
|
+
|
|
82
|
+
For the cleanest product behavior:
|
|
83
|
+
|
|
84
|
+
1. in conversation, let `/audit-code` inherit the active conversation model
|
|
85
|
+
2. for repo-local backend usage, do not force model selection unless the operator has a concrete reason
|
|
86
|
+
3. when needed, set model selection in the provider-native config rather than inventing another repo-level abstraction
|
package/docs/next-steps.md
CHANGED
|
@@ -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
|
|
5
|
+
As of April 18, 2026, this repository is not yet ready for a public production launch.
|
|
6
6
|
|
|
7
7
|
See:
|
|
8
8
|
|
|
@@ -20,6 +20,7 @@ The repository now supports:
|
|
|
20
20
|
- `audit-code validate` as a machine-readable backend operator check
|
|
21
21
|
- an explicit in-repo release gate via `npm run verify:release`
|
|
22
22
|
- structured operator handoff output plus `.audit-artifacts/operator-handoff.{json,md}` for blocked fallback runs
|
|
23
|
+
- configured provider bridges that can continue audit-task review by writing structured results and handing control back to the bounded worker command
|
|
23
24
|
|
|
24
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.
|
|
25
26
|
|
|
@@ -52,15 +53,15 @@ Near-term work should focus on:
|
|
|
52
53
|
- removing host-specific manual prompt wiring where practical
|
|
53
54
|
- keeping the active conversation model and attached repo context as the default operating mode
|
|
54
55
|
|
|
55
|
-
### 3.
|
|
56
|
+
### 3. Polish continuation through assisted review
|
|
56
57
|
|
|
57
|
-
The repo-local backend fallback still intentionally stops
|
|
58
|
+
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.
|
|
58
59
|
|
|
59
60
|
Near-term work should focus on:
|
|
60
61
|
|
|
61
|
-
- smoother continuation when an interactive provider is configured
|
|
62
62
|
- clearer evidence handoff for imported results and runtime updates
|
|
63
|
-
- less operator guesswork when
|
|
63
|
+
- less operator guesswork when a configured provider fails to return usable results
|
|
64
|
+
- stronger host-specific guidance for provider-assisted bridges
|
|
64
65
|
|
|
65
66
|
### 4. Harden publish and release operations
|
|
66
67
|
|
|
@@ -92,7 +93,7 @@ The repository should not be described as frictionless and production-ready unti
|
|
|
92
93
|
|
|
93
94
|
### Assisted review continuation
|
|
94
95
|
|
|
95
|
-
-
|
|
96
|
+
- configured interactive providers can continue blocked audits through audit-task review in the same wrapper invocation
|
|
96
97
|
- operator handoff artifacts remain explicit and inspectable even when continuation is smoother
|
|
97
98
|
|
|
98
99
|
### Release operations
|
|
@@ -120,17 +121,18 @@ Follow-on shape:
|
|
|
120
121
|
- document the exact install and verification path for hosts that still need extra handling
|
|
121
122
|
- only claim native support for a host once its install surface is equally concrete and testable
|
|
122
123
|
|
|
123
|
-
### 2.
|
|
124
|
+
### 2. Harden configured interactive-provider continuation
|
|
124
125
|
|
|
125
126
|
Most likely shape:
|
|
126
127
|
|
|
127
128
|
- use the existing provider configuration surface in `.audit-artifacts/session-config.json`
|
|
128
|
-
-
|
|
129
|
+
- keep the provider-assisted review handoff less manual when `claude-code`, `opencode`, or another bridge is intentionally configured
|
|
129
130
|
- preserve explicit artifact imports and operator visibility instead of hiding state transitions
|
|
131
|
+
- improve diagnostics and recovery when the provider fails to emit structured results
|
|
130
132
|
|
|
131
133
|
Practical success bar:
|
|
132
134
|
|
|
133
|
-
- a
|
|
135
|
+
- a configured provider can continue through audit-task review with good diagnostics and low operator guesswork when something goes wrong
|
|
134
136
|
|
|
135
137
|
### 3. Prove the release path outside the repository
|
|
136
138
|
|
package/docs/packaging.md
CHANGED
|
@@ -25,12 +25,12 @@ A packaged-install smoke test proves the same assets still work when consumed fr
|
|
|
25
25
|
## Packaged smoke command
|
|
26
26
|
|
|
27
27
|
From the repository root:
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
```bash
|
|
30
30
|
npm install
|
|
31
31
|
npm run verify:release
|
|
32
32
|
```
|
|
33
|
-
|
|
33
|
+
|
|
34
34
|
That script:
|
|
35
35
|
|
|
36
36
|
- creates a tarball with `npm pack`
|
|
@@ -55,7 +55,7 @@ The release publish gate also runs both installed-entrypoint smoke paths before
|
|
|
55
55
|
```text
|
|
56
56
|
.github/workflows/publish-package.yml
|
|
57
57
|
```
|
|
58
|
-
|
|
58
|
+
|
|
59
59
|
## Publish pipeline state
|
|
60
60
|
|
|
61
61
|
The repository now includes packaging metadata and lifecycle hooks intended for registry publication:
|
package/docs/pipeline.md
CHANGED
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
# Audit pipeline
|
|
2
|
-
|
|
3
|
-
## Phase 0: intake
|
|
4
|
-
|
|
5
|
-
Automated:
|
|
6
|
-
|
|
7
|
-
- enumerate files
|
|
8
|
-
- detect languages and frameworks
|
|
9
|
-
- identify exclusions
|
|
10
|
-
- hash files
|
|
11
|
-
- collect git metadata
|
|
12
|
-
|
|
13
|
-
Outputs:
|
|
14
|
-
|
|
15
|
-
- `repo_manifest.json`
|
|
16
|
-
- `file_inventory.json`
|
|
17
|
-
- `stack_profile.json`
|
|
18
|
-
|
|
19
|
-
## Phase 1: structural extraction
|
|
20
|
-
|
|
21
|
-
Automated:
|
|
22
|
-
|
|
23
|
-
- detect services, packages, apps
|
|
24
|
-
- detect routes, jobs, commands, workflows
|
|
25
|
-
- bucket files
|
|
26
|
-
- extract graphs
|
|
27
|
-
- detect data-layer artifacts
|
|
28
|
-
|
|
29
|
-
Outputs:
|
|
30
|
-
|
|
31
|
-
- `unit_manifest.json`
|
|
32
|
-
- `surface_manifest.json`
|
|
33
|
-
- `bucket_assignments.json`
|
|
34
|
-
- `graph_bundle.json`
|
|
35
|
-
|
|
36
|
-
LLM role:
|
|
37
|
-
|
|
38
|
-
- resolve ambiguous units and suspicious classifications
|
|
39
|
-
|
|
40
|
-
## Phase 2: mechanical analysis
|
|
41
|
-
|
|
42
|
-
Automated:
|
|
43
|
-
|
|
44
|
-
- lint
|
|
45
|
-
- typecheck
|
|
46
|
-
- tests
|
|
47
|
-
- coverage
|
|
48
|
-
- secrets
|
|
49
|
-
- dependencies
|
|
50
|
-
- static security
|
|
51
|
-
- complexity and duplication
|
|
52
|
-
|
|
53
|
-
Outputs:
|
|
54
|
-
|
|
55
|
-
- `mechanical_results.json`
|
|
56
|
-
- `hotspot_report.json`
|
|
57
|
-
|
|
58
|
-
LLM role:
|
|
59
|
-
|
|
60
|
-
- distinguish signal from noise
|
|
61
|
-
- identify what deserves deeper review
|
|
62
|
-
|
|
63
|
-
## Phase 3: risk scoring
|
|
64
|
-
|
|
65
|
-
Automated inputs:
|
|
66
|
-
|
|
67
|
-
- exposure
|
|
68
|
-
- privilege indicators
|
|
69
|
-
- persistent writes
|
|
70
|
-
- secrets access
|
|
71
|
-
- concurrency signals
|
|
72
|
-
- churn
|
|
73
|
-
- coverage weakness
|
|
74
|
-
|
|
75
|
-
Outputs:
|
|
76
|
-
|
|
77
|
-
- `risk_register.json`
|
|
78
|
-
|
|
79
|
-
LLM role:
|
|
80
|
-
|
|
81
|
-
- adjust for semantic criticality
|
|
82
|
-
|
|
83
|
-
## Phase 4: blind-spot mapping
|
|
84
|
-
|
|
85
|
-
LLM task:
|
|
86
|
-
|
|
87
|
-
- use manifests, graphs, and bounded source excerpts to identify what tools are likely missing
|
|
88
|
-
|
|
89
|
-
Outputs:
|
|
90
|
-
|
|
91
|
-
- `blind_spot_register.json`
|
|
92
|
-
- `runtime_validation_targets.json`
|
|
93
|
-
|
|
94
|
-
## Phase 5: unit audits
|
|
95
|
-
|
|
96
|
-
LLM task:
|
|
97
|
-
|
|
98
|
-
- audit each unit under required lenses
|
|
99
|
-
|
|
100
|
-
Outputs:
|
|
101
|
-
|
|
102
|
-
- `audit_results/<unit>/<lens>.json`
|
|
103
|
-
|
|
104
|
-
## Phase 6: cross-cutting audits
|
|
105
|
-
|
|
106
|
-
LLM task:
|
|
107
|
-
|
|
108
|
-
- audit repo-wide concerns such as auth, retries, migrations, config validation, observability, and secrets flow
|
|
109
|
-
|
|
110
|
-
Outputs:
|
|
111
|
-
|
|
112
|
-
- `cross_cutting/<theme>.json`
|
|
113
|
-
|
|
114
|
-
## Phase 7: dynamic validation
|
|
115
|
-
|
|
116
|
-
Automated + LLM:
|
|
117
|
-
|
|
118
|
-
- run targeted checks for suspicious cases
|
|
119
|
-
- interpret repro results
|
|
120
|
-
|
|
121
|
-
Outputs:
|
|
122
|
-
|
|
123
|
-
- `runtime_validation_report.json`
|
|
124
|
-
|
|
125
|
-
## Phase 8: coverage verification
|
|
126
|
-
|
|
127
|
-
Automated:
|
|
128
|
-
|
|
129
|
-
- verify every file is classified
|
|
130
|
-
- verify every file is audited or explicitly excluded
|
|
131
|
-
- verify reviewed line ranges cover the intended source
|
|
132
|
-
- verify multi-pass overlap for critical units
|
|
133
|
-
|
|
134
|
-
Outputs:
|
|
135
|
-
|
|
136
|
-
- `coverage_matrix.json`
|
|
137
|
-
- `line_coverage_map.json`
|
|
138
|
-
- `uncovered_items.json`
|
|
139
|
-
|
|
140
|
-
## Phase 9: synthesis
|
|
141
|
-
|
|
142
|
-
LLM task:
|
|
143
|
-
|
|
144
|
-
- deduplicate findings
|
|
145
|
-
- cluster by root cause
|
|
146
|
-
- prioritize remediation
|
|
147
|
-
|
|
148
|
-
Outputs:
|
|
149
|
-
|
|
150
|
-
- `findings.json`
|
|
151
|
-
- `root_cause_clusters.json`
|
|
152
|
-
- `remediation_plan.md`
|
|
1
|
+
# Audit pipeline
|
|
2
|
+
|
|
3
|
+
## Phase 0: intake
|
|
4
|
+
|
|
5
|
+
Automated:
|
|
6
|
+
|
|
7
|
+
- enumerate files
|
|
8
|
+
- detect languages and frameworks
|
|
9
|
+
- identify exclusions
|
|
10
|
+
- hash files
|
|
11
|
+
- collect git metadata
|
|
12
|
+
|
|
13
|
+
Outputs:
|
|
14
|
+
|
|
15
|
+
- `repo_manifest.json`
|
|
16
|
+
- `file_inventory.json`
|
|
17
|
+
- `stack_profile.json`
|
|
18
|
+
|
|
19
|
+
## Phase 1: structural extraction
|
|
20
|
+
|
|
21
|
+
Automated:
|
|
22
|
+
|
|
23
|
+
- detect services, packages, apps
|
|
24
|
+
- detect routes, jobs, commands, workflows
|
|
25
|
+
- bucket files
|
|
26
|
+
- extract graphs
|
|
27
|
+
- detect data-layer artifacts
|
|
28
|
+
|
|
29
|
+
Outputs:
|
|
30
|
+
|
|
31
|
+
- `unit_manifest.json`
|
|
32
|
+
- `surface_manifest.json`
|
|
33
|
+
- `bucket_assignments.json`
|
|
34
|
+
- `graph_bundle.json`
|
|
35
|
+
|
|
36
|
+
LLM role:
|
|
37
|
+
|
|
38
|
+
- resolve ambiguous units and suspicious classifications
|
|
39
|
+
|
|
40
|
+
## Phase 2: mechanical analysis
|
|
41
|
+
|
|
42
|
+
Automated:
|
|
43
|
+
|
|
44
|
+
- lint
|
|
45
|
+
- typecheck
|
|
46
|
+
- tests
|
|
47
|
+
- coverage
|
|
48
|
+
- secrets
|
|
49
|
+
- dependencies
|
|
50
|
+
- static security
|
|
51
|
+
- complexity and duplication
|
|
52
|
+
|
|
53
|
+
Outputs:
|
|
54
|
+
|
|
55
|
+
- `mechanical_results.json`
|
|
56
|
+
- `hotspot_report.json`
|
|
57
|
+
|
|
58
|
+
LLM role:
|
|
59
|
+
|
|
60
|
+
- distinguish signal from noise
|
|
61
|
+
- identify what deserves deeper review
|
|
62
|
+
|
|
63
|
+
## Phase 3: risk scoring
|
|
64
|
+
|
|
65
|
+
Automated inputs:
|
|
66
|
+
|
|
67
|
+
- exposure
|
|
68
|
+
- privilege indicators
|
|
69
|
+
- persistent writes
|
|
70
|
+
- secrets access
|
|
71
|
+
- concurrency signals
|
|
72
|
+
- churn
|
|
73
|
+
- coverage weakness
|
|
74
|
+
|
|
75
|
+
Outputs:
|
|
76
|
+
|
|
77
|
+
- `risk_register.json`
|
|
78
|
+
|
|
79
|
+
LLM role:
|
|
80
|
+
|
|
81
|
+
- adjust for semantic criticality
|
|
82
|
+
|
|
83
|
+
## Phase 4: blind-spot mapping
|
|
84
|
+
|
|
85
|
+
LLM task:
|
|
86
|
+
|
|
87
|
+
- use manifests, graphs, and bounded source excerpts to identify what tools are likely missing
|
|
88
|
+
|
|
89
|
+
Outputs:
|
|
90
|
+
|
|
91
|
+
- `blind_spot_register.json`
|
|
92
|
+
- `runtime_validation_targets.json`
|
|
93
|
+
|
|
94
|
+
## Phase 5: unit audits
|
|
95
|
+
|
|
96
|
+
LLM task:
|
|
97
|
+
|
|
98
|
+
- audit each unit under required lenses
|
|
99
|
+
|
|
100
|
+
Outputs:
|
|
101
|
+
|
|
102
|
+
- `audit_results/<unit>/<lens>.json`
|
|
103
|
+
|
|
104
|
+
## Phase 6: cross-cutting audits
|
|
105
|
+
|
|
106
|
+
LLM task:
|
|
107
|
+
|
|
108
|
+
- audit repo-wide concerns such as auth, retries, migrations, config validation, observability, and secrets flow
|
|
109
|
+
|
|
110
|
+
Outputs:
|
|
111
|
+
|
|
112
|
+
- `cross_cutting/<theme>.json`
|
|
113
|
+
|
|
114
|
+
## Phase 7: dynamic validation
|
|
115
|
+
|
|
116
|
+
Automated + LLM:
|
|
117
|
+
|
|
118
|
+
- run targeted checks for suspicious cases
|
|
119
|
+
- interpret repro results
|
|
120
|
+
|
|
121
|
+
Outputs:
|
|
122
|
+
|
|
123
|
+
- `runtime_validation_report.json`
|
|
124
|
+
|
|
125
|
+
## Phase 8: coverage verification
|
|
126
|
+
|
|
127
|
+
Automated:
|
|
128
|
+
|
|
129
|
+
- verify every file is classified
|
|
130
|
+
- verify every file is audited or explicitly excluded
|
|
131
|
+
- verify reviewed line ranges cover the intended source
|
|
132
|
+
- verify multi-pass overlap for critical units
|
|
133
|
+
|
|
134
|
+
Outputs:
|
|
135
|
+
|
|
136
|
+
- `coverage_matrix.json`
|
|
137
|
+
- `line_coverage_map.json`
|
|
138
|
+
- `uncovered_items.json`
|
|
139
|
+
|
|
140
|
+
## Phase 9: synthesis
|
|
141
|
+
|
|
142
|
+
LLM task:
|
|
143
|
+
|
|
144
|
+
- deduplicate findings
|
|
145
|
+
- cluster by root cause
|
|
146
|
+
- prioritize remediation
|
|
147
|
+
|
|
148
|
+
Outputs:
|
|
149
|
+
|
|
150
|
+
- `findings.json`
|
|
151
|
+
- `root_cause_clusters.json`
|
|
152
|
+
- `remediation_plan.md`
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Verdict
|
|
4
4
|
|
|
5
|
-
As of April
|
|
5
|
+
As of April 18, 2026, this repository is not yet ready for a public production launch.
|
|
6
6
|
|
|
7
7
|
It is in good shape for a controlled alpha or beta release:
|
|
8
8
|
|
|
@@ -14,6 +14,7 @@ It is in good shape for a controlled alpha or beta release:
|
|
|
14
14
|
- malformed config and corrupted artifact handling are explicit
|
|
15
15
|
- blocked fallback runs now emit structured operator handoff guidance
|
|
16
16
|
- supported repo-local hosts now share a bootstrap install path via `audit-code install`
|
|
17
|
+
- configured provider-assisted review can now continue to completion in a single wrapper invocation
|
|
17
18
|
|
|
18
19
|
## Why It Is Not Yet Production-Ready
|
|
19
20
|
|
|
@@ -23,8 +24,8 @@ The biggest remaining gaps are product and release-operational, not core wrapper
|
|
|
23
24
|
The repo has publish automation, but package-name ownership and registry credentials still need to be confirmed outside the codebase.
|
|
24
25
|
2. The primary conversation-first product still has setup friction on hosts without a verified repo-local slash-command surface.
|
|
25
26
|
VS Code / Copilot, OpenCode, and Claude Code now share a bootstrap path, but Claude Desktop, Antigravity, and other hosts still need more work.
|
|
26
|
-
3.
|
|
27
|
-
|
|
27
|
+
3. Provider-assisted continuation still needs polish outside the happy path.
|
|
28
|
+
Configured interactive bridges can now continue through audit-task review, but operator guidance and host-specific ergonomics still need refinement when a provider cannot produce results cleanly.
|
|
28
29
|
|
|
29
30
|
The explicit launch bar is now documented in `docs/production-launch-bar.md`, and the in-repo release gate is codified as `npm run verify:release`.
|
|
30
31
|
|
|
@@ -34,8 +35,8 @@ The explicit launch bar is now documented in `docs/production-launch-bar.md`, an
|
|
|
34
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.
|
|
35
36
|
2. Extend bootstrap coverage beyond the currently automated hosts.
|
|
36
37
|
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.
|
|
37
|
-
3.
|
|
38
|
-
|
|
38
|
+
3. Polish provider-assisted UX.
|
|
39
|
+
Keep the new continuation path explicit and inspectable while improving failure hints, host guidance, and operator recovery when a provider bridge misbehaves.
|
|
39
40
|
|
|
40
41
|
## Nice-To-Have Follow-On Work
|
|
41
42
|
|
package/docs/repo-layout.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
# Repository layout
|
|
2
|
-
|
|
1
|
+
# Repository layout
|
|
2
|
+
|
|
3
3
|
## Top-level purpose
|
|
4
4
|
|
|
5
5
|
- `docs/`: architecture, pipeline, layout, and design notes
|
|
@@ -12,19 +12,19 @@
|
|
|
12
12
|
- `docs/next-steps.md`: current roadmap and next implementation notes
|
|
13
13
|
- `docs/production-launch-bar.md`: explicit minimum launch criteria and release verification bar
|
|
14
14
|
- `docs/production-readiness.md`: current production-readiness verdict and launch blockers
|
|
15
|
-
|
|
16
|
-
## Near-term code layout
|
|
17
|
-
|
|
18
|
-
- `src/extractors/`: deterministic collectors and heuristic classifiers
|
|
19
|
-
- `src/orchestrator/`: task construction, chunking, pass logic, and requeue support
|
|
20
|
-
- `src/coverage/` or `src/coverage.ts`: coverage accounting helpers
|
|
21
|
-
- `src/reporting/`: result merging and remediation views
|
|
22
|
-
- `src/types.ts`: shared TypeScript interfaces mirroring the JSON schemas as closely as practical
|
|
23
|
-
|
|
24
|
-
## Skill portability rule
|
|
25
|
-
|
|
26
|
-
The repo should be usable even when the host environment changes. For that reason:
|
|
27
|
-
|
|
28
|
-
- prompts should remain plain markdown
|
|
29
|
-
- artifacts should remain plain JSON
|
|
30
|
-
- orchestration logic should not depend on one editor or one agent runtime
|
|
15
|
+
|
|
16
|
+
## Near-term code layout
|
|
17
|
+
|
|
18
|
+
- `src/extractors/`: deterministic collectors and heuristic classifiers
|
|
19
|
+
- `src/orchestrator/`: task construction, chunking, pass logic, and requeue support
|
|
20
|
+
- `src/coverage/` or `src/coverage.ts`: coverage accounting helpers
|
|
21
|
+
- `src/reporting/`: result merging and remediation views
|
|
22
|
+
- `src/types.ts`: shared TypeScript interfaces mirroring the JSON schemas as closely as practical
|
|
23
|
+
|
|
24
|
+
## Skill portability rule
|
|
25
|
+
|
|
26
|
+
The repo should be usable even when the host environment changes. For that reason:
|
|
27
|
+
|
|
28
|
+
- prompts should remain plain markdown
|
|
29
|
+
- artifacts should remain plain JSON
|
|
30
|
+
- orchestration logic should not depend on one editor or one agent runtime
|