pi-dev-team 0.2.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 (780) hide show
  1. package/LICENSE +21 -0
  2. package/PORTING.md +134 -0
  3. package/README.md +207 -0
  4. package/UPSTREAM.json +64 -0
  5. package/agents/Explore.md +15 -0
  6. package/agents/a11y-review.md +118 -0
  7. package/agents/adr-author.md +70 -0
  8. package/agents/ai-provenance-review.md +120 -0
  9. package/agents/angular-reactivity-review.md +95 -0
  10. package/agents/arch-review.md +135 -0
  11. package/agents/architect.md +78 -0
  12. package/agents/autoship-batch-proposer.md +69 -0
  13. package/agents/claude-setup-review.md +136 -0
  14. package/agents/codebase-recon.md +184 -0
  15. package/agents/component-architecture-review.md +119 -0
  16. package/agents/concurrency-review.md +109 -0
  17. package/agents/correctness-review.md +290 -0
  18. package/agents/data-flow-tracer.md +120 -0
  19. package/agents/doc-review.md +165 -0
  20. package/agents/domain-review.md +136 -0
  21. package/agents/general-purpose.md +10 -0
  22. package/agents/gherkin-quality-critic.md +113 -0
  23. package/agents/js-fp-review.md +114 -0
  24. package/agents/mutation-kill.md +684 -0
  25. package/agents/naming-review.md +142 -0
  26. package/agents/orchestrator.md +339 -0
  27. package/agents/performance-review.md +105 -0
  28. package/agents/plan-review-acceptance.md +115 -0
  29. package/agents/plan-review-design.md +90 -0
  30. package/agents/plan-review-parallelization.md +84 -0
  31. package/agents/plan-review-strategic.md +96 -0
  32. package/agents/plan-review-ux.md +110 -0
  33. package/agents/platform-engineer.md +64 -0
  34. package/agents/product-manager.md +68 -0
  35. package/agents/progress-guardian.md +79 -0
  36. package/agents/qa-engineer.md +289 -0
  37. package/agents/quality-reviewer.md +132 -0
  38. package/agents/react-reactivity-review.md +102 -0
  39. package/agents/refactor-opportunity-review.md +128 -0
  40. package/agents/security-engineer.md +60 -0
  41. package/agents/security-review.md +218 -0
  42. package/agents/session-analysis.md +95 -0
  43. package/agents/software-engineer.md +105 -0
  44. package/agents/spec-compliance-review.md +100 -0
  45. package/agents/spec-reviewer.md +114 -0
  46. package/agents/structure-review.md +146 -0
  47. package/agents/tech-writer.md +84 -0
  48. package/agents/test-review.md +246 -0
  49. package/agents/test-smell-review.md +188 -0
  50. package/agents/token-efficiency-review.md +139 -0
  51. package/agents/ui-ux-designer.md +54 -0
  52. package/agents/vue-reactivity-review.md +95 -0
  53. package/bin/__pycache__/claudecpython-314.pyc +0 -0
  54. package/bin/claude +258 -0
  55. package/docs/upstream/.pages +1 -0
  56. package/docs/upstream/CHANGELOG.md +2586 -0
  57. package/docs/upstream/README.md +155 -0
  58. package/docs/upstream/agent-architecture.md +214 -0
  59. package/docs/upstream/agent_info.md +187 -0
  60. package/docs/upstream/artifact-migration.md +124 -0
  61. package/docs/upstream/code-intelligence-nudge.md +149 -0
  62. package/docs/upstream/code-review-process.md +294 -0
  63. package/docs/upstream/concurrent-use.md +73 -0
  64. package/docs/upstream/context-management.md +111 -0
  65. package/docs/upstream/developer-notes.md +280 -0
  66. package/docs/upstream/diagrams/architecture-overview.svg +101 -0
  67. package/docs/upstream/diagrams/review-dispatch.svg +139 -0
  68. package/docs/upstream/diagrams/team-agents.svg +128 -0
  69. package/docs/upstream/diagrams/test-improve-flow.svg +166 -0
  70. package/docs/upstream/diagrams/workflow-linear.svg +66 -0
  71. package/docs/upstream/diagrams/workflow-three-phase.svg +200 -0
  72. package/docs/upstream/eval-maintenance.md +95 -0
  73. package/docs/upstream/eval-running-guide.md +147 -0
  74. package/docs/upstream/eval-system.md +291 -0
  75. package/docs/upstream/session-review-oss-complements.md +75 -0
  76. package/docs/upstream/session-review.md +212 -0
  77. package/docs/upstream/skills.md +188 -0
  78. package/docs/upstream/team-structure.md +21 -0
  79. package/docs/upstream/telemetry-ci-access.md +129 -0
  80. package/docs/upstream/telemetry-repo-security.md +120 -0
  81. package/docs/upstream/test-evaluation.md +277 -0
  82. package/docs/upstream/test-improve.md +154 -0
  83. package/docs/upstream/triage-workflow.md +282 -0
  84. package/docs/upstream/workflows.md +289 -0
  85. package/extensions/dev-team/index.ts +539 -0
  86. package/extensions/dev-team/lib/agents.ts +272 -0
  87. package/extensions/dev-team/lib/ai-credits.ts +92 -0
  88. package/extensions/dev-team/lib/autocompact.ts +81 -0
  89. package/extensions/dev-team/lib/child-run.ts +102 -0
  90. package/extensions/dev-team/lib/config.ts +236 -0
  91. package/extensions/dev-team/lib/gh-command.ts +103 -0
  92. package/extensions/dev-team/lib/github-style.ts +307 -0
  93. package/extensions/dev-team/lib/hooks.ts +350 -0
  94. package/extensions/dev-team/lib/metrics.ts +115 -0
  95. package/extensions/dev-team/lib/safe-read.ts +49 -0
  96. package/extensions/dev-team/lib/session-files.ts +57 -0
  97. package/extensions/dev-team/lib/session-spend.ts +123 -0
  98. package/extensions/dev-team/lib/shell-scan.ts +205 -0
  99. package/extensions/dev-team/lib/skills.ts +213 -0
  100. package/extensions/dev-team/lib/subagent-render.ts +245 -0
  101. package/extensions/dev-team/lib/subagent-types.ts +164 -0
  102. package/extensions/dev-team/lib/subagent.ts +596 -0
  103. package/extensions/dev-team/lib/terminal-text.ts +54 -0
  104. package/extensions/dev-team/lib/tools-misc.ts +152 -0
  105. package/extensions/dev-team/lib/transcript.ts +110 -0
  106. package/extensions/dev-team/lib/trust.ts +52 -0
  107. package/extensions/dev-team/lib/usage-breakdown.ts +176 -0
  108. package/extensions/dev-team/lib/usage-chart.ts +153 -0
  109. package/extensions/dev-team/lib/usage-command.ts +107 -0
  110. package/extensions/dev-team/lib/usage-history.ts +203 -0
  111. package/extensions/dev-team/lib/usage-render.ts +225 -0
  112. package/extensions/dev-team/lib/usage-split-bar.ts +127 -0
  113. package/extensions/dev-team/lib/usage-state.ts +116 -0
  114. package/extensions/dev-team/lib/usage-text.ts +159 -0
  115. package/extensions/dev-team/lib/usage-view.ts +109 -0
  116. package/hooks/__pycache__/refactor_test_freeze_guard.cpython-314.pyc +0 -0
  117. package/hooks/agent_dispatch_ledger.py +190 -0
  118. package/hooks/autocompact_setup_nudge.py +99 -0
  119. package/hooks/bash_retry_guard.py +228 -0
  120. package/hooks/boundary_events_write_guard.py +352 -0
  121. package/hooks/code_intelligence_nudge.py +293 -0
  122. package/hooks/code_intelligence_turn_mark.py +317 -0
  123. package/hooks/codegraph_bootstrap.py +139 -0
  124. package/hooks/contract_version_guard.py +362 -0
  125. package/hooks/cost_meter.py +106 -0
  126. package/hooks/destructive-commands.json +62 -0
  127. package/hooks/destructive_guard.py +477 -0
  128. package/hooks/eval_compliance_check.py +440 -0
  129. package/hooks/guards.json +17 -0
  130. package/hooks/hooks.json +323 -0
  131. package/hooks/internal_double_gate.py +296 -0
  132. package/hooks/js_fp_review.py +212 -0
  133. package/hooks/knowledge_index.py +119 -0
  134. package/hooks/lib/__pycache__/artifact_paths.cpython-314.pyc +0 -0
  135. package/hooks/lib/__pycache__/atomic_state.cpython-314.pyc +0 -0
  136. package/hooks/lib/__pycache__/autocompact_config.cpython-314.pyc +0 -0
  137. package/hooks/lib/__pycache__/boundary_events.cpython-314.pyc +0 -0
  138. package/hooks/lib/__pycache__/doc_classification.cpython-314.pyc +0 -0
  139. package/hooks/lib/__pycache__/gh_pr_create_detect.cpython-314.pyc +0 -0
  140. package/hooks/lib/__pycache__/git_safe_diff.cpython-314.pyc +0 -0
  141. package/hooks/lib/__pycache__/instrument_log.cpython-314.pyc +0 -0
  142. package/hooks/lib/__pycache__/metrics_query.cpython-314.pyc +0 -0
  143. package/hooks/lib/__pycache__/plugin_version.cpython-314.pyc +0 -0
  144. package/hooks/lib/__pycache__/pre_commit_doc_classifier.cpython-314.pyc +0 -0
  145. package/hooks/lib/__pycache__/review_agent_registry.cpython-314.pyc +0 -0
  146. package/hooks/lib/__pycache__/review_gate_corroboration.cpython-314.pyc +0 -0
  147. package/hooks/lib/__pycache__/review_gate_hash.cpython-314.pyc +0 -0
  148. package/hooks/lib/__pycache__/review_verdicts.cpython-314.pyc +0 -0
  149. package/hooks/lib/__pycache__/stdin_json.cpython-314.pyc +0 -0
  150. package/hooks/lib/__pycache__/stryker_invocation.cpython-314.pyc +0 -0
  151. package/hooks/lib/__pycache__/telemetry_consent.cpython-314.pyc +0 -0
  152. package/hooks/lib/__pycache__/test_file_classify.cpython-314.pyc +0 -0
  153. package/hooks/lib/__pycache__/token_efficiency_limits.cpython-314.pyc +0 -0
  154. package/hooks/lib/__pycache__/verify_guard_state.cpython-314.pyc +0 -0
  155. package/hooks/lib/__pycache__/xunit_v3_operator_gate.cpython-314.pyc +0 -0
  156. package/hooks/lib/agent_skill_hints.py +74 -0
  157. package/hooks/lib/artifact_paths.py +263 -0
  158. package/hooks/lib/atomic_state.py +557 -0
  159. package/hooks/lib/autocompact_config.py +103 -0
  160. package/hooks/lib/autoship_log.py +106 -0
  161. package/hooks/lib/banned_scripts_policy.py +51 -0
  162. package/hooks/lib/boundary_events.py +436 -0
  163. package/hooks/lib/build_knowledge_index.py +504 -0
  164. package/hooks/lib/build_skills_index.py +361 -0
  165. package/hooks/lib/build_state.py +116 -0
  166. package/hooks/lib/classify_ship_outcome.py +126 -0
  167. package/hooks/lib/config_changelog_schema.py +115 -0
  168. package/hooks/lib/cost_meter.py +955 -0
  169. package/hooks/lib/doc_classification.py +116 -0
  170. package/hooks/lib/gh_pr_create_detect.py +136 -0
  171. package/hooks/lib/git_safe_diff.py +123 -0
  172. package/hooks/lib/instrument_log.py +66 -0
  173. package/hooks/lib/iteration_journal_gate.py +197 -0
  174. package/hooks/lib/knowledge_index_paths.py +88 -0
  175. package/hooks/lib/mcp_json_repowise.py +177 -0
  176. package/hooks/lib/metrics_query.py +202 -0
  177. package/hooks/lib/minimal_yaml.py +434 -0
  178. package/hooks/lib/plugin_version.py +142 -0
  179. package/hooks/lib/pre_commit_detect.py +537 -0
  180. package/hooks/lib/pre_commit_doc_classifier.py +126 -0
  181. package/hooks/lib/pricing.py +118 -0
  182. package/hooks/lib/report_pdf.py +371 -0
  183. package/hooks/lib/review_agent_registry.py +142 -0
  184. package/hooks/lib/review_dispatch_ledger.py +101 -0
  185. package/hooks/lib/review_gate_corroboration.py +521 -0
  186. package/hooks/lib/review_gate_hash.py +252 -0
  187. package/hooks/lib/review_gate_normalized_hash.py +1115 -0
  188. package/hooks/lib/review_verdicts.py +301 -0
  189. package/hooks/lib/run_report.py +160 -0
  190. package/hooks/lib/skill_categories.yaml +125 -0
  191. package/hooks/lib/stdin_json.py +57 -0
  192. package/hooks/lib/stryker_invocation.py +102 -0
  193. package/hooks/lib/telemetry_consent.py +41 -0
  194. package/hooks/lib/telemetry_report.py +108 -0
  195. package/hooks/lib/test_file_classify.py +160 -0
  196. package/hooks/lib/token_efficiency_limits.py +51 -0
  197. package/hooks/lib/turn_identity.py +77 -0
  198. package/hooks/lib/verify_guard_state.py +110 -0
  199. package/hooks/lib/workflow_state.py +206 -0
  200. package/hooks/lib/xunit_v3_operator_gate.py +596 -0
  201. package/hooks/mcp_json_repowise_nudge.py +74 -0
  202. package/hooks/mutation_adapters/__init__.py +7 -0
  203. package/hooks/mutation_adapters/__pycache__/__init__.cpython-314.pyc +0 -0
  204. package/hooks/mutation_adapters/__pycache__/lib.cpython-314.pyc +0 -0
  205. package/hooks/mutation_adapters/__pycache__/mutmut.cpython-314.pyc +0 -0
  206. package/hooks/mutation_adapters/__pycache__/pitest.cpython-314.pyc +0 -0
  207. package/hooks/mutation_adapters/__pycache__/stryker.cpython-314.pyc +0 -0
  208. package/hooks/mutation_adapters/__pycache__/stryker_net.cpython-314.pyc +0 -0
  209. package/hooks/mutation_adapters/lib.py +478 -0
  210. package/hooks/mutation_adapters/mutmut.py +188 -0
  211. package/hooks/mutation_adapters/pitest.py +266 -0
  212. package/hooks/mutation_adapters/stryker.py +157 -0
  213. package/hooks/mutation_adapters/stryker_net.py +264 -0
  214. package/hooks/mutation_gate.py +193 -0
  215. package/hooks/mutation_testing_smoke_gate.py +371 -0
  216. package/hooks/pending_review_notify.py +121 -0
  217. package/hooks/phase_marker.py +138 -0
  218. package/hooks/post_compact_state_reinject.py +180 -0
  219. package/hooks/post_format.py +115 -0
  220. package/hooks/pre_commit_knowledge_index.py +128 -0
  221. package/hooks/pre_commit_review.py +66 -0
  222. package/hooks/pre_pr_review.py +694 -0
  223. package/hooks/pre_tool_guard.py +405 -0
  224. package/hooks/py.sh +73 -0
  225. package/hooks/refactor-bash-write-patterns.json +29 -0
  226. package/hooks/refactor_test_bash_guard.py +253 -0
  227. package/hooks/refactor_test_freeze_guard.py +139 -0
  228. package/hooks/refactor_test_revert_guard.py +186 -0
  229. package/hooks/repo_review_nudge.py +287 -0
  230. package/hooks/review_verdict_recorder.py +464 -0
  231. package/hooks/scan_bash_command_for_banned_scripts.py +428 -0
  232. package/hooks/scan_worktree_for_banned_scripts.py +238 -0
  233. package/hooks/session_learning_trigger.py +248 -0
  234. package/hooks/skills_index.py +126 -0
  235. package/hooks/stryker_xunit_shim_guard.py +571 -0
  236. package/hooks/subagent_completion_guard.py +309 -0
  237. package/hooks/subagent_skill_context.py +139 -0
  238. package/hooks/task_completion_metrics.py +216 -0
  239. package/hooks/tdd_guard.py +229 -0
  240. package/hooks/telemetry.py +341 -0
  241. package/hooks/token_efficiency_review.py +194 -0
  242. package/hooks/verify_guard.py +183 -0
  243. package/hooks/verify_guard_edit_marker.py +73 -0
  244. package/hooks/version_check.py +173 -0
  245. package/knowledge/accepted-risks-schema.md +98 -0
  246. package/knowledge/adr-decision-criteria.md +64 -0
  247. package/knowledge/adversarial-review-protocol.md +139 -0
  248. package/knowledge/agent-registry.md +228 -0
  249. package/knowledge/agent-review-methodology.md +80 -0
  250. package/knowledge/ai-friendly-repo-guidelines.md +67 -0
  251. package/knowledge/architecture-assessment.md +96 -0
  252. package/knowledge/artifact-lifecycle.md +57 -0
  253. package/knowledge/cd-maturity-model.md +82 -0
  254. package/knowledge/cd-test-architecture.md +190 -0
  255. package/knowledge/ci-cd-file-scope.md +24 -0
  256. package/knowledge/codegraph-vs-graphify.md +192 -0
  257. package/knowledge/component-test-patterns.md +139 -0
  258. package/knowledge/database-change-management.md +80 -0
  259. package/knowledge/database-test-patterns.md +79 -0
  260. package/knowledge/decision-defaults.md +88 -0
  261. package/knowledge/dependency-breaking-techniques.md +116 -0
  262. package/knowledge/deployment-pipeline.md +86 -0
  263. package/knowledge/design-smells.md +122 -0
  264. package/knowledge/directory-enumeration.md +38 -0
  265. package/knowledge/domain-modeling.md +123 -0
  266. package/knowledge/evidence-bundle.md +90 -0
  267. package/knowledge/exploratory-testing-field-guide.md +122 -0
  268. package/knowledge/failure-routing.md +28 -0
  269. package/knowledge/fixture-construction.md +56 -0
  270. package/knowledge/frontend-component-architecture.md +139 -0
  271. package/knowledge/gherkin-quality-review-dispatch.md +135 -0
  272. package/knowledge/index.json +6766 -0
  273. package/knowledge/internal-collaborator-doubling.md +101 -0
  274. package/knowledge/legacy-test-strategy.md +71 -0
  275. package/knowledge/long-run-waiting.md +66 -0
  276. package/knowledge/microservice-testing.md +71 -0
  277. package/knowledge/model-pricing.json +23 -0
  278. package/knowledge/mutation-score-formulas.md +60 -0
  279. package/knowledge/object-calisthenics.md +147 -0
  280. package/knowledge/oracle-provenance.md +94 -0
  281. package/knowledge/orchestrator-script-implementation.md +185 -0
  282. package/knowledge/owasp-detection.md +148 -0
  283. package/knowledge/plan-review-rubric.md +56 -0
  284. package/knowledge/proxy-connectivity.md +62 -0
  285. package/knowledge/reactive-effect-patterns.md +73 -0
  286. package/knowledge/recon-inventory-excludes.txt +32 -0
  287. package/knowledge/references/bdd-value-guide.md +61 -0
  288. package/knowledge/references/csharp-http-client-testing.md +264 -0
  289. package/knowledge/release-strategies.md +74 -0
  290. package/knowledge/report-output-location.md +117 -0
  291. package/knowledge/report-pdf-integration.md +63 -0
  292. package/knowledge/report-print.css +129 -0
  293. package/knowledge/report-template.md +114 -0
  294. package/knowledge/report-to-pdf.md +69 -0
  295. package/knowledge/request-processing-flow.md +63 -0
  296. package/knowledge/result-verification.md +52 -0
  297. package/knowledge/review-agent-output-contract.md +121 -0
  298. package/knowledge/review-lens-classification.md +113 -0
  299. package/knowledge/review-rubric.md +62 -0
  300. package/knowledge/review-template.md +104 -0
  301. package/knowledge/rule-fixtures/A02.insecure-random-js/negative.js +1 -0
  302. package/knowledge/rule-fixtures/A02.insecure-random-js/positive.js +1 -0
  303. package/knowledge/rule-fixtures/A02.weak-hashing-md5/negative.py +1 -0
  304. package/knowledge/rule-fixtures/A02.weak-hashing-md5/positive.py +1 -0
  305. package/knowledge/rule-fixtures/A03.command-injection/negative.js +1 -0
  306. package/knowledge/rule-fixtures/A03.command-injection/positive.js +1 -0
  307. package/knowledge/rule-fixtures/A03.sql-injection/negative.js +1 -0
  308. package/knowledge/rule-fixtures/A03.sql-injection/positive.js +1 -0
  309. package/knowledge/rule-fixtures/A03.xss-innerhtml/negative.js +1 -0
  310. package/knowledge/rule-fixtures/A03.xss-innerhtml/positive.js +1 -0
  311. package/knowledge/rule-fixtures/A05.cors-wildcard/negative.js +1 -0
  312. package/knowledge/rule-fixtures/A05.cors-wildcard/positive.js +1 -0
  313. package/knowledge/rule-fixtures/A05.default-credentials/negative.js +1 -0
  314. package/knowledge/rule-fixtures/A05.default-credentials/positive.js +1 -0
  315. package/knowledge/rule-fixtures/A07.jwt-alg-none/negative.js +1 -0
  316. package/knowledge/rule-fixtures/A07.jwt-alg-none/positive.js +1 -0
  317. package/knowledge/rule-fixtures/A08.binary-formatter/negative.cs +1 -0
  318. package/knowledge/rule-fixtures/A08.binary-formatter/positive.cs +1 -0
  319. package/knowledge/rule-fixtures/A08.js-eval/negative.js +1 -0
  320. package/knowledge/rule-fixtures/A08.js-eval/positive.js +1 -0
  321. package/knowledge/rule-fixtures/A08.object-input-stream/negative.java +1 -0
  322. package/knowledge/rule-fixtures/A08.object-input-stream/positive.java +1 -0
  323. package/knowledge/schemas/disposition-register-v1.json +65 -0
  324. package/knowledge/schemas/recon-envelope-v1.json +198 -0
  325. package/knowledge/schemas/unified-finding-v1.json +72 -0
  326. package/knowledge/security-primitives-contract.md +301 -0
  327. package/knowledge/security-review-rule-map.yaml +107 -0
  328. package/knowledge/skills-registry.md +72 -0
  329. package/knowledge/task-size-classifier.md +103 -0
  330. package/knowledge/telemetry-schema.md +881 -0
  331. package/knowledge/test-automation-maturity.md +56 -0
  332. package/knowledge/test-automation-principles.md +71 -0
  333. package/knowledge/test-cadence-tradeoffs.md +68 -0
  334. package/knowledge/test-doubles.md +105 -0
  335. package/knowledge/test-file-indicators.md +22 -0
  336. package/knowledge/test-layer-gates.md +35 -0
  337. package/knowledge/test-matrix-examples/django-batch.md +24 -0
  338. package/knowledge/test-matrix-examples/dotnet-grpc-fronting-api.md +90 -0
  339. package/knowledge/test-matrix-examples/dotnet-http-consumer.md +131 -0
  340. package/knowledge/test-matrix-examples/react-node-spa.md +24 -0
  341. package/knowledge/test-matrix-examples/spring-boot-service.md +25 -0
  342. package/knowledge/test-matrix-examples/ssr-htmx.md +24 -0
  343. package/knowledge/test-organization.md +70 -0
  344. package/knowledge/test-pyramid.md +84 -0
  345. package/knowledge/test-refactoring.md +67 -0
  346. package/knowledge/test-review-division-of-labor.md +85 -0
  347. package/knowledge/test-smells.md +80 -0
  348. package/knowledge/test-stack-profiles/bdd-frameworks.md +235 -0
  349. package/knowledge/test-stack-profiles/django.md +13 -0
  350. package/knowledge/test-stack-profiles/dotnet.md +18 -0
  351. package/knowledge/test-stack-profiles/go.md +16 -0
  352. package/knowledge/test-stack-profiles/node.md +16 -0
  353. package/knowledge/test-stack-profiles/react.md +12 -0
  354. package/knowledge/test-stack-profiles/spring-boot.md +16 -0
  355. package/knowledge/test-stack-profiles/ssr-htmx.md +14 -0
  356. package/knowledge/test-stack-profiles/vue.md +12 -0
  357. package/knowledge/test-strategy.md +70 -0
  358. package/knowledge/testability-patterns.md +240 -0
  359. package/knowledge/testing-quadrants.md +44 -0
  360. package/knowledge/testing-techniques/approval.md +15 -0
  361. package/knowledge/testing-techniques/chaos.md +17 -0
  362. package/knowledge/testing-techniques/fuzz.md +15 -0
  363. package/knowledge/testing-techniques/property-based.md +15 -0
  364. package/knowledge/testing-techniques/schema-validation.md +15 -0
  365. package/knowledge/testing-techniques/screenshot.md +15 -0
  366. package/knowledge/three-phase-workflow.md +198 -0
  367. package/knowledge/value-patterns.md +55 -0
  368. package/knowledge/verification-mode.md +116 -0
  369. package/knowledge/virtual-service-libraries.md +75 -0
  370. package/knowledge/wave-consolidation-guidance.md +21 -0
  371. package/overrides/agents/Explore.md +15 -0
  372. package/overrides/agents/general-purpose.md +10 -0
  373. package/overrides/notes/autoship.md +6 -0
  374. package/overrides/notes/issues-from-assessment.md +3 -0
  375. package/overrides/notes/issues-from-plan.md +3 -0
  376. package/overrides/notes/mutation-night-watch.md +3 -0
  377. package/overrides/notes/mutation-testing.md +3 -0
  378. package/overrides/notes/pr.md +7 -0
  379. package/overrides/notes/project-init.md +6 -0
  380. package/overrides/notes/setup.md +13 -0
  381. package/overrides/notes/specs.md +3 -0
  382. package/overrides/skills/headless-run/SKILL.md +45 -0
  383. package/overrides/skills/upgrade/SKILL.md +30 -0
  384. package/overrides/skills/version/SKILL.md +25 -0
  385. package/package.json +36 -0
  386. package/scripts/authoring_digest.py +93 -0
  387. package/scripts/autoship_discover.py +121 -0
  388. package/scripts/autoship_group.py +409 -0
  389. package/scripts/autoship_proposals.py +494 -0
  390. package/scripts/autoship_queue.py +291 -0
  391. package/scripts/autoship_reclaim.py +495 -0
  392. package/scripts/build_jobs.py +108 -0
  393. package/scripts/build_rollback_point.py +240 -0
  394. package/scripts/build_slice_scope.py +157 -0
  395. package/scripts/build_wave.py +109 -0
  396. package/scripts/build_wave_reconcile.py +252 -0
  397. package/scripts/build_worktree_baseref.py +113 -0
  398. package/scripts/check_agent_scope.py +117 -0
  399. package/scripts/check_agent_tool_mapping.py +213 -0
  400. package/scripts/check_review_agent_mcp_tools.py +317 -0
  401. package/scripts/check_security_assessment_mcp_tools.py +165 -0
  402. package/scripts/checkpoint_abort.py +502 -0
  403. package/scripts/claude_setup_review.py +438 -0
  404. package/scripts/codebase_recon.py +556 -0
  405. package/scripts/coverage_config.py +623 -0
  406. package/scripts/coverage_delta_steering.py +330 -0
  407. package/scripts/coverage_discovery_dotnet.py +315 -0
  408. package/scripts/coverage_discovery_java.py +742 -0
  409. package/scripts/coverage_discovery_js.py +546 -0
  410. package/scripts/coverage_gap_ranking.py +556 -0
  411. package/scripts/coverage_readiness.py +455 -0
  412. package/scripts/coverage_report_parse.py +521 -0
  413. package/scripts/detect_bdd_convention.py +252 -0
  414. package/scripts/eval_ablation.py +376 -0
  415. package/scripts/gherkin_analysis_coverage_gate.py +306 -0
  416. package/scripts/gherkin_cross_feature_duplicate_titles_gate.py +173 -0
  417. package/scripts/gherkin_effectiveness_rollup.py +238 -0
  418. package/scripts/gherkin_failure_path_gate.py +206 -0
  419. package/scripts/gherkin_feature_merge.py +720 -0
  420. package/scripts/gherkin_stub_gate.py +163 -0
  421. package/scripts/gherkin_stub_merge.py +479 -0
  422. package/scripts/git_origin_host.py +88 -0
  423. package/scripts/install-java-static-analysis.py +110 -0
  424. package/scripts/issue_deps.py +74 -0
  425. package/scripts/lib/_bdd_markers.py +28 -0
  426. package/scripts/lib/_gherkin_text.py +93 -0
  427. package/scripts/lib/_vendored_tree.py +70 -0
  428. package/scripts/lib/autoship_state.py +397 -0
  429. package/scripts/lib/claude_md_guard.py +226 -0
  430. package/scripts/lib/deterministic_recon.py +446 -0
  431. package/scripts/lib/mcp_tool_grants.py +211 -0
  432. package/scripts/lib/plan_parse.py +386 -0
  433. package/scripts/lib/review_result.py +84 -0
  434. package/scripts/lib/review_roster.py +86 -0
  435. package/scripts/lib/session_log/__init__.py +34 -0
  436. package/scripts/lib/session_log/__pycache__/__init__.cpython-314.pyc +0 -0
  437. package/scripts/lib/session_log/__pycache__/records.cpython-314.pyc +0 -0
  438. package/scripts/lib/session_log/classify.py +231 -0
  439. package/scripts/lib/session_log/corrections.py +194 -0
  440. package/scripts/lib/session_log/discovery.py +108 -0
  441. package/scripts/lib/session_log/records.py +218 -0
  442. package/scripts/lib/session_log/redact.py +76 -0
  443. package/scripts/lib/session_log/signals.py +373 -0
  444. package/scripts/lib/session_report_downstream.py +614 -0
  445. package/scripts/lib/session_report_maintainer.py +1273 -0
  446. package/scripts/lib/session_report_shared.py +262 -0
  447. package/scripts/lib/settings_hook_guard.py +157 -0
  448. package/scripts/lib/slug.py +33 -0
  449. package/scripts/lib/stub_extractors/__init__.py +82 -0
  450. package/scripts/lib/stub_extractors/_common.py +328 -0
  451. package/scripts/lib/stub_extractors/csharp.py +19 -0
  452. package/scripts/lib/stub_extractors/go.py +173 -0
  453. package/scripts/lib/stub_extractors/java.py +18 -0
  454. package/scripts/lib/stub_extractors/jsts.py +126 -0
  455. package/scripts/mutation_stack_sections.py +149 -0
  456. package/scripts/mutation_yield_steering.py +345 -0
  457. package/scripts/orchestrator.py +895 -0
  458. package/scripts/plan_gherkin_export.py +227 -0
  459. package/scripts/plan_waves.py +208 -0
  460. package/scripts/pr_close_keyword_lint.py +108 -0
  461. package/scripts/progress_guardian.py +888 -0
  462. package/scripts/recon_inventory.py +273 -0
  463. package/scripts/review_findings_log.py +93 -0
  464. package/scripts/run_invariants.py +124 -0
  465. package/scripts/select_lenses.py +640 -0
  466. package/scripts/session_report.py +486 -0
  467. package/scripts/set_autocompact_env.py +221 -0
  468. package/scripts/ship_resume_guard.py +135 -0
  469. package/scripts/ship_review_gate.py +63 -0
  470. package/scripts/specs_convention_marker.py +103 -0
  471. package/scripts/test_improve_resume.py +277 -0
  472. package/scripts/test_review_mechanics.py +958 -0
  473. package/scripts/token_efficiency_review.py +322 -0
  474. package/scripts/verdict_scope.py +285 -0
  475. package/scripts/verify_gherkin_quality_critic_isolation.py +296 -0
  476. package/scripts/verify_tier.py +157 -0
  477. package/skills/adr-tools/SKILL.md +118 -0
  478. package/skills/agent-readiness/SKILL.md +105 -0
  479. package/skills/agent-readiness/ai_friendly_analyzers.py +326 -0
  480. package/skills/agent-readiness/scanner.py +441 -0
  481. package/skills/agent-readiness/scorecard.yaml +88 -0
  482. package/skills/api-design/SKILL.md +115 -0
  483. package/skills/apply-fixes/SKILL.md +171 -0
  484. package/skills/apply-test-doubles/SKILL.md +321 -0
  485. package/skills/artifact-lifecycle/SKILL.md +127 -0
  486. package/skills/autoship/SKILL.md +1124 -0
  487. package/skills/benchmark/SKILL.md +105 -0
  488. package/skills/branch-workflow/SKILL.md +89 -0
  489. package/skills/browse/SKILL.md +184 -0
  490. package/skills/browser-testing/SKILL.md +62 -0
  491. package/skills/browser-testing/references/playwright-patterns.md +216 -0
  492. package/skills/build/SKILL.md +422 -0
  493. package/skills/build/references/static-self-heal.md +245 -0
  494. package/skills/careful/SKILL.md +72 -0
  495. package/skills/cd-test-architecture/SKILL.md +371 -0
  496. package/skills/ci-debugging/SKILL.md +105 -0
  497. package/skills/co-evolution-audit/SKILL.md +269 -0
  498. package/skills/code-review/SKILL.md +1015 -0
  499. package/skills/code-review/examples/aggregated-sample.json +56 -0
  500. package/skills/code-review/examples/sample-report.md +41 -0
  501. package/skills/code-review/output-format.md +478 -0
  502. package/skills/code-review/scripts/activation.py +86 -0
  503. package/skills/code-review/scripts/change_impact.py +357 -0
  504. package/skills/code-review/scripts/change_shape.py +372 -0
  505. package/skills/code-review/scripts/change_size.py +212 -0
  506. package/skills/code-review/scripts/changed_file_list.py +141 -0
  507. package/skills/code-review/scripts/closing_pass.py +187 -0
  508. package/skills/code-review/scripts/consolidate.py +277 -0
  509. package/skills/code-review/scripts/contract_failure_report.py +185 -0
  510. package/skills/code-review/scripts/dispatch_reconcile.py +66 -0
  511. package/skills/code-review/scripts/dispatch_waves.py +164 -0
  512. package/skills/code-review/scripts/finding_signature.py +446 -0
  513. package/skills/code-review/scripts/ledger.py +283 -0
  514. package/skills/code-review/scripts/partition.py +169 -0
  515. package/skills/code-review/scripts/render_tiered_findings.py +274 -0
  516. package/skills/code-review/scripts/repo_invariants.py +1066 -0
  517. package/skills/code-review/scripts/review_context_pack.py +306 -0
  518. package/skills/code-review/scripts/review_round_log.py +345 -0
  519. package/skills/code-review/scripts/review_value_coverage.py +297 -0
  520. package/skills/code-review/scripts/validate_review_output.py +467 -0
  521. package/skills/code-review/sliced-mode.md +205 -0
  522. package/skills/competitive-analysis/SKILL.md +191 -0
  523. package/skills/context-loading-protocol/SKILL.md +157 -0
  524. package/skills/continue/SKILL.md +90 -0
  525. package/skills/cost-report/SKILL.md +178 -0
  526. package/skills/coverage-baseline/SKILL.md +335 -0
  527. package/skills/coverage-baseline/references/multi-project-discovery.md +202 -0
  528. package/skills/coverage-delta/SKILL.md +181 -0
  529. package/skills/coverage-delta/references/mutation-gate.md +70 -0
  530. package/skills/design-doc/SKILL.md +95 -0
  531. package/skills/design-interrogation/SKILL.md +89 -0
  532. package/skills/design-it-twice/SKILL.md +91 -0
  533. package/skills/docker-image-audit/SKILL.md +108 -0
  534. package/skills/docker-image-audit/references/install-guide.md +64 -0
  535. package/skills/docker-image-audit/references/report-template.md +73 -0
  536. package/skills/docker-image-create/SKILL.md +185 -0
  537. package/skills/domain-analysis/SKILL.md +183 -0
  538. package/skills/domain-driven-design/SKILL.md +194 -0
  539. package/skills/exploratory-testing/SKILL.md +108 -0
  540. package/skills/explore/SKILL.md +51 -0
  541. package/skills/farley-score/SKILL.md +165 -0
  542. package/skills/feature-file-validation/SKILL.md +78 -0
  543. package/skills/feature-file-validation/references/validation-rules.md +115 -0
  544. package/skills/feedback-learning/SKILL.md +414 -0
  545. package/skills/fix/SKILL.md +450 -0
  546. package/skills/freeze/SKILL.md +68 -0
  547. package/skills/frontend-architecture/SKILL.md +113 -0
  548. package/skills/gherkin-derive/SKILL.md +630 -0
  549. package/skills/gherkin-public/SKILL.md +266 -0
  550. package/skills/governance-compliance/SKILL.md +150 -0
  551. package/skills/guard/SKILL.md +75 -0
  552. package/skills/handoff/SKILL.md +139 -0
  553. package/skills/handoff/references/summary-templates.md +242 -0
  554. package/skills/harness-audit/SKILL.md +751 -0
  555. package/skills/harness-audit/scripts/lesson_validate.py +386 -0
  556. package/skills/harness-audit/scripts/redundancy_criterion.py +188 -0
  557. package/skills/headless-run/SKILL.md +45 -0
  558. package/skills/headless-run/scripts/isolated_dispatch.py +381 -0
  559. package/skills/help/SKILL.md +72 -0
  560. package/skills/hexagonal-architecture/SKILL.md +85 -0
  561. package/skills/human-oversight-protocol/SKILL.md +224 -0
  562. package/skills/issues-from-assessment/SKILL.md +223 -0
  563. package/skills/issues-from-plan/SKILL.md +133 -0
  564. package/skills/legacy-code/SKILL.md +132 -0
  565. package/skills/mermaid-diagramming/SKILL.md +120 -0
  566. package/skills/mutation-night-watch/SKILL.md +154 -0
  567. package/skills/mutation-night-watch/references/scheduling.md +135 -0
  568. package/skills/mutation-testing/SKILL.md +396 -0
  569. package/skills/mutation-testing/references/languages/csharp-stryker-net.md +676 -0
  570. package/skills/mutation-testing/references/languages/go-go-mutesting.md +95 -0
  571. package/skills/mutation-testing/references/languages/java-pitest.md +77 -0
  572. package/skills/mutation-testing/references/languages/javascript-stryker.md +188 -0
  573. package/skills/mutation-testing/references/languages/python-mutmut.md +97 -0
  574. package/skills/mutation-testing/references/time-estimation.md +34 -0
  575. package/skills/mutation-testing/references/tool-detection.md +15 -0
  576. package/skills/mutation-testing/references/workflow-callers.md +23 -0
  577. package/skills/mutation-testing/scripts/__pycache__/xunit_v3_feature_detector.cpython-314.pyc +0 -0
  578. package/skills/mutation-testing/scripts/csharp_stryker_net_slice_runner.py +635 -0
  579. package/skills/mutation-testing/scripts/csharp_stryker_net_status_loop.py +525 -0
  580. package/skills/mutation-testing/scripts/csharp_stryker_net_wrapper.py +681 -0
  581. package/skills/mutation-testing/scripts/mutation_baseline_reuse.py +292 -0
  582. package/skills/mutation-testing/scripts/mutation_exclude_policy.py +268 -0
  583. package/skills/mutation-testing/scripts/mutation_feasibility_gate.py +463 -0
  584. package/skills/mutation-testing/scripts/mutation_kill_headless.py +331 -0
  585. package/skills/mutation-testing/scripts/mutation_kill_insert.py +199 -0
  586. package/skills/mutation-testing/scripts/mutation_kill_insert_python.py +150 -0
  587. package/skills/mutation-testing/scripts/mutation_kill_loop.py +869 -0
  588. package/skills/mutation-testing/scripts/mutation_kill_loop_python.py +949 -0
  589. package/skills/mutation-testing/scripts/mutation_kill_retry.py +592 -0
  590. package/skills/mutation-testing/scripts/mutation_kill_shared.py +620 -0
  591. package/skills/mutation-testing/scripts/mutation_nightwatch.py +462 -0
  592. package/skills/mutation-testing/scripts/mutation_nightwatch_stacks.py +425 -0
  593. package/skills/mutation-testing/scripts/mutation_report.py +743 -0
  594. package/skills/mutation-testing/scripts/mutation_report_cli.py +175 -0
  595. package/skills/mutation-testing/scripts/mutation_safety_gate.py +69 -0
  596. package/skills/mutation-testing/scripts/stryker_shard_pipeline.py +847 -0
  597. package/skills/mutation-testing/scripts/stryker_shard_setup.py +440 -0
  598. package/skills/mutation-testing/scripts/stryker_timeout_retry.py +142 -0
  599. package/skills/mutation-testing/scripts/xunit_v3_feature_detector.py +341 -0
  600. package/skills/performance-benchmark/SKILL.md +174 -0
  601. package/skills/performance-benchmark/examples/report-format.md +43 -0
  602. package/skills/performance-benchmark/references/benchmark-script.md +169 -0
  603. package/skills/performance-metrics/SKILL.md +265 -0
  604. package/skills/plan/SKILL.md +199 -0
  605. package/skills/plan/references/gherkin-persistence.md +43 -0
  606. package/skills/plan/references/plan-template.md +182 -0
  607. package/skills/pr/SKILL.md +289 -0
  608. package/skills/pr/scripts/gate_retry_state.py +368 -0
  609. package/skills/project-init/README.md +141 -0
  610. package/skills/project-init/SKILL.md +1197 -0
  611. package/skills/project-init/evals/evals.json +200 -0
  612. package/skills/project-init/references/capability-tools.md +55 -0
  613. package/skills/project-init/references/configs.md +221 -0
  614. package/skills/property-based-testing/SKILL.md +121 -0
  615. package/skills/property-based-testing/fixtures/invariant_fixture.py +15 -0
  616. package/skills/property-based-testing/fixtures/js-roundtrip/README.md +42 -0
  617. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/LICENSE +21 -0
  618. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/README.md +263 -0
  619. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/fast-check.d.ts +5165 -0
  620. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/fast-check.js +12147 -0
  621. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/package.json +3 -0
  622. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/cjs/types57/fast-check.d.ts +5165 -0
  623. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/fast-check.d.ts +5165 -0
  624. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/fast-check.js +12011 -0
  625. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/rolldown-runtime-D7D4PA-g.js +13 -0
  626. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/lib/types57/fast-check.d.ts +5165 -0
  627. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/fast-check/package.json +94 -0
  628. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/LICENSE +21 -0
  629. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/README.md +168 -0
  630. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/RandomGenerator-DcXj09Ch.d.ts +14 -0
  631. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformBigInt.d.ts +15 -0
  632. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformBigInt.js +38 -0
  633. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat32.d.ts +15 -0
  634. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat32.js +18 -0
  635. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat64.d.ts +15 -0
  636. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformFloat64.js +22 -0
  637. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformInt.d.ts +15 -0
  638. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/distribution/uniformInt.js +134 -0
  639. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/RandomGenerator-DcXj09Ch.d.ts +14 -0
  640. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformBigInt.d.ts +15 -0
  641. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformBigInt.js +37 -0
  642. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.d.ts +15 -0
  643. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.js +17 -0
  644. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.d.ts +15 -0
  645. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.js +21 -0
  646. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformInt.d.ts +15 -0
  647. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/distribution/uniformInt.js +133 -0
  648. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/congruential32.d.ts +7 -0
  649. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/congruential32.js +44 -0
  650. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/mersenne.d.ts +7 -0
  651. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/mersenne.js +90 -0
  652. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xoroshiro128plus.d.ts +7 -0
  653. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xoroshiro128plus.js +80 -0
  654. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xorshift128plus.d.ts +7 -0
  655. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/generator/xorshift128plus.js +78 -0
  656. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/package.json +3 -0
  657. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/JumpableRandomGenerator.d.ts +16 -0
  658. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/JumpableRandomGenerator.js +0 -0
  659. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/RandomGenerator.d.ts +2 -0
  660. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/types/RandomGenerator.js +0 -0
  661. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/generateN.d.ts +6 -0
  662. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/generateN.js +8 -0
  663. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/purify.d.ts +12 -0
  664. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/purify.js +9 -0
  665. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/skipN.d.ts +6 -0
  666. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/esm/utils/skipN.js +6 -0
  667. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/congruential32.d.ts +7 -0
  668. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/congruential32.js +46 -0
  669. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/mersenne.d.ts +7 -0
  670. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/mersenne.js +92 -0
  671. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xoroshiro128plus.d.ts +7 -0
  672. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xoroshiro128plus.js +82 -0
  673. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xorshift128plus.d.ts +7 -0
  674. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/generator/xorshift128plus.js +80 -0
  675. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/JumpableRandomGenerator.d.ts +16 -0
  676. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/JumpableRandomGenerator.js +0 -0
  677. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/RandomGenerator.d.ts +2 -0
  678. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/types/RandomGenerator.js +0 -0
  679. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/generateN.d.ts +6 -0
  680. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/generateN.js +9 -0
  681. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/purify.d.ts +12 -0
  682. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/purify.js +10 -0
  683. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/skipN.d.ts +6 -0
  684. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/lib/utils/skipN.js +7 -0
  685. package/skills/property-based-testing/fixtures/js-roundtrip/node_modules/pure-rand/package.json +133 -0
  686. package/skills/property-based-testing/fixtures/js-roundtrip/package-lock.json +1179 -0
  687. package/skills/property-based-testing/fixtures/js-roundtrip/package.json +14 -0
  688. package/skills/property-based-testing/fixtures/js-roundtrip/roundtrip.js +29 -0
  689. package/skills/property-based-testing/fixtures/js-roundtrip/roundtrip.properties.test.js +16 -0
  690. package/skills/property-based-testing/fixtures/no_property_fixture.py +10 -0
  691. package/skills/property-based-testing/fixtures/roundtrip_fixture.py +16 -0
  692. package/skills/property-based-testing/references/languages/javascript.md +54 -0
  693. package/skills/property-based-testing/scripts/detect_and_dispatch.py +80 -0
  694. package/skills/property-based-testing/scripts/hypothesis_scaffold.py +276 -0
  695. package/skills/proxy-resilience/SKILL.md +84 -0
  696. package/skills/quality-gate-pipeline/SKILL.md +184 -0
  697. package/skills/quality-targets-converge/SKILL.md +254 -0
  698. package/skills/repo-review/SKILL.md +159 -0
  699. package/skills/report-pdf/SKILL.md +66 -0
  700. package/skills/review/SKILL.md +47 -0
  701. package/skills/review-agent/SKILL.md +152 -0
  702. package/skills/review-summary/SKILL.md +73 -0
  703. package/skills/run-report/SKILL.md +70 -0
  704. package/skills/semantic-duplication-scan/SKILL.md +337 -0
  705. package/skills/semantic-scan/SKILL.md +53 -0
  706. package/skills/semgrep-analyze/SKILL.md +139 -0
  707. package/skills/setup/SKILL.md +1122 -0
  708. package/skills/ship/SKILL.md +240 -0
  709. package/skills/source-verification/SKILL.md +210 -0
  710. package/skills/source-verification/scripts/claim_extractor.py +155 -0
  711. package/skills/specs/.size-baseline.json +4 -0
  712. package/skills/specs/SKILL.md +243 -0
  713. package/skills/specs/references/completeness-checklist.md +83 -0
  714. package/skills/specs/references/extraction.md +58 -0
  715. package/skills/specs/references/glossary.md +59 -0
  716. package/skills/specs/references/persistence.md +115 -0
  717. package/skills/specs/references/predictability-check.md +77 -0
  718. package/skills/static-analysis-integration/SKILL.md +235 -0
  719. package/skills/static-analysis-integration/adapters/_envelope.py +26 -0
  720. package/skills/static-analysis-integration/adapters/jscpd-adapter.py +66 -0
  721. package/skills/static-analysis-integration/adapters/lizard-adapter.py +81 -0
  722. package/skills/static-analysis-integration/adapters/mypy-adapter.py +50 -0
  723. package/skills/static-analysis-integration/adapters/mypy-src-layout.py +93 -0
  724. package/skills/static-analysis-integration/adapters/security-review-adapter.py +212 -0
  725. package/skills/static-analysis-integration/maintenance.md +23 -0
  726. package/skills/static-analysis-integration/references/language-setup.md +228 -0
  727. package/skills/static-analysis-integration/references/sarif-parser.md +124 -0
  728. package/skills/static-analysis-integration/references/security-review-adapter.md +118 -0
  729. package/skills/static-analysis-integration/references/tool-configs.md +617 -0
  730. package/skills/static-analysis-integration/rulesets/pmd-quickstart.xml +24 -0
  731. package/skills/stryker-xunit-v2-shim/SKILL.md +274 -0
  732. package/skills/stryker-xunit-v2-shim/references/shim-howto.md +256 -0
  733. package/skills/stryker-xunit-v2-shim/scripts/generate_shim.py +143 -0
  734. package/skills/systematic-debugging/SKILL.md +130 -0
  735. package/skills/telemetry/SKILL.md +75 -0
  736. package/skills/test-audit-disable/SKILL.md +129 -0
  737. package/skills/test-design/SKILL.md +177 -0
  738. package/skills/test-design/scripts/__pycache__/internal_double_detector.cpython-314.pyc +0 -0
  739. package/skills/test-design/scripts/internal_double_detector.py +631 -0
  740. package/skills/test-design-advisor/SKILL.md +166 -0
  741. package/skills/test-driven-development/SKILL.md +169 -0
  742. package/skills/test-health/SKILL.md +262 -0
  743. package/skills/test-improve/SKILL.md +239 -0
  744. package/skills/test-improve/references/phase-0-approach-contract.md +228 -0
  745. package/skills/test-improve/references/phase-1-analyze.md +131 -0
  746. package/skills/test-improve/references/phase-2-baseline.md +121 -0
  747. package/skills/test-improve/references/phase-3-derive-gherkin.md +53 -0
  748. package/skills/test-improve/references/phase-4-plan-fixes.md +34 -0
  749. package/skills/test-improve/references/phase-5-improve.md +215 -0
  750. package/skills/test-improve/references/phase-6-refactor-decision.md +45 -0
  751. package/skills/test-improve/references/phase-7-refactor.md +44 -0
  752. package/skills/test-improve/references/phase-8-validate.md +66 -0
  753. package/skills/test-improve/references/phase-9-close-out-prompt.md +11 -0
  754. package/skills/test-improve/references/phase-9-report.md +62 -0
  755. package/skills/test-improve/references/review-loop.md +92 -0
  756. package/skills/test-improve/templates/executive-summary.md +123 -0
  757. package/skills/threat-modeling/SKILL.md +108 -0
  758. package/skills/triage/SKILL.md +211 -0
  759. package/skills/ubiquitous-language/SKILL.md +192 -0
  760. package/skills/ubiquitous-language/scripts/collect_domain_signals.py +300 -0
  761. package/skills/unfreeze/SKILL.md +37 -0
  762. package/skills/upgrade/SKILL.md +31 -0
  763. package/skills/upgrade/scripts/check_version_drift.py +113 -0
  764. package/skills/upgrade/scripts/enable_autoupdate.py +149 -0
  765. package/skills/version/SKILL.md +25 -0
  766. package/sync/__pycache__/sync_upstream.cpython-314.pyc +0 -0
  767. package/sync/sync_upstream.py +293 -0
  768. package/templates/ACCEPTED-RISKS.md.tmpl +46 -0
  769. package/templates/agents/agent-template.md +151 -0
  770. package/templates/agents/angular-testing.md +66 -0
  771. package/templates/agents/csharp-quality.md +63 -0
  772. package/templates/agents/esm-enforcer.md +52 -0
  773. package/templates/agents/front-end-testing.md +65 -0
  774. package/templates/agents/go-quality.md +65 -0
  775. package/templates/agents/python-quality.md +62 -0
  776. package/templates/agents/react-testing.md +61 -0
  777. package/templates/agents/ts-enforcer.md +60 -0
  778. package/templates/agents/twelve-factor-audit.md +49 -0
  779. package/tools/entropy-check.py +250 -0
  780. package/tools/model-hash-verify.py +213 -0
@@ -0,0 +1,62 @@
1
+ Produce a stable executive-summary report from the shipped template. Every
2
+ section is present in every run; empty sections **do not disappear** — they
3
+ render `_Not applicable — <reason>._` so the shape of the report never changes
4
+ between runs.
5
+
6
+ **Template source.** Copy
7
+ `plugins/dev-team/skills/test-improve/templates/executive-summary.md` to the
8
+ output path.
9
+
10
+ **Output path.** `.dev-team-reports/test-improve/<slug>/report-<date>.md` —
11
+ the file is always relative to the invocation directory, whether the run used
12
+ a tracker sink or local-files mode. Its git-tracked `data/` sibling is
13
+ `.dev-team-reports/test-improve/<slug>/data/`.
14
+
15
+ **Interpolation.** Every placeholder is **interpolated** from two sources:
16
+ the git-tracked `.dev-team-reports/test-improve/<slug>/data/` directory
17
+ (`test-counts-before.json`, `test-counts-after.json` if Phase 8 ran,
18
+ `baseline-coverage.json`, `baseline-mutation.json` in `baseline+kill-loop`
19
+ mode, and `coverage-history.json` — each already current there, written
20
+ directly at the point of capture by Phase 2 and Phase 5 respectively), and the
21
+ process/audit state still under `.claude/memory/test-improve/<slug>/`
22
+ (`phase-0.md`, `phase-1.md`, `phase-4.md`, `phase-5-review.json`,
23
+ `phase-7-review.json` if Phase 7 ran, `waivers.json`, `phase-8.md`), plus
24
+ `.dev-team-reports/test-improve/<slug>/refactor-backlog.md` if Phase 6 chose
25
+ `[b]` or Phase 8 wrote a no-refactor-mode entry to it. `mutation-history.json`
26
+ is outside this interpolation set — and always has been; it is consumed by
27
+ `/coverage-delta` and `/quality-targets-converge`, not by the
28
+ executive-summary report, so its absence from this list is not the bug this
29
+ plan fixes. `coverage-gap-ranking.json` (issue #1786) is outside it for the
30
+ same reason: it is a targeting input read by Phases 1, 4, and 5, not a number
31
+ the report interpolates. No placeholder is left literal.
32
+
33
+ **Empty-section rule.** Sections with no data render `_Not applicable —
34
+ <reason>._` (e.g. § 6 when Phase 7 was declined reads "*Phase 7 not run —
35
+ operator chose to backlog REFACTOR_REQUIRED items at Phase 6.*"). Sections
36
+ are never omitted or hidden — this keeps the report shape stable across runs.
37
+
38
+ **Mutation row shape (per Phase-0 mutation mode).**
39
+
40
+ - `off`: `_Not applicable — mutation disabled at Phase 0._`
41
+ - `kill-loop`, non-Go: final surviving-mutant count from the Phase-5 kill loop;
42
+ the baseline and Δ cells read `_Not applicable — no baseline run (kill-loop
43
+ mode)._` since no Phase-2 baseline was taken.
44
+ - `baseline+kill-loop`, non-Go: honest baseline-to-achieved score (hard kills /
45
+ effective total; timeouts reported separately) with the Δ column populated.
46
+ - Go stack (`kill-loop` or `baseline+kill-loop`): honest numbers with the
47
+ "advisory only — go-mutesting is alpha" footnote.
48
+
49
+ **Parent-issue-or-FEATURE.md link update.** When the run used a **parent
50
+ tracker** (Phase 0 selected `--parent <url>`), the parent issue is updated
51
+ with a link to `.dev-team-reports/test-improve/<slug>/report-<date>.md`. When
52
+ the run was **local-files-only**, `.claude/plans/test-improve/FEATURE.md` is
53
+ updated with the same link.
54
+
55
+ **Regeneratable-from-tracked-data contract.** The report is a **pure
56
+ function** of the git-tracked `.dev-team-reports/test-improve/<slug>/data/`
57
+ directory (the numbers, already current by construction — each file was
58
+ written directly there at the point of capture) plus the process/audit
59
+ narrative still under `.claude/memory/test-improve/<slug>/`. Deleting the
60
+ report file and re-invoking Phase 9 reproduces the report byte-for-byte —
61
+ there is no copy step to re-run, and always exactly one place to read the
62
+ numbers from; Phase 9 always reads `data/` directly, unconditionally.
@@ -0,0 +1,92 @@
1
+ Shared end-of-phase review loop: dispatch the `/code-review` panel once
2
+ against the phase's diff, score the in-scope tests, apply fixes, confirm
3
+ them, and iterate to a capped round count before escalating to the operator.
4
+ Phase 5 and Phase 7 both invoke this loop verbatim against their own diff and
5
+ write their own phase-numbered evidence file using the fixed schema below.
6
+
7
+ 1. **Dispatch the review panel — one panel per round (#1959).** Run
8
+ `/code-review --since <base-sha> --internal` against the diff between the
9
+ phase's base commit and HEAD. `--internal` (not `--json`) mirrors
10
+ `/build`'s Step 6 backstop-review flag choice: it suppresses the
11
+ `.dev-team-reports/code-review.md` write (this is a diff-scoped,
12
+ phase-internal review, not a human-invoked top-level run —
13
+ `knowledge/report-output-location.md`) while keeping the prose/
14
+ `corrections/` output sub-step 3 depends on — `--json` would skip that
15
+ output entirely.
16
+
17
+ **This loop no longer dispatches `/test-design` alongside the panel.**
18
+ `/test-design`'s two review agents — `test-review` and
19
+ `test-smell-review` — are both already in `/code-review`'s own roster for
20
+ this loop's changesets: `test-review` declares `Scope: always`, and
21
+ `test-smell-review` declares `Scope: test-files` (#1978), which
22
+ `scripts/select_lenses.py` resolves against
23
+ `knowledge/test-file-indicators.md`. A phase diff that adds or edits
24
+ tests — which is what this loop reviews, and what `refactor-mode:
25
+ no-refactor` guarantees — matches that scope by construction. Dispatching both skills against one
26
+ diff paid for the same two agents, over the same files, twice per round.
27
+ The panel still runs them; only the duplicate dispatch (and
28
+ `/test-design`'s own orchestration/aggregation layer) is gone.
29
+
30
+ **Confirm the two test lenses actually ran — do not assume the roster
31
+ kept them.** `/code-review`'s change-size gate (#1339) drops every
32
+ `Scope: always` agent outside its `keepAgents` floor on a small diff, and
33
+ `test-review`/`test-smell-review` are not in that floor. Read the panel's
34
+ reported roster (it names every gate-driven drop). If either lens was
35
+ dropped by a gate, dispatch it directly —
36
+ `/review-agent test-review --internal` and/or
37
+ `/review-agent test-smell-review --internal` — before proceeding. A
38
+ test-improvement phase whose review skipped both test lenses has reviewed
39
+ the wrong thing; this is the one lens pair this loop guarantees.
40
+
41
+ `/test-design`'s forward-design worker (`test-design-advisor`) is not lost
42
+ here either: it auto-fires only for untested production code or a
43
+ single-production-file target, and a Phase-5/7 diff under this loop is
44
+ test-and-seam-scoped, so it would not have fired. Reach for `/test-design`
45
+ directly when you want forward design for a specific module — it is
46
+ unchanged as a standalone skill and still runs inside `/test-health`.
47
+ 2. **Score the in-scope tests.** Invoke `Skill(farley-score ...)` scoped to
48
+ the phase diff's test files (indicators in
49
+ `knowledge/test-file-indicators.md`). This is the one input the evidence
50
+ schema needs that the panel does not produce; it is a direct worker call,
51
+ not an orchestrator dispatch.
52
+ 3. **Apply fixes, then confirm them narrowly (#1960).** Run
53
+ `/apply-fixes corrections/`. To confirm the fixes landed, **do not re-run
54
+ the full panel** — a whole-roster re-dispatch re-pays discovery cost to
55
+ answer a confirmation question. Confirm the way `/code-review` step 6a
56
+ and `/build`'s checkpoints already do:
57
+
58
+ - **Deterministic-first triage (#1610).** When a fix is mechanical and the
59
+ claim is deterministically checkable, close it with the project's own
60
+ stack tooling — its linter/type-checker (`ruff`/`mypy`, ESLint/`tsc`,
61
+ `pmd`, `dotnet format`/`dotnet build`, …), its test suite, or `grep` —
62
+ never an agent.
63
+ - **Verification-mode re-dispatch for the rest.** Re-dispatch **only the
64
+ agents whose findings were fixed**, with the narrowed payload and the
65
+ mandatory `insufficient-context` escape, resolving each agent's tier via
66
+ `python3 "$CLAUDE_PLUGIN_ROOT/scripts/verify_tier.py" --agent <name>`.
67
+ The payload contract, the escape's escalation path (an
68
+ `insufficient-context` reply earns a **full-context** re-dispatch of
69
+ that same agent at its discovery tier — never a shrug), and the
70
+ declared-never-inferred tier-down rule are stated once in
71
+ [`../../../knowledge/verification-mode.md`](../../../knowledge/verification-mode.md)
72
+ and are not restated here.
73
+
74
+ Discovery of *new* problems remains the initial panel's job (sub-step 1),
75
+ which is unchanged — this sub-step only cheapens confirming what was just
76
+ fixed.
77
+ 4. **Iterate at most 2 rounds.** After **2 iterations** without clean
78
+ `/code-review`, prompt the operator with **`[r]evise / [w]aive / [q]uit`**
79
+ (shape `[r/w/q]`).
80
+ - `[r]` triggers one more revise pass (may exceed the cap by operator
81
+ consent).
82
+ - `[w]` writes the outstanding finding set to
83
+ `.claude/memory/test-improve/<slug>/waivers.json`, **tagged** with the
84
+ finding list, and closes the phase.
85
+ - `[q]` quits the phase with the loop unresolved.
86
+ 5. **Evidence.** Write the calling phase's own review-evidence file with the
87
+ fixed schema — fields: `base_sha`, `head_sha`, `farley_score`, `smells`,
88
+ `code_review`, `iterations`, `escalated`. `farley_score` comes from
89
+ sub-step 2. `smells` comes from the panel's own `test-smell-review`
90
+ findings (sub-step 1) — the same agent's findings the removed
91
+ `/test-design` dispatch used to aggregate, read from the panel result
92
+ instead of from a second dispatch of it.
@@ -0,0 +1,123 @@
1
+ # /test-improve executive summary — {{repo_slug}} ({{run_date}})
2
+
3
+ > Generated by `/test-improve` Phase 9 from the git-tracked `.dev-team-reports/test-improve/{{slug}}/data/` directory (see §3) plus the process/audit state under `.claude/memory/test-improve/{{slug}}/`. Regeneratable: delete this file and re-run Phase 9 against those persisted artifacts to reproduce it byte-for-byte.
4
+
5
+ ## 1. Bottom line
6
+
7
+ {{bottom_line_narrative}}
8
+
9
+ | Metric | Baseline | Achieved | Δ |
10
+ | --- | --- | --- | --- |
11
+ | Line coverage | {{baseline_line_cov}} | {{achieved_line_cov}} | {{delta_line_cov}} |
12
+ | Branch coverage | {{baseline_branch_cov}} | {{achieved_branch_cov}} | {{delta_branch_cov}} |
13
+ | Mutation score (hard kills) | {{baseline_mutation_hard}} | {{achieved_mutation_hard}} | {{delta_mutation_hard}} |
14
+ | Mutation timeouts (reported separately) | {{baseline_mutation_timeouts}} | {{achieved_mutation_timeouts}} | {{delta_mutation_timeouts}} |
15
+ | Determinism | {{baseline_determinism}} | {{achieved_determinism}} | {{delta_determinism}} |
16
+ | Wall-clock (full suite) | {{baseline_wallclock}} | {{achieved_wallclock}} | {{delta_wallclock}} |
17
+
18
+ _When mutation was disabled at Phase 0 (mode `off`), the mutation rows read **"Not applicable — mutation disabled at Phase 0."**_
19
+
20
+ _When mutation mode was `kill-loop` (mutant-kill loop with no Phase-2 baseline), the Baseline and Δ cells read **"Not applicable — no baseline run (kill-loop mode)."** and Achieved carries the final surviving-mutant count. Only `baseline+kill-loop` populates the baseline and Δ cells._
21
+
22
+ _When the stack is Go, the mutation row carries the footnote: **"Advisory only — go-mutesting is alpha; survivor count is not a gate for this run."**_
23
+
24
+ ### Tests by type
25
+
26
+ | Type | Baseline | Achieved | Δ |
27
+ | --- | --- | --- | --- |
28
+ | Static analysis | {{baseline_static_analysis}} | {{achieved_static_analysis}} | {{delta_static_analysis}} |
29
+ | Unit | {{baseline_unit}} | {{achieved_unit}} | {{delta_unit}} |
30
+ | Component | {{baseline_component}} | {{achieved_component}} | {{delta_component}} |
31
+ | Contract | {{baseline_contract}} | {{achieved_contract}} | {{delta_contract}} |
32
+ | Integration | {{baseline_integration}} | {{achieved_integration}} | {{delta_integration}} |
33
+ | End-to-end | {{baseline_end_to_end}} | {{achieved_end_to_end}} | {{delta_end_to_end}} |
34
+
35
+ _Counts are test suites/files, not individual test cases. A type with zero
36
+ suites still renders its row (`0 / 0 / 0`) — never omitted._
37
+
38
+ _When `test-counts-after.json` does not exist (the operator quit before
39
+ Phase 8 ran), every row's Achieved and Δ cells read **"Not applicable —
40
+ Phase 8 not run."**; Baseline still renders from `test-counts-before.json`._
41
+
42
+ ## 2. What was done this run
43
+
44
+ {{phase_summary}}
45
+
46
+ - Phase 0 — approach contract resolved
47
+ - Phase 1 — analysis via `/test-health`
48
+ - Phase 2 — coverage {{mutation_baseline_phrase}} baseline captured
49
+ - Phase 3 — {{gherkin_phrase}}
50
+ - Phase 4 — {{triage_summary}}
51
+ - Phase 5 — improve without refactoring
52
+ - Phase 6 — refactor decision: `{{phase_6_choice}}`
53
+ - Phase 7 — refactor-for-testability {{phase_7_phrase}}
54
+ - Phase 8 — quality targets: {{targets_summary}}
55
+
56
+ ## 3. What was measured
57
+
58
+ {{measurement_narrative}}
59
+
60
+ Baseline artifacts (git-tracked under `.dev-team-reports/test-improve/{{slug}}/data/` — copied there unconditionally by Phase 9 from their canonical `.claude/memory/test-improve/{{slug}}/` working copy):
61
+
62
+ - `baseline-coverage.json`
63
+ - `baseline-mutation.json` — _Not applicable in `off` and `kill-loop` modes (no baseline run); advisory-only on Go `baseline+kill-loop`._
64
+
65
+ Per-Story deltas:
66
+
67
+ - `coverage-history.json`
68
+
69
+ ## 4. Findings from `/test-health`
70
+
71
+ {{findings_summary}}
72
+
73
+ Full analysis: `.claude/memory/test-improve/{{slug}}/phase-1.md`.
74
+
75
+ ## 5. Work completed (Phase 5 — no refactoring)
76
+
77
+ {{phase_5_completed}}
78
+
79
+ Review evidence: `.claude/memory/test-improve/{{slug}}/phase-5-review.json`.
80
+
81
+ ## 6. Work completed (Phase 7 — refactor-for-testability)
82
+
83
+ {{phase_7_completed}}
84
+
85
+ _When Phase 7 was declined: **"Phase 7 not run — operator chose to backlog REFACTOR_REQUIRED items at Phase 6."**_
86
+
87
+ Review evidence: `.claude/memory/test-improve/{{slug}}/phase-7-review.json` — _Not applicable when Phase 7 did not run._
88
+
89
+ ## 7. Deferred work — areas requiring refactoring to add tests
90
+
91
+ {{deferred_summary}}
92
+
93
+ | Seam needed | Behavior gained | Estimated risk |
94
+ | --- | --- | --- |
95
+ | {{refactor_backlog_rows}} | | |
96
+
97
+ _When `refactor-backlog.md` does not exist (no items were backlogged this run), this section reads **"Not applicable — no REFACTOR_REQUIRED items were backlogged this run."** instead of a table._
98
+
99
+ Backlog file: `.dev-team-reports/test-improve/{{slug}}/refactor-backlog.md` — _Not applicable when no items were backlogged._
100
+
101
+ ## 8. Waivers
102
+
103
+ {{waivers_summary}}
104
+
105
+ Waivers file: `.claude/memory/test-improve/{{slug}}/waivers.json` — _Not applicable when no waivers were captured._
106
+
107
+ ## 9. Next actions
108
+
109
+ {{next_actions}}
110
+
111
+ ## 10. Provenance
112
+
113
+ - Repository: `{{repo_path}}`
114
+ - Slug: `{{slug}}`
115
+ - Branch / base SHA: `{{branch}}` / `{{base_sha}}`
116
+ - Head SHA: `{{head_sha}}`
117
+ - Run started: `{{run_started}}`
118
+ - Run completed: `{{run_completed}}`
119
+ - Phase-0 settings: `{{phase_0_recap}}`
120
+ - Sink: `{{sink_description}}`
121
+ - `/test-improve` version: `{{plugin_version}}`
122
+
123
+ _This report is regeneratable from the git-tracked `.dev-team-reports/test-improve/{{slug}}/data/` directory (with baseline artifacts under it; see §3) plus the process/audit state under `.claude/memory/test-improve/{{slug}}/`. Delete and re-run Phase 9 to reproduce it._
@@ -0,0 +1,108 @@
1
+ ---
2
+ name: threat-modeling
3
+ description: Structured STRIDE security analysis for identifying threats, attack surfaces, and mitigations. Use before implementing any new API, service, authentication change, or data flow crossing trust boundaries — security analysis belongs in the design phase, not after.
4
+ role: worker
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Threat Modeling
9
+
10
+ Role: worker. This command performs STRIDE analysis directly and documents
11
+ threats/mitigations — it does not implement the mitigations it identifies.
12
+
13
+ ## Overview
14
+
15
+ Structured security analysis for identifying threats, attack surfaces, and mitigations during design or review phases. Ensures security considerations are addressed before implementation, not after.
16
+
17
+ ## Constraints
18
+ - Focus on trust boundaries, not implementation details
19
+ - Every mitigation must map to a verifiable test or verification method
20
+ - Document accepted risks explicitly with rationale; do not silently ignore threats
21
+ - Revisit the threat model when architecture, authentication, or data flows change
22
+
23
+ ## Core Concepts
24
+
25
+ ### STRIDE Classification
26
+
27
+ | Category | Definition | Example Threats |
28
+ | --- | --- | --- |
29
+ | **S**poofing | Pretending to be something or someone else | Forged authentication tokens, impersonated services |
30
+ | **T**ampering | Modifying data or code without authorization | Altered request payloads, modified configuration files |
31
+ | **R**epudiation | Denying an action was performed | Unlogged administrative actions, unsigned transactions |
32
+ | **I**nformation Disclosure | Exposing data to unauthorized parties | Leaked credentials in logs, verbose error messages |
33
+ | **D**enial of Service | Making a system unavailable | Resource exhaustion, unbounded queries |
34
+ | **E**levation of Privilege | Gaining access beyond authorization | Broken access control, privilege escalation via injection |
35
+
36
+ ### Trust Boundaries
37
+
38
+ Points where data crosses privilege levels. Every trust boundary is a potential attack surface. Common boundaries:
39
+
40
+ - Client to server
41
+ - Service to service (internal)
42
+ - Application to database
43
+ - System to external dependency
44
+ - User role transitions
45
+
46
+ ### Attack Surface
47
+
48
+ Entry points exposed to untrusted input: API endpoints, file uploads, message queues, configuration inputs, user-supplied queries. Smaller attack surface means fewer threats to mitigate.
49
+
50
+ ## Patterns
51
+
52
+ ### Threat Identification Procedure
53
+
54
+ 1. **Enumerate assets** — identify what needs protection (data, services, credentials, infrastructure)
55
+ 2. **Draw trust boundaries** — map where data crosses privilege levels
56
+ 3. **Identify entry points** — list all inputs exposed to untrusted sources
57
+ 4. **Classify threats per STRIDE** — for each entry point, apply each STRIDE category and document applicable threats
58
+ 5. **Rate severity** — assess impact (critical/high/medium/low) and likelihood for each threat
59
+
60
+ ### Mitigation Mapping
61
+
62
+ | Threat Category | Standard Mitigations | Verification Method |
63
+ | --- | --- | --- |
64
+ | Spoofing | Authentication, mutual TLS, token validation | Auth integration tests, certificate verification |
65
+ | Tampering | Input validation, integrity checks, signed payloads | Tampering test cases, checksum validation |
66
+ | Repudiation | Audit logging, event sourcing, digital signatures | Log completeness review, signature verification |
67
+ | Information Disclosure | Encryption at rest/in transit, access controls, log scrubbing | Security scan, log audit, access control tests |
68
+ | Denial of Service | Rate limiting, resource quotas, circuit breakers | Load tests, resource monitoring |
69
+ | Elevation of Privilege | Least privilege, role-based access, input sanitization | Authorization test matrix, penetration tests |
70
+
71
+ ### Threat Model Review Triggers
72
+
73
+ Revisit the threat model when any of the following occur:
74
+
75
+ - New external dependency added
76
+ - New API endpoint or entry point exposed
77
+ - Authentication or authorization changes
78
+ - Data flow changes crossing trust boundaries
79
+ - Infrastructure topology changes
80
+
81
+ ## When to Apply
82
+
83
+ | Scenario | Apply? |
84
+ | --- | --- |
85
+ | New service or API endpoint | Yes |
86
+ | New external integration | Yes |
87
+ | Authentication or authorization changes | Yes |
88
+ | Data flow crossing trust boundaries | Yes |
89
+ | Internal refactoring with no boundary changes | No |
90
+ | UI-only cosmetic changes | No |
91
+
92
+ ## Guidelines
93
+
94
+ 1. **Focus on trust boundaries, not implementation details.** Threats exist at boundaries where privilege levels change.
95
+ 2. **Mitigations must be verifiable.** Every mitigation maps to a test or verification method; unverifiable mitigations are theater.
96
+ 3. **Document accepted risks explicitly.** When a threat is acknowledged but not mitigated, record the rationale, severity, and conditions for revisiting.
97
+ 4. **Review when architecture changes.** The threat model is a living document that stays current with the system it describes.
98
+ 5. **Severity drives priority.** Critical and high-severity threats block implementation; medium and low are tracked and scheduled.
99
+ 6. **Threat models are collaborative.** Security analysis improves with input from architects, developers, and operations engineers.
100
+
101
+ ## Output
102
+ STRIDE threat table with severity ratings, mitigation mapping, and verification methods. Explicitly list accepted risks with rationale. Be concise — table format; group by STRIDE category.
103
+
104
+ ## Integration
105
+
106
+ - **Agent-Assisted Specification** — invoke during the Architecture Specification stage to identify security constraints before implementation
107
+ - **Governance & Compliance** — threat documentation feeds compliance audit trails and security review records
108
+ - **Accuracy Validation** — verify threat assessments against actual system state, not assumed state
@@ -0,0 +1,211 @@
1
+ ---
2
+ name: triage
3
+ description: >-
4
+ Investigate a bug, find its root cause, and write a portable triage record to
5
+ .dev-team-reports/triage/<slug>.md with a TDD fix plan. Use when the user
6
+ reports a bug and wants it triaged, says "triage this", "investigate and
7
+ write it up", or wants a hands-off bug investigation that produces an
8
+ actionable record.
9
+ argument-hint: "<bug description or error message> [--pdf]"
10
+ user-invocable: true
11
+ allowed-tools: Read, Glob, Grep, Bash, Write, Agent
12
+ ---
13
+
14
+ # Bug Triage
15
+
16
+ Role: worker.
17
+
18
+ Investigate a bug hands-off, find root cause, and write a TDD fix plan to a
19
+ portable triage record at `.dev-team-reports/triage/<slug>.md` — no
20
+ issue-tracker dependency.
21
+
22
+ ## Worker constraints
23
+
24
+ 1. Investigate and record; do not fix the bug.
25
+ 2. Find root cause before recording; do not record on symptoms alone — and do
26
+ not record an unverified, unrelated finding as if it were the root cause;
27
+ use the `unconfirmed` outcome instead.
28
+ 3. **Be concise.** The record is structured; chat is the `triage-record:` line
29
+ plus a one-line root-cause summary — not the full body.
30
+
31
+ ## Process
32
+
33
+ ### 1. Capture the Problem
34
+
35
+ Get the bug description from the arguments or conversation. If no description is
36
+ given, ask EXACTLY one question: `What's the problem you're seeing?` and stop.
37
+ If a description is given, ask nothing — start investigating immediately.
38
+
39
+ **Scoped exception:** if the description signals a cross-service or
40
+ intermittent symptom (it names multiple repos/services, or uses language like
41
+ "intermittent", "sometimes", or "inconsistently"), ask ONE additional targeted
42
+ question before investigating: `Do you have any of the following: logs, a
43
+ sample request/response pair, trace/audit IDs, or a config/pipeline export?`
44
+ This is a narrow exception for that signal only — the "ask nothing" rule above
45
+ still applies to every other description, and the no-description fallback
46
+ question above is unchanged.
47
+
48
+ Arguments: $ARGUMENTS
49
+
50
+ ### 2. Investigate
51
+
52
+ Apply the systematic debugging protocol from `skills/systematic-debugging/SKILL.md`:
53
+
54
+ 1. **Reproduce**: Run the failing test or trigger the error
55
+ 2. **Investigate**: Trace data flow, check recent changes, find working reference code
56
+ 3. **Root cause**: Form and test a hypothesis
57
+
58
+ Use the `dev_team_subagent` tool with `agent: "Explore"` to deeply investigate the codebase:
59
+ related source files and dependencies, existing tests (covered vs missing),
60
+ recent changes to affected files (`git log`), error handling in the code path,
61
+ and similar patterns elsewhere that work correctly.
62
+
63
+ **Boundary dead-end:** if static tracing (grep/`codegraph_explore`) returns
64
+ zero hits for the relevant identifiers across all checked-out repos, name this
65
+ explicitly as **"producer not located in scope"** — do not keep searching
66
+ until an unrelated bug-shaped pattern turns up nearby. Carry this named
67
+ outcome into the Verification Checkpoint (Step 4), which routes it to the
68
+ `unconfirmed` outcome.
69
+
70
+ ### 3. Design TDD Fix Plan
71
+
72
+ Create an ordered list of RED-GREEN cycles, each a vertical slice:
73
+
74
+ - **RED**: A specific test capturing broken/missing behavior
75
+ - **GREEN**: The minimal code change to make that test pass
76
+
77
+ Tests verify behavior at the public interface, not implementation details.
78
+
79
+ ### 4. Verification Checkpoint
80
+
81
+ **Hard gate — cannot be skipped implicitly.** Before writing a `confirmed`
82
+ record, state in one sentence what concrete evidence (a log line, a
83
+ reproduced failure, an observed value in the actual data path) ties the
84
+ hypothesized cause to the *reported symptom*. A boundary dead-end from Step 2
85
+ ("producer not located in scope") counts as inadequate evidence.
86
+
87
+ If that evidence exists, proceed to Step 5 with `confidence: confirmed`.
88
+ If it does not, do not write a confirmed root-cause section — route to the
89
+ `unconfirmed` outcome in Step 5 instead. There is no silent pass-through: a
90
+ missing or hand-waved evidence statement means `unconfirmed`, not `confirmed`.
91
+
92
+ ### 5. Write the Triage Record
93
+
94
+ **Resolve the slug** from the bug title/description with this 8-step algorithm:
95
+
96
+ 1. Lowercase.
97
+ 2. Strip non-ASCII characters.
98
+ 3. Replace spaces and underscores with hyphens.
99
+ 4. Strip every character that is not `[a-z0-9-]`.
100
+ 5. Collapse consecutive hyphens to one.
101
+ 6. If longer than 60 characters, truncate to 60, then cut back to the last
102
+ hyphen (so no word is split).
103
+ 7. Strip leading/trailing hyphens.
104
+ 8. If the result is empty, fall back to `triage-YYYYMMDD` (today's UTC date).
105
+
106
+ **Resolve collisions:** if `.dev-team-reports/triage/<slug>.md` exists, append
107
+ `-2`, `-3`, … up to `-99` until a free name is found. **Never overwrite** an
108
+ existing record.
109
+
110
+ **Write the file:** (see `knowledge/report-output-location.md` for the
111
+ shared `.dev-team-reports/` convention this follows)
112
+
113
+ ```bash
114
+ mkdir -p .dev-team-reports/triage/
115
+ ```
116
+
117
+ If `.dev-team-reports/triage/` cannot be created or written (permission/read-only):
118
+ report `Cannot write .dev-team-reports/triage/<slug>.md: <error>`, write the
119
+ same content to a temp file (`tmp/triage-<slug>.md` or `$TMPDIR`), and print
120
+ the full record content to chat so nothing is lost.
121
+
122
+ When `--pdf` was passed and the record was written to disk, render **that
123
+ resolved path** (the exact `<slug>` chosen after collision resolution) to a
124
+ sibling PDF per `knowledge/report-pdf-integration.md` (additive; non-fatal if
125
+ no engine):
126
+
127
+ ```bash
128
+ sh "$CLAUDE_PLUGIN_ROOT/hooks/py.sh" "$CLAUDE_PLUGIN_ROOT/hooks/lib/report_pdf.py" .dev-team-reports/triage/<resolved-slug>.md
129
+ ```
130
+
131
+ The record is YAML frontmatter followed by four sections. Three outcomes are
132
+ possible, and they are mutually distinct — not variants of one another:
133
+
134
+ - **`confirmed`** — the Verification Checkpoint (Step 4) found concrete
135
+ evidence tying the cause to the reported symptom. Full Root Cause Analysis
136
+ and TDD Fix Plan, no banner.
137
+ - **`unconfirmed`** — a contributing factor was identified, but the
138
+ checkpoint found no evidence linking it to the reported symptom (including
139
+ a Step 2 boundary dead-end). Banner required; fix plan reframed as
140
+ addressing the contributing factor, not the confirmed cause.
141
+ - **not determined** — no plausible cause was found at all. `## TDD Fix Plan`
142
+ is replaced with the fixed string below; there is no `confidence` field
143
+ distinction because there is nothing to mark as confirmed or unconfirmed.
144
+
145
+ ```markdown
146
+ ---
147
+ id: <resolved-slug>
148
+ created: <YYYY-MM-DDThh:mm:ssZ>
149
+ status: open
150
+ confidence: confirmed
151
+ ---
152
+
153
+ # <concise bug title>
154
+
155
+ ## Problem
156
+
157
+ - **Actual behavior**: [what happens]
158
+ - **Expected behavior**: [what should happen]
159
+ - **Reproduction**: [how to trigger it]
160
+
161
+ ## Root Cause Analysis
162
+
163
+ [What code path is involved, why it fails, contributing factors. Describe
164
+ modules and behaviors, not file paths — the record should survive refactors.]
165
+
166
+ ## TDD Fix Plan
167
+
168
+ 1. **RED**: Write a test that [expected behavior]
169
+ **GREEN**: [Minimal change to pass]
170
+
171
+ 2. **RED**: Write a test that [next behavior]
172
+ **GREEN**: [Minimal change to pass]
173
+
174
+ **REFACTOR**: [Any cleanup after all tests pass]
175
+
176
+ ## Acceptance Criteria
177
+
178
+ - [ ] Root cause is addressed (not just symptom)
179
+ - [ ] All new tests pass
180
+ - [ ] Existing tests still pass
181
+ - [ ] No regressions introduced
182
+ ```
183
+
184
+ **`confidence` field:** omitted/absent defaults to `confirmed` — no migration
185
+ needed for historical triage records predating this schema. Set
186
+ `confidence: unconfirmed`
187
+ when the Verification Checkpoint routed here without evidence. When
188
+ `unconfirmed`, `## Root Cause Analysis` must open with:
189
+
190
+ ```
191
+ > **UNCONFIRMED** — contributing factor identified; not verified against the reported symptom.
192
+ ```
193
+
194
+ and `## TDD Fix Plan` must explicitly frame the plan as addressing "the
195
+ identified contributing factor," not the confirmed root cause.
196
+
197
+ At least one RED/GREEN cycle is required. **If no root cause was determined,**
198
+ the entire `## TDD Fix Plan` body is exactly:
199
+
200
+ ```
201
+ Root cause not determined — manual investigation required
202
+ ```
203
+
204
+ ### 6. Present Results
205
+
206
+ Print exactly two lines:
207
+
208
+ 1. `triage-record: .dev-team-reports/triage/<resolved-slug>.md` (the actual resolved path)
209
+ 2. A root-cause summary of at most 120 characters.
210
+
211
+ Do not repeat the full record body in chat.