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,114 @@
1
+ # Report Template
2
+
3
+ Shared header/footer/empty-section contract for dev-team's ~15
4
+ report-writing skills (`test-health`, `cd-test-architecture`,
5
+ `competitive-analysis`, `docker-image-audit`, `test-improve`,
6
+ `harness-audit`, `session-review`, `explore`, `test-design`,
7
+ `frontend-architecture`, `agent-eval`, and others) to adopt over time.
8
+ Generalized from `test-improve`'s Phase 9 template
9
+ (`skills/test-improve/templates/executive-summary.md`), the most complete
10
+ existing example in the plugin — same role as `knowledge/review-template.md`
11
+ plays for code-review agents, but for standalone reports rather than the
12
+ review aggregation step.
13
+
14
+ **Adoption status**: only `test-health`, `cd-test-architecture`, and
15
+ `competitive-analysis` have migrated onto this contract so far. Every other
16
+ skill named above — including `docker-image-audit`, which still uses its own
17
+ unrelated local template at `skills/docker-image-audit/references/report-template.md`
18
+ (same filename, different, non-conforming structure), and `test-improve`,
19
+ which keeps its own local `skills/test-improve/templates/executive-summary.md`
20
+ body — has **not** adopted this contract yet; being named above is a
21
+ statement of intended scope, not current compliance.
22
+
23
+ **Scope**: this file defines the shared header, closing Provenance section,
24
+ and empty-section rule only. Skill-specific body content — findings tables,
25
+ per-skill scoring, detail sections — stays local to each skill's own Output
26
+ section. A skill's Output section references this file for the shared parts
27
+ instead of inlining its own; see the Reference sentence below.
28
+
29
+ ## Reference sentence
30
+
31
+ Every report-writing skill that adopts this contract points at it with this
32
+ exact sentence, so the reference reads identically across skills instead of
33
+ being reworded per skill:
34
+
35
+ > For the header block and closing Provenance section, follow
36
+ > `knowledge/report-template.md`; the sections below are this skill's own
37
+ > body.
38
+
39
+ ## Header block
40
+
41
+ Every report opens with:
42
+
43
+ ```markdown
44
+ # <Report Title> — <target> (<date>)
45
+
46
+ **Date**: <ISO 8601>
47
+ **Target**: <repo / image / component / scope of comparison>
48
+ **Tool versions**: <relevant tool versions, e.g. coverage tool, mutation tool — omit fields with no applicable tool>
49
+ **Scope**: <what was analyzed — full repo, --path <dir>, single component, etc.>
50
+ ```
51
+
52
+ Skills with an existing single-line summary convention (e.g. `## Test Health
53
+ — <repo> (<date>)`, `**Shape**: ... **Fit**: ...`) keep that line as their
54
+ own body content — it is not replaced by this header block, only preceded
55
+ by it.
56
+
57
+ ## Empty-section rule
58
+
59
+ Scope: **header/footer fields only** — the fields in the Header block above
60
+ and the Provenance section below. A header/footer field with no value
61
+ renders `_Not applicable — <reason>._` rather than being silently omitted
62
+ (e.g. `**Tool versions**: _Not applicable — no coverage tool detected._`).
63
+
64
+ This rule does not govern skill-specific body content. A skill's own
65
+ body-level empty-value conventions are unaffected and are not required to
66
+ follow this rule — for example, `test-health`'s Farley Score row uses its
67
+ own convention (verbatim scope-labelled value, or the literal `no in-scope
68
+ test files`) rather than the generic `_Not applicable_` phrasing.
69
+
70
+ ## Default section ordering
71
+
72
+ For a **new** report-writing skill with no established structure of its own,
73
+ default to this ordering:
74
+
75
+ 1. Header block
76
+ 2. Executive Summary
77
+ 3. Findings / Detail (skill-specific)
78
+ 4. Next Actions
79
+ 5. Provenance (closing section, below)
80
+
81
+ This ordering is **illustrative guidance for new skills only**. It is not
82
+ grounds to rename an existing report-writing skill's established section
83
+ headings (e.g. `cd-test-architecture`'s `### Next steps`, `competitive-
84
+ analysis`'s `## Next Steps`) to match this ordering's example names when
85
+ migrating that skill onto this shared contract — a migrated skill's body
86
+ stays exactly as it already is.
87
+
88
+ ## Provenance (closing section)
89
+
90
+ Every report closes with a Provenance section, generalized from
91
+ `test-improve`'s Phase 9 §10:
92
+
93
+ ```markdown
94
+ ## Provenance
95
+
96
+ - Repository: `<repo path>`
97
+ - Branch / SHA: `<branch>` / `<sha>`
98
+ - Run parameters: `<flags, scope, or other invocation parameters>`
99
+ - `dev-team` plugin version: `<plugin_version>`
100
+ ```
101
+
102
+ Omit fields that don't apply to a given skill (e.g. a skill with no
103
+ run-scoping flags), applying the empty-section rule above rather than
104
+ deleting the field.
105
+
106
+ ## Related
107
+
108
+ - `knowledge/review-template.md` — the equivalent shared contract for
109
+ code-review agents' aggregation step.
110
+ - `knowledge/report-to-pdf.md` — rendering any report produced under this
111
+ contract to PDF.
112
+ - `skills/test-improve/templates/executive-summary.md` — the precedent this
113
+ contract generalizes from; `test-improve` keeps its own local template body
114
+ unchanged and is not required to migrate onto this file.
@@ -0,0 +1,69 @@
1
+ # Rendering a report to PDF
2
+
3
+ **Prefer the built-in command.** `/report-pdf <path.md> [--out <path>]` renders
4
+ any dev-team Markdown report (`.dev-team-reports/*.md` or `reports/*.md`) to a
5
+ styled PDF, and the `--pdf` flag on `/code-review`, `/test-health`,
6
+ `/cd-test-architecture`, `/triage`, and `/harness-audit` renders the report
7
+ that run just wrote. Both share `hooks/lib/report_pdf.py`, which bundles the
8
+ print stylesheet (`knowledge/report-print.css`), detects an engine with
9
+ graceful fallback, and skips with an install hint when none is present — see
10
+ [`report-pdf-integration.md`](report-pdf-integration.md). The recipe below is
11
+ the underlying mechanism, kept for reference and manual use.
12
+
13
+ A copy-pasteable recipe for turning any markdown report produced under
14
+ `knowledge/report-template.md`'s contract into a shareable PDF, without
15
+ assuming a LaTeX engine (`pdflatex`, `xelatex`) or a headless-rendering
16
+ package (`wkhtmltopdf`, `weasyprint`) is installed. Requires only:
17
+
18
+ - `pandoc` (`brew install pandoc` on macOS, `apt-get install pandoc` on
19
+ Debian/Ubuntu)
20
+ - A Chrome or Chromium install (already present on most developer machines)
21
+
22
+ This is an on-request recipe, not automation — no hook runs it
23
+ automatically on every report write.
24
+
25
+ **Security note.** `report_pdf.py` hardens this recipe for report content that
26
+ may embed snippets from a repo under review: it runs pandoc with `--sandbox`
27
+ (no build-time resource fetches — blocks SSRF via a remote URL in the content),
28
+ injects the stylesheet in Python rather than via `--css` (sandbox blocks that
29
+ read), and invokes headless Chrome with `--disable-javascript`. The manual
30
+ recipe below omits these; use the command for untrusted content.
31
+
32
+ ## Recipe
33
+
34
+ ```bash
35
+ # 1. Markdown -> standalone HTML (self-contained: styling inlined, no external assets)
36
+ pandoc report.md -o report.html --standalone --embed-resources --metadata title="Report"
37
+
38
+ # 2. Standalone HTML -> PDF via headless Chrome's native print-to-pdf
39
+ # macOS:
40
+ "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
41
+ --headless --disable-gpu --no-pdf-header-footer \
42
+ --print-to-pdf="report.pdf" "$(pwd)/report.html"
43
+
44
+ # Linux (path varies by distro/package: google-chrome, google-chrome-stable, chromium, chromium-browser):
45
+ google-chrome --headless --disable-gpu --no-pdf-header-footer \
46
+ --print-to-pdf="report.pdf" "$(pwd)/report.html"
47
+ ```
48
+
49
+ `report.pdf` is written to the current directory.
50
+
51
+ ## Why this toolchain
52
+
53
+ - **No LaTeX assumption.** `pdflatex`/`xelatex` are not installed by default
54
+ on most developer machines and are a heavy dependency to add just for
55
+ occasional PDF export; `wkhtmltopdf`/`weasyprint` have their own native
56
+ dependency chains (Qt WebKit, Cairo/Pango) that are equally not guaranteed
57
+ present.
58
+ - **Chrome and pandoc are already common.** Both are already installed on
59
+ most developer machines for unrelated reasons, so this recipe typically
60
+ requires zero new installs.
61
+ - **`--embed-resources`** (pandoc ≥ 3.0; use `--self-contained` on older
62
+ pandoc) inlines any CSS/images into the HTML so the print-to-pdf step has
63
+ no external asset dependency, keeping the recipe reproducible from the
64
+ markdown file alone.
65
+
66
+ ## Related
67
+
68
+ - `knowledge/report-template.md` — the shared header/footer/empty-section
69
+ contract most reports rendered with this recipe will already follow.
@@ -0,0 +1,63 @@
1
+ <!-- Extracted from CLAUDE.md — do not duplicate here -->
2
+
3
+ This file contains the orchestration workflow details extracted from CLAUDE.md to keep the main config file lean.
4
+
5
+ ## Request Processing Flow
6
+
7
+ For trivial tasks (typo fix, simple query), the Orchestrator routes directly to a single agent. For non-trivial tasks, the Orchestrator follows the **Research → Plan → Implement** workflow:
8
+
9
+ ### Three-Phase Workflow
10
+
11
+ 1. **Research** — Understand the system: find relevant files, trace data flows, identify the problem surface area. Sub-agents explore the codebase and return concise findings to keep the parent context clean. For non-trivial features, produce a **design document** at `docs/specs/` with problem statement, approach, alternatives, and scope boundaries. Optionally run **Design Interrogation** to stress-test the design and surface unresolved decisions before planning. For module boundaries, use **Design It Twice** to generate parallel alternative interfaces via sub-agents. Output: research progress file + design doc written to `.claude/memory/`.
12
+ 2. **Human Review Gate** — Human reviews research findings and design doc. Catching a misunderstanding here prevents hundreds of bad lines of code.
13
+ 3. **Plan** — Decompose the feature into **vertical slices**, author each slice's **Gherkin scenarios** (the behavioral contract), then specify every change: files, snippets, TDD steps, verification. Before the human sees the plan, **plan review personas** run in parallel as critical outside reviewers — the reviewer set scales to plan tier; see the plan skill's [Run plan review personas step](../skills/plan/SKILL.md#5-run-plan-review-personas) for the tier classification (that table is the single source of truth — do not re-duplicate the reviewer set here, it drifts). See `${CLAUDE_PLUGIN_ROOT}/knowledge/three-phase-workflow.md#phase-2-plan` for how an unresolved `needs-revision` verdict is handled before the human gate — that statement is the single source of truth, not restated here. The plan is the primary review artifact — 200 lines of plan is far more reviewable than 2,000 lines of code. After approval, optionally run `/issues-from-plan` to create GitHub issues for team distribution. Output: implementation plan progress file written to `.claude/memory/`.
14
+ 4. **Human Review Gate** — Human reviews the plan. This replaces traditional line-by-line code review as the primary quality gate.
15
+ 5. **Implement** — Execute the plan by dispatching the `software-engineer` agent (by `subagent_type`) for each step. All code is built in **small per-behavior batches** with **vertical slices** — **Code-First Small Batches** (IMPLEMENT → TEST → REFACTOR), the sole build cadence, refactoring on every green (`docs/experiments/RECOMMENDATIONS.md`). The build runs **wave by wave** (the plan's `## Parallelization` schedule): independent slices in a wave build concurrently in **worktree isolation** (`isolation: "worktree"`), then a barrier reconciles the wave and gates on the full suite before the next wave. Worktree isolation requires Claude Code's `worktree.baseRef` setting to be `"head"` — set it in `.claude/settings.json` or `~/.claude/settings.json` (plugin- and project-local-scope settings are not honored for this key per issue #553's Slice 0 spike; full evidence: `docs/spikes/worktree-baseref-head-spike.md`). Effective concurrency is `min(--jobs, DEV_TEAM_MAX_PARALLEL_BUILDS, wave width)` — parallel fan-out is opt-in: when neither `--jobs` nor the env var **`DEV_TEAM_MAX_PARALLEL_BUILDS`** is set the default is sequential (effective 1), and you opt into fan-out with `--jobs N` or the env var, each capped by wave width (#1515). A fully-dependent plan degrades to today's one-slice-at-a-time behavior. A **three-stage inline review** runs at a granularity that scales with step complexity — per step for `complex` steps, batched once at the slice boundary for `standard`/`trivial` steps: a deterministic static self-heal pass (scoped static analysis with a capped fix loop, `skills/build/references/static-self-heal.md`) runs to pass-or-cap first, then (1) spec-compliance-review checks code matches spec, (2) quality review agents check code quality, (3) browser verification for UI changes. Each checkpoint's find/fix/no-op outcome is logged to `.claude/metrics/review-value.jsonl` so the overhead is measurable. Actionable issues (error/warning severity with high/medium confidence) are **auto-fixed and re-reviewed** in a loop (up to 5 iterations) — only issues requiring human judgment are escalated. Run `/code-review` before committing (which auto-scopes to uncommitted changes and runs its own fix loop). Then invoke `dev-team:tech-writer` to verify all affected documentation is current. All agents must provide **verification evidence** (fresh test output) before claiming completion. Output: working code + test results + code review pass + docs verified.
16
+ 6. **Human Review Gate** — Human reviews the final output. Lightweight if the plan was correct.
17
+ 7. **Branch Workflow** — Create PR, choose merge strategy, clean up branch (see Branch Workflow skill).
18
+ 8. **Learning loop** — Update configs if needed, log metrics, refine routing.
19
+
20
+ ### Skills by Phase
21
+
22
+ | Phase | Skills Used | Purpose |
23
+ |-------|-----------|---------|
24
+ | **Research** | Design Doc, Domain Analysis, Domain-Driven Design, Threat Modeling, Design Interrogation, Design It Twice, Competitive Analysis | Understand the system, explore alternatives, stress-test designs |
25
+ | **Plan** | Specs, API Design, Hexagonal Architecture, Legacy Code | Define what to build, specify interfaces and test strategy |
26
+ | **Plan → Team** | `/issues-from-plan` | Break plan into GitHub issues for team distribution |
27
+ | **Implement** | Test-Driven Development (advisory, on request), Systematic Debugging, Mutation Testing, Browser Testing, Performance Benchmark, CI Debugging | Build in small per-behavior batches (Code-First Small Batches), debug issues (reproduce defects with a failing test first), validate quality, measure performance |
28
+ | **Bug Triage** | `/triage` (Systematic Debugging + file-based triage record in `.dev-team-reports/triage/`) | Investigate bugs and write actionable triage records |
29
+ | **Review** | Quality Gate Pipeline, Farley Score | Validate output before delivery |
30
+ | **Cross-phase** | Context Loading Protocol, Context Summarization, Feedback & Learning, Human Oversight Protocol, Performance Metrics, Governance & Compliance, Branch Workflow | Orchestration, context management, learning |
31
+
32
+ ### Phase Transitions
33
+
34
+ Each phase runs in a fresh context window. The output of each phase is a structured progress file in `.claude/memory/` that onboards the next phase. See the Orchestrator agent for the full protocol.
35
+
36
+ ## Multi-Agent Collaboration Protocol
37
+
38
+ ### Sub-Agents as Context Isolation
39
+
40
+ The primary value of sub-agents is **context isolation**, not persona specialization. When a parent agent dispatches a sub-agent to explore, search, or analyze, the sub-agent absorbs the context burden of reading files and tracing code flows. Only a concise, structured finding returns to the parent — keeping the parent's context clean and focused on the actual task.
41
+
42
+ **Design sub-agent calls for minimal context return**:
43
+
44
+ - Send the sub-agent a specific question ("Where is user authentication handled? Return file paths and line numbers.")
45
+ - The sub-agent reads 20 files; the parent receives 10 lines of structured findings
46
+ - The parent can get right to work without the context burden of exploration
47
+
48
+ Persona specialization (Software Engineer, Architect, etc.) provides behavioral guardrails and domain expertise, but context isolation is what makes multi-agent workflows scale.
49
+
50
+ ### Multi-Agent Coordination
51
+
52
+ When a task requires multiple agents:
53
+
54
+ 1. Orchestrator identifies multi-agent task and assigns the three-phase workflow
55
+ 2. Load primary agent + sub-agents for the current phase only
56
+ 3. Sub-agents explore and return concise findings (context isolation)
57
+ 4. Primary agent coordinates (defines interfaces, manages dependencies, resolves conflicts)
58
+ 5. Phase output is written to `.claude/memory/` as a progress file
59
+ 6. Human reviews before next phase begins
60
+ 7. Integration and validation (QA validates, Architect reviews if architectural changes)
61
+ 8. Unified result delivery
62
+
63
+ Referenced from: `plugins/dev-team/CLAUDE.md`
@@ -0,0 +1,52 @@
1
+ # Result Verification
2
+
3
+ Reference file for `test-review`, `test-smell-review`, and the `test-design-advisor` skill. This file covers the **Verify** phase — how a test asserts the outcome — and the patterns that make a failure point straight at its cause. Where `test-doubles.md` chooses the collaborator stand-in, this file chooses the *assertion*.
4
+
5
+ Source: Gerard Meszaros, *xUnit Test Patterns* (xunitpatterns.com) — Result Verification chapter. Language- and framework-agnostic — described by role, not any assertion library's API.
6
+
7
+ Core principle: **verify one logical condition per test, and make every assertion say what it expected and why** — so a red test localizes the defect instead of hiding it.
8
+
9
+ ---
10
+
11
+ ## Verification style: state vs behavior
12
+
13
+ | Style | What it checks | Use when |
14
+ |---|---|---|
15
+ | **State verification** | The SUT's resulting state / return value after exercise | **Default.** The outcome is observable as a value or state |
16
+ | **Behavior verification** | That the SUT *called* a collaborator a certain way | Only at a true side-effect boundary with no observable state (e.g. a message was published) |
17
+
18
+ Prefer state verification; reach for behavior verification only when there is no state to assert. The *double* that enables behavior verification (spy/mock) is chosen in `test-doubles.md`; here, decide *whether* behavior verification is even the right approach.
19
+
20
+ ---
21
+
22
+ ## Assertion patterns
23
+
24
+ | Pattern | What it is | Use when | Fixes |
25
+ |---|---|---|---|
26
+ | **Assertion Method** | A single primitive assert on one value, with a message | A single expected value | baseline |
27
+ | **Expected Object** | Build the whole expected object and assert equality in **one** comparison | Asserting many fields of one result | **Assertion Roulette**, field-by-field clutter |
28
+ | **Custom Assertion** | A domain-named assertion encapsulating a comparison **and** an intent-revealing failure message (`assertIsOverdue(account)`) | The same non-trivial comparison recurs, or the default failure message is opaque | duplication + poor diagnostics |
29
+ | **Verification Method** | A named sequence of assertions reused across tests | A multi-assertion check repeats with the same meaning | Test Code Duplication in the Verify phase |
30
+ | **Guard Assertion** | Assert a precondition **before** the main assertion, so a missing precondition fails clearly | The main assertion would otherwise throw a cryptic null/empty error | misleading failures |
31
+ | **Delta Assertion** | Assert the *change* relative to a captured baseline, not an absolute value | Working against a Shared/persistent fixture whose absolute state you don't control | brittle absolute assertions on shared fixtures |
32
+ | **Unfinished Test Assertion** | A deliberate `fail("not yet implemented")` placeholder that keeps a stubbed-out test **red** until it's written | You've named a test condition you intend to cover but haven't implemented it yet | a silently-passing empty test that masquerades as coverage (a Buggy Test) |
33
+
34
+ ---
35
+
36
+ ## Rules
37
+
38
+ - **One logical condition per test.** Several unrelated assertions in one method is an Eager Test — split it (`test-organization.md` / `test-refactoring.md`).
39
+ - **Locatable intent.** Every assertion carries a message or is self-describing, so a failure names the expectation.
40
+ - **No magic values.** Don't assert against unexplained literals; name the expected value or derive it visibly (avoid hard-coded values whose meaning is lost).
41
+
42
+ **Decision flow:** single value → Assertion Method with a message → multi-field object → **Expected Object** → repeated/complex domain comparison → **Custom Assertion** / **Verification Method** → precondition that would fail cryptically → **Guard Assertion** → outcome relative to a shared fixture → **Delta Assertion**.
43
+
44
+ ---
45
+
46
+ ## How this connects to the rest of the toolkit
47
+
48
+ - **`test-smells.md`** — the smells these fix: Assertion Roulette, Obscure Test, Fragile/Overspecified Test, Hard-Coded Values.
49
+ - **`test-doubles.md`** — behavior verification with mocks/spies; choose the double there, decide the verification approach here.
50
+ - **`test-strategy.md`** — Delta Assertion is the verification counterpart of a Shared/persistent Fixture.
51
+ - **`test-organization.md`** — Verify is the third of the Four-Phase Test.
52
+ - **`test-refactoring.md`** — the moves that get an existing test here: Introduce Expected Object, Extract Custom Assertion / Verification Method, Add Guard Assertion, Split Test.
@@ -0,0 +1,121 @@
1
+ # Review-agent output contract
2
+
3
+ The JSON shape every read-only `*-review` agent emits. This is the single
4
+ source of truth — agent files cite this instead of inlining the schema, so
5
+ the contract can't drift between the ~20 agents that share it.
6
+
7
+ ## Canonical schema
8
+
9
+ ```json
10
+ {"status": "pass|warn|fail|skip", "issues": [{"category": "", "severity": "error|warning|suggestion", "confidence": "high|medium|none", "file": "", "line": 0, "message": "", "suggestedFix": ""}], "summary": ""}
11
+ ```
12
+
13
+ `category` is optional per finding — omit it rather than emit an empty
14
+ string when a finding genuinely has no natural taxonomy tag.
15
+
16
+ ## `category` (#1639)
17
+
18
+ A short, stable tag identifying the *kind* of finding within an agent's own
19
+ taxonomy — not a cross-agent enum, and not required to be a strict
20
+ linter-style rule ID. Its purpose is round-to-round finding identity:
21
+ `skills/code-review/scripts/finding_signature.py`'s `signature()` hashes
22
+ `(agent, file, category, normalized-message)`, with the finding's `line`
23
+ compared separately at a `±3` tolerance by `same_finding()` rather than
24
+ folded into the hash. The `category` component of that hash is resolved
25
+ from a fallback chain — `category` → `smell` → `rule` → `ruleId` (#1692) —
26
+ so an agent that spells its taxonomy tag `smell` (`test-smell-review`) gets
27
+ the same round-to-round identity protection as an agent that spells it
28
+ `category`. Message normalization strips quoted spans and numbers
29
+ by design, so two genuinely *different* findings from the same agent, same
30
+ file, and within a few lines of each other can normalize to the same text
31
+ (e.g. two distinct missing-guard-clause defects a couple of lines apart
32
+ whose messages differ only in the quoted identifier that normalization
33
+ strips). Without `category` to tell them apart, those collide into one
34
+ signature, and — because they also fall inside the `±3` proximity window —
35
+ a later round's genuinely new defect matches a prior round's key and reads
36
+ as `carried` rather than new, silently suppressing a fix round the
37
+ loop-until-dry/severity-floor termination rules #1625 added were supposed to
38
+ run.
39
+
40
+ Each agent defines its own taxonomy in its own body — see each agent's
41
+ `## Detect` (or equivalent) section for its specific category values. Three
42
+ worked examples already shipping on this contract (kept in sync with the
43
+ named agent files by `tests/repo/test_review_agent_output_contract_examples.py`):
44
+
45
+ - **`security-review`**: `"category": "A<NN>.<slug>"` (the OWASP category the
46
+ finding maps to), e.g. `"A03.sql-injection"`.
47
+ - **`ai-provenance-review`**: `"category": "verification-debt|regeneration-risk"`.
48
+ - **`spec-compliance-review`**: `"category": "unmet-criterion|uncovered-scenario|scope-violation|plan-deviation"`.
49
+
50
+ Four more agents converge on the same field name independently: the
51
+ `plan-review-*` critics (`plan-review-design`, `plan-review-parallelization`,
52
+ `plan-review-strategic`, `plan-review-ux`) each emit their own `category`
53
+ values too, on a different `{"verdict", "issues"}` schema dispatched by
54
+ `/plan` rather than this contract's `{"status", "issues"}` shape — not a
55
+ fourth spelling to reconcile, but further evidence the name reads naturally
56
+ across this repo's own review agents.
57
+
58
+ A new agent that reports findings across more than one natural taxonomy
59
+ bucket should add its own `category` values the same way — a short,
60
+ lower-case, hyphenated tag per bucket, documented in the agent's own body —
61
+ rather than leaving the field unset.
62
+
63
+ **Not the same `category` as `apply-fixes`'s correction-prompt schema.**
64
+ `skills/apply-fixes/SKILL.md`'s correction-prompt `category` field holds the
65
+ *reporting agent's name* (e.g. `"structure-review"`), grouping fixes for
66
+ display — a different concept that happens to share this field name in a
67
+ downstream artifact generated *from* findings. Do not assume a correction
68
+ prompt's `category` carries a finding's taxonomy tag through unchanged.
69
+
70
+ ## Status values
71
+
72
+ - **pass**: zero issues
73
+ - **warn**: issues found, none are errors
74
+ - **fail**: at least one error-severity issue
75
+ - **skip**: agent had nothing to review this run — no files in scope (e.g.,
76
+ no JS/TS files for `js-fp-review`), or excluded by a pre-flight gate.
77
+ Canonical definition — `output-format.md` and `SKILL.md` cite this rather
78
+ than restate it.
79
+
80
+ **Documented per-agent status exception:** `doc-review` and `naming-review`
81
+ escalate a `warning`-severity finding to `fail` as well as `error` — for
82
+ these two, a misleading name or a stale/incomplete doc is high-cost enough
83
+ on its own that it doesn't wait for a second, error-severity finding to
84
+ raise the tier. Every other agent uses the default rule above.
85
+
86
+ ## `severity` values
87
+
88
+ `error` (must fix), `warning` (should fix), `suggestion` (could improve).
89
+
90
+ ## `confidence` values
91
+
92
+ | Value | Meaning | `apply-fixes` behavior |
93
+ |-------|---------|----------------------|
94
+ | `high` | Mechanical fix; correct with high certainty | Auto-apply |
95
+ | `medium` | Direction right; tradeoffs possible | Present as suggested diff — require confirmation |
96
+ | `none` | Requires human judgment | Present finding only; do not generate correction prompt |
97
+
98
+ ## Documented per-agent extensions
99
+
100
+ A handful of agents extend the canonical schema with extra fields specific
101
+ to their domain, beyond the canonical `category` documented above. These are
102
+ intentional, documented exceptions — not drift:
103
+
104
+ - **`test-smell-review`**: adds `"smell": ""` and
105
+ `"remedyFamily": "fixture-construction|result-verification|test-organization|test-refactoring|null"`
106
+ to each issue. `smell` is this agent's own taxonomy tag; `signature()`'s
107
+ fallback chain is `category` → `smell` → `rule` → `ruleId` (#1692), so its
108
+ findings hash with `smell` as their taxonomy component instead of an empty
109
+ segment.
110
+
111
+ An agent that needs a new field beyond these documents it here rather than
112
+ drifting silently.
113
+
114
+ ## Aggregation
115
+
116
+ `/code-review` wraps each agent's raw result with `agentName` and
117
+ `modelTier` when assembling the panel-wide report — see
118
+ [`skills/code-review/output-format.md`](../skills/code-review/output-format.md)
119
+ for the aggregated `--json` shape, the per-slice section artifact, and the
120
+ progress-ledger/consolidation formats sliced mode adds on top of this
121
+ per-agent contract.
@@ -0,0 +1,113 @@
1
+ # Review Roster: Discovery Lens vs. Verification Gate (#2007)
2
+
3
+ Two classes of review agent need two different value metrics, and pricing
4
+ both the same way misreads one of them:
5
+
6
+ - **Discovery lens** — scans an open-ended set of possible defects across a
7
+ domain (SRP violations, race conditions, N+1 queries, ...). `$/finding` is
8
+ a meaningful cost signal for this class: a lens that consistently costs a
9
+ lot per finding is a real tier-down/removal candidate.
10
+ - **Verification gate** — confirms one specific, fixed thing (does the
11
+ implementation match the spec, does the diff follow the plan). `$/finding`
12
+ is the **wrong** metric here: a verification gate that mostly passes is a
13
+ gate doing its job, not evidence of low value (see #2007's own framing —
14
+ pricing silence as waste is the mirror image of the "gate that cannot
15
+ fail" failure `CLAUDE.md` warns about). The meaningful measure for this
16
+ class is **escape rate**: how often something the gate should have caught
17
+ reached a later stage anyway.
18
+
19
+ This file is the durable record of that classification, per issue #2007's
20
+ acceptance criterion ("every roster agent classified ... with the
21
+ classification recorded"). The roster itself is
22
+ [`agent-registry.md`](agent-registry.md)'s Review Agents table — this file
23
+ classifies it, it does not duplicate the roster.
24
+
25
+ **Scope note.** This is a classification, not a routing decision. No entry
26
+ here tiers down, removes, or reweights any agent — see #2007's own scope
27
+ ("Coordinate with #1980 and #1982 ... you're building the classification
28
+ and attempting the recomputation, not acting on either yet").
29
+
30
+ ## Classification
31
+
32
+ | Agent | Class | Rationale |
33
+ | --- | --- | --- |
34
+ | a11y-review | discovery-lens | Scans WCAG/ARIA/keyboard-nav for an open set of possible violations — no single fixed contract to confirm against. |
35
+ | ai-provenance-review | discovery-lens | Surfaces unverified AI-authored assertions and regeneration-risk candidates — an open detection surface. |
36
+ | arch-review | discovery-lens | Scans layer boundaries, dependency direction, and pattern consistency broadly; its ADR-compliance sub-check is verification-flavored, but the majority of its surface is open-ended discovery. |
37
+ | claude-setup-review | discovery-lens | Scans for an open set of CLAUDE.md/rule/path gaps, not one pass/fail check. |
38
+ | component-architecture-review | discovery-lens | Scans for reusable-component extraction, duplication, and prop-drilling — open-ended. |
39
+ | concurrency-review | discovery-lens | Scans for race conditions, async pitfalls, shared state — open-ended. |
40
+ | correctness-review | discovery-lens | Named explicitly as discovery in `skills/code-review/SKILL.md` ("an inverted assertion is exactly its subject"). |
41
+ | data-flow-tracer | discovery-lens (analysis-only) | Surfaces data-flow traces with no pass/fail verdict — `$/finding` needs adapting to "value per trace surfaced," but it is a discovery tool, not a gate. |
42
+ | doc-review | discovery-lens | Scans README/API-doc/ADR drift across an open set of possible staleness. |
43
+ | domain-review | discovery-lens | Scans domain-boundary and abstraction-leak violations — open-ended. |
44
+ | js-fp-review | discovery-lens | Scans array-mutation and impure-pattern violations — open-ended. |
45
+ | mutation-kill | **not applicable** | Explicitly documented in `agent-registry.md` as "Not a reviewer" — an autonomous survivor-reduction loop, not a panel lens. Neither `$/finding` nor escape rate applies; excluded from this classification rather than force-fit. |
46
+ | naming-review | discovery-lens | Scans naming-convention and magic-value violations — open-ended. |
47
+ | performance-review | discovery-lens | Scans resource leaks, N+1 queries, unbounded growth — open-ended. |
48
+ | progress-guardian | verification-gate | Checks plan adherence and commit discipline against one fixed contract (the plan itself) — `docs/team-structure.md` names it "a process gate-keeper, not a code reviewer," not part of the standard review-dispatch fan-out. |
49
+ | quality-reviewer | verification-gate (coordinator caveat) | Coordinates the Inline Review Checkpoint's fix loop to convergence rather than producing its own domain findings — its meaningful measure is "did the checkpoint converge," closer to a gate's pass/fail than a lens's per-finding cost. |
50
+ | refactor-opportunity-review | discovery-lens | Scans for post-GREEN refactoring opportunities — open-ended. |
51
+ | security-review | discovery-lens | Named explicitly as a discovery lens in `skills/code-review/SKILL.md`, and explicitly excluded from the test-only-diff skip candidates precisely because it finds real issues (credentials, injection payloads) across every diff shape. |
52
+ | session-analysis | discovery-lens (analysis-only) | Surfaces ranked improvement suggestions from a session digest — no pass/fail verdict, but an open discovery surface, not a fixed-contract check. |
53
+ | spec-compliance-review | **verification-gate** | The paradigm case named directly in #2007: confirms the implementation matches the spec. A gate that usually passes ("145 of 248 runs are pure pass") is doing its job — `$/finding` prices that silence as waste, which is the wrong metric for this class. |
54
+ | spec-reviewer | verification-gate | Same family as `spec-compliance-review`, narrower — spec-to-diff matching for a single freshly-implemented unit (Stage 1 of the three-stage inline review). |
55
+ | structure-review | discovery-lens | Scans SRP violations, DRY, coupling, file organization, nesting depth, cognitive load, and async-pattern pitfalls (folds `complexity-review`, retired #2093) — open-ended. |
56
+ | angular-reactivity-review | discovery-lens | Scans Zone.js change-detection pitfalls, OnPush/immutability violations, RxJS leaks — open-ended. |
57
+ | react-reactivity-review | discovery-lens | Scans hook-rule violations, stale closures, missing dependency arrays, subscription leaks — open-ended. |
58
+ | vue-reactivity-review | discovery-lens | Scans ref/reactive unwrapping pitfalls and watchEffect dependency tracking — open-ended. |
59
+ | test-review | discovery-lens | Scans coverage gaps, assertion quality, test hygiene — open-ended. |
60
+ | test-smell-review | discovery-lens | Scans xUnit test smells, test-double selection, test-pyramid placement — open-ended. |
61
+ | token-efficiency-review | discovery-lens | Scans file/function size and LLM anti-patterns for token cost — open-ended. |
62
+
63
+ **Tally:** 24 discovery-lens (2 of them analysis-only, noted), 4
64
+ verification-gate, 1 not-applicable — 29 agents total, matching
65
+ `agent-registry.md`'s Review Agents table row count exactly.
66
+
67
+ ## Applying the two metrics
68
+
69
+ - **Discovery lenses**: `$/finding` from `metrics/review-value.jsonl` (per
70
+ `skills/harness-audit/SKILL.md` Step 4) remains the right cost signal.
71
+ Tier-down/removal candidates are agents with a consistently high
72
+ `$/finding` **and** a low finding-rate, per that step's existing
73
+ drop-candidate logic.
74
+ - **Verification gates** (`spec-compliance-review`, `spec-reviewer`,
75
+ `progress-guardian`): the meaningful measure is **escape rate** — how
76
+ often a defect the gate should have caught was instead caught later (a
77
+ subsequent review round, a production incident, a later gate). No
78
+ instrumentation for escape rate exists yet; this is a gap this
79
+ classification surfaces, not one it closes. A future slice would need a
80
+ way to trace "the gate passed, but the defect it should have caught
81
+ surfaced anyway" — out of scope for #2007 itself.
82
+
83
+ ## `$/finding` recomputation attempt (#2007, post-#1998)
84
+
85
+ #1998 (the 18.2% silent-drop fix) has merged, so recomputation is no longer
86
+ blocked on principle. Attempted here against whatever data this checkout
87
+ actually has:
88
+
89
+ - `.claude/metrics/review-value.jsonl` — **absent**. No `/build`/`/code-review`
90
+ review rounds have been logged in this checkout.
91
+ - `.claude/metrics/contract-failures.jsonl` (#1998's own instrumentation,
92
+ the repaired denominator `$/finding` needs) — **absent**. No JSON-contract
93
+ failures have been logged either.
94
+ - `.claude/metrics/boundary-events.jsonl` — present, but 17 lines, all
95
+ `hook: "pre-commit-gate"` records from this session's own git commits (the
96
+ #2051/#1983 work above). Zero `dispatch-evidence-*`/`agent_dispatch_ledger`
97
+ records for any review agent.
98
+
99
+ **Verdict: no recomputation is possible from this checkout's data — not "a
100
+ thin sample," an empty one.** `.claude/metrics/` is deny-by-default
101
+ gitignored (`**/metrics/*`, with an explicit allowlist for a handful of
102
+ files that does not include `review-value.jsonl` or
103
+ `contract-failures.jsonl`), so a fresh checkout or worktree starts with
104
+ none of this history regardless of what a maintainer's long-running local
105
+ clone has accumulated. Per the epic's evidence-first constraint and #2007's
106
+ own instruction ("say so explicitly rather than presenting a thin number as
107
+ authoritative"), no `$/finding` figure is reported here. The next
108
+ recomputation attempt needs to run from a checkout that has actually
109
+ accumulated post-#1998 `/code-review`/`/build` sessions — most likely a
110
+ maintainer's own long-running local clone, not a fresh worktree — and
111
+ should re-run `skills/harness-audit/SKILL.md` Step 4 (which already gates
112
+ on `review_value_coverage.py`'s sample-validity verdict) rather than
113
+ re-deriving the query here.
@@ -0,0 +1,62 @@
1
+ # Code Review Scoring Rubric
2
+
3
+ The orchestrator reads this file during Step 5 to compute the overall
4
+ health score from individual agent results.
5
+
6
+ ## The review-agent panel is the primary quality gate
7
+
8
+ The review-agent panel is the primary quality gate for structural quality
9
+ (Rec 5, `docs/experiments/RECOMMENDATIONS.md`). Coverage, mutation score, and
10
+ the informational Farley Score are **saturating metrics**: every workflow
11
+ shape drives them to near-identical values, so they cannot rank structural
12
+ quality and must never gate or rank workflows. A higher mutation score must
13
+ never be treated as evidence that a costlier workflow — or the code it
14
+ produced — is better; in the experiment line the losing arms posted the
15
+ higher mutation scores. Score health from the agent verdicts below, nothing
16
+ else.
17
+
18
+ ## Health Score Calculation
19
+
20
+ Collect the status from each agent: `pass`, `warn`, `fail`, `skip`.
21
+
22
+ ```
23
+ 🟢 HEALTHY = 0 fail AND ≤2 warn
24
+ 🟠 NEEDS ATTENTION = 1-2 fail OR 3+ warn
25
+ 🔴 CRITICAL = 3+ fail OR any security-review fail
26
+ ```
27
+
28
+ Agents that returned `skip` are excluded from scoring.
29
+
30
+ ## Category Weights
31
+
32
+ Not all agent failures carry equal weight. Security and domain
33
+ integrity failures escalate faster than style or naming issues.
34
+
35
+ | Category | Agents | Escalation |
36
+ |----------|--------|------------|
37
+ | Security | security-review | Any fail → 🔴 overall |
38
+ | Architecture | arch-review, domain-review | 2+ fail → 🔴 overall |
39
+ | Correctness | test-review, concurrency-review | Normal scoring |
40
+ | Quality | structure-review, js-fp-review, naming-review | Normal scoring |
41
+ | Accessibility | a11y-review | Normal scoring |
42
+ | Ops | doc-review, performance-review | Normal scoring |
43
+
44
+ This table is not exhaustive — an agent absent from every row above (e.g. `correctness-review`, `spec-compliance-review`, `component-architecture-review`) still scores under the general pass/warn/fail rule, it just carries no category escalation. `claude-setup-review`, `token-efficiency-review`, and `ai-provenance-review` are the specific case worth calling out: none are dispatched by `/code-review`'s panel at all (#1733) — `claude-setup-review` runs on demand via the `/claude-setup-review` command, and all three run unconditionally in the whole-tree `/repo-review` skill (#1735) — so none ever contributes to a code-review verdict, in any row or under the general rule.
45
+
46
+ ## Issue Severity Mapping
47
+
48
+ Agent issues map to the report as follows:
49
+
50
+ | Agent severity | Report display | Correction prompt priority |
51
+ |----------------|---------------|---------------------------|
52
+ | error | 🔴 error | high |
53
+ | warning | 🟠 warning | medium |
54
+ | suggestion | 💡 suggestion | low |
55
+
56
+ ## Confidence and Actionability
57
+
58
+ | Confidence | Meaning | Auto-fixable |
59
+ |------------|---------|--------------|
60
+ | high | Mechanical fix, single correct answer | Yes |
61
+ | medium | Direction clear, implementation varies | Yes (with review) |
62
+ | none | Requires human judgment | No — report only |