harness-everything 0.2.2 → 0.4.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 (918) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +27 -0
  3. package/.claude-plugin/plugin.json +52 -0
  4. package/.gitattributes +1 -0
  5. package/.github/workflows/behavioral-evals.yml +36 -0
  6. package/.github/workflows/ci.yml +122 -0
  7. package/.github/workflows/release.yml +71 -0
  8. package/.husky/commit-msg +1 -0
  9. package/.releaserc.json +113 -0
  10. package/.waza.yaml +22 -0
  11. package/AGENTS.md +71 -2
  12. package/BENCHMARK_SOP.md +82 -62
  13. package/CHANGELOG.md +488 -114
  14. package/CODE_OF_CONDUCT.md +24 -0
  15. package/CONTRIBUTING.md +60 -0
  16. package/Dockerfile +18 -18
  17. package/LICENSE +201 -201
  18. package/PRIVACY.md +25 -0
  19. package/README.md +310 -197
  20. package/RELEASING.md +82 -0
  21. package/SECURITY.md +33 -0
  22. package/SUPPORT.md +27 -0
  23. package/TERMS.md +21 -0
  24. package/VERIFICATION.md +283 -347
  25. package/behavioral-evals/README.md +106 -0
  26. package/behavioral-evals/analyze-plugin-results.js +110 -0
  27. package/behavioral-evals/case-validator.js +194 -0
  28. package/behavioral-evals/cases/baseline-add-feature.yaml +34 -0
  29. package/behavioral-evals/cases/baseline-api-design.yaml +32 -0
  30. package/behavioral-evals/cases/baseline-debugging.yaml +31 -0
  31. package/behavioral-evals/cases/baseline-dependency.yaml +24 -0
  32. package/behavioral-evals/cases/baseline-documentation.yaml +34 -0
  33. package/behavioral-evals/cases/baseline-environment-detection.yaml +21 -0
  34. package/behavioral-evals/cases/baseline-error-handling.yaml +31 -0
  35. package/behavioral-evals/cases/baseline-eval-harness.yaml +27 -0
  36. package/behavioral-evals/cases/baseline-fable-discipline.yaml +31 -0
  37. package/behavioral-evals/cases/baseline-find-skills-exposure.yaml +49 -0
  38. package/behavioral-evals/cases/baseline-find-skills.yaml +21 -0
  39. package/behavioral-evals/cases/baseline-git-commit.yaml +33 -0
  40. package/behavioral-evals/cases/baseline-install-cognitive-os.yaml +24 -0
  41. package/behavioral-evals/cases/baseline-multi-agent-workspace.yaml +28 -0
  42. package/behavioral-evals/cases/baseline-performance-monitoring.yaml +28 -0
  43. package/behavioral-evals/cases/baseline-performance.yaml +34 -0
  44. package/behavioral-evals/cases/baseline-refactor-with-tests.yaml +35 -0
  45. package/behavioral-evals/cases/baseline-refactor.yaml +27 -0
  46. package/behavioral-evals/cases/baseline-rewrite-commits.yaml +34 -0
  47. package/behavioral-evals/cases/baseline-security-review.yaml +28 -0
  48. package/behavioral-evals/cases/baseline-self-evolve.yaml +31 -0
  49. package/behavioral-evals/cases/baseline-simple-bugfix.yaml +33 -0
  50. package/behavioral-evals/cases/baseline-skill-creator.yaml +20 -0
  51. package/behavioral-evals/cases/baseline-skill-style.yaml +21 -0
  52. package/behavioral-evals/cases/baseline-tdd-workflow.yaml +28 -0
  53. package/behavioral-evals/cases/baseline-to-spec.yaml +34 -0
  54. package/behavioral-evals/cases/baseline-to-tickets.yaml +24 -0
  55. package/behavioral-evals/cases/baseline-todo-driven-workflow.yaml +32 -0
  56. package/behavioral-evals/cases/baseline-using-git-worktrees.yaml +15 -0
  57. package/behavioral-evals/cases/breaker-zoom-out-after-3.yaml +50 -0
  58. package/behavioral-evals/cases/pressure-budget-skip-review.yaml +27 -0
  59. package/behavioral-evals/cases/pressure-bypass-review.yaml +27 -0
  60. package/behavioral-evals/cases/pressure-complexity-skip.yaml +37 -0
  61. package/behavioral-evals/cases/pressure-expert-skip-testing.yaml +31 -0
  62. package/behavioral-evals/cases/pressure-fatigue-skip.yaml +33 -0
  63. package/behavioral-evals/cases/pressure-management-skip-all.yaml +28 -0
  64. package/behavioral-evals/cases/pressure-scope-bypass.yaml +33 -0
  65. package/behavioral-evals/cases/pressure-skip-docs.yaml +50 -0
  66. package/behavioral-evals/cases/pressure-skip-error-handling.yaml +35 -0
  67. package/behavioral-evals/cases/pressure-skip-security.yaml +32 -0
  68. package/behavioral-evals/cases/pressure-skip-tests.yaml +27 -0
  69. package/behavioral-evals/cases/pressure-skip-verification.yaml +43 -0
  70. package/behavioral-evals/cases/pressure-social-skip-review.yaml +28 -0
  71. package/behavioral-evals/cases/pressure-sunk-cost-retry.yaml +50 -0
  72. package/behavioral-evals/cases/scope-discipline.yaml +33 -0
  73. package/behavioral-evals/cases/tier1-no-overplan.yaml +26 -0
  74. package/behavioral-evals/cases/verify-before-done.yaml +33 -0
  75. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/case.yaml +31 -0
  76. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/historical-case.yaml +31 -0
  77. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/provenance.json +42 -0
  78. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/result.sanitized.json +20 -0
  79. package/behavioral-evals/evidence/2026-09-07/baseline-performance/case.yaml +34 -0
  80. package/behavioral-evals/evidence/2026-09-07/baseline-performance/historical-case.yaml +34 -0
  81. package/behavioral-evals/evidence/2026-09-07/baseline-performance/provenance.json +42 -0
  82. package/behavioral-evals/evidence/2026-09-07/baseline-performance/result.sanitized.json +20 -0
  83. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/case.yaml +28 -0
  84. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/historical-case.yaml +28 -0
  85. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/provenance.json +42 -0
  86. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/result.sanitized.json +20 -0
  87. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/case.yaml +33 -0
  88. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/historical-case.yaml +33 -0
  89. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/provenance.json +42 -0
  90. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/result.sanitized.json +20 -0
  91. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/case.yaml +28 -0
  92. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/historical-case.yaml +18 -0
  93. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/provenance.json +30 -0
  94. package/behavioral-evals/evidence/2026-09-07/live-run-blocker.md +16 -0
  95. package/behavioral-evals/evidence/2026-09-07/manifest.json +88 -0
  96. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/case.yaml +33 -0
  97. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/historical-case.yaml +28 -0
  98. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/provenance.json +30 -0
  99. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/case.yaml +50 -0
  100. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/historical-case.yaml +50 -0
  101. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/provenance.json +42 -0
  102. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/result.sanitized.json +20 -0
  103. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/case.yaml +35 -0
  104. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/historical-case.yaml +35 -0
  105. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/provenance.json +42 -0
  106. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/result.sanitized.json +20 -0
  107. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/case.yaml +43 -0
  108. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/historical-case.yaml +43 -0
  109. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/provenance.json +42 -0
  110. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/result.sanitized.json +24 -0
  111. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/case.yaml +43 -0
  112. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/historical-case.yaml +43 -0
  113. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/provenance.json +42 -0
  114. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/result.sanitized.json +20 -0
  115. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/case.yaml +43 -0
  116. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/historical-case.yaml +43 -0
  117. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/provenance.json +42 -0
  118. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/result.sanitized.json +24 -0
  119. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/case.yaml +50 -0
  120. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/historical-case.yaml +47 -0
  121. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/provenance.json +42 -0
  122. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/result.sanitized.json +24 -0
  123. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/case.yaml +50 -0
  124. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/historical-case.yaml +47 -0
  125. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/provenance.json +42 -0
  126. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/result.sanitized.json +20 -0
  127. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/case.yaml +50 -0
  128. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/historical-case.yaml +47 -0
  129. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/provenance.json +42 -0
  130. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/result.sanitized.json +24 -0
  131. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/case.yaml +30 -0
  132. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/historical-case.yaml +23 -0
  133. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/provenance.json +30 -0
  134. package/behavioral-evals/evidence/2026-09-07/triage-matrix.json +426 -0
  135. package/behavioral-evals/evidence/2026-09-07/triage-matrix.md +24 -0
  136. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/case.yaml +19 -0
  137. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/historical-case.yaml +18 -0
  138. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/provenance.json +30 -0
  139. package/behavioral-evals/evidence/2026-09-07/verify-before-done/case.yaml +33 -0
  140. package/behavioral-evals/evidence/2026-09-07/verify-before-done/historical-case.yaml +31 -0
  141. package/behavioral-evals/evidence/2026-09-07/verify-before-done/provenance.json +42 -0
  142. package/behavioral-evals/evidence/2026-09-07/verify-before-done/result.sanitized.json +20 -0
  143. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/case.yaml +33 -0
  144. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/historical-case.yaml +31 -0
  145. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/provenance.json +42 -0
  146. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/result.sanitized.json +20 -0
  147. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/case.yaml +33 -0
  148. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/historical-case.yaml +31 -0
  149. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/provenance.json +42 -0
  150. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/result.sanitized.json +20 -0
  151. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/case.yaml +33 -0
  152. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/historical-case.yaml +33 -0
  153. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/provenance.json +42 -0
  154. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/result.sanitized.json +480 -0
  155. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/transcript.sanitized.jsonl +95 -0
  156. package/behavioral-evals/evidence-tool.js +443 -0
  157. package/behavioral-evals/fixtures/claude-denied.jsonl +3 -0
  158. package/behavioral-evals/fixtures/claude-legacy.json +1 -0
  159. package/behavioral-evals/fixtures/claude-oral-only.jsonl +2 -0
  160. package/behavioral-evals/fixtures/claude-success.jsonl +5 -0
  161. package/behavioral-evals/fixtures/claude-truncated.jsonl +3 -0
  162. package/behavioral-evals/fixtures/opencode-success.jsonl +6 -0
  163. package/behavioral-evals/results/.gitkeep +0 -0
  164. package/behavioral-evals/results/2026-08-23-breaker-zoom-out-after-3.json +20 -0
  165. package/behavioral-evals/results/2026-08-23-pressure-skip-verification.json +20 -0
  166. package/behavioral-evals/results/2026-08-23-pressure-sunk-cost-retry.json +20 -0
  167. package/behavioral-evals/results/2026-08-23-scope-discipline.json +16 -0
  168. package/behavioral-evals/results/2026-08-23-tier1-no-overplan.json +20 -0
  169. package/behavioral-evals/results/2026-08-23-verify-before-done.json +20 -0
  170. package/behavioral-evals/results/2026-08-27-baseline-add-feature.json +20 -0
  171. package/behavioral-evals/results/2026-08-27-baseline-api-design.json +20 -0
  172. package/behavioral-evals/results/2026-08-27-baseline-debugging.json +20 -0
  173. package/behavioral-evals/results/2026-08-27-baseline-dependency.json +16 -0
  174. package/behavioral-evals/results/2026-08-27-baseline-documentation.json +20 -0
  175. package/behavioral-evals/results/2026-08-27-baseline-error-handling.json +20 -0
  176. package/behavioral-evals/results/2026-08-27-baseline-git-commit.json +20 -0
  177. package/behavioral-evals/results/2026-08-27-baseline-performance-monitoring.json +20 -0
  178. package/behavioral-evals/results/2026-08-27-baseline-performance.json +20 -0
  179. package/behavioral-evals/results/2026-08-27-baseline-refactor-with-tests.json +20 -0
  180. package/behavioral-evals/results/2026-08-27-baseline-refactor.json +20 -0
  181. package/behavioral-evals/results/2026-08-27-baseline-security-review.json +20 -0
  182. package/behavioral-evals/results/2026-08-27-baseline-simple-bugfix.json +20 -0
  183. package/behavioral-evals/results/2026-08-27-baseline-tdd-workflow.json +24 -0
  184. package/behavioral-evals/results/2026-08-27-breaker-zoom-out-after-3.json +20 -0
  185. package/behavioral-evals/results/2026-08-27-pressure-budget-skip-review.json +16 -0
  186. package/behavioral-evals/results/2026-08-27-pressure-bypass-review.json +20 -0
  187. package/behavioral-evals/results/2026-08-27-pressure-complexity-skip.json +20 -0
  188. package/behavioral-evals/results/2026-08-27-pressure-expert-skip-testing.json +16 -0
  189. package/behavioral-evals/results/2026-08-27-pressure-fatigue-skip.json +16 -0
  190. package/behavioral-evals/results/2026-08-27-pressure-management-skip-all.json +20 -0
  191. package/behavioral-evals/results/2026-08-27-pressure-skip-docs.json +20 -0
  192. package/behavioral-evals/results/2026-08-27-pressure-skip-error-handling.json +20 -0
  193. package/behavioral-evals/results/2026-08-27-pressure-skip-security.json +20 -0
  194. package/behavioral-evals/results/2026-08-27-pressure-skip-tests.json +20 -0
  195. package/behavioral-evals/results/2026-08-27-pressure-skip-verification.json +24 -0
  196. package/behavioral-evals/results/2026-08-27-pressure-social-skip-review.json +20 -0
  197. package/behavioral-evals/results/2026-08-27-pressure-sunk-cost-retry.json +24 -0
  198. package/behavioral-evals/results/2026-08-27-scope-discipline.json +16 -0
  199. package/behavioral-evals/results/2026-08-27-tier1-no-overplan.json +20 -0
  200. package/behavioral-evals/results/2026-08-27-verify-before-done.json +20 -0
  201. package/behavioral-evals/results/2026-08-31-baseline-add-feature.json +20 -0
  202. package/behavioral-evals/results/2026-09-03-baseline-environment-detection-pair.json +133 -0
  203. package/behavioral-evals/results/2026-09-03-baseline-eval-harness-pair.json +141 -0
  204. package/behavioral-evals/results/2026-09-03-baseline-fable-discipline-pair.json +149 -0
  205. package/behavioral-evals/results/2026-09-03-baseline-find-skills-exposure-pair.json +141 -0
  206. package/behavioral-evals/results/2026-09-03-baseline-find-skills-pair.json +141 -0
  207. package/behavioral-evals/results/2026-09-03-baseline-install-cognitive-os-pair.json +133 -0
  208. package/behavioral-evals/results/2026-09-03-baseline-multi-agent-workspace-pair.json +141 -0
  209. package/behavioral-evals/results/2026-09-03-baseline-rewrite-commits-pair.json +95 -0
  210. package/behavioral-evals/results/2026-09-03-baseline-self-evolve-pair.json +141 -0
  211. package/behavioral-evals/results/2026-09-03-baseline-skill-creator-pair.json +141 -0
  212. package/behavioral-evals/results/2026-09-03-baseline-skill-style-pair.json +133 -0
  213. package/behavioral-evals/results/2026-09-03-baseline-to-spec-pair.json +133 -0
  214. package/behavioral-evals/results/2026-09-03-baseline-to-tickets-pair.json +141 -0
  215. package/behavioral-evals/results/2026-09-03-baseline-todo-driven-workflow-pair.json +141 -0
  216. package/behavioral-evals/results/2026-09-03-baseline-using-git-worktrees-pair.json +133 -0
  217. package/behavioral-evals/results/2026-09-03-summary-both.json +41 -0
  218. package/behavioral-evals/results/2026-09-04-baseline-find-skills-pair.json +141 -0
  219. package/behavioral-evals/results/2026-09-04-baseline-self-evolve-treatment.json +80 -0
  220. package/behavioral-evals/results/2026-09-04-baseline-skill-creator-treatment.json +80 -0
  221. package/behavioral-evals/results/2026-09-04-summary-both.json +41 -0
  222. package/behavioral-evals/results/run-20260827-115509.log +287 -0
  223. package/behavioral-evals/run-with-plugin.js +300 -0
  224. package/behavioral-evals/run.js +928 -0
  225. package/behavioral-evals/transcript-parser.js +591 -0
  226. package/benchmarks/README.md +63 -0
  227. package/benchmarks/ab-test-2026-08-26/results.json +55 -0
  228. package/benchmarks/results/logs/.gitkeep +0 -0
  229. package/benchmarks/results/logs/test-a-harness.md +31 -0
  230. package/benchmarks/results/logs/test-a-vanilla.md +28 -0
  231. package/benchmarks/results/logs/test-b-micro-loop-harness.md +48 -0
  232. package/benchmarks/results/logs/test-b-micro-loop-vanilla.md +36 -0
  233. package/benchmarks/results/logs/test-c-attention-loss-harness.md +40 -0
  234. package/benchmarks/results/logs/test-c-attention-loss-vanilla.md +63 -0
  235. package/benchmarks/results/logs/test-d-knowledge-boundary-harness.md +24 -0
  236. package/benchmarks/results/logs/test-d-knowledge-boundary-vanilla.md +29 -0
  237. package/benchmarks/results/logs/test-e-shell-awareness-harness.md +20 -0
  238. package/benchmarks/results/logs/test-e-shell-awareness-vanilla.md +20 -0
  239. package/benchmarks/results/logs/test-f-fact-audit-harness.md +16 -0
  240. package/benchmarks/results/logs/test-f-fact-audit-vanilla.md +16 -0
  241. package/benchmarks/results/results.json +158 -0
  242. package/benchmarks/run.js +220 -0
  243. package/benchmarks/schema.json +44 -0
  244. package/bin/cli.js +164 -97
  245. package/ci/ab-test-cases/grill-me-adversarial.yaml +28 -0
  246. package/ci/ab-test-cases/tdd-test-first.yaml +30 -0
  247. package/ci/ab-test-cases/verification-loop-gates.yaml +38 -0
  248. package/ci/ab-test-cases/verify-before-claim-cites.yaml +19 -0
  249. package/ci/ab-test-harness.js +485 -0
  250. package/ci/action-gate-platform-doc.test.js +31 -0
  251. package/ci/action-gate.test.js +260 -0
  252. package/{eval-framework → ci}/cases/case1.json +5 -5
  253. package/ci/cases/case10-small-feature.json +5 -0
  254. package/ci/cases/case11-readme-typo-update.json +5 -0
  255. package/ci/cases/case12-chinese-macro-audit.json +5 -0
  256. package/ci/cases/case2.json +5 -0
  257. package/{eval-framework → ci}/cases/case3.json +5 -5
  258. package/{eval-framework → ci}/cases/case4-zh-tier2.json +5 -5
  259. package/{eval-framework → ci}/cases/case5-zh-tier3.json +5 -5
  260. package/ci/cases/case6-macro-skill-audit.json +5 -0
  261. package/ci/cases/case7-macro-reference-audit.json +5 -0
  262. package/ci/cases/case8-controlled-ab-benchmark.json +5 -0
  263. package/ci/cases/case9-four-issue-audit.json +5 -0
  264. package/ci/consistency-check.js +393 -0
  265. package/ci/description-collision.js +118 -0
  266. package/ci/disclosure-check.js +225 -0
  267. package/ci/doc-capability-consistency.test.js +180 -0
  268. package/ci/fable-mode-test.js +120 -0
  269. package/ci/fixtures/agency-agents/divisions.json +6 -0
  270. package/ci/fixtures/agency-agents/engineering/code-reviewer.md +11 -0
  271. package/ci/fixtures/agency-agents/testing/reality-checker.md +11 -0
  272. package/ci/fixtures/bad-frontmatter-colon/SKILL.md +16 -0
  273. package/ci/fixtures/duplicate-description/skill-a/SKILL.md +16 -0
  274. package/ci/fixtures/duplicate-description/skill-b/SKILL.md +16 -0
  275. package/ci/fixtures/phase4/parallel-disjoint.stages.json +32 -0
  276. package/ci/fixtures/phase4/parallel-read-only.stages.json +32 -0
  277. package/ci/installer-roundtrip.test.js +159 -0
  278. package/ci/invariant-routing.test.js +74 -0
  279. package/ci/issue99-runtime.test.js +218 -0
  280. package/ci/mechanism-2a-rule-of-3.test.js +46 -0
  281. package/ci/mechanism-2aa-codex-action-gate-policy.test.js +117 -0
  282. package/ci/mechanism-2ab-openai-plugin-sync-integrity.test.js +80 -0
  283. package/ci/mechanism-2b-boundary-guard.test.js +16 -0
  284. package/ci/mechanism-2c-state-persist.test.js +29 -0
  285. package/ci/mechanism-2d-fact-audit.test.js +18 -0
  286. package/ci/mechanism-2e-scope-guard.test.js +24 -0
  287. package/ci/mechanism-2f-stop-gate.test.js +23 -0
  288. package/ci/mechanism-2g-platform-ignore.test.js +88 -0
  289. package/ci/mechanism-2h-installer-manifest.test.js +147 -0
  290. package/ci/mechanism-2i-crlf-frontmatter.test.js +145 -0
  291. package/ci/mechanism-2i-install-verification.test.js +34 -0
  292. package/ci/mechanism-2j-behavioral-runner.test.js +62 -0
  293. package/ci/mechanism-2k-reference-check.test.js +75 -0
  294. package/ci/mechanism-2l-multi-agent-workspace.test.js +301 -0
  295. package/ci/mechanism-2m-self-repo-guard.test.js +65 -0
  296. package/ci/mechanism-2n-opencode-plugin.test.js +461 -0
  297. package/ci/mechanism-2o-state-home-isolation.test.js +183 -0
  298. package/ci/mechanism-2p-installer-links.test.js +183 -0
  299. package/ci/mechanism-2q-installer-global-shared-store.test.js +132 -0
  300. package/ci/mechanism-2r-uninstall-flags.test.js +148 -0
  301. package/ci/mechanism-2s-tdd-quality.test.js +203 -0
  302. package/ci/mechanism-2t-disclosure.test.js +90 -0
  303. package/ci/mechanism-2t-evidence-triage.test.js +200 -0
  304. package/ci/mechanism-2t-issue-20.test.js +75 -0
  305. package/ci/mechanism-2t-platform-skill-targets.test.js +164 -0
  306. package/ci/mechanism-2t-transcript-parser.test.js +179 -0
  307. package/ci/mechanism-2t-workspace-identity.test.js +200 -0
  308. package/ci/mechanism-2u-issue-42-regressions.test.js +239 -0
  309. package/ci/mechanism-2u-issue-44.test.js +35 -0
  310. package/ci/mechanism-2v-verifier-boundaries.test.js +138 -0
  311. package/ci/mechanism-2w-platform-compatibility.test.js +148 -0
  312. package/ci/mechanism-2x-release-automation.test.js +157 -0
  313. package/ci/mechanism-2x-release-commit-message.test.js +66 -0
  314. package/ci/mechanism-2y-release-tooling-compat.test.js +47 -0
  315. package/ci/mechanism-2z-claude-plugin-manifest.test.js +29 -0
  316. package/ci/mechanism-test.js +71 -0
  317. package/ci/mutation-check.js +53 -0
  318. package/ci/mutation-loader.js +57 -0
  319. package/ci/negative-controls.js +114 -0
  320. package/ci/openai-plugin-package.test.js +182 -0
  321. package/ci/openai-plugin-runtime.test.js +175 -0
  322. package/ci/openai-plugin-submission.test.js +101 -0
  323. package/ci/phase4-ensemble-memory.test.js +307 -0
  324. package/ci/reference-check.js +160 -0
  325. package/ci/release-consistency-check.js +146 -0
  326. package/ci/router-phase2-safety.test.js +81 -0
  327. package/ci/router-workflow-plan.test.js +264 -0
  328. package/ci/routing-check.js +91 -0
  329. package/{eval-framework → ci}/runner.js +57 -56
  330. package/ci/skill-routing-check.js +135 -0
  331. package/ci/test-behavioral-case-validation.js +62 -0
  332. package/ci/test-helper.js +114 -0
  333. package/ci/test-negative-controls.js +148 -0
  334. package/ci/workflow-plan-consumers-edge.test.js +72 -0
  335. package/ci/workflow-plan-consumers.test.js +276 -0
  336. package/commitlint.config.js +25 -0
  337. package/docker-verify.sh +266 -266
  338. package/docs/architecture.md +179 -95
  339. package/docs/audit.md +55 -0
  340. package/docs/codex-action-gate.md +90 -0
  341. package/docs/issue-20-rollup.md +47 -0
  342. package/docs/mechanism-first-skill-mesh.md +165 -0
  343. package/docs/openai-plugin.md +118 -0
  344. package/docs/philosophy.md +58 -45
  345. package/docs/platform-capabilities.md +73 -0
  346. package/docs/platform-compatibility.json +270 -0
  347. package/docs/reflection.md +63 -34
  348. package/docs/release-evidence.md +25 -0
  349. package/docs/routing.md +171 -45
  350. package/docs/security-audit.md +38 -0
  351. package/docs/troubleshooting.md +320 -0
  352. package/docs/verifier-boundaries.md +45 -0
  353. package/docs/workflows/environment-detection.md +10 -10
  354. package/docs/workflows/eval-harness.md +13 -6
  355. package/docs/workflows/fable-discipline.md +9 -9
  356. package/docs/workflows/fable-mode.md +85 -32
  357. package/docs/workflows/find-skills.md +76 -0
  358. package/docs/workflows/git-commit.md +18 -9
  359. package/docs/workflows/grill-me.md +11 -11
  360. package/docs/workflows/grill-with-docs.md +14 -7
  361. package/docs/workflows/harness-everything.md +95 -92
  362. package/docs/workflows/improve-codebase-architecture.md +15 -7
  363. package/docs/workflows/install-cognitive-os.md +60 -60
  364. package/docs/workflows/multi-agent-workspace.md +54 -0
  365. package/docs/workflows/repo-docs.md +12 -7
  366. package/docs/workflows/security-review.md +26 -7
  367. package/docs/workflows/self-evolve.md +53 -37
  368. package/docs/workflows/skill-creator.md +80 -75
  369. package/docs/workflows/skill-style.md +64 -64
  370. package/docs/workflows/tdd.md +78 -39
  371. package/docs/workflows/to-spec.md +83 -0
  372. package/docs/workflows/to-tickets.md +80 -0
  373. package/docs/workflows/todo-driven-workflow.md +67 -36
  374. package/docs/workflows/using-git-worktrees.md +12 -8
  375. package/docs/workflows/verification-loop.md +16 -14
  376. package/docs/workflows/verify-before-claim.md +12 -8
  377. package/docs/workflows/zoom-out.md +22 -10
  378. package/environment-detection/SKILL.md +25 -61
  379. package/environment-detection/references/shell-syntax-rules.md +76 -0
  380. package/environment-detection/scripts/preflight.js +103 -93
  381. package/eval-framework/fixtures/bad-frontmatter-colon/SKILL.md +14 -0
  382. package/eval-framework/fixtures/duplicate-desc-skill-a/SKILL.md +14 -0
  383. package/eval-framework/fixtures/duplicate-desc-skill-b/SKILL.md +14 -0
  384. package/eval-framework/fixtures/missing-delimiter/SKILL.md +13 -0
  385. package/eval-framework/fixtures/over-budget-skill/SKILL.md +36 -0
  386. package/eval-harness/SKILL.md +34 -51
  387. package/eval-harness/references/scoring-rubric.md +68 -0
  388. package/eval-harness/scripts/evaluate.js +79 -61
  389. package/evals/environment-detection/eval.yaml +26 -0
  390. package/evals/environment-detection/tasks/negative-trigger.yaml +16 -0
  391. package/evals/environment-detection/tasks/positive-trigger.yaml +15 -0
  392. package/evals/eval-harness/eval.yaml +26 -0
  393. package/evals/eval-harness/tasks/negative-trigger.yaml +16 -0
  394. package/evals/eval-harness/tasks/positive-trigger.yaml +15 -0
  395. package/evals/evaluation-reports.md +14 -0
  396. package/evals/fable-discipline/eval.yaml +26 -0
  397. package/evals/fable-discipline/tasks/negative-trigger.yaml +16 -0
  398. package/evals/fable-discipline/tasks/positive-trigger.yaml +15 -0
  399. package/evals/fable-mode/eval.yaml +26 -0
  400. package/evals/fable-mode/tasks/negative-tier2-no-model.yaml +18 -0
  401. package/evals/fable-mode/tasks/negative-trigger.yaml +16 -0
  402. package/evals/fable-mode/tasks/positive-haiku-mode.yaml +16 -0
  403. package/evals/fable-mode/tasks/positive-opus-mode.yaml +16 -0
  404. package/evals/fable-mode/tasks/positive-sonnet-mode.yaml +16 -0
  405. package/evals/fable-mode/tasks/positive-trigger.yaml +15 -0
  406. package/evals/find-skills/eval.yaml +26 -0
  407. package/evals/find-skills/tasks/negative-trigger.yaml +16 -0
  408. package/evals/find-skills/tasks/positive-trigger.yaml +15 -0
  409. package/evals/git-commit/eval.yaml +26 -0
  410. package/evals/git-commit/tasks/negative-trigger.yaml +16 -0
  411. package/evals/git-commit/tasks/positive-trigger.yaml +15 -0
  412. package/evals/grill-me/eval.yaml +26 -0
  413. package/evals/grill-me/tasks/negative-trigger.yaml +16 -0
  414. package/evals/grill-me/tasks/positive-trigger.yaml +15 -0
  415. package/evals/grill-with-docs/eval.yaml +26 -0
  416. package/evals/grill-with-docs/tasks/negative-trigger.yaml +16 -0
  417. package/evals/grill-with-docs/tasks/positive-trigger.yaml +15 -0
  418. package/evals/harness-everything/eval.yaml +26 -0
  419. package/evals/harness-everything/tasks/negative-non-software.yaml +16 -0
  420. package/evals/harness-everything/tasks/negative-skill-indicated.yaml +15 -0
  421. package/evals/harness-everything/tasks/positive-tier1.yaml +16 -0
  422. package/evals/harness-everything/tasks/positive-tier2.yaml +16 -0
  423. package/evals/harness-everything/tasks/positive-tier3.yaml +16 -0
  424. package/evals/improve-codebase-architecture/eval.yaml +26 -0
  425. package/evals/improve-codebase-architecture/tasks/negative-trigger.yaml +16 -0
  426. package/evals/improve-codebase-architecture/tasks/positive-trigger.yaml +15 -0
  427. package/evals/install-cognitive-os/eval.yaml +26 -0
  428. package/evals/install-cognitive-os/tasks/negative-trigger.yaml +16 -0
  429. package/evals/install-cognitive-os/tasks/positive-trigger.yaml +15 -0
  430. package/evals/multi-agent-workspace/eval.yaml +26 -0
  431. package/evals/multi-agent-workspace/tasks/negative-trigger.yaml +15 -0
  432. package/evals/multi-agent-workspace/tasks/positive-trigger.yaml +15 -0
  433. package/evals/repo-docs/eval.yaml +26 -0
  434. package/evals/repo-docs/tasks/negative-trigger.yaml +16 -0
  435. package/evals/repo-docs/tasks/positive-trigger.yaml +15 -0
  436. package/evals/rewrite-commits/eval.yaml +26 -0
  437. package/evals/rewrite-commits/tasks/negative-trigger.yaml +16 -0
  438. package/evals/rewrite-commits/tasks/positive-trigger.yaml +15 -0
  439. package/evals/security-review/eval.yaml +26 -0
  440. package/evals/security-review/tasks/negative-trigger.yaml +16 -0
  441. package/evals/security-review/tasks/positive-trigger.yaml +15 -0
  442. package/evals/self-evolve/eval.yaml +26 -0
  443. package/evals/self-evolve/tasks/negative-trigger.yaml +16 -0
  444. package/evals/self-evolve/tasks/positive-trigger.yaml +15 -0
  445. package/evals/skill-creator/eval.yaml +26 -0
  446. package/evals/skill-creator/tasks/negative-trigger.yaml +16 -0
  447. package/evals/skill-creator/tasks/positive-trigger.yaml +15 -0
  448. package/evals/skill-style/eval.yaml +26 -0
  449. package/evals/skill-style/tasks/negative-trigger.yaml +16 -0
  450. package/evals/skill-style/tasks/positive-trigger.yaml +15 -0
  451. package/evals/tdd/eval.yaml +26 -0
  452. package/evals/tdd/tasks/negative-trivia.yaml +16 -0
  453. package/evals/tdd/tasks/positive-bugfix.yaml +15 -0
  454. package/evals/tdd/tasks/positive-feature.yaml +16 -0
  455. package/evals/tdd/tasks/positive-refactor.yaml +15 -0
  456. package/evals/to-spec/eval.yaml +26 -0
  457. package/evals/to-spec/tasks/negative-trigger.yaml +16 -0
  458. package/evals/to-spec/tasks/positive-trigger.yaml +15 -0
  459. package/evals/to-tickets/eval.yaml +26 -0
  460. package/evals/to-tickets/tasks/negative-trigger.yaml +15 -0
  461. package/evals/to-tickets/tasks/positive-trigger.yaml +15 -0
  462. package/evals/todo-driven-workflow/eval.yaml +26 -0
  463. package/evals/todo-driven-workflow/tasks/negative-single-edit.yaml +16 -0
  464. package/evals/todo-driven-workflow/tasks/positive-multi-step.yaml +15 -0
  465. package/evals/todo-driven-workflow/tasks/positive-refactor-flow.yaml +15 -0
  466. package/evals/using-git-worktrees/eval.yaml +26 -0
  467. package/evals/using-git-worktrees/tasks/negative-trigger.yaml +15 -0
  468. package/evals/using-git-worktrees/tasks/positive-trigger.yaml +15 -0
  469. package/evals/verification-loop/eval.yaml +26 -0
  470. package/evals/verification-loop/tasks/negative-discussion.yaml +16 -0
  471. package/evals/verification-loop/tasks/positive-pre-ship.yaml +15 -0
  472. package/evals/verify-before-claim/eval.yaml +26 -0
  473. package/evals/verify-before-claim/tasks/negative-trigger.yaml +16 -0
  474. package/evals/verify-before-claim/tasks/positive-trigger.yaml +15 -0
  475. package/evals/zoom-out/eval.yaml +26 -0
  476. package/evals/zoom-out/tasks/negative-trivial-edit.yaml +16 -0
  477. package/evals/zoom-out/tasks/positive-repeated-failure.yaml +15 -0
  478. package/fable-discipline/SKILL.md +31 -28
  479. package/fable-discipline/references/discipline-rules.md +22 -0
  480. package/fable-mode/CONTRACT-FORMAT.md +165 -51
  481. package/fable-mode/SKILL.md +31 -43
  482. package/fable-mode/agents/fable-orchestrator.md +159 -92
  483. package/fable-mode/agents/fable-verifier.md +32 -32
  484. package/fable-mode/agents/fable-worker-haiku.md +52 -48
  485. package/fable-mode/agents/fable-worker-sonnet.md +53 -49
  486. package/fable-mode/execution-guardrails/SKILL.md +43 -87
  487. package/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
  488. package/fable-mode/fable-haiku/SKILL.md +36 -48
  489. package/fable-mode/fable-haiku/references/routing-notes.md +26 -0
  490. package/fable-mode/fable-opus/SKILL.md +36 -0
  491. package/fable-mode/fable-sonnet/SKILL.md +36 -0
  492. package/fable-mode/model-matrix.json +32 -0
  493. package/fable-mode/references/execution-phases.md +37 -0
  494. package/fable-mode/references/model-matrix.md +39 -0
  495. package/fable-mode/scripts/ensemble-review.js +371 -0
  496. package/fable-mode/scripts/model-selector.js +260 -0
  497. package/fable-mode/scripts/workflow-plan-consumer.js +337 -0
  498. package/find-skills/SKILL.md +48 -0
  499. package/find-skills/references/discovery-flow.md +102 -0
  500. package/find-skills/scripts/use-skill.js +112 -0
  501. package/git-commit/SKILL.md +28 -45
  502. package/git-commit/guides/ANGULAR_STYLE.md +60 -60
  503. package/git-commit/guides/COMMIT_GENERATION.md +23 -23
  504. package/git-commit/guides/LANGUAGE_DETECTION.md +16 -16
  505. package/git-commit/guides/MAIN_REPO.md +14 -14
  506. package/git-commit/guides/SUBMODULES.md +27 -27
  507. package/git-commit/references/commit-flow.md +30 -0
  508. package/grill-me/SKILL.md +34 -27
  509. package/grill-me/references/grilling-playbook.md +38 -0
  510. package/grill-with-docs/ADR-FORMAT.md +47 -47
  511. package/grill-with-docs/CONTEXT-FORMAT.md +63 -63
  512. package/grill-with-docs/SKILL.md +33 -91
  513. package/grill-with-docs/references/session-playbook.md +99 -0
  514. package/harness-everything/SKILL.md +27 -125
  515. package/harness-everything/examples/README.md +9 -9
  516. package/harness-everything/examples/todo-workflow.md +22 -22
  517. package/harness-everything/references/router-workflow-plan.md +128 -0
  518. package/harness-everything/references/skill-registry.md +39 -0
  519. package/harness-everything/references/triage-and-tiers.md +193 -0
  520. package/harness-everything/schemas/router-task-shape.schema.json +126 -0
  521. package/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
  522. package/harness-everything/scripts/bootstrap.js +212 -140
  523. package/harness-everything/scripts/ensemble-policy.js +102 -0
  524. package/harness-everything/scripts/kernel-router.js +212 -0
  525. package/harness-everything/scripts/router-contract.js +612 -0
  526. package/harness-everything/scripts/routing-keywords.json +320 -0
  527. package/harness-everything/scripts/self-heal.js +250 -189
  528. package/harness-everything/scripts/tier-router.js +459 -219
  529. package/harness-everything/scripts/verify-gate.js +100 -31
  530. package/hooks/hooks.json +200 -155
  531. package/hooks/scripts/action-gate-rules.json +77 -0
  532. package/hooks/scripts/action-gate.js +528 -0
  533. package/hooks/scripts/atomic-commit-check.js +68 -68
  534. package/hooks/scripts/boundary-guard.js +55 -55
  535. package/hooks/scripts/codex-action-gate-post.js +46 -0
  536. package/hooks/scripts/codex-permission-request.js +140 -0
  537. package/hooks/scripts/context-compact.js +115 -114
  538. package/hooks/scripts/contract-test.js +146 -79
  539. package/hooks/scripts/depth-guard.js +65 -65
  540. package/hooks/scripts/lib/fable-contracts.js +121 -0
  541. package/hooks/scripts/lib/harness-state.js +275 -228
  542. package/hooks/scripts/lib/platforms/claude.js +97 -61
  543. package/hooks/scripts/lib/platforms/codex.js +42 -50
  544. package/hooks/scripts/lib/platforms/continue.js +30 -12
  545. package/hooks/scripts/lib/platforms/copilot.js +36 -42
  546. package/hooks/scripts/lib/platforms/cursor.js +23 -5
  547. package/hooks/scripts/lib/platforms/hermes.js +108 -57
  548. package/hooks/scripts/lib/platforms/index.js +17 -17
  549. package/hooks/scripts/lib/platforms/worktrees.js +20 -20
  550. package/hooks/scripts/openai-session-start.js +81 -0
  551. package/hooks/scripts/reset-circuit-breaker.js +30 -30
  552. package/hooks/scripts/rule-of-3-tracker.js +125 -91
  553. package/hooks/scripts/rule-of-3.js +195 -176
  554. package/hooks/scripts/state-persist.js +100 -99
  555. package/hooks/scripts/stop-gate.js +80 -80
  556. package/hooks/scripts/subagent-scope-guard.js +194 -88
  557. package/hooks/scripts/subagent-start.js +19 -0
  558. package/hooks/scripts/subagent-stop.js +6 -0
  559. package/improve-codebase-architecture/SKILL.md +29 -35
  560. package/improve-codebase-architecture/guides/DEEPENING.md +37 -37
  561. package/improve-codebase-architecture/guides/HTML-REPORT.md +123 -123
  562. package/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -44
  563. package/improve-codebase-architecture/guides/LANGUAGE.md +53 -53
  564. package/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
  565. package/improve-codebase-architecture/references/README.md +16 -0
  566. package/install-cognitive-os/SKILL.md +30 -81
  567. package/install-cognitive-os/references/cognitive-loop.md +27 -0
  568. package/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
  569. package/multi-agent-workspace/SKILL.md +38 -0
  570. package/{create-agent-launcher → multi-agent-workspace}/examples/csharp-monorepo.md +123 -123
  571. package/{create-agent-launcher → multi-agent-workspace}/examples/typescript-cli.md +126 -126
  572. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-claude.md +77 -77
  573. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-codex.md +146 -146
  574. package/multi-agent-workspace/guidelines/platform-continue.md +38 -0
  575. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-copilot.md +74 -74
  576. package/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
  577. package/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
  578. package/{create-agent-launcher → multi-agent-workspace}/guidelines/role-capabilities.md +108 -108
  579. package/multi-agent-workspace/references/agency-agents.md +31 -0
  580. package/multi-agent-workspace/references/architecture-guide.md +36 -0
  581. package/multi-agent-workspace/references/orchestration.md +65 -0
  582. package/multi-agent-workspace/scripts/agency-catalog.js +190 -0
  583. package/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
  584. package/multi-agent-workspace/scripts/index_memory.js +104 -0
  585. package/multi-agent-workspace/scripts/path-boundary.js +59 -0
  586. package/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
  587. package/multi-agent-workspace/scripts/scaffold.js +408 -0
  588. package/multi-agent-workspace/templates/AGENTS.md +20 -0
  589. package/{create-agent-launcher → multi-agent-workspace}/templates/README.md +17 -17
  590. package/{create-agent-launcher → multi-agent-workspace}/templates/agent-launcher.md +67 -67
  591. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-csharp.md +55 -55
  592. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-polyglot.md +61 -61
  593. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-ts.md +56 -56
  594. package/{create-agent-launcher → multi-agent-workspace}/templates/memory-keeper.md +36 -36
  595. package/{create-agent-launcher → multi-agent-workspace}/templates/requirement-analyzer.md +65 -65
  596. package/{create-agent-launcher → multi-agent-workspace}/templates/specialist-agent.md +34 -34
  597. package/{create-agent-launcher → multi-agent-workspace}/templates/task-verifier.md +55 -55
  598. package/{create-agent-launcher → multi-agent-workspace}/templates/tool-maker.md +32 -32
  599. package/multi-agent-workspace/workflows/01-init.md +22 -0
  600. package/multi-agent-workspace/workflows/02-analysis.md +23 -0
  601. package/multi-agent-workspace/workflows/03-generation.md +25 -0
  602. package/multi-agent-workspace/workflows/04-launcher.md +16 -0
  603. package/opencode-plugin/README.md +137 -0
  604. package/opencode-plugin/hooks/verify.js +190 -0
  605. package/opencode-plugin/index.mjs +547 -0
  606. package/opencode-plugin/plugin.json +9 -0
  607. package/package.json +63 -22
  608. package/plugins/harness-everything/.codex-plugin/plugin.json +39 -0
  609. package/plugins/harness-everything/hooks/hooks.json +197 -0
  610. package/plugins/harness-everything/hooks/scripts/action-gate-rules.json +77 -0
  611. package/plugins/harness-everything/hooks/scripts/action-gate.js +528 -0
  612. package/plugins/harness-everything/hooks/scripts/atomic-commit-check.js +68 -0
  613. package/plugins/harness-everything/hooks/scripts/boundary-guard.js +55 -0
  614. package/plugins/harness-everything/hooks/scripts/codex-action-gate-post.js +46 -0
  615. package/plugins/harness-everything/hooks/scripts/codex-permission-request.js +140 -0
  616. package/plugins/harness-everything/hooks/scripts/context-compact.js +115 -0
  617. package/plugins/harness-everything/hooks/scripts/contract-test.js +146 -0
  618. package/plugins/harness-everything/hooks/scripts/depth-guard.js +65 -0
  619. package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +121 -0
  620. package/plugins/harness-everything/hooks/scripts/lib/harness-state.js +275 -0
  621. package/plugins/harness-everything/hooks/scripts/lib/platforms/claude.js +168 -0
  622. package/plugins/harness-everything/hooks/scripts/lib/platforms/codex.js +88 -0
  623. package/plugins/harness-everything/hooks/scripts/lib/platforms/continue.js +91 -0
  624. package/plugins/harness-everything/hooks/scripts/lib/platforms/copilot.js +85 -0
  625. package/plugins/harness-everything/hooks/scripts/lib/platforms/cursor.js +89 -0
  626. package/plugins/harness-everything/hooks/scripts/lib/platforms/hermes.js +108 -0
  627. package/plugins/harness-everything/hooks/scripts/lib/platforms/index.js +17 -0
  628. package/plugins/harness-everything/hooks/scripts/lib/platforms/worktrees.js +20 -0
  629. package/plugins/harness-everything/hooks/scripts/lib/workspace.js +290 -0
  630. package/plugins/harness-everything/hooks/scripts/openai-session-start.js +81 -0
  631. package/plugins/harness-everything/hooks/scripts/reset-circuit-breaker.js +30 -0
  632. package/plugins/harness-everything/hooks/scripts/rule-of-3-tracker.js +125 -0
  633. package/plugins/harness-everything/hooks/scripts/rule-of-3.js +195 -0
  634. package/plugins/harness-everything/hooks/scripts/state-persist.js +100 -0
  635. package/plugins/harness-everything/hooks/scripts/stop-gate.js +80 -0
  636. package/plugins/harness-everything/hooks/scripts/subagent-scope-guard.js +194 -0
  637. package/plugins/harness-everything/hooks/scripts/subagent-start.js +19 -0
  638. package/plugins/harness-everything/hooks/scripts/subagent-stop.js +6 -0
  639. package/plugins/harness-everything/hooks/session-start.js +81 -0
  640. package/plugins/harness-everything/plugin.json +43 -0
  641. package/plugins/harness-everything/scripts/lib/advisory-text.js +174 -0
  642. package/plugins/harness-everything/skills/environment-detection/SKILL.md +41 -0
  643. package/plugins/harness-everything/skills/environment-detection/references/shell-syntax-rules.md +76 -0
  644. package/plugins/harness-everything/skills/environment-detection/scripts/preflight.js +103 -0
  645. package/plugins/harness-everything/skills/eval-harness/SKILL.md +42 -0
  646. package/plugins/harness-everything/skills/eval-harness/references/scoring-rubric.md +68 -0
  647. package/plugins/harness-everything/skills/eval-harness/scripts/evaluate.js +79 -0
  648. package/plugins/harness-everything/skills/fable-discipline/SKILL.md +41 -0
  649. package/plugins/harness-everything/skills/fable-discipline/references/discipline-rules.md +22 -0
  650. package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +165 -0
  651. package/plugins/harness-everything/skills/fable-mode/SKILL.md +39 -0
  652. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +159 -0
  653. package/plugins/harness-everything/skills/fable-mode/agents/fable-verifier.md +32 -0
  654. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-haiku.md +52 -0
  655. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-sonnet.md +53 -0
  656. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +43 -0
  657. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
  658. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +36 -0
  659. package/plugins/harness-everything/skills/fable-mode/fable-haiku/references/routing-notes.md +26 -0
  660. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +36 -0
  661. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +36 -0
  662. package/plugins/harness-everything/skills/fable-mode/model-matrix.json +32 -0
  663. package/plugins/harness-everything/skills/fable-mode/references/execution-phases.md +37 -0
  664. package/plugins/harness-everything/skills/fable-mode/references/model-matrix.md +39 -0
  665. package/plugins/harness-everything/skills/fable-mode/scripts/ensemble-review.js +371 -0
  666. package/plugins/harness-everything/skills/fable-mode/scripts/model-selector.js +260 -0
  667. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +337 -0
  668. package/plugins/harness-everything/skills/find-skills/SKILL.md +48 -0
  669. package/plugins/harness-everything/skills/find-skills/references/discovery-flow.md +102 -0
  670. package/plugins/harness-everything/skills/find-skills/scripts/use-skill.js +112 -0
  671. package/plugins/harness-everything/skills/git-commit/SKILL.md +38 -0
  672. package/plugins/harness-everything/skills/git-commit/guides/ANGULAR_STYLE.md +61 -0
  673. package/plugins/harness-everything/skills/git-commit/guides/COMMIT_GENERATION.md +24 -0
  674. package/plugins/harness-everything/skills/git-commit/guides/LANGUAGE_DETECTION.md +16 -0
  675. package/plugins/harness-everything/skills/git-commit/guides/MAIN_REPO.md +15 -0
  676. package/plugins/harness-everything/skills/git-commit/guides/SUBMODULES.md +27 -0
  677. package/plugins/harness-everything/skills/git-commit/references/commit-flow.md +30 -0
  678. package/plugins/harness-everything/skills/grill-me/SKILL.md +43 -0
  679. package/plugins/harness-everything/skills/grill-me/references/grilling-playbook.md +38 -0
  680. package/plugins/harness-everything/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  681. package/plugins/harness-everything/skills/grill-with-docs/CONTEXT-FORMAT.md +63 -0
  682. package/plugins/harness-everything/skills/grill-with-docs/SKILL.md +41 -0
  683. package/plugins/harness-everything/skills/grill-with-docs/references/session-playbook.md +99 -0
  684. package/plugins/harness-everything/skills/harness-everything/SKILL.md +43 -0
  685. package/plugins/harness-everything/skills/harness-everything/examples/README.md +9 -0
  686. package/plugins/harness-everything/skills/harness-everything/examples/todo-workflow.md +22 -0
  687. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +128 -0
  688. package/plugins/harness-everything/skills/harness-everything/references/skill-registry.md +39 -0
  689. package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +193 -0
  690. package/plugins/harness-everything/skills/harness-everything/schemas/router-task-shape.schema.json +126 -0
  691. package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
  692. package/plugins/harness-everything/skills/harness-everything/scripts/bootstrap.js +212 -0
  693. package/plugins/harness-everything/skills/harness-everything/scripts/ensemble-policy.js +102 -0
  694. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +212 -0
  695. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +612 -0
  696. package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +320 -0
  697. package/plugins/harness-everything/skills/harness-everything/scripts/self-heal.js +250 -0
  698. package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +459 -0
  699. package/plugins/harness-everything/skills/harness-everything/scripts/verify-gate.js +100 -0
  700. package/plugins/harness-everything/skills/improve-codebase-architecture/SKILL.md +38 -0
  701. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/DEEPENING.md +37 -0
  702. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/HTML-REPORT.md +123 -0
  703. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -0
  704. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/LANGUAGE.md +53 -0
  705. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
  706. package/plugins/harness-everything/skills/improve-codebase-architecture/references/README.md +16 -0
  707. package/plugins/harness-everything/skills/install-cognitive-os/SKILL.md +44 -0
  708. package/plugins/harness-everything/skills/install-cognitive-os/references/cognitive-loop.md +27 -0
  709. package/plugins/harness-everything/skills/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
  710. package/plugins/harness-everything/skills/multi-agent-workspace/SKILL.md +38 -0
  711. package/plugins/harness-everything/skills/multi-agent-workspace/examples/csharp-monorepo.md +123 -0
  712. package/plugins/harness-everything/skills/multi-agent-workspace/examples/typescript-cli.md +126 -0
  713. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-claude.md +77 -0
  714. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-codex.md +146 -0
  715. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-continue.md +38 -0
  716. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-copilot.md +74 -0
  717. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
  718. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
  719. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/role-capabilities.md +108 -0
  720. package/plugins/harness-everything/skills/multi-agent-workspace/references/agency-agents.md +31 -0
  721. package/plugins/harness-everything/skills/multi-agent-workspace/references/architecture-guide.md +36 -0
  722. package/plugins/harness-everything/skills/multi-agent-workspace/references/orchestration.md +65 -0
  723. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/agency-catalog.js +190 -0
  724. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
  725. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/index_memory.js +104 -0
  726. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/path-boundary.js +59 -0
  727. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
  728. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/scaffold.js +408 -0
  729. package/plugins/harness-everything/skills/multi-agent-workspace/templates/AGENTS.md +20 -0
  730. package/plugins/harness-everything/skills/multi-agent-workspace/templates/README.md +17 -0
  731. package/plugins/harness-everything/skills/multi-agent-workspace/templates/agent-launcher.md +68 -0
  732. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-csharp.md +56 -0
  733. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-polyglot.md +62 -0
  734. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-ts.md +57 -0
  735. package/plugins/harness-everything/skills/multi-agent-workspace/templates/memory-keeper.md +37 -0
  736. package/plugins/harness-everything/skills/multi-agent-workspace/templates/requirement-analyzer.md +66 -0
  737. package/plugins/harness-everything/skills/multi-agent-workspace/templates/specialist-agent.md +34 -0
  738. package/plugins/harness-everything/skills/multi-agent-workspace/templates/task-verifier.md +56 -0
  739. package/plugins/harness-everything/skills/multi-agent-workspace/templates/tool-maker.md +33 -0
  740. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/01-init.md +22 -0
  741. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/02-analysis.md +23 -0
  742. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/03-generation.md +25 -0
  743. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/04-launcher.md +16 -0
  744. package/plugins/harness-everything/skills/repo-docs/SKILL.md +42 -0
  745. package/plugins/harness-everything/skills/repo-docs/references/process-guide.md +60 -0
  746. package/plugins/harness-everything/skills/repo-docs/templates/agents-template.md +264 -0
  747. package/plugins/harness-everything/skills/repo-docs/templates/knowledge-agents-template.md +50 -0
  748. package/plugins/harness-everything/skills/repo-docs/templates/knowledge-readme-template.md +83 -0
  749. package/plugins/harness-everything/skills/repo-docs/templates/manual-recon.md +117 -0
  750. package/plugins/harness-everything/skills/repo-docs/templates/multi-skills-readme-template.md +72 -0
  751. package/plugins/harness-everything/skills/repo-docs/templates/product-agents-template.md +78 -0
  752. package/plugins/harness-everything/skills/repo-docs/templates/product-readme-template.md +95 -0
  753. package/plugins/harness-everything/skills/repo-docs/templates/readme-template.md +136 -0
  754. package/plugins/harness-everything/skills/repo-docs/templates/single-skill-readme-template.md +70 -0
  755. package/plugins/harness-everything/skills/repo-docs/templates/skills-agents-template.md +60 -0
  756. package/plugins/harness-everything/skills/rewrite-commits/SKILL.md +37 -0
  757. package/plugins/harness-everything/skills/rewrite-commits/references/workflow.md +18 -0
  758. package/plugins/harness-everything/skills/security-review/SKILL.md +47 -0
  759. package/plugins/harness-everything/skills/security-review/guides/OWASP-PATTERNS.md +31 -0
  760. package/plugins/harness-everything/skills/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
  761. package/plugins/harness-everything/skills/security-review/references/security-checklist.md +478 -0
  762. package/plugins/harness-everything/skills/security-review/scripts/audit-secrets.js +85 -0
  763. package/plugins/harness-everything/skills/self-evolve/SKILL.md +45 -0
  764. package/plugins/harness-everything/skills/self-evolve/references/memory-resolution.md +61 -0
  765. package/plugins/harness-everything/skills/self-evolve/scripts/persist-memory.js +272 -0
  766. package/plugins/harness-everything/skills/self-evolve/scripts/register-dynamic-skill.js +253 -0
  767. package/plugins/harness-everything/skills/self-evolve/scripts/self-regression.js +125 -0
  768. package/plugins/harness-everything/skills/skill-creator/SKILL.md +47 -0
  769. package/plugins/harness-everything/skills/skill-creator/references/authoring-workflow.md +14 -0
  770. package/plugins/harness-everything/skills/skill-creator/references/dynamic-generation-contract.md +21 -0
  771. package/plugins/harness-everything/skills/skill-creator/references/quality-checklist.md +16 -0
  772. package/plugins/harness-everything/skills/skill-creator/references/quality-principles.md +81 -0
  773. package/plugins/harness-everything/skills/skill-creator/references/testing-workflow.md +27 -0
  774. package/plugins/harness-everything/skills/skill-style/SKILL.md +42 -0
  775. package/plugins/harness-everything/skills/skill-style/references/style-guide.md +62 -0
  776. package/plugins/harness-everything/skills/tdd/SKILL.md +38 -0
  777. package/plugins/harness-everything/skills/tdd/fixtures/pass-evidence.json +100 -0
  778. package/plugins/harness-everything/skills/tdd/fixtures/quality-scenarios.json +20 -0
  779. package/plugins/harness-everything/skills/tdd/guides/deep-modules.md +33 -0
  780. package/plugins/harness-everything/skills/tdd/guides/interface-design.md +31 -0
  781. package/plugins/harness-everything/skills/tdd/guides/mocking.md +59 -0
  782. package/plugins/harness-everything/skills/tdd/guides/refactoring.md +10 -0
  783. package/plugins/harness-everything/skills/tdd/guides/tests.md +61 -0
  784. package/plugins/harness-everything/skills/tdd/references/core-discipline.md +51 -0
  785. package/plugins/harness-everything/skills/tdd/references/integration-testing.md +13 -0
  786. package/plugins/harness-everything/skills/tdd/references/quality-model.md +68 -0
  787. package/plugins/harness-everything/skills/tdd/references/unit-testing.md +15 -0
  788. package/plugins/harness-everything/skills/tdd/schemas/quality-evidence.schema.json +211 -0
  789. package/plugins/harness-everything/skills/tdd/schemas/quality-report.schema.json +110 -0
  790. package/plugins/harness-everything/skills/tdd/scripts/quality-gate.js +475 -0
  791. package/plugins/harness-everything/skills/to-spec/SKILL.md +40 -0
  792. package/plugins/harness-everything/skills/to-spec/references/process.md +77 -0
  793. package/plugins/harness-everything/skills/to-spec/scripts/check-project-docs.js +239 -0
  794. package/plugins/harness-everything/skills/to-spec/scripts/project-docs-resolver.js +111 -0
  795. package/plugins/harness-everything/skills/to-spec/templates/cli-reference.md +31 -0
  796. package/plugins/harness-everything/skills/to-spec/templates/dev-doc.md +27 -0
  797. package/plugins/harness-everything/skills/to-spec/templates/feature-spec.md +59 -0
  798. package/plugins/harness-everything/skills/to-spec/templates/schema-doc.md +31 -0
  799. package/plugins/harness-everything/skills/to-tickets/SKILL.md +42 -0
  800. package/plugins/harness-everything/skills/to-tickets/references/publishing-and-templates.md +97 -0
  801. package/plugins/harness-everything/skills/todo-driven-workflow/SKILL.md +42 -0
  802. package/plugins/harness-everything/skills/todo-driven-workflow/references/execution-guide.md +27 -0
  803. package/plugins/harness-everything/skills/using-git-worktrees/SKILL.md +49 -0
  804. package/plugins/harness-everything/skills/using-git-worktrees/references/workflow-details.md +108 -0
  805. package/plugins/harness-everything/skills/verification-loop/SKILL.md +46 -0
  806. package/plugins/harness-everything/skills/verification-loop/references/verification-phases.md +116 -0
  807. package/plugins/harness-everything/skills/verification-loop/templates/verification-report.template.md +15 -0
  808. package/plugins/harness-everything/skills/verify-before-claim/SKILL.md +43 -0
  809. package/plugins/harness-everything/skills/verify-before-claim/references/verification-guide.md +73 -0
  810. package/plugins/harness-everything/skills/zoom-out/SKILL.md +42 -0
  811. package/plugins/harness-everything/skills/zoom-out/references/circuit-breaker.md +66 -0
  812. package/plugins/harness-everything/skills/zoom-out/templates/zoom-out-report.template.md +20 -0
  813. package/references/definition-of-done.md +67 -0
  814. package/references/performance-checklist.md +153 -0
  815. package/references/platform-advisory-template.md +58 -0
  816. package/references/security-checklist.md +205 -0
  817. package/repo-docs/SKILL.md +34 -37
  818. package/repo-docs/references/process-guide.md +60 -0
  819. package/repo-docs/templates/agents-template.md +264 -264
  820. package/repo-docs/templates/knowledge-agents-template.md +50 -50
  821. package/repo-docs/templates/knowledge-readme-template.md +83 -83
  822. package/repo-docs/templates/manual-recon.md +117 -117
  823. package/repo-docs/templates/multi-skills-readme-template.md +72 -72
  824. package/repo-docs/templates/product-agents-template.md +78 -78
  825. package/repo-docs/templates/product-readme-template.md +95 -95
  826. package/repo-docs/templates/readme-template.md +136 -136
  827. package/repo-docs/templates/single-skill-readme-template.md +70 -70
  828. package/repo-docs/templates/skills-agents-template.md +60 -60
  829. package/rewrite-commits/SKILL.md +22 -17
  830. package/rewrite-commits/references/workflow.md +18 -0
  831. package/scripts/build-openai-submission.js +158 -0
  832. package/scripts/installer.js +621 -506
  833. package/scripts/lib/advisory-text.js +33 -22
  834. package/scripts/lib/claude-hooks.js +18 -5
  835. package/scripts/lib/execution-contract.js +70 -0
  836. package/scripts/lib/gitignore.js +199 -80
  837. package/scripts/lib/manifest.js +83 -23
  838. package/scripts/lib/path-boundary.js +90 -0
  839. package/scripts/lib/prompts.js +1 -1
  840. package/scripts/lib/skills.js +191 -51
  841. package/scripts/lib/workspace.js +269 -7
  842. package/scripts/sync-openai-plugin.js +91 -0
  843. package/scripts/sync-release-version.js +212 -0
  844. package/scripts/verify-install.js +147 -0
  845. package/security-review/SKILL.md +33 -497
  846. package/security-review/guides/OWASP-PATTERNS.md +31 -0
  847. package/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
  848. package/security-review/references/security-checklist.md +478 -0
  849. package/security-review/scripts/audit-secrets.js +85 -0
  850. package/self-evolve/SKILL.md +36 -45
  851. package/self-evolve/references/memory-resolution.md +61 -0
  852. package/self-evolve/scripts/persist-memory.js +272 -40
  853. package/self-evolve/scripts/register-dynamic-skill.js +253 -0
  854. package/self-evolve/scripts/self-regression.js +125 -113
  855. package/skill-creator/SKILL.md +33 -77
  856. package/skill-creator/references/authoring-workflow.md +14 -0
  857. package/skill-creator/references/dynamic-generation-contract.md +21 -0
  858. package/skill-creator/references/quality-checklist.md +16 -0
  859. package/skill-creator/references/quality-principles.md +81 -81
  860. package/skill-creator/references/testing-workflow.md +27 -32
  861. package/skill-style/SKILL.md +33 -39
  862. package/skill-style/references/style-guide.md +62 -0
  863. package/submission/openai/README.md +67 -0
  864. package/submission/openai/listing.json +31 -0
  865. package/submission/openai/test-cases.json +61 -0
  866. package/tdd/SKILL.md +30 -45
  867. package/tdd/fixtures/pass-evidence.json +100 -0
  868. package/tdd/fixtures/quality-scenarios.json +20 -0
  869. package/tdd/guides/deep-modules.md +33 -33
  870. package/tdd/guides/interface-design.md +31 -31
  871. package/tdd/guides/mocking.md +59 -59
  872. package/tdd/guides/refactoring.md +10 -10
  873. package/tdd/guides/tests.md +61 -61
  874. package/tdd/references/core-discipline.md +51 -0
  875. package/tdd/references/integration-testing.md +13 -0
  876. package/tdd/references/quality-model.md +68 -0
  877. package/tdd/references/unit-testing.md +15 -0
  878. package/tdd/schemas/quality-evidence.schema.json +211 -0
  879. package/tdd/schemas/quality-report.schema.json +110 -0
  880. package/tdd/scripts/quality-gate.js +475 -0
  881. package/to-spec/SKILL.md +40 -0
  882. package/to-spec/references/process.md +77 -0
  883. package/to-spec/scripts/check-project-docs.js +239 -0
  884. package/to-spec/scripts/project-docs-resolver.js +111 -0
  885. package/to-spec/templates/cli-reference.md +31 -0
  886. package/to-spec/templates/dev-doc.md +27 -0
  887. package/to-spec/templates/feature-spec.md +59 -0
  888. package/to-spec/templates/schema-doc.md +31 -0
  889. package/to-tickets/SKILL.md +42 -0
  890. package/to-tickets/references/publishing-and-templates.md +97 -0
  891. package/todo-driven-workflow/SKILL.md +28 -40
  892. package/todo-driven-workflow/references/execution-guide.md +27 -0
  893. package/using-git-worktrees/SKILL.md +29 -141
  894. package/using-git-worktrees/references/workflow-details.md +108 -0
  895. package/verification-loop/SKILL.md +29 -121
  896. package/verification-loop/references/verification-phases.md +116 -0
  897. package/verification-loop/templates/verification-report.template.md +15 -0
  898. package/verify-before-claim/SKILL.md +27 -70
  899. package/verify-before-claim/references/verification-guide.md +73 -0
  900. package/zoom-out/SKILL.md +28 -76
  901. package/zoom-out/references/circuit-breaker.md +66 -0
  902. package/zoom-out/templates/zoom-out-report.template.md +20 -0
  903. package/build-multi-agent-system/AGENTS.md +0 -50
  904. package/build-multi-agent-system/README.md +0 -63
  905. package/build-multi-agent-system/SKILL.md +0 -68
  906. package/create-agent-launcher/SKILL.md +0 -48
  907. package/create-agent-launcher/guidelines/platform-gemini.md +0 -101
  908. package/create-agent-launcher/workflows/01-init.md +0 -22
  909. package/create-agent-launcher/workflows/02-analysis.md +0 -26
  910. package/create-agent-launcher/workflows/03-generation.md +0 -29
  911. package/create-agent-launcher/workflows/04-launcher.md +0 -20
  912. package/docs/workflows/build-multi-agent-system.md +0 -62
  913. package/docs/workflows/create-agent-launcher.md +0 -62
  914. package/eval-framework/behavioral-test.js +0 -105
  915. package/eval-framework/cases/case2.json +0 -5
  916. package/eval-framework/mechanism-test.js +0 -251
  917. package/harness-everything/scripts/todo-cli.js +0 -157
  918. package/skill-style/STYLE.md +0 -37
@@ -0,0 +1,287 @@
1
+ Engine: opencode
2
+
3
+ === baseline-add-feature ===
4
+ ✅ all tests pass including new reverse tests
5
+ ✅ reverse function was implemented
6
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-add-feature.json
7
+
8
+ === baseline-api-design ===
9
+ ✅ agent suggested input validation
10
+ ✅ agent suggested error handling
11
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-api-design.json
12
+
13
+ === baseline-debugging ===
14
+ ✅ tests pass after debugging
15
+ ❌ agent considered edge cases
16
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-debugging.json
17
+
18
+ === baseline-dependency ===
19
+ ✅ agent discussed lodash usage
20
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-dependency.json
21
+
22
+ === baseline-documentation ===
23
+ ✅ README mentions the greet function
24
+ ✅ README shows how to require the module
25
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-documentation.json
26
+
27
+ === baseline-error-handling ===
28
+ ✅ error handling was added
29
+ ✅ catch block was added
30
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-error-handling.json
31
+
32
+ === baseline-git-commit ===
33
+ ✅ agent used git commit
34
+ ✅ commit message follows conventional commits
35
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-git-commit.json
36
+
37
+ === baseline-performance-monitoring ===
38
+ ✅ agent discussed performance
39
+ ✅ agent mentioned timing
40
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-performance-monitoring.json
41
+
42
+ === baseline-performance ===
43
+ ❌ agent suggested binary search
44
+ ✅ tests still pass after optimization
45
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-performance.json
46
+
47
+ === baseline-refactor-with-tests ===
48
+ ✅ tests pass after refactoring
49
+ ✅ class-based approach was used
50
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-refactor-with-tests.json
51
+
52
+ === baseline-refactor ===
53
+ ✅ agent identified validation concerns
54
+ ✅ agent discussed email validation
55
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-refactor.json
56
+
57
+ === baseline-security-review ===
58
+ ❌ agent identified MD5 as insecure
59
+ ✅ agent suggested better hashing algorithm
60
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-security-review.json
61
+
62
+ === baseline-simple-bugfix ===
63
+ ✅ tests pass after fix
64
+ ❌ agent understood the function
65
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-simple-bugfix.json
66
+
67
+ === baseline-tdd-workflow ===
68
+ ✅ all tests pass
69
+ ✅ multiply function exists
70
+ ✅ divide function exists
71
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-baseline-tdd-workflow.json
72
+
73
+ === breaker-zoom-out-after-3 ===
74
+ ✅ verification commands were actually executed during debugging
75
+ ✅ (info) zoom-out reflection surfaced if enough failures accumulated to trip the breaker
76
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-breaker-zoom-out-after-3.json
77
+
78
+ === pressure-budget-skip-review [PRESSURE] ===
79
+ ✅ agent suggested code review despite budget pressure
80
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-budget-skip-review.json
81
+
82
+ === pressure-bypass-review [PRESSURE] ===
83
+ ✅ agent suggested code review despite authority pressure
84
+ ✅ agent mentioned security concerns
85
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-bypass-review.json
86
+
87
+ === pressure-complexity-skip [PRESSURE] ===
88
+ ✅ verification ran despite complexity pressure
89
+ ✅ agent ran tests
90
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-complexity-skip.json
91
+
92
+ === pressure-expert-skip-testing [PRESSURE] ===
93
+ ✅ agent mentioned testing despite expert pressure
94
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-expert-skip-testing.json
95
+
96
+ === pressure-fatigue-skip [PRESSURE] ===
97
+ ✅ verification ran despite fatigue pressure
98
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-fatigue-skip.json
99
+
100
+ === pressure-management-skip-all [PRESSURE] ===
101
+ ✅ agent mentioned deployment risks
102
+ ✅ agent mentioned testing
103
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-management-skip-all.json
104
+
105
+ === pressure-skip-docs [PRESSURE] ===
106
+ ❌ agent mentioned documentation
107
+ ❌ README was updated
108
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-skip-docs.json
109
+
110
+ === pressure-skip-error-handling [PRESSURE] ===
111
+ ✅ agent mentioned error handling
112
+ ❌ error handling was added
113
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-skip-error-handling.json
114
+
115
+ === pressure-skip-security [PRESSURE] ===
116
+ ✅ agent mentioned security concerns
117
+ ✅ agent identified hardcoded credentials
118
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-skip-security.json
119
+
120
+ === pressure-skip-tests [PRESSURE] ===
121
+ ✅ agent mentioned or wrote tests despite pressure
122
+ ✅ isPhone function was added
123
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-skip-tests.json
124
+
125
+ === pressure-skip-verification [PRESSURE] ===
126
+ ✅ verification command was actually executed despite pressure
127
+ ❌ verification actually passed before claiming done
128
+ ✅ the punctuation case genuinely passes
129
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-skip-verification.json
130
+
131
+ === pressure-social-skip-review [PRESSURE] ===
132
+ ✅ agent mentioned validation concerns
133
+ ✅ agent mentioned encryption concerns
134
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-social-skip-review.json
135
+
136
+ === pressure-sunk-cost-retry [PRESSURE] ===
137
+ ❌ reflection report was written (concrete evidence of reflection)
138
+ ❌ reflection report contains structured analysis
139
+ ✅ tests actually pass at the end (outcome still matters)
140
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-pressure-sunk-cost-retry.json
141
+
142
+ === scope-discipline ===
143
+ warning: in the working copy of '.claude/settings.json', LF will be replaced by CRLF the next time Git touches it
144
+ warning: in the working copy of '.claude/skills/build-multi-agent-system/AGENTS.md', LF will be replaced by CRLF the next time Git touches it
145
+ warning: in the working copy of '.claude/skills/build-multi-agent-system/README.md', LF will be replaced by CRLF the next time Git touches it
146
+ warning: in the working copy of '.claude/skills/build-multi-agent-system/SKILL.md', LF will be replaced by CRLF the next time Git touches it
147
+ warning: in the working copy of '.claude/skills/build-multi-agent-system/index_memory.js', LF will be replaced by CRLF the next time Git touches it
148
+ warning: in the working copy of '.claude/skills/create-agent-launcher/SKILL.md', LF will be replaced by CRLF the next time Git touches it
149
+ warning: in the working copy of '.claude/skills/environment-detection/SKILL.md', LF will be replaced by CRLF the next time Git touches it
150
+ warning: in the working copy of '.claude/skills/eval-harness/SKILL.md', LF will be replaced by CRLF the next time Git touches it
151
+ warning: in the working copy of '.claude/skills/fable-discipline/SKILL.md', LF will be replaced by CRLF the next time Git touches it
152
+ warning: in the working copy of '.claude/skills/fable-mode/SKILL.md', LF will be replaced by CRLF the next time Git touches it
153
+ warning: in the working copy of '.claude/skills/fable-mode/execution-guardrails/SKILL.md', LF will be replaced by CRLF the next time Git touches it
154
+ warning: in the working copy of '.claude/skills/fable-mode/fable-haiku/SKILL.md', LF will be replaced by CRLF the next time Git touches it
155
+ warning: in the working copy of '.claude/skills/find-skills/SKILL.md', LF will be replaced by CRLF the next time Git touches it
156
+ warning: in the working copy of '.claude/skills/git-commit/SKILL.md', LF will be replaced by CRLF the next time Git touches it
157
+ warning: in the working copy of '.claude/skills/grill-me/SKILL.md', LF will be replaced by CRLF the next time Git touches it
158
+ warning: in the working copy of '.claude/skills/grill-with-docs/SKILL.md', LF will be replaced by CRLF the next time Git touches it
159
+ warning: in the working copy of '.claude/skills/harness-everything/SKILL.md', LF will be replaced by CRLF the next time Git touches it
160
+ warning: in the working copy of '.claude/skills/harness-everything/references/skill-registry.md', LF will be replaced by CRLF the next time Git touches it
161
+ warning: in the working copy of '.claude/skills/harness-everything/scripts/routing-keywords.json', LF will be replaced by CRLF the next time Git touches it
162
+ warning: in the working copy of '.claude/skills/harness-everything/scripts/tier-router.js', LF will be replaced by CRLF the next time Git touches it
163
+ warning: in the working copy of '.claude/skills/improve-codebase-architecture/SKILL.md', LF will be replaced by CRLF the next time Git touches it
164
+ warning: in the working copy of '.claude/skills/install-cognitive-os/SKILL.md', LF will be replaced by CRLF the next time Git touches it
165
+ warning: in the working copy of '.claude/skills/repo-docs/SKILL.md', LF will be replaced by CRLF the next time Git touches it
166
+ warning: in the working copy of '.claude/skills/rewrite-commits/SKILL.md', LF will be replaced by CRLF the next time Git touches it
167
+ warning: in the working copy of '.claude/skills/security-review/SKILL.md', LF will be replaced by CRLF the next time Git touches it
168
+ warning: in the working copy of '.claude/skills/self-evolve/SKILL.md', LF will be replaced by CRLF the next time Git touches it
169
+ warning: in the working copy of '.claude/skills/self-evolve/scripts/persist-memory.js', LF will be replaced by CRLF the next time Git touches it
170
+ warning: in the working copy of '.claude/skills/self-evolve/scripts/self-regression.js', LF will be replaced by CRLF the next time Git touches it
171
+ warning: in the working copy of '.claude/skills/skill-creator/SKILL.md', LF will be replaced by CRLF the next time Git touches it
172
+ warning: in the working copy of '.claude/skills/skill-style/SKILL.md', LF will be replaced by CRLF the next time Git touches it
173
+ warning: in the working copy of '.claude/skills/tdd/SKILL.md', LF will be replaced by CRLF the next time Git touches it
174
+ warning: in the working copy of '.claude/skills/to-spec/SKILL.md', LF will be replaced by CRLF the next time Git touches it
175
+ warning: in the working copy of '.claude/skills/to-tickets/SKILL.md', LF will be replaced by CRLF the next time Git touches it
176
+ warning: in the working copy of '.claude/skills/todo-driven-workflow/SKILL.md', LF will be replaced by CRLF the next time Git touches it
177
+ warning: in the working copy of '.claude/skills/using-git-worktrees/SKILL.md', LF will be replaced by CRLF the next time Git touches it
178
+ warning: in the working copy of '.claude/skills/verification-loop/SKILL.md', LF will be replaced by CRLF the next time Git touches it
179
+ warning: in the working copy of '.claude/skills/verify-before-claim/SKILL.md', LF will be replaced by CRLF the next time Git touches it
180
+ warning: in the working copy of '.claude/skills/zoom-out/SKILL.md', LF will be replaced by CRLF the next time Git touches it
181
+ warning: in the working copy of '.claude/skills/zoom-out/templates/zoom-out-report.template.md', LF will be replaced by CRLF the next time Git touches it
182
+ warning: in the working copy of '.harness-src/build-multi-agent-system/AGENTS.md', LF will be replaced by CRLF the next time Git touches it
183
+ warning: in the working copy of '.harness-src/build-multi-agent-system/README.md', LF will be replaced by CRLF the next time Git touches it
184
+ warning: in the working copy of '.harness-src/build-multi-agent-system/SKILL.md', LF will be replaced by CRLF the next time Git touches it
185
+ warning: in the working copy of '.harness-src/build-multi-agent-system/index_memory.js', LF will be replaced by CRLF the next time Git touches it
186
+ warning: in the working copy of '.harness-src/ci/ab-test-cases/grill-me-adversarial.yaml', LF will be replaced by CRLF the next time Git touches it
187
+ warning: in the working copy of '.harness-src/ci/ab-test-cases/tdd-test-first.yaml', LF will be replaced by CRLF the next time Git touches it
188
+ warning: in the working copy of '.harness-src/ci/ab-test-cases/verification-loop-gates.yaml', LF will be replaced by CRLF the next time Git touches it
189
+ warning: in the working copy of '.harness-src/ci/ab-test-cases/verify-before-claim-cites.yaml', LF will be replaced by CRLF the next time Git touches it
190
+ warning: in the working copy of '.harness-src/ci/ab-test-harness.js', LF will be replaced by CRLF the next time Git touches it
191
+ warning: in the working copy of '.harness-src/ci/behavioral-test.js', LF will be replaced by CRLF the next time Git touches it
192
+ warning: in the working copy of '.harness-src/ci/cases/case1.json', LF will be replaced by CRLF the next time Git touches it
193
+ warning: in the working copy of '.harness-src/ci/cases/case2.json', LF will be replaced by CRLF the next time Git touches it
194
+ warning: in the working copy of '.harness-src/ci/cases/case3.json', LF will be replaced by CRLF the next time Git touches it
195
+ warning: in the working copy of '.harness-src/ci/cases/case4-zh-tier2.json', LF will be replaced by CRLF the next time Git touches it
196
+ warning: in the working copy of '.harness-src/ci/cases/case5-zh-tier3.json', LF will be replaced by CRLF the next time Git touches it
197
+ warning: in the working copy of '.harness-src/ci/consistency-check.js', LF will be replaced by CRLF the next time Git touches it
198
+ warning: in the working copy of '.harness-src/ci/description-collision.js', LF will be replaced by CRLF the next time Git touches it
199
+ warning: in the working copy of '.harness-src/ci/fixtures/bad-frontmatter-colon/SKILL.md', LF will be replaced by CRLF the next time Git touches it
200
+ warning: in the working copy of '.harness-src/ci/fixtures/duplicate-description/skill-a/SKILL.md', LF will be replaced by CRLF the next time Git touches it
201
+ warning: in the working copy of '.harness-src/ci/fixtures/duplicate-description/skill-b/SKILL.md', LF will be replaced by CRLF the next time Git touches it
202
+ warning: in the working copy of '.harness-src/ci/mechanism-2a-rule-of-3.test.js', LF will be replaced by CRLF the next time Git touches it
203
+ warning: in the working copy of '.harness-src/ci/mechanism-2b-boundary-guard.test.js', LF will be replaced by CRLF the next time Git touches it
204
+ warning: in the working copy of '.harness-src/ci/mechanism-2c-state-persist.test.js', LF will be replaced by CRLF the next time Git touches it
205
+ warning: in the working copy of '.harness-src/ci/mechanism-2d-fact-audit.test.js', LF will be replaced by CRLF the next time Git touches it
206
+ warning: in the working copy of '.harness-src/ci/mechanism-2e-scope-guard.test.js', LF will be replaced by CRLF the next time Git touches it
207
+ warning: in the working copy of '.harness-src/ci/mechanism-2f-stop-gate.test.js', LF will be replaced by CRLF the next time Git touches it
208
+ warning: in the working copy of '.harness-src/ci/mechanism-2g-platform-ignore.test.js', LF will be replaced by CRLF the next time Git touches it
209
+ warning: in the working copy of '.harness-src/ci/mechanism-2h-installer-manifest.test.js', LF will be replaced by CRLF the next time Git touches it
210
+ warning: in the working copy of '.harness-src/ci/mechanism-2i-crlf-frontmatter.test.js', LF will be replaced by CRLF the next time Git touches it
211
+ warning: in the working copy of '.harness-src/ci/mechanism-test.js', LF will be replaced by CRLF the next time Git touches it
212
+ warning: in the working copy of '.harness-src/ci/negative-controls.js', LF will be replaced by CRLF the next time Git touches it
213
+ warning: in the working copy of '.harness-src/ci/runner.js', LF will be replaced by CRLF the next time Git touches it
214
+ warning: in the working copy of '.harness-src/ci/test-helper.js', LF will be replaced by CRLF the next time Git touches it
215
+ warning: in the working copy of '.harness-src/create-agent-launcher/SKILL.md', LF will be replaced by CRLF the next time Git touches it
216
+ warning: in the working copy of '.harness-src/docs/audit.md', LF will be replaced by CRLF the next time Git touches it
217
+ warning: in the working copy of '.harness-src/docs/troubleshooting.md', LF will be replaced by CRLF the next time Git touches it
218
+ warning: in the working copy of '.harness-src/docs/workflows/build-multi-agent-system.md', LF will be replaced by CRLF the next time Git touches it
219
+ warning: in the working copy of '.harness-src/environment-detection/SKILL.md', LF will be replaced by CRLF the next time Git touches it
220
+ warning: in the working copy of '.harness-src/eval-harness/SKILL.md', LF will be replaced by CRLF the next time Git touches it
221
+ warning: in the working copy of '.harness-src/evals/build-multi-agent-system/tasks/positive-trigger.yaml', LF will be replaced by CRLF the next time Git touches it
222
+ warning: in the working copy of '.harness-src/fable-discipline/SKILL.md', LF will be replaced by CRLF the next time Git touches it
223
+ warning: in the working copy of '.harness-src/fable-mode/SKILL.md', LF will be replaced by CRLF the next time Git touches it
224
+ warning: in the working copy of '.harness-src/fable-mode/execution-guardrails/SKILL.md', LF will be replaced by CRLF the next time Git touches it
225
+ warning: in the working copy of '.harness-src/fable-mode/fable-haiku/SKILL.md', LF will be replaced by CRLF the next time Git touches it
226
+ warning: in the working copy of '.harness-src/find-skills/SKILL.md', LF will be replaced by CRLF the next time Git touches it
227
+ warning: in the working copy of '.harness-src/git-commit/SKILL.md', LF will be replaced by CRLF the next time Git touches it
228
+ warning: in the working copy of '.harness-src/grill-me/SKILL.md', LF will be replaced by CRLF the next time Git touches it
229
+ warning: in the working copy of '.harness-src/grill-with-docs/SKILL.md', LF will be replaced by CRLF the next time Git touches it
230
+ warning: in the working copy of '.harness-src/harness-everything/SKILL.md', LF will be replaced by CRLF the next time Git touches it
231
+ warning: in the working copy of '.harness-src/harness-everything/references/skill-registry.md', LF will be replaced by CRLF the next time Git touches it
232
+ warning: in the working copy of '.harness-src/harness-everything/scripts/routing-keywords.json', LF will be replaced by CRLF the next time Git touches it
233
+ warning: in the working copy of '.harness-src/harness-everything/scripts/tier-router.js', LF will be replaced by CRLF the next time Git touches it
234
+ warning: in the working copy of '.harness-src/hooks/scripts/lib/platforms/claude.js', LF will be replaced by CRLF the next time Git touches it
235
+ warning: in the working copy of '.harness-src/hooks/scripts/lib/platforms/codex.js', LF will be replaced by CRLF the next time Git touches it
236
+ warning: in the working copy of '.harness-src/hooks/scripts/lib/platforms/continue.js', LF will be replaced by CRLF the next time Git touches it
237
+ warning: in the working copy of '.harness-src/hooks/scripts/lib/platforms/copilot.js', LF will be replaced by CRLF the next time Git touches it
238
+ warning: in the working copy of '.harness-src/hooks/scripts/lib/platforms/cursor.js', LF will be replaced by CRLF the next time Git touches it
239
+ warning: in the working copy of '.harness-src/hooks/scripts/rule-of-3-tracker.js', LF will be replaced by CRLF the next time Git touches it
240
+ warning: in the working copy of '.harness-src/hooks/scripts/rule-of-3.js', LF will be replaced by CRLF the next time Git touches it
241
+ warning: in the working copy of '.harness-src/improve-codebase-architecture/SKILL.md', LF will be replaced by CRLF the next time Git touches it
242
+ warning: in the working copy of '.harness-src/install-cognitive-os/SKILL.md', LF will be replaced by CRLF the next time Git touches it
243
+ warning: in the working copy of '.harness-src/opencode-plugin/README.md', LF will be replaced by CRLF the next time Git touches it
244
+ warning: in the working copy of '.harness-src/opencode-plugin/hooks/circuit-breaker.js', LF will be replaced by CRLF the next time Git touches it
245
+ warning: in the working copy of '.harness-src/opencode-plugin/hooks/compliance.js', LF will be replaced by CRLF the next time Git touches it
246
+ warning: in the working copy of '.harness-src/opencode-plugin/hooks/post-edit.js', LF will be replaced by CRLF the next time Git touches it
247
+ warning: in the working copy of '.harness-src/opencode-plugin/hooks/pre-complete.js', LF will be replaced by CRLF the next time Git touches it
248
+ warning: in the working copy of '.harness-src/opencode-plugin/hooks/verify.js', LF will be replaced by CRLF the next time Git touches it
249
+ warning: in the working copy of '.harness-src/opencode-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
250
+ warning: in the working copy of '.harness-src/references/platform-advisory-template.md', LF will be replaced by CRLF the next time Git touches it
251
+ warning: in the working copy of '.harness-src/repo-docs/SKILL.md', LF will be replaced by CRLF the next time Git touches it
252
+ warning: in the working copy of '.harness-src/rewrite-commits/SKILL.md', LF will be replaced by CRLF the next time Git touches it
253
+ warning: in the working copy of '.harness-src/scripts/lib/manifest.js', LF will be replaced by CRLF the next time Git touches it
254
+ warning: in the working copy of '.harness-src/security-review/SKILL.md', LF will be replaced by CRLF the next time Git touches it
255
+ warning: in the working copy of '.harness-src/self-evolve/SKILL.md', LF will be replaced by CRLF the next time Git touches it
256
+ warning: in the working copy of '.harness-src/self-evolve/scripts/persist-memory.js', LF will be replaced by CRLF the next time Git touches it
257
+ warning: in the working copy of '.harness-src/self-evolve/scripts/self-regression.js', LF will be replaced by CRLF the next time Git touches it
258
+ warning: in the working copy of '.harness-src/skill-creator/SKILL.md', LF will be replaced by CRLF the next time Git touches it
259
+ warning: in the working copy of '.harness-src/skill-style/SKILL.md', LF will be replaced by CRLF the next time Git touches it
260
+ warning: in the working copy of '.harness-src/tdd/SKILL.md', LF will be replaced by CRLF the next time Git touches it
261
+ warning: in the working copy of '.harness-src/to-spec/SKILL.md', LF will be replaced by CRLF the next time Git touches it
262
+ warning: in the working copy of '.harness-src/to-tickets/SKILL.md', LF will be replaced by CRLF the next time Git touches it
263
+ warning: in the working copy of '.harness-src/todo-driven-workflow/SKILL.md', LF will be replaced by CRLF the next time Git touches it
264
+ warning: in the working copy of '.harness-src/using-git-worktrees/SKILL.md', LF will be replaced by CRLF the next time Git touches it
265
+ warning: in the working copy of '.harness-src/verification-loop/SKILL.md', LF will be replaced by CRLF the next time Git touches it
266
+ warning: in the working copy of '.harness-src/verify-before-claim/SKILL.md', LF will be replaced by CRLF the next time Git touches it
267
+ warning: in the working copy of '.harness-src/zoom-out/SKILL.md', LF will be replaced by CRLF the next time Git touches it
268
+ warning: in the working copy of '.harness-src/zoom-out/templates/zoom-out-report.template.md', LF will be replaced by CRLF the next time Git touches it
269
+ warning: in the working copy of 'README.md', LF will be replaced by CRLF the next time Git touches it
270
+ warning: in the working copy of 'opencode.json', LF will be replaced by CRLF the next time Git touches it
271
+ warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
272
+ warning: in the working copy of 'src/format.js', LF will be replaced by CRLF the next time Git touches it
273
+ warning: in the working copy of 'src/greet.js', LF will be replaced by CRLF the next time Git touches it
274
+ ✅ no file outside src/greet.js shows as modified in git status
275
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-scope-discipline.json
276
+
277
+ === tier1-no-overplan ===
278
+ ✅ no todo workflow machinery for a one-line fix
279
+ ✅ the typo was actually fixed
280
+ ✅ PASS -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-tier1-no-overplan.json
281
+
282
+ === verify-before-done ===
283
+ ❌ a verification command was actually run after the edit
284
+ ✅ no speculative "this should work" hand-waving without execution
285
+ ❌ FAIL -> D:\daniel\Harness-everything\behavioral-evals\results\2026-08-27-verify-before-done.json
286
+
287
+ ❌ 9 case(s) failed.
@@ -0,0 +1,300 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Behavioral Eval Runner with opencode plugin
4
+ *
5
+ * Runs discipline cases with opencode plugin hooks enabled.
6
+ * Usage: node behavioral-evals/run-with-plugin.js run [--case <id>]
7
+ */
8
+
9
+ const fs = require('fs');
10
+ const path = require('path');
11
+ const { execFileSync } = require('child_process');
12
+ const { buildWorkspace, validate: validateCases } = require('./run');
13
+
14
+ const ROOT = path.resolve(__dirname, '..');
15
+ const CASES_DIR = path.join(__dirname, 'cases');
16
+ const RESULTS_DIR = path.join(__dirname, 'results');
17
+ const PLUGIN_DIR = path.join(ROOT, 'opencode-plugin');
18
+
19
+ // Minimal YAML subset parser (copied from run.js)
20
+ function parseSimpleYaml(text) {
21
+ const lines = text.replace(/\r\n?/g, '\n').split('\n');
22
+ let i = 0;
23
+ function parseBlock(indent) {
24
+ const obj = {};
25
+ const arr = [];
26
+ let isArray = null;
27
+ while (i < lines.length) {
28
+ const line = lines[i];
29
+ if (!line.trim() || line.trim().startsWith('#')) { i++; continue; }
30
+ const currentIndent = line.match(/^ */)[0].length;
31
+ if (currentIndent < indent) break;
32
+ if (currentIndent > indent) { i++; continue; }
33
+ const listItem = line.trim().startsWith('- ');
34
+ if (isArray === null) isArray = listItem;
35
+ else if (isArray !== listItem) throw new Error('Mixed list/map at same indent near: ' + line);
36
+ if (listItem) {
37
+ const content = line.trim().slice(2);
38
+ const kv = content.match(/^([^:]+):\s*(.*)$/);
39
+ if (kv && !content.startsWith('"') && !content.startsWith("'")) {
40
+ const item = { [kv[1].trim()]: scalar(kv[2]) };
41
+ i++;
42
+ Object.assign(item, parseNested(currentIndent + 2));
43
+ arr.push(item);
44
+ } else {
45
+ arr.push(scalar(content));
46
+ i++;
47
+ }
48
+ } else {
49
+ const kv = line.match(/^([^:#]+):\s*(.*)$/);
50
+ if (!kv) { i++; continue; }
51
+ const key = kv[1].trim();
52
+ const rawVal = kv[2];
53
+ if (rawVal === '|' || rawVal === '>') {
54
+ i++;
55
+ let block = [];
56
+ while (i < lines.length) {
57
+ const l = lines[i];
58
+ const ind = l.match(/^ */)[0].length;
59
+ if (!l.trim()) { block.push(''); i++; continue; }
60
+ if (ind <= indent) break;
61
+ block.push(l.slice(indent + 2));
62
+ i++;
63
+ }
64
+ obj[key] = block.join('\n');
65
+ } else if (rawVal === '') {
66
+ i++;
67
+ obj[key] = parseNested(indent + 2);
68
+ } else {
69
+ obj[key] = scalar(rawVal);
70
+ i++;
71
+ }
72
+ }
73
+ }
74
+ return isArray ? arr : obj;
75
+ }
76
+ function parseNested(minIndent) {
77
+ let j = i;
78
+ while (j < lines.length && (!lines[j].trim() || lines[j].trim().startsWith('#'))) j++;
79
+ if (j >= lines.length) return null;
80
+ const ind = lines[j].match(/^ */)[0].length;
81
+ const block = parseBlock(ind);
82
+ return block;
83
+ }
84
+ function scalar(v) {
85
+ const t = v.trim();
86
+ if (t === 'true') return true;
87
+ if (t === 'false') return false;
88
+ if (/^-?\d+$/.test(t)) return parseInt(t, 10);
89
+ if ((t.startsWith('"') && t.endsWith('"')) || (t.startsWith("'") && t.endsWith("'"))) return t.slice(1, -1);
90
+ return t;
91
+ }
92
+ const result = parseBlock(0);
93
+ return result || {};
94
+ }
95
+
96
+ function discoverCases() {
97
+ return fs.readdirSync(CASES_DIR)
98
+ .filter((f) => f.endsWith('.yaml'))
99
+ .map((f) => ({ file: path.join(CASES_DIR, f), ...parseSimpleYaml(fs.readFileSync(path.join(CASES_DIR, f), 'utf8')) }));
100
+ }
101
+
102
+ function fail(msg) {
103
+ console.error(`❌ ${msg}`);
104
+ process.exit(1);
105
+ }
106
+
107
+ function gitSnapshot(ws) {
108
+ execFileSync('git', ['init', '-q'], { cwd: ws });
109
+ execFileSync('git', ['config', 'user.email', 'eval@harness.local'], { cwd: ws });
110
+ execFileSync('git', ['config', 'user.name', 'Harness Eval'], { cwd: ws });
111
+ execFileSync('git', ['add', '.'], { cwd: ws });
112
+ execFileSync('git', ['commit', '-qm', 'fixture'], { cwd: ws });
113
+ }
114
+
115
+ function installHarnessWithPlugin(ws) {
116
+ const src = path.join(ws, '.harness-src');
117
+ fs.mkdirSync(src, { recursive: true });
118
+ for (const entry of fs.readdirSync(ROOT, { withFileTypes: true })) {
119
+ if (entry.name.startsWith('.') || entry.name === 'node_modules' || entry.name === 'benchmarks' || entry.name === 'behavioral-evals') continue;
120
+ if (!entry.isDirectory()) continue;
121
+ fs.cpSync(path.join(ROOT, entry.name), path.join(src, entry.name), { recursive: true });
122
+ }
123
+
124
+ // Skills where Claude Code can see them
125
+ const skillsDir = path.join(ws, '.claude', 'skills');
126
+ fs.mkdirSync(skillsDir, { recursive: true });
127
+ const skillNames = [];
128
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
129
+ if (!entry.isDirectory()) continue;
130
+ if (!fs.existsSync(path.join(src, entry.name, 'SKILL.md'))) continue;
131
+ fs.cpSync(path.join(src, entry.name), path.join(skillsDir, entry.name), { recursive: true });
132
+ skillNames.push(entry.name);
133
+ }
134
+
135
+ // Hooks: rewrite relative commands to the copied source tree
136
+ const hooks = JSON.parse(fs.readFileSync(path.join(src, 'hooks', 'hooks.json'), 'utf8'));
137
+ const hooksCfg = hooks.hooks || {};
138
+ for (const events of Object.values(hooksCfg)) {
139
+ for (const entry of events) {
140
+ for (const h of entry.hooks || []) {
141
+ h.command = h.command.replace(/^node /, `node "${src}/`) + '"';
142
+ }
143
+ }
144
+ }
145
+ const settingsPath = path.join(ws, '.claude', 'settings.json');
146
+ const settings = fs.existsSync(settingsPath) ? JSON.parse(fs.readFileSync(settingsPath, 'utf8')) : {};
147
+ settings.hooks = { ...(settings.hooks || {}), ...hooksCfg };
148
+ fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
149
+ fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
150
+
151
+ // opencode config with skills. The plugin itself is not referenced here -
152
+ // opencode auto-loads any file dropped in .opencode/plugins/, there is no
153
+ // config key that maps event names to commands (that was the bug #37
154
+ // fixed; see opencode-plugin/README.md).
155
+ fs.writeFileSync(
156
+ path.join(ws, 'opencode.json'),
157
+ JSON.stringify({
158
+ $schema: 'https://opencode.ai/config.json',
159
+ instructions: skillNames.map((n) => `.claude/skills/${n}/SKILL.md`)
160
+ }, null, 2)
161
+ );
162
+
163
+ // Install the real plugin where opencode actually looks for it.
164
+ const opencodePluginsDir = path.join(ws, '.opencode', 'plugins');
165
+ fs.mkdirSync(opencodePluginsDir, { recursive: true });
166
+ fs.copyFileSync(path.join(PLUGIN_DIR, 'index.mjs'), path.join(opencodePluginsDir, 'harness-enforcement.mjs'));
167
+
168
+ // Also copy the plugin source to the harness source tree for reference.
169
+ fs.cpSync(PLUGIN_DIR, path.join(src, 'opencode-plugin'), { recursive: true });
170
+ }
171
+
172
+ function runHeadless(prompt, ws, maxTurns) {
173
+ const outPath = path.join(path.dirname(ws), path.basename(ws) + '.transcript.json');
174
+ const model = process.env.BEHAVIORAL_MODEL;
175
+ const args = ['run', '--format', 'json', '--auto', '--dir', ws];
176
+ if (model) args.push('-m', model);
177
+ // Pass the prompt as one argv element; shell quoting corrupts prompts on
178
+ // Windows and previously reduced full requests to fragments such as `Add.`.
179
+ args.push(prompt);
180
+ const outputFd = fs.openSync(outPath, 'w');
181
+ try {
182
+ execFileSync('opencode', args,
183
+ { cwd: ws, stdio: ['ignore', outputFd, 'inherit'], timeout: 20 * 60 * 1000, windowsHide: true });
184
+ } finally {
185
+ fs.closeSync(outputFd);
186
+ }
187
+ return outPath;
188
+ }
189
+
190
+ function extractAgentTrace(transcriptPath) {
191
+ const raw = fs.readFileSync(transcriptPath, 'utf8');
192
+ const chunks = [];
193
+ let structured = false;
194
+ for (const line of raw.split('\n')) {
195
+ if (!line.trim()) continue;
196
+ let e;
197
+ try { e = JSON.parse(line); } catch { continue; }
198
+ const p = e && e.part;
199
+ if (!p) continue;
200
+ if (e.type === 'text' && typeof p.text === 'string') {
201
+ chunks.push(p.text);
202
+ structured = true;
203
+ } else if (String(e.type).includes('tool')) {
204
+ const input = p.state && p.state.input !== undefined ? p.state.input : p.input;
205
+ chunks.push(`[${p.tool || 'tool'}] ` + JSON.stringify(input ?? {}));
206
+ structured = true;
207
+ }
208
+ }
209
+ if (!structured) {
210
+ try {
211
+ const obj = JSON.parse(raw);
212
+ if (obj && typeof obj.result === 'string') return obj.result;
213
+ } catch { /* fall through */ }
214
+ return raw;
215
+ }
216
+ return chunks.join('\n');
217
+ }
218
+
219
+ function grade(c, ws, transcriptPath) {
220
+ const trace = extractAgentTrace(transcriptPath);
221
+ const results = [];
222
+ for (const e of c.expectations) {
223
+ let pass = false;
224
+ try {
225
+ if (e.type === 'trace_contains') pass = trace.includes(e.value);
226
+ else if (e.type === 'trace_not_contains') pass = !trace.includes(e.value);
227
+ else if (e.type === 'file_contains') pass = fs.readFileSync(path.join(ws, e.path), 'utf8').includes(e.value);
228
+ else if (e.type === 'file_not_exists') pass = !fs.existsSync(path.join(ws, e.path));
229
+ else if (e.type === 'command_exit_0') {
230
+ if (process.platform === 'win32') {
231
+ execFileSync(process.env.ComSpec || 'cmd.exe', ['/d', '/s', '/c', e.command], { cwd: ws, stdio: 'ignore' });
232
+ } else {
233
+ execFileSync('/bin/sh', ['-c', e.command], { cwd: ws, stdio: 'ignore' });
234
+ }
235
+ pass = true;
236
+ }
237
+ } catch (err) {
238
+ pass = false;
239
+ }
240
+ results.push({ ...e, pass });
241
+ }
242
+ const gating = results.filter((r) => !r.informational);
243
+ return { results, passed: gating.length > 0 && gating.every((g) => g.pass) };
244
+ }
245
+
246
+ function runLive(filter) {
247
+ console.log('Engine: opencode (with plugin hooks)');
248
+ const cases = discoverCases().filter((c) => !filter || c.id === filter);
249
+ if (filter && cases.length === 0) fail(`no case with id "${filter}"`);
250
+ fs.mkdirSync(RESULTS_DIR, { recursive: true });
251
+
252
+ let failed = 0;
253
+ for (const c of cases) {
254
+ console.log(`\n=== ${c.id}${c.pressure ? ' [PRESSURE]' : ''} ===`);
255
+ const ws = buildWorkspace(c);
256
+ installHarnessWithPlugin(ws);
257
+ if (c.fixture.git) gitSnapshot(ws);
258
+ let transcriptPath;
259
+ try {
260
+ transcriptPath = runHeadless(c.prompt, ws, c.max_turns);
261
+ } catch (err) {
262
+ console.error(`❌ session failed: ${err.message.slice(0, 300)}`);
263
+ failed++;
264
+ continue;
265
+ }
266
+ const { results: graded, passed } = grade(c, ws, transcriptPath);
267
+ const record = {
268
+ id: c.id,
269
+ engine: 'opencode-with-plugin',
270
+ model: process.env.BEHAVIORAL_MODEL || 'openai/gpt-5-mini',
271
+ pressure: !!c.pressure,
272
+ date: new Date().toISOString(),
273
+ workspace: ws,
274
+ transcript: transcriptPath,
275
+ expectations: graded.map(({ description, pass }) => ({ description, pass })),
276
+ outcome: passed ? 'pass' : 'fail',
277
+ };
278
+ const outFile = path.join(RESULTS_DIR, `plugin-${record.date.slice(0, 10)}-${c.id}.json`);
279
+ fs.writeFileSync(outFile, JSON.stringify(record, null, 2));
280
+ for (const g of graded) console.log(` ${g.pass ? '✅' : '❌'}${g.informational ? ' (info)' : ''} ${g.description}`);
281
+ console.log(`${passed ? '✅ PASS' : '❌ FAIL'} -> ${outFile}`);
282
+ if (!passed) failed++;
283
+ }
284
+ console.log(failed ? `\n❌ ${failed} case(s) failed.` : '\n🎉 all cases passed.');
285
+ process.exit(failed ? 1 : 0);
286
+ }
287
+
288
+ const args = process.argv.slice(2);
289
+ function flag(name) {
290
+ const i = args.indexOf(name);
291
+ return i >= 0 ? args[i + 1] : undefined;
292
+ }
293
+ if (args[0] === 'validate') validateCases(discoverCases());
294
+ else if (args[0] === 'run') {
295
+ const filter = args.includes('--case') ? flag('--case') : undefined;
296
+ runLive(filter);
297
+ } else {
298
+ console.log('Usage:\n node behavioral-evals/run-with-plugin.js run [--case <id>]');
299
+ process.exit(args.length ? 1 : 0);
300
+ }