@getarbiter/cli 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (989) hide show
  1. package/CHANGELOG.md +713 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +31 -0
  4. package/PRIVACY.md +111 -0
  5. package/README.md +237 -0
  6. package/THIRD_PARTY_LICENSES.md +472 -0
  7. package/dist/.src-manifest.json +1 -0
  8. package/dist/capabilities/host-probe.js +3 -0
  9. package/dist/cli.d.ts +2 -0
  10. package/dist/cli.js +87 -0
  11. package/dist/commands/adopt-policy.js +3 -0
  12. package/dist/commands/configure-interactive.js +3 -0
  13. package/dist/commands/configure.js +5 -0
  14. package/dist/commands/cross-model-review.js +3 -0
  15. package/dist/commands/diff.js +20 -0
  16. package/dist/commands/doc-set.js +3 -0
  17. package/dist/commands/doctor/clean.js +2 -0
  18. package/dist/commands/doctor/fail-open-census.js +12 -0
  19. package/dist/commands/doctor/health.js +11 -0
  20. package/dist/commands/doctor/prove-gates.js +13 -0
  21. package/dist/commands/doctor/recover-lock.js +12 -0
  22. package/dist/commands/doctor/repair-state.js +6 -0
  23. package/dist/commands/doctor/tool-pin-extract.js +4 -0
  24. package/dist/commands/doctor/tool-pins.js +9 -0
  25. package/dist/commands/doctor-interactive.js +2 -0
  26. package/dist/commands/doctor.js +2 -0
  27. package/dist/commands/explain.js +19 -0
  28. package/dist/commands/gate-exec.js +4 -0
  29. package/dist/commands/gold-audit.js +14 -0
  30. package/dist/commands/graph.js +5 -0
  31. package/dist/commands/init/build-arbiter-config.js +1 -0
  32. package/dist/commands/init/generate.js +42 -0
  33. package/dist/commands/init/github-setup.js +5 -0
  34. package/dist/commands/init/maturity-gates.js +10 -0
  35. package/dist/commands/init/resolve-config.js +3 -0
  36. package/dist/commands/init/toolchain.js +10 -0
  37. package/dist/commands/init/types.js +1 -0
  38. package/dist/commands/init.js +17 -0
  39. package/dist/commands/method-interactive.js +4 -0
  40. package/dist/commands/method.js +11 -0
  41. package/dist/commands/obsidian.js +2 -0
  42. package/dist/commands/plugin.js +8 -0
  43. package/dist/commands/pr-merged.js +2 -0
  44. package/dist/commands/retire-policy.js +3 -0
  45. package/dist/commands/review-diff.js +3 -0
  46. package/dist/commands/settings.js +7 -0
  47. package/dist/commands/ship-config.js +2 -0
  48. package/dist/commands/ship-profile.js +2 -0
  49. package/dist/commands/ship-review.js +1 -0
  50. package/dist/commands/ship-tier.js +2 -0
  51. package/dist/commands/ship-train.js +2 -0
  52. package/dist/commands/task-mark.js +2 -0
  53. package/dist/commands/task-note.js +3 -0
  54. package/dist/commands/task-record-red.js +2 -0
  55. package/dist/commands/task-record-tech-debt.js +4 -0
  56. package/dist/commands/task-ship.js +3 -0
  57. package/dist/commands/task-state.js +6 -0
  58. package/dist/commands/task.js +59 -0
  59. package/dist/commands/update.js +60 -0
  60. package/dist/commands/upgrade-level-interactive.js +2 -0
  61. package/dist/commands/upgrade-level.js +7 -0
  62. package/dist/commands/verify-plan.js +8 -0
  63. package/dist/commands/verify-tdd.js +2 -0
  64. package/dist/commands/verify.js +7 -0
  65. package/dist/commands/wizard/coherence.js +1 -0
  66. package/dist/commands/worktree-prune.js +4 -0
  67. package/dist/commands/worktree.js +39 -0
  68. package/dist/compatibility/cross-language-matrix.json +540 -0
  69. package/dist/compatibility/index.d.ts +4 -0
  70. package/dist/compatibility/index.js +2 -0
  71. package/dist/compatibility/matcher.js +1 -0
  72. package/dist/compatibility/matrix.json +27 -0
  73. package/dist/compatibility/parsers.d.ts +38 -0
  74. package/dist/compatibility/parsers.js +1 -0
  75. package/dist/compatibility/probe.d.ts +41 -0
  76. package/dist/compatibility/probe.js +4 -0
  77. package/dist/compatibility/report.js +2 -0
  78. package/dist/compatibility/schema.d.ts +80 -0
  79. package/dist/compatibility/schema.js +1 -0
  80. package/dist/compatibility/skills-matrix.json +98 -0
  81. package/dist/compatibility/skills-validator.d.ts +30 -0
  82. package/dist/compatibility/skills-validator.js +4 -0
  83. package/dist/compatibility/tooling-proposals.json +5 -0
  84. package/dist/config/arbiter-ignore.js +3 -0
  85. package/dist/config/collaboration-mode-defaults.js +1 -0
  86. package/dist/config/diff.js +1 -0
  87. package/dist/config/env-overrides.js +3 -0
  88. package/dist/config/env-registry.js +2 -0
  89. package/dist/config/levels.js +1 -0
  90. package/dist/config/migrations/index.js +2 -0
  91. package/dist/config/migrations/v0-to-v1.js +2 -0
  92. package/dist/config/migrations/v1-to-v2.js +2 -0
  93. package/dist/config/migrations/v2-to-v3.js +2 -0
  94. package/dist/config/migrations/v3-to-v4.js +2 -0
  95. package/dist/config/override-resolver.js +2 -0
  96. package/dist/config/resolve-project-config.js +2 -0
  97. package/dist/config/resolve-project-name.js +2 -0
  98. package/dist/config/schema.d.ts +480 -0
  99. package/dist/config/schema.js +1 -0
  100. package/dist/config/test-pyramid-profiles.js +1 -0
  101. package/dist/config/thresholds.js +2 -0
  102. package/dist/conformance/dimensions.js +3 -0
  103. package/dist/conformance/engine.js +7 -0
  104. package/dist/conformance/gate-proofs.js +4 -0
  105. package/dist/conformance/shared.js +2 -0
  106. package/dist/detectors/axis.js +1 -0
  107. package/dist/detectors/build.js +2 -0
  108. package/dist/detectors/existing.js +2 -0
  109. package/dist/detectors/external-model.js +2 -0
  110. package/dist/detectors/framework.js +2 -0
  111. package/dist/detectors/git.js +11 -0
  112. package/dist/detectors/github.js +2 -0
  113. package/dist/detectors/lanes.js +5 -0
  114. package/dist/detectors/language-hooks.js +117 -0
  115. package/dist/detectors/language.js +2 -0
  116. package/dist/detectors/package-manager.js +2 -0
  117. package/dist/detectors/package.js +2 -0
  118. package/dist/detectors/scaffold-wiring.js +2 -0
  119. package/dist/detectors/workflow-collision.js +4 -0
  120. package/dist/evidence/gate-binding.js +4 -0
  121. package/dist/evidence/git-checks.js +3 -0
  122. package/dist/evidence/load.js +2 -0
  123. package/dist/evidence/provenance.js +2 -0
  124. package/dist/evidence/summary.js +2 -0
  125. package/dist/evidence/tdd-reexecute.js +2 -0
  126. package/dist/evidence/tdd.js +4 -0
  127. package/dist/experimental/index.js +2 -0
  128. package/dist/experimental/parse-argv.js +2 -0
  129. package/dist/experimental/registry.js +2 -0
  130. package/dist/generators/agents-claude.js +2 -0
  131. package/dist/generators/agents-md.js +2 -0
  132. package/dist/generators/anti-drift-validators.js +3 -0
  133. package/dist/generators/anti-proforma.js +2 -0
  134. package/dist/generators/api-e2e.js +2 -0
  135. package/dist/generators/api-middleware.js +2 -0
  136. package/dist/generators/archunit.js +2 -0
  137. package/dist/generators/audit-toolchain.js +2 -0
  138. package/dist/generators/auth.js +2 -0
  139. package/dist/generators/behavioral-tests.js +2 -0
  140. package/dist/generators/boundaries.js +2 -0
  141. package/dist/generators/check-all.js +2 -0
  142. package/dist/generators/check-stack-conformity.js +2 -0
  143. package/dist/generators/ci-five-lane.js +2 -0
  144. package/dist/generators/ci-tier.js +2 -0
  145. package/dist/generators/claude.js +3 -0
  146. package/dist/generators/codex-hooks.js +2 -0
  147. package/dist/generators/codex-known-limitations.js +2 -0
  148. package/dist/generators/codex.js +15 -0
  149. package/dist/generators/commit-footer.js +2 -0
  150. package/dist/generators/compliance-menu.js +2 -0
  151. package/dist/generators/compliance.js +2 -0
  152. package/dist/generators/conformance.js +2 -0
  153. package/dist/generators/contract-testing.js +2 -0
  154. package/dist/generators/coverage.js +2 -0
  155. package/dist/generators/debt-gates.js +24 -0
  156. package/dist/generators/debt-ratchet.js +2 -0
  157. package/dist/generators/derived-class.js +2 -0
  158. package/dist/generators/doc-set.js +4 -0
  159. package/dist/generators/docs.js +2 -0
  160. package/dist/generators/duplication.js +2 -0
  161. package/dist/generators/e2e-constitution.js +2 -0
  162. package/dist/generators/env-template.js +2 -0
  163. package/dist/generators/evidence-retention.js +2 -0
  164. package/dist/generators/feature-matrix.js +2 -0
  165. package/dist/generators/frontend-governance.js +2 -0
  166. package/dist/generators/frontend-quality.js +2 -0
  167. package/dist/generators/gap.js +2 -0
  168. package/dist/generators/gdpr.js +2 -0
  169. package/dist/generators/githooks.js +2 -0
  170. package/dist/generators/github-setup.js +2 -0
  171. package/dist/generators/github.js +2 -0
  172. package/dist/generators/gitignore.js +2 -0
  173. package/dist/generators/global-invariants.js +3 -0
  174. package/dist/generators/go-boundaries.js +2 -0
  175. package/dist/generators/gold-kit.js +2 -0
  176. package/dist/generators/infra.js +2 -0
  177. package/dist/generators/integration-testing.js +7 -0
  178. package/dist/generators/iso27001.js +2 -0
  179. package/dist/generators/iso9001.js +2 -0
  180. package/dist/generators/labels.js +2 -0
  181. package/dist/generators/local-wrapper.js +2 -0
  182. package/dist/generators/modulith.js +2 -0
  183. package/dist/generators/mutation.js +2 -0
  184. package/dist/generators/observability.js +2 -0
  185. package/dist/generators/operations.js +2 -0
  186. package/dist/generators/perf-k6.js +2 -0
  187. package/dist/generators/pharma.js +2 -0
  188. package/dist/generators/playwright-python.js +2 -0
  189. package/dist/generators/playwright-ts.js +2 -0
  190. package/dist/generators/pr-tooling.js +2 -0
  191. package/dist/generators/python-boundaries.js +2 -0
  192. package/dist/generators/quality.js +2 -0
  193. package/dist/generators/registry.js +2 -0
  194. package/dist/generators/regulated.js +2 -0
  195. package/dist/generators/resilience.js +2 -0
  196. package/dist/generators/risk-register.js +2 -0
  197. package/dist/generators/root.js +2 -0
  198. package/dist/generators/rust-boundaries.js +2 -0
  199. package/dist/generators/safety-class.js +2 -0
  200. package/dist/generators/security.js +2 -0
  201. package/dist/generators/seed.js +2 -0
  202. package/dist/generators/self-validation.js +2 -0
  203. package/dist/generators/ship-driver.js +2 -0
  204. package/dist/generators/skill-names.json +17 -0
  205. package/dist/generators/skills.js +2 -0
  206. package/dist/generators/smoke-journeys.js +2 -0
  207. package/dist/generators/solo-exception.js +2 -0
  208. package/dist/generators/ssot.js +2 -0
  209. package/dist/generators/stride-enforcement.js +2 -0
  210. package/dist/generators/suppressions.js +2 -0
  211. package/dist/generators/test-pyramid-manifest.js +3 -0
  212. package/dist/generators/test-taxonomy.js +2 -0
  213. package/dist/generators/wiki.js +2 -0
  214. package/dist/github/branch-protection.js +2 -0
  215. package/dist/github/classify-gh-error.js +2 -0
  216. package/dist/github/labels.js +2 -0
  217. package/dist/github/project-board.js +2 -0
  218. package/dist/graph/builders/adr.js +4 -0
  219. package/dist/graph/builders/ast.js +3 -0
  220. package/dist/graph/builders/canon.js +2 -0
  221. package/dist/graph/builders/evidence.js +2 -0
  222. package/dist/graph/builders/inv.js +1 -0
  223. package/dist/graph/builders/req.js +3 -0
  224. package/dist/graph/builders/test-nodes.js +3 -0
  225. package/dist/graph/builders/utils.js +2 -0
  226. package/dist/graph/load.js +2 -0
  227. package/dist/graph/model.js +2 -0
  228. package/dist/graph/query.js +3 -0
  229. package/dist/graph/store.js +1 -0
  230. package/dist/i18n/en.json +293 -0
  231. package/dist/i18n/index.js +4 -0
  232. package/dist/i18n/types.js +2 -0
  233. package/dist/integrations/companions.js +2 -0
  234. package/dist/integrations/external-review.js +10 -0
  235. package/dist/integrations/plugin-schema.js +2 -0
  236. package/dist/integrations/skill-detector.js +7 -0
  237. package/dist/integrations/skills-matrix.js +2 -0
  238. package/dist/integrations/types.d.ts +23 -0
  239. package/dist/integrations/types.js +2 -0
  240. package/dist/internal/cli-deprecation-registry.js +2 -0
  241. package/dist/internal/deprecate.js +3 -0
  242. package/dist/internal/experimental-warn.js +3 -0
  243. package/dist/invariants/catalog.d.ts +2 -0
  244. package/dist/invariants/catalog.js +1 -0
  245. package/dist/invariants/filter.d.ts +28 -0
  246. package/dist/invariants/filter.js +1 -0
  247. package/dist/invariants/index.d.ts +4 -0
  248. package/dist/invariants/index.js +2 -0
  249. package/dist/invariants/tiers.js +1 -0
  250. package/dist/invariants/types.d.ts +1 -0
  251. package/dist/invariants/types.js +1 -0
  252. package/dist/kit/applicability.js +3 -0
  253. package/dist/kit/audit-report.js +3 -0
  254. package/dist/kit/brownfield-detect.js +4 -0
  255. package/dist/kit/canonical-mapping.json +1 -0
  256. package/dist/kit/catalog.js +2 -0
  257. package/dist/kit/catalog.json +1 -0
  258. package/dist/kit/derived.json +1 -0
  259. package/dist/kit/emit-issues.js +8 -0
  260. package/dist/kit/measure.js +5 -0
  261. package/dist/kit/redaction.js +3 -0
  262. package/dist/kit/schema.js +2 -0
  263. package/dist/kit/taxonomy.js +2 -0
  264. package/dist/kit/thresholds.d.ts +12 -0
  265. package/dist/kit/thresholds.js +2 -0
  266. package/dist/kit/wave-engine.js +1 -0
  267. package/dist/recipes/loader.js +6 -0
  268. package/dist/recipes/schema.js +2 -0
  269. package/dist/risk/classifier.js +2 -0
  270. package/dist/risk/sha-check.js +2 -0
  271. package/dist/state/backups.js +2 -0
  272. package/dist/state/envelope.js +2 -0
  273. package/dist/state/generated-manifest.js +3 -0
  274. package/dist/state/manifest-key.js +2 -0
  275. package/dist/state/migrations/index.js +1 -0
  276. package/dist/state/migrations/v0-to-v1.js +2 -0
  277. package/dist/state/retired-renders.js +2 -0
  278. package/dist/templates/.nvmrc.ejs +1 -0
  279. package/dist/templates/HANDOFF.template.md +45 -0
  280. package/dist/templates/__tests__/contract/error-shape.contract.test.ts.ejs +47 -0
  281. package/dist/templates/agents-md/AGENTS.md.ejs +517 -0
  282. package/dist/templates/api-e2e/README.md.ejs +33 -0
  283. package/dist/templates/api-e2e/go-httptest.go.ejs +43 -0
  284. package/dist/templates/api-e2e/java-restassured.java.ejs +28 -0
  285. package/dist/templates/api-e2e/kotlin-restassured.kt.ejs +30 -0
  286. package/dist/templates/api-e2e/manifest.json.ejs +8 -0
  287. package/dist/templates/api-e2e/postman.collection.json.ejs +30 -0
  288. package/dist/templates/api-e2e/python-httpx.py.ejs +17 -0
  289. package/dist/templates/api-e2e/run.sh.ejs +61 -0
  290. package/dist/templates/api-e2e/ts-supertest.test.ts.ejs +18 -0
  291. package/dist/templates/archunit/AntiCyclicTest.java.ejs +29 -0
  292. package/dist/templates/archunit/AntiProformaExempt.java.ejs +35 -0
  293. package/dist/templates/archunit/AntiProformaTest.java.ejs +104 -0
  294. package/dist/templates/archunit/ArchitectureTest.java.ejs +87 -0
  295. package/dist/templates/archunit/DependencyFlowTest.java.ejs +55 -0
  296. package/dist/templates/archunit/DomainPurityTest.java.ejs +47 -0
  297. package/dist/templates/archunit/NamingConventionsTest.java.ejs +54 -0
  298. package/dist/templates/archunit/NoH2ArchTest.java.ejs +30 -0
  299. package/dist/templates/archunit/NoMockMvcTest.java.ejs +71 -0
  300. package/dist/templates/archunit/PortsIndependenceTest.java.ejs +55 -0
  301. package/dist/templates/archunit/RestAssuredArchTest.java.ejs +32 -0
  302. package/dist/templates/archunit/RestAssuredBaseIT.java.ejs +66 -0
  303. package/dist/templates/archunit/TestCoverageArchTest.java.ejs +29 -0
  304. package/dist/templates/archunit/arch-test-deps-maven.md.ejs +42 -0
  305. package/dist/templates/archunit/arch-test-deps.gradle.ejs +14 -0
  306. package/dist/templates/audit/gdpr/check-gdpr-controls.mjs.ejs +102 -0
  307. package/dist/templates/audit/gdpr/controls-to-gates.md.ejs +42 -0
  308. package/dist/templates/audit/gdpr/data-flow-map.md.ejs +30 -0
  309. package/dist/templates/audit/gdpr/dpia.md.ejs +45 -0
  310. package/dist/templates/audit/generic/audit-gate-rules.md.ejs +24 -0
  311. package/dist/templates/audit/generic/audit-trail-policy.md.ejs +38 -0
  312. package/dist/templates/audit/iso27001/iso27001-controls-gate-map.md.ejs +60 -0
  313. package/dist/templates/auth/setup.md.ejs +661 -0
  314. package/dist/templates/behavioral-tests/ExampleBehavioralTest.java.ejs +67 -0
  315. package/dist/templates/behavioral-tests/TESTING_POLICY.md.ejs +116 -0
  316. package/dist/templates/behavioral-tests/bdd/ExampleBddIT.java.ejs +19 -0
  317. package/dist/templates/behavioral-tests/bdd/ExampleSteps.java.ejs +61 -0
  318. package/dist/templates/behavioral-tests/bdd/example.feature.ejs +14 -0
  319. package/dist/templates/behavioral-tests/bdd/example.steps.ts.ejs +37 -0
  320. package/dist/templates/behavioral-tests/bdd/example_bdd_test.rs.ejs +64 -0
  321. package/dist/templates/behavioral-tests/bdd/example_test.go.ejs +80 -0
  322. package/dist/templates/behavioral-tests/bdd/test_example_bdd.py.ejs +47 -0
  323. package/dist/templates/behavioral-tests/eslint-playwright.json.ejs +10 -0
  324. package/dist/templates/behavioral-tests/eslint.config.playwright.mjs.ejs +29 -0
  325. package/dist/templates/behavioral-tests/example.behavioral.test.ts.ejs +47 -0
  326. package/dist/templates/behavioral-tests/example_behavioral_test.go.ejs +51 -0
  327. package/dist/templates/behavioral-tests/example_behavioral_test.rs.ejs +47 -0
  328. package/dist/templates/behavioral-tests/test_example_behavioral.py.ejs +40 -0
  329. package/dist/templates/boundaries/.eslintrc-boundaries.cjs.ejs +81 -0
  330. package/dist/templates/boundaries/.eslintrc-frontend-spa.cjs.ejs +79 -0
  331. package/dist/templates/boundaries/.importlinter.ejs +48 -0
  332. package/dist/templates/boundaries/check-boundaries-go.mjs.ejs +94 -0
  333. package/dist/templates/boundaries/check-boundaries-python.mjs.ejs +118 -0
  334. package/dist/templates/boundaries/check-boundaries-rust.mjs.ejs +111 -0
  335. package/dist/templates/boundaries/check-boundaries.mjs.ejs +34 -0
  336. package/dist/templates/boundaries/clippy.toml.ejs +50 -0
  337. package/dist/templates/boundaries/deny.toml.ejs +56 -0
  338. package/dist/templates/boundaries/eslint.config.boundaries.mjs.ejs +112 -0
  339. package/dist/templates/boundaries/eslint.config.frontend-spa.mjs.ejs +93 -0
  340. package/dist/templates/boundaries/golangci-boundaries.yml.ejs +70 -0
  341. package/dist/templates/boundaries/ruff-boundaries.toml.ejs +32 -0
  342. package/dist/templates/claude/CLAUDE.md.ejs +78 -0
  343. package/dist/templates/claude/agents/agent-write-classes.json +30 -0
  344. package/dist/templates/claude/agents/bridge-reviewer.md.ejs +68 -0
  345. package/dist/templates/claude/agents/codebase-scanner.md.ejs +69 -0
  346. package/dist/templates/claude/agents/context-checker.md.ejs +73 -0
  347. package/dist/templates/claude/agents/red-team.md.ejs +134 -0
  348. package/dist/templates/claude/commands/close-gold-gap.md.ejs +43 -0
  349. package/dist/templates/claude/commands/drain.md.ejs +81 -0
  350. package/dist/templates/claude/commands/gold-audit.md.ejs +43 -0
  351. package/dist/templates/claude/commands/impact.md.ejs +39 -0
  352. package/dist/templates/claude/commands/levelup.md.ejs +61 -0
  353. package/dist/templates/claude/commands/ship.md.ejs +902 -0
  354. package/dist/templates/claude/commands/tabletop.md.ejs +46 -0
  355. package/dist/templates/claude/commands/task.md.ejs +87 -0
  356. package/dist/templates/claude/commands/wt-close.md.ejs +58 -0
  357. package/dist/templates/claude/commands/wt-list.md.ejs +48 -0
  358. package/dist/templates/claude/commands/wt-open.md.ejs +61 -0
  359. package/dist/templates/claude/commands/wt-prune.md.ejs +38 -0
  360. package/dist/templates/claude/hooks/check-circular-deps.mjs.ejs +56 -0
  361. package/dist/templates/claude/hooks/check-no-orphan-todo.mjs.ejs +45 -0
  362. package/dist/templates/claude/hooks/check-no-pii.mjs.ejs +121 -0
  363. package/dist/templates/claude/hooks/check-no-placeholders.mjs.ejs +71 -0
  364. package/dist/templates/claude/hooks/check-no-skipped-tests.mjs +80 -0
  365. package/dist/templates/claude/hooks/check-no-unused-exports.mjs +62 -0
  366. package/dist/templates/claude/hooks/closer-mode-guard.mjs.ejs +102 -0
  367. package/dist/templates/claude/hooks/debug-state-on-failure.mjs.ejs +98 -0
  368. package/dist/templates/claude/hooks/enforce-gate-before-pr.mjs +142 -0
  369. package/dist/templates/claude/hooks/enforce-read-only.mjs +28 -0
  370. package/dist/templates/claude/hooks/exitplanmode-banner.mjs.ejs +43 -0
  371. package/dist/templates/claude/hooks/guard-done-evidence.mjs.ejs +85 -0
  372. package/dist/templates/claude/hooks/guard-task-completion.mjs.ejs +56 -0
  373. package/dist/templates/claude/hooks/hooks.mjs.ejs +127 -0
  374. package/dist/templates/claude/hooks/lib.mjs.ejs +523 -0
  375. package/dist/templates/claude/hooks/post-brainstorm-stop.mjs +48 -0
  376. package/dist/templates/claude/hooks/post-commit-check.mjs.ejs +65 -0
  377. package/dist/templates/claude/hooks/post-commit-checklists/go/backend.ejs +4 -0
  378. package/dist/templates/claude/hooks/post-commit-checklists/go/docs.ejs +4 -0
  379. package/dist/templates/claude/hooks/post-commit-checklists/go/frontend.ejs +4 -0
  380. package/dist/templates/claude/hooks/post-commit-checklists/java/backend.ejs +4 -0
  381. package/dist/templates/claude/hooks/post-commit-checklists/java/docs.ejs +4 -0
  382. package/dist/templates/claude/hooks/post-commit-checklists/java/frontend.ejs +4 -0
  383. package/dist/templates/claude/hooks/post-commit-checklists/python/backend.ejs +4 -0
  384. package/dist/templates/claude/hooks/post-commit-checklists/python/docs.ejs +4 -0
  385. package/dist/templates/claude/hooks/post-commit-checklists/python/frontend.ejs +4 -0
  386. package/dist/templates/claude/hooks/post-commit-checklists/rust/backend.ejs +5 -0
  387. package/dist/templates/claude/hooks/post-commit-checklists/rust/docs.ejs +4 -0
  388. package/dist/templates/claude/hooks/post-commit-checklists/rust/frontend.ejs +4 -0
  389. package/dist/templates/claude/hooks/post-commit-checklists/ts/backend.ejs +4 -0
  390. package/dist/templates/claude/hooks/post-commit-checklists/ts/docs.ejs +4 -0
  391. package/dist/templates/claude/hooks/post-commit-checklists/ts/frontend.ejs +5 -0
  392. package/dist/templates/claude/hooks/post-edit-dispatch.mjs.ejs +73 -0
  393. package/dist/templates/claude/hooks/post-subagent-release.mjs +80 -0
  394. package/dist/templates/claude/hooks/pre-compact.mjs.ejs +79 -0
  395. package/dist/templates/claude/hooks/pre-edit-plan-anchor.mjs.ejs +225 -0
  396. package/dist/templates/claude/hooks/pre-edit-ssot-guard.mjs +204 -0
  397. package/dist/templates/claude/hooks/pre-spawn-worktree-guard.mjs +129 -0
  398. package/dist/templates/claude/hooks/skill-forced-eval.mjs.ejs +281 -0
  399. package/dist/templates/claude/hooks/stop-dangerous.mjs +86 -0
  400. package/dist/templates/claude/hooks/stop-evidence-guard.mjs.ejs +245 -0
  401. package/dist/templates/claude/hooks/stop-finding-loss.mjs.ejs +168 -0
  402. package/dist/templates/claude/hooks/wiki-on-commit.mjs.ejs +38 -0
  403. package/dist/templates/claude/knowledge-map.json.ejs +26 -0
  404. package/dist/templates/claude/rules/05-agent-lifecycle.md +7 -0
  405. package/dist/templates/claude/rules/25-todo-folder-policy.md +5 -0
  406. package/dist/templates/claude/rules/40-context-economy.md +32 -0
  407. package/dist/templates/claude/rules/45-mcp-fallback.md +25 -0
  408. package/dist/templates/claude/rules/50-batch-execution.md +75 -0
  409. package/dist/templates/claude/rules/55-brainstorm-terminal-state.md +44 -0
  410. package/dist/templates/claude/rules/60-incidental-capture.md +43 -0
  411. package/dist/templates/claude/rules/75-impact-vault-reading.md +43 -0
  412. package/dist/templates/claude/rules/90-exec-protocol.md.ejs +40 -0
  413. package/dist/templates/claude/rules/95-closer-mode.md +45 -0
  414. package/dist/templates/claude/settings.json.ejs +165 -0
  415. package/dist/templates/claude/skills/architect-review/SKILL.md.ejs +82 -0
  416. package/dist/templates/claude/skills/brainstorming/SKILL.md.ejs +86 -0
  417. package/dist/templates/claude/skills/clean-code/SKILL.md.ejs +39 -0
  418. package/dist/templates/claude/skills/close-gold-gap/SKILL.md.ejs +58 -0
  419. package/dist/templates/claude/skills/codebase-audit/SKILL.md.ejs +88 -0
  420. package/dist/templates/claude/skills/configure/SKILL.md.ejs +72 -0
  421. package/dist/templates/claude/skills/epic-decompose/SKILL.md.ejs +86 -0
  422. package/dist/templates/claude/skills/gold-audit/SKILL.md.ejs +91 -0
  423. package/dist/templates/claude/skills/impact/SKILL.md.ejs +104 -0
  424. package/dist/templates/claude/skills/levelup/SKILL.md.ejs +146 -0
  425. package/dist/templates/claude/skills/tabletop/SKILL.md.ejs +118 -0
  426. package/dist/templates/claude/skills/tdd/SKILL.md.ejs +157 -0
  427. package/dist/templates/claude/skills/understand-code/SKILL.md.ejs +93 -0
  428. package/dist/templates/claude/skills/verification/SKILL.md.ejs +68 -0
  429. package/dist/templates/claude/skills/wave-drain/SKILL.md.ejs +491 -0
  430. package/dist/templates/codex/CODEX.md.ejs +140 -0
  431. package/dist/templates/codex/codex-adapter.mjs +132 -0
  432. package/dist/templates/codex/config.toml.ejs +189 -0
  433. package/dist/templates/compliance/compliance-mapping.md.ejs +124 -0
  434. package/dist/templates/compliance/compliance-menu.md.ejs +89 -0
  435. package/dist/templates/contract-testing/CONTRACTS_POLICY.md.ejs +30 -0
  436. package/dist/templates/contract-testing/api-snapshots/config-keys-baseline.json.ejs +1 -0
  437. package/dist/templates/contract-testing/api-snapshots/config-response-baseline.json.ejs +1 -0
  438. package/dist/templates/contract-testing/api-snapshots/enum-values-baseline.json.ejs +1 -0
  439. package/dist/templates/contract-testing/api-snapshots/error-shape-baseline.json.ejs +6 -0
  440. package/dist/templates/contract-testing/api-snapshots/openapi-baseline.json.ejs +12 -0
  441. package/dist/templates/contract-testing/api-snapshots/openapi-content-types-baseline.json.ejs +3 -0
  442. package/dist/templates/contract-testing/api-snapshots/openapi-paths-baseline.json.ejs +1 -0
  443. package/dist/templates/contract-testing/api-snapshots/openapi-required-fields-baseline.json.ejs +1 -0
  444. package/dist/templates/contract-testing/api-snapshots/openapi-response-status-baseline.json.ejs +3 -0
  445. package/dist/templates/contract-testing/api-snapshots/test-snapshot.json.ejs +4 -0
  446. package/dist/templates/contract-testing/env/.env.pact.ejs +4 -0
  447. package/dist/templates/contract-testing/graphql/GraphqlSchemaTest.java.ejs +29 -0
  448. package/dist/templates/contract-testing/graphql/graphql-inspector.test.ts.ejs +20 -0
  449. package/dist/templates/contract-testing/graphql/graphql_schema_test.go.ejs +27 -0
  450. package/dist/templates/contract-testing/graphql/graphql_schema_test.rs.ejs +27 -0
  451. package/dist/templates/contract-testing/graphql/test_graphql_schema.py.ejs +21 -0
  452. package/dist/templates/contract-testing/grpc/GrpcContractTest.java.ejs +23 -0
  453. package/dist/templates/contract-testing/grpc/buf-breaking.yml.ejs +6 -0
  454. package/dist/templates/contract-testing/grpc/buf.yaml.ejs +11 -0
  455. package/dist/templates/contract-testing/grpc/grpc-contract.test.ts.ejs +16 -0
  456. package/dist/templates/contract-testing/grpc/grpc_contract_test.go.ejs +22 -0
  457. package/dist/templates/contract-testing/grpc/grpc_contract_test.rs.ejs +22 -0
  458. package/dist/templates/contract-testing/grpc/test_grpc_contract.py.ejs +18 -0
  459. package/dist/templates/contract-testing/message-queue/SchemaRegistryCheckIT.java.ejs +44 -0
  460. package/dist/templates/contract-testing/message-queue/schema-registry-check.ts.ejs +42 -0
  461. package/dist/templates/contract-testing/message-queue/schema_registry_test.go.ejs +71 -0
  462. package/dist/templates/contract-testing/message-queue/schema_registry_test.rs.ejs +61 -0
  463. package/dist/templates/contract-testing/message-queue/test_schema_registry.py.ejs +31 -0
  464. package/dist/templates/contract-testing/pact-samples/assignment-response.json.ejs +7 -0
  465. package/dist/templates/contract-testing/pact-samples/availability-response.json.ejs +13 -0
  466. package/dist/templates/contract-testing/pact-samples/availability-rule-response.json.ejs +8 -0
  467. package/dist/templates/contract-testing/pact-samples/capacity-response.json.ejs +11 -0
  468. package/dist/templates/contract-testing/pact-samples/fully-booked-response.json.ejs +6 -0
  469. package/dist/templates/contract-testing/pact-samples/schedule-override-response.json.ejs +7 -0
  470. package/dist/templates/contract-testing/rest-owned/PactVerificationIT.java.ejs +31 -0
  471. package/dist/templates/contract-testing/rest-owned/pact-consumer.test.ts.ejs +36 -0
  472. package/dist/templates/contract-testing/rest-owned/pact-deps.gradle.ejs +15 -0
  473. package/dist/templates/contract-testing/rest-owned/pact_consumer_test.go.ejs +48 -0
  474. package/dist/templates/contract-testing/rest-owned/pact_consumer_test.rs.ejs +23 -0
  475. package/dist/templates/contract-testing/rest-owned/test_pact_consumer.py.ejs +35 -0
  476. package/dist/templates/contract-testing/rest-public/OpenApiDiffIT.java.ejs +44 -0
  477. package/dist/templates/contract-testing/rest-public/export-openapi-java.gradle.ejs +13 -0
  478. package/dist/templates/contract-testing/rest-public/export-openapi.mjs.ejs +21 -0
  479. package/dist/templates/contract-testing/rest-public/export_openapi.go.ejs +30 -0
  480. package/dist/templates/contract-testing/rest-public/export_openapi.py.ejs +27 -0
  481. package/dist/templates/contract-testing/rest-public/export_openapi.rs.ejs +32 -0
  482. package/dist/templates/contract-testing/rest-public/openapi-diff.ts.ejs +42 -0
  483. package/dist/templates/contract-testing/rest-public/openapi_diff_test.go.ejs +35 -0
  484. package/dist/templates/contract-testing/rest-public/openapi_diff_test.rs.ejs +36 -0
  485. package/dist/templates/contract-testing/rest-public/test_openapi_diff.py.ejs +32 -0
  486. package/dist/templates/coverage/.coveragerc.ejs +26 -0
  487. package/dist/templates/coverage/.tarpaulin.toml.ejs +30 -0
  488. package/dist/templates/coverage/Cargo.toml.profile.release.ejs +24 -0
  489. package/dist/templates/coverage/jacoco-maven-setup.md.ejs +72 -0
  490. package/dist/templates/coverage/jacoco.gradle.ejs +49 -0
  491. package/dist/templates/coverage/kover.gradle.ejs +35 -0
  492. package/dist/templates/coverage/vitest.browser.config.ts.ejs +47 -0
  493. package/dist/templates/coverage/vitest.config.ts.ejs +47 -0
  494. package/dist/templates/docs/CODING_STANDARDS.md.ejs +81 -0
  495. package/dist/templates/docs/FEATURE_MATRIX.md.ejs +84 -0
  496. package/dist/templates/docs/GAP.md.ejs +58 -0
  497. package/dist/templates/docs/ISO27001_ANNEX_A.md.ejs +144 -0
  498. package/dist/templates/docs/MASTER_TEST_PLAN.md.ejs +52 -0
  499. package/dist/templates/docs/POST_MERGE_REVIEW_TEMPLATE.md.ejs +63 -0
  500. package/dist/templates/docs/SECURE_CODING_CHECKLIST.md.ejs +61 -0
  501. package/dist/templates/docs/adr/ADR-000_template.md.ejs +28 -0
  502. package/dist/templates/docs/bugs/bug-analysis.md.ejs +47 -0
  503. package/dist/templates/docs/bugs/bug-report.md.ejs +51 -0
  504. package/dist/templates/docs/bugs/bug-verification.md.ejs +42 -0
  505. package/dist/templates/docs/runbooks/deployment.md.ejs +119 -0
  506. package/dist/templates/docs/runbooks/prod-checklist.md.ejs +90 -0
  507. package/dist/templates/docs/runbooks/rollback.md.ejs +124 -0
  508. package/dist/templates/docs/runbooks/troubleshooting.md.ejs +130 -0
  509. package/dist/templates/docs/skeletons/arc42-canvas.md.ejs +46 -0
  510. package/dist/templates/docs/skeletons/arc42-full.md.ejs +59 -0
  511. package/dist/templates/docs/skeletons/decision-registry.md.ejs +38 -0
  512. package/dist/templates/docs/skeletons/er-model.md.ejs +19 -0
  513. package/dist/templates/docs/skeletons/glossary.md.ejs +8 -0
  514. package/dist/templates/docs/skeletons/governance.md.ejs +13 -0
  515. package/dist/templates/docs/skeletons/slo.md.ejs +21 -0
  516. package/dist/templates/docs/skeletons/technical-debt.md.ejs +8 -0
  517. package/dist/templates/docs/skeletons/test-strategy.md.ejs +14 -0
  518. package/dist/templates/docs/skeletons/threat-model-4q.md.ejs +20 -0
  519. package/dist/templates/docs/skeletons/threat-model-stride.md.ejs +22 -0
  520. package/dist/templates/docs/specs/atomic-task-list.md.ejs +57 -0
  521. package/dist/templates/docs/steering/product.md.ejs +44 -0
  522. package/dist/templates/docs/steering/structure.md.ejs +49 -0
  523. package/dist/templates/docs/steering/tech.md.ejs +53 -0
  524. package/dist/templates/documentation/cli-catalog.md.ejs +21 -0
  525. package/dist/templates/e2e/E2E_CONSTITUTION.md.ejs +77 -0
  526. package/dist/templates/e2e/playwright-python/conftest.py.ejs +22 -0
  527. package/dist/templates/e2e/playwright-python/run_axe.py.ejs +99 -0
  528. package/dist/templates/e2e/playwright-python/test_a11y.py.ejs +38 -0
  529. package/dist/templates/e2e/playwright-python/test_smoke.py.ejs +28 -0
  530. package/dist/templates/e2e/playwright-ts/a11y.spec.ts.ejs +20 -0
  531. package/dist/templates/e2e/playwright-ts/render-smoke.spec.ts.ejs +90 -0
  532. package/dist/templates/e2e/playwright-ts/run-axe.ts.ejs +74 -0
  533. package/dist/templates/e2e/smoke-journeys/journeys.spec.ts.ejs +53 -0
  534. package/dist/templates/evidence-files.json.ejs +13 -0
  535. package/dist/templates/frontend/FE_DESIGN_PRINCIPLES.md.ejs +115 -0
  536. package/dist/templates/frontend/FRONTEND_CONSTITUTION.md.ejs +170 -0
  537. package/dist/templates/frontend/design-tokens.json.ejs +107 -0
  538. package/dist/templates/frontend/vrt-setup.md.ejs +83 -0
  539. package/dist/templates/githooks/commit-msg.ejs +60 -0
  540. package/dist/templates/githooks/pre-commit.ejs +95 -0
  541. package/dist/templates/githooks/pre-push.ejs +251 -0
  542. package/dist/templates/githooks/setup-hooks.sh.ejs +8 -0
  543. package/dist/templates/github/PULL_REQUEST_TEMPLATE.md +37 -0
  544. package/dist/templates/github/PULL_REQUEST_TEMPLATE.md.ejs +52 -0
  545. package/dist/templates/github/actions/build-cache/action.yml.ejs +84 -0
  546. package/dist/templates/github/actions/nas-ssh/action.yml.ejs +53 -0
  547. package/dist/templates/github/actions/setup-java-maven/action.yml.ejs +53 -0
  548. package/dist/templates/github/actions/setup-node-pnpm/action.yml.ejs +39 -0
  549. package/dist/templates/github/actions/sign-and-attest/action.yml.ejs +53 -0
  550. package/dist/templates/github/dependabot.yml.ejs +66 -0
  551. package/dist/templates/github/extended-ci-paths.txt.ejs +38 -0
  552. package/dist/templates/github/issue-templates/bug-report.yml +72 -0
  553. package/dist/templates/github/issue-templates/compliance-item.yml.ejs +75 -0
  554. package/dist/templates/github/issue-templates/config.yml +2 -0
  555. package/dist/templates/github/issue-templates/epic.yml +66 -0
  556. package/dist/templates/github/issue-templates/feature-request.yml +24 -0
  557. package/dist/templates/github/issue-templates/task-brief.yml.ejs +125 -0
  558. package/dist/templates/github/labels.yml.ejs +161 -0
  559. package/dist/templates/github/scripts/sticky-failure-issue.sh.ejs +61 -0
  560. package/dist/templates/github/workflows/01-pr-fast.yml.ejs +1089 -0
  561. package/dist/templates/github/workflows/02-pr-extended.yml.ejs +512 -0
  562. package/dist/templates/github/workflows/03-human-approval.yml.ejs +76 -0
  563. package/dist/templates/github/workflows/04-deploy-test.yml.ejs +425 -0
  564. package/dist/templates/github/workflows/05-release.yml.ejs +813 -0
  565. package/dist/templates/github/workflows/06-nightly-lite.yml.ejs +125 -0
  566. package/dist/templates/github/workflows/06-nightly.yml.ejs +25 -0
  567. package/dist/templates/github/workflows/07-weekly-lite.yml.ejs +221 -0
  568. package/dist/templates/github/workflows/07-weekly.yml.ejs +23 -0
  569. package/dist/templates/github/workflows/08-monthly.yml.ejs +23 -0
  570. package/dist/templates/github/workflows/09-heartbeat.yml.ejs +268 -0
  571. package/dist/templates/github/workflows/10-deploy-prod.yml.ejs +144 -0
  572. package/dist/templates/github/workflows/11-k6-on-demand.yml.ejs +43 -0
  573. package/dist/templates/github/workflows/12-mutation-scheduled.yml.ejs +100 -0
  574. package/dist/templates/github/workflows/13-archunit-extended.yml.ejs +33 -0
  575. package/dist/templates/github/workflows/14-license-scan.yml.ejs +45 -0
  576. package/dist/templates/github/workflows/15-codeql.yml.ejs +117 -0
  577. package/dist/templates/github/workflows/16-frontend-quality.yml.ejs +154 -0
  578. package/dist/templates/github/workflows/17-ossf-scorecard.yml.ejs +46 -0
  579. package/dist/templates/github/workflows/18-frontend-lane.yml.ejs +50 -0
  580. package/dist/templates/github/workflows/_ai-draft-check.yml.ejs +44 -0
  581. package/dist/templates/github/workflows/_contract-postman.yml.ejs +93 -0
  582. package/dist/templates/github/workflows/_cosign-copy/aws-ecs.ejs +90 -0
  583. package/dist/templates/github/workflows/_cosign-copy/azure-container-app.ejs +97 -0
  584. package/dist/templates/github/workflows/_cosign-copy/gcp-cloud-run.ejs +102 -0
  585. package/dist/templates/github/workflows/_cosign-copy/ghcr.ejs +76 -0
  586. package/dist/templates/github/workflows/_cosign-copy/nas-compose.ejs +69 -0
  587. package/dist/templates/github/workflows/_deploy/aws-ecs.ejs +78 -0
  588. package/dist/templates/github/workflows/_deploy/azure-container-app.ejs +59 -0
  589. package/dist/templates/github/workflows/_deploy/gcp-cloud-run.ejs +71 -0
  590. package/dist/templates/github/workflows/_deploy/ghcr.ejs +19 -0
  591. package/dist/templates/github/workflows/_deploy/nas-compose.ejs +45 -0
  592. package/dist/templates/github/workflows/_k6-runner.yml.ejs +107 -0
  593. package/dist/templates/github/workflows/_label-on-approve.yml.ejs +44 -0
  594. package/dist/templates/github/workflows/_label-sync.yml.ejs +58 -0
  595. package/dist/templates/github/workflows/_monthly.yml.ejs +343 -0
  596. package/dist/templates/github/workflows/_nightly.yml.ejs +826 -0
  597. package/dist/templates/github/workflows/_notify.yml.ejs +96 -0
  598. package/dist/templates/github/workflows/_partials/macos-keychain-bypass.ejs +6 -0
  599. package/dist/templates/github/workflows/_partials/macos-keychain-restore.ejs +6 -0
  600. package/dist/templates/github/workflows/_partials/scheduled-heavy-jobs.ejs +117 -0
  601. package/dist/templates/github/workflows/_partials/sigstore-preflight.ejs +8 -0
  602. package/dist/templates/github/workflows/_partials/trivy-fs-java.ejs +27 -0
  603. package/dist/templates/github/workflows/_post-merge-notify.yml.ejs +228 -0
  604. package/dist/templates/github/workflows/_pr-staleness.yml.ejs +85 -0
  605. package/dist/templates/github/workflows/_shared-security.yml.ejs +132 -0
  606. package/dist/templates/github/workflows/_sigstore-retry-sign.yml.ejs +102 -0
  607. package/dist/templates/github/workflows/_weekly.yml.ejs +313 -0
  608. package/dist/templates/github/workflows/drift-shadow.yml.ejs +51 -0
  609. package/dist/templates/github/workflows/five-lane/ci.yml.ejs +54 -0
  610. package/dist/templates/github/workflows/five-lane/nightly.yml.ejs +70 -0
  611. package/dist/templates/github/workflows/five-lane/release.yml.ejs +53 -0
  612. package/dist/templates/github/workflows/five-lane/weekly.yml.ejs +72 -0
  613. package/dist/templates/github/workflows/issue-state.yml.ejs +93 -0
  614. package/dist/templates/global-invariants/GLOBAL_INVARIANTS.md.ejs +34 -0
  615. package/dist/templates/governance/RACI.md.ejs +21 -0
  616. package/dist/templates/governance/ci-mental-model.md.ejs +268 -0
  617. package/dist/templates/governance/contract-integrity-policy.md.ejs +116 -0
  618. package/dist/templates/governance/enterprise-compliance-baseline.md.ejs +111 -0
  619. package/dist/templates/governance/evidence-retention.md.ejs +43 -0
  620. package/dist/templates/governance/gdpr-erasure-runbook.md.ejs +165 -0
  621. package/dist/templates/governance/qa-audit-phases.md.ejs +129 -0
  622. package/dist/templates/governance/risk-assessment-template.md.ejs +105 -0
  623. package/dist/templates/governance/risk-register.md.ejs +76 -0
  624. package/dist/templates/governance/solo-dev-exception.md.ejs +96 -0
  625. package/dist/templates/governance/validation-evidence.md.ejs +131 -0
  626. package/dist/templates/infra/azure/containerapp.tpl.yaml.ejs +74 -0
  627. package/dist/templates/infra/nas-compose/deploy.sh.ejs +114 -0
  628. package/dist/templates/integration-testing/AbstractIntegrationTest.java.ejs +36 -0
  629. package/dist/templates/integration-testing/NoH2ArchTest.java.ejs +24 -0
  630. package/dist/templates/integration-testing/conftest.py.ejs +20 -0
  631. package/dist/templates/integration-testing/db_fixture.rs.ejs +48 -0
  632. package/dist/templates/integration-testing/eslint-no-fake-db.json.ejs +19 -0
  633. package/dist/templates/integration-testing/eslint.config.no-fake-db.mjs.ejs +46 -0
  634. package/dist/templates/integration-testing/main_test.go.ejs +53 -0
  635. package/dist/templates/integration-testing/main_test_sqlite.go.ejs +37 -0
  636. package/dist/templates/integration-testing/test-setup.ts.ejs +26 -0
  637. package/dist/templates/integration-testing/testcontainers-deps.gradle.ejs +9 -0
  638. package/dist/templates/java/DeprecationInterceptor.java.ejs +50 -0
  639. package/dist/templates/java/archunit-hexagonal.ejs +69 -0
  640. package/dist/templates/java/modulith/ApplicationModulesTest.java.ejs +21 -0
  641. package/dist/templates/java/modulith/modulith-deps.gradle.ejs +13 -0
  642. package/dist/templates/java/modulith/modulith-maven-setup.md.ejs +21 -0
  643. package/dist/templates/java/pharma/AuditEvent.java.ejs +138 -0
  644. package/dist/templates/java/pharma/AuditMapper.java.ejs +60 -0
  645. package/dist/templates/java/pharma/archunit-pharma.ejs +128 -0
  646. package/dist/templates/kit/GLOBAL_KIT.md.ejs +11 -0
  647. package/dist/templates/kit/dim.md.ejs +33 -0
  648. package/dist/templates/llms-txt.config.json.ejs +22 -0
  649. package/dist/templates/local-wrapper/.env.example.ejs +15 -0
  650. package/dist/templates/local-wrapper/Makefile.ejs +44 -0
  651. package/dist/templates/local-wrapper/run.sh.ejs +5 -0
  652. package/dist/templates/middleware/410-gone-handler.ts.ejs +41 -0
  653. package/dist/templates/middleware/correlation-id.ts.ejs +32 -0
  654. package/dist/templates/middleware/deprecation.ts.ejs +45 -0
  655. package/dist/templates/middleware/error-handler.ts.ejs +73 -0
  656. package/dist/templates/middleware/payload-size-limit.ts.ejs +51 -0
  657. package/dist/templates/mutation/README.md.ejs +67 -0
  658. package/dist/templates/mutation/cargo-mutants.toml.ejs +9 -0
  659. package/dist/templates/mutation/mutmut-config.toml.ejs +7 -0
  660. package/dist/templates/mutation/parse-mutants.mjs.ejs +44 -0
  661. package/dist/templates/mutation/parse-mutmut.py.ejs +44 -0
  662. package/dist/templates/mutation/pitest-l2-setup.md.ejs +66 -0
  663. package/dist/templates/mutation/pitest-maven-setup.md.ejs +64 -0
  664. package/dist/templates/mutation/pitest.gradle.ejs +23 -0
  665. package/dist/templates/mutation/stryker.conf.json.ejs +17 -0
  666. package/dist/templates/observability/setup.md.ejs +495 -0
  667. package/dist/templates/operations/handbook.md.ejs +217 -0
  668. package/dist/templates/perf/bundle-budget.json.ejs +29 -0
  669. package/dist/templates/perf/k6/reports/csv-report.py.ejs +91 -0
  670. package/dist/templates/perf/k6/reports/html-report.py.ejs +114 -0
  671. package/dist/templates/perf/k6/reports/json-report.py.ejs +74 -0
  672. package/dist/templates/perf/k6/scenarios/breakpoint.js.ejs +26 -0
  673. package/dist/templates/perf/k6/scenarios/burst.js.ejs +43 -0
  674. package/dist/templates/perf/k6/scenarios/endurance.js.ejs +36 -0
  675. package/dist/templates/perf/k6/scenarios/load.js.ejs +26 -0
  676. package/dist/templates/perf/k6/scenarios/ramp-down.js.ejs +29 -0
  677. package/dist/templates/perf/k6/scenarios/ramp-up.js.ejs +32 -0
  678. package/dist/templates/perf/k6/scenarios/smoke.js.ejs +23 -0
  679. package/dist/templates/perf/k6/scenarios/soak.js.ejs +26 -0
  680. package/dist/templates/perf/k6/scenarios/spike.js.ejs +29 -0
  681. package/dist/templates/perf/k6/scenarios/steady-state.js.ejs +31 -0
  682. package/dist/templates/perf/k6/scenarios/stress.js.ejs +29 -0
  683. package/dist/templates/perf/k6/scenarios/volume.js.ejs +36 -0
  684. package/dist/templates/perf/k6/seed/test-data.sql.ejs +59 -0
  685. package/dist/templates/perf/lighthouserc.json.ejs +41 -0
  686. package/dist/templates/quality/iso9001/CAPA_LOG.md.ejs +36 -0
  687. package/dist/templates/quality/iso9001/DOCUMENT_CONTROL.md.ejs +36 -0
  688. package/dist/templates/quality/iso9001/REQUIREMENTS_TRACEABILITY.md.ejs +61 -0
  689. package/dist/templates/regulated/overlay.json.ejs +26 -0
  690. package/dist/templates/regulated/regulated-overlay.md.ejs +40 -0
  691. package/dist/templates/resilience/RESILIENCE.md.ejs +310 -0
  692. package/dist/templates/root/.gitignore.ejs +85 -0
  693. package/dist/templates/root/CODEOWNERS.ejs +18 -0
  694. package/dist/templates/root/CONTRIBUTING.md.ejs +62 -0
  695. package/dist/templates/root/SECURITY.md.ejs +19 -0
  696. package/dist/templates/root/TEST_TAXONOMY.md.ejs +100 -0
  697. package/dist/templates/root/commitlint.config.js.ejs +4 -0
  698. package/dist/templates/root/docs/METHOD/CANONICAL_PATHS.md.ejs +24 -0
  699. package/dist/templates/root/docs/METHOD/ENGINEERING_DEFAULTS.md.ejs +136 -0
  700. package/dist/templates/root/docs/METHOD/KNOWLEDGE_MAP.md.ejs +90 -0
  701. package/dist/templates/root/docs/METHOD/PATTERNS_CATALOG.md.ejs +51 -0
  702. package/dist/templates/root/docs/METHOD/REUSE_REGISTRY.md.ejs +26 -0
  703. package/dist/templates/root/docs/METHOD/REUSE_REGISTRY_SPEC.md.ejs +80 -0
  704. package/dist/templates/root/docs/METHOD/SSOT_CORE_SET.md.ejs +62 -0
  705. package/dist/templates/root/docs/METHOD/TRACK_ROUTER.md.ejs +39 -0
  706. package/dist/templates/root/docs/SYSTEM/CANON.md.ejs +359 -0
  707. package/dist/templates/root/docs/SYSTEM/FAIL_CLOSED.md.ejs +171 -0
  708. package/dist/templates/root/editorconfig.ejs +39 -0
  709. package/dist/templates/root/tsconfig.json.ejs +21 -0
  710. package/dist/templates/rust/clippy.toml.ejs +14 -0
  711. package/dist/templates/schemas/milestone.schema.json.ejs +164 -0
  712. package/dist/templates/schemas/rtm-verdict.schema.json.ejs +52 -0
  713. package/dist/templates/schemas/source-record.schema.json.ejs +91 -0
  714. package/dist/templates/schemas/tabletop-evidence.schema.json.ejs +53 -0
  715. package/dist/templates/schemas/use-case.schema.json.ejs +59 -0
  716. package/dist/templates/scripts/apply-branch-protection.mjs.ejs +70 -0
  717. package/dist/templates/scripts/audit-toolchain.mjs.ejs +112 -0
  718. package/dist/templates/scripts/bg-run.sh.ejs +59 -0
  719. package/dist/templates/scripts/capacity-probe.mjs.ejs +147 -0
  720. package/dist/templates/scripts/capture-debt-baseline.mjs.ejs +99 -0
  721. package/dist/templates/scripts/check-acceptance.mjs.ejs +298 -0
  722. package/dist/templates/scripts/check-action-pins.mjs.ejs +215 -0
  723. package/dist/templates/scripts/check-agent-return.mjs.ejs +177 -0
  724. package/dist/templates/scripts/check-all.mjs.ejs +1746 -0
  725. package/dist/templates/scripts/check-anti-fake-green.mjs.ejs +80 -0
  726. package/dist/templates/scripts/check-anti-proforma.mjs.ejs +547 -0
  727. package/dist/templates/scripts/check-api-e2e.mjs.ejs +106 -0
  728. package/dist/templates/scripts/check-arc42-slots.mjs.ejs +25 -0
  729. package/dist/templates/scripts/check-assertion-delta.mjs.ejs +287 -0
  730. package/dist/templates/scripts/check-audit-dry-pass.mjs.ejs +176 -0
  731. package/dist/templates/scripts/check-bundle-size.mjs.ejs +151 -0
  732. package/dist/templates/scripts/check-canonical-paths.mjs.ejs +39 -0
  733. package/dist/templates/scripts/check-ci-tiers.mjs.ejs +111 -0
  734. package/dist/templates/scripts/check-claude-md-lint.mjs.ejs +142 -0
  735. package/dist/templates/scripts/check-collab-mode-wired.mjs.ejs +60 -0
  736. package/dist/templates/scripts/check-commit-footer-rationale.mjs.ejs +170 -0
  737. package/dist/templates/scripts/check-constraint-scan.mjs.ejs +681 -0
  738. package/dist/templates/scripts/check-consumer-audit.mjs.ejs +414 -0
  739. package/dist/templates/scripts/check-continue-on-error.mjs.ejs +227 -0
  740. package/dist/templates/scripts/check-cross-model-review.mjs.ejs +458 -0
  741. package/dist/templates/scripts/check-decision-registry.mjs.ejs +101 -0
  742. package/dist/templates/scripts/check-doc-freshness.mjs.ejs +17 -0
  743. package/dist/templates/scripts/check-doc-links.mjs.ejs +98 -0
  744. package/dist/templates/scripts/check-doc-set.mjs.ejs +18 -0
  745. package/dist/templates/scripts/check-docs.mjs.ejs +71 -0
  746. package/dist/templates/scripts/check-domain-api-surface.mjs.ejs +80 -0
  747. package/dist/templates/scripts/check-drift.mjs.ejs +167 -0
  748. package/dist/templates/scripts/check-duplication.mjs.ejs +45 -0
  749. package/dist/templates/scripts/check-e2e-escalation.mjs.ejs +199 -0
  750. package/dist/templates/scripts/check-e2e-quarantine.mjs.ejs +68 -0
  751. package/dist/templates/scripts/check-emission-parity.mjs.ejs +91 -0
  752. package/dist/templates/scripts/check-exit-code-contract.mjs.ejs +138 -0
  753. package/dist/templates/scripts/check-fail-closed-audit.mjs.ejs +389 -0
  754. package/dist/templates/scripts/check-fe-boundaries.mjs.ejs +184 -0
  755. package/dist/templates/scripts/check-feature-matrix.mjs.ejs +835 -0
  756. package/dist/templates/scripts/check-frontend-lane.mjs.ejs +73 -0
  757. package/dist/templates/scripts/check-grace-window.mjs.ejs +102 -0
  758. package/dist/templates/scripts/check-handoff-doc.mjs.ejs +192 -0
  759. package/dist/templates/scripts/check-hook-routing.mjs.ejs +224 -0
  760. package/dist/templates/scripts/check-image-pins.mjs.ejs +90 -0
  761. package/dist/templates/scripts/check-inline-suppressions.mjs.ejs +153 -0
  762. package/dist/templates/scripts/check-iso9001.mjs.ejs +146 -0
  763. package/dist/templates/scripts/check-knowledge-map.mjs.ejs +49 -0
  764. package/dist/templates/scripts/check-local-ci-parity.mjs.ejs +382 -0
  765. package/dist/templates/scripts/check-m16-handoff.mjs.ejs +112 -0
  766. package/dist/templates/scripts/check-merge-method.mjs.ejs +92 -0
  767. package/dist/templates/scripts/check-milestones.mjs.ejs +678 -0
  768. package/dist/templates/scripts/check-min-test-execution.mjs.ejs +225 -0
  769. package/dist/templates/scripts/check-muted-test.mjs.ejs +270 -0
  770. package/dist/templates/scripts/check-no-stub-redirects.mjs.ejs +154 -0
  771. package/dist/templates/scripts/check-no-tracked-artifacts.mjs.ejs +134 -0
  772. package/dist/templates/scripts/check-oracle-discrimination.mjs.ejs +244 -0
  773. package/dist/templates/scripts/check-pii-scan.mjs.ejs +67 -0
  774. package/dist/templates/scripts/check-pipe-tee-hazard.mjs.ejs +85 -0
  775. package/dist/templates/scripts/check-pr-size-gate.mjs.ejs +85 -0
  776. package/dist/templates/scripts/check-refutation-verdicts.mjs.ejs +256 -0
  777. package/dist/templates/scripts/check-regulated-overlay.mjs.ejs +158 -0
  778. package/dist/templates/scripts/check-render-smoke.mjs.ejs +100 -0
  779. package/dist/templates/scripts/check-reuse-registry.mjs.ejs +44 -0
  780. package/dist/templates/scripts/check-review-completion.mjs.ejs +708 -0
  781. package/dist/templates/scripts/check-safety-adopt-ratchet.mjs.ejs +142 -0
  782. package/dist/templates/scripts/check-secret-presence.mjs.ejs +191 -0
  783. package/dist/templates/scripts/check-secret-scan.mjs.ejs +82 -0
  784. package/dist/templates/scripts/check-skip-critical-e2e.mjs.ejs +142 -0
  785. package/dist/templates/scripts/check-smoke-journeys.mjs.ejs +272 -0
  786. package/dist/templates/scripts/check-solo-reactivation.mjs.ejs +102 -0
  787. package/dist/templates/scripts/check-sources.mjs.ejs +245 -0
  788. package/dist/templates/scripts/check-ssot-core.mjs.ejs +45 -0
  789. package/dist/templates/scripts/check-stack-conformity.mjs.ejs +160 -0
  790. package/dist/templates/scripts/check-stride-traceability.mjs.ejs +101 -0
  791. package/dist/templates/scripts/check-suppression-expiry.mjs.ejs +79 -0
  792. package/dist/templates/scripts/check-suppression-rationale.mjs.ejs +76 -0
  793. package/dist/templates/scripts/check-suppressions.mjs.ejs +150 -0
  794. package/dist/templates/scripts/check-tabletop-evidence.mjs.ejs +499 -0
  795. package/dist/templates/scripts/check-tdd-evidence.mjs.ejs +381 -0
  796. package/dist/templates/scripts/check-test-naming.mjs.ejs +151 -0
  797. package/dist/templates/scripts/check-test-pyramid.mjs.ejs +170 -0
  798. package/dist/templates/scripts/check-test-scope-tier.mjs.ejs +208 -0
  799. package/dist/templates/scripts/check-tier-coverage.mjs.ejs +71 -0
  800. package/dist/templates/scripts/check-todo-max-age.mjs.ejs +205 -0
  801. package/dist/templates/scripts/check-touched-vs-manifest.mjs.ejs +179 -0
  802. package/dist/templates/scripts/check-unwired-guards.mjs.ejs +367 -0
  803. package/dist/templates/scripts/check-use-cases.mjs.ejs +345 -0
  804. package/dist/templates/scripts/check-validator-helptext.mjs.ejs +80 -0
  805. package/dist/templates/scripts/check-wiki-lint.mjs.ejs +162 -0
  806. package/dist/templates/scripts/check-workflow-docs-sync.mjs.ejs +91 -0
  807. package/dist/templates/scripts/check-workflow-job-naming.mjs.ejs +102 -0
  808. package/dist/templates/scripts/check-workflow-perms.mjs.ejs +54 -0
  809. package/dist/templates/scripts/check-workflow-runners.mjs.ejs +87 -0
  810. package/dist/templates/scripts/check-workflow-sha-pinning.mjs.ejs +89 -0
  811. package/dist/templates/scripts/check-workflow-test-integrity.mjs.ejs +235 -0
  812. package/dist/templates/scripts/checks/check-rust-no-unsafe.mjs.ejs +58 -0
  813. package/dist/templates/scripts/checks/check-rust-no-unwrap.mjs.ejs +61 -0
  814. package/dist/templates/scripts/ci-classify-changes.mjs.ejs +119 -0
  815. package/dist/templates/scripts/conformance.mjs.ejs +37 -0
  816. package/dist/templates/scripts/constraint-map.json.ejs +25 -0
  817. package/dist/templates/scripts/debt-lib.mjs.ejs +1015 -0
  818. package/dist/templates/scripts/debt-report.mjs.ejs +199 -0
  819. package/dist/templates/scripts/domain-api-surface.json.ejs +23 -0
  820. package/dist/templates/scripts/done-evidence.mjs.ejs +359 -0
  821. package/dist/templates/scripts/evidence-collect.mjs.ejs +264 -0
  822. package/dist/templates/scripts/evidence-prune.mjs.ejs +96 -0
  823. package/dist/templates/scripts/evidence-rotate.mjs.ejs +53 -0
  824. package/dist/templates/scripts/evidence-writer.sh.ejs +220 -0
  825. package/dist/templates/scripts/gate-registry.yml.ejs +286 -0
  826. package/dist/templates/scripts/gen-doc-index.mjs.ejs +19 -0
  827. package/dist/templates/scripts/gen-gap.mjs.ejs +153 -0
  828. package/dist/templates/scripts/gen-llms-txt.mjs.ejs +18 -0
  829. package/dist/templates/scripts/gen-wiki.mjs.ejs +196 -0
  830. package/dist/templates/scripts/gh-cleanup-expired-artifacts.mjs.ejs +134 -0
  831. package/dist/templates/scripts/gold-audit.mjs.ejs +19 -0
  832. package/dist/templates/scripts/i18n-literal-scanner.mjs.ejs +175 -0
  833. package/dist/templates/scripts/ingest-zap-report.mjs.ejs +107 -0
  834. package/dist/templates/scripts/inject-pact-samples.sh.ejs +96 -0
  835. package/dist/templates/scripts/issue-readiness.mjs.ejs +84 -0
  836. package/dist/templates/scripts/knowledge-map-update.mjs.ejs +32 -0
  837. package/dist/templates/scripts/lib/acceptance-criteria.mjs.ejs +213 -0
  838. package/dist/templates/scripts/lib/agent-return-validate.mjs.ejs +481 -0
  839. package/dist/templates/scripts/lib/coverage-gate.mjs.ejs +54 -0
  840. package/dist/templates/scripts/lib/e2e-reliability.mjs.ejs +207 -0
  841. package/dist/templates/scripts/lib/ephemeral-server.mjs.ejs +148 -0
  842. package/dist/templates/scripts/lib/evidence-binding.mjs.ejs +140 -0
  843. package/dist/templates/scripts/lib/exact-sha-policy.mjs.ejs +233 -0
  844. package/dist/templates/scripts/lib/gate-args.mjs.ejs +20 -0
  845. package/dist/templates/scripts/lib/gate-evidence.mjs.ejs +622 -0
  846. package/dist/templates/scripts/lib/gate-mutex.mjs.ejs +340 -0
  847. package/dist/templates/scripts/lib/glob-walk.mjs.ejs +148 -0
  848. package/dist/templates/scripts/lib/run-helpers.mjs.ejs +416 -0
  849. package/dist/templates/scripts/lib/seed-common.sh.ejs +105 -0
  850. package/dist/templates/scripts/lib/waiter-count.mjs.ejs +62 -0
  851. package/dist/templates/scripts/muted-tests-baseline.json.ejs +4 -0
  852. package/dist/templates/scripts/optional-emissions.json.ejs +117 -0
  853. package/dist/templates/scripts/oracle-discrimination-baseline.json.ejs +6 -0
  854. package/dist/templates/scripts/pid-watch.sh.ejs +78 -0
  855. package/dist/templates/scripts/pii-scan.mjs.ejs +125 -0
  856. package/dist/templates/scripts/pr-merge-watch.mjs.ejs +445 -0
  857. package/dist/templates/scripts/record-agent-return.mjs.ejs +279 -0
  858. package/dist/templates/scripts/record-journey-evidence.mjs.ejs +69 -0
  859. package/dist/templates/scripts/rework-log.mjs.ejs +172 -0
  860. package/dist/templates/scripts/run-postman-tests.sh.ejs +112 -0
  861. package/dist/templates/scripts/schemas/agent-return-external.schema.json +74 -0
  862. package/dist/templates/scripts/schemas/agent-return.schema.json.ejs +181 -0
  863. package/dist/templates/scripts/schemas/cross-model-dispatch.schema.json +95 -0
  864. package/dist/templates/scripts/seed-test-data.sh.ejs +99 -0
  865. package/dist/templates/scripts/self-validation.mjs.ejs +126 -0
  866. package/dist/templates/scripts/setup-repo.sh.ejs +78 -0
  867. package/dist/templates/scripts/spotbugs-baseline.json.ejs +4 -0
  868. package/dist/templates/scripts/test-gate-layering.mjs.ejs +92 -0
  869. package/dist/templates/scripts/validate-api-snapshots.mjs.ejs +86 -0
  870. package/dist/templates/scripts/validate-k6-scenarios.mjs.ejs +96 -0
  871. package/dist/templates/scripts/validate-openapi-field-types.mjs.ejs +124 -0
  872. package/dist/templates/scripts/validate-postman-collection.mjs.ejs +159 -0
  873. package/dist/templates/scripts/verify-fe-coverage.mjs.ejs +138 -0
  874. package/dist/templates/scripts/verify-i18n-parity.mjs.ejs +114 -0
  875. package/dist/templates/scripts/verify-module-coverage.mjs.ejs +207 -0
  876. package/dist/templates/scripts/verify-mutation-baseline.mjs.ejs +209 -0
  877. package/dist/templates/scripts/verify-spotbugs.mjs.ejs +216 -0
  878. package/dist/templates/scripts/verify-tokens.mjs.ejs +177 -0
  879. package/dist/templates/security/RISK_ASSESSMENT.md.ejs +35 -0
  880. package/dist/templates/security/STRIDE.md.ejs +24 -0
  881. package/dist/templates/security/gitleaks.toml.ejs +21 -0
  882. package/dist/templates/security/zap/baseline-auth.context.ejs +58 -0
  883. package/dist/templates/security/zap/rules.tsv.ejs +100 -0
  884. package/dist/templates/ship/TICK_PROMPT.md.ejs +55 -0
  885. package/dist/templates/ship/supervisor.sh.ejs +46 -0
  886. package/dist/templates/smoke-journeys/manifest.json.ejs +1 -0
  887. package/dist/templates/sonar-project.properties.ejs +25 -0
  888. package/dist/templates/standards/doc-profile.ejs +27 -0
  889. package/dist/templates/standards/gold-doc-set.yml.ejs +528 -0
  890. package/dist/templates/standards/gold-registry.java.yml.ejs +266 -0
  891. package/dist/templates/standards/gold-registry.typescript.yml.ejs +104 -0
  892. package/dist/templates/standards/gold-registry.yml.ejs +119 -0
  893. package/dist/templates/standards/thresholds.yml.ejs +86 -0
  894. package/dist/templates/static-analysis/.dependency-cruiser.cjs.ejs +78 -0
  895. package/dist/templates/static-analysis/.golangci.yml.ejs +70 -0
  896. package/dist/templates/static-analysis/.shellcheckrc.ejs +13 -0
  897. package/dist/templates/static-analysis/.yamllint.yml.ejs +41 -0
  898. package/dist/templates/static-analysis/checkstyle.xml.ejs +83 -0
  899. package/dist/templates/static-analysis/detekt.yml.ejs +26 -0
  900. package/dist/templates/static-analysis/eslint.config.mjs.ejs +54 -0
  901. package/dist/templates/static-analysis/eslint.config.static.mjs.ejs +38 -0
  902. package/dist/templates/static-analysis/eslintrc-static.json.ejs +30 -0
  903. package/dist/templates/static-analysis/jscpd.json.ejs +25 -0
  904. package/dist/templates/static-analysis/knip.json.ejs +26 -0
  905. package/dist/templates/static-analysis/pmd-ruleset.xml.ejs +92 -0
  906. package/dist/templates/static-analysis/prettierignore.ejs +59 -0
  907. package/dist/templates/static-analysis/prettierrc.json.ejs +10 -0
  908. package/dist/templates/static-analysis/requirements-dev.txt.ejs +11 -0
  909. package/dist/templates/static-analysis/ruff.toml.ejs +40 -0
  910. package/dist/templates/static-analysis/rustfmt.toml.ejs +3 -0
  911. package/dist/templates/static-analysis/spotbugs-exclude.xml.ejs +120 -0
  912. package/dist/templates/static-analysis/spotbugs.gradle.ejs +18 -0
  913. package/dist/templates/static-analysis/spotless.gradle.ejs +38 -0
  914. package/dist/templates/static-analysis/stylelintrc.json.ejs +16 -0
  915. package/dist/templates/suppressions/archunit-baseline.json.ejs +1 -0
  916. package/dist/templates/suppressions/consumer-audit-allowlist.json.ejs +1 -0
  917. package/dist/templates/suppressions/gitleaksignore.ejs +20 -0
  918. package/dist/templates/suppressions/pii-allowlist.json.ejs +1 -0
  919. package/dist/templates/suppressions/suppressions-schema.json.ejs +39 -0
  920. package/dist/templates/suppressions/trivyignore.ejs +17 -0
  921. package/dist/templates/testing/test-taxonomy.md.ejs +120 -0
  922. package/dist/test/example.behavioral.test.js +2 -0
  923. package/dist/types/memory.d.ts +19 -0
  924. package/dist/types/memory.js +1 -0
  925. package/dist/types/plan.d.ts +102 -0
  926. package/dist/types/plan.js +2 -0
  927. package/dist/types/plugin.d.ts +45 -0
  928. package/dist/types/plugin.js +1 -0
  929. package/dist/utils/canon-loader.js +2 -0
  930. package/dist/utils/channel.js +1 -0
  931. package/dist/utils/config.d.ts +79 -0
  932. package/dist/utils/config.js +5 -0
  933. package/dist/utils/confirm-downgrade.js +5 -0
  934. package/dist/utils/env.js +2 -0
  935. package/dist/utils/error-catalog.js +2 -0
  936. package/dist/utils/errors.js +2 -0
  937. package/dist/utils/evidence-log.js +3 -0
  938. package/dist/utils/file-lock.js +2 -0
  939. package/dist/utils/first-run.js +8 -0
  940. package/dist/utils/fs.js +3 -0
  941. package/dist/utils/github-issue-helper.js +4 -0
  942. package/dist/utils/gradle.js +21 -0
  943. package/dist/utils/json-output.js +2 -0
  944. package/dist/utils/logger-config.js +4 -0
  945. package/dist/utils/logger.js +3 -0
  946. package/dist/utils/maturity-check.js +2 -0
  947. package/dist/utils/pkg.js +3 -0
  948. package/dist/utils/platform.js +2 -0
  949. package/dist/utils/plugin-loader.js +2 -0
  950. package/dist/utils/plugin-worker.js +2 -0
  951. package/dist/utils/prettier-format.js +2 -0
  952. package/dist/utils/profiler.js +2 -0
  953. package/dist/utils/render.js +2 -0
  954. package/dist/utils/replay.js +3 -0
  955. package/dist/utils/run-cli.js +6 -0
  956. package/dist/utils/run-id.js +3 -0
  957. package/dist/utils/safe-read.js +2 -0
  958. package/dist/utils/task-id.js +2 -0
  959. package/dist/utils/today.js +2 -0
  960. package/dist/utils/tty.js +2 -0
  961. package/dist/utils/walk-dir.js +2 -0
  962. package/dist/verify/rules/drive-by-scope.js +1 -0
  963. package/dist/verify/rules/orphan-todos.js +1 -0
  964. package/dist/verify/rules/registry.js +1 -0
  965. package/dist/verify/rules/skip-patterns.js +1 -0
  966. package/dist/verify/rules/types.d.ts +15 -0
  967. package/dist/verify/rules/types.js +1 -0
  968. package/dist/verify/rules/ui-language.js +1 -0
  969. package/dist/verify/run.js +3 -0
  970. package/dist/wizard/archetype-defaults.js +1 -0
  971. package/dist/wizard/presets.js +1 -0
  972. package/dist/wizard/prompts.js +44 -0
  973. package/dist/wizard/types.d.ts +637 -0
  974. package/dist/wizard/types.js +1 -0
  975. package/dist/worktree/harvest.js +2 -0
  976. package/dist/worktree/links.js +2 -0
  977. package/dist/worktree/paths.js +2 -0
  978. package/dist/worktree/validate.js +3 -0
  979. package/package.json +124 -0
  980. package/scripts/check-arc42-slots.mjs +738 -0
  981. package/scripts/check-doc-freshness.mjs +236 -0
  982. package/scripts/check-doc-set.mjs +243 -0
  983. package/scripts/check-doc-style.mjs +228 -0
  984. package/scripts/gold-audit.mjs +319 -0
  985. package/scripts/lib/doc-gate-allowlist.mjs +123 -0
  986. package/scripts/lib/doc-set-resolve.mjs +274 -0
  987. package/scripts/lib/glob-walk.mjs +148 -0
  988. package/scripts/lib/gold-audit-lib.mjs +1260 -0
  989. package/scripts/lib/run-helpers.mjs +413 -0
@@ -0,0 +1,47 @@
1
+ <%
2
+ // #1127: Vitest browser-mode config for component testing with real Chromium.
3
+ // Uses Playwright as the browser provider for true DOM rendering (not jsdom).
4
+ const _fw = (typeof frontend !== 'undefined' && frontend && frontend.framework)
5
+ ? frontend.framework : 'react'
6
+ %>
7
+ // vitest.browser.config.ts — generated by arbiter (#1127)
8
+ // Vitest Browser Mode — real Chromium via Playwright provider.
9
+ // Runs component tests in a real browser environment (not jsdom).
10
+ // See docs/GOVERNANCE/FE_DESIGN_PRINCIPLES.md P7 (Visual Verification).
11
+ // Run: npx vitest --config vitest.browser.config.ts
12
+
13
+ import { defineConfig } from 'vitest/config'
14
+ <% if (_fw === 'vue') { %>
15
+ import vue from '@vitejs/plugin-vue'
16
+ <% } else if (_fw === 'svelte') { %>
17
+ import { svelte } from '@sveltejs/vite-plugin-svelte'
18
+ <% } else { %>
19
+ import react from '@vitejs/plugin-react'
20
+ <% } %>
21
+
22
+ export default defineConfig({
23
+ plugins: [
24
+ <% if (_fw === 'vue') { %>
25
+ vue(),
26
+ <% } else if (_fw === 'svelte') { %>
27
+ svelte(),
28
+ <% } else { %>
29
+ react(),
30
+ <% } %>
31
+ ],
32
+ test: {
33
+ // Use Playwright for real Chromium — not jsdom
34
+ browser: {
35
+ enabled: true,
36
+ name: 'chromium',
37
+ provider: 'playwright',
38
+ headless: true,
39
+ },
40
+ // Component tests under src/ — exclude unit tests (vitest.config.ts handles those)
41
+ include: ['src/**/*.browser.test.{ts,tsx,vue,svelte}'],
42
+ // VRT: screenshot comparison via toMatchScreenshot
43
+ // Baselines stored in __tests__/screenshots/
44
+ // Capture: npx vitest --config vitest.browser.config.ts --update-snapshots
45
+ setupFiles: ['./vitest.browser.setup.ts'],
46
+ },
47
+ })
@@ -0,0 +1,47 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ export default defineConfig({
4
+ test: {
5
+ coverage: {
6
+ provider: 'v8',
7
+ // json-summary writes coverage/coverage-summary.json, which the gate's
8
+ // greenfield-aware coverage check (scripts/lib/coverage-gate.mjs, #1319.8)
9
+ // parses at runtime to distinguish "no executable statements" from a real
10
+ // threshold miss.
11
+ reporter: ['text', 'html', 'lcov', 'json-summary'],
12
+ reportsDirectory: './coverage',
13
+ include: ['src/**'],
14
+ // Curated exclude list (#353, Phase 7A — prior-project parity).
15
+ // Every entry is intentionally excluded with a rationale; do NOT add
16
+ // bare paths. A future lint (`check-coverage-excludes-rationale.mjs`)
17
+ // will enforce the comment-per-entry rule.
18
+ exclude: [
19
+ // Generated type definitions — no executable code to cover.
20
+ '**/*.d.ts',
21
+ // Config files (vitest, eslint, tsup, etc.) — bootstrap-only, untestable.
22
+ '**/*.config.*',
23
+ // Barrel exports — re-export only; coverage is double-counted via the
24
+ // re-exported symbols themselves.
25
+ '**/index.ts',
26
+ // Test files exclude themselves by convention; listed for clarity.
27
+ '**/*.test.ts',
28
+ '**/*.spec.ts',
29
+ ],
30
+ thresholds: {
31
+ // thresholdAutoUpdate:false prevents vitest from silently lowering the
32
+ // floor when coverage drops between runs — regressions must be an
33
+ // explicit edit, never auto-applied (#353, INV-30 spirit).
34
+ thresholdAutoUpdate: false,
35
+ // #1527 — all four keys mirror the SAME resolved floor as the check-all
36
+ // gate. `lines`/`functions`/`statements` share the line-coverage value
37
+ // (no mixed SSOT); `branches` uses the branch floor. The generator
38
+ // (src/generators/coverage.ts) overrides `thresholds` with the resolved
39
+ // values, so this never disagrees with the gate.
40
+ lines: <%= locals.thresholds ? locals.thresholds.lineCoverage : coverageThreshold %>,
41
+ functions: <%= locals.thresholds ? locals.thresholds.lineCoverage : coverageThreshold %>,
42
+ branches: <%= locals.thresholds ? locals.thresholds.branchCoverage : coverageThreshold %>,
43
+ statements: <%= locals.thresholds ? locals.thresholds.lineCoverage : coverageThreshold %>,
44
+ },
45
+ },
46
+ },
47
+ });
@@ -0,0 +1,81 @@
1
+ # Coding Standards
2
+
3
+ _Generated by arbiter. Update to match your team's conventions._
4
+
5
+ ## General
6
+
7
+ - Prefer immutable variables (const/val/final)
8
+ - Functions should have a single responsibility
9
+ - No magic numbers — use named constants
10
+ - Maximum cyclomatic complexity: 15
11
+
12
+ <% if (language === 'typescript') { %>
13
+ ## TypeScript
14
+
15
+ - `strict: true` in tsconfig — mandatory
16
+ - No `any` type — use `unknown` and narrow, or create proper types
17
+ - Named exports preferred over default exports
18
+ - File naming: kebab-case.ts
19
+ - Linting: ESLint with `@typescript-eslint` ruleset
20
+ - Dead code: Knip (zero unused exports)
21
+ - Coverage threshold: 80% lines
22
+
23
+ <% } %>
24
+ <% if (language === 'java' || language === 'kotlin') { %>
25
+ ## JVM
26
+
27
+ - Static analysis: SpotBugs — zero HIGH/CRITICAL findings
28
+ - Coverage: JaCoCo — 80% line coverage minimum
29
+ - Style: Checkstyle — Google Java Style Guide
30
+ - No raw types — use generics
31
+ - Checked exceptions only when caller must handle them
32
+ <% if (hasPublicApi) { %>
33
+ ### Payload Size Limiting (API projects)
34
+
35
+ Spring Boot does not enforce a request body size limit by default. Add a
36
+ `OncePerRequestFilter` (or set `spring.servlet.multipart.max-request-size` for
37
+ multipart) to reject oversized payloads before they reach the controller layer.
38
+ Return HTTP 413 with an RFC 7807 problem-details body (`type`, `title`,
39
+ `status`, `detail`, `instance`). See the TypeScript reference implementation in
40
+ `src/middleware/payload-size-limit.ts` for the expected response shape.
41
+ <% } %>
42
+ <% } %>
43
+ <% if (language === 'python') { %>
44
+ ## Python
45
+
46
+ - Type hints mandatory on all public functions (PEP 484)
47
+ - Black + isort for formatting (no manual exceptions)
48
+ - pylint/flake8 zero warnings
49
+ - Coverage threshold: 80% (pytest-cov)
50
+ - Docstrings for all public modules, classes, and functions (Google style)
51
+
52
+ <% } %>
53
+ <% if (language === 'go') { %>
54
+ ## Go
55
+
56
+ - `go vet` and `staticcheck` — zero warnings
57
+ - `gofmt` applied before every commit
58
+ - Error wrapping: `fmt.Errorf("...: %w", err)` — no bare `errors.New`
59
+ - Coverage threshold: 80% (go test -cover)
60
+ - No global mutable state
61
+
62
+ <% } %>
63
+ <% if (language === 'rust') { %>
64
+ ## Rust
65
+
66
+ - `clippy` at deny level — zero warnings
67
+ - No `unwrap()` in production code — use `?` or handle explicitly
68
+ - `rustfmt` applied before every commit
69
+ - Coverage threshold: 80% (cargo-tarpaulin or similar)
70
+ - Prefer `thiserror` for error types
71
+
72
+ <% } %>
73
+ <% if (isL3Plus) { %>
74
+ ## L3 Governance
75
+
76
+ - All public APIs must have OpenAPI/Swagger documentation
77
+ - Breaking changes require an ADR
78
+ - Architectural decision records: `docs/adr/`
79
+ - Security review required for any auth, crypto, or external boundary changes
80
+
81
+ <% } %>
@@ -0,0 +1,84 @@
1
+ # FEATURE_MATRIX — Product Truth RTM
2
+
3
+ _Generated by arbiter at governance level <%= governanceLevel %>. This is your project's
4
+ Product-Truth bible: the single authoritative record of what this project delivers, at what
5
+ level, with what evidence. Update this file as your implementation matures._
6
+
7
+ > **Gate:** `scripts/check-feature-matrix.mjs --check` (L1, fail-closed). Run
8
+ > `node scripts/check-feature-matrix.mjs --write` to regenerate the summary section.
9
+ >
10
+ > **Export:** (planned) CSV/XLSX export for PM/stakeholder views — not yet shipped as a CLI command.
11
+
12
+ ---
13
+
14
+ ## Status vocabulary
15
+
16
+ | Status | Meaning | Required fields |
17
+ |--------|---------|-----------------|
18
+ | `Missing` | No implementation — tracked by issue | `issue_ref` in `#NNN` format |
19
+ | `Partial` | Code exists; test/doc incomplete | `code_ref` non-empty |
20
+ | `Done` | Code + test + doc all present | `code_ref` + `test_ref` + `doc_ref` non-empty and files exist |
21
+ | `Verified` | Full evidence chain — gate-checked | all four refs non-empty, `test_ref` title parsed |
22
+
23
+ Promotion is fail-closed (cannot skip a step).
24
+
25
+ `source_ref` (optional, 11th column): upward anchor(s) toward the
26
+ requirement's origin (`INV-NN`, `ADR-NNN`, `PRD §N(.M)*`, comma-separated).
27
+ Validated whenever non-empty, regardless of status. Non-canonical forms (an
28
+ issue reference, free prose, a legacy-declared anchor) are format-only and
29
+ never resolved (no false red). `test_ref` glob patterns (`*`/`**`) are
30
+ banned on `Done`/`Verified` rows unless grandfathered in the committed
31
+ ratchet baseline (`.feature-matrix-glob-baseline.json`, regenerated
32
+ deliberately via `--update-baseline`); a `Verified` row is never
33
+ baseline-exemptible.
34
+
35
+ `verification_tier` (optional, 12th column): `SCAFFOLD` | `GATE` | `E2E` —
36
+ the kind of proof this row needs to be fully qualified, independent of
37
+ `status` (a `Missing`/`Partial` row can correctly declare the tier its
38
+ eventual test must clear). `SCAFFOLD` = `arbiter init`/`update` produces the
39
+ expected artifact; `GATE` = your own L1/L2 unit+integration suite; `E2E` =
40
+ a real run of the generated project's own gate. Validated (enum only)
41
+ whenever non-empty.
42
+
43
+ ---
44
+
45
+ <!-- FEATURE_MATRIX_START -->
46
+ | feature_id | capability | kit_dims | level | status | code_ref | test_ref | doc_ref | issue_ref | note | source_ref | verification_tier |
47
+ |---|---|---|---|---|---|---|---|---|---|---|---|
48
+ | REQ-001 | Architecture enforcement | N01,N02,N03,N04,N05,N06,N07 | L2 | Missing | | | | #1 | Replace with your architecture enforcement ref |
49
+ | REQ-002 | Static analysis & linting | N09,N10,N11,N12,N13,N14,N15,N16 | L2 | Missing | | | | #2 | Replace with your static analysis ref |
50
+ | REQ-003 | Test framework | N17,N18,N19,N20,N21,N22,N23 | L2 | Missing | | | | #3 | Replace with your test framework ref |
51
+ | REQ-004 | Test profiles & coverage | N24,N25,N26 | L2 | Missing | | | | #4 | Replace with your coverage ref |
52
+ | REQ-005 | Integration & mutation testing | N27,N28,N29,N30,N31,N32,N33 | L2 | Missing | | | | #5 | Replace with your integration test ref |
53
+ | REQ-006 | CI/CD pipeline | N34,N35,N36,N37,N38,N39,N40 | L2 | Missing | | | | #6 | Replace with your CI/CD ref |
54
+ | REQ-007 | E2E & performance | N41,N42,N43,N44 | L2 | Missing | | | | #7 | Replace with your E2E ref |
55
+ | REQ-008 | Gate script validation | N45,N46,N47,N48,N49,N50 | L2 | Missing | | | | #8 | Replace with your gate scripts ref |
56
+ | REQ-009 | Quality gate scripts | N51,N52,N53,N54 | L2 | Missing | | | | #9 | Replace with your quality gates ref |
57
+ | REQ-010 | Security toolchain | N55,N56,N57,N58 | L2 | Missing | | | | #10 | Replace with your security ref |
58
+ | REQ-011 | Git/GitHub governance | N59,N60,N61,N62 | L2 | Missing | | | | #11 | Replace with your git governance ref |
59
+ | REQ-012 | Documentation | N63,N64,N65,N66,N67,N68 | L2 | Missing | | | | #12 | Replace with your docs ref |
60
+ | REQ-013 | Configuration | N69,N70,N71,N72 | L1 | Missing | | | | #13 | Replace with your config ref |
61
+ | REQ-014 | Module boundaries | N77 | L2 | Missing | | | | #14 | Replace with your boundary ref |
62
+ | REQ-015 | Audit trail | N08,N73,N74,N75 | L4 | Missing | | | | #15 | Replace with your audit trail ref |
63
+ | REQ-016 | Accessibility | N76 | L2 | Missing | | | | #16 | Replace with your a11y ref |
64
+ <!-- FEATURE_MATRIX_END -->
65
+
66
+ ---
67
+
68
+ ## Summary
69
+
70
+ | Status | Count |
71
+ |---|---|
72
+ | Verified | 0 |
73
+ | Done | 0 |
74
+ | Partial | 0 |
75
+ | Missing | 16 |
76
+ | **Total** | **16** |
77
+
78
+ ---
79
+
80
+ ## Version history
81
+
82
+ | Version | Date | Changes |
83
+ |---|---|---|
84
+ | 1.0.0 | Initial | Scaffolded by arbiter at <%= governanceLevel %> |
@@ -0,0 +1,58 @@
1
+ # GAP — Gap Register
2
+
3
+ _Generated by arbiter at governance level <%= governanceLevel %>. This is your project's
4
+ gap register: a derived view of what is incomplete per docs/FEATURE_MATRIX.md.
5
+ Update your FEATURE_MATRIX and run `node scripts/gen-gap.mjs --write` to refresh._
6
+
7
+ > **Gate:** `node scripts/gen-gap.mjs --check` (L2+, fail-closed) — every Partial/Missing
8
+ > feature_id in `docs/FEATURE_MATRIX.md` must be tracked below. Run
9
+ > `node scripts/gen-gap.mjs --write` to regenerate the Feature Gaps table.
10
+
11
+ ---
12
+
13
+ <!-- GAP_START -->
14
+
15
+ ## Feature Gaps
16
+
17
+ `blocks_v1: yes` marks a `Missing`-status row (no implementation yet, tracked by issue).
18
+
19
+ <!-- GAP_FEATURES_START -->
20
+
21
+ | feature_id | capability | status | severity | blocks_v1 | issue | notes |
22
+ | --- | --- | --- | --- | --- | --- | --- |
23
+ | REQ-001 | Architecture enforcement | Missing | high | yes | #1 | Replace with your architecture enforcement ref |
24
+ | REQ-002 | Static analysis & linting | Missing | high | yes | #2 | Replace with your static analysis ref |
25
+ | REQ-003 | Test framework | Missing | high | yes | #3 | Replace with your test framework ref |
26
+ | REQ-004 | Test profiles & coverage | Missing | high | yes | #4 | Replace with your coverage ref |
27
+ | REQ-005 | Integration & mutation testing | Missing | high | yes | #5 | Replace with your integration test ref |
28
+ | REQ-006 | CI/CD pipeline | Missing | high | yes | #6 | Replace with your CI/CD ref |
29
+ | REQ-007 | E2E & performance | Missing | high | yes | #7 | Replace with your E2E ref |
30
+ | REQ-008 | Gate script validation | Missing | high | yes | #8 | Replace with your gate scripts ref |
31
+ | REQ-009 | Quality gate scripts | Missing | high | yes | #9 | Replace with your quality gates ref |
32
+ | REQ-010 | Security toolchain | Missing | high | yes | #10 | Replace with your security ref |
33
+ | REQ-011 | Git/GitHub governance | Missing | high | yes | #11 | Replace with your git governance ref |
34
+ | REQ-012 | Documentation | Missing | high | yes | #12 | Replace with your docs ref |
35
+ | REQ-013 | Configuration | Missing | high | yes | #13 | Replace with your config ref |
36
+ | REQ-014 | Module boundaries | Missing | high | yes | #14 | Replace with your boundary ref |
37
+ | REQ-015 | Audit trail | Missing | high | yes | #15 | Replace with your audit trail ref |
38
+ | REQ-016 | Accessibility | Missing | high | yes | #16 | Replace with your a11y ref |
39
+
40
+ <!-- GAP_FEATURES_END -->
41
+
42
+ ## Known Debt
43
+
44
+ Not tracked by the portable gate (`scripts/gen-gap.mjs`) — arbiter's own richer register also
45
+ cross-references constraint-scan output and convergence reports, which have no stable
46
+ equivalent in an arbitrary target project. Track debt as GitHub issues / your own backlog.
47
+
48
+ <!-- GAP_END -->
49
+
50
+ ---
51
+
52
+ ## Usage
53
+
54
+ Run `node scripts/gen-gap.mjs --write` to regenerate the Feature Gaps table from
55
+ `docs/FEATURE_MATRIX.md`. `--check` fails if a Partial/Missing feature_id has been
56
+ dropped from this file without being resolved in the matrix first.
57
+
58
+ Governance level: **<%= governanceLevel %>**
@@ -0,0 +1,144 @@
1
+ # ISO 27001:2022 Annex A Control Matrix
2
+
3
+ **Project:** <%= projectName %>
4
+ **Generated by:** arbiter (L3 governance)
5
+ **Last updated:** <%= new Date().toISOString().slice(0,10) %>
6
+
7
+ This matrix maps all 93 ISO 27001:2022 Annex A controls to project coverage.
8
+ Controls marked ✅ are satisfied by arbiter-generated artifacts. Controls marked ❌ require manual implementation.
9
+
10
+ ## Summary
11
+
12
+ | Section | Controls | Covered | Gap |
13
+ |---------|----------|---------|-----|
14
+ | A.5 Organizational | 37 | 4 | 33 |
15
+ | A.6 People | 8 | 0 | 8 |
16
+ | A.7 Physical | 14 | 0 | 14 |
17
+ | A.8 Technological | 34 | 8 | 26 |
18
+ | **Total** | **93** | **12** | **81** |
19
+
20
+ ---
21
+
22
+ ## A.5 — Organizational Controls
23
+
24
+ | Control | Title | Status | Evidence |
25
+ |---------|-------|--------|----------|
26
+ | A.5.1 | Policies for information security | ❌ Gap | Manual: define security policy |
27
+ | A.5.2 | Information security roles and responsibilities | ✅ Covered | CODEOWNERS, AGENTS.md §Authority Hierarchy |
28
+ | A.5.3 | Segregation of duties | ❌ Gap | Manual: org-level process |
29
+ | A.5.4 | Management responsibilities | ❌ Gap | Manual |
30
+ | A.5.5 | Contact with authorities | ❌ Gap | Manual |
31
+ | A.5.6 | Contact with special interest groups | ❌ Gap | Manual |
32
+ | A.5.7 | Threat intelligence | ❌ Gap | Manual |
33
+ | A.5.8 | Information security in project management | ❌ Gap | Manual |
34
+ | A.5.9 | Inventory of information and other associated assets | ❌ Gap | Manual |
35
+ | A.5.10 | Acceptable use of information and other assets | ❌ Gap | Manual |
36
+ | A.5.11 | Return of assets | ❌ Gap | Manual |
37
+ | A.5.12 | Classification of information | ❌ Gap | Manual |
38
+ | A.5.13 | Labelling of information | ❌ Gap | Manual |
39
+ | A.5.14 | Information transfer | ❌ Gap | Manual |
40
+ | A.5.15 | Access control | ❌ Gap | Manual |
41
+ | A.5.16 | Identity management | ❌ Gap | Manual |
42
+ | A.5.17 | Authentication information | ❌ Gap | Manual |
43
+ | A.5.18 | Access rights | ❌ Gap | Manual |
44
+ | A.5.19 | Information security in supplier relationships | ❌ Gap | Manual |
45
+ | A.5.20 | Addressing information security within supplier agreements | ❌ Gap | Manual |
46
+ | A.5.21 | Managing information security in the ICT supply chain | ❌ Gap | Manual |
47
+ | A.5.22 | Monitoring, review, and change management of supplier services | ❌ Gap | Manual |
48
+ | A.5.23 | Information security for use of cloud services | ❌ Gap | Manual |
49
+ | A.5.24 | Information security incident management planning and preparation | ❌ Gap | Manual |
50
+ | A.5.25 | Assessment and decision on information security events | ❌ Gap | Manual |
51
+ | A.5.26 | Response to information security incidents | ❌ Gap | Manual |
52
+ | A.5.27 | Learning from information security incidents | ❌ Gap | Manual |
53
+ | A.5.28 | Collection of evidence | ❌ Gap | Manual |
54
+ | A.5.29 | Information security during disruption | ❌ Gap | Manual |
55
+ | A.5.30 | ICT readiness for business continuity | ❌ Gap | Manual |
56
+ | A.5.31 | Legal, statutory, regulatory, and contractual requirements | ❌ Gap | Manual |
57
+ | A.5.32 | Intellectual property rights | ❌ Gap | Manual |
58
+ | A.5.33 | Protection of records | ❌ Gap | Manual |
59
+ | A.5.34 | Privacy and protection of PII | ✅ Covered | scripts/pii-scan.mjs + suppressions/pii-allowlist.json |
60
+ | A.5.35 | Independent review of information security | ❌ Gap | Manual |
61
+ | A.5.36 | Compliance with policies, rules, and standards | ✅ Covered | AGENTS.md invariants + check-all gate |
62
+ | A.5.37 | Documented operating procedures | ✅ Covered | AGENTS.md, docs/CODING_STANDARDS.md |
63
+
64
+ ---
65
+
66
+ ## A.6 — People Controls
67
+
68
+ | Control | Title | Status | Evidence |
69
+ |---------|-------|--------|----------|
70
+ | A.6.1 | Screening | ❌ Gap | Manual: HR process |
71
+ | A.6.2 | Terms and conditions of employment | ❌ Gap | Manual: HR process |
72
+ | A.6.3 | Information security awareness, education and training | ❌ Gap | Manual |
73
+ | A.6.4 | Disciplinary process | ❌ Gap | Manual: HR process |
74
+ | A.6.5 | Responsibilities after termination or change of employment | ❌ Gap | Manual: HR process |
75
+ | A.6.6 | Confidentiality or non-disclosure agreements | ❌ Gap | Manual: legal |
76
+ | A.6.7 | Remote working | ❌ Gap | Manual: policy |
77
+ | A.6.8 | Information security event reporting | ❌ Gap | Manual: incident process |
78
+
79
+ ---
80
+
81
+ ## A.7 — Physical Controls
82
+
83
+ | Control | Title | Status | Evidence |
84
+ |---------|-------|--------|----------|
85
+ | A.7.1 | Physical security perimeters | ❌ Gap | Manual: facilities |
86
+ | A.7.2 | Physical entry | ❌ Gap | Manual: facilities |
87
+ | A.7.3 | Securing offices, rooms and facilities | ❌ Gap | Manual: facilities |
88
+ | A.7.4 | Physical security monitoring | ❌ Gap | Manual: facilities |
89
+ | A.7.5 | Protecting against physical and environmental threats | ❌ Gap | Manual: facilities |
90
+ | A.7.6 | Working in secure areas | ❌ Gap | Manual: policy |
91
+ | A.7.7 | Clear desk and clear screen | ❌ Gap | Manual: policy |
92
+ | A.7.8 | Equipment siting and protection | ❌ Gap | Manual: facilities |
93
+ | A.7.9 | Security of assets off-premises | ❌ Gap | Manual: policy |
94
+ | A.7.10 | Storage media | ❌ Gap | Manual: policy |
95
+ | A.7.11 | Supporting utilities | ❌ Gap | Manual: facilities |
96
+ | A.7.12 | Cabling security | ❌ Gap | Manual: facilities |
97
+ | A.7.13 | Equipment maintenance | ❌ Gap | Manual: facilities |
98
+ | A.7.14 | Secure disposal or re-use of equipment | ❌ Gap | Manual: policy |
99
+
100
+ ---
101
+
102
+ ## A.8 — Technological Controls
103
+
104
+ | Control | Title | Status | Evidence |
105
+ |---------|-------|--------|----------|
106
+ | A.8.1 | User end point devices | ❌ Gap | Manual: device management |
107
+ | A.8.2 | Privileged access rights | ❌ Gap | Manual: IAM |
108
+ | A.8.3 | Information access restriction | ❌ Gap | Manual: IAM |
109
+ | A.8.4 | Access to source code | ✅ Covered | Branch protection rules, AGENTS.md INV-23 (no direct push to main) |
110
+ | A.8.5 | Secure authentication | ❌ Gap | Manual: IAM |
111
+ | A.8.6 | Capacity management | ❌ Gap | Manual |
112
+ | A.8.7 | Protection against malware | ❌ Gap | Manual: endpoint security |
113
+ | A.8.8 | Management of technical vulnerabilities | ✅ Covered | npm audit (L2 gate), gitleaks (L2 gate) |
114
+ | A.8.9 | Configuration management | ✅ Covered | arbiter-generated config files + check-all gate |
115
+ | A.8.10 | Information deletion | ❌ Gap | Manual: data retention policy |
116
+ | A.8.11 | Data masking | ❌ Gap | Manual: data layer |
117
+ | A.8.12 | Data leakage prevention | ✅ Covered | pii-scan.mjs (L2 gate, no grace) |
118
+ | A.8.13 | Information backup | ❌ Gap | Manual: infra |
119
+ | A.8.14 | Redundancy of information processing facilities | ❌ Gap | Manual: infra |
120
+ | A.8.15 | Logging | ❌ Gap | Manual: observability |
121
+ | A.8.16 | Monitoring activities | ❌ Gap | Manual: observability |
122
+ | A.8.17 | Clock synchronisation | ❌ Gap | Manual: infra |
123
+ | A.8.18 | Use of privileged utility programs | ❌ Gap | Manual |
124
+ | A.8.19 | Installation of software on operational systems | ❌ Gap | Manual: change management |
125
+ | A.8.20 | Networks security | ❌ Gap | Manual: network team |
126
+ | A.8.21 | Security of network services | ❌ Gap | Manual: network team |
127
+ | A.8.22 | Segregation of networks | ❌ Gap | Manual: network team |
128
+ | A.8.23 | Web filtering | ❌ Gap | Manual |
129
+ | A.8.24 | Use of cryptography | ❌ Gap | Manual: crypto policy |
130
+ | A.8.25 | Secure development life cycle | ✅ Covered | node scripts/check-all.mjs (L1/L2/L3 gates) |
131
+ | A.8.26 | Application security requirements | ✅ Covered | docs/SECURE_CODING_CHECKLIST.md + STRIDE threat model |
132
+ | A.8.27 | Secure system architecture and engineering principles | ✅ Covered | dependency-cruiser / ArchUnit arch boundary enforcement |
133
+ | A.8.28 | Secure coding | ✅ Covered | docs/CODING_STANDARDS.md + eslint-security rules |
134
+ | A.8.29 | Security testing in development and acceptance | ❌ Gap | Manual: pentest / DAST |
135
+ | A.8.30 | Outsourced development | ❌ Gap | Manual: contract |
136
+ | A.8.31 | Separation of development, test and production environments | ❌ Gap | Manual: infra |
137
+ | A.8.32 | Change management | ✅ Covered | PR + gate process, AGENTS.md INV-22/23 |
138
+ | A.8.33 | Test information | ❌ Gap | Manual: test data policy |
139
+ | A.8.34 | Protection of information systems during audit testing | ❌ Gap | Manual |
140
+
141
+ ---
142
+
143
+ *This matrix was auto-generated by arbiter. Update manually as controls are implemented.*
144
+ *Re-run `arbiter init` to regenerate the scaffold; edit this file to track manual control status.*
@@ -0,0 +1,52 @@
1
+ # Master Test Plan
2
+
3
+ _Generated by arbiter. Update to match your project's test strategy._
4
+
5
+ ## Test Coverage Requirements
6
+
7
+ - **Minimum coverage threshold**: 80% line coverage
8
+ - All public APIs must have tests
9
+ - Tests run in CI on every PR
10
+
11
+ ## Mandatory Test Patterns
12
+
13
+ Every feature implementation must include tests for each of the following patterns:
14
+
15
+ | Pattern | Description | Required |
16
+ |----------------------|--------------------------------------------------------------------|----------|
17
+ | Happy path | The primary success case with valid inputs | ✓ |
18
+ | Null / empty input | Behavior when required inputs are absent or empty | ✓ |
19
+ | Not found | Resource lookup when the target does not exist | ✓ |
20
+ | Business rule | Domain invariant violations (invalid state transitions, etc.) | ✓ |
21
+ | Auth / unauthorized | Access attempt without valid credentials or insufficient privilege | ✓ |
22
+ <% if (isL3Plus) { %>
23
+ | Tenant isolation | Data from tenant A must not leak to tenant B | ✓ |
24
+ | Concurrency | Concurrent access does not produce incorrect results | ✓ |
25
+ <% } %>
26
+
27
+ ## Test Pyramid
28
+
29
+ | Level | Tool | When | Coverage Target |
30
+ |----------------|-----------------------|---------------|-----------------|
31
+ | Unit | language-specific | pre-commit | 80% |
32
+ | Integration | language-specific | pre-push | key paths |
33
+ | E2E | language-specific | CI / L3 | happy paths |
34
+ <% if (isL3Plus) { %>
35
+ | Chaos / Soak | language-specific | nightly | resilience |
36
+ <% } %>
37
+
38
+ ## Review Checklist
39
+
40
+ Before marking a PR as ready for review, verify:
41
+
42
+ - [ ] Happy path test exists
43
+ - [ ] Null/empty input test exists
44
+ - [ ] Not-found test exists
45
+ - [ ] Business rule test exists
46
+ - [ ] Auth/unauthorized test exists
47
+ <% if (isL3Plus) { %>
48
+ - [ ] Tenant isolation test exists
49
+ - [ ] Concurrency test exists
50
+ <% } %>
51
+ - [ ] All tests pass locally
52
+ - [ ] Coverage threshold met (80%)
@@ -0,0 +1,63 @@
1
+ # Post-Merge Review — YYYY-MM-DD
2
+
3
+ **Project:** <%= projectName %>
4
+ **Scope:** Tasks #NNN–#MMM (N worktrees, N commits)
5
+ **Reviewers:** N (security findings weighted 2×)
6
+ **Generated by:** arbiter (L<%= governanceLevel.slice(1) %> governance)
7
+
8
+ ---
9
+
10
+ ## Summary
11
+
12
+ | Bundle | Scope | Score | Verdict |
13
+ |--------|-------|-------|---------|
14
+ | #NNN | Feature description | 84/100 | PASS |
15
+
16
+ **Verdict thresholds:** PASS ≥75 | CONCERNS 60–74 | FAIL <60
17
+
18
+ ---
19
+
20
+ ## Bundle Details
21
+
22
+ ### #NNN — Title (Score: 84/100)
23
+
24
+ **Findings:**
25
+ - P2: [description] — tracked as #XXX
26
+ - P4: [description] — deferred, icebox
27
+
28
+ **Known limitations (by design):**
29
+ - [description] — tracked in #YYY
30
+
31
+ ---
32
+
33
+ ## Finding Classification
34
+
35
+ | Class | Definition | Action |
36
+ |-------|------------|--------|
37
+ | P1 | Critical — security, data loss, correctness | Fix before merge; block release |
38
+ | P2 | Blocks next milestone | Create issue, fix before next sprint |
39
+ | P3 | Impactful, not blocking | Create issue, schedule |
40
+ | P4 | Nice to have | Create issue, icebox |
41
+ | P5 | Cosmetic / trivial | Optional follow-up |
42
+ | Known limitation | Phase trade-off | Document rationale, link tracking issue |
43
+
44
+ > **Security findings are weighted 2×** in the final bundle score.
45
+ > A P2 security finding counts as P1 for scoring purposes.
46
+
47
+ ---
48
+
49
+ ## Retrospective Notes
50
+
51
+ *What went well:*
52
+ - [observation]
53
+
54
+ *What to improve:*
55
+ - [observation]
56
+
57
+ *Carry-forward to next batch:*
58
+ - [action item] — owner: @handle
59
+
60
+ ---
61
+
62
+ *This document was generated from `docs/testing/POST_MERGE_REVIEW_TEMPLATE.md` by arbiter.*
63
+ *Fill in actual task numbers, scores, and findings after batch merge.*
@@ -0,0 +1,61 @@
1
+ # Secure Coding Checklist
2
+
3
+ _Generated by arbiter. Review before every PR merge._
4
+
5
+ ## Input Validation
6
+
7
+ - [ ] All user input validated at system boundaries (no raw string interpolation in SQL/shell/HTML)
8
+ - [ ] Parameterized queries only — no string concatenation in database calls
9
+ - [ ] File uploads: validate type, size, and filename; store outside webroot
10
+ - [ ] JSON/XML input parsed with size limits
11
+
12
+ ## Authentication & Authorization
13
+
14
+ - [ ] JWT tokens validated (signature + expiry + audience)
15
+ - [ ] No hardcoded credentials in source code or config files
16
+ - [ ] Default-deny authorization: explicit allow-list, not blocklist
17
+ - [ ] Session tokens invalidated on logout and password change
18
+
19
+ ## Secrets
20
+
21
+ - [ ] No secrets in source code, logs, or version control
22
+ - [ ] Environment variables used for all configuration values
23
+ - [ ] Secret scanning gate passes (`gitleaks detect`)
24
+ - [ ] Secrets rotated if any exposure suspected
25
+
26
+ ## Dependency Security
27
+
28
+ - [ ] `npm audit --omit=dev --audit-level=high` (or equivalent) passes
29
+ - [ ] No CVEs suppressed without justification + review date
30
+ - [ ] CVSS ≥ 9.0 CVEs must have written ADR before suppression
31
+ - [ ] Dependencies pinned to minor version or have lockfile
32
+
33
+ ## Error Handling
34
+
35
+ - [ ] No stack traces in API responses (structured error format only)
36
+ - [ ] All Promise rejections handled (`.catch()` or `try/catch`)
37
+ - [ ] No swallowed exceptions (`catch {}` without logging or rethrow)
38
+ - [ ] Error codes documented — no magic numbers in error responses
39
+
40
+ ## Logging & PII
41
+
42
+ - [ ] No PII in log output (names, emails, phone numbers, IDs)
43
+ - [ ] Correlation ID present in all service-to-service calls
44
+ - [ ] Log level appropriate: debug not in production by default
45
+ - [ ] PII scan gate passes (`node scripts/pii-scan.mjs`)
46
+ <% if (isL3Plus) { %>
47
+
48
+ ## Tenant Isolation
49
+
50
+ - [ ] Cross-tenant data access impossible by design (tenant ID in every DB query)
51
+ - [ ] API responses filtered by tenant before serialization
52
+ - [ ] Background jobs scoped to single tenant; no shared state between tenants
53
+ - [ ] Tenant ID not guessable from public identifiers
54
+
55
+ ## Cryptography
56
+
57
+ - [ ] Approved algorithms only: AES-256-GCM, RSA-2048+, SHA-256+
58
+ - [ ] No MD5/SHA-1 for security purposes (hash comparison, signatures)
59
+ - [ ] Key rotation policy documented and tested
60
+ - [ ] Random number generation uses `crypto.randomBytes` / `SecureRandom` — not `Math.random()`
61
+ <% } %>
@@ -0,0 +1,28 @@
1
+ # ADR-NNN: Title
2
+
3
+ **Project:** <%= projectName %>
4
+ **Date:** YYYY-MM-DD
5
+ **Status:** Proposed | Accepted | Deprecated | Superseded
6
+
7
+ ## Context
8
+
9
+ What is the issue that we're seeing that motivates this decision or change?
10
+
11
+ ## Decision
12
+
13
+ What is the change that we're proposing and/or doing?
14
+
15
+ ## Consequences
16
+
17
+ ### Positive
18
+
19
+ - What becomes easier or possible because of this decision?
20
+
21
+ ### Negative
22
+
23
+ - What becomes harder or is no longer possible?
24
+
25
+ ## Links
26
+
27
+ - Related ADRs: ADR-NNN
28
+ - Issues: #NNN