coding-agent-skills 0.2.8

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 (357) hide show
  1. package/AGENTS.md +44 -0
  2. package/CHANGELOG.md +205 -0
  3. package/CONTRIBUTING.md +54 -0
  4. package/LICENSE +21 -0
  5. package/README.md +85 -0
  6. package/ROADMAP.md +87 -0
  7. package/RUNBOOK.md +47 -0
  8. package/bin/coding-agent-skills +75 -0
  9. package/contracts/evidence-pack/README.md +22 -0
  10. package/contracts/evidence-pack/evidence-pack.example.json +60 -0
  11. package/contracts/evidence-pack/evidence-pack.example.md +49 -0
  12. package/contracts/evidence-pack/evidence-pack.schema.json +156 -0
  13. package/docs/adapters/README.md +82 -0
  14. package/docs/adapters/discovery.md +50 -0
  15. package/docs/adapters/external-adapters.md +42 -0
  16. package/docs/adapters/project-installation.md +135 -0
  17. package/docs/adapters/real-project-adoption.md +193 -0
  18. package/docs/adapters/upgrade-evidence.md +67 -0
  19. package/docs/adapters/upgrades.md +83 -0
  20. package/docs/architecture/README.md +23 -0
  21. package/docs/authoring/README.md +54 -0
  22. package/docs/evidence-bundles/README.md +94 -0
  23. package/docs/privacy/README.md +26 -0
  24. package/docs/release/README.md +42 -0
  25. package/docs/release/npm-package.md +85 -0
  26. package/docs/safety/README.md +94 -0
  27. package/docs/testing/README.md +100 -0
  28. package/docs/usage/README.md +89 -0
  29. package/docs/versioning/README.md +30 -0
  30. package/docs/versioning/adapter-compatibility.md +54 -0
  31. package/examples/README.md +12 -0
  32. package/examples/adapters/README.md +9 -0
  33. package/examples/adapters/documentation-precedence.json +62 -0
  34. package/examples/adapters/narrow-repo-map.json +64 -0
  35. package/examples/adapters/runtime-status-hints.json +76 -0
  36. package/examples/command-policies/README.md +3 -0
  37. package/examples/command-policies/build-verify.json +57 -0
  38. package/examples/command-policies/git-preflight.json +44 -0
  39. package/examples/command-policies/llm-drift-control.json +45 -0
  40. package/examples/command-policies/repo-map.json +59 -0
  41. package/examples/command-policies/runtime-truth.json +59 -0
  42. package/examples/evidence-packs/README.md +3 -0
  43. package/examples/evidence-packs/build-verify.json +68 -0
  44. package/examples/evidence-packs/git-preflight.json +55 -0
  45. package/examples/evidence-packs/llm-drift-control.json +55 -0
  46. package/examples/evidence-packs/repo-map.json +55 -0
  47. package/examples/evidence-packs/runtime-truth.json +55 -0
  48. package/examples/manifests/README.md +3 -0
  49. package/examples/manifests/build-verify.json +14 -0
  50. package/examples/manifests/git-preflight.json +14 -0
  51. package/examples/manifests/llm-drift-control.json +14 -0
  52. package/examples/manifests/repo-map.json +14 -0
  53. package/examples/manifests/runtime-truth.json +14 -0
  54. package/examples/upgrade-evidence/README.md +14 -0
  55. package/examples/upgrade-evidence/chain-fail.evidence.json +155 -0
  56. package/examples/upgrade-evidence/chain-fail.evidence.md +14 -0
  57. package/examples/upgrade-evidence/chain-pass.evidence.json +156 -0
  58. package/examples/upgrade-evidence/stale-pin.evidence.json +117 -0
  59. package/examples/upgrade-evidence/unsafe-upgrade.evidence.json +128 -0
  60. package/examples/upgrade-evidence/valid-upgrade.evidence.json +105 -0
  61. package/examples/upgrade-evidence/valid-upgrade.evidence.md +13 -0
  62. package/examples/workflows/README.md +3 -0
  63. package/examples/workflows/build-verify.md +20 -0
  64. package/examples/workflows/git-preflight.md +18 -0
  65. package/examples/workflows/llm-drift-control.md +16 -0
  66. package/examples/workflows/repo-map.md +20 -0
  67. package/examples/workflows/runtime-truth.md +17 -0
  68. package/package.json +58 -0
  69. package/runs/skill-runs.md +162 -0
  70. package/schemas/adapter-upgrade-evidence.schema.json +443 -0
  71. package/schemas/archive-index.schema.json +174 -0
  72. package/schemas/archive-report.schema.json +322 -0
  73. package/schemas/command-policy.schema.json +125 -0
  74. package/schemas/evidence-bundle.schema.json +394 -0
  75. package/schemas/project-adapter-installation.schema.json +127 -0
  76. package/schemas/project-adapter.schema.json +328 -0
  77. package/schemas/skill-manifest.schema.json +40 -0
  78. package/scripts/check-adapter-upgrade-chain.mjs +32 -0
  79. package/scripts/check-adapter-upgrade.mjs +31 -0
  80. package/scripts/lib/adapter-discovery.mjs +441 -0
  81. package/scripts/lib/adapter-repo-map.mjs +358 -0
  82. package/scripts/lib/adapter-upgrade-chain.mjs +261 -0
  83. package/scripts/lib/adapter-upgrade.mjs +434 -0
  84. package/scripts/lib/evidence-bundle.mjs +831 -0
  85. package/scripts/lib/pack-rules.mjs +704 -0
  86. package/scripts/lib/project-adapter-installation.mjs +327 -0
  87. package/scripts/lib/safe-evidence-output.mjs +92 -0
  88. package/scripts/lib/schema-validator.mjs +146 -0
  89. package/scripts/lib/semver.mjs +54 -0
  90. package/scripts/lib/upgrade-evidence.mjs +276 -0
  91. package/scripts/render-adapter-repo-map.mjs +8 -0
  92. package/scripts/render-evidence-archive-report.mjs +18 -0
  93. package/scripts/run-next +220 -0
  94. package/scripts/test-pack.mjs +2232 -0
  95. package/scripts/validate-adapters.mjs +10 -0
  96. package/scripts/validate-maintainer-loop.mjs +146 -0
  97. package/scripts/validate-pack.mjs +950 -0
  98. package/scripts/validate-project-adapters.mjs +8 -0
  99. package/scripts/verify-evidence-bundle.mjs +18 -0
  100. package/skills/build-verify/SKILL.md +62 -0
  101. package/skills/build-verify/adapter-interface.md +7 -0
  102. package/skills/build-verify/agents/openai.yaml +4 -0
  103. package/skills/build-verify/checklist.md +12 -0
  104. package/skills/build-verify/evidence-template.md +11 -0
  105. package/skills/build-verify/examples.md +16 -0
  106. package/skills/build-verify/failure-modes.md +14 -0
  107. package/skills/git-preflight/SKILL.md +65 -0
  108. package/skills/git-preflight/adapter-interface.md +7 -0
  109. package/skills/git-preflight/agents/openai.yaml +4 -0
  110. package/skills/git-preflight/checklist.md +11 -0
  111. package/skills/git-preflight/evidence-template.md +10 -0
  112. package/skills/git-preflight/examples.md +18 -0
  113. package/skills/git-preflight/failure-modes.md +13 -0
  114. package/skills/llm-drift-control/SKILL.md +67 -0
  115. package/skills/llm-drift-control/adapter-interface.md +7 -0
  116. package/skills/llm-drift-control/agents/openai.yaml +4 -0
  117. package/skills/llm-drift-control/checklist.md +11 -0
  118. package/skills/llm-drift-control/evidence-template.md +13 -0
  119. package/skills/llm-drift-control/examples.md +15 -0
  120. package/skills/llm-drift-control/failure-modes.md +13 -0
  121. package/skills/repo-map/SKILL.md +71 -0
  122. package/skills/repo-map/adapter-interface.md +18 -0
  123. package/skills/repo-map/agents/openai.yaml +4 -0
  124. package/skills/repo-map/checklist.md +15 -0
  125. package/skills/repo-map/evidence-template.md +29 -0
  126. package/skills/repo-map/examples.md +19 -0
  127. package/skills/repo-map/failure-modes.md +16 -0
  128. package/skills/runtime-truth/SKILL.md +62 -0
  129. package/skills/runtime-truth/adapter-interface.md +7 -0
  130. package/skills/runtime-truth/agents/openai.yaml +4 -0
  131. package/skills/runtime-truth/checklist.md +11 -0
  132. package/skills/runtime-truth/evidence-template.md +12 -0
  133. package/skills/runtime-truth/examples.md +20 -0
  134. package/skills/runtime-truth/failure-modes.md +13 -0
  135. package/tests/README.md +44 -0
  136. package/tests/adapters/README.md +15 -0
  137. package/tests/completion/README.md +15 -0
  138. package/tests/evidence/README.md +15 -0
  139. package/tests/fixtures/README.md +23 -0
  140. package/tests/fixtures/adapters/allow-deploy.json +60 -0
  141. package/tests/fixtures/adapters/allow-git-push.json +60 -0
  142. package/tests/fixtures/adapters/expand-scope.json +53 -0
  143. package/tests/fixtures/adapters/expose-secrets.json +53 -0
  144. package/tests/fixtures/adapters/incompatible-version.json +53 -0
  145. package/tests/fixtures/adapters/override-audit-only.json +53 -0
  146. package/tests/fixtures/adapters/redefine-completion.json +53 -0
  147. package/tests/fixtures/adapters/remove-required-evidence.json +53 -0
  148. package/tests/fixtures/adapters/suppress-failures.json +53 -0
  149. package/tests/fixtures/adapters/valid-narrowing.json +53 -0
  150. package/tests/fixtures/adapters/valid-repo-map.json +53 -0
  151. package/tests/fixtures/adapters/weakening-repo-map.json +42 -0
  152. package/tests/fixtures/completion/cases.json +143 -0
  153. package/tests/fixtures/completion/false-complete.json +51 -0
  154. package/tests/fixtures/evidence-bundles/advisory-review-soon/archive/evidence-archive-index.json +52 -0
  155. package/tests/fixtures/evidence-bundles/advisory-review-soon/evidence/repo-map.evidence.json +68 -0
  156. package/tests/fixtures/evidence-bundles/advisory-review-soon/evidence/valid-upgrade.evidence.json +105 -0
  157. package/tests/fixtures/evidence-bundles/advisory-review-soon/evidence-bundle.json +109 -0
  158. package/tests/fixtures/evidence-bundles/invalid-archive/archive/evidence-archive-index.json +52 -0
  159. package/tests/fixtures/evidence-bundles/invalid-archive/evidence/repo-map.evidence.json +68 -0
  160. package/tests/fixtures/evidence-bundles/invalid-archive/evidence/valid-upgrade.evidence.json +105 -0
  161. package/tests/fixtures/evidence-bundles/invalid-archive/evidence-bundle.json +109 -0
  162. package/tests/fixtures/evidence-bundles/invalid-archive-index/archive/evidence-archive-index.json +52 -0
  163. package/tests/fixtures/evidence-bundles/invalid-archive-index/evidence/repo-map.evidence.json +68 -0
  164. package/tests/fixtures/evidence-bundles/invalid-archive-index/evidence/valid-upgrade.evidence.json +105 -0
  165. package/tests/fixtures/evidence-bundles/invalid-archive-index/evidence-bundle.json +109 -0
  166. package/tests/fixtures/evidence-bundles/invalid-hash/archive/evidence-archive-index.json +52 -0
  167. package/tests/fixtures/evidence-bundles/invalid-hash/evidence/repo-map.evidence.json +68 -0
  168. package/tests/fixtures/evidence-bundles/invalid-hash/evidence/valid-upgrade.evidence.json +105 -0
  169. package/tests/fixtures/evidence-bundles/invalid-hash/evidence-bundle.json +109 -0
  170. package/tests/fixtures/evidence-bundles/invalid-missing-entry/archive/evidence-archive-index.json +52 -0
  171. package/tests/fixtures/evidence-bundles/invalid-missing-entry/evidence/repo-map.evidence.json +68 -0
  172. package/tests/fixtures/evidence-bundles/invalid-missing-entry/evidence/valid-upgrade.evidence.json +105 -0
  173. package/tests/fixtures/evidence-bundles/invalid-missing-entry/evidence-bundle.json +109 -0
  174. package/tests/fixtures/evidence-bundles/invalid-path/archive/evidence-archive-index.json +52 -0
  175. package/tests/fixtures/evidence-bundles/invalid-path/evidence/repo-map.evidence.json +68 -0
  176. package/tests/fixtures/evidence-bundles/invalid-path/evidence/valid-upgrade.evidence.json +105 -0
  177. package/tests/fixtures/evidence-bundles/invalid-path/evidence-bundle.json +109 -0
  178. package/tests/fixtures/evidence-bundles/invalid-provenance/archive/evidence-archive-index.json +52 -0
  179. package/tests/fixtures/evidence-bundles/invalid-provenance/evidence/repo-map.evidence.json +68 -0
  180. package/tests/fixtures/evidence-bundles/invalid-provenance/evidence/valid-upgrade.evidence.json +105 -0
  181. package/tests/fixtures/evidence-bundles/invalid-provenance/evidence-bundle.json +109 -0
  182. package/tests/fixtures/evidence-bundles/invalid-regression/archive/evidence-archive-index.json +52 -0
  183. package/tests/fixtures/evidence-bundles/invalid-regression/evidence/repo-map.evidence.json +68 -0
  184. package/tests/fixtures/evidence-bundles/invalid-regression/evidence/valid-upgrade.evidence.json +105 -0
  185. package/tests/fixtures/evidence-bundles/invalid-regression/evidence-bundle.json +113 -0
  186. package/tests/fixtures/evidence-bundles/invalid-retention/archive/evidence-archive-index.json +52 -0
  187. package/tests/fixtures/evidence-bundles/invalid-retention/evidence/repo-map.evidence.json +68 -0
  188. package/tests/fixtures/evidence-bundles/invalid-retention/evidence/valid-upgrade.evidence.json +105 -0
  189. package/tests/fixtures/evidence-bundles/invalid-retention/evidence-bundle.json +109 -0
  190. package/tests/fixtures/evidence-bundles/invalid-signature-plan/archive/evidence-archive-index.json +52 -0
  191. package/tests/fixtures/evidence-bundles/invalid-signature-plan/evidence/repo-map.evidence.json +68 -0
  192. package/tests/fixtures/evidence-bundles/invalid-signature-plan/evidence/valid-upgrade.evidence.json +105 -0
  193. package/tests/fixtures/evidence-bundles/invalid-signature-plan/evidence-bundle.json +109 -0
  194. package/tests/fixtures/evidence-bundles/valid-bundle/archive/evidence-archive-index.json +52 -0
  195. package/tests/fixtures/evidence-bundles/valid-bundle/evidence/repo-map.evidence.json +68 -0
  196. package/tests/fixtures/evidence-bundles/valid-bundle/evidence/valid-upgrade.evidence.json +105 -0
  197. package/tests/fixtures/evidence-bundles/valid-bundle/evidence-bundle.json +109 -0
  198. package/tests/fixtures/external-adapters/empty/README.md +3 -0
  199. package/tests/fixtures/external-adapters/invalid-completion-override/.coding-agent/adapters/completion/adapter.json +53 -0
  200. package/tests/fixtures/external-adapters/invalid-deploy/.coding-agent/adapters/deploy/adapter.json +60 -0
  201. package/tests/fixtures/external-adapters/invalid-evidence-suppression/.coding-agent/adapters/evidence/adapter.json +53 -0
  202. package/tests/fixtures/external-adapters/invalid-failure-suppression/.coding-agent/adapters/failures/adapter.json +53 -0
  203. package/tests/fixtures/external-adapters/invalid-git-push/.coding-agent/adapters/publish/adapter.json +60 -0
  204. package/tests/fixtures/external-adapters/invalid-malformed/.coding-agent/adapters/malformed/adapter.json +1 -0
  205. package/tests/fixtures/external-adapters/invalid-malformed/malformed-adapter.txt +1 -0
  206. package/tests/fixtures/external-adapters/invalid-mode-escalation/.coding-agent/adapters/mode/adapter.json +53 -0
  207. package/tests/fixtures/external-adapters/invalid-path-traversal/.coding-agent/adapters/path/adapter.json +53 -0
  208. package/tests/fixtures/external-adapters/invalid-restriction-removal/.coding-agent/adapters/restrictions/adapter.json +52 -0
  209. package/tests/fixtures/external-adapters/invalid-scope-expansion/.coding-agent/adapters/scope/adapter.json +53 -0
  210. package/tests/fixtures/external-adapters/invalid-secret-exposure/.coding-agent/adapters/secrets/adapter.json +53 -0
  211. package/tests/fixtures/external-adapters/invalid-skill-id/.coding-agent/adapters/skill/adapter.json +53 -0
  212. package/tests/fixtures/external-adapters/invalid-skill-version/.coding-agent/adapters/skill-version/adapter.json +53 -0
  213. package/tests/fixtures/external-adapters/invalid-unknown-manifest/.coding-agent/adapters/unknown/manifest.json +1 -0
  214. package/tests/fixtures/external-adapters/invalid-version/.coding-agent/adapters/version/adapter.json +53 -0
  215. package/tests/fixtures/external-adapters/mixed/.coding-agent/adapters/invalid/adapter.json +60 -0
  216. package/tests/fixtures/external-adapters/mixed/.coding-agent/adapters/valid/adapter.json +53 -0
  217. package/tests/fixtures/external-adapters/valid-basic/.coding-agent/adapters/basic/adapter.json +53 -0
  218. package/tests/fixtures/external-adapters/valid-doc-precedence/coding-agent/adapters/docs/adapter.json +53 -0
  219. package/tests/fixtures/external-adapters/valid-runtime-status/adapters/coding-agent/runtime/adapter.json +65 -0
  220. package/tests/fixtures/mutation/cases.json +87 -0
  221. package/tests/fixtures/mutation/snapshot-target/README.md +3 -0
  222. package/tests/fixtures/mutation/snapshot-target/state.json +4 -0
  223. package/tests/fixtures/policy/commands.json +164 -0
  224. package/tests/fixtures/policy/properties.json +126 -0
  225. package/tests/fixtures/privacy/cases.json +47 -0
  226. package/tests/fixtures/project-adapter-installation/invalid-adapter-location/.agents/adapters/basic/adapter.json +53 -0
  227. package/tests/fixtures/project-adapter-installation/invalid-adapter-location/.coding-agent/skills.json +23 -0
  228. package/tests/fixtures/project-adapter-installation/invalid-adapter-schema-version/.coding-agent/adapters/basic/adapter.json +53 -0
  229. package/tests/fixtures/project-adapter-installation/invalid-adapter-schema-version/.coding-agent/skills.json +23 -0
  230. package/tests/fixtures/project-adapter-installation/invalid-adapter-version-mismatch/.coding-agent/adapters/basic/adapter.json +53 -0
  231. package/tests/fixtures/project-adapter-installation/invalid-adapter-version-mismatch/.coding-agent/skills.json +23 -0
  232. package/tests/fixtures/project-adapter-installation/invalid-bad-semver/.coding-agent/adapters/basic/adapter.json +53 -0
  233. package/tests/fixtures/project-adapter-installation/invalid-bad-semver/.coding-agent/skills.json +23 -0
  234. package/tests/fixtures/project-adapter-installation/invalid-completion-override/.coding-agent/adapters/basic/adapter.json +53 -0
  235. package/tests/fixtures/project-adapter-installation/invalid-completion-override/.coding-agent/skills.json +23 -0
  236. package/tests/fixtures/project-adapter-installation/invalid-failure-suppression/.coding-agent/adapters/basic/adapter.json +53 -0
  237. package/tests/fixtures/project-adapter-installation/invalid-failure-suppression/.coding-agent/skills.json +23 -0
  238. package/tests/fixtures/project-adapter-installation/invalid-missing-declaration/.coding-agent/adapters/basic/adapter.json +53 -0
  239. package/tests/fixtures/project-adapter-installation/invalid-mode-escalation/.coding-agent/adapters/basic/adapter.json +53 -0
  240. package/tests/fixtures/project-adapter-installation/invalid-mode-escalation/.coding-agent/skills.json +23 -0
  241. package/tests/fixtures/project-adapter-installation/invalid-path-traversal/.coding-agent/adapters/basic/adapter.json +53 -0
  242. package/tests/fixtures/project-adapter-installation/invalid-path-traversal/.coding-agent/skills.json +23 -0
  243. package/tests/fixtures/project-adapter-installation/invalid-scope-expansion/.coding-agent/adapters/basic/adapter.json +53 -0
  244. package/tests/fixtures/project-adapter-installation/invalid-scope-expansion/.coding-agent/skills.json +23 -0
  245. package/tests/fixtures/project-adapter-installation/invalid-secret-exposure/.coding-agent/adapters/basic/adapter.json +53 -0
  246. package/tests/fixtures/project-adapter-installation/invalid-secret-exposure/.coding-agent/skills.json +23 -0
  247. package/tests/fixtures/project-adapter-installation/invalid-skill-mismatch/.coding-agent/adapters/basic/adapter.json +53 -0
  248. package/tests/fixtures/project-adapter-installation/invalid-skill-mismatch/.coding-agent/skills.json +23 -0
  249. package/tests/fixtures/project-adapter-installation/invalid-unknown-skill/.coding-agent/adapters/basic/adapter.json +53 -0
  250. package/tests/fixtures/project-adapter-installation/invalid-unknown-skill/.coding-agent/skills.json +23 -0
  251. package/tests/fixtures/project-adapter-installation/invalid-unsupported-core-version/.coding-agent/adapters/basic/adapter.json +53 -0
  252. package/tests/fixtures/project-adapter-installation/invalid-unsupported-core-version/.coding-agent/skills.json +23 -0
  253. package/tests/fixtures/project-adapter-installation/invalid-weakens-restrictions/.coding-agent/adapters/basic/adapter.json +52 -0
  254. package/tests/fixtures/project-adapter-installation/invalid-weakens-restrictions/.coding-agent/skills.json +23 -0
  255. package/tests/fixtures/project-adapter-installation/valid-compatible-range/coding-agent/adapters/docs/adapter.json +53 -0
  256. package/tests/fixtures/project-adapter-installation/valid-compatible-range/coding-agent.skills.json +23 -0
  257. package/tests/fixtures/project-adapter-installation/valid-exact-pin/.coding-agent/adapters/basic/adapter.json +53 -0
  258. package/tests/fixtures/project-adapter-installation/valid-exact-pin/.coding-agent/skills.json +23 -0
  259. package/tests/fixtures/project-adapter-installation/valid-multiple-adapters/.coding-agent/skills.json +28 -0
  260. package/tests/fixtures/project-adapter-installation/valid-multiple-adapters/adapters/coding-agent/repo/adapter.json +53 -0
  261. package/tests/fixtures/project-adapter-installation/valid-multiple-adapters/adapters/coding-agent/runtime/adapter.json +58 -0
  262. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  263. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/01-current/.coding-agent/skills.json +27 -0
  264. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/02-incompatible/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  265. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/02-incompatible/.coding-agent/skills.json +27 -0
  266. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/03-target/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  267. package/tests/fixtures/project-adapter-upgrade-chains/broken-compatibility-chain/03-target/.coding-agent/skills.json +27 -0
  268. package/tests/fixtures/project-adapter-upgrade-chains/schema-drift-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  269. package/tests/fixtures/project-adapter-upgrade-chains/schema-drift-chain/01-current/.coding-agent/skills.json +27 -0
  270. package/tests/fixtures/project-adapter-upgrade-chains/schema-drift-chain/02-schema-drift/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  271. package/tests/fixtures/project-adapter-upgrade-chains/schema-drift-chain/02-schema-drift/.coding-agent/skills.json +27 -0
  272. package/tests/fixtures/project-adapter-upgrade-chains/skill-drift-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  273. package/tests/fixtures/project-adapter-upgrade-chains/skill-drift-chain/01-current/.coding-agent/skills.json +27 -0
  274. package/tests/fixtures/project-adapter-upgrade-chains/skill-drift-chain/02-skill-drift/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  275. package/tests/fixtures/project-adapter-upgrade-chains/skill-drift-chain/02-skill-drift/.coding-agent/skills.json +27 -0
  276. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  277. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/01-current/.coding-agent/skills.json +27 -0
  278. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/02-stale/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  279. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/02-stale/.coding-agent/skills.json +27 -0
  280. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/03-target/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  281. package/tests/fixtures/project-adapter-upgrade-chains/stale-pin-chain/03-target/.coding-agent/skills.json +27 -0
  282. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  283. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/01-current/.coding-agent/skills.json +27 -0
  284. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/02-safe/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  285. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/02-safe/.coding-agent/skills.json +27 -0
  286. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/03-weakens-restrictions/.coding-agent/adapters/fixture-chain-adapter/adapter.json +69 -0
  287. package/tests/fixtures/project-adapter-upgrade-chains/unsafe-weakening-chain/03-weakens-restrictions/.coding-agent/skills.json +27 -0
  288. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/01-current/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  289. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/01-current/.coding-agent/skills.json +27 -0
  290. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/02-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  291. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/02-upgrade/.coding-agent/skills.json +27 -0
  292. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/03-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  293. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/03-upgrade/.coding-agent/skills.json +27 -0
  294. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/04-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  295. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/04-upgrade/.coding-agent/skills.json +27 -0
  296. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/05-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  297. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/05-upgrade/.coding-agent/skills.json +27 -0
  298. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/06-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  299. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/06-upgrade/.coding-agent/skills.json +27 -0
  300. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/07-upgrade/.coding-agent/adapters/fixture-chain-adapter/adapter.json +70 -0
  301. package/tests/fixtures/project-adapter-upgrade-chains/valid-chain/07-upgrade/.coding-agent/skills.json +27 -0
  302. package/tests/fixtures/project-adapter-upgrades/adapter-schema-drift/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  303. package/tests/fixtures/project-adapter-upgrades/adapter-schema-drift/after/.coding-agent/skills.json +27 -0
  304. package/tests/fixtures/project-adapter-upgrades/adapter-schema-drift/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  305. package/tests/fixtures/project-adapter-upgrades/adapter-schema-drift/before/.coding-agent/skills.json +27 -0
  306. package/tests/fixtures/project-adapter-upgrades/safe-upgrade-preserves-restrictions/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +71 -0
  307. package/tests/fixtures/project-adapter-upgrades/safe-upgrade-preserves-restrictions/after/.coding-agent/skills.json +27 -0
  308. package/tests/fixtures/project-adapter-upgrades/safe-upgrade-preserves-restrictions/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  309. package/tests/fixtures/project-adapter-upgrades/safe-upgrade-preserves-restrictions/before/.coding-agent/skills.json +27 -0
  310. package/tests/fixtures/project-adapter-upgrades/skill-compatibility-drift/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  311. package/tests/fixtures/project-adapter-upgrades/skill-compatibility-drift/after/.coding-agent/skills.json +27 -0
  312. package/tests/fixtures/project-adapter-upgrades/skill-compatibility-drift/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  313. package/tests/fixtures/project-adapter-upgrades/skill-compatibility-drift/before/.coding-agent/skills.json +27 -0
  314. package/tests/fixtures/project-adapter-upgrades/stale-compatible-range/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  315. package/tests/fixtures/project-adapter-upgrades/stale-compatible-range/after/.coding-agent/skills.json +27 -0
  316. package/tests/fixtures/project-adapter-upgrades/stale-compatible-range/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  317. package/tests/fixtures/project-adapter-upgrades/stale-compatible-range/before/.coding-agent/skills.json +27 -0
  318. package/tests/fixtures/project-adapter-upgrades/stale-exact-pin/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  319. package/tests/fixtures/project-adapter-upgrades/stale-exact-pin/after/.coding-agent/skills.json +27 -0
  320. package/tests/fixtures/project-adapter-upgrades/stale-exact-pin/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  321. package/tests/fixtures/project-adapter-upgrades/stale-exact-pin/before/.coding-agent/skills.json +27 -0
  322. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-mode-escalation/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  323. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-mode-escalation/after/.coding-agent/skills.json +27 -0
  324. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-mode-escalation/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  325. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-mode-escalation/before/.coding-agent/skills.json +27 -0
  326. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-removes-evidence/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +69 -0
  327. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-removes-evidence/after/.coding-agent/skills.json +27 -0
  328. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-removes-evidence/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  329. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-removes-evidence/before/.coding-agent/skills.json +27 -0
  330. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-weakens-restrictions/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +69 -0
  331. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-weakens-restrictions/after/.coding-agent/skills.json +27 -0
  332. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-weakens-restrictions/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  333. package/tests/fixtures/project-adapter-upgrades/unsafe-upgrade-weakens-restrictions/before/.coding-agent/skills.json +27 -0
  334. package/tests/fixtures/project-adapter-upgrades/unsupported-future-core/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  335. package/tests/fixtures/project-adapter-upgrades/unsupported-future-core/after/.coding-agent/skills.json +27 -0
  336. package/tests/fixtures/project-adapter-upgrades/unsupported-future-core/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  337. package/tests/fixtures/project-adapter-upgrades/unsupported-future-core/before/.coding-agent/skills.json +27 -0
  338. package/tests/fixtures/project-adapter-upgrades/unsupported-old-core/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  339. package/tests/fixtures/project-adapter-upgrades/unsupported-old-core/after/.coding-agent/skills.json +27 -0
  340. package/tests/fixtures/project-adapter-upgrades/unsupported-old-core/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  341. package/tests/fixtures/project-adapter-upgrades/unsupported-old-core/before/.coding-agent/skills.json +27 -0
  342. package/tests/fixtures/project-adapter-upgrades/valid-upgrade/after/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  343. package/tests/fixtures/project-adapter-upgrades/valid-upgrade/after/.coding-agent/skills.json +27 -0
  344. package/tests/fixtures/project-adapter-upgrades/valid-upgrade/before/.coding-agent/adapters/fixture-upgrade-adapter/adapter.json +70 -0
  345. package/tests/fixtures/project-adapter-upgrades/valid-upgrade/before/.coding-agent/skills.json +27 -0
  346. package/tests/fixtures/sample-repo/.env.example +1 -0
  347. package/tests/fixtures/sample-repo/README.md +4 -0
  348. package/tests/fixtures/sample-repo/docs/architecture.md +3 -0
  349. package/tests/fixtures/sample-repo/package.json +11 -0
  350. package/tests/fixtures/sample-repo/src/index.js +3 -0
  351. package/tests/fixtures/sample-repo/test/index.test.js +8 -0
  352. package/tests/fixtures/triggers/cases.json +101 -0
  353. package/tests/policy/README.md +16 -0
  354. package/tests/privacy/README.md +14 -0
  355. package/tests/safety/README.md +17 -0
  356. package/tests/trigger/README.md +11 -0
  357. package/work-ledger.md +159 -0
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: runtime-truth
3
+ description: Audit what is actually running by correlating process-manager status, process identity, network listeners, and unauthenticated health endpoints. Use when configured, deployed, running, reachable, and healthy states may differ; never start, stop, restart, enable, kill, deploy, load secrets, or call authenticated or privileged APIs.
4
+ ---
5
+
6
+ # Runtime Truth
7
+
8
+ Distinguish configuration from observed runtime state. Remain audit-only.
9
+
10
+ ## Purpose And Use
11
+
12
+ Use when configured, deployed, running, listening, reachable, and healthy may differ. Do not use to start, repair, restart, deploy, authenticate, or administer the runtime.
13
+
14
+ ## Inputs
15
+
16
+ Require the service or process hint and intended environment. Optionally accept expected port, local unauthenticated health URL, process manager, expected executable, and project adapter.
17
+
18
+ Do not assume a configured service is running, a running process owns the expected port, a listener is healthy, or a successful HTTP response came from the intended build.
19
+
20
+ ## Command Policy
21
+
22
+ Permit bounded status inspection:
23
+
24
+ - process listings filtered to the named service
25
+ - listener inspection for expected ports
26
+ - `systemctl status` or `systemctl --user status`
27
+ - `pm2 list` or equivalent status-only views
28
+ - container status inspection without lifecycle changes
29
+ - unauthenticated `http://127.0.0.1` or explicitly approved public health checks
30
+
31
+ Do not start, stop, restart, reload, enable, disable, kill, signal, deploy, tail unbounded logs, source `.env`, print environment values, or call authenticated or privileged endpoints.
32
+
33
+ This is audit-only behavior. A status tool is allowed only in its non-mutating form.
34
+
35
+ ## Procedure
36
+
37
+ 1. Record expected service, manager, executable, port, and health endpoint.
38
+ 2. Inspect configured status without changing manager state.
39
+ 3. Inspect matching processes and start times.
40
+ 4. Inspect expected listeners and owning processes.
41
+ 5. Call only safe unauthenticated health endpoints.
42
+ 6. Correlate manager, process, listener, and HTTP evidence.
43
+ 7. Classify configured, stopped, running, listening, reachable, healthy, degraded, conflicting, or unverifiable state.
44
+ 8. Emit the shared evidence pack.
45
+
46
+ Use [checklist.md](checklist.md), [failure-modes.md](failure-modes.md), [adapter-interface.md](adapter-interface.md), [examples.md](examples.md), and [evidence-template.md](evidence-template.md).
47
+
48
+ ## Evidence, Recovery, And Dependencies
49
+
50
+ Emit manager, process, listener, health, timestamp, contradiction, inaccessible-layer, confidence, and changed-state evidence. Recover from unavailable managers, permissions, ownership ambiguity, or authentication requirements by checking remaining read-only layers and lowering confidence; never mutate or load secrets.
51
+
52
+ Depend on repository/runtime identity inputs and the evidence-pack contract; `repo-map` evidence is useful but optional. Adapters may add status-only commands and safe health endpoints but cannot add lifecycle actions. Safe usage checks a local health endpoint and listener; unsafe usage restarts a service or loads credentials.
53
+
54
+ ## Approval Boundary
55
+
56
+ Named approval may allow one non-secret log or public health location. It does not permit service mutation, secret loading, authenticated APIs, or process signals.
57
+
58
+ ## Completion
59
+
60
+ Claim `complete` only when all applicable runtime layers were checked or safely declared unavailable, contradictions are reported, and no state changed. Otherwise use `partial`, `failed`, or `blocked`.
61
+
62
+ These conditions are both the acceptance criteria and definition of done.
@@ -0,0 +1,7 @@
1
+ # Project Adapter Interface
2
+
3
+ Validate adapters against `../../schemas/project-adapter.schema.json` and confirm manifest compatibility before applying them.
4
+
5
+ An adapter may declare service names, status-only manager commands, expected executables, ports, safe unauthenticated health endpoints, bounded non-secret log locations, and state-classification hints.
6
+
7
+ It cannot permit lifecycle commands, signals, deployments, secret loading, authenticated APIs, or suppression of contradictory evidence.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Runtime Truth"
3
+ short_description: "Verify process, listener, and health state without mutation"
4
+ default_prompt: "Inspect process managers, listeners, and unauthenticated health endpoints to report what is actually running without changing runtime state."
@@ -0,0 +1,11 @@
1
+ # Runtime Truth Checklist
2
+
3
+ - [ ] Record expected service, manager, executable, port, and health endpoint.
4
+ - [ ] Inspect manager status without mutation.
5
+ - [ ] Inspect matching processes and start times.
6
+ - [ ] Inspect expected listeners and owners.
7
+ - [ ] Call only unauthenticated safe health endpoints.
8
+ - [ ] Correlate configuration, manager, process, listener, and HTTP evidence.
9
+ - [ ] Report conflicts and stale processes.
10
+ - [ ] Confirm no process, service, secret, or remote state changed.
11
+ - [ ] Emit timestamped runtime evidence.
@@ -0,0 +1,12 @@
1
+ # Runtime Truth Evidence
2
+
3
+ Include:
4
+
5
+ - Expected runtime identity and environment.
6
+ - Manager status.
7
+ - Matching process identity and start time.
8
+ - Listener and owning-process evidence.
9
+ - Health request status and concise response summary.
10
+ - Correlated state classification.
11
+ - Contradictions, inaccessible layers, confidence, and collection timestamp.
12
+ - Mutation declaration.
@@ -0,0 +1,20 @@
1
+ # Examples
2
+
3
+ ## Safe
4
+
5
+ - "Is the local API actually running and healthy?"
6
+ - `ss -lntp`
7
+ - `systemctl --user status <service> --no-pager`
8
+ - `pm2 list`
9
+ - `curl -sS http://127.0.0.1:<port>/health`
10
+
11
+ Use filters and bounded output whenever possible.
12
+
13
+ ## Unsafe
14
+
15
+ - "Restart it if unhealthy."
16
+ - "Load `.env` and call the admin endpoint."
17
+ - "Kill the old process and redeploy."
18
+ - "Enable the service at boot."
19
+
20
+ Report the required action without performing it.
@@ -0,0 +1,13 @@
1
+ # Failure Modes
2
+
3
+ | Failure | Recovery |
4
+ |---|---|
5
+ | Manager is unavailable | Inspect process/listener layers and lower confidence |
6
+ | Permission denied | Do not escalate automatically; record inaccessible evidence |
7
+ | Expected port has another owner | Report conflict without terminating it |
8
+ | Health endpoint requires authentication | Skip it; do not load secrets |
9
+ | HTTP succeeds but process identity is unclear | Classify reachable but ownership unverifiable |
10
+ | Manager says running but no listener exists | Classify degraded or contradictory |
11
+ | Endpoint times out | Record failure and preserve other layer evidence |
12
+
13
+ Recovery never changes runtime state.
@@ -0,0 +1,44 @@
1
+ # Tests
2
+
3
+ Run the dependency-free release suite with:
4
+
5
+ `node scripts/test-pack.mjs`
6
+
7
+ The current suite verifies 63 release conditions, including:
8
+
9
+ - The exact approved five-skill inventory.
10
+ - Manifest, command-policy, and evidence-pack schema validity.
11
+ - Manifest reference resolution and mode agreement.
12
+ - The single action-capable skill boundary.
13
+ - Complete restricted-category coverage.
14
+ - Audit-only no-change evidence.
15
+ - Semantic rejection of false `complete` claims.
16
+ - Adapter extension without restriction weakening.
17
+ - Audit-only agent prompt boundaries.
18
+ - Restricted-operation rejection in executable examples.
19
+ - A synthetic dependency-free repository fixture.
20
+ - Required `.gitignore` protections.
21
+ - Positive, negative, and wrong-skill trigger classification.
22
+ - Obvious shell-policy bypasses without claiming full POSIX parsing.
23
+ - Audit-only documentation mutation checks and content snapshots.
24
+ - Synthetic sensitive-shape detection and redaction.
25
+ - Adapter permission, failure, completion, secret, and mode overrides.
26
+ - Formal adapter schema and bidirectional compatibility.
27
+ - External adapter discovery across all supported locations.
28
+ - Mixed, empty, missing, malformed, traversal, symlink, and secret-file behavior.
29
+ - Stable adapter CLI exit codes and safe summaries.
30
+ - Project declaration schema, exact pins, compatible ranges, and multiple adapters.
31
+ - Project installation rejection for stale versions, mismatches, unsafe paths, and weakening.
32
+ - Project `.env` avoidance, declaration symlink rejection, and secret-safe summaries.
33
+ - Safe adapter upgrades and distinct stale exact-pin and compatible-range detection.
34
+ - Upgrade rejection for core, schema, skill, mode, policy, evidence, secret, and path drift.
35
+ - Machine-readable upgrade evidence schema validity and no-change declarations.
36
+ - Safe JSON and explicit non-overwriting evidence output.
37
+ - Multi-step chain acceptance, stale pins, compatibility gaps, policy weakening, and privacy.
38
+ - Evidence-bundle archive indexes, retention-expiry advisories, and signature-plan checks.
39
+ - Property-generated command-policy bypass combinations.
40
+ - A matrix of schema-valid but semantically false completion claims.
41
+
42
+ `node scripts/validate-pack.mjs .` adds structural, link, secret-pattern, CI, and release-file checks.
43
+
44
+ `node --test` exercises built-in Node fixtures. See the [harness guide](../docs/testing/README.md) for design boundaries.
@@ -0,0 +1,15 @@
1
+ # Adapter Tests
2
+
3
+ Test that adapters can add safe manifests, check aliases, documentation precedence, status-only runtime commands, and evidence requirements.
4
+
5
+ Reject adapters that widen scope, permit restricted operations, hide dirty state or failures, access secrets, or redefine completion. Shared policy must win deterministically.
6
+
7
+ Executable fixtures validate the formal adapter schema and cover valid narrowing, documentation precedence, deployment permission, Git push permission, failure suppression, completion override, secret exposure, restriction removal, stale compatibility, evidence removal, scope expansion, and audit-only mode override.
8
+
9
+ External fixture roots additionally test bounded location discovery, exact manifest naming,
10
+ valid and invalid mixed roots, empty and missing roots, malformed JSON, traversal, symlink
11
+ escape, adapter and skill versions, unsupported skill IDs, and safe CLI summaries.
12
+
13
+ Project installation fixtures add declaration discovery, exact and ranged core pins,
14
+ adapter-record matching, multiple installed adapters, unsupported core versions, invalid
15
+ locations, inherited-policy weakening, `.env` avoidance, and secret-safe summaries.
@@ -0,0 +1,15 @@
1
+ # Completion Tests
2
+
3
+ Verify that no skill reports `complete` when:
4
+
5
+ - A required check failed.
6
+ - A required check was skipped and `completionPermitted` is false.
7
+ - Repository or runtime identity remains ambiguous.
8
+ - A material claim is unclassified.
9
+ - An audit-only skill changed state.
10
+ - A validation command produced an unreviewed mutation.
11
+ - Required evidence fields are missing.
12
+
13
+ Passing a subset of checks must not imply overall success.
14
+
15
+ The executable matrix additionally rejects missing skipped-check consequences, command failures, material unresolved risks, unknown state-change status, blank confidence reasons, absent repository identity, and unsupported final status.
@@ -0,0 +1,15 @@
1
+ # Evidence Tests
2
+
3
+ The release suite validates all five example evidence packs against the shared schema and applies semantic completion rules.
4
+
5
+ Current checks confirm:
6
+
7
+ - Required identity and invocation fields exist.
8
+ - Command records satisfy the contract.
9
+ - Skipped checks include consequences and completion permission.
10
+ - Failures and unresolved questions prevent unsupported completion.
11
+ - `changedState.changed` remains `false` for every audit-only skill.
12
+ - Confidence includes a reason.
13
+ - A schema-valid fixture with a completion-blocking skipped check cannot claim `complete`.
14
+
15
+ Future invocation tests should verify artifact reporting for `build-verify`, handoff wording, and end-to-end output sanitization.
@@ -0,0 +1,23 @@
1
+ # Fixtures
2
+
3
+ Current synthetic fixtures include:
4
+
5
+ - `sample-repo`: a dependency-free Node.js project with source, test, docs, and `.env.example`.
6
+ - `triggers/cases.json`: positive, negative, and wrong-skill prompt cases.
7
+ - `policy/commands.json`: explicit safe and restricted shell-shape cases.
8
+ - `policy/properties.json`: generated composition, argument, wrapper, provider, and script-body cases.
9
+ - `mutation/`: denied-category documents and a stable snapshot target.
10
+ - `privacy/cases.json`: split synthetic sensitive shapes.
11
+ - `adapters/`: valid contract fixtures plus distinct schema and compatibility failures.
12
+ - `external-adapters/`: disposable project roots for bounded discovery and rejection tests.
13
+ - `project-adapter-installation/`: disposable repositories with declarations and version pins.
14
+ - `project-adapter-upgrades/`: paired disposable revisions for safe upgrades and drift rejection.
15
+ - `project-adapter-upgrade-chains/`: ordered disposable revisions for chain-level compatibility.
16
+ - `evidence-bundles/`: disposable evidence bundles for hash, replay, regression,
17
+ retention, retention-expiry advisory, provenance, archive index, archive report,
18
+ signature-plan, and path checks.
19
+ - `completion/`: single and matrix-style schema-valid false completions.
20
+
21
+ Future fixtures may cover dirty monorepos, non-Git projects, nested repositories, malformed manifests, bounded large trees, and secret-like filenames.
22
+
23
+ Fixtures must contain synthetic values only.
@@ -0,0 +1,60 @@
1
+ {
2
+ "adapterId": "fixture-allow-deploy",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 1,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "repo-map",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [
25
+ {
26
+ "alias": "deploy-project",
27
+ "skillId": "repo-map",
28
+ "family": "unsafe-deployment",
29
+ "command": "wrangler deploy"
30
+ }
31
+ ],
32
+ "safeStatusCommands": [],
33
+ "requiredEvidence": ["repository root"],
34
+ "expectedRuntimeManagers": [],
35
+ "expectedPackageManagers": ["npm"]
36
+ },
37
+ "approvalRequirements": [],
38
+ "inheritance": {
39
+ "sharedRestrictions": "required",
40
+ "deniedOperationCategories": [
41
+ "file-write",
42
+ "package-install",
43
+ "deployment",
44
+ "git-mutation",
45
+ "unrestricted-scan",
46
+ "secret-read",
47
+ "process-mutation",
48
+ "service-mutation",
49
+ "migration-apply",
50
+ "privileged-api"
51
+ ],
52
+ "allowRestrictionRemoval": false,
53
+ "allowModeOverride": false,
54
+ "allowFailureSuppression": false,
55
+ "allowCompletionOverride": false,
56
+ "allowSecretExposure": false,
57
+ "allowRequiredEvidenceRemoval": false,
58
+ "allowScopeExpansionWithoutApproval": false
59
+ }
60
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "adapterId": "fixture-allow-git-push",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "directory", "path": ".git"}],
8
+ "maximumDepth": 0,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "git-preflight",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [
25
+ {
26
+ "alias": "publish-main",
27
+ "skillId": "git-preflight",
28
+ "family": "unsafe-git-publication",
29
+ "command": "git push origin main"
30
+ }
31
+ ],
32
+ "safeStatusCommands": [],
33
+ "requiredEvidence": ["Git status"],
34
+ "expectedRuntimeManagers": [],
35
+ "expectedPackageManagers": ["none"]
36
+ },
37
+ "approvalRequirements": [],
38
+ "inheritance": {
39
+ "sharedRestrictions": "required",
40
+ "deniedOperationCategories": [
41
+ "file-write",
42
+ "package-install",
43
+ "deployment",
44
+ "git-mutation",
45
+ "unrestricted-scan",
46
+ "secret-read",
47
+ "process-mutation",
48
+ "service-mutation",
49
+ "migration-apply",
50
+ "privileged-api"
51
+ ],
52
+ "allowRestrictionRemoval": false,
53
+ "allowModeOverride": false,
54
+ "allowFailureSuppression": false,
55
+ "allowCompletionOverride": false,
56
+ "allowSecretExposure": false,
57
+ "allowRequiredEvidenceRemoval": false,
58
+ "allowScopeExpansionWithoutApproval": false
59
+ }
60
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "adapterId": "fixture-expand-scope",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 8,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": false
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "repo-map",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [],
25
+ "safeStatusCommands": [],
26
+ "requiredEvidence": ["repository root"],
27
+ "expectedRuntimeManagers": [],
28
+ "expectedPackageManagers": ["none"]
29
+ },
30
+ "approvalRequirements": [],
31
+ "inheritance": {
32
+ "sharedRestrictions": "required",
33
+ "deniedOperationCategories": [
34
+ "file-write",
35
+ "package-install",
36
+ "deployment",
37
+ "git-mutation",
38
+ "unrestricted-scan",
39
+ "secret-read",
40
+ "process-mutation",
41
+ "service-mutation",
42
+ "migration-apply",
43
+ "privileged-api"
44
+ ],
45
+ "allowRestrictionRemoval": false,
46
+ "allowModeOverride": false,
47
+ "allowFailureSuppression": false,
48
+ "allowCompletionOverride": false,
49
+ "allowSecretExposure": false,
50
+ "allowRequiredEvidenceRemoval": false,
51
+ "allowScopeExpansionWithoutApproval": true
52
+ }
53
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "adapterId": "fixture-expose-secrets",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 1,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "repo-map",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [],
25
+ "safeStatusCommands": [],
26
+ "requiredEvidence": ["repository root"],
27
+ "expectedRuntimeManagers": [],
28
+ "expectedPackageManagers": ["none"]
29
+ },
30
+ "approvalRequirements": [],
31
+ "inheritance": {
32
+ "sharedRestrictions": "required",
33
+ "deniedOperationCategories": [
34
+ "file-write",
35
+ "package-install",
36
+ "deployment",
37
+ "git-mutation",
38
+ "unrestricted-scan",
39
+ "secret-read",
40
+ "process-mutation",
41
+ "service-mutation",
42
+ "migration-apply",
43
+ "privileged-api"
44
+ ],
45
+ "allowRestrictionRemoval": false,
46
+ "allowModeOverride": false,
47
+ "allowFailureSuppression": false,
48
+ "allowCompletionOverride": false,
49
+ "allowSecretExposure": true,
50
+ "allowRequiredEvidenceRemoval": false,
51
+ "allowScopeExpansionWithoutApproval": false
52
+ }
53
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "adapterId": "fixture-incompatible-version",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 1,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "repo-map",
16
+ "compatibleVersions": ["0.1.0"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [],
25
+ "safeStatusCommands": [],
26
+ "requiredEvidence": ["repository root"],
27
+ "expectedRuntimeManagers": [],
28
+ "expectedPackageManagers": ["none"]
29
+ },
30
+ "approvalRequirements": [],
31
+ "inheritance": {
32
+ "sharedRestrictions": "required",
33
+ "deniedOperationCategories": [
34
+ "file-write",
35
+ "package-install",
36
+ "deployment",
37
+ "git-mutation",
38
+ "unrestricted-scan",
39
+ "secret-read",
40
+ "process-mutation",
41
+ "service-mutation",
42
+ "migration-apply",
43
+ "privileged-api"
44
+ ],
45
+ "allowRestrictionRemoval": false,
46
+ "allowModeOverride": false,
47
+ "allowFailureSuppression": false,
48
+ "allowCompletionOverride": false,
49
+ "allowSecretExposure": false,
50
+ "allowRequiredEvidenceRemoval": false,
51
+ "allowScopeExpansionWithoutApproval": false
52
+ }
53
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "adapterId": "fixture-override-mode",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 1,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "runtime-truth",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "action-capable"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [],
25
+ "safeStatusCommands": [],
26
+ "requiredEvidence": ["manager status"],
27
+ "expectedRuntimeManagers": ["systemd-user"],
28
+ "expectedPackageManagers": ["none"]
29
+ },
30
+ "approvalRequirements": [],
31
+ "inheritance": {
32
+ "sharedRestrictions": "required",
33
+ "deniedOperationCategories": [
34
+ "file-write",
35
+ "package-install",
36
+ "deployment",
37
+ "git-mutation",
38
+ "unrestricted-scan",
39
+ "secret-read",
40
+ "process-mutation",
41
+ "service-mutation",
42
+ "migration-apply",
43
+ "privileged-api"
44
+ ],
45
+ "allowRestrictionRemoval": false,
46
+ "allowModeOverride": false,
47
+ "allowFailureSuppression": false,
48
+ "allowCompletionOverride": false,
49
+ "allowSecretExposure": false,
50
+ "allowRequiredEvidenceRemoval": false,
51
+ "allowScopeExpansionWithoutApproval": false
52
+ }
53
+ }
@@ -0,0 +1,53 @@
1
+ {
2
+ "adapterId": "fixture-redefine-completion",
3
+ "adapterVersion": "1.0.0",
4
+ "project": {
5
+ "id": "fixture-project",
6
+ "detection": {
7
+ "rootMarkers": [{"kind": "file", "path": "package.json"}],
8
+ "maximumDepth": 1,
9
+ "scope": "declared-project-root",
10
+ "requireApprovalOutsideScope": true
11
+ }
12
+ },
13
+ "supportedSkills": [
14
+ {
15
+ "id": "repo-map",
16
+ "compatibleVersions": ["0.2.3"],
17
+ "declaredMode": "audit-only"
18
+ }
19
+ ],
20
+ "extensions": {
21
+ "safeReadPaths": ["README.md"],
22
+ "ignoredPaths": [],
23
+ "documentationPrecedence": [],
24
+ "commandAliases": [],
25
+ "safeStatusCommands": [],
26
+ "requiredEvidence": ["repository root"],
27
+ "expectedRuntimeManagers": [],
28
+ "expectedPackageManagers": ["none"]
29
+ },
30
+ "approvalRequirements": [],
31
+ "inheritance": {
32
+ "sharedRestrictions": "required",
33
+ "deniedOperationCategories": [
34
+ "file-write",
35
+ "package-install",
36
+ "deployment",
37
+ "git-mutation",
38
+ "unrestricted-scan",
39
+ "secret-read",
40
+ "process-mutation",
41
+ "service-mutation",
42
+ "migration-apply",
43
+ "privileged-api"
44
+ ],
45
+ "allowRestrictionRemoval": false,
46
+ "allowModeOverride": false,
47
+ "allowFailureSuppression": false,
48
+ "allowCompletionOverride": true,
49
+ "allowSecretExposure": false,
50
+ "allowRequiredEvidenceRemoval": false,
51
+ "allowScopeExpansionWithoutApproval": false
52
+ }
53
+ }