coding-agent-skills 0.2.10 → 0.2.12

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 (69) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +8 -0
  3. package/ROADMAP.md +9 -5
  4. package/bin/coding-agent-skills +14 -0
  5. package/docs/adapters/README.md +38 -0
  6. package/docs/adapters/project-installation.md +24 -0
  7. package/docs/adapters/real-project-adoption.md +2 -2
  8. package/docs/architecture/README.md +5 -3
  9. package/docs/release/README.md +3 -2
  10. package/docs/release/npm-package.md +10 -2
  11. package/docs/safety/README.md +11 -1
  12. package/docs/testing/README.md +15 -0
  13. package/docs/usage/README.md +23 -5
  14. package/examples/command-policies/api-contract-audit.json +70 -0
  15. package/examples/command-policies/secret-audit.json +71 -0
  16. package/examples/evidence-packs/api-contract-audit.json +60 -0
  17. package/examples/evidence-packs/secret-audit.json +55 -0
  18. package/examples/manifests/api-contract-audit.json +14 -0
  19. package/examples/manifests/secret-audit.json +14 -0
  20. package/examples/workflows/api-contract-audit.md +8 -0
  21. package/examples/workflows/secret-audit.md +10 -0
  22. package/package.json +3 -1
  23. package/runs/skill-runs.md +32 -0
  24. package/schemas/project-adapter-installation.schema.json +4 -0
  25. package/schemas/project-adapter.schema.json +4 -0
  26. package/scripts/lib/api-contract-audit.mjs +651 -0
  27. package/scripts/lib/pack-rules.mjs +20 -2
  28. package/scripts/lib/secret-audit.mjs +510 -0
  29. package/scripts/render-api-contract-audit.mjs +8 -0
  30. package/scripts/render-secret-audit.mjs +8 -0
  31. package/scripts/test-pack.mjs +130 -1
  32. package/scripts/validate-pack.mjs +8 -2
  33. package/skills/api-contract-audit/SKILL.md +85 -0
  34. package/skills/api-contract-audit/adapter-interface.md +16 -0
  35. package/skills/api-contract-audit/agents/openai.yaml +4 -0
  36. package/skills/api-contract-audit/checklist.md +7 -0
  37. package/skills/api-contract-audit/evidence-template.md +13 -0
  38. package/skills/api-contract-audit/examples.md +20 -0
  39. package/skills/api-contract-audit/failure-modes.md +5 -0
  40. package/skills/secret-audit/SKILL.md +57 -0
  41. package/skills/secret-audit/adapter-interface.md +12 -0
  42. package/skills/secret-audit/agents/openai.yaml +4 -0
  43. package/skills/secret-audit/checklist.md +7 -0
  44. package/skills/secret-audit/evidence-template.md +15 -0
  45. package/skills/secret-audit/examples.md +27 -0
  46. package/skills/secret-audit/failure-modes.md +5 -0
  47. package/tests/fixtures/api-contract-audit/adapter-project/.coding-agent/adapters/api-contract-audit-fixture/adapter.json +53 -0
  48. package/tests/fixtures/api-contract-audit/adapter-project/.coding-agent/skills.json +23 -0
  49. package/tests/fixtures/api-contract-audit/adapter-project/README.md +3 -0
  50. package/tests/fixtures/api-contract-audit/adapter-project/package.json +4 -0
  51. package/tests/fixtures/api-contract-audit/adapter-project/src/routes.ts +1 -0
  52. package/tests/fixtures/api-contract-audit/static-project/README.md +3 -0
  53. package/tests/fixtures/api-contract-audit/static-project/app/api/users/route.ts +7 -0
  54. package/tests/fixtures/api-contract-audit/static-project/docs/openapi.yaml +10 -0
  55. package/tests/fixtures/api-contract-audit/static-project/package.json +4 -0
  56. package/tests/fixtures/api-contract-audit/static-project/schemas/user.schema.ts +4 -0
  57. package/tests/fixtures/api-contract-audit/static-project/src/client.ts +3 -0
  58. package/tests/fixtures/secret-audit/adapter-project/.coding-agent/adapters/secret-audit-fixture/adapter.json +53 -0
  59. package/tests/fixtures/secret-audit/adapter-project/.coding-agent/skills.json +23 -0
  60. package/tests/fixtures/secret-audit/adapter-project/README.md +3 -0
  61. package/tests/fixtures/secret-audit/adapter-project/package.json +4 -0
  62. package/tests/fixtures/secret-audit/adapter-project/src/placeholder.ts +1 -0
  63. package/tests/fixtures/secret-audit/static-project/.env.example +1 -0
  64. package/tests/fixtures/secret-audit/static-project/README.md +3 -0
  65. package/tests/fixtures/secret-audit/static-project/package.json +4 -0
  66. package/tests/fixtures/secret-audit/static-project/src/config.ts +1 -0
  67. package/tests/fixtures/triggers/cases.json +25 -1
  68. package/tests/trigger/README.md +4 -0
  69. package/work-ledger.md +30 -6
package/CHANGELOG.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  All notable changes follow [Semantic Versioning](docs/versioning/README.md).
4
4
 
5
+ ## [0.2.12] - 2026-07-03
6
+
7
+ ### Added
8
+
9
+ - `api-contract-audit` audit-only skill for static API contract surface mapping.
10
+ - `coding-agent-skills api-contract-audit <project-root>` CLI command.
11
+ - Dependency-free API contract audit renderer for contract files, endpoint declarations,
12
+ client-call patterns, schema/type files, skipped paths, not-verified runtime behavior,
13
+ adapter-limited scope, and safety refusals.
14
+ - Synthetic API contract fixtures and release tests for generic static scans,
15
+ adapter-scoped scans, OpenAPI files, route handlers, client calls, schema/type files,
16
+ and repo-map-only adapter skips.
17
+
18
+ ### Changed
19
+
20
+ - Adapter schemas and validators now recognize `api-contract-audit` as an audit-only skill
21
+ while preserving the existing `0.2.3` adapter contract compatibility baseline.
22
+ - Usage, release, safety, architecture, adapter, roadmap, ledger, and run-log docs now
23
+ describe the new static read-only API contract audit command.
24
+
25
+ ## [0.2.11] - 2026-07-03
26
+
27
+ ### Added
28
+
29
+ - `secret-audit` audit-only skill for redacted static secret exposure detection.
30
+ - `coding-agent-skills secret-audit <project-root>` CLI command.
31
+ - Dependency-free secret audit renderer for high-confidence finding paths, finding types,
32
+ counts, skipped secret-bearing paths, not-verified credential surfaces, adapter-limited
33
+ scope, and safety refusals.
34
+ - Synthetic secret-audit fixtures and release tests for generic static scans,
35
+ adapter-scoped scans, `.env` exclusion, matched-value omission, and repo-map-only adapter
36
+ skips.
37
+
38
+ ### Changed
39
+
40
+ - Adapter schemas and validators now recognize `secret-audit` as an audit-only skill while
41
+ preserving the existing `0.2.3` adapter contract compatibility baseline.
42
+ - Usage, release, safety, architecture, adapter, roadmap, ledger, and run-log docs now
43
+ describe the new redacted read-only secret-audit command.
44
+
5
45
  ## [0.2.10] - 2026-07-03
6
46
 
7
47
  ### Added
package/README.md CHANGED
@@ -8,6 +8,8 @@ The pilot pack contains:
8
8
  - `repo-map`: audit-only repository orientation.
9
9
  - `route-trace`: audit-only static route surface tracing.
10
10
  - `env-audit`: audit-only environment variable name mapping without values.
11
+ - `secret-audit`: audit-only high-confidence secret exposure detection without values.
12
+ - `api-contract-audit`: audit-only static API contract surface mapping.
11
13
  - `build-verify`: controlled local validation using existing project commands.
12
14
  - `git-preflight`: audit-only Git readiness inspection.
13
15
  - `runtime-truth`: audit-only runtime evidence collection.
@@ -42,6 +44,8 @@ Every skill emits the evidence-pack contract. A command being attempted is never
42
44
  - From a clone, the same wrapper is available as `bin/coding-agent-skills validate-pack`.
43
45
  - Trace static route surfaces with `coding-agent-skills route-trace <project-root>`.
44
46
  - Map environment variable names with `coding-agent-skills env-audit <project-root>`.
47
+ - Find redacted secret exposure risks with `coding-agent-skills secret-audit <project-root>`.
48
+ - Map static API contract surfaces with `coding-agent-skills api-contract-audit <project-root>`.
45
49
  - Validate project adapters against [the formal adapter schema](schemas/project-adapter.schema.json).
46
50
  - Review [external adapter discovery](docs/adapters/discovery.md).
47
51
  - Run `node scripts/validate-adapters.mjs <adapter-root>` for a disposable external root.
@@ -51,6 +55,10 @@ Every skill emits the evidence-pack contract. A command being attempted is never
51
55
  `node scripts/render-adapter-repo-map.mjs <project-root>`.
52
56
  - Render a static route-trace report with
53
57
  `node scripts/render-route-trace.mjs <project-root>`.
58
+ - Render a redacted secret-audit report with
59
+ `node scripts/render-secret-audit.mjs <project-root>`.
60
+ - Render a static API contract audit report with
61
+ `node scripts/render-api-contract-audit.mjs <project-root>`.
54
62
  - Review [adapter upgrade checks](docs/adapters/upgrades.md).
55
63
  - Run `node scripts/check-adapter-upgrade.mjs <before-project-root> <after-project-root>`
56
64
  for disposable project revisions.
package/ROADMAP.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Roadmap
2
2
 
3
- The public package now contains seven approved shared skills. Builder-mode approval is
3
+ The public package now contains nine approved shared skills. Builder-mode approval is
4
4
  active for the remaining read-only skill wave in this repository; real-world project
5
5
  execution constraints remain unchanged.
6
6
 
@@ -32,6 +32,10 @@ execution constraints remain unchanged.
32
32
  tracing.
33
33
  - `v0.2.10`: audit-only `env-audit` skill and CLI renderer for value-free environment
34
34
  variable name mapping.
35
+ - `v0.2.11`: audit-only `secret-audit` skill and CLI renderer for redacted secret
36
+ exposure detection.
37
+ - `v0.2.12`: audit-only `api-contract-audit` skill and CLI renderer for static API
38
+ contract surface mapping.
35
39
 
36
40
  The next milestone is recorded in [work-ledger.md](work-ledger.md). The
37
41
  [maintainer loop](RUNBOOK.md) may select and evidence that milestone, but it must stop
@@ -74,18 +78,18 @@ Next safe milestone options:
74
78
  |---|---|---|---|
75
79
  | `route-trace-skill` | General | Audit-only | Implemented in `v0.2.9` |
76
80
  | `env-audit-skill` | General | Audit-only | Implemented in `v0.2.10` |
77
- | `secret-audit-skill` | General | Audit-only | Builder-mode approved; queued after `env-audit` |
81
+ | `secret-audit-skill` | General | Audit-only | Implemented in `v0.2.11` |
82
+ | `api-contract-audit-skill` | General | Audit-only | Implemented in `v0.2.12` |
83
+ | `migration-review-skill` | General with platform adapters | Audit-only | Builder-mode approved; next in wave |
84
+ | `github-handoff-skill` | General | Audit-only | Builder-mode approved; later in wave |
78
85
  | `deployment-preflight-skill` | General | Audit-only | Builder-mode approved; later in wave |
79
86
  | `cloudflare-preflight-skill` | Platform-specific | Audit-only | Builder-mode approved; later in wave |
80
87
  | `cloudflare-deploy-skill` | Platform-specific | Action-capable | Blocked on approval model |
81
88
  | `supabase-rls-audit-skill` | Platform-specific | Audit-only | Builder-mode approved; later in wave |
82
- | `migration-review-skill` | General with platform adapters | Audit-only | Builder-mode approved; later in wave |
83
- | `api-contract-audit-skill` | General | Audit-only | Builder-mode approved; later in wave |
84
89
  | `repo-knowledge-sync-skill` | General | Action-capable | Blocked on write approval model |
85
90
  | `security-hardening-review-skill` | General coordinator | Audit-only | Needs more evidence |
86
91
  | `worker-queue-debug-skill` | General core with project adapters | Audit-only first | Needs more evidence |
87
92
  | `devvit-ingest-debug-skill` | Project-specific | Audit-only | Needs project evidence |
88
- | `github-handoff-skill` | General | Audit-only | Builder-mode approved; later in wave |
89
93
  | `session-extractor-skill` | General tooling | Action-capable | Blocked on privacy policy and more evidence |
90
94
  | `command-redaction-skill` | General tooling | Action-capable | Needs more evidence |
91
95
 
@@ -35,6 +35,18 @@ const commands = {
35
35
  usage: "coding-agent-skills env-audit <project-root>",
36
36
  requiredArgs: 1,
37
37
  },
38
+ "secret-audit": {
39
+ script: "scripts/render-secret-audit.mjs",
40
+ args: ([projectRoot]) => [projectRoot],
41
+ usage: "coding-agent-skills secret-audit <project-root>",
42
+ requiredArgs: 1,
43
+ },
44
+ "api-contract-audit": {
45
+ script: "scripts/render-api-contract-audit.mjs",
46
+ args: ([projectRoot]) => [projectRoot],
47
+ usage: "coding-agent-skills api-contract-audit <project-root>",
48
+ requiredArgs: 1,
49
+ },
38
50
  "validate-adapters": {
39
51
  script: "scripts/validate-adapters.mjs",
40
52
  args: ([adapterRoot]) => [adapterRoot],
@@ -53,6 +65,8 @@ function usage(exitCode = 0) {
53
65
  " repo-map <project-root>",
54
66
  " route-trace <project-root>",
55
67
  " env-audit <project-root>",
68
+ " secret-audit <project-root>",
69
+ " api-contract-audit <project-root>",
56
70
  " validate-adapters <adapter-root>",
57
71
  "",
58
72
  "local wrapper for the published coding-agent-skills package",
@@ -70,6 +70,40 @@ secret-bearing files, and reports variable names, classifications, sample files
70
70
  skipped items, and not-verified runtime or credential stores. It never prints values or
71
71
  validates credentials.
72
72
 
73
+ ## Adapter-Aware Secret Audit Consumption
74
+
75
+ The shared pack can consume a validated project-owned adapter as bounded context for
76
+ `secret-audit`:
77
+
78
+ ```bash
79
+ node scripts/render-secret-audit.mjs <project-root>
80
+ ```
81
+
82
+ The renderer validates the project declaration when present. If an adapter is present but
83
+ does not enable `secret-audit`, it reports an adapter-limited skip instead of broadening
84
+ scope. When enabled, it reads only adapter-declared safe paths, excludes `.env`,
85
+ secret-bearing files, generated output, dependency paths, and oversized files, then
86
+ reports finding paths, types, and counts. It never prints matched values, validates
87
+ credentials, rotates secrets, contacts APIs, deploys, migrates, builds, tests, or mutates
88
+ project files.
89
+
90
+ ## Adapter-Aware API Contract Audit Consumption
91
+
92
+ The shared pack can consume a validated project-owned adapter as bounded context for
93
+ `api-contract-audit`:
94
+
95
+ ```bash
96
+ node scripts/render-api-contract-audit.mjs <project-root>
97
+ ```
98
+
99
+ The renderer validates the project declaration when present. If an adapter is present but
100
+ does not enable `api-contract-audit`, it reports an adapter-limited skip instead of
101
+ broadening scope. When enabled, it reads only adapter-declared safe paths, excludes `.env`,
102
+ secret-bearing files, generated output, dependency paths, and oversized files, then
103
+ reports contract files, endpoint declarations, client-call patterns, schema/type files,
104
+ skipped paths, and not-verified runtime behavior. It never runs servers, calls APIs,
105
+ generates schemas or clients, builds, tests, deploys, migrates, or mutates project files.
106
+
73
107
  ## What Adapters May Do
74
108
 
75
109
  - Add bounded relative read paths and ignored paths.
@@ -77,6 +111,10 @@ validates credentials.
77
111
  - Add documentation precedence and package-manager hints.
78
112
  - Add route-trace safe read paths for static route files and route config.
79
113
  - Add env-audit safe read paths for static source, docs, sample, and config files.
114
+ - Add secret-audit safe read paths for static source, docs, sample, and config files
115
+ while relying on the shared scanner to exclude secret-bearing paths.
116
+ - Add api-contract-audit safe read paths for static API docs, contract files, route
117
+ handlers, client calls, and schema/type files.
80
118
  - Add command aliases that already satisfy the shared command policy.
81
119
  - Add status-only runtime commands and manager hints.
82
120
  - Require additional evidence or named approval for exceptional reads.
@@ -133,6 +133,30 @@ present but does not enable `env-audit`, it reports an adapter-limited skip. Whe
133
133
  it reads only adapter-declared safe paths, refuses `.env` and secret-bearing files, and
134
134
  reports environment variable names without values.
135
135
 
136
+ A project-owned adapter can also enable read-only `secret-audit` context:
137
+
138
+ ```bash
139
+ node scripts/render-secret-audit.mjs <project-root>
140
+ ```
141
+
142
+ The secret-audit renderer validates the project declaration when present. If the adapter
143
+ is present but does not enable `secret-audit`, it reports an adapter-limited skip. When
144
+ enabled, it reads only adapter-declared safe paths, refuses `.env` and secret-bearing
145
+ files, and reports high-confidence finding paths, types, and counts without matched
146
+ values or credential validation.
147
+
148
+ A project-owned adapter can also enable read-only `api-contract-audit` context:
149
+
150
+ ```bash
151
+ node scripts/render-api-contract-audit.mjs <project-root>
152
+ ```
153
+
154
+ The API contract audit renderer validates the project declaration when present. If the
155
+ adapter is present but does not enable `api-contract-audit`, it reports an adapter-limited
156
+ skip. When enabled, it reads only adapter-declared safe paths and reports static contract
157
+ files, endpoint declarations, client-call patterns, schema/type files, and not-verified
158
+ runtime behavior without running servers, calling APIs, or generating code.
159
+
136
160
  ## Safety Boundary
137
161
 
138
162
  Project adapters are extension-only. They cannot remove denied operations, change an
@@ -21,8 +21,8 @@ project repository is touched:
21
21
  - The project can declare exactly one installation file: `.coding-agent/skills.json` or
22
22
  `coding-agent.skills.json`.
23
23
  - The adapter need is bounded to existing pilot skills: `repo-map`, `route-trace`,
24
- `env-audit`, `build-verify`, `git-preflight`, `runtime-truth`, or
25
- `llm-drift-control`.
24
+ `env-audit`, `secret-audit`, `api-contract-audit`, `build-verify`, `git-preflight`,
25
+ `runtime-truth`, or `llm-drift-control`.
26
26
  - The adapter can narrow context with relative paths, documentation precedence, safe
27
27
  aliases, status-only hints, or extra evidence requirements.
28
28
  - The adapter does not require deployment, migration, package installation, Git
@@ -14,6 +14,8 @@ Audit-only:
14
14
  - `repo-map`
15
15
  - `route-trace`
16
16
  - `env-audit`
17
+ - `secret-audit`
18
+ - `api-contract-audit`
17
19
  - `git-preflight`
18
20
  - `runtime-truth`
19
21
  - `llm-drift-control`
@@ -22,6 +24,6 @@ Controlled local validation:
22
24
 
23
25
  - `build-verify`
24
26
 
25
- The evidence pack is a shared output contract, not an executable skill. Environment and
26
- secret audits, deployment preflight, GitHub handoff, provider operations, and additional
27
- project adapters remain separate future work.
27
+ The evidence pack is a shared output contract, not an executable skill. Deployment
28
+ preflight, GitHub handoff, provider operations, and additional project adapters remain
29
+ separate future work.
@@ -19,8 +19,9 @@
19
19
  13. Inspect tarball contents for local-only files, credentials, `.env` files, dependency
20
20
  folders, generated output, and unrelated repositories.
21
21
  14. Install the tarball into a temporary npm prefix and smoke-test the installed CLI.
22
- 15. Smoke-test any new CLI command such as `coding-agent-skills route-trace` or
23
- `coding-agent-skills env-audit` against synthetic fixtures only unless a real project
22
+ 15. Smoke-test any new CLI command such as `coding-agent-skills route-trace`,
23
+ `coding-agent-skills env-audit`, `coding-agent-skills secret-audit`, or
24
+ `coding-agent-skills api-contract-audit` against synthetic fixtures only unless a real project
24
25
  read-only smoke is explicitly approved.
25
26
  16. Review changelog, ledger, run evidence, and versioning impact.
26
27
  17. Commit with approved identity.
@@ -7,7 +7,7 @@ safety model.
7
7
  ## Current Package Shape
8
8
 
9
9
  - Package name: `coding-agent-skills`.
10
- - Package version: `0.2.10`.
10
+ - Package version: `0.2.12`.
11
11
  - CLI bin: `coding-agent-skills` mapped to `bin/coding-agent-skills`.
12
12
  - Module type: `module`.
13
13
  - Dependencies: none.
@@ -29,6 +29,8 @@ coding-agent-skills validate-project /path/to/project
29
29
  coding-agent-skills repo-map /path/to/project
30
30
  coding-agent-skills route-trace /path/to/project
31
31
  coding-agent-skills env-audit /path/to/project
32
+ coding-agent-skills secret-audit /path/to/project
33
+ coding-agent-skills api-contract-audit /path/to/project
32
34
  coding-agent-skills validate-adapters /path/to/adapter-root
33
35
  ```
34
36
 
@@ -43,6 +45,12 @@ project-adapter validators. `route-trace` is static and audit-only; it reports r
43
45
  files and route declarations without executing the target project. `env-audit` is static
44
46
  and audit-only; it reports environment variable names without reading `.env` files or
45
47
  printing values.
48
+ `secret-audit` is static and audit-only; it reports high-confidence secret-like finding
49
+ paths, types, and counts without printing matched values, reading `.env` files, or
50
+ validating credentials.
51
+ `api-contract-audit` is static and audit-only; it reports contract files, endpoint
52
+ declarations, client-call patterns, schema/type files, and not-verified runtime behavior
53
+ without running servers, calling APIs, or generating clients or schemas.
46
54
 
47
55
  `coding-agent-skills validate-pack` is package-aware. In a source checkout, it keeps
48
56
  source-only checks such as `.gitignore` validation. In an installed package tree, where
@@ -77,7 +85,7 @@ included.
77
85
 
78
86
  The public CLI remains read-only for target projects unless a specific underlying skill
79
87
  already permits a bounded local validation action. The installed `repo-map`,
80
- `route-trace`, and adapter flows do not:
88
+ `route-trace`, `env-audit`, `secret-audit`, `api-contract-audit`, and adapter flows do not:
81
89
 
82
90
  - deploy
83
91
  - run migrations
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Audit-Only Rule
4
4
 
5
- `repo-map`, `route-trace`, `env-audit`, `git-preflight`, `runtime-truth`, and `llm-drift-control` must not alter project files, Git state, dependencies, processes, services, databases, remote systems, or deployment state.
5
+ `repo-map`, `route-trace`, `env-audit`, `secret-audit`, `api-contract-audit`, `git-preflight`, `runtime-truth`, and `llm-drift-control` must not alter project files, Git state, dependencies, processes, services, databases, remote systems, or deployment state.
6
6
 
7
7
  `route-trace` is static only. It may read bounded non-secret route files and route
8
8
  configuration, but it must not execute app code, run servers, hit URLs, claim runtime
@@ -12,6 +12,16 @@ truth, or broaden adapter scope when a project adapter is present.
12
12
  files, including `.env.example`, but must not read `.env`, print values, validate
13
13
  credentials, contact APIs, or inspect secret stores.
14
14
 
15
+ `secret-audit` is redacted static inspection only. It may read bounded non-secret static
16
+ files and report high-confidence secret-like finding paths, types, and counts, but it must
17
+ not print matched values, read `.env` or secret-bearing files, inspect credential stores,
18
+ validate or rotate credentials, contact APIs, or broaden adapter scope.
19
+
20
+ `api-contract-audit` is static only. It may read bounded non-secret API docs, contract
21
+ files, route handlers, client calls, and schema/type files, but it must not run servers,
22
+ call APIs, probe URLs, generate schemas or clients, build, test, deploy, migrate, inspect
23
+ databases, or broaden adapter scope.
24
+
15
25
  `build-verify` may run existing project-native validation commands. Build or test tools may create their normal local artifacts, but the skill must declare observed changes and must reject installation, fix modes, snapshot updates, deployment, migration, or unknown scripts.
16
26
 
17
27
  ## Restricted Categories
@@ -44,6 +44,21 @@ Synthetic env-audit projects cover value-free variable-name detection, `.env` ex
44
44
  behavior. Env-audit tests must never print values, validate credentials, contact APIs,
45
45
  run target projects, build, test, deploy, migrate, or read `.env` files.
46
46
 
47
+ ## Secret Audit
48
+
49
+ Synthetic secret-audit projects cover high-confidence finding detection, `.env` exclusion,
50
+ matched-value omission, adapter-declared scope, and adapter-present-but-not-enabled
51
+ behavior. Secret-audit tests construct synthetic secret-like values only in temporary
52
+ directories and assert that rendered reports include paths, types, and counts without
53
+ printing matched values.
54
+
55
+ ## API Contract Audit
56
+
57
+ Synthetic api-contract-audit projects cover OpenAPI file detection, static route handler
58
+ declarations, client-call patterns, schema/type files, adapter-declared scope, and
59
+ adapter-present-but-not-enabled behavior. Tests must never run servers, call endpoints,
60
+ generate schemas or clients, build, test, deploy, migrate, or read `.env` files.
61
+
47
62
  ## Privacy And Redaction
48
63
 
49
64
  Sensitive shapes are stored as ordered synthetic parts and reconstructed only in memory. Tests verify type detection, redaction, and absence from reusable skill content without printing fixture values.
@@ -7,6 +7,8 @@ Select the least-privileged skill that matches the request:
7
7
  | Understand repository identity and structure | `repo-map` |
8
8
  | Trace statically visible route surfaces | `route-trace` |
9
9
  | Map environment variable names without values | `env-audit` |
10
+ | Find high-confidence secret exposure risks without values | `secret-audit` |
11
+ | Map static API contract surfaces | `api-contract-audit` |
10
12
  | Run existing local validation checks | `build-verify` |
11
13
  | Assess Git handoff readiness | `git-preflight` |
12
14
  | Determine what is actually running | `runtime-truth` |
@@ -18,11 +20,15 @@ Select the least-privileged skill that matches the request:
18
20
  2. Use `route-trace` when route files or declarations must be mapped from static files.
19
21
  3. Use `env-audit` when environment variable names or sample config references must be
20
22
  mapped without reading values.
21
- 4. Perform implementation outside this pilot pack.
22
- 5. Use `build-verify` for approved project-native checks.
23
- 6. Use `git-preflight` before handoff or publication.
24
- 7. Use `runtime-truth` only when live local state matters.
25
- 8. Use `llm-drift-control` when claims and evidence may disagree.
23
+ 4. Use `secret-audit` when high-confidence tracked secret exposure risk must be reported
24
+ by path, type, and count without printing matched values.
25
+ 5. Use `api-contract-audit` when OpenAPI/Swagger files, endpoint declarations, client
26
+ calls, and schema/type files must be mapped without runtime behavior.
27
+ 6. Perform implementation outside this pilot pack.
28
+ 7. Use `build-verify` for approved project-native checks.
29
+ 8. Use `git-preflight` before handoff or publication.
30
+ 9. Use `runtime-truth` only when live local state matters.
31
+ 10. Use `llm-drift-control` when claims and evidence may disagree.
26
32
 
27
33
  Every skill emits an evidence pack. Read `status`, skipped checks, failures, confidence, and changed state before relying on a completion claim.
28
34
 
@@ -55,6 +61,8 @@ coding-agent-skills validate-project /path/to/project
55
61
  coding-agent-skills repo-map /path/to/project
56
62
  coding-agent-skills route-trace /path/to/project
57
63
  coding-agent-skills env-audit /path/to/project
64
+ coding-agent-skills secret-audit /path/to/project
65
+ coding-agent-skills api-contract-audit /path/to/project
58
66
  coding-agent-skills validate-adapters /path/to/adapter-root
59
67
  ```
60
68
 
@@ -74,6 +82,12 @@ skipped items, and not-verified runtime-dependent route classes.
74
82
  when enabled, and statically reports environment variable names, classifications, sample
75
83
  files inspected, skipped secret-bearing paths, and not-verified runtime or credential
76
84
  stores without printing values.
85
+ `secret-audit` validates a project adapter when present, uses adapter-declared safe paths
86
+ when enabled, and statically reports high-confidence secret-like finding paths, types, and
87
+ counts without printing matched values or validating credentials.
88
+ `api-contract-audit` validates a project adapter when present, uses adapter-declared safe
89
+ paths when enabled, and statically reports contract files, endpoint declarations,
90
+ client-call patterns, schema/type files, skipped paths, and not-verified runtime behavior.
77
91
 
78
92
  The installed CLI does not run target project builds or tests, perform runtime checks,
79
93
  deploy, migrate, mutate services or processes, or read `.env` files. Project adapters
@@ -89,6 +103,8 @@ bin/coding-agent-skills validate-project /path/to/project
89
103
  bin/coding-agent-skills repo-map /path/to/project
90
104
  bin/coding-agent-skills route-trace /path/to/project
91
105
  bin/coding-agent-skills env-audit /path/to/project
106
+ bin/coding-agent-skills secret-audit /path/to/project
107
+ bin/coding-agent-skills api-contract-audit /path/to/project
92
108
  bin/coding-agent-skills validate-adapters /path/to/adapter-root
93
109
  ```
94
110
 
@@ -101,6 +117,8 @@ coding-agent-skills validate-project /path/to/project
101
117
  coding-agent-skills repo-map /path/to/project
102
118
  coding-agent-skills route-trace /path/to/project
103
119
  coding-agent-skills env-audit /path/to/project
120
+ coding-agent-skills secret-audit /path/to/project
121
+ coding-agent-skills api-contract-audit /path/to/project
104
122
  coding-agent-skills validate-adapters /path/to/adapter-root
105
123
  ```
106
124
 
@@ -0,0 +1,70 @@
1
+ {
2
+ "version": "0.2.3",
3
+ "mode": "audit-only",
4
+ "parserPolicy": {
5
+ "inspectEverySegment": true,
6
+ "inspectScriptBodies": true,
7
+ "rejectUnknownExecutables": true,
8
+ "rejectShellWrappers": true,
9
+ "rejectHeredocs": true,
10
+ "rejectRedirection": true,
11
+ "providerSpecificNpx": true,
12
+ "authenticatedCurlRequiresApproval": true,
13
+ "boundedReadsRequired": true,
14
+ "allowedComposition": "read-only"
15
+ },
16
+ "allowedFamilies": [
17
+ {
18
+ "name": "bounded-api-contract-inspection",
19
+ "executables": ["pwd", "ls", "rg", "find", "sed", "head"],
20
+ "argumentPolicy": {
21
+ "strategy": "pattern",
22
+ "allowedPatterns": ["bounded repository-local static contract, route, client, and schema inspection"],
23
+ "deniedPatterns": ["runtime calls, API calls, generation, secret files, credential stores, and unbounded traversal"]
24
+ },
25
+ "constraints": [
26
+ "Remain inside the declared project scope.",
27
+ "Bound traversal depth and output.",
28
+ "Exclude .env, secret-bearing, generated, dependency, build, and runtime-output paths."
29
+ ]
30
+ },
31
+ {
32
+ "name": "git-identity-inspection",
33
+ "executables": ["git"],
34
+ "argumentPolicy": {
35
+ "strategy": "exact",
36
+ "allowedPatterns": ["rev-parse and status --short --branch"],
37
+ "deniedPatterns": ["all Git mutation and publication subcommands"]
38
+ },
39
+ "constraints": ["Allow only read-only repository identity and branch-state inspection."]
40
+ },
41
+ {
42
+ "name": "api-contract-audit-renderer",
43
+ "executables": ["node", "coding-agent-skills"],
44
+ "argumentPolicy": {
45
+ "strategy": "exact",
46
+ "allowedPatterns": ["node scripts/render-api-contract-audit.mjs <project-root>; coding-agent-skills api-contract-audit <project-root>"],
47
+ "deniedPatterns": ["runtime calls, URL probes, API calls, generation, builds, tests, deployment, migration, package installation, and secret-file reads"]
48
+ },
49
+ "constraints": [
50
+ "The renderer must remain static and read-only.",
51
+ "Do not run servers, call endpoints, or generate clients or schemas."
52
+ ]
53
+ }
54
+ ],
55
+ "restrictedCategories": [
56
+ "file-write",
57
+ "package-install",
58
+ "deployment",
59
+ "git-mutation",
60
+ "unrestricted-scan",
61
+ "secret-read",
62
+ "process-mutation",
63
+ "service-mutation",
64
+ "migration-apply",
65
+ "privileged-api"
66
+ ],
67
+ "approvalExceptions": [
68
+ "A named-file approval may permit one otherwise excluded non-mutating static read when the file is not secret-bearing."
69
+ ]
70
+ }
@@ -0,0 +1,71 @@
1
+ {
2
+ "version": "0.2.3",
3
+ "mode": "audit-only",
4
+ "parserPolicy": {
5
+ "inspectEverySegment": true,
6
+ "inspectScriptBodies": true,
7
+ "rejectUnknownExecutables": true,
8
+ "rejectShellWrappers": true,
9
+ "rejectHeredocs": true,
10
+ "rejectRedirection": true,
11
+ "providerSpecificNpx": true,
12
+ "authenticatedCurlRequiresApproval": true,
13
+ "boundedReadsRequired": true,
14
+ "allowedComposition": "read-only"
15
+ },
16
+ "allowedFamilies": [
17
+ {
18
+ "name": "bounded-secret-pattern-inspection",
19
+ "executables": ["pwd", "ls", "rg", "find", "sed", "head"],
20
+ "argumentPolicy": {
21
+ "strategy": "pattern",
22
+ "allowedPatterns": ["bounded repository-local path/count secret-pattern inspection"],
23
+ "deniedPatterns": ["secret files, matched values, credential stores, API calls, and unbounded traversal"]
24
+ },
25
+ "constraints": [
26
+ "Remain inside the declared project scope.",
27
+ "Bound traversal depth and output.",
28
+ "Exclude .env, secret-bearing, generated, dependency, build, and runtime-output paths.",
29
+ "Report file paths, finding types, and counts only."
30
+ ]
31
+ },
32
+ {
33
+ "name": "git-identity-inspection",
34
+ "executables": ["git"],
35
+ "argumentPolicy": {
36
+ "strategy": "exact",
37
+ "allowedPatterns": ["rev-parse and status --short --branch"],
38
+ "deniedPatterns": ["all Git mutation and publication subcommands"]
39
+ },
40
+ "constraints": ["Allow only read-only repository identity and branch-state inspection."]
41
+ },
42
+ {
43
+ "name": "secret-audit-renderer",
44
+ "executables": ["node", "coding-agent-skills"],
45
+ "argumentPolicy": {
46
+ "strategy": "exact",
47
+ "allowedPatterns": ["node scripts/render-secret-audit.mjs <project-root>; coding-agent-skills secret-audit <project-root>"],
48
+ "deniedPatterns": [".env reads, matched values, credential validation, rotation, API calls, builds, tests, deployment, migration, and package installation"]
49
+ },
50
+ "constraints": [
51
+ "The renderer must remain static and read-only.",
52
+ "Do not print matched values or treat findings as credential validity evidence."
53
+ ]
54
+ }
55
+ ],
56
+ "restrictedCategories": [
57
+ "file-write",
58
+ "package-install",
59
+ "deployment",
60
+ "git-mutation",
61
+ "unrestricted-scan",
62
+ "secret-read",
63
+ "process-mutation",
64
+ "service-mutation",
65
+ "migration-apply",
66
+ "privileged-api"
67
+ ],
68
+ "approvalExceptions": [
69
+ "A named-file approval may permit one otherwise excluded non-mutating static read when the file is not secret-bearing."
70
+ ]
71
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "contractVersion": "1.0.0",
3
+ "skill": {"name": "api-contract-audit", "version": "0.2.3"},
4
+ "invocation": {
5
+ "id": "example-api-contract-audit",
6
+ "startedAt": "2026-07-03T12:00:00Z",
7
+ "endedAt": "2026-07-03T12:01:00Z"
8
+ },
9
+ "repository": {
10
+ "root": "/workspace/example-project",
11
+ "branch": "main",
12
+ "head": "0123456789abcdef",
13
+ "workingTreeState": "clean"
14
+ },
15
+ "userIntent": "Map static API contract surfaces before API handoff.",
16
+ "declaredScope": ["/workspace/example-project"],
17
+ "projectAdapter": "example-api-contract-adapter",
18
+ "environmentSummary": {"platform": "linux", "shell": "bash"},
19
+ "status": "complete",
20
+ "confidence": {
21
+ "level": "medium",
22
+ "reason": "Static contract, route, client, and schema files were inspected, but runtime behavior was not verified."
23
+ },
24
+ "commands": [
25
+ {
26
+ "command": "coding-agent-skills api-contract-audit /workspace/example-project",
27
+ "family": "api-contract-audit-renderer",
28
+ "workingDirectory": "/workspace/example-project",
29
+ "startedAt": "2026-07-03T12:00:20Z",
30
+ "endedAt": "2026-07-03T12:00:21Z",
31
+ "exitStatus": 0,
32
+ "resultStatus": "success",
33
+ "safetyClass": "allowed",
34
+ "approvalReference": null,
35
+ "purpose": "Render a static API contract audit report.",
36
+ "outputSummary": "Reported static contract files, endpoint declarations, client calls, schemas, skipped items, and not-verified runtime areas."
37
+ }
38
+ ],
39
+ "skippedChecks": [],
40
+ "findings": [
41
+ {
42
+ "summary": "Static API contract surfaces were mapped without runtime verification.",
43
+ "evidence": ["docs/openapi.yaml", "app/api/example/route.ts", "src/client.ts"]
44
+ }
45
+ ],
46
+ "risks": [
47
+ {
48
+ "summary": "Runtime API behavior may differ from static contract evidence.",
49
+ "evidence": ["runtime route registration was not executed", "deployed API behavior was not probed"]
50
+ }
51
+ ],
52
+ "failures": [],
53
+ "unresolvedQuestions": [],
54
+ "changedState": {
55
+ "changed": false,
56
+ "summary": "No project, Git, dependency, runtime, generated-code, service, or remote state changed."
57
+ },
58
+ "handoffSummary": "Static API contract evidence is mapped; runtime equivalence remains unverified.",
59
+ "recommendedNextAction": "Review reported contract surfaces before editing API handlers or clients."
60
+ }