audit-tools 0.53.0 → 0.55.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 (105) hide show
  1. package/dist/audit/cli/auditStep.js +2 -2
  2. package/dist/audit/cli/auditStep.js.map +1 -1
  3. package/dist/audit/cli/conceptualDispatch.d.ts +2 -2
  4. package/dist/audit/cli/conceptualDispatch.d.ts.map +1 -1
  5. package/dist/audit/cli/conceptualDispatch.js +6 -5
  6. package/dist/audit/cli/conceptualDispatch.js.map +1 -1
  7. package/dist/audit/cli/confirmIntentStep.d.ts.map +1 -1
  8. package/dist/audit/cli/confirmIntentStep.js +3 -16
  9. package/dist/audit/cli/confirmIntentStep.js.map +1 -1
  10. package/dist/audit/cli/dispatch/hostHandoff.d.ts.map +1 -1
  11. package/dist/audit/cli/dispatch/hostHandoff.js +53 -10
  12. package/dist/audit/cli/dispatch/hostHandoff.js.map +1 -1
  13. package/dist/audit/cli/functionalPreflight.d.ts.map +1 -1
  14. package/dist/audit/cli/functionalPreflight.js +6 -3
  15. package/dist/audit/cli/functionalPreflight.js.map +1 -1
  16. package/dist/audit/cli/nextStepCommand.d.ts.map +1 -1
  17. package/dist/audit/cli/nextStepCommand.js +15 -14
  18. package/dist/audit/cli/nextStepCommand.js.map +1 -1
  19. package/dist/audit/cli/nextStepHelpers.js +2 -2
  20. package/dist/audit/cli/nextStepHelpers.js.map +1 -1
  21. package/dist/audit/contracts/findingContractPrompt.d.ts.map +1 -1
  22. package/dist/audit/contracts/findingContractPrompt.js +13 -11
  23. package/dist/audit/contracts/findingContractPrompt.js.map +1 -1
  24. package/dist/audit/contracts/workerSchemas.d.ts +21 -124
  25. package/dist/audit/contracts/workerSchemas.d.ts.map +1 -1
  26. package/dist/audit/contracts/workerSchemas.js +19 -3
  27. package/dist/audit/contracts/workerSchemas.js.map +1 -1
  28. package/dist/audit/orchestrator/advance.d.ts.map +1 -1
  29. package/dist/audit/orchestrator/advance.js +21 -1
  30. package/dist/audit/orchestrator/advance.js.map +1 -1
  31. package/dist/audit/orchestrator/architectureDiscovery.d.ts +15 -1
  32. package/dist/audit/orchestrator/architectureDiscovery.d.ts.map +1 -1
  33. package/dist/audit/orchestrator/architectureDiscovery.js +30 -11
  34. package/dist/audit/orchestrator/architectureDiscovery.js.map +1 -1
  35. package/dist/audit/orchestrator/dependencyMap.d.ts +20 -0
  36. package/dist/audit/orchestrator/dependencyMap.d.ts.map +1 -1
  37. package/dist/audit/orchestrator/dependencyMap.js +47 -0
  38. package/dist/audit/orchestrator/dependencyMap.js.map +1 -1
  39. package/dist/audit/orchestrator/dependencySlices.d.ts.map +1 -1
  40. package/dist/audit/orchestrator/dependencySlices.js +37 -3
  41. package/dist/audit/orchestrator/dependencySlices.js.map +1 -1
  42. package/dist/audit/orchestrator/designReviewPrompt.d.ts +2 -2
  43. package/dist/audit/orchestrator/designReviewPrompt.js +2 -2
  44. package/dist/audit/orchestrator/executors.js +1 -1
  45. package/dist/audit/orchestrator/executors.js.map +1 -1
  46. package/dist/audit/orchestrator/ingestionExecutors.d.ts.map +1 -1
  47. package/dist/audit/orchestrator/ingestionExecutors.js +38 -37
  48. package/dist/audit/orchestrator/ingestionExecutors.js.map +1 -1
  49. package/dist/audit/orchestrator/nextStep.d.ts.map +1 -1
  50. package/dist/audit/orchestrator/nextStep.js +0 -1
  51. package/dist/audit/orchestrator/nextStep.js.map +1 -1
  52. package/dist/audit/orchestrator/staleness.d.ts.map +1 -1
  53. package/dist/audit/orchestrator/staleness.js +14 -10
  54. package/dist/audit/orchestrator/staleness.js.map +1 -1
  55. package/dist/audit/orchestrator/state.d.ts.map +1 -1
  56. package/dist/audit/orchestrator/state.js +1 -3
  57. package/dist/audit/orchestrator/state.js.map +1 -1
  58. package/dist/audit/types.d.ts +12 -1
  59. package/dist/audit/types.d.ts.map +1 -1
  60. package/dist/audit/types.js +92 -11
  61. package/dist/audit/types.js.map +1 -1
  62. package/dist/remediate/steps/contractPipeline.d.ts.map +1 -1
  63. package/dist/remediate/steps/contractPipeline.js +11 -3
  64. package/dist/remediate/steps/contractPipeline.js.map +1 -1
  65. package/dist/remediate/steps/nextStep.d.ts.map +1 -1
  66. package/dist/remediate/steps/nextStep.js +8 -23
  67. package/dist/remediate/steps/nextStep.js.map +1 -1
  68. package/dist/remediate/steps/prompts.js +4 -4
  69. package/dist/shared/findings/dedupe.d.ts.map +1 -1
  70. package/dist/shared/findings/dedupe.js +14 -2
  71. package/dist/shared/findings/dedupe.js.map +1 -1
  72. package/dist/shared/index.d.ts +2 -2
  73. package/dist/shared/index.d.ts.map +1 -1
  74. package/dist/shared/index.js +2 -2
  75. package/dist/shared/index.js.map +1 -1
  76. package/dist/shared/loopCorePaths.d.ts.map +1 -1
  77. package/dist/shared/loopCorePaths.js +31 -5
  78. package/dist/shared/loopCorePaths.js.map +1 -1
  79. package/dist/shared/prompts.d.ts +23 -8
  80. package/dist/shared/prompts.d.ts.map +1 -1
  81. package/dist/shared/prompts.js +26 -11
  82. package/dist/shared/prompts.js.map +1 -1
  83. package/dist/shared/types/finding.d.ts +4 -14
  84. package/dist/shared/types/finding.d.ts.map +1 -1
  85. package/dist/shared/types/finding.js +6 -16
  86. package/dist/shared/types/finding.js.map +1 -1
  87. package/dist/shared/validation/designFindingGrounding.d.ts +3 -2
  88. package/dist/shared/validation/designFindingGrounding.d.ts.map +1 -1
  89. package/dist/shared/validation/designFindingGrounding.js +12 -2
  90. package/dist/shared/validation/designFindingGrounding.js.map +1 -1
  91. package/dist/shared/validation/findingGrounding.d.ts +18 -6
  92. package/dist/shared/validation/findingGrounding.d.ts.map +1 -1
  93. package/dist/shared/validation/findingGrounding.js +107 -24
  94. package/dist/shared/validation/findingGrounding.js.map +1 -1
  95. package/package.json +2 -1
  96. package/schemas/audit_result.schema.json +0 -8
  97. package/schemas/audit_results.schema.json +0 -8
  98. package/schemas/finding.schema.json +0 -8
  99. package/scripts/shared/primitives.mjs +20 -0
  100. package/skills/audit-code/SKILL.md +5 -12
  101. package/skills/audit-code/audit-code.prompt.md +5 -8
  102. package/skills/audit-code/opencode-command-template.txt +2 -2
  103. package/skills/remediate-code/SKILL.md +5 -7
  104. package/skills/remediate-code/remediate-code.prompt.md +5 -5
  105. package/dispatch/lens-definitions.json +0 -46
@@ -18,8 +18,8 @@ Normal usage should:
18
18
 
19
19
  audit-tools owns deterministic discovery, planning, persisted state, strict
20
20
  result ingestion, and synthesis. When semantic review is ready it emits a
21
- complete provider-neutral workload. Delegate those bounded items through the
22
- host's native subagent facilities when available, then return only the bound
21
+ complete provider-neutral workload. Run those bounded items in separate
22
+ contexts when the host can, then return only the bound
23
23
  result artifacts requested by the current prompt.
24
24
 
25
25
  If the host cannot delegate, complete exactly one emitted review item in the
@@ -36,21 +36,14 @@ audit-code ensure --quiet
36
36
  audit-code next-step
37
37
  ```
38
38
 
39
- When developing audit-tools itself, use the repository-local wrapper:
40
-
41
- ```bash
42
- node audit-code.mjs ensure --quiet
43
- node audit-code.mjs next-step
44
- ```
45
-
46
39
  The target-directory rule has one full statement in
47
40
  `skills/audit-code/audit-code.prompt.md` (whose absolute path `audit-code
48
41
  prompt-path` prints); follow it as written there. Do not add provider, model,
49
42
  quota, routing, or launch flags.
50
43
 
51
- Read the returned JSON only far enough to find `prompt_path`, then read and
52
- follow only that prompt. Do not inspect workload, result, schema, or state files
53
- unless the current prompt directs you to them. When it says to continue, call
44
+ The command prints a JSON step record. Read the prompt file at its
45
+ `prompt_path`, then follow only that prompt. Do not inspect workload, result,
46
+ schema, or state files unless the current prompt directs you to them. When it says to continue, call
54
47
  `next-step` again. Stop when it says to stop.
55
48
 
56
49
  The package install seeds command and skill assets. Use `audit-code install`
@@ -16,9 +16,6 @@ First bootstrap current assets:
16
16
  audit-code ensure --quiet
17
17
  ```
18
18
 
19
- When developing audit-tools itself, use `node audit-code.mjs` from the
20
- repository root.
21
-
22
19
  Preserve user arguments:
23
20
 
24
21
  - run from inside the target repository; every command resolves that repository's
@@ -32,12 +29,12 @@ Ask for exactly one step:
32
29
  audit-code next-step
33
30
  ```
34
31
 
35
- Read the returned JSON only far enough to find `prompt_path`, then read and
36
- follow only that prompt. Do not inspect workload, result, schema, or state files
37
- unless the current prompt directs you to them.
32
+ The command prints a JSON step record. Read the prompt file at its
33
+ `prompt_path`, then follow only that prompt. Do not inspect workload, result,
34
+ schema, or state files unless the current prompt directs you to them.
38
35
 
39
- When the prompt emits semantic review items, assign them with the host's native
40
- subagent facilities when available. Do not send provider, model, quota,
36
+ When the prompt emits semantic review items, run each in a separate context
37
+ when the host can, else yourself, as the prompt directs. Do not send provider, model, quota,
41
38
  context-window, routing, or launch configuration to audit-tools. Write the
42
39
  prompt-bound result artifacts exactly where requested and let the next backend
43
40
  step validate and ingest them.
@@ -3,10 +3,10 @@
3
3
  Use `audit-code next-step` as the primary interface to the audit workflow.
4
4
 
5
5
  1. Run `audit-code next-step` directly when shell access is available.
6
- 2. Read the returned JSON far enough to find `prompt_path`, then read and follow the prompt file it points to.
6
+ 2. Read the prompt file at the returned step record's `prompt_path`, then follow it.
7
7
  3. When a step completes (not blocked), run `audit-code next-step` again.
8
8
  4. Stop when the step instructions say to stop.
9
9
 
10
- Use the `task` tool or equivalent for subagent dispatch when the step tells you to fan out review work.
10
+ When the step tells you to fan out review work, run each lane in a separate context when the host can, else yourself.
11
11
 
12
12
  If shell access to `audit-code next-step` is unavailable, stop and report that no next-step interface is connected.
@@ -19,8 +19,7 @@ Normal usage should:
19
19
  The backend owns intake, contract planning, persisted state, dependency and
20
20
  phase safety, strict result ingestion, verification, and closeout. When
21
21
  implementation is ready it emits every eligible provider-neutral work item.
22
- Delegate bounded work through the host's native subagent facilities when
23
- available. The host returns prompt-bound commit and test evidence; the backend
22
+ Run bounded work in separate contexts when the host can. The host returns prompt-bound commit and test evidence; the backend
24
23
  corroborates that evidence before it accepts completion.
25
24
 
26
25
  If the host cannot delegate, complete exactly one emitted work item in the
@@ -43,13 +42,12 @@ them as written there.
43
42
  Do not add capability, provider, model, quota, context-window, or concurrency
44
43
  flags.
45
44
 
46
- Read the returned JSON only far enough to find `prompt_path`, then read and
47
- follow only that prompt. Do not inspect workload, result, schema, or state files
48
- unless the current prompt directs you to them. When it says to continue, call
45
+ The command prints a JSON step record. Read the prompt file at its
46
+ `prompt_path`, then follow only that prompt. Do not inspect workload, result,
47
+ schema, or state files unless the current prompt directs you to them. When it says to continue, call
49
48
  `next-step` again. Stop when it says to stop.
50
49
 
51
- When developing audit-tools itself, prefer `node remediate-code.mjs`. Use
52
- `remediate-code install` for repair or forced asset refresh.
50
+ Use `remediate-code install` for repair or forced asset refresh.
53
51
 
54
52
  ## Development rule
55
53
 
@@ -40,12 +40,12 @@ Then ask for exactly one step:
40
40
  remediate-code next-step
41
41
  ```
42
42
 
43
- Read the returned JSON only far enough to find `prompt_path`, then read and
44
- follow only that prompt. Do not inspect workload, result, schema, or state files
45
- unless the current prompt directs you to them.
43
+ The command prints a JSON step record. Read the prompt file at its
44
+ `prompt_path`, then follow only that prompt. Do not inspect workload, result,
45
+ schema, or state files unless the current prompt directs you to them.
46
46
 
47
- When the prompt emits implementation items, assign them using the host's native
48
- subagent facilities when available. Do not send provider, model, quota,
47
+ When the prompt emits implementation items, run each in a separate context
48
+ when the host can, else yourself, as the prompt directs. Do not send provider, model, quota,
49
49
  context-window, routing, launch, or concurrency configuration to audit-tools.
50
50
  Write the bound result artifacts exactly where requested; the next backend step
51
51
  validates workload identity, worktree and commit evidence, changed files, and
@@ -1,46 +0,0 @@
1
- {
2
- "correctness": {
3
- "description": "Logic errors, incorrect algorithm implementations, off-by-one bugs, type mismatches, wrong return values, incorrect state transitions, missing null/undefined guards, misuse of APIs. Focus on code that does the wrong thing.",
4
- "do_not_report": "Style issues, naming problems, missing tests, or findings that belong to other lenses."
5
- },
6
- "maintainability": {
7
- "description": "Code that is hard to change safely: excessive function length, deep nesting, tight coupling between unrelated modules, poor naming, magic constants, duplicated logic, inconsistent abstractions, unclear public APIs. A specific high-value smell: the same logic, format, or contract implemented in two or more places and kept consistent by a test or by convention instead of extracted to one shared source — flag the duplication and recommend single-sourcing it (the sync test is a workaround for the missing abstraction, not the fix). The change-cost tell is 'every edit must be made in N places to stay correct.'",
8
- "do_not_report": "Correctness bugs, test gaps, or operational concerns."
9
- },
10
- "tests": {
11
- "description": "Test coverage gaps for important paths, tests that assert incorrect behavior (pinning bugs as expected), fragile or non-deterministic tests, missing negative/edge-case tests, tests that silently pass on stale builds (e.g. importing compiled dist/ rather than source). Also flag a test whose purpose is to keep two copies of logic/format/output in sync (a drift guard): the real defect is the duplication it polices, which should be extracted to one shared source so the guard is unnecessary — report the test as the symptom and call out the duplication to single-source.",
12
- "do_not_report": "Source code bugs — report only issues with the tests themselves."
13
- },
14
- "security": {
15
- "description": "Injection vulnerabilities (SQL, shell, path traversal), authentication/authorization flaws, secret exposure, insecure deserialization, privilege escalation, unsafe use of eval or child processes with user input.",
16
- "do_not_report": "Performance or correctness issues that are not security-relevant."
17
- },
18
- "reliability": {
19
- "description": "Failure modes without recovery, missing timeouts, unhandled promise rejections, race conditions, resource leaks (file handles, sockets, timers), incorrect retry logic, cascading failure risks.",
20
- "do_not_report": "Correctness bugs that do not affect reliability under failure conditions."
21
- },
22
- "performance": {
23
- "description": "Algorithmic inefficiencies (O(n²) where O(n) is possible), unnecessary re-computation, missing caching, synchronous blocking in hot paths, excessive memory allocation.",
24
- "do_not_report": "Correctness bugs unrelated to performance."
25
- },
26
- "data_integrity": {
27
- "description": "Missing input validation at trust boundaries, schema violations, inconsistent field naming across related schemas, data loss scenarios, missing required fields, enum values that are present in some schemas but not others.",
28
- "do_not_report": "UI or presentation issues; operational or deployment concerns."
29
- },
30
- "operability": {
31
- "description": "Missing or low-quality log output, error messages that don't help operators diagnose problems, missing progress indicators for long operations, no elapsed-time reporting, lack of dry-run or preview modes for destructive operations.",
32
- "do_not_report": "Correctness bugs or deployment configuration."
33
- },
34
- "config_deployment": {
35
- "description": "CI/CD pipeline correctness (wrong triggers, missing branch filters, floating version pins), deployment safety (no gate before publish, missing rollback), insecure secret handling in configs, mutable action tags that should be pinned to commit SHAs.",
36
- "do_not_report": "Runtime code issues; findings that belong to other lenses."
37
- },
38
- "architecture": {
39
- "description": "Big-picture design, conceptual elegance, over-engineering, under-engineering, appropriate use of abstractions, and identifying opportunities where custom code should be replaced by third-party tools or standard libraries. Flag a missing single source of truth: the same logic, format, or contract realized in multiple components where it should live in one shared module — the durable fix is extraction to that shared source, not a test or convention that keeps the copies in sync. Flag structural findings that span multiple components as 'systemic: true'.",
40
- "do_not_report": "Minor style issues, localized logic bugs, or formatting."
41
- },
42
- "observability": {
43
- "description": "Logging quality, telemetry, distributed tracing context, meaningful metrics, and error reporting context.",
44
- "do_not_report": "Correctness bugs or deployment configuration."
45
- }
46
- }