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
package/CHANGELOG.md CHANGED
@@ -1,114 +1,488 @@
1
- # Changelog
2
-
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ---
9
- ## [0.2.1] - 2026-07-24
10
-
11
- ### Fixed
12
- - **Global skill installs landed one directory too deep**: `--global`/`-g` installs (all platforms share this one code path) copied skills to `~/.agents/harness-everything/skills/` instead of the documented `~/.agents/skills/` (see `bin/cli.js`'s own `-g, --global` help text, and the legacy-fallback scan `scripts/lib/skills.js` already expected at that path). Corrected in `scripts/installer.js` to match the same convention already used locally: `harness-everything/` holds manifest bookkeeping only, skill content lives in the native/shared `skills/` folder next to it. `~/.agents/harness-everything/manifest.json` is unchanged; uninstall's final global sweep was updated to match.
13
- - **Duplicate lines could accumulate in `.gitignore`**: `ensureHarnessStateIgnored` (`hooks/scripts/lib/harness-state.js`) runs once per hook-invoked subprocess with no cross-process lock around its read-then-append, so two invocations firing close together could both decide the same ignore pattern was missing and both append it. It (and the installer's own `scripts/lib/gitignore.js` writer, which shares the identical shape) now collapses exact-duplicate non-comment/non-blank lines on every write, so a duplicate from a lost race self-heals on the next invocation instead of accumulating.
14
-
15
- ---
16
- ## [0.2.0] - 2026-07-23
17
-
18
- ### Added
19
- - **Multi-Platform State Isolation Strategy**: Designed and created a registry for developer platforms (`claude.js`, `cursor.js`, `copilot.js`, `continue.js`, `codex.js`, `hermes.js`, `worktrees.js`) dynamically managing state folders (`getStateDir`) under respective tool namespaces (e.g. `.github/harness-state/`, `.cursor/harness-state/`) instead of hardcoding `.claude/harness-state/`.
20
- - **Runtime and Install-Time Auto-Ignore Defense**: Automated self-exclusion by writing active platform patterns directly to `.gitignore` seamlessly during both runtime execution checkpoints and local setup/installation.
21
- - **Per-platform install manifest**: every install now writes `<platform-dir>/harness-everything/manifest.json` (e.g. `.claude/harness-everything/manifest.json`, and a shared `~/.agents/harness-everything/manifest.json` for global scope), recording exactly which skill directories this package put where. All 23 `SKILL.md` files now carry `author`/`version` frontmatter, which the manifest cross-checks against before ever removing a directory.
22
-
23
- ### Fixed
24
- - **Uninstall could delete content it didn't install**: `uninstall --skills`/interactive "Remove ALL" used to list every subdirectory under shared skill folders (`~/.agents/skills`, `.harness/skills`, …) as "installed," including a user's own manually-placed skills and `self-evolve`'s locally-generated `skills/generated/*`. Global uninstall additionally `rm -rf`'d all of `~/.agents` outright. Removal is now manifest-driven and author-marker-verified per skill, and global uninstall only ever touches its own `harness-everything/` subfolder — never `~/.agents` itself.
25
- - **Claude hook removal false-positive**: the fallback matcher removed any hook whose command merely *contained the substring* "harness," which could catch an unrelated hook from another tool. Removal now keys solely off the `harness:` id namespace every hook this package ships already carries.
26
-
27
- ### Changed
28
- - **`scripts/installer.js` split into `scripts/lib/`**: the single ~1200-line file (TUI, hook merge, advisory-text injection duplicated twice, skill copy, gitignore upkeep all mixed together) is now an orchestrator over `lib/manifest.js`, `lib/skills.js`, `lib/claude-hooks.js`, `lib/advisory-text.js`, `lib/gitignore.js`, `lib/prompts.js`, and `lib/workspace.js`.
29
- - **Local runtime state relocated under `<platform-dir>/harness-everything/`**: the self-invented top-level `.harness/` root (Claude's manifest + skill copies) is retired in favor of `.claude/harness-everything/{state,skills,manifest.json}` — a subfolder of Claude's own directory that nothing else creates, so it can be added/removed as a unit. Each other platform's own `harness-state/` similarly moves to `<platform-dir>/harness-everything/state/`, alongside its own new `manifest.json`. Skill locations for Cursor/Copilot/Continue (`.cursor/skills`, `.github/skills`, `.continue/skills`) are unchanged. A one-time migration step removes any leftover `.harness/` on next local uninstall.
30
- - **Codex skill target corrected from `.agents/skills/` to `.codex/skills/`**: `.agents/` was never a real Codex CLI convention — Codex's actual project-scoped home is `.codex/` (`.codex/skills/` for project skills, `.codex/config.toml` for CLI/sandbox config), confirmed against OpenAI's own docs. This bug predated this release. `getInstalledSkills` still scans the old `.agents/skills/` location as a legacy fallback so existing wrong-location installs remain discoverable and cleanly removable.
31
- - **Author attribution**: `author` frontmatter across all 23 `SKILL.md` files, `package.json`, and the `HARNESS_AUTHOR` constant `scripts/lib/skills.js`'s uninstall safety check matches against, updated from `Harness Core Team` to `Miya Daniel | Harness Core Team`.
32
-
33
- ### Documentation
34
- - Removed dangling `docs/reports/` links from `README.md`, `VERIFICATION.md`, `harness-everything/SKILL.md`, `skill-creator/SKILL.md`, and `skill-creator/references/quality-principles.md` — the referenced audit report files were removed from the repo; `VERIFICATION.md`'s own instruction to store *future* reports under `docs/reports/` is unaffected.
35
-
36
- ## [0.1.0-beta] - 2026-07-20
37
-
38
- ### Added
39
- - Implemented strict boundaries and self-healing mechanisms for Harness core.
40
- - Added interactive setup and modular skill installation to the installer.
41
-
42
- ### Changed
43
- - Promoted to beta release for broader testing and validation of the Harness OS capabilities.
44
- - Renamed references from `harness-skills` to `harness-everything` across the codebase.
45
-
46
- ### Documentation
47
- - Updated `git-commit` guidelines to disallow blank lines between bullet points in the Angular style guide.
48
-
49
- ## [0.1.0-alpha] - 2026-07-20
50
-
51
- This is the initial alpha release of **Harness OS** — a lightweight, local behavior and orchestration runtime that wraps around AI development sessions to enforce self-regulation, prevent token-wasting infinite loops, and eliminate environment hallucinations.
52
-
53
- ### Added
54
-
55
- #### 1. Core Behavior Layer & Guards (Circuit Breaker & Context Safety)
56
- - **`rule-of-3`**: Fail-safe circuit breaker. Tracks command failure signatures. If a command/test fails 3 times with the exact same signature, it locks mutating tools and triggers the **Zoom-Out Reflection Protocol**, requiring a structured diagnosis report (`zoom-out-report.md`) to release or escalates to a human.
57
- - **`boundary-guard`**: Limits oversized file reads (preventing >600KB reads) and logs warnings to shield the model from "lost-in-the-middle" context degradation.
58
- - **`stop-gate`**: Bounces the end of an edit turn once to ensure that file changes are always verified by a compiler/test command.
59
- - **`subagent-scope-guard`**: Protects out-of-scope files from being accidentally modified by background or subagent processes.
60
- - **`state-persist` (WAL)**: Write-Ahead Logs that preserve agent failure signatures and recovery status across tool invocations.
61
-
62
- #### 2. Task Routing Engine
63
- - **`tier-router`**: Triages user requests into three precise execution tiers:
64
- - **Tier 1 (Direct Edit)**: Small bugfixes, typos, or single-file changes.
65
- - **Tier 2 (TDD Red-Green-Refactor)**: Standard features requiring tests and validation loops.
66
- - **Tier 3 (Macro Multi-Agent Flow)**: Comprehensive architectural refactoring requiring multi-agent delegation.
67
-
68
- #### 3. Environment Detection & Preflight Audit
69
- - **`preflight`**: Automatically executes at session startup to print a diagnostic block identifying the Host OS (Windows/macOS/Linux), active shell, and package managers, neutralizing path and shell command hallucinations.
70
-
71
- #### 4. Multi-Agent Scaffolding & Specialized Workflows
72
- - **`create-agent-launcher`**: Templates and workflows for spinning up context-specific specialized subagents (`backend-developer`, `memory-keeper`, `requirement-analyzer`, etc.).
73
- - **`fable-mode`**: Specialized multi-agent orchestrator for bulk text processing, validation, and verification (with Orchestrator, Verifier, and specialized Worker agent roles).
74
-
75
- #### 5. Evaluation & Verification Suite
76
- - **`eval-framework`**: Automated evaluation cases (case 1 to 5) covering multiple complexity levels and support for multi-language (en/zh) prompt classification.
77
- - **`VERIFICATION.md` & `docker-verify.sh`**: A comprehensive mechanism verification test suite that locally executes sandbox environment simulations to prove terminal blocking and self-recovery behaviors.
78
-
79
- ## [0.2.0-beta] - 2026-07-22
80
-
81
- ### Fixed
82
- - **`uninstall` command unreachable via CLI**: `bin/cli.js`'s command dispatcher never had a `case 'uninstall'` - `scripts/installer.js` has handled `uninstall` internally since it was added, but the CLI entrypoint's `switch` fell through to `default` and printed `[Error] Unknown command: "uninstall"` before ever reaching it, making `npx github:dyphn1/Harness-everything uninstall` unusable regardless of flags. Added the missing case (routes to the same `runInstaller` path as `install`, since `installer.js` reads the command off `process.argv` itself) and documented `uninstall`'s flags in `--help`.
83
-
84
- ### Added
85
- - **Continue.dev and Hermes Agent platform support**: `scripts/installer.js` now accepts `--continue` and `--hermes` (also included in `--all`). Continue.dev gets a dedicated `.continue/rules/harness.md` rule file (YAML frontmatter, `alwaysApply: true` — Continue's native rules format is one Markdown file per rule rather than a single shared file, so unlike Cursor/Copilot/Codex, Harness never appends into an arbitrary pre-existing file); global scope writes to `~/.continue/rules/harness.md`. Hermes Agent ([Nous Research](https://hermes-agent.nousresearch.com/)) gets `.hermes.md`, which Hermes auto-loads into its system prompt alongside `AGENTS.md`/`CLAUDE.md`/`.cursorrules` if present — project scope only, since Hermes has no documented global project-instructions equivalent (`--global --hermes` is a deliberate no-op with an explanatory message, not a guess). Both platforms are advisory-only (no hook/exit-code mechanism), matching Cursor/Copilot/Codex. `harness-everything/scripts/self-heal.js` and the uninstall path cover both new touchpoints. Updated `README.md`, `docs/architecture.md`, `VERIFICATION.md`, and `BENCHMARK_SOP.md` accordingly.
86
-
87
- ### Fixed
88
- - **Runtime state scattered across the tree**: 4 of the 12 scripts that touch `.harness/*` state (`context-compact.js`, `rule-of-3.js`, `rule-of-3-tracker.js`, `harness-everything/scripts/todo-cli.js`) resolved their state directory from `process.cwd()` directly instead of walking up to the git root the way the other 8 did — a hook firing with a `cwd` that wasn't the repo root would create a fresh, orphaned `.harness/` wherever it stood. All state-path resolution is now centralized in one helper (`hooks/scripts/lib/harness-state.js`), so every script agrees on where state lives.
89
-
90
- ### Changed
91
- - **Runtime state moved to `.claude/harness-state/`, scoped per Claude Code session**: `.harness/` mixed two unrelated things — the installer's local skill-copy target (`.harness/skills/`, a peer of `.cursor/skills`/`.github/skills`, untouched by this change) and pure runtime state (handoff/verification timestamps, circuit-breaker counters). The latter now lives at `.claude/harness-state/`. Hook-owned files (`handoff-state.json`, `stop-gate-state.json`, `subagent-scope-state.json`, `rule-of-3-state.json`, `context-compact-state.json`, `atomic-commit-state.json`, `zoom-out-report.md`) are scoped under `sessions/<session_id>/`, so two Claude Code sessions open on the same repo no longer share — and stomp — each other's edit/verify timestamps or breaker counts. `contracts/*.json` (written proactively by fable-orchestrator, which has no clean way to learn its own `session_id`) and `todo-state.json` (written via a plain CLI call, not a hook) stay shared across sessions, matching prior behavior — collision there is a narrower, lower-stakes edge case than the timestamp/counter files. `rule-of-3.js` keeps its no-stdin fast path for the common case (nobody's breaker tripped anywhere) via a cheap scan across session directories, only paying to read the hook payload once some session actually trips. `bootstrap.js` now also prunes session directories untouched for 14+ days, since nothing else purges them the way an OS temp directory would. `scripts/installer.js uninstall` removes `.claude/harness-state/` alongside the existing `.harness/` cleanup. Updated `VERIFICATION.md`, `docker-verify.sh`, `docs/architecture.md`, `fable-mode/CONTRACT-FORMAT.md`, `fable-mode/agents/fable-orchestrator.md`, and all affected `SKILL.md` state-mutation references accordingly.
92
-
93
- ## [0.2.0-alpha] - 2026-07-22
94
-
95
- ### Added
96
- - **`skill-creator` skill**: merges principles from `mattpocock-skills/writing-great-skills` (predictability, information hierarchy, pruning, leading words, failure modes) and Anthropic's `skill-creator` (anatomy, progressive disclosure, testing workflow) into a Harness-native authoring/audit/testing workflow, reconciled against the existing Skill Contract convention rather than replacing it. Ships with a Quality Checklist and a Dynamic Skill Generation Contract that `self-evolve` now requires before packaging a session insight into a durable skill (written to `.harness/skills/generated/`, with `draft -> active -> deprecated` lifecycle metadata). Registered in `harness-everything/SKILL.md` §5 and `tier-router.js`'s skill-authoring keyword block.
97
- - `docs/workflows/skill-creator.md`, matching the existing per-skill workflow-diagram convention (Behavior Workflow / Triggering & Routing Path / Real-World Use Case / Verification Check).
98
- - **Skill Contract coverage**: All 25 `SKILL.md` files now carry a `📋 Skill Contract` table (Trigger/Input, Expected Output, State Mutations, Enforcement Gate) - up from 10/25.
99
- - **Behavioral test wiring**: `eval-framework/behavioral-test.js` (the `todo-cli.js` state-machine E2E test) is now actually executed as Phase 3 of `npm test` / `self-regression.js`. It previously existed but was never invoked by any script, so it never ran automatically.
100
-
101
- ### Fixed
102
- - **Installer uninstall safety**: `scripts/installer.js uninstall -y` no longer implicitly wipes global state (`~/.agents`, VS Code global prompts, global `.claude`/`.cursorrules`) just because it happens to detect a prior global install. Global removal now requires an explicit `--global`/`-g` flag, matching the interactive flow's existing unchecked-by-default behavior. The bug spanned two independent code paths (config removal and skill removal); both are fixed. Found via live testing on 2026-07-21 - a bare `uninstall -y` run from an unrelated test repo deleted real global Harness state.
103
- - **Cross-file duplication**: the 33-line "ADHD-Friendly Output Shaping" block was duplicated verbatim across `install-cognitive-os/SKILL.md`, `harness-everything/SKILL.md`, and `AGENTS.md`. Consolidated to a single source (`install-cognitive-os`), with the other two replaced by a one-line pointer.
104
- - **`tier-router.js` description drift**: six skills (`environment-detection`, `verify-before-claim`, `verification-loop`, `using-git-worktrees`, `fable-mode`, `grill-with-docs`) had inconsistently reworded one-line descriptions across the file's separate keyword blocks - including one outright inaccurate description of `verify-before-claim` (mislabeled as validating test assertions instead of external framework/API claims). Unified to one wording per skill everywhere it appears.
105
- - `skill-style/SKILL.md`: removed a large copy-paste duplication of its own Skill Contract format example and Tone & Voice section.
106
- - `AGENTS.md`: fixed a mislabeled `# Copilot Instructions` heading (the file is Codex's `AGENTS.md`, not Copilot's `.github/copilot-instructions.md`).
107
- - `harness-everything/SKILL.md`: fixed a dangling pointer to a non-existent `harness-everything/adhd-output-shaping` path.
108
-
109
- ### Documentation
110
- - **Skill quality audit**: Added `docs/reports/skill-quality-audit-writing-great-skills-2026-07-22.md`, a rule-based audit of all `SKILL.md` files against `mattpocock-skills/writing-great-skills` and Anthropic's `skill-creator`, with file:line evidence for every finding, a routing-consistency verification for the `install-cognitive-os` / `todo-driven-workflow` / `self-evolve` triad, and a record of the fixes applied above.
111
- - **External evaluation report**: Added `docs/reports/evaluation-report-gemini-3.1-pro-2026-07-21.md`, an independent strict audit scoring the system 2-4/10 across the five core verification criteria (skill contract completeness, routing accuracy, test coverage, configuration balance, workflow conformance). The router fix (`f87bf34`) and the Skill Contract rollout (`7b2d04f`, completed above) were made in direct response to its findings.
112
-
113
- ### Corrected
114
- - Removed a changelog entry from 2026-07-21 that claimed a self-authored "9.0/10 (Excellent)" evaluation and referenced `docs/reports/evaluation-report-harness-strict-2026-07-21.md`. That report was only ever committed on an unmerged branch (`test-fresh-env`) and never existed on `main`; several of its "PASS" rows were self-reported as untestable ("stdin not a TTY, cannot test directly") rather than actually run - an excuse that doesn't hold, since the same mechanism checks run fine over stdin in practice (see VERIFICATION.md §2). The external Gemini audit above is the only evaluation report that exists on `main`.
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ ## [0.4.0](https://github.com/dyphn1/Harness-everything/compare/v0.3.6...v0.4.0) (2026-09-16)
6
+
7
+ ### Features
8
+
9
+ * **action-gate:** add destructive action rule table ([fc472b0](https://github.com/dyphn1/Harness-everything/commit/fc472b04dcba1b2b27faf42e2ba69a28e49191f9))
10
+ * **action-gate:** enforce pre-action approval ([fca6ccb](https://github.com/dyphn1/Harness-everything/commit/fca6ccba4d07a18f46fa1d43b214cb10a8be122c))
11
+ * **action-gate:** mirror destructive action rule table ([4ad59aa](https://github.com/dyphn1/Harness-everything/commit/4ad59aa51e2450a761e31db524f03e0ac754b1a6))
12
+ * **action-gate:** mirror pre-action approval enforcement ([5b254ea](https://github.com/dyphn1/Harness-everything/commit/5b254eaace8e438c3e1aa969ad150256f6e07161))
13
+ * **action-gate:** wire Claude lifecycle enforcement ([eadca2f](https://github.com/dyphn1/Harness-everything/commit/eadca2fcc8a98a5467a12774f0cad7983a4252f8))
14
+ * **action-gate:** wire plugin lifecycle enforcement ([f15a500](https://github.com/dyphn1/Harness-everything/commit/f15a50074fc564ebb8cdc72bc6b2979fe323c0f2))
15
+ * **codex:** observe native permission requests ([2cb472c](https://github.com/dyphn1/Harness-everything/commit/2cb472cee3786e2f510f0e1356f7163bcd37026d))
16
+ * **codex:** package native permission observer ([c7c279c](https://github.com/dyphn1/Harness-everything/commit/c7c279c5e187ec02830c91b8925129377fe338eb))
17
+ * **codex:** wire native permission request observer ([318c6ca](https://github.com/dyphn1/Harness-everything/commit/318c6ca14ef16f1846a0f1b993b1ce0a8e13d588))
18
+ * **compatibility:** Add official platform capability matrix ([3b423e2](https://github.com/dyphn1/Harness-everything/commit/3b423e233536406a6ef58609a1471b604ed1b461))
19
+ * **fable:** add bounded ensemble evidence synthesis ([df18314](https://github.com/dyphn1/Harness-everything/commit/df1831495344cc738617c320216799146192f6af))
20
+ * **fable:** add workflow plan consumer and run-scoped contracts ([215fe26](https://github.com/dyphn1/Harness-everything/commit/215fe266a748591870c98873100e05c05d3ce1b5))
21
+ * **hooks:** add run-scoped fable contract helpers ([0fa5b39](https://github.com/dyphn1/Harness-everything/commit/0fa5b3936184c98c293d6dbe265371cd0a5f47eb))
22
+ * **hooks:** correlate stage checks with run-scoped contracts ([2be79a9](https://github.com/dyphn1/Harness-everything/commit/2be79a9f9e50417c5211698bae380c4f080c50ee))
23
+ * **hooks:** validate subagent diffs against declared write sets ([56a1521](https://github.com/dyphn1/Harness-everything/commit/56a152135b100e432a6b2666531d26f930d6a0eb))
24
+ * **installer:** Add canonical per-scope skill store with link-aware uninstall ([4ec59dd](https://github.com/dyphn1/Harness-everything/commit/4ec59dd8702abf99574aab2524e65c84ad698bef)), closes [#49](https://github.com/dyphn1/Harness-everything/issues/49)
25
+ * **memory:** screen persisted rules and record provenance ([8f0759a](https://github.com/dyphn1/Harness-everything/commit/8f0759acf013281552440990977abc87d2d7ad4e))
26
+ * **openai:** 完成外掛生命週期支援 ([bf5d75b](https://github.com/dyphn1/Harness-everything/commit/bf5d75b19c5a979cd10a90a43cba61c09e2326ca)), closes [#72](https://github.com/dyphn1/Harness-everything/issues/72)
27
+ * **plugin:** add deterministic skills submission bundle builder ([a6fc321](https://github.com/dyphn1/Harness-everything/commit/a6fc3214460fe48961ee8f6cbadda4b3f0a335d4))
28
+ * **plugin:** add OpenAI submission listing source ([f0915dc](https://github.com/dyphn1/Harness-everything/commit/f0915dc650214691f7e89af2f19ea73cd1309530))
29
+ * **plugin:** mirror bounded ensemble evidence synthesis ([3b6c3f0](https://github.com/dyphn1/Harness-everything/commit/3b6c3f0f63c205882222747434395d8fb547847e))
30
+ * **plugin:** mirror bounded ensemble modifier policy ([aa9ee20](https://github.com/dyphn1/Harness-everything/commit/aa9ee20be35582567a9877e85b6337d2dded7198))
31
+ * **plugin:** mirror bounded ensemble schema ([e8b138e](https://github.com/dyphn1/Harness-everything/commit/e8b138e5018d4a011094432acc6ceb59cf127bd1))
32
+ * **plugin:** mirror kernel ensemble modifier ([389146a](https://github.com/dyphn1/Harness-everything/commit/389146a36037d3e1cf6ecbf4317ab0d887c254c7))
33
+ * **plugin:** mirror memory persistence screening ([0b707a9](https://github.com/dyphn1/Harness-everything/commit/0b707a91a89eb3da46091314f0a3977b5a9d90e9))
34
+ * **plugin:** package Harness Everything for ChatGPT and Codex ([0ce65d0](https://github.com/dyphn1/Harness-everything/commit/0ce65d0165b4890c847f561f79f95ebfd25d81e5))
35
+ * **plugin:** prepare Harness Everything for OpenAI publication ([8e827f6](https://github.com/dyphn1/Harness-everything/commit/8e827f6b8a0027c388bb18d94a8ae127a1d06141))
36
+ * **release:** add deterministic version synchronizer ([9a75283](https://github.com/dyphn1/Harness-everything/commit/9a75283718b624b98c98da6871ec80e8e397f031))
37
+ * **release:** align OpenCode plugin version ([e1a3e87](https://github.com/dyphn1/Harness-everything/commit/e1a3e87d79ec50701107e6e4cd29afa7a4c7eaf5))
38
+ * **release:** configure semantic release ([93020dc](https://github.com/dyphn1/Harness-everything/commit/93020dcedc0f58eabe7b05b27963be71cfa52e60))
39
+ * **release:** publish from conventional commit history ([585516b](https://github.com/dyphn1/Harness-everything/commit/585516bf4fa138d71860e0c25c01bef51cb31b32))
40
+ * **release:** remove beta Claude plugin version ([cb24975](https://github.com/dyphn1/Harness-everything/commit/cb24975f64c009cd84d571b9d994eb94899a7f32))
41
+ * **release:** remove beta Codex plugin version ([4c11024](https://github.com/dyphn1/Harness-everything/commit/4c11024f6f0895238447bb229cffbf4676bbb104))
42
+ * **release:** remove beta marketplace version ([85d48a7](https://github.com/dyphn1/Harness-everything/commit/85d48a790049460ad83e565674898f01d1592915))
43
+ * **release:** remove beta package version ([e5c24dd](https://github.com/dyphn1/Harness-everything/commit/e5c24ddd2f01451735b3961463b9139eb0608111))
44
+ * **release:** remove beta portable plugin version ([f94ff42](https://github.com/dyphn1/Harness-everything/commit/f94ff424830137a1d20e02277af461dfdb3475b0))
45
+ * **router:** add bounded ensemble modifier policy ([ae25dc5](https://github.com/dyphn1/Harness-everything/commit/ae25dc5096aba4254fc42c16f7dc746be5af668d))
46
+ * **router:** add task-shape schema ([5185d75](https://github.com/dyphn1/Harness-everything/commit/5185d759e68687eb32bd45f868581405ad8be59b))
47
+ * **router:** add versioned workflow plan contract ([714bb3f](https://github.com/dyphn1/Harness-everything/commit/714bb3fb4db4d47e3808c41e2eb133eb85df4510))
48
+ * **router:** add workflow plan schema ([1ffa89b](https://github.com/dyphn1/Harness-everything/commit/1ffa89b99d3d57497031e2673a966efe26304474))
49
+ * **router:** attach ensemble modifier at kernel contract boundary ([29841fc](https://github.com/dyphn1/Harness-everything/commit/29841fce11a15de1746517488eef218d4f1bf74c))
50
+ * **router:** consume structured tier contract ([6472bde](https://github.com/dyphn1/Harness-everything/commit/6472bdefc20659347256086600b29eadf358f727))
51
+ * **router:** derive task shape and safety modifiers ([904c0bf](https://github.com/dyphn1/Harness-everything/commit/904c0bf364d57443a8b1006d6e83709b3d2171ed))
52
+ * **router:** emit structured shadow routing contract ([49fcc72](https://github.com/dyphn1/Harness-everything/commit/49fcc7267bc4e6f91b92151e8009455b37905d77))
53
+ * **router:** extend task-shape schema for phase 2 ([21d98ec](https://github.com/dyphn1/Harness-everything/commit/21d98ec3d902e27181ae2e80b402e046376bdc3b))
54
+ * **router:** extend workflow-plan schema for selected strategies ([69b4f15](https://github.com/dyphn1/Harness-everything/commit/69b4f1506da1c5624f124085215c882f64c96f77))
55
+ * **router:** make kernel consume selected workflow plan ([f9162e5](https://github.com/dyphn1/Harness-everything/commit/f9162e55aa623c25023a30ccb84dbbe601ac6d26))
56
+ * **router:** select deterministic phase 2 strategies ([b85b0e9](https://github.com/dyphn1/Harness-everything/commit/b85b0e94c3fd1c749f5d563264bd8ce06b038b9f))
57
+ * **schema:** define bounded ensemble modifier contract ([6e1fa26](https://github.com/dyphn1/Harness-everything/commit/6e1fa266bee0665d7fa7713ba00697cd66b4edfb))
58
+ * **tdd:** Add quantified quality gate ([0fd4abf](https://github.com/dyphn1/Harness-everything/commit/0fd4abf19479ab3bb250d080622ddedd61593f31)), closes [#58](https://github.com/dyphn1/Harness-everything/issues/58)
59
+ * **workspace:** consume workspace portion of workflow plan ([5b75680](https://github.com/dyphn1/Harness-everything/commit/5b756807eae8b56ebcc2ecc2b312b91e42b84d37))
60
+
61
+ ### Bug Fixes
62
+
63
+ * **action-gate:** Defer matched commands to Claude Code permission modes ([7628da1](https://github.com/dyphn1/Harness-everything/commit/7628da1cbadd2b5ed2916514e8172b281aaf6e80)), closes [#107](https://github.com/dyphn1/Harness-everything/issues/107)
64
+ * **action-gate:** preserve fail-closed runtime semantics ([a959316](https://github.com/dyphn1/Harness-everything/commit/a9593166e1c6210d2c5cafe1b3f688a53b68ca1b))
65
+ * **action-gate:** sync shared runtime into plugin ([ed40429](https://github.com/dyphn1/Harness-everything/commit/ed4042973bd79afaaa0e8d1c84c067eb85ef4f3e))
66
+ * **behavioral-evals:** Correct the find-skills verdict claimed in PR [#51](https://github.com/dyphn1/Harness-everything/issues/51) ([6afa34f](https://github.com/dyphn1/Harness-everything/commit/6afa34f5f3601c32d7d04a8437ae373a9bcb514a)), closes [#52](https://github.com/dyphn1/Harness-everything/issues/52)
67
+ * **behavioral-evals:** Grant claude engine real headless autonomy, correct rubric bugs found live ([90e36c2](https://github.com/dyphn1/Harness-everything/commit/90e36c2071fb5a71e16cdc99b1060cd3d699c43b)), closes [#52](https://github.com/dyphn1/Harness-everything/issues/52) [#52](https://github.com/dyphn1/Harness-everything/issues/52)
68
+ * **behavioral-evals:** harden evidence triage ([f7bd8ec](https://github.com/dyphn1/Harness-everything/commit/f7bd8ec8fe6b8f02f55e8b45e45af5e233f4d224)), closes [#56](https://github.com/dyphn1/Harness-everything/issues/56) [#56](https://github.com/dyphn1/Harness-everything/issues/56)
69
+ * **behavioral-evals:** Harden evidence triage ([ad45453](https://github.com/dyphn1/Harness-everything/commit/ad45453a8f08d28256ae569735aa2c7125d901e8))
70
+ * **behavioral-evals:** Make execution evidence grading command-aware ([aa2235d](https://github.com/dyphn1/Harness-everything/commit/aa2235d49a97764dd6406ce5f12fc057366faa17))
71
+ * **behavioral-evals:** parse Claude stream evidence ([77efb06](https://github.com/dyphn1/Harness-everything/commit/77efb06ae91b28d07b60e7833ba96940bae612cb)), closes [#52](https://github.com/dyphn1/Harness-everything/issues/52)
72
+ * **behavioral-evals:** parse Claude stream evidence ([f5c3a46](https://github.com/dyphn1/Harness-everything/commit/f5c3a4639b15464017b344b7329c990912480516)), closes [#52](https://github.com/dyphn1/Harness-everything/issues/52)
73
+ * **behavioral-evals:** Support --model for the claude engine, correct find-skills-exposure claim ([15e4c7c](https://github.com/dyphn1/Harness-everything/commit/15e4c7c98717dea615052114be9e8033f9e4feb5))
74
+ * **boundaries:** Add shared verifier contracts ([c093c50](https://github.com/dyphn1/Harness-everything/commit/c093c50de7cd12260f0fdee3f6e6d4f6a49d2d0b))
75
+ * **ci:** Derive the release baseline and gate tag pushes with the full CI suite ([0ec04af](https://github.com/dyphn1/Harness-everything/commit/0ec04af3f4fc100eced3b464c7be919f31a8e969)), closes [#39](https://github.com/dyphn1/Harness-everything/issues/39)
76
+ * **ci:** Fetch history for historical evidence tests ([aeeb69f](https://github.com/dyphn1/Harness-everything/commit/aeeb69f43cbec76f1a4d9f8e3e6cd1483bf33664))
77
+ * **ci:** Harden issue 20 verification gates ([b482e41](https://github.com/dyphn1/Harness-everything/commit/b482e41a9448efe0504032472b86eeb1f983c6cd))
78
+ * **ci:** Make SKILL.md path notation file-relative and fail on unknown placeholders ([543c057](https://github.com/dyphn1/Harness-everything/commit/543c057b676c9e4e98f745b1758b666a6756a95a)), closes [#44](https://github.com/dyphn1/Harness-everything/issues/44)
79
+ * **ci:** Publish the workspace skip-list instead of paying tokens to inline it ([cda087c](https://github.com/dyphn1/Harness-everything/commit/cda087cff423763f2e14fd2940cc1331396de313)), closes [#44](https://github.com/dyphn1/Harness-everything/issues/44)
80
+ * **ci:** Spend path markers only where the base is not the current file ([8b2a73e](https://github.com/dyphn1/Harness-everything/commit/8b2a73ed3c2a9b83009ab3273c7fa00ccd45645a)), closes [#44](https://github.com/dyphn1/Harness-everything/issues/44)
81
+ * **claude-plugin:** avoid duplicate standard hooks registration ([314bcf1](https://github.com/dyphn1/Harness-everything/commit/314bcf1663a24f9eb32fdf342a3b1ed58c2f0006))
82
+ * **claude:** anchor plugin hooks to CLAUDE_PLUGIN_ROOT ([6a4462b](https://github.com/dyphn1/Harness-everything/commit/6a4462b85fbc79464da6be0e0e27092a36fa9fa6))
83
+ * **claude:** resolve plugin-root hook commands during install ([fdd2dd7](https://github.com/dyphn1/Harness-everything/commit/fdd2dd7cacf07e46699dec582cd734966addea88))
84
+ * **claude:** sync installer hook-root resolver into plugin ([308949a](https://github.com/dyphn1/Harness-everything/commit/308949a7840bdc26179c4772dd4fa424b84d8f7e))
85
+ * **codex:** align hook lifecycle with supported events ([8f90425](https://github.com/dyphn1/Harness-everything/commit/8f904258d6bf5e46e939facff3d734ad2baf7e63))
86
+ * **codex:** canonicalize action-gate post adapter ([82b56af](https://github.com/dyphn1/Harness-everything/commit/82b56af6195d05790573b3e75ffcf16684011d73))
87
+ * **codex:** infer action-gate outcome from PostToolUse ([0c79b11](https://github.com/dyphn1/Harness-everything/commit/0c79b110f5af9f311c80bdfaf42e94f26c5c1298))
88
+ * **fable:** serialize overlapping staged work without rejecting plan ([33e4c1a](https://github.com/dyphn1/Harness-everything/commit/33e4c1ae9dc5d74ee229c1e2b1758153f25a1f45))
89
+ * **find-skills:** Add tested host-agent exposure for ephemeral skills ([#35](https://github.com/dyphn1/Harness-everything/issues/35)) ([11fe847](https://github.com/dyphn1/Harness-everything/commit/11fe847bf6d8a1643b9487106b5519aae87b1e5a))
90
+ * **find-skills:** Trim SKILL.md under the 500-token waza hard limit ([5d66c0a](https://github.com/dyphn1/Harness-everything/commit/5d66c0a8a35fd6495b137b5578a511541ad88c30)), closes [#35](https://github.com/dyphn1/Harness-everything/issues/35)
91
+ * Harden PR [#66](https://github.com/dyphn1/Harness-everything/issues/66) behavioral evidence triage ([fcf0015](https://github.com/dyphn1/Harness-everything/commit/fcf00157597ed17ead63dcfb68e35c913b21fc2e))
92
+ * **hooks:** keep contract correlation session and path safe ([6655d83](https://github.com/dyphn1/Harness-everything/commit/6655d836394acd0e83145e35f1f20f3bd33e17aa))
93
+ * **hooks:** treat pending stage contracts as active ([ec6c265](https://github.com/dyphn1/Harness-everything/commit/ec6c2653afc97dd48ff2f9b8051d4ef57a28e03b))
94
+ * **installer:** discover native Continue and Hermes manifests ([d836760](https://github.com/dyphn1/Harness-everything/commit/d836760179e09cd08ec5aa206e439624d68d1973))
95
+ * **installer:** fail closed on malformed Claude settings ([fdec691](https://github.com/dyphn1/Harness-everything/commit/fdec691ef682ca0c4c28a4490d1be8b539ffbe9f))
96
+ * **installer:** Honor explicit uninstall scope flags over the interactive menu ([9f791d9](https://github.com/dyphn1/Harness-everything/commit/9f791d9ac39fa20a24e82ee996e71312f187b437)), closes [#48](https://github.com/dyphn1/Harness-everything/issues/48) [#49](https://github.com/dyphn1/Harness-everything/issues/49)
97
+ * **installer:** preserve pre-existing advisory files ([0299db0](https://github.com/dyphn1/Harness-everything/commit/0299db0724a789b83d8c5f3ed8b4d1a32bf68f14))
98
+ * **installer:** protect global Codex prompt ownership ([db67ac6](https://github.com/dyphn1/Harness-everything/commit/db67ac697e9f4d5beb50280f9db96f7114b99829))
99
+ * **installer:** protect global Copilot prompt ownership ([5f36651](https://github.com/dyphn1/Harness-everything/commit/5f36651d80550acea4a5d2a7c5bb532dece89e4a))
100
+ * **installer:** track Hermes global install ownership ([6967a3e](https://github.com/dyphn1/Harness-everything/commit/6967a3e33f0d2506192a16a5b705a0b04a774663))
101
+ * **installer:** use Codex native project skills path ([b4a372c](https://github.com/dyphn1/Harness-everything/commit/b4a372c6d9749c9ebd22b379bd45ce61358fffc6))
102
+ * **installer:** use Continue native global skills path ([cb0202c](https://github.com/dyphn1/Harness-everything/commit/cb0202cc518facf3836af1e377b58c10320fc6fb))
103
+ * **installer:** use Hermes native skill scopes ([d7c8275](https://github.com/dyphn1/Harness-everything/commit/d7c8275db04e71c5e6cf6b12e7b474da2fc8ecd9))
104
+ * **multi-agent-workspace:** Harden document resolution and migration ([6361f96](https://github.com/dyphn1/Harness-everything/commit/6361f96bec03741ea4a743f7284e0fdc7febeaa0)), closes [#43](https://github.com/dyphn1/Harness-everything/issues/43) [#43](https://github.com/dyphn1/Harness-everything/issues/43)
105
+ * **opencode-plugin:** Declare all five hooks and gate them in CI ([30e2e6d](https://github.com/dyphn1/Harness-everything/commit/30e2e6d6e868323d9b5af9a8cf8cb7015515879e)), closes [#37](https://github.com/dyphn1/Harness-everything/issues/37) [#20](https://github.com/dyphn1/Harness-everything/issues/20)
106
+ * **opencode-plugin:** Port enforcement plugin to opencode's real plugin API ([4ae960c](https://github.com/dyphn1/Harness-everything/commit/4ae960c15e582a7c4b23e41471d875120da8dcd6)), closes [#37](https://github.com/dyphn1/Harness-everything/issues/37) [#37](https://github.com/dyphn1/Harness-everything/issues/37)
107
+ * **opencode:** enforce reflection lifecycle ([d790e7f](https://github.com/dyphn1/Harness-everything/commit/d790e7f71d9738cea28d8d623e9c2cf857dd2793)), closes [#37](https://github.com/dyphn1/Harness-everything/issues/37)
108
+ * **opencode:** enforce reflection lifecycle ([74ffed3](https://github.com/dyphn1/Harness-everything/commit/74ffed3513aa7e9b51251a44d7c2a39298a990d1)), closes [#37](https://github.com/dyphn1/Harness-everything/issues/37)
109
+ * **opencode:** Harden reflection enforcement ([8989ab4](https://github.com/dyphn1/Harness-everything/commit/8989ab4c81ad8887359c8428eb8c3e3b5d7cc458))
110
+ * Parse top-level tool events in behavioral transcripts ([31fe8e1](https://github.com/dyphn1/Harness-everything/commit/31fe8e1cb6b193d21079dcc2c64edb712b40ac6d))
111
+ * **plugin:** align public long description with submission listing ([ab2e283](https://github.com/dyphn1/Harness-everything/commit/ab2e283424c34328f57b0373e9bc7ebab894f96a))
112
+ * **plugin:** match plugin.json manifest schema for repository and agents ([ab770ad](https://github.com/dyphn1/Harness-everything/commit/ab770ad1e9ec5489e83dbd06228fc10bd875806a)), closes [#86](https://github.com/dyphn1/Harness-everything/issues/86)
113
+ * **plugin:** Point agents at individual .md files, not a directory ([10e7512](https://github.com/dyphn1/Harness-everything/commit/10e75129ee5b19ee5c5d8872ee73195cc6c4109d))
114
+ * **release:** initialize conventional commits preset ([a0dbbf9](https://github.com/dyphn1/Harness-everything/commit/a0dbbf96f87a79de6674c95c7b99dd549d62809b))
115
+ * **release:** keep release commit compatible with commitlint ([#116](https://github.com/dyphn1/Harness-everything/issues/116)) ([27b1595](https://github.com/dyphn1/Harness-everything/commit/27b1595aef715aa696a67eaa58fc1367f0f3eba4)), closes [#115](https://github.com/dyphn1/Harness-everything/issues/115)
116
+ * **release:** make version rules explicit ([469a4ed](https://github.com/dyphn1/Harness-everything/commit/469a4edc3e2402cfd124c7764cc1b41e3387b319))
117
+ * **release:** remove beta from active skill metadata ([df2201c](https://github.com/dyphn1/Harness-everything/commit/df2201cd6508335d44fb5b14c0879808016ac742))
118
+ * **release:** use compatible changelog preset for [#113](https://github.com/dyphn1/Harness-everything/issues/113) ([9a181cf](https://github.com/dyphn1/Harness-everything/commit/9a181cf607797cd35a84a7b0e540387feda2f196))
119
+ * **release:** version changed skills during release ([333bb33](https://github.com/dyphn1/Harness-everything/commit/333bb33ceacbd5bc20be546d751bd98468e74db9))
120
+ * **release:** version only skills changed since last release ([6c74155](https://github.com/dyphn1/Harness-everything/commit/6c741557150c9156a0b31ed5713353f5a15ed21e))
121
+ * **router:** preserve invariant-first human-readable contract ([5a9baf0](https://github.com/dyphn1/Harness-everything/commit/5a9baf02e906c29e027affc9b735366526b54c3e))
122
+ * **router:** serialize unsafe explicit parallel requests ([fd02c97](https://github.com/dyphn1/Harness-everything/commit/fd02c977607b7400d9a61cbdc6648b79770a5a0b))
123
+ * **self-evolve:** Stop gating simple-rule persistence on the meta-repo's own CI ([4ab1bd8](https://github.com/dyphn1/Harness-everything/commit/4ab1bd88e11f55194e25f6bb636b164a57794eea)), closes [#54](https://github.com/dyphn1/Harness-everything/issues/54) [#52](https://github.com/dyphn1/Harness-everything/issues/52)
124
+ * **self-heal:** Identify the harness repo by package name, not source path ([f7ad891](https://github.com/dyphn1/Harness-everything/commit/f7ad891940cfa18b951d41ea3bcac80a98972e9c)), closes [#40](https://github.com/dyphn1/Harness-everything/issues/40)
125
+ * **skill-creator:** Require USE FOR/DO NOT USE FOR in the Quality Checklist ([68d9923](https://github.com/dyphn1/Harness-everything/commit/68d992350001d97fd3258a37dcc1e0d894a86c0b)), closes [#55](https://github.com/dyphn1/Harness-everything/issues/55)
126
+ * **skill:** Keep workspace contract within token budget ([7cd7956](https://github.com/dyphn1/Harness-everything/commit/7cd7956146be01221bc5e6b8bbf0d2fe21b027a0))
127
+ * **skill:** Keep workspace contract within token budget ([d360b8c](https://github.com/dyphn1/Harness-everything/commit/d360b8c70d89eaca8687821f616fe3cd9007f5ba))
128
+ * **skills:** Close Issue [#44](https://github.com/dyphn1/Harness-everything/issues/44) disclosure and path normalization defects ([27cb486](https://github.com/dyphn1/Harness-everything/commit/27cb486d0b7fbb0148df711bcfa8a1d6a355077d))
129
+ * **skills:** Trim SKILL.md bodies to fit waza's real 500-token budget ([3eeadf5](https://github.com/dyphn1/Harness-everything/commit/3eeadf5cf49ae4b00967a7901e6e157a2256ce20))
130
+ * **state:** Converge Claude/opencode runtime state onto a single global root ([ee348cd](https://github.com/dyphn1/Harness-everything/commit/ee348cdab972e2cfe08ec3277f1a89e86ecb2a74)), closes [#42](https://github.com/dyphn1/Harness-everything/issues/42)
131
+ * **state:** Fix zero-walk and cwd-default scatter in fable-mode and multi-agent-workspace ([6ac579e](https://github.com/dyphn1/Harness-everything/commit/6ac579e95632e9119a81260d4965974118c199be)), closes [#42](https://github.com/dyphn1/Harness-everything/issues/42)
132
+ * **state:** Harden workspace identity and migration ([0f3149d](https://github.com/dyphn1/Harness-everything/commit/0f3149da848b931d0c575311396b7f747122f452)), closes [#42](https://github.com/dyphn1/Harness-everything/issues/42)
133
+ * **state:** stabilize workspace identity and migration ([9dd2e3d](https://github.com/dyphn1/Harness-everything/commit/9dd2e3df3c4bfe91d8651c8344f568842687fbc1))
134
+ * **state:** stabilize workspace identity and migration ([d28a055](https://github.com/dyphn1/Harness-everything/commit/d28a055c1822a35ecc0ee96e7f578d8cb1363e96))
135
+ * **test:** close Codex Stop hook assertion ([ac1a8b6](https://github.com/dyphn1/Harness-everything/commit/ac1a8b600abc399cfa217e63a9c22ea8f08df362))
136
+ * **uninstall:** normalize global skill scope protection ([ab7ae46](https://github.com/dyphn1/Harness-everything/commit/ab7ae460a2cbf3abcf7f0da35436883d72fd0856))
137
+ * **uninstall:** remove orphaned Harness reference artifacts ([0a4d5b2](https://github.com/dyphn1/Harness-everything/commit/0a4d5b2caf0883f48aa3a22cdb97ade1f2d59823))
138
+ * **verifier:** export normalizeRepoPath for behavioral runner ([3e7b580](https://github.com/dyphn1/Harness-everything/commit/3e7b58024e9bef78299349e75f35f0c7cee37ea8))
139
+ * **verifier:** Harden consumer boundaries and mutation gates ([ef010ba](https://github.com/dyphn1/Harness-everything/commit/ef010bae835dcef736231ff07f9f09e0a6a886e8))
140
+ * **workspace:** keep skill contract compact and references explicit ([cce02bc](https://github.com/dyphn1/Harness-everything/commit/cce02bc4a1273428eae4dad586ab0a42eda2b2a7))
141
+ * **workspace:** preserve state mutation contract wording ([4cc11be](https://github.com/dyphn1/Harness-everything/commit/4cc11be2b8d94c7388320af4421e568ca51857d2))
142
+
143
+ # Changelog
144
+
145
+ All notable changes to this project will be documented in this file.
146
+
147
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
148
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
149
+
150
+ ---
151
+
152
+ ## [Unreleased]
153
+
154
+ ### Changed
155
+ - **Action gate defers to Claude Code permission modes** (#107): on Claude Code, a matched destructive command no longer returns a forced `permissionDecision: "ask"`, which prompted even in auto mode. The gate returns no decision, so the session's permission mode, rules and auto-mode classifier decide. It still records the matched rule and the command SHA-256 (`deferred-to-host`, then `executed` or `rejected`). An internal error on Claude also defers and shows a `systemMessage` warning. `HARNESS_ACTION_GATE_POLICY=always-ask` restores the forced prompt. Hosts without an ask decision keep the exit-2 block.
156
+
157
+ ## [0.3.7-beta] - Unreleased
158
+
159
+ ### Changed
160
+ - Prepare the next beta for the reviewed open-issue implementations (#20, #37, #42, #43, #44, #52, #56, #74, #75, #78, #82). Individual changes and verification evidence are recorded as they are integrated.
161
+
162
+ ---
163
+
164
+ ### Added
165
+ - **Portable Agent Plugin compatibility and platform matrix** (#75, #82): added the portable root `plugin.json`, official-source compatibility data for standalone skills versus plugins across eight agent platforms, explicit installer-target contracts, conservative status vocabulary, and deterministic gates that keep package/mechanism evidence separate from live-host evidence.
166
+ - **OpenAI/Codex lifecycle runtime compatibility** (#72): extended the local `.codex-plugin` package from session/prompt hooks to mechanism-tested `PreToolUse`, `PostToolUse`, `SubagentStart`, `SubagentStop`, and `Stop` adapters, including portable state dependencies and `apply_patch` edit tracking. Package synchronization now normalizes text EOLs for reproducible Windows/Unix output.
167
+ - **OpenAI/Codex plugin packaging and public Skills-only submission** (#74): added the repository marketplace (`.agents/plugins/marketplace.json`), local `.codex-plugin` package, synchronized copies of all 26 canonical skills, local `SessionStart` / `UserPromptSubmit` invariant hooks, OpenAI package/submission tests, deterministic Skills-only ZIP generation, and reviewer listing/test-case inputs. The local plugin mechanism boundary is explicitly separate from the public Skills-only artifact, which does not include the local lifecycle hooks.
168
+ - **Progressive disclosure and explicit skill paths** (#44): require short routed skill contracts, lazy-loaded workflow/reference detail, meaningful Mermaid coverage, and explicit `<this-skill-dir>/`, `<skills-repo-root>/`, or `<workspace>/` path bases.
169
+ - **Behavioral-eval evidence triage** (`behavioral-evals/`, #56): added structural case validation, ordered execution-evidence grading, sanitized historical archives with current-versus-historical hashes, and paired-rerun status tracking for old failures and never-run cases.
170
+ - **Shared verifier boundary contracts** (`scripts/lib/path-boundary.js`, `scripts/lib/execution-contract.js`): physical containment checks reject traversal and junction/symlink aliases, while execution evidence uses exact command/argv matching and all-or-nothing patch authorization. Deterministic mechanism coverage protects the contract for downstream verifier, workspace, installer, and plugin fixes.
171
+ - **Machine-verifiable TDD scoring gate** (`tdd/`, #58): the TDD skill routes behavior through a Mermaid path to separate unit or integration standards. Added profile-tagged source evidence, published canonical weights and calculation inputs, per-requirement and aggregate scores, mandatory PASS/FAIL gates, strict integration rerun comparison, auditable skip/N/A handling, and separate `NON_CONFORMANT`, `SOURCE_DEFECT`, and `SOURCE_CONFLICT` outcomes. `npm run tdd:quality -- <evidence.json> --output <report.json>` is the agent self-check; CI fixtures lock exact Unit and Integration scores plus malformed, incomplete, conflicting, skipped, and nondeterministic failures.
172
+ - **`--model` support for the `claude` engine in `behavioral-evals/run.js`**: `BEHAVIORAL_MODEL` now also passes `--model <value>` to the `claude -p` invocation (previously only the `opencode` engine read it). Lets a live run target a specific model, e.g. `BEHAVIORAL_MODEL=haiku node behavioral-evals/run.js run --case <id> --arm both`.
173
+ - **Full behavioral-eval skill coverage** (`behavioral-evals/cases/`, #34): added a fixture-bound baseline case for each of the 14 root skills that previously had only routing-precision coverage (`environment-detection`, `eval-harness`, `fable-discipline`, `find-skills`, `install-cognitive-os`, `multi-agent-workspace`, `rewrite-commits`, `self-evolve`, `skill-creator`, `skill-style`, `todo-driven-workflow`, `to-spec`, `to-tickets`, `using-git-worktrees`). `npm run eval:behavioral:validate` now covers all 26 shipped root skills instead of 12/26; `npm run eval:behavioral run` remains on-demand/token-costing, never CI. Live-verified on Haiku (`--engine claude`, see the harness-bug fix below) after two correction rounds: 5 EFFECTIVE (`eval-harness`, `skill-style`, `using-git-worktrees`, `to-tickets`, `to-spec`), 2 legitimate INCONCLUSIVE (`install-cognitive-os`, `fable-discipline`), 2 genuine INEFFECTIVE findings not rubric bugs (`self-evolve` treatment never wrote anything; `skill-creator` treatment wrote the Skill Contract table but omitted the required `USE FOR` section), and 5 still open (`environment-detection`, `todo-driven-workflow`, `multi-agent-workspace`, `rewrite-commits`, `find-skills` - blocked on #52 and/or an unverified prompt/turn-budget edit made after the last live run; see each case file's own note). Post-merge correction (2026-09-04): `find-skills` was briefly reported EFFECTIVE from a pre-permission-fix run where a denied tool call's permission-request text happened to mention the search command; re-run after the fix shows the skill actually works (a real search, presented correctly, never auto-applied) but #52 hides that from the grader - moved to the open/blocked list.
174
+
175
+ ### Fixed
176
+ - **Verifier consumer boundary repair** (`behavioral-evals/`, `multi-agent-workspace/`, `opencode-plugin/`, `scripts/installer.js`): reject historical refs that cannot resolve, protect archive and legacy migration writes from junction/symlink aliases, require exact command evidence and atomic reflection patches, reject fixture traversal, and make global installation work outside a git checkout. Added a focused mutation gate so these protections are required by executable tests.
177
+ - **Issue #20 deterministic gate hardening**: behavioral case parsing now preserves block scalars from CRLF files, malformed skill YAML fails closed in collision detection, negative controls execute the real gates against bad fixtures, the opencode plugin runner's validation path works, and local routing checks gracefully skip when waza is unavailable. Live opencode loading and paid behavioral evidence remain explicitly unverified.
178
+ - **Claude behavioral-eval transcript measurement** (`behavioral-evals/run.js`, `behavioral-evals/transcript-parser.js`, #52): switched headless Claude runs to verbose `stream-json`, preserved legacy JSON parsing with unavailable tool visibility, and added structured tool-attempt/completion/denial evidence with fail-closed grading for partial or unrecognized streams. Paired aggregation now excludes inconclusive arms from effectiveness statistics and preserves unknown tool-count deltas as `null`.
179
+ - **Execution-safe behavioral-eval rubrics** (`behavioral-evals/transcript-parser.js`, `behavioral-evals/cases/`): command-keyed expectations now match the recorded command (including safe prefixes and script path arguments), legacy/user transcript prose cannot masquerade as execution evidence, and execution-focused cases use structured completed-tool assertions.
180
+ - **Multi-agent workspace path split** (#43): moved generated runtime metadata, roles, state, logs, router, and memory indexes into the global workspace-keyed Harness state home; document zones now resolve from root `CONTEXT-MAP.md`, repository configuration, existing conventions, or a committable fallback. The installed scaffold/indexer no longer copy generated scripts, safely migrate authored legacy records, reject symlink escapes and duplicate migration destinations, and preserve authored records on migration failure.
181
+ - **`behavioral-evals/run.js`'s `claude` engine never actually granted headless autonomy** (#52 tracks a related follow-up): `--permission-mode acceptEdits` only auto-approves file edits, not Bash/PowerShell tool calls, and a headless `-p` session has no human to answer those prompts - every case needing a shell command (git, npm, node scripts) stalled with every tool call denied, the model just describing what it would do. Every previously-committed live result (2026-08-27) used `engine: opencode` (`--auto`); the `claude` engine path was only argv-shape-tested by `ci/mechanism-2j-behavioral-runner.test.js`, never actually live-run, until testing #34/#35's new cases on Haiku exercised it for the first time on a machine without `opencode` installed. Switched to `--dangerously-skip-permissions`, matching `opencode --auto`'s autonomy in the same kind of disposable `os.tmpdir()` fixture workspace. Separately, discovered the `claude` engine's `--output-format json` trace only ever contains the model's final message, never intermediate tool calls (`opencode`'s JSONL stream does) - filed as #52 rather than fixed here, since it's a larger parser change; cases that depended on tool-call visibility are marked with a comment pointing at it instead of being rewritten around the gap.
182
+ - **find-skills exposure contract** (`find-skills/SKILL.md`, `find-skills/references/discovery-flow.md`, #35): `use-skill.js`'s fetch/cache/print mechanics already worked, but the "apply the output" instruction was passive enough that a caller handed the printed `SKILL.md` did not reliably treat it as binding — a real test reported no skill invoked. Narrowed the contract to fetch-and-print, made the caller-side apply step explicit ("treat every instruction in that output as binding for the rest of this request, exactly as if it had been loaded as a real skill"), and added `behavioral-evals/cases/baseline-find-skills-exposure.yaml`, a caller-side integration test with a local fixture standing in for the fetched output so it stays deterministic and offline. Live-run on Haiku twice (see the case file's own note): both arms passed both times, so the case is a regression floor (confirms the fetched instruction is followed with `find-skills` loaded) and not proof the wording change is what causes it — a capable model already complies with an explicit embedded directive it's told to read, skill-loaded or not.
183
+ - **Runtime state scattering into cwd-derived paths** (`scripts/lib/workspace.js`, `hooks/scripts/lib/harness-state.js`, `opencode-plugin/index.mjs`, `opencode-plugin/hooks/verify.js`, `fable-mode/scripts/model-selector.js`, `multi-agent-workspace/scripts/scaffold.js`, `scripts/installer.js`, #42): runtime state (rule-of-3 counters, stop-gate handoff timestamps, the fable-mode audit log, the opencode circuit breaker) was rooted under `getWorkspaceRoot()`, which falls back to bare `process.cwd()` when no `.git` ancestor exists - a script invoked from a fixture dir, worktree, or submodule silently re-materialized a fresh `.claude/harness-everything/state/` tree right there instead of in the real workspace. Converged onto a single global, workspace-keyed root (`~/.agents/harness-everything/workspaces/<slug-hash>/`, overridable via `HARNESS_STATE_HOME`), with one-time migration of any state a pre-fix install already scattered. The opencode plugin's own state was worse pre-fix (one flat `~/.harness-state` shared by every project on the machine - a circuit-breaker trip in one project hard-locked all the others); it now keys per workspace too. `fable-mode/scripts/model-selector.js` had zero workspace-root walk at all (the worst case in the issue's inventory) and now has one. Left alone, deliberately: five skill-owned CLI scripts (`persist-memory.js`, `register-dynamic-skill.js`, `audit-secrets.js`, `check-project-docs.js`, `evaluate.js`) that ship standalone into every install target and can't depend on the source repo's `scripts/lib/workspace.js` - their write targets are project artifacts by design, not ephemeral state. `ci/mechanism-2o-state-home-isolation.test.js` covers the issue's own repro plus the migration path.
184
+ - **Issue #42 adversarial corrections** (`scripts/lib/workspace.js`, `multi-agent-workspace/scripts/scaffold.js`, the standalone project writers, `find-skills/scripts/use-skill.js`, `opencode-plugin/index.mjs`, #42): no-context calls now use a stable unbound global bucket instead of cwd-derived identity, Windows case variants hash identically, non-git invocations refuse project writes, `.harness/multi-agent` and flat opencode state migrate even when destinations already exist, and find-skills uses the unified state home. `ci/mechanism-2u-issue-42-regressions.test.js` proves each regression against isolated fixtures.
185
+ - **Session-stable workspace identity and recoverable migration** (`scripts/lib/workspace.js`, `hooks/scripts/lib/harness-state.js`, `fable-mode/scripts/model-selector.js`, #42): hook payloads now bind a host/session identity to the first trusted workspace context so later cwd changes, nested repositories, symlink paths, and hostless follow-ups do not silently fork runtime state. Legacy platform trees are merged without overwriting newer destination files; conflicts and unsupported entries remain available for a later retry, while independent platform sources continue migrating. `ci/mechanism-2t-workspace-identity.test.js` covers host/session binding, cwd changes, conflicts, symlinks, and retry.
186
+ - **Self-repo detection** (`scripts/lib/workspace.js`): bootstrap and self-heal now identify the harness repo by `package.json` name instead of comparing against the running script's own directory, so an npx or global install no longer reports the harness checkout as drifted and recommends a repair that self-heal refuses to run. The audit also distinguishes an absent integration file from one that exists without the Harness advisory block.
187
+ - **opencode plugin, ported to the real API** (`opencode-plugin/index.mjs`, #37): the previous `plugin.json` manifest mapping `postEdit`/`preComplete` to standalone scripts was never invoked by opencode - it has no manifest-to-script mechanism and no such events. Replaced with a single ESM module exporting `tool.execute.before` (circuit-breaker hard lock), `tool.execute.after` (edit tracking) and `event` (verification gate on `session.idle`, which pushes a follow-up message via `client.session.prompt()` on failure since the event can't be blocked directly) - all three verified against opencode's plugin source. Reflection now has a tokenized report artifact lifecycle: code edits are blocked while pending, report writes are accepted through the real `(input, output)` hook arguments, read tools remain available, and repeated idle or failed prompt delivery are idempotent and retry-safe. State is isolated by workspace and session, unsafe IDs cannot escape reset containment, and the module contract and installation are documented. `ci/mechanism-2n-opencode-plugin.test.js` covers the full lifecycle, session isolation, reset safety, and hard-lock enforcement. Not yet verified: a live opencode session actually loading and firing the plugin (opencode requires Bun, not installable in this repo's environment).
188
+ - **opencode reflection enforcement hardening** (`opencode-plugin/index.mjs`, #37): reflection directives are now scoped to the `## Decision` section, corrupt breaker state fails closed, and `apply_patch` marker paths are recognized from `output.args.patchText`. The mechanism test covers each regression and restores repository-inventory parity for the remaining standalone helper.
189
+ - **Release baseline** (`ci/release-consistency-check.js`): the comparison tag is derived from the latest tag (or `--tag` / `HARNESS_RELEASE_TAG`) instead of being pinned to `v0.3.3-beta`, which had been three releases stale while still reporting PASSED.
190
+
191
+ ### Changed
192
+ - **Release gate** (`.github/workflows/release.yml`): a tag push now runs the same job set as a pull request - including `test:references`, `test:release`, the waza skill-quality gate, and the windows matrix - instead of a weaker ubuntu-only subset.
193
+ - **Changelog/tag consistency** (`ci/consistency-check.js`): every released changelog heading must have a matching git tag; versions that were never tagged must say so in the heading.
194
+
195
+ ### Documentation
196
+ - **Platform capability documentation consistency** (#78): centralized current enforcement/install/evidence claims in `docs/platform-capabilities.md`, aligned README/architecture/verification/mechanism/troubleshooting/audit/benchmark/agent/OpenCode documentation, and added `test:docs:capabilities` as a deterministic drift gate chained into `test:consistency` on Linux and Windows CI.
197
+ - **opencode plugin status** (`README.md`, `opencode-plugin/README.md`): updated to describe the real `index.mjs` plugin and its installation (drop into `.opencode/plugins/`, no `opencode.json` entry needed). opencode is now listed alongside Claude Code as a hard-enforcement platform, flagged as unverified in a live session pending #37's remaining step.
198
+
199
+ ---
200
+
201
+ ## [0.3.6] - 2026-09-01
202
+
203
+ ### Added
204
+ - **Unified multi-agent workspace**: Merged launcher and workspace scaffolding into the routed `multi-agent-workspace` skill with six zones, an immutable router, a local memory indexer, selected-role launcher, and structured handoff manifest.
205
+ - **agency-agents catalog integration**: Added read-only source discovery with division metadata, specialist selection, frontmatter validation, duplicate-name/slug checks, source-revision drift protection, supported-platform validation, and explicit missing-source fallback.
206
+ - **Fresh-workspace integration coverage**: Added fixture tests for fallback, real catalog selection, idempotence, malformed catalog paths, drift, and unsupported platforms.
207
+
208
+ ### Changed
209
+ - **Routing and distribution**: Replaced the two overlapping routed skills with one canonical skill, retained historical release mappings and canonical migration guidance, updated plugin/marketplace manifests, docs, and routing eval coverage.
210
+ - **Strict catalog audit**: Removed obsolete compatibility directories and stale workflow, added the missing `find-skills` workflow, aligned all 26 skill contracts/eval descriptions, and added deterministic 34-case route coverage.
211
+ - **Documentation alignment**: Corrected README/registry layer labels, per-session state paths, and unimplemented workflow claims; waza remains an explicit CI gate when unavailable locally.
212
+ - **Waza readiness**: Compressed five skill contracts below the CI token budget while retaining their routing, workflow, and enforcement semantics.
213
+ - **Self-evolve boundary**: Clarified that the host agent supplies authorized session evidence and root-cause analysis; self-evolve validates and persists the lesson without scanning host transcripts.
214
+ - **Release history cleanup**: Reworded historical entries at the capability level so the changelog does not route agents toward retired skill names.
215
+ - **Provenance**: Recorded the local agency-agents snapshot (18 divisions, 258 agents, 14 converter targets) and preserved the upstream MIT attribution without vendoring agent bodies.
216
+
217
+ ---
218
+
219
+ ## [0.3.5-beta] - 2026-09-01 (unreleased - never tagged; shipped in 0.3.6)
220
+
221
+ ### Added
222
+ - **Fable v3 model modes**: Added explicit Haiku, Sonnet, and Opus entrypoints, named agent distribution, a deterministic model matrix/selector, required stage audit records, and visible inline fallback or blocked escalation behavior.
223
+ - **Fable routing and contract coverage**: Added positive/negative mode routing evals and deterministic selector tests for model availability, alias normalization, audit persistence, and unsupported-runtime handling.
224
+
225
+ ### Changed
226
+ - **Native workflow tracking**: Removed the repository TODO CLI and its legacy behavioral test; active workflow guidance now uses the host TODO tracker or Markdown checklists.
227
+ - **Harness distribution and documentation**: Updated plugin manifests, version metadata, routing guides, audit notes, and workflow references for the Fable v3 integration.
228
+
229
+ ---
230
+
231
+ ## [0.3.4-beta] - 2026-08-23 (unreleased - never tagged; shipped in 0.3.6)
232
+
233
+ ### Added
234
+ - **A/B Eval Harness** (`eval-framework/ab-test-harness.js`): automated with/without skill comparison to prove method effectiveness. Takes a skill + test prompt, spawns baseline (no skill) and treatment (with skill) agent sessions, grades both against a rubric, and produces a verdict (EFFECTIVE / INCONCLUSIVE / INEFFECTIVE / HARMFUL). Run `npm run test:ab` (validate, free) or `npm run test:ab:run` (costs tokens). First run on gpt-5-mini: 4/4 INCONCLUSIVE — model already performs tested behaviors by default. Results in `benchmarks/ab-test-<date>/`.
235
+ - **Word-Count Budget Check** (`consistency-check.js` section 5d): flags SKILL.md files exceeding 330 words (~500 tokens at 1.55 tokens/word). Catches token-budget violations before waza runs.
236
+ - **Installer E2E CI Job** (`.github/workflows/ci.yml`): tests `node bin/cli.js install --all -y` on a fresh temp directory on both ubuntu-latest and windows-latest.
237
+ - **CRLF frontmatter regression test** (`eval-framework/mechanism-2i-crlf-frontmatter.test.js`): copies the repo to a temp dir, converts every SKILL.md to CRLF, asserts consistency and collision gates both pass — plus a negative control that plants a duplicate description under CRLF and asserts the collision check detects it (protects against the pre-fix silent no-op failure mode). Auto-discovered by `mechanism-test.js`; runs as part of `npm test`.
238
+ - **Plugin Distribution (`.claude-plugin/`)**: Added `plugin.json` and `marketplace.json` so Harness installs as a Claude Code plugin (`/plugin marketplace add dyphn1/Harness-everything`) with the full skill catalog, hooks, and version pinning — previously only `npx github:` was supported.
239
+ - **Benchmark Evidence Infrastructure (`benchmarks/`)**: BENCHMARK_SOP.md scenarios are now executable: `benchmarks/run.js scaffold <scenario>` builds fixture workspaces (Test A–F) and prints the exact prompt; `record` commits schema-validated results (`schema.json`) bound by content hash to exported session logs ("no log, no result"); `status` prints a coverage matrix that openly reports empty cells instead of implying evidence exists.
240
+ - **Behavioral Eval Framework (`behavioral-evals/`)**: LLM-behavior-level evaluation via headless `claude -p` in throwaway workspaces with Harness fully installed. Six cases covering tier routing, circuit-breaker zoom-out, verify-before-claim, and scope discipline — including two pressure variants (deadline pressure to skip verification; sunk-cost pressure to blind-retry). Grader verdicts are auditable from recorded transcripts. Token-costing by design; never wired into CI.
241
+ - **Full Routing-Eval Coverage**: Added trigger/routing evals for all remaining 22 skills (`evals/<skill>/eval.yaml` + positive/negative tasks), bringing catalog coverage from 5/27 to 27/27.
242
+ - **Benchmark Evidence (Test A–F)**: First recorded A/B runs of all six BENCHMARK_SOP scenarios (vanilla vs Harness, opencode + gpt-5-mini, evidence logs hash-bound to records). Results: 5/6 harness cells pass; Test C (Tier 3 attention loss) graded partial — discover-first and grill-before-edit held but fable-mode milestone orchestration did not trigger. Circuit breaker (Test B) unexercised: no 3-failure loop occurred in either variant.
243
+ - **Description Collision Detection** (`eval-framework/description-collision.js`): Pairwise stemmed-Jaccard similarity over skill descriptions; fails at ≥0.75 overlap where the router cannot distinguish two skills. Guards against description drift as the catalog grows.
244
+ - **Consistency Check** (`eval-framework/consistency-check.js`): Validates SKILL.md frontmatter names match directories, both trigger sections exist, `.claude-plugin/*` manifests list exactly the on-disk skills, versions agree across package.json/plugin.json/marketplace.json, every skill has a routing eval, and every local link in README/docs resolves. A stale manifest is a router that lies.
245
+
246
+ ### Changed
247
+ - **Evidence and install integrity**: Added a 12-case tier-routing matrix, hard skill-reference and release-catalog checks, paired randomized A/B metadata, explicit pressure categories, and `harness verify-install` tree/version verification. The behavioral runner now has a true no-Harness control arm and passes Windows prompts as one argv value.
248
+ - **Task tracking**: Removed the redundant `todo-cli.js` state machine and its simulation test. `todo-driven-workflow` now uses the host agent's native TODO tracker or a workspace Markdown checklist.
249
+
250
+ ### Fixed
251
+ - **Token Budget Violation**: `fable-mode/execution-guardrails/SKILL.md` trimmed from 335 to 187 words (removed redundant Skill Contract table, compressed USE FOR sections). Now passes the new word-count gate.
252
+ - **CRLF-hostile frontmatter parsing**: the frontmatter regex in `eval-framework/consistency-check.js` (4 call sites: skill discovery, version-ceiling gate, nested sub-skill parent/child checks) and `eval-framework/description-collision.js` hardcoded `\n`, so any workspace with CRLF line endings (e.g. a Windows clone with `core.autocrlf=true`) reported 83 spurious consistency failures — and, worse, the collision check silently degraded to comparing 27 empty descriptions and passed as a no-op. All five sites now tolerate `\r?\n`; a new `.gitattributes` pins LF for fresh clones; and the CI `consistency` job now runs on both ubuntu-latest and windows-latest instead of ubuntu-only.
253
+ - **Corrupt AGENTS.md**: Root AGENTS.md contained only a dangling `description: "` fragment; rewritten as a full operating guide (layout, change rules, quality gates, version policy).
254
+ - **Skill Version Drift**: All skills modified after the 0.3.3-beta release now carry frontmatter version 0.3.4 (two were stale at 0.2.0); package/plugin/marketplace realigned from 0.4.0-beta to 0.3.4-beta so no version exceeds the release base.
255
+ - **Nested Sub-Skill Version Lockstep**: `fable-mode/fable-haiku` (stale at 0.3.3) and `fable-mode/execution-guardrails` (no version) now carry version 0.3.4. consistency check discovers nested `<skill>/<sub>/SKILL.md` files and requires them to match their parent skill's version; AGENTS.md rule 4 amended to codify that nested sub-skills inherit the parent version.
256
+
257
+ ### Added
258
+ - **Version Ceiling Gate**: consistency check now parses every skill's metadata.version and fails if it is missing, unparseable, or numerically above the package.json version base.
259
+
260
+ ### Changed
261
+ - **Legacy multi-agent description correction**: Removed claims that the legacy multi-agent scaffolding shipped runtime components; the memory indexer is generated by the agent at runtime, not distributed. Reworded the skill, authoring guidance, workflow, and routing eval to match the actual capability. No version bump: 0.3.4-beta was unreleased, so these edits landed under its heading.
262
+ - **CHANGELOG ordering repair**: the `[0.2.0-beta]` and `[0.2.0-alpha]` sections (dated 2026-07-22) sat below `[0.1.0-*]`; moved to their reverse-chronological position after `[0.2.0]`. Recorded governance exception to rule 6 (append-only): section content is unaltered; only placement changed.
263
+ - **CI**: New `consistency` job running manifest/doc-link/eval-coverage checks and collision detection on every push.
264
+ - **Version Alignment**: package.json, plugin.json, and marketplace.json now share one version string, enforced by the consistency check.
265
+
266
+ ---
267
+ ## [0.3.3-beta] - 2026-08-13
268
+
269
+ ### Added
270
+ - **Cognitive OS Enhancements**: Implemented zero-trust evidence-driven context in `to-spec` and `to-tickets` and added comprehensive documentation.
271
+ - **Reference Checklists**: Added `security-checklist.md`, `performance-checklist.md`, and `definition-of-done.md` to the `references/` directory.
272
+ - **Mandatory Design Audit**: Enforced mandatory design audit verification step in specification skills.
273
+
274
+ ### Fixed
275
+ - **Installer `--skill` flag**: Fixed `--skill` flag argument parsing in the installer script and ensured the `references` directory is copied when installing skills.
276
+
277
+ ### Changed
278
+ - **Fable Mode & Specs**: Updated `fable-mode`, `to-spec`, and `to-tickets` skills to integrate the cognitive OS enhancements.
279
+
280
+ ---
281
+ ## [0.3.3-alpha] - 2026-08-13
282
+
283
+ ### Added
284
+ - **CLI Commands (`harness next` & `harness verify`)**: Added `harness next "<prompt>"` and `harness verify` subcommands to `bin/cli.js` as thin wrappers around `tier-router.js` and `verify-gate.js`, enabling `npx github:dyphn1/Harness-everything next/verify` across all platforms (`7625a2f`).
285
+ - **Expressive CLI `--help` Interfaces**: Added CLI `--help`/`-h` options to agent-facing scripts (`todo-cli.js`, `persist-memory.js`, `register-dynamic-skill.js`, `check-project-docs.js`, and `evaluate.js`) to expose parameter schemas directly from code logic (`f1f4f11`).
286
+ - **OWASP & STRIDE Guides in Security Review**: Added OWASP patterns, STRIDE threat model guides, and `audit-secrets` script to `security-review` (`5df5844`).
287
+ - **Report Template Files**: Extracted report structures into dedicated template files for `zoom-out` (`zoom-out/templates/zoom-out-report.template.md`) and `verification-loop` (`verification-loop/templates/verification-report.template.md`) (`8b6724e`).
288
+ - **Git Worktree Concurrency Guidance**: Added Git Worktree concurrency isolation rules and cross-platform compatibility guidelines to `todo-driven-workflow` (`c3df2b3`, `c031aa1`).
289
+
290
+ ### Fixed
291
+ - **Hookless Platform Routing Paths**: Fixed dead path issue in advisory text by updating hookless platforms (Codex, Cursor, Copilot, Continue, Hermes) to use `npx github:dyphn1/Harness-everything next/verify` (`7625a2f`).
292
+ - **Orchestrator Discoverability**: Surfaced `fable-orchestrator` as a discoverable sub-skill in `fable-mode/SKILL.md` and tier-router logic (`4ea61eb`).
293
+ - **Cross-Platform & Windows Compatibility**:
294
+ - `find-skills`: Fixed Windows execution by invoking `npx.cmd` and enabling shell execution option (`2b678d6`).
295
+ - `environment-detection`: Resolved Git Bash shell misidentification on Windows (`97c2f48`).
296
+ - `rewrite-commits`: Prevented terminal hangs during interactive rebase by requiring explicit rebase abort on conflict (`c51a091`).
297
+ - `verification-loop`: Removed POSIX pipeline (`head`/`tail`/`grep`) dependencies for cross-platform compatibility (`5f9c580`).
298
+ - `execution-guardrails`: Replaced raw `sed` command suggestions with cross-platform native edit tools (`9a2fc78`).
299
+ - **Compliance Theater Prevention**: Updated `verify-gate.js` to output an explicit `UNCHECKED` warning when tests are missing instead of silently passing (`fb8c851`).
300
+ - **Self-Evolve & Path Fixes**:
301
+ - Auto-create repo manifest directories and resolve script path references in `self-evolve` (`e0f0295`).
302
+ - Resolved stale memory paths and relative agent definition references in `fable-haiku` (`962ff39`, `9975063`).
303
+ - **Circuit Breaker Deadlock**: Resolved tool name matching and session path deadlock in `zoom-out` (`46b4798`).
304
+ - **Manifest Loading in `to-spec`**: Fixed manifest helper module loading in `check-project-docs.js` (`142c668`).
305
+ - **Unlinked specialized-agent files**: Linked orphaned workflow/template files for multi-agent orchestration and unbound hard tool dependencies (`dbf075f`).
306
+
307
+ ### Changed
308
+ - **Progressive Disclosure & Gentle Guidance**: Streamlined the commit, multi-agent orchestration, and cognitive-OS skills to follow progressive disclosure, replacing rigid commands with adaptable entrypoints (`5df5844`, `8a6a48f`, `b53d9d5`, `d84147b`, `a1234da`).
309
+ - **Path Portability**: Standardized script path invocation references across `SKILL.md` files to use `<this-skill-dir>` and `npx` commands (`30bc368`).
310
+ - **Single Source of Truth for Platform Notes**: Centralized platform availability notes across `zoom-out`, `todo-driven-workflow`, and `install-cognitive-os` to link to README's supported tools table (`8b6724e`).
311
+ - **Subagent Scope Guard Awareness**: Integrated `subagent-scope-guard` awareness across `fable-mode` and launcher workflows (`b9a4a42`).
312
+ - **Gitignore Auto-Rules**: Added auto-generated comment banner for Harness OS ignore rules in `.gitignore` (`30bc368`).
313
+
314
+ ### Removed
315
+ - **Unverified Platform References**: Removed dangling, unverified Gemini CLI references and deleted the orphaned `platform-gemini.md` guideline (`e427bee`).
316
+ - **Obsolete Style Docs**: Removed obsolete `STYLE.md` and updated missing single-skill templates in `repo-docs` (`2d98ceb`).
317
+
318
+ ---
319
+ ## [0.3.2-alpha] - 2026-07-28
320
+
321
+ ### Fixed
322
+ - **Platform Self-Heal Overkill**: Completely redesigned the environment and workspace detection algorithm in `self-heal.js` and `bootstrap.js`. Replaced the overly-broad binary if-else check (which fell back to auditing and generating files for all other 5 non-Claude platforms when Claude Code env was absent) with a precise dual-track platform detection strategy based on environment variables (like `TERM_PROGRAM`, `CURSOR_SANDBOX`, and `GITHUB_COPILOT_CHAT`) and existing configuration files. This ensures that the self-healing and bootstrap processes only target and audit platforms that are actively used or pre-configured in the project, eliminating accidental file pollution for other platforms.
323
+ - **Gitignore Suffix Matching**: Appended `.github/harness-everything/state/` to the ignore rules to prevent tracking state files for the Copilot integration.
324
+
325
+ ---
326
+ ## [0.3.1-alpha] - 2026-07-28
327
+
328
+ ### Added
329
+ - **Expanded Routing Keywords**: Expanded routing keywords derived from user history and resolved regex preemption in `tier-router.js`.
330
+ - **Adjusted Default Skills**: Adjusted default skills configuration and unified command-line option indicators within the installer.
331
+
332
+ ### Fixed
333
+ - **Legacy Hook Identification**: Supported robust legacy hook identification during global uninstallation.
334
+
335
+ ### Changed
336
+ - **Pipeline Refactoring**: Integrated `grill-me` and `grill-with-docs` into a cohesive companion pipeline.
337
+
338
+ ---
339
+ ## [0.3.0-beta] - 2026-07-27
340
+
341
+ ### Added
342
+ - **Modular Mechanism Tests**: Completely split the monolithic mechanism-test suite into 8 isolated, highly cohesive `.test.js` modules (`mechanism-2a` through `mechanism-2h` under `eval-framework/`) for superior traceability and ease of debugging.
343
+ - **Unified Test Helper**: Created `eval-framework/test-helper.js` managing mock execution directories, teardown life cycles, and child processes safely across all mechanism test runs.
344
+ - **Selective Gitignore Exclusion Tests (`mechanism-2g`)**: Added full validation tests for selective `.gitignore` exclusion algorithms across different developer platforms.
345
+ - **Installer & Manifest Serialization Tests (`mechanism-2h`)**: Implemented complete testing coverage for the installer manifest, metadata parsing, dynamic-skill registration, and automatic cleanup of empty manifest files.
346
+
347
+ ### Fixed
348
+ - **Platform Gitignore Exclusion Overkill**: Fixed a critical bug in `hooks/scripts/lib/platforms/*.js` where the installer incorrectly added the entire workspace-level `.claude/skills` (or `.cursor/skills`, `.github/skills`, etc.) to `.gitignore`, silently blocking developers from committing their custom project-specific skills to version control. It now dynamically reads each skill's `SKILL.md` frontmatter and only ignores verified Harness core/system skills, keeping custom skills fully trackable.
349
+ - **Redundant Gitignore Suffix Matches**: Optimized platform ignore matching (`isMatch` in platform helper modules) to prevent appending redundant nested directories to `.gitignore` when parent directories (e.g. `.claude/` or `.cursor/`) are already broadly ignored.
350
+
351
+ ### Changed
352
+ - Refactored `eval-framework/mechanism-test.js` to serve as a dynamic test orchestration runner. It auto-discovers all mechanism test suites, executes them sequentially under isolated environments, and outputs a clean console summary table at the end.
353
+ - Updated `VERIFICATION.md` and `docs/audit.md` to reflect the newly modularized test suites, raising the system-wide test coverage and capability scorecard to 9.0/10.
354
+
355
+ ---
356
+ ## [0.3.0-alpha] - 2026-07-26
357
+
358
+ ### Added
359
+ - **`to-spec`**: adaptive spec/doc skill (feature spec, CLI/API reference, schema-doc, or dev-doc shape) chained after `grill-with-docs`/`grill-me`, advisory-only, with a one-time `check-project-docs.js` setup gate persisted in this repo's own `manifest.json`.
360
+ - **`to-tickets`**: breaks a `to-spec` doc (or an already-settled plan/conversation) into tracer-bullet tickets with declared blocking edges, reusing `to-spec`'s project-docs gate rather than a second interview.
361
+ - **`find-skills`**: external skill discovery via skills.sh/`npx skills`, defaulting to a zero-footprint ephemeral apply (content-addressed OS-temp cache) instead of caching third-party metadata in `manifest.json`; permanent install (`npx skills add`) remains an explicit, rare opt-in.
362
+ - Self-evolve's dynamic skills now register in `manifest.json` and get precise trigger matching from `tier-router.js`, so a lesson learned in one session is auto-surfaced in later ones.
363
+ - CI: `.github/workflows/ci.yml` runs `npm test` on push/PR across `ubuntu-latest` and `windows-latest`.
364
+ - `verify-gate.js` now runs the target project's real `lint`/`test` scripts (via the detected package manager) instead of a simulated stub, with a self-recursion guard (`HARNESS_SKIP_PROJECT_CHECKS`).
365
+
366
+ ### Fixed
367
+ - `tier-router.js` resolved `workspaceRoot` via a `__dirname` offset that only ever worked inside this source repo — real installs could never find their `manifest.json`, silently killing dynamic-skill auto-discovery outside of development. Now walks up from `cwd` to the nearest `.git`.
368
+ - Installer's legacy-skills cleanup deleted `self-evolve`'s entire `skills/generated/` directory on every install/uninstall of Claude Code skills. Now only removes non-generated legacy subdirectories.
369
+ - `self-regression`'s syntax-check phase didn't cover `to-spec`/`to-tickets` scripts.
370
+ - Dynamic skill registration: removed an unconditional manifest rescan firing on every memory persist, tightened fallback trigger inference, made `triggers:` a required dynamic-skill frontmatter field, and fixed a broken Mermaid fence in `docs/workflows/skill-creator.md`.
371
+
372
+ ### Changed
373
+ - Cognitive OS "iron laws" decoupled from one shared file and woven directly into the specific skill phase each governs.
374
+ - `tier-router.js`'s keyword/guide tables extracted into a sibling `routing-keywords.json` (fails open to Tier 1 if the file is missing or invalid).
375
+ - README and `docs/reflection.md` updated to describe six core modules (was five) and both `self-evolve` persistence paths (simple rule vs. dynamic skill).
376
+
377
+ ### Documentation
378
+ - README restructured to be user-facing; audit scorecards, the 2026-07-23 mis-measurement incident, and the per-cycle change log moved to new `docs/audit.md`.
379
+ - New "What Gets Installed (and How to Remove It)" README section.
380
+ - `harness-everything/SKILL.md` section numbering fixed (§5 registry now precedes §6) and tier-following wording aligned with the router's actual output.
381
+
382
+ ---
383
+ ## [0.2.1] - 2026-07-24
384
+
385
+ ### Fixed
386
+ - **Global skill installs landed one directory too deep**: `--global`/`-g` installs (all platforms share this one code path) copied skills to `~/.agents/harness-everything/skills/` instead of the documented `~/.agents/skills/` (see `bin/cli.js`'s own `-g, --global` help text, and the legacy-fallback scan `scripts/lib/skills.js` already expected at that path). Corrected in `scripts/installer.js` to match the same convention already used locally: `harness-everything/` holds manifest bookkeeping only, skill content lives in the native/shared `skills/` folder next to it. `~/.agents/harness-everything/manifest.json` is unchanged; uninstall's final global sweep was updated to match.
387
+ - **Duplicate lines could accumulate in `.gitignore`**: `ensureHarnessStateIgnored` (`hooks/scripts/lib/harness-state.js`) runs once per hook-invoked subprocess with no cross-process lock around its read-then-append, so two invocations firing close together could both decide the same ignore pattern was missing and both append it. It (and the installer's own `scripts/lib/gitignore.js` writer, which shares the identical shape) now collapses exact-duplicate non-comment/non-blank lines on every write, so a duplicate from a lost race self-heals on the next invocation instead of accumulating.
388
+
389
+ ---
390
+ ## [0.2.0] - 2026-07-23
391
+
392
+ ### Added
393
+ - **Multi-Platform State Isolation Strategy**: Designed and created a registry for developer platforms (`claude.js`, `cursor.js`, `copilot.js`, `continue.js`, `codex.js`, `hermes.js`, `worktrees.js`) dynamically managing state folders (`getStateDir`) under respective tool namespaces (e.g. `.github/harness-state/`, `.cursor/harness-state/`) instead of hardcoding `.claude/harness-state/`.
394
+ - **Runtime and Install-Time Auto-Ignore Defense**: Automated self-exclusion by writing active platform patterns directly to `.gitignore` seamlessly during both runtime execution checkpoints and local setup/installation.
395
+ - **Per-platform install manifest**: every install now writes `<platform-dir>/harness-everything/manifest.json` (e.g. `.claude/harness-everything/manifest.json`, and a shared `~/.agents/harness-everything/manifest.json` for global scope), recording exactly which skill directories this package put where. All 23 `SKILL.md` files now carry `author`/`version` frontmatter, which the manifest cross-checks against before ever removing a directory.
396
+
397
+ ### Fixed
398
+ - **Uninstall could delete content it didn't install**: `uninstall --skills`/interactive "Remove ALL" used to list every subdirectory under shared skill folders (`~/.agents/skills`, `.harness/skills`, …) as "installed," including a user's own manually-placed skills and `self-evolve`'s locally-generated `skills/generated/*`. Global uninstall additionally `rm -rf`'d all of `~/.agents` outright. Removal is now manifest-driven and author-marker-verified per skill, and global uninstall only ever touches its own `harness-everything/` subfolder — never `~/.agents` itself.
399
+ - **Claude hook removal false-positive**: the fallback matcher removed any hook whose command merely *contained the substring* "harness," which could catch an unrelated hook from another tool. Removal now keys solely off the `harness:` id namespace every hook this package ships already carries.
400
+
401
+ ### Changed
402
+ - **`scripts/installer.js` split into `scripts/lib/`**: the single ~1200-line file (TUI, hook merge, advisory-text injection duplicated twice, skill copy, gitignore upkeep all mixed together) is now an orchestrator over `lib/manifest.js`, `lib/skills.js`, `lib/claude-hooks.js`, `lib/advisory-text.js`, `lib/gitignore.js`, `lib/prompts.js`, and `lib/workspace.js`.
403
+ - **Local runtime state relocated under `<platform-dir>/harness-everything/`**: the self-invented top-level `.harness/` root (Claude's manifest + skill copies) is retired in favor of `.claude/harness-everything/{state,skills,manifest.json}` — a subfolder of Claude's own directory that nothing else creates, so it can be added/removed as a unit. Each other platform's own `harness-state/` similarly moves to `<platform-dir>/harness-everything/state/`, alongside its own new `manifest.json`. Skill locations for Cursor/Copilot/Continue (`.cursor/skills`, `.github/skills`, `.continue/skills`) are unchanged. A one-time migration step removes any leftover `.harness/` on next local uninstall.
404
+ - **Codex skill target corrected from `.agents/skills/` to `.codex/skills/`**: `.agents/` was never a real Codex CLI convention — Codex's actual project-scoped home is `.codex/` (`.codex/skills/` for project skills, `.codex/config.toml` for CLI/sandbox config), confirmed against OpenAI's own docs. This bug predated this release. `getInstalledSkills` still scans the old `.agents/skills/` location as a legacy fallback so existing wrong-location installs remain discoverable and cleanly removable.
405
+ - **Author attribution**: `author` frontmatter across all 23 `SKILL.md` files, `package.json`, and the `HARNESS_AUTHOR` constant `scripts/lib/skills.js`'s uninstall safety check matches against, updated from `Harness Core Team` to `Miya Daniel | Harness Core Team`.
406
+
407
+ ### Documentation
408
+ - Removed dangling `docs/reports/` links from `README.md`, `VERIFICATION.md`, `harness-everything/SKILL.md`, `skill-creator/SKILL.md`, and `skill-creator/references/quality-principles.md` — the referenced audit report files were removed from the repo; `VERIFICATION.md`'s own instruction to store *future* reports under `docs/reports/` is unaffected.
409
+
410
+ ## [0.2.0-beta] - 2026-07-22
411
+
412
+ ### Fixed
413
+ - **`uninstall` command unreachable via CLI**: `bin/cli.js`'s command dispatcher never had a `case 'uninstall'` - `scripts/installer.js` has handled `uninstall` internally since it was added, but the CLI entrypoint's `switch` fell through to `default` and printed `[Error] Unknown command: "uninstall"` before ever reaching it, making `npx github:dyphn1/Harness-everything uninstall` unusable regardless of flags. Added the missing case (routes to the same `runInstaller` path as `install`, since `installer.js` reads the command off `process.argv` itself) and documented `uninstall`'s flags in `--help`.
414
+
415
+ ### Added
416
+ - **Continue.dev and Hermes Agent platform support**: `scripts/installer.js` now accepts `--continue` and `--hermes` (also included in `--all`). Continue.dev gets a dedicated `.continue/rules/harness.md` rule file (YAML frontmatter, `alwaysApply: true` — Continue's native rules format is one Markdown file per rule rather than a single shared file, so unlike Cursor/Copilot/Codex, Harness never appends into an arbitrary pre-existing file); global scope writes to `~/.continue/rules/harness.md`. Hermes Agent ([Nous Research](https://hermes-agent.nousresearch.com/)) gets `.hermes.md`, which Hermes auto-loads into its system prompt alongside `AGENTS.md`/`CLAUDE.md`/`.cursorrules` if present — project scope only, since Hermes has no documented global project-instructions equivalent (`--global --hermes` is a deliberate no-op with an explanatory message, not a guess). Both platforms are advisory-only (no hook/exit-code mechanism), matching Cursor/Copilot/Codex. `harness-everything/scripts/self-heal.js` and the uninstall path cover both new touchpoints. Updated `README.md`, `docs/architecture.md`, `VERIFICATION.md`, and `BENCHMARK_SOP.md` accordingly.
417
+
418
+ ### Fixed
419
+ - **Runtime state scattered across the tree**: 4 of the 12 scripts that touch `.harness/*` state (`context-compact.js`, `rule-of-3.js`, `rule-of-3-tracker.js`, `harness-everything/scripts/todo-cli.js`) resolved their state directory from `process.cwd()` directly instead of walking up to the git root the way the other 8 did — a hook firing with a `cwd` that wasn't the repo root would create a fresh, orphaned `.harness/` wherever it stood. All state-path resolution is now centralized in one helper (`hooks/scripts/lib/harness-state.js`), so every script agrees on where state lives.
420
+
421
+ ### Changed
422
+ - **Runtime state moved to `.claude/harness-state/`, scoped per Claude Code session**: `.harness/` mixed two unrelated things — the installer's local skill-copy target (`.harness/skills/`, a peer of `.cursor/skills`/`.github/skills`, untouched by this change) and pure runtime state (handoff/verification timestamps, circuit-breaker counters). The latter now lives at `.claude/harness-state/`. Hook-owned files (`handoff-state.json`, `stop-gate-state.json`, `subagent-scope-state.json`, `rule-of-3-state.json`, `context-compact-state.json`, `atomic-commit-state.json`, `zoom-out-report.md`) are scoped under `sessions/<session_id>/`, so two Claude Code sessions open on the same repo no longer share — and stomp — each other's edit/verify timestamps or breaker counts. `contracts/*.json` (written proactively by fable-orchestrator, which has no clean way to learn its own `session_id`) and `todo-state.json` (written via a plain CLI call, not a hook) stay shared across sessions, matching prior behavior — collision there is a narrower, lower-stakes edge case than the timestamp/counter files. `rule-of-3.js` keeps its no-stdin fast path for the common case (nobody's breaker tripped anywhere) via a cheap scan across session directories, only paying to read the hook payload once some session actually trips. `bootstrap.js` now also prunes session directories untouched for 14+ days, since nothing else purges them the way an OS temp directory would. `scripts/installer.js uninstall` removes `.claude/harness-state/` alongside the existing `.harness/` cleanup. Updated `VERIFICATION.md`, `docker-verify.sh`, `docs/architecture.md`, `fable-mode/CONTRACT-FORMAT.md`, `fable-mode/agents/fable-orchestrator.md`, and all affected `SKILL.md` state-mutation references accordingly.
423
+
424
+ ## [0.2.0-alpha] - 2026-07-22
425
+
426
+ ### Added
427
+ - **`skill-creator` skill**: merges principles from `mattpocock-skills/writing-great-skills` (predictability, information hierarchy, pruning, leading words, failure modes) and Anthropic's `skill-creator` (anatomy, progressive disclosure, testing workflow) into a Harness-native authoring/audit/testing workflow, reconciled against the existing Skill Contract convention rather than replacing it. Ships with a Quality Checklist and a Dynamic Skill Generation Contract that `self-evolve` now requires before packaging a session insight into a durable skill (written to `.harness/skills/generated/`, with `draft -> active -> deprecated` lifecycle metadata). Registered in `harness-everything/SKILL.md` §5 and `tier-router.js`'s skill-authoring keyword block.
428
+ - `docs/workflows/skill-creator.md`, matching the existing per-skill workflow-diagram convention (Behavior Workflow / Triggering & Routing Path / Real-World Use Case / Verification Check).
429
+ - **Skill Contract coverage**: All 25 `SKILL.md` files now carry a `📋 Skill Contract` table (Trigger/Input, Expected Output, State Mutations, Enforcement Gate) - up from 10/25.
430
+ - **Behavioral test wiring**: `eval-framework/behavioral-test.js` (the `todo-cli.js` state-machine E2E test) is now actually executed as Phase 3 of `npm test` / `self-regression.js`. It previously existed but was never invoked by any script, so it never ran automatically.
431
+
432
+ ### Fixed
433
+ - **Installer uninstall safety**: `scripts/installer.js uninstall -y` no longer implicitly wipes global state (`~/.agents`, VS Code global prompts, global `.claude`/`.cursorrules`) just because it happens to detect a prior global install. Global removal now requires an explicit `--global`/`-g` flag, matching the interactive flow's existing unchecked-by-default behavior. The bug spanned two independent code paths (config removal and skill removal); both are fixed. Found via live testing on 2026-07-21 - a bare `uninstall -y` run from an unrelated test repo deleted real global Harness state.
434
+ - **Cross-file duplication**: the 33-line "ADHD-Friendly Output Shaping" block was duplicated verbatim across `install-cognitive-os/SKILL.md`, `harness-everything/SKILL.md`, and `AGENTS.md`. Consolidated to a single source (`install-cognitive-os`), with the other two replaced by a one-line pointer.
435
+ - **`tier-router.js` description drift**: six skills (`environment-detection`, `verify-before-claim`, `verification-loop`, `using-git-worktrees`, `fable-mode`, `grill-with-docs`) had inconsistently reworded one-line descriptions across the file's separate keyword blocks - including one outright inaccurate description of `verify-before-claim` (mislabeled as validating test assertions instead of external framework/API claims). Unified to one wording per skill everywhere it appears.
436
+ - `skill-style/SKILL.md`: removed a large copy-paste duplication of its own Skill Contract format example and Tone & Voice section.
437
+ - `AGENTS.md`: fixed a mislabeled `# Copilot Instructions` heading (the file is Codex's `AGENTS.md`, not Copilot's `.github/copilot-instructions.md`).
438
+ - `harness-everything/SKILL.md`: fixed a dangling pointer to a non-existent `harness-everything/adhd-output-shaping` path.
439
+
440
+ ### Documentation
441
+ - **Skill quality audit**: Added `docs/reports/skill-quality-audit-writing-great-skills-2026-07-22.md`, a rule-based audit of all `SKILL.md` files against `mattpocock-skills/writing-great-skills` and Anthropic's `skill-creator`, with file:line evidence for every finding, a routing-consistency verification for the `install-cognitive-os` / `todo-driven-workflow` / `self-evolve` triad, and a record of the fixes applied above.
442
+ - **External evaluation report**: Added `docs/reports/evaluation-report-gemini-3.1-pro-2026-07-21.md`, an independent strict audit scoring the system 2-4/10 across the five core verification criteria (skill contract completeness, routing accuracy, test coverage, configuration balance, workflow conformance). The router fix (`f87bf34`) and the Skill Contract rollout (`7b2d04f`, completed above) were made in direct response to its findings.
443
+
444
+ ### Corrected
445
+ - Removed a changelog entry from 2026-07-21 that claimed a self-authored "9.0/10 (Excellent)" evaluation and referenced `docs/reports/evaluation-report-harness-strict-2026-07-21.md`. That report was only ever committed on an unmerged branch (`test-fresh-env`) and never existed on `main`; several of its "PASS" rows were self-reported as untestable ("stdin not a TTY, cannot test directly") rather than actually run - an excuse that doesn't hold, since the same mechanism checks run fine over stdin in practice (see VERIFICATION.md §2). The external Gemini audit above is the only evaluation report that exists on `main`.
446
+
447
+ ## [0.1.0-beta] - 2026-07-20
448
+
449
+ ### Added
450
+ - Implemented strict boundaries and self-healing mechanisms for Harness core.
451
+ - Added interactive setup and modular skill installation to the installer.
452
+
453
+ ### Changed
454
+ - Promoted to beta release for broader testing and validation of the Harness OS capabilities.
455
+ - Renamed references from `harness-skills` to `harness-everything` across the codebase.
456
+
457
+ ### Documentation
458
+ - Updated `git-commit` guidelines to disallow blank lines between bullet points in the Angular style guide.
459
+
460
+ ## [0.1.0-alpha] - 2026-07-20
461
+
462
+ This is the initial alpha release of **Harness OS** — a lightweight, local behavior and orchestration runtime that wraps around AI development sessions to enforce self-regulation, prevent token-wasting infinite loops, and eliminate environment hallucinations.
463
+
464
+ ### Added
465
+
466
+ #### 1. Core Behavior Layer & Guards (Circuit Breaker & Context Safety)
467
+ - **`rule-of-3`**: Fail-safe circuit breaker. Tracks command failure signatures. If a command/test fails 3 times with the exact same signature, it locks mutating tools and triggers the **Zoom-Out Reflection Protocol**, requiring a structured diagnosis report (`zoom-out-report.md`) to release or escalates to a human.
468
+ - **`boundary-guard`**: Limits oversized file reads (preventing >600KB reads) and logs warnings to shield the model from "lost-in-the-middle" context degradation.
469
+ - **`stop-gate`**: Bounces the end of an edit turn once to ensure that file changes are always verified by a compiler/test command.
470
+ - **`subagent-scope-guard`**: Protects out-of-scope files from being accidentally modified by background or subagent processes.
471
+ - **`state-persist` (WAL)**: Write-Ahead Logs that preserve agent failure signatures and recovery status across tool invocations.
472
+
473
+ #### 2. Task Routing Engine
474
+ - **`tier-router`**: Triages user requests into three precise execution tiers:
475
+ - **Tier 1 (Direct Edit)**: Small bugfixes, typos, or single-file changes.
476
+ - **Tier 2 (TDD Red-Green-Refactor)**: Standard features requiring tests and validation loops.
477
+ - **Tier 3 (Macro Multi-Agent Flow)**: Comprehensive architectural refactoring requiring multi-agent delegation.
478
+
479
+ #### 3. Environment Detection & Preflight Audit
480
+ - **`preflight`**: Automatically executes at session startup to print a diagnostic block identifying the Host OS (Windows/macOS/Linux), active shell, and package managers, neutralizing path and shell command hallucinations.
481
+
482
+ #### 4. Multi-Agent Scaffolding & Specialized Workflows
483
+ - **Multi-agent scaffolding**: Templates and workflows for spinning up context-specific specialized subagents (`backend-developer`, `memory-keeper`, `requirement-analyzer`, etc.).
484
+ - **`fable-mode`**: Specialized multi-agent orchestrator for bulk text processing, validation, and verification (with Orchestrator, Verifier, and specialized Worker agent roles).
485
+
486
+ #### 5. Evaluation & Verification Suite
487
+ - **`eval-framework`**: Automated evaluation cases (case 1 to 5) covering multiple complexity levels and support for multi-language (en/zh) prompt classification.
488
+ - **`VERIFICATION.md` & `docker-verify.sh`**: A comprehensive mechanism verification test suite that locally executes sandbox environment simulations to prove terminal blocking and self-recovery behaviors.