harness-everything 0.3.6 → 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 (573) hide show
  1. package/.agents/plugins/marketplace.json +20 -0
  2. package/.claude-plugin/marketplace.json +1 -1
  3. package/.claude-plugin/plugin.json +8 -7
  4. package/.github/workflows/ci.yml +23 -18
  5. package/.github/workflows/release.yml +53 -27
  6. package/.releaserc.json +113 -0
  7. package/AGENTS.md +34 -23
  8. package/BENCHMARK_SOP.md +38 -18
  9. package/CHANGELOG.md +194 -3
  10. package/CONTRIBUTING.md +17 -4
  11. package/PRIVACY.md +25 -0
  12. package/README.md +118 -87
  13. package/RELEASING.md +82 -0
  14. package/SUPPORT.md +27 -0
  15. package/TERMS.md +21 -0
  16. package/VERIFICATION.md +175 -286
  17. package/behavioral-evals/README.md +21 -0
  18. package/behavioral-evals/case-validator.js +194 -0
  19. package/behavioral-evals/cases/baseline-environment-detection.yaml +21 -0
  20. package/behavioral-evals/cases/baseline-eval-harness.yaml +27 -0
  21. package/behavioral-evals/cases/baseline-fable-discipline.yaml +31 -0
  22. package/behavioral-evals/cases/baseline-find-skills-exposure.yaml +49 -0
  23. package/behavioral-evals/cases/baseline-find-skills.yaml +21 -0
  24. package/behavioral-evals/cases/baseline-git-commit.yaml +2 -2
  25. package/behavioral-evals/cases/baseline-install-cognitive-os.yaml +24 -0
  26. package/behavioral-evals/cases/baseline-multi-agent-workspace.yaml +28 -0
  27. package/behavioral-evals/cases/baseline-rewrite-commits.yaml +34 -0
  28. package/behavioral-evals/cases/baseline-self-evolve.yaml +31 -0
  29. package/behavioral-evals/cases/baseline-skill-creator.yaml +20 -0
  30. package/behavioral-evals/cases/baseline-skill-style.yaml +21 -0
  31. package/behavioral-evals/cases/baseline-to-spec.yaml +34 -0
  32. package/behavioral-evals/cases/baseline-to-tickets.yaml +24 -0
  33. package/behavioral-evals/cases/baseline-todo-driven-workflow.yaml +32 -0
  34. package/behavioral-evals/cases/baseline-using-git-worktrees.yaml +15 -0
  35. package/behavioral-evals/cases/breaker-zoom-out-after-3.yaml +2 -2
  36. package/behavioral-evals/cases/pressure-complexity-skip.yaml +2 -2
  37. package/behavioral-evals/cases/pressure-scope-bypass.yaml +7 -2
  38. package/behavioral-evals/cases/pressure-sunk-cost-retry.yaml +7 -4
  39. package/behavioral-evals/cases/scope-discipline.yaml +2 -1
  40. package/behavioral-evals/cases/verify-before-done.yaml +7 -5
  41. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/case.yaml +31 -0
  42. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/historical-case.yaml +31 -0
  43. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/provenance.json +42 -0
  44. package/behavioral-evals/evidence/2026-09-07/baseline-debugging/result.sanitized.json +20 -0
  45. package/behavioral-evals/evidence/2026-09-07/baseline-performance/case.yaml +34 -0
  46. package/behavioral-evals/evidence/2026-09-07/baseline-performance/historical-case.yaml +34 -0
  47. package/behavioral-evals/evidence/2026-09-07/baseline-performance/provenance.json +42 -0
  48. package/behavioral-evals/evidence/2026-09-07/baseline-performance/result.sanitized.json +20 -0
  49. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/case.yaml +28 -0
  50. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/historical-case.yaml +28 -0
  51. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/provenance.json +42 -0
  52. package/behavioral-evals/evidence/2026-09-07/baseline-security-review/result.sanitized.json +20 -0
  53. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/case.yaml +33 -0
  54. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/historical-case.yaml +33 -0
  55. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/provenance.json +42 -0
  56. package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/result.sanitized.json +20 -0
  57. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/case.yaml +28 -0
  58. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/historical-case.yaml +18 -0
  59. package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/provenance.json +30 -0
  60. package/behavioral-evals/evidence/2026-09-07/live-run-blocker.md +16 -0
  61. package/behavioral-evals/evidence/2026-09-07/manifest.json +88 -0
  62. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/case.yaml +33 -0
  63. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/historical-case.yaml +28 -0
  64. package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/provenance.json +30 -0
  65. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/case.yaml +50 -0
  66. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/historical-case.yaml +50 -0
  67. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/provenance.json +42 -0
  68. package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/result.sanitized.json +20 -0
  69. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/case.yaml +35 -0
  70. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/historical-case.yaml +35 -0
  71. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/provenance.json +42 -0
  72. package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/result.sanitized.json +20 -0
  73. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/case.yaml +43 -0
  74. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/historical-case.yaml +43 -0
  75. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/provenance.json +42 -0
  76. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/result.sanitized.json +24 -0
  77. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/case.yaml +43 -0
  78. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/historical-case.yaml +43 -0
  79. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/provenance.json +42 -0
  80. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/result.sanitized.json +20 -0
  81. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/case.yaml +43 -0
  82. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/historical-case.yaml +43 -0
  83. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/provenance.json +42 -0
  84. package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/result.sanitized.json +24 -0
  85. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/case.yaml +50 -0
  86. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/historical-case.yaml +47 -0
  87. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/provenance.json +42 -0
  88. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/result.sanitized.json +24 -0
  89. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/case.yaml +50 -0
  90. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/historical-case.yaml +47 -0
  91. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/provenance.json +42 -0
  92. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/result.sanitized.json +20 -0
  93. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/case.yaml +50 -0
  94. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/historical-case.yaml +47 -0
  95. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/provenance.json +42 -0
  96. package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/result.sanitized.json +24 -0
  97. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/case.yaml +30 -0
  98. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/historical-case.yaml +23 -0
  99. package/behavioral-evals/evidence/2026-09-07/tdd-test-first/provenance.json +30 -0
  100. package/behavioral-evals/evidence/2026-09-07/triage-matrix.json +426 -0
  101. package/behavioral-evals/evidence/2026-09-07/triage-matrix.md +24 -0
  102. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/case.yaml +19 -0
  103. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/historical-case.yaml +18 -0
  104. package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/provenance.json +30 -0
  105. package/behavioral-evals/evidence/2026-09-07/verify-before-done/case.yaml +33 -0
  106. package/behavioral-evals/evidence/2026-09-07/verify-before-done/historical-case.yaml +31 -0
  107. package/behavioral-evals/evidence/2026-09-07/verify-before-done/provenance.json +42 -0
  108. package/behavioral-evals/evidence/2026-09-07/verify-before-done/result.sanitized.json +20 -0
  109. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/case.yaml +33 -0
  110. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/historical-case.yaml +31 -0
  111. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/provenance.json +42 -0
  112. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/result.sanitized.json +20 -0
  113. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/case.yaml +33 -0
  114. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/historical-case.yaml +31 -0
  115. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/provenance.json +42 -0
  116. package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/result.sanitized.json +20 -0
  117. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/case.yaml +33 -0
  118. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/historical-case.yaml +33 -0
  119. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/provenance.json +42 -0
  120. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/result.sanitized.json +480 -0
  121. package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/transcript.sanitized.jsonl +95 -0
  122. package/behavioral-evals/evidence-tool.js +443 -0
  123. package/behavioral-evals/fixtures/claude-denied.jsonl +3 -0
  124. package/behavioral-evals/fixtures/claude-legacy.json +1 -0
  125. package/behavioral-evals/fixtures/claude-oral-only.jsonl +2 -0
  126. package/behavioral-evals/fixtures/claude-success.jsonl +5 -0
  127. package/behavioral-evals/fixtures/claude-truncated.jsonl +3 -0
  128. package/behavioral-evals/fixtures/opencode-success.jsonl +6 -0
  129. package/behavioral-evals/results/2026-08-31-baseline-add-feature.json +20 -0
  130. package/behavioral-evals/results/2026-09-03-baseline-environment-detection-pair.json +133 -0
  131. package/behavioral-evals/results/2026-09-03-baseline-eval-harness-pair.json +141 -0
  132. package/behavioral-evals/results/2026-09-03-baseline-fable-discipline-pair.json +149 -0
  133. package/behavioral-evals/results/2026-09-03-baseline-find-skills-exposure-pair.json +141 -0
  134. package/behavioral-evals/results/2026-09-03-baseline-find-skills-pair.json +141 -0
  135. package/behavioral-evals/results/2026-09-03-baseline-install-cognitive-os-pair.json +133 -0
  136. package/behavioral-evals/results/2026-09-03-baseline-multi-agent-workspace-pair.json +141 -0
  137. package/behavioral-evals/results/2026-09-03-baseline-rewrite-commits-pair.json +95 -0
  138. package/behavioral-evals/results/2026-09-03-baseline-self-evolve-pair.json +141 -0
  139. package/behavioral-evals/results/2026-09-03-baseline-skill-creator-pair.json +141 -0
  140. package/behavioral-evals/results/2026-09-03-baseline-skill-style-pair.json +133 -0
  141. package/behavioral-evals/results/2026-09-03-baseline-to-spec-pair.json +133 -0
  142. package/behavioral-evals/results/2026-09-03-baseline-to-tickets-pair.json +141 -0
  143. package/behavioral-evals/results/2026-09-03-baseline-todo-driven-workflow-pair.json +141 -0
  144. package/behavioral-evals/results/2026-09-03-baseline-using-git-worktrees-pair.json +133 -0
  145. package/behavioral-evals/results/2026-09-03-summary-both.json +41 -0
  146. package/behavioral-evals/results/2026-09-04-baseline-find-skills-pair.json +141 -0
  147. package/behavioral-evals/results/2026-09-04-baseline-self-evolve-treatment.json +80 -0
  148. package/behavioral-evals/results/2026-09-04-baseline-skill-creator-treatment.json +80 -0
  149. package/behavioral-evals/results/2026-09-04-summary-both.json +41 -0
  150. package/behavioral-evals/run-with-plugin.js +15 -31
  151. package/behavioral-evals/run.js +446 -105
  152. package/behavioral-evals/transcript-parser.js +591 -0
  153. package/bin/cli.js +24 -12
  154. package/ci/ab-test-cases/grill-me-adversarial.yaml +14 -4
  155. package/ci/ab-test-cases/tdd-test-first.yaml +13 -6
  156. package/ci/ab-test-cases/verification-loop-gates.yaml +20 -7
  157. package/ci/ab-test-cases/verify-before-claim-cites.yaml +7 -6
  158. package/ci/ab-test-harness.js +113 -38
  159. package/ci/action-gate-platform-doc.test.js +31 -0
  160. package/ci/action-gate.test.js +260 -0
  161. package/ci/cases/case2.json +2 -2
  162. package/ci/consistency-check.js +51 -5
  163. package/ci/description-collision.js +15 -6
  164. package/ci/disclosure-check.js +225 -0
  165. package/ci/doc-capability-consistency.test.js +180 -0
  166. package/ci/fixtures/phase4/parallel-disjoint.stages.json +32 -0
  167. package/ci/fixtures/phase4/parallel-read-only.stages.json +32 -0
  168. package/ci/installer-roundtrip.test.js +159 -0
  169. package/ci/invariant-routing.test.js +74 -0
  170. package/ci/issue99-runtime.test.js +218 -0
  171. package/ci/mechanism-2aa-codex-action-gate-policy.test.js +117 -0
  172. package/ci/mechanism-2ab-openai-plugin-sync-integrity.test.js +80 -0
  173. package/ci/mechanism-2j-behavioral-runner.test.js +43 -1
  174. package/ci/mechanism-2k-reference-check.test.js +57 -2
  175. package/ci/mechanism-2l-multi-agent-workspace.test.js +202 -6
  176. package/ci/mechanism-2m-self-repo-guard.test.js +65 -0
  177. package/ci/mechanism-2n-opencode-plugin.test.js +461 -0
  178. package/ci/mechanism-2o-state-home-isolation.test.js +183 -0
  179. package/ci/mechanism-2p-installer-links.test.js +183 -0
  180. package/ci/mechanism-2q-installer-global-shared-store.test.js +132 -0
  181. package/ci/mechanism-2r-uninstall-flags.test.js +148 -0
  182. package/ci/mechanism-2s-tdd-quality.test.js +203 -0
  183. package/ci/mechanism-2t-disclosure.test.js +90 -0
  184. package/ci/mechanism-2t-evidence-triage.test.js +200 -0
  185. package/ci/mechanism-2t-issue-20.test.js +75 -0
  186. package/ci/mechanism-2t-platform-skill-targets.test.js +164 -0
  187. package/ci/mechanism-2t-transcript-parser.test.js +179 -0
  188. package/ci/mechanism-2t-workspace-identity.test.js +200 -0
  189. package/ci/mechanism-2u-issue-42-regressions.test.js +239 -0
  190. package/ci/mechanism-2u-issue-44.test.js +35 -0
  191. package/ci/mechanism-2v-verifier-boundaries.test.js +138 -0
  192. package/ci/mechanism-2w-platform-compatibility.test.js +148 -0
  193. package/ci/mechanism-2x-release-automation.test.js +157 -0
  194. package/ci/mechanism-2x-release-commit-message.test.js +66 -0
  195. package/ci/mechanism-2y-release-tooling-compat.test.js +47 -0
  196. package/ci/mechanism-2z-claude-plugin-manifest.test.js +29 -0
  197. package/ci/mutation-check.js +53 -0
  198. package/ci/mutation-loader.js +57 -0
  199. package/ci/negative-controls.js +76 -46
  200. package/ci/openai-plugin-package.test.js +182 -0
  201. package/ci/openai-plugin-runtime.test.js +175 -0
  202. package/ci/openai-plugin-submission.test.js +101 -0
  203. package/ci/phase4-ensemble-memory.test.js +307 -0
  204. package/ci/reference-check.js +73 -25
  205. package/ci/release-consistency-check.js +24 -1
  206. package/ci/router-phase2-safety.test.js +81 -0
  207. package/ci/router-workflow-plan.test.js +264 -0
  208. package/ci/routing-check.js +6 -5
  209. package/ci/runner.js +6 -5
  210. package/ci/skill-routing-check.js +48 -11
  211. package/ci/test-behavioral-case-validation.js +62 -0
  212. package/ci/test-helper.js +10 -0
  213. package/ci/workflow-plan-consumers-edge.test.js +72 -0
  214. package/ci/workflow-plan-consumers.test.js +276 -0
  215. package/docs/architecture.md +137 -57
  216. package/docs/audit.md +22 -20
  217. package/docs/codex-action-gate.md +90 -0
  218. package/docs/issue-20-rollup.md +47 -0
  219. package/docs/mechanism-first-skill-mesh.md +22 -20
  220. package/docs/openai-plugin.md +118 -0
  221. package/docs/philosophy.md +28 -17
  222. package/docs/platform-capabilities.md +73 -0
  223. package/docs/platform-compatibility.json +270 -0
  224. package/docs/reflection.md +37 -22
  225. package/docs/release-evidence.md +25 -0
  226. package/docs/routing.md +157 -44
  227. package/docs/security-audit.md +38 -0
  228. package/docs/troubleshooting.md +82 -46
  229. package/docs/verifier-boundaries.md +45 -0
  230. package/docs/workflows/fable-mode.md +77 -21
  231. package/docs/workflows/find-skills.md +40 -0
  232. package/docs/workflows/grill-with-docs.md +2 -2
  233. package/docs/workflows/multi-agent-workspace.md +22 -10
  234. package/docs/workflows/self-evolve.md +33 -0
  235. package/docs/workflows/tdd.md +36 -0
  236. package/docs/workflows/todo-driven-workflow.md +33 -0
  237. package/environment-detection/SKILL.md +3 -3
  238. package/eval-harness/SKILL.md +7 -7
  239. package/eval-harness/scripts/evaluate.js +12 -10
  240. package/evals/evaluation-reports.md +14 -0
  241. package/evals/harness-everything/tasks/positive-tier1.yaml +1 -1
  242. package/evals/harness-everything/tasks/positive-tier2.yaml +1 -1
  243. package/evals/harness-everything/tasks/positive-tier3.yaml +1 -1
  244. package/evals/install-cognitive-os/tasks/positive-trigger.yaml +1 -1
  245. package/fable-discipline/SKILL.md +2 -2
  246. package/fable-mode/CONTRACT-FORMAT.md +147 -33
  247. package/fable-mode/SKILL.md +3 -3
  248. package/fable-mode/agents/fable-orchestrator.md +95 -35
  249. package/fable-mode/execution-guardrails/SKILL.md +2 -2
  250. package/fable-mode/fable-haiku/SKILL.md +3 -3
  251. package/fable-mode/fable-opus/SKILL.md +3 -3
  252. package/fable-mode/fable-sonnet/SKILL.md +3 -3
  253. package/fable-mode/scripts/ensemble-review.js +371 -0
  254. package/fable-mode/scripts/model-selector.js +134 -3
  255. package/fable-mode/scripts/workflow-plan-consumer.js +337 -0
  256. package/find-skills/SKILL.md +5 -5
  257. package/find-skills/references/discovery-flow.md +1 -1
  258. package/find-skills/scripts/use-skill.js +7 -1
  259. package/git-commit/SKILL.md +4 -11
  260. package/grill-me/SKILL.md +5 -5
  261. package/grill-with-docs/SKILL.md +7 -7
  262. package/grill-with-docs/references/session-playbook.md +6 -4
  263. package/harness-everything/SKILL.md +23 -22
  264. package/harness-everything/references/router-workflow-plan.md +128 -0
  265. package/harness-everything/references/triage-and-tiers.md +173 -96
  266. package/harness-everything/schemas/router-task-shape.schema.json +126 -0
  267. package/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
  268. package/harness-everything/scripts/bootstrap.js +13 -4
  269. package/harness-everything/scripts/ensemble-policy.js +102 -0
  270. package/harness-everything/scripts/kernel-router.js +212 -0
  271. package/harness-everything/scripts/router-contract.js +612 -0
  272. package/harness-everything/scripts/self-heal.js +29 -20
  273. package/harness-everything/scripts/tier-router.js +346 -221
  274. package/hooks/hooks.json +60 -15
  275. package/hooks/scripts/action-gate-rules.json +77 -0
  276. package/hooks/scripts/action-gate.js +528 -0
  277. package/hooks/scripts/atomic-commit-check.js +5 -5
  278. package/hooks/scripts/codex-action-gate-post.js +46 -0
  279. package/hooks/scripts/codex-permission-request.js +140 -0
  280. package/hooks/scripts/context-compact.js +4 -3
  281. package/hooks/scripts/contract-test.js +118 -51
  282. package/hooks/scripts/lib/fable-contracts.js +121 -0
  283. package/hooks/scripts/lib/harness-state.js +164 -28
  284. package/hooks/scripts/lib/platforms/claude.js +45 -62
  285. package/hooks/scripts/lib/platforms/codex.js +35 -61
  286. package/hooks/scripts/lib/platforms/continue.js +7 -7
  287. package/hooks/scripts/lib/platforms/copilot.js +29 -53
  288. package/hooks/scripts/lib/platforms/hermes.js +71 -20
  289. package/hooks/scripts/openai-session-start.js +81 -0
  290. package/hooks/scripts/rule-of-3-tracker.js +9 -8
  291. package/hooks/scripts/rule-of-3.js +29 -21
  292. package/hooks/scripts/state-persist.js +5 -4
  293. package/hooks/scripts/stop-gate.js +2 -2
  294. package/hooks/scripts/subagent-scope-guard.js +144 -38
  295. package/hooks/scripts/subagent-start.js +19 -0
  296. package/hooks/scripts/subagent-stop.js +6 -0
  297. package/improve-codebase-architecture/SKILL.md +2 -4
  298. package/improve-codebase-architecture/references/README.md +16 -0
  299. package/install-cognitive-os/SKILL.md +28 -22
  300. package/multi-agent-workspace/SKILL.md +16 -15
  301. package/multi-agent-workspace/references/architecture-guide.md +13 -9
  302. package/multi-agent-workspace/references/orchestration.md +39 -22
  303. package/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
  304. package/multi-agent-workspace/scripts/index_memory.js +79 -26
  305. package/multi-agent-workspace/scripts/path-boundary.js +59 -0
  306. package/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
  307. package/multi-agent-workspace/scripts/scaffold.js +258 -103
  308. package/multi-agent-workspace/templates/AGENTS.md +20 -0
  309. package/multi-agent-workspace/workflows/03-generation.md +8 -10
  310. package/multi-agent-workspace/workflows/04-launcher.md +5 -5
  311. package/opencode-plugin/README.md +114 -71
  312. package/opencode-plugin/hooks/verify.js +62 -12
  313. package/opencode-plugin/index.mjs +547 -0
  314. package/opencode-plugin/plugin.json +4 -12
  315. package/package.json +16 -3
  316. package/plugins/harness-everything/.codex-plugin/plugin.json +39 -0
  317. package/plugins/harness-everything/hooks/hooks.json +197 -0
  318. package/plugins/harness-everything/hooks/scripts/action-gate-rules.json +77 -0
  319. package/plugins/harness-everything/hooks/scripts/action-gate.js +528 -0
  320. package/plugins/harness-everything/hooks/scripts/atomic-commit-check.js +68 -0
  321. package/plugins/harness-everything/hooks/scripts/boundary-guard.js +55 -0
  322. package/plugins/harness-everything/hooks/scripts/codex-action-gate-post.js +46 -0
  323. package/plugins/harness-everything/hooks/scripts/codex-permission-request.js +140 -0
  324. package/plugins/harness-everything/hooks/scripts/context-compact.js +115 -0
  325. package/plugins/harness-everything/hooks/scripts/contract-test.js +146 -0
  326. package/plugins/harness-everything/hooks/scripts/depth-guard.js +65 -0
  327. package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +121 -0
  328. package/plugins/harness-everything/hooks/scripts/lib/harness-state.js +275 -0
  329. package/plugins/harness-everything/hooks/scripts/lib/platforms/claude.js +168 -0
  330. package/plugins/harness-everything/hooks/scripts/lib/platforms/codex.js +88 -0
  331. package/plugins/harness-everything/hooks/scripts/lib/platforms/continue.js +91 -0
  332. package/plugins/harness-everything/hooks/scripts/lib/platforms/copilot.js +85 -0
  333. package/plugins/harness-everything/hooks/scripts/lib/platforms/cursor.js +89 -0
  334. package/plugins/harness-everything/hooks/scripts/lib/platforms/hermes.js +108 -0
  335. package/plugins/harness-everything/hooks/scripts/lib/platforms/index.js +17 -0
  336. package/plugins/harness-everything/hooks/scripts/lib/platforms/worktrees.js +20 -0
  337. package/plugins/harness-everything/hooks/scripts/lib/workspace.js +290 -0
  338. package/plugins/harness-everything/hooks/scripts/openai-session-start.js +81 -0
  339. package/plugins/harness-everything/hooks/scripts/reset-circuit-breaker.js +30 -0
  340. package/plugins/harness-everything/hooks/scripts/rule-of-3-tracker.js +125 -0
  341. package/plugins/harness-everything/hooks/scripts/rule-of-3.js +195 -0
  342. package/plugins/harness-everything/hooks/scripts/state-persist.js +100 -0
  343. package/plugins/harness-everything/hooks/scripts/stop-gate.js +80 -0
  344. package/plugins/harness-everything/hooks/scripts/subagent-scope-guard.js +194 -0
  345. package/plugins/harness-everything/hooks/scripts/subagent-start.js +19 -0
  346. package/plugins/harness-everything/hooks/scripts/subagent-stop.js +6 -0
  347. package/plugins/harness-everything/hooks/session-start.js +81 -0
  348. package/plugins/harness-everything/plugin.json +43 -0
  349. package/plugins/harness-everything/scripts/lib/advisory-text.js +174 -0
  350. package/plugins/harness-everything/skills/environment-detection/SKILL.md +41 -0
  351. package/plugins/harness-everything/skills/environment-detection/references/shell-syntax-rules.md +76 -0
  352. package/plugins/harness-everything/skills/environment-detection/scripts/preflight.js +103 -0
  353. package/plugins/harness-everything/skills/eval-harness/SKILL.md +42 -0
  354. package/plugins/harness-everything/skills/eval-harness/references/scoring-rubric.md +68 -0
  355. package/plugins/harness-everything/skills/eval-harness/scripts/evaluate.js +79 -0
  356. package/plugins/harness-everything/skills/fable-discipline/SKILL.md +41 -0
  357. package/plugins/harness-everything/skills/fable-discipline/references/discipline-rules.md +22 -0
  358. package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +165 -0
  359. package/plugins/harness-everything/skills/fable-mode/SKILL.md +39 -0
  360. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +159 -0
  361. package/plugins/harness-everything/skills/fable-mode/agents/fable-verifier.md +32 -0
  362. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-haiku.md +52 -0
  363. package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-sonnet.md +53 -0
  364. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +43 -0
  365. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
  366. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +36 -0
  367. package/plugins/harness-everything/skills/fable-mode/fable-haiku/references/routing-notes.md +26 -0
  368. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +36 -0
  369. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +36 -0
  370. package/plugins/harness-everything/skills/fable-mode/model-matrix.json +32 -0
  371. package/plugins/harness-everything/skills/fable-mode/references/execution-phases.md +37 -0
  372. package/plugins/harness-everything/skills/fable-mode/references/model-matrix.md +39 -0
  373. package/plugins/harness-everything/skills/fable-mode/scripts/ensemble-review.js +371 -0
  374. package/plugins/harness-everything/skills/fable-mode/scripts/model-selector.js +260 -0
  375. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +337 -0
  376. package/plugins/harness-everything/skills/find-skills/SKILL.md +48 -0
  377. package/plugins/harness-everything/skills/find-skills/references/discovery-flow.md +102 -0
  378. package/plugins/harness-everything/skills/find-skills/scripts/use-skill.js +112 -0
  379. package/plugins/harness-everything/skills/git-commit/SKILL.md +38 -0
  380. package/plugins/harness-everything/skills/git-commit/guides/ANGULAR_STYLE.md +61 -0
  381. package/plugins/harness-everything/skills/git-commit/guides/COMMIT_GENERATION.md +24 -0
  382. package/plugins/harness-everything/skills/git-commit/guides/LANGUAGE_DETECTION.md +16 -0
  383. package/plugins/harness-everything/skills/git-commit/guides/MAIN_REPO.md +15 -0
  384. package/plugins/harness-everything/skills/git-commit/guides/SUBMODULES.md +27 -0
  385. package/plugins/harness-everything/skills/git-commit/references/commit-flow.md +30 -0
  386. package/plugins/harness-everything/skills/grill-me/SKILL.md +43 -0
  387. package/plugins/harness-everything/skills/grill-me/references/grilling-playbook.md +38 -0
  388. package/plugins/harness-everything/skills/grill-with-docs/ADR-FORMAT.md +47 -0
  389. package/plugins/harness-everything/skills/grill-with-docs/CONTEXT-FORMAT.md +63 -0
  390. package/plugins/harness-everything/skills/grill-with-docs/SKILL.md +41 -0
  391. package/plugins/harness-everything/skills/grill-with-docs/references/session-playbook.md +99 -0
  392. package/plugins/harness-everything/skills/harness-everything/SKILL.md +43 -0
  393. package/plugins/harness-everything/skills/harness-everything/examples/README.md +9 -0
  394. package/plugins/harness-everything/skills/harness-everything/examples/todo-workflow.md +22 -0
  395. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +128 -0
  396. package/plugins/harness-everything/skills/harness-everything/references/skill-registry.md +39 -0
  397. package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +193 -0
  398. package/plugins/harness-everything/skills/harness-everything/schemas/router-task-shape.schema.json +126 -0
  399. package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
  400. package/plugins/harness-everything/skills/harness-everything/scripts/bootstrap.js +212 -0
  401. package/plugins/harness-everything/skills/harness-everything/scripts/ensemble-policy.js +102 -0
  402. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +212 -0
  403. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +612 -0
  404. package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +320 -0
  405. package/plugins/harness-everything/skills/harness-everything/scripts/self-heal.js +250 -0
  406. package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +459 -0
  407. package/plugins/harness-everything/skills/harness-everything/scripts/verify-gate.js +100 -0
  408. package/plugins/harness-everything/skills/improve-codebase-architecture/SKILL.md +38 -0
  409. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/DEEPENING.md +37 -0
  410. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/HTML-REPORT.md +123 -0
  411. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -0
  412. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/LANGUAGE.md +53 -0
  413. package/plugins/harness-everything/skills/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
  414. package/plugins/harness-everything/skills/improve-codebase-architecture/references/README.md +16 -0
  415. package/plugins/harness-everything/skills/install-cognitive-os/SKILL.md +44 -0
  416. package/plugins/harness-everything/skills/install-cognitive-os/references/cognitive-loop.md +27 -0
  417. package/plugins/harness-everything/skills/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
  418. package/plugins/harness-everything/skills/multi-agent-workspace/SKILL.md +38 -0
  419. package/plugins/harness-everything/skills/multi-agent-workspace/examples/csharp-monorepo.md +123 -0
  420. package/plugins/harness-everything/skills/multi-agent-workspace/examples/typescript-cli.md +126 -0
  421. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-claude.md +77 -0
  422. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-codex.md +146 -0
  423. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-continue.md +38 -0
  424. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-copilot.md +74 -0
  425. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
  426. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
  427. package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/role-capabilities.md +108 -0
  428. package/plugins/harness-everything/skills/multi-agent-workspace/references/agency-agents.md +31 -0
  429. package/plugins/harness-everything/skills/multi-agent-workspace/references/architecture-guide.md +36 -0
  430. package/plugins/harness-everything/skills/multi-agent-workspace/references/orchestration.md +65 -0
  431. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/agency-catalog.js +190 -0
  432. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
  433. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/index_memory.js +104 -0
  434. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/path-boundary.js +59 -0
  435. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
  436. package/plugins/harness-everything/skills/multi-agent-workspace/scripts/scaffold.js +408 -0
  437. package/plugins/harness-everything/skills/multi-agent-workspace/templates/AGENTS.md +20 -0
  438. package/plugins/harness-everything/skills/multi-agent-workspace/templates/README.md +17 -0
  439. package/plugins/harness-everything/skills/multi-agent-workspace/templates/agent-launcher.md +68 -0
  440. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-csharp.md +56 -0
  441. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-polyglot.md +62 -0
  442. package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-ts.md +57 -0
  443. package/plugins/harness-everything/skills/multi-agent-workspace/templates/memory-keeper.md +37 -0
  444. package/plugins/harness-everything/skills/multi-agent-workspace/templates/requirement-analyzer.md +66 -0
  445. package/plugins/harness-everything/skills/multi-agent-workspace/templates/specialist-agent.md +34 -0
  446. package/plugins/harness-everything/skills/multi-agent-workspace/templates/task-verifier.md +56 -0
  447. package/plugins/harness-everything/skills/multi-agent-workspace/templates/tool-maker.md +33 -0
  448. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/01-init.md +22 -0
  449. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/02-analysis.md +23 -0
  450. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/03-generation.md +25 -0
  451. package/plugins/harness-everything/skills/multi-agent-workspace/workflows/04-launcher.md +16 -0
  452. package/plugins/harness-everything/skills/repo-docs/SKILL.md +42 -0
  453. package/plugins/harness-everything/skills/repo-docs/references/process-guide.md +60 -0
  454. package/plugins/harness-everything/skills/repo-docs/templates/agents-template.md +264 -0
  455. package/plugins/harness-everything/skills/repo-docs/templates/knowledge-agents-template.md +50 -0
  456. package/plugins/harness-everything/skills/repo-docs/templates/knowledge-readme-template.md +83 -0
  457. package/plugins/harness-everything/skills/repo-docs/templates/manual-recon.md +117 -0
  458. package/plugins/harness-everything/skills/repo-docs/templates/multi-skills-readme-template.md +72 -0
  459. package/plugins/harness-everything/skills/repo-docs/templates/product-agents-template.md +78 -0
  460. package/plugins/harness-everything/skills/repo-docs/templates/product-readme-template.md +95 -0
  461. package/plugins/harness-everything/skills/repo-docs/templates/readme-template.md +136 -0
  462. package/plugins/harness-everything/skills/repo-docs/templates/single-skill-readme-template.md +70 -0
  463. package/plugins/harness-everything/skills/repo-docs/templates/skills-agents-template.md +60 -0
  464. package/plugins/harness-everything/skills/rewrite-commits/SKILL.md +37 -0
  465. package/plugins/harness-everything/skills/rewrite-commits/references/workflow.md +18 -0
  466. package/plugins/harness-everything/skills/security-review/SKILL.md +47 -0
  467. package/plugins/harness-everything/skills/security-review/guides/OWASP-PATTERNS.md +31 -0
  468. package/plugins/harness-everything/skills/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
  469. package/plugins/harness-everything/skills/security-review/references/security-checklist.md +478 -0
  470. package/plugins/harness-everything/skills/security-review/scripts/audit-secrets.js +85 -0
  471. package/plugins/harness-everything/skills/self-evolve/SKILL.md +45 -0
  472. package/plugins/harness-everything/skills/self-evolve/references/memory-resolution.md +61 -0
  473. package/plugins/harness-everything/skills/self-evolve/scripts/persist-memory.js +272 -0
  474. package/plugins/harness-everything/skills/self-evolve/scripts/register-dynamic-skill.js +253 -0
  475. package/plugins/harness-everything/skills/self-evolve/scripts/self-regression.js +125 -0
  476. package/plugins/harness-everything/skills/skill-creator/SKILL.md +47 -0
  477. package/plugins/harness-everything/skills/skill-creator/references/authoring-workflow.md +14 -0
  478. package/plugins/harness-everything/skills/skill-creator/references/dynamic-generation-contract.md +21 -0
  479. package/plugins/harness-everything/skills/skill-creator/references/quality-checklist.md +16 -0
  480. package/plugins/harness-everything/skills/skill-creator/references/quality-principles.md +81 -0
  481. package/plugins/harness-everything/skills/skill-creator/references/testing-workflow.md +27 -0
  482. package/plugins/harness-everything/skills/skill-style/SKILL.md +42 -0
  483. package/plugins/harness-everything/skills/skill-style/references/style-guide.md +62 -0
  484. package/plugins/harness-everything/skills/tdd/SKILL.md +38 -0
  485. package/plugins/harness-everything/skills/tdd/fixtures/pass-evidence.json +100 -0
  486. package/plugins/harness-everything/skills/tdd/fixtures/quality-scenarios.json +20 -0
  487. package/plugins/harness-everything/skills/tdd/guides/deep-modules.md +33 -0
  488. package/plugins/harness-everything/skills/tdd/guides/interface-design.md +31 -0
  489. package/plugins/harness-everything/skills/tdd/guides/mocking.md +59 -0
  490. package/plugins/harness-everything/skills/tdd/guides/refactoring.md +10 -0
  491. package/plugins/harness-everything/skills/tdd/guides/tests.md +61 -0
  492. package/plugins/harness-everything/skills/tdd/references/core-discipline.md +51 -0
  493. package/plugins/harness-everything/skills/tdd/references/integration-testing.md +13 -0
  494. package/plugins/harness-everything/skills/tdd/references/quality-model.md +68 -0
  495. package/plugins/harness-everything/skills/tdd/references/unit-testing.md +15 -0
  496. package/plugins/harness-everything/skills/tdd/schemas/quality-evidence.schema.json +211 -0
  497. package/plugins/harness-everything/skills/tdd/schemas/quality-report.schema.json +110 -0
  498. package/plugins/harness-everything/skills/tdd/scripts/quality-gate.js +475 -0
  499. package/plugins/harness-everything/skills/to-spec/SKILL.md +40 -0
  500. package/plugins/harness-everything/skills/to-spec/references/process.md +77 -0
  501. package/plugins/harness-everything/skills/to-spec/scripts/check-project-docs.js +239 -0
  502. package/plugins/harness-everything/skills/to-spec/scripts/project-docs-resolver.js +111 -0
  503. package/plugins/harness-everything/skills/to-spec/templates/cli-reference.md +31 -0
  504. package/plugins/harness-everything/skills/to-spec/templates/dev-doc.md +27 -0
  505. package/plugins/harness-everything/skills/to-spec/templates/feature-spec.md +59 -0
  506. package/plugins/harness-everything/skills/to-spec/templates/schema-doc.md +31 -0
  507. package/plugins/harness-everything/skills/to-tickets/SKILL.md +42 -0
  508. package/plugins/harness-everything/skills/to-tickets/references/publishing-and-templates.md +97 -0
  509. package/plugins/harness-everything/skills/todo-driven-workflow/SKILL.md +42 -0
  510. package/plugins/harness-everything/skills/todo-driven-workflow/references/execution-guide.md +27 -0
  511. package/plugins/harness-everything/skills/using-git-worktrees/SKILL.md +49 -0
  512. package/plugins/harness-everything/skills/using-git-worktrees/references/workflow-details.md +108 -0
  513. package/plugins/harness-everything/skills/verification-loop/SKILL.md +46 -0
  514. package/plugins/harness-everything/skills/verification-loop/references/verification-phases.md +116 -0
  515. package/plugins/harness-everything/skills/verification-loop/templates/verification-report.template.md +15 -0
  516. package/plugins/harness-everything/skills/verify-before-claim/SKILL.md +43 -0
  517. package/plugins/harness-everything/skills/verify-before-claim/references/verification-guide.md +73 -0
  518. package/plugins/harness-everything/skills/zoom-out/SKILL.md +42 -0
  519. package/plugins/harness-everything/skills/zoom-out/references/circuit-breaker.md +66 -0
  520. package/plugins/harness-everything/skills/zoom-out/templates/zoom-out-report.template.md +20 -0
  521. package/repo-docs/SKILL.md +3 -7
  522. package/rewrite-commits/SKILL.md +2 -2
  523. package/scripts/build-openai-submission.js +158 -0
  524. package/scripts/installer.js +86 -11
  525. package/scripts/lib/advisory-text.js +25 -18
  526. package/scripts/lib/execution-contract.js +70 -0
  527. package/scripts/lib/manifest.js +34 -38
  528. package/scripts/lib/path-boundary.js +90 -0
  529. package/scripts/lib/skills.js +124 -70
  530. package/scripts/lib/workspace.js +269 -7
  531. package/scripts/sync-openai-plugin.js +91 -0
  532. package/scripts/sync-release-version.js +212 -0
  533. package/security-review/SKILL.md +4 -7
  534. package/security-review/scripts/audit-secrets.js +9 -8
  535. package/self-evolve/SKILL.md +9 -11
  536. package/self-evolve/references/memory-resolution.md +4 -1
  537. package/self-evolve/scripts/persist-memory.js +221 -88
  538. package/self-evolve/scripts/register-dynamic-skill.js +12 -10
  539. package/self-evolve/scripts/self-regression.js +23 -8
  540. package/skill-creator/SKILL.md +12 -14
  541. package/skill-creator/references/quality-checklist.md +1 -0
  542. package/skill-style/SKILL.md +4 -4
  543. package/skill-style/references/style-guide.md +29 -3
  544. package/submission/openai/README.md +67 -0
  545. package/submission/openai/listing.json +31 -0
  546. package/submission/openai/test-cases.json +61 -0
  547. package/tdd/SKILL.md +20 -26
  548. package/tdd/fixtures/pass-evidence.json +100 -0
  549. package/tdd/fixtures/quality-scenarios.json +20 -0
  550. package/tdd/references/core-discipline.md +2 -0
  551. package/tdd/references/integration-testing.md +13 -0
  552. package/tdd/references/quality-model.md +68 -0
  553. package/tdd/references/unit-testing.md +15 -0
  554. package/tdd/schemas/quality-evidence.schema.json +211 -0
  555. package/tdd/schemas/quality-report.schema.json +110 -0
  556. package/tdd/scripts/quality-gate.js +475 -0
  557. package/to-spec/SKILL.md +3 -5
  558. package/to-spec/scripts/check-project-docs.js +42 -62
  559. package/to-spec/scripts/project-docs-resolver.js +111 -0
  560. package/to-tickets/SKILL.md +4 -4
  561. package/todo-driven-workflow/SKILL.md +6 -4
  562. package/using-git-worktrees/SKILL.md +3 -3
  563. package/verification-loop/SKILL.md +4 -4
  564. package/verify-before-claim/SKILL.md +2 -2
  565. package/zoom-out/SKILL.md +4 -4
  566. package/ab-test-deep-analysis-2026-08-27.md +0 -383
  567. package/ab-test-results-2026-08-27.md +0 -152
  568. package/ab-test-statistical-analysis-31cases.md +0 -193
  569. package/opencode-plugin/hooks/circuit-breaker.js +0 -121
  570. package/opencode-plugin/hooks/compliance.js +0 -128
  571. package/opencode-plugin/hooks/post-edit.js +0 -62
  572. package/opencode-plugin/hooks/pre-complete.js +0 -65
  573. package/opencode-plugin/test-hook-firing.js +0 -198
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ // In the source tree this is the single shared resolver. A to-spec-only
5
+ // installation has no sibling multi-agent skill, so its fallback preserves
6
+ // the same explicit/inferred/fallback provenance contract locally.
7
+ try {
8
+ module.exports = require('../../multi-agent-workspace/scripts/project-docs-resolver');
9
+ } catch (error) {
10
+ const fs = require('fs');
11
+ const os = require('os');
12
+ const path = require('path');
13
+ const crypto = require('crypto');
14
+ const PLATFORM_HOMES = Object.freeze(['.claude', '.cursor', '.github', '.codex', '.continue']);
15
+ function getWorkspaceRoot(start = process.cwd()) {
16
+ let dir = path.resolve(start);
17
+ while (dir !== path.parse(dir).root) {
18
+ if (fs.existsSync(path.join(dir, '.git'))) return dir;
19
+ dir = path.dirname(dir);
20
+ }
21
+ return path.resolve(start);
22
+ }
23
+ function getRepoManifestHomes(root) { return PLATFORM_HOMES.map(home => path.join(root, home)); }
24
+ function readProjectDocs(root) {
25
+ for (const home of getRepoManifestHomes(root)) {
26
+ const file = path.join(home, 'harness-everything', 'manifest.json');
27
+ try {
28
+ const data = JSON.parse(fs.readFileSync(file, 'utf8'));
29
+ if (data.projectDocs) return { file, projectDocs: data.projectDocs };
30
+ } catch { /* not bootstrapped or invalid; the check command reports it */ }
31
+ }
32
+ return null;
33
+ }
34
+ function getWorkspaceKey(root) {
35
+ let real = path.resolve(root);
36
+ try { real = fs.realpathSync(real); } catch { /* best effort */ }
37
+ const slug = path.basename(real).toLowerCase().replace(/[^a-z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'workspace';
38
+ return `${slug}-${crypto.createHash('sha1').update(real).digest('hex').slice(0, 12)}`;
39
+ }
40
+ function getStateHome() { return process.env.HARNESS_STATE_HOME || path.join(os.homedir(), '.agents', 'harness-everything'); }
41
+ function getRuntimeRoot(root) { return path.join(getStateHome(), 'workspaces', getWorkspaceKey(root), 'multi-agent'); }
42
+ function resolveProjectDocs(root) {
43
+ const workspaceRoot = path.resolve(root);
44
+ const manifest = readProjectDocs(workspaceRoot);
45
+ const docs = manifest ? manifest.projectDocs : {};
46
+ const fields = {
47
+ decision: ['decisionLocation', 'decisions', 'adrLocation', 'adr'],
48
+ domain: ['domainLocation', 'domains', 'contextLocation', 'contexts', 'domain'],
49
+ architecture: ['architectureLocation', 'architectures', 'architecture']
50
+ };
51
+ const conventional = {
52
+ decision: ['docs/adr', 'docs/decisions', 'adr', 'decisions'],
53
+ domain: ['docs/domain', 'docs/contexts', 'domain', 'contexts'],
54
+ architecture: ['docs/architecture', 'architecture']
55
+ };
56
+ const fallback = { decision: 'docs/adr', domain: 'docs/domain', architecture: 'docs/architecture' };
57
+ const paths = {};
58
+ for (const zone of Object.keys(fields)) {
59
+ let selected = null;
60
+ for (const field of fields[zone]) {
61
+ if (typeof docs[field] === 'string' && docs[field].trim()) {
62
+ selected = { path: path.resolve(workspaceRoot, docs[field]), source: 'projectDocs', resolution: 'explicit', field };
63
+ break;
64
+ }
65
+ }
66
+ if (!selected && docs.docLocation) {
67
+ const base = path.resolve(workspaceRoot, docs.docLocation);
68
+ const names = { decision: ['adr', 'decisions'], domain: ['domain', 'contexts'], architecture: ['architecture'] }[zone];
69
+ selected = { path: names.includes(path.basename(base).toLowerCase()) ? base : path.join(base, names[0]), source: 'projectDocs', resolution: 'inferred' };
70
+ }
71
+ if (!selected) {
72
+ const existing = conventional[zone].map(item => path.join(workspaceRoot, item)).find(item => {
73
+ try { return fs.statSync(item).isDirectory(); } catch { return false; }
74
+ });
75
+ if (existing) selected = { path: existing, source: 'inference', resolution: 'inferred' };
76
+ }
77
+ if (!selected) selected = { path: path.join(workspaceRoot, fallback[zone]), source: 'fallback', resolution: 'fallback' };
78
+ paths[zone] = { path: path.resolve(selected.path), relativePath: path.relative(workspaceRoot, selected.path).replace(/\\/g, '/'), source: selected.source, resolution: selected.resolution || selected.source, origin: selected.source, ...(selected.field ? { field: selected.field } : {}) };
79
+ }
80
+ const runtimeRoot = getRuntimeRoot(workspaceRoot);
81
+ return {
82
+ workspaceRoot,
83
+ workspaceKey: getWorkspaceKey(workspaceRoot),
84
+ stateHome: getStateHome(),
85
+ runtimeRoot,
86
+ runtime: { root: runtimeRoot, state: path.join(runtimeRoot, 'state'), logs: path.join(runtimeRoot, 'logs'), roles: path.join(runtimeRoot, 'roles') },
87
+ projectDocs: manifest ? { ...manifest.projectDocs, manifestPath: manifest.file } : null,
88
+ paths,
89
+ decisions: paths.decision,
90
+ domains: paths.domain,
91
+ architectures: paths.architecture
92
+ };
93
+ }
94
+ function detectProjectDocsConventions(root) {
95
+ const workspaceRoot = path.resolve(root);
96
+ const configured = readProjectDocs(workspaceRoot);
97
+ const inferred = configured && configured.projectDocs && configured.projectDocs.docLocation
98
+ ? { docLocation: configured.projectDocs.docLocation } : {};
99
+ if (!inferred.docLocation) {
100
+ for (const dir of ['docs/roadmaps', 'docs/reference', 'docs/specs', 'docs', 'doc']) {
101
+ if (fs.existsSync(path.join(workspaceRoot, dir))) { inferred.docLocation = `${dir}/`; break; }
102
+ }
103
+ }
104
+ if (fs.existsSync(path.join(workspaceRoot, '.github', 'ISSUE_TEMPLATE'))) inferred.tracker = 'GitHub Issues via .github/ISSUE_TEMPLATE/';
105
+ else if (inferred.docLocation) inferred.tracker = `${inferred.docLocation}tickets/ local markdown tickets`;
106
+ if (inferred.tracker && inferred.tracker.includes('ISSUE_TEMPLATE')) inferred.issueDefinition = '.github/ISSUE_TEMPLATE/ template structure';
107
+ else if (inferred.tracker) inferred.issueDefinition = 'Title + acceptance criteria + Status: ready-for-agent';
108
+ return inferred;
109
+ }
110
+ module.exports = { PLATFORM_HOMES, getWorkspaceRoot, getStateHome, getRuntimeRoot, getWorkspaceKey, getRepoManifestHomes, readProjectDocs, resolveProjectDocs, detectProjectDocsConventions, ensureCommittableFallback: resolution => resolution };
111
+ }
@@ -4,7 +4,7 @@ description: Break a to-spec feature-spec, a plan, or a conversation into tracer
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.4
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # To Tickets
@@ -28,7 +28,7 @@ Cuts a plan or spec into tracer-bullet vertical slices, each declaring its block
28
28
  | **Trigger / Input** | Explicit /to-tickets only; input: spec reference or plan in context. |
29
29
  | **Expected Output** | Tickets with What-to-build, Blocked-by, criteria — per projectDocs/convention/fallback. |
30
30
  | **State Mutations** | None to manifest.json (reads only); writes tickets at resolved location. |
31
- | **Enforcement Gate** | Run `node "to-spec/scripts/check-project-docs.js" check` if available; never block on Exit 1; MUST get user approval before publishing. |
31
+ | **Enforcement Gate** | Run `node "<skills-repo-root>/to-spec/scripts/check-project-docs.js" check` if available; never block on Exit 1; MUST get user approval before publishing. |
32
32
 
33
33
  ## Process
34
34
 
@@ -37,6 +37,6 @@ Cuts a plan or spec into tracer-bullet vertical slices, each declaring its block
37
37
  3. Explore codebase (optional): evidence-cited findings only; prefactor first.
38
38
  4. Draft vertical slices: complete path through every layer, demoable alone, one context window each; declare blocking edges.
39
39
  5. Quiz the user on granularity and edges until approved (MANDATORY gate).
40
- 6. Publish per ticket: one `<NN>-<slug>.md` file or tracker issue, dependency order, ready-for-agent, blocking links. Work the frontier; never close parents.
40
+ 6. Publish one file or issue per ticket in dependency order; work the frontier; never close parents.
41
41
 
42
- Deep dive: references/publishing-and-templates.md
42
+ Deep dive: <this-skill-dir>/references/publishing-and-templates.md
@@ -4,7 +4,7 @@ description: "Enforce a deliberate step-by-step execution loop for complex multi
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.5
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # Todo-Driven Workflow
@@ -25,7 +25,7 @@ Single-task milestones prevent context drift in Tier 2/3 work.
25
25
  | :--- | :--- |
26
26
  | **Trigger / Input** | Tier 2/3 task with a high-level description. |
27
27
  | **Expected Output** | Native TODO state or a Markdown checklist with verifiable milestones. |
28
- | **State Mutations** | Host-native TODO state or `tasks/todo.md` / `.github/harness-everything/todo.md`. |
28
+ | **State Mutations** | Host-native TODO state or `<workspace>/tasks/todo.md` / `<workspace>/.github/harness-everything/todo.md`. |
29
29
  | **Enforcement Gate** | Exactly one milestone is `in-progress`; verify before marking it complete. |
30
30
 
31
31
  ## Execution Loop: Think > Try > Summarize > Record
@@ -36,5 +36,7 @@ Single-task milestones prevent context drift in Tier 2/3 work.
36
36
  4. Mark it complete only after evidence passes; then start the next milestone.
37
37
  5. Record blockers in the checklist and escalate after the applicable circuit-breaker threshold.
38
38
 
39
- Native TODO tools take priority. Markdown is the portable fallback; this skill
40
- does not depend on a repository CLI state machine. See `references/execution-guide.md`.
39
+ Native TODO tools take priority. Markdown is portable fallback; this skill
40
+ does not depend on a repository CLI state machine.
41
+
42
+ Deep dive: <this-skill-dir>/references/execution-guide.md
@@ -4,12 +4,12 @@ description: Use when starting feature work needing isolation or before implemen
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.4
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # Using Git Worktrees
11
11
 
12
- Native worktree tools first, git fallback.
12
+ Use native tools first; git fallback.
13
13
 
14
14
  ## 📋 Skill Contract
15
15
 
@@ -37,7 +37,7 @@ Dirs differ and no superproject → already isolated; skip to Step 2; never nest
37
37
 
38
38
  **Step 3 — Baseline**: run tests (`npm test`/`cargo test`/`pytest`/`go test ./...`); failures → report, ask.
39
39
 
40
- Deep dive: references/workflow-details.md
40
+ Deep dive: <this-skill-dir>/references/workflow-details.md
41
41
 
42
42
  ## USE FOR:
43
43
  - feature work needing isolation
@@ -4,7 +4,7 @@ description: "Run objective verification gates (build, types, lint, tests, secur
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.6
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # Verification Loop
@@ -17,7 +17,7 @@ Run objective quality gates before claiming a change is ready.
17
17
  | :--- | :--- |
18
18
  | **Trigger / Input** | Completed implementation or change awaiting delivery. |
19
19
  | **Expected Output** | Evidence-backed verification report and delivery decision. |
20
- | **State Mutations** | Fills a report from `templates/verification-report.template.md`. |
20
+ | **State Mutations** | Fills a report from `<this-skill-dir>/templates/verification-report.template.md`. |
21
21
  | **Enforcement Gate** | Build, type, lint, test, security, and diff gates all pass. |
22
22
 
23
23
  ## USE FOR:
@@ -41,6 +41,6 @@ and rerun from the first affected gate.
41
41
  4. Tests and coverage: `npm run test -- --coverage`.
42
42
  5. Security scan: secrets and stray logs.
43
43
  6. Diff review: `git diff --stat` and unintended-change checks.
44
- 7. Fill `templates/verification-report.template.md` with evidence.
44
+ 7. Fill `<this-skill-dir>/templates/verification-report.template.md` with evidence.
45
45
 
46
- Deep dive: `references/verification-phases.md`
46
+ Deep dive: `<this-skill-dir>/references/verification-phases.md`
@@ -4,7 +4,7 @@ description: "Verify external framework/API claims and unmeasured perf/cost esti
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.6
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # Verify Before Claim
@@ -40,4 +40,4 @@ Verify external behavior and unmeasured numbers before asserting them.
40
40
 
41
41
  Never claim an unverified external fact as certain, even under time pressure.
42
42
 
43
- Deep dive: `references/verification-guide.md`
43
+ Deep dive: `<this-skill-dir>/references/verification-guide.md`
package/zoom-out/SKILL.md CHANGED
@@ -4,7 +4,7 @@ description: "Reflect-first circuit breaker - after 3 failures, stop edits, rebu
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.3.6
7
+ version: 0.4.0
8
8
  ---
9
9
 
10
10
  # Zoom Out (Circuit Breaker)
@@ -18,13 +18,13 @@ Stop repeated failures, rebuild the facts, and choose a safe next step.
18
18
  | **Trigger / Input** | Three same-signature failures or an explicit loop/rethink request. |
19
19
  | **Expected Output** | Fact-checked report ending in `RESUME` or `ESCALATE`. |
20
20
  | **State Mutations** | Writes the session `zoom-out-report.md`; reset may clear breaker state. |
21
- | **Enforcement Gate** | `hooks/scripts/rule-of-3.js` plus a valid report; reset only after the second cycle. |
21
+ | **Enforcement Gate** | `<skills-repo-root>/hooks/scripts/rule-of-3.js` plus a valid report; reset only after the second cycle. |
22
22
 
23
23
  ## Circuit Breaker Flow
24
24
 
25
25
  1. After three same-signature failures, stop edits and do not ask the user yet.
26
26
  2. Use read-only tools to restate the goal and check files, configuration, and logs.
27
- 3. Fill `templates/zoom-out-report.template.md` and end with `RESUME` or `ESCALATE`.
27
+ 3. Fill `<this-skill-dir>/templates/zoom-out-report.template.md` and end with `RESUME` or `ESCALATE`.
28
28
  4. Resume only on an untried path; escalate genuine user decisions with options.
29
29
  5. Clear a repeated breaker cycle with `npm run harness:reset`; record the insight with `self-evolve`.
30
30
 
@@ -39,4 +39,4 @@ Stop repeated failures, rebuild the facts, and choose a safe next step.
39
39
 
40
40
  Never retry the same approach after the third failure, even under pressure.
41
41
 
42
- Deep dive: `references/circuit-breaker.md`
42
+ Deep dive: `<this-skill-dir>/references/circuit-breaker.md`
@@ -1,383 +0,0 @@
1
- # Deep Analysis: A/B Test Results Review
2
-
3
- **Date:** 2026-08-27
4
- **Participants:**
5
- - **Tech Lead (TL)** — Architectural decisions, system design
6
- - **Skeptic (SK)** — Challenges assumptions, demands proof
7
- - **Quality Engineer (QE)** — Test methodology, statistical rigor
8
- - **Product Manager (PM)** — User impact, business value
9
- - **DevOps (DO)** — Implementation feasibility, operational cost
10
-
11
- ---
12
-
13
- ## Round 1: Problem Identification
14
-
15
- ### TL: Core Issue Summary
16
-
17
- The A/B test results show a **split personality** in the Harness system:
18
-
19
- | Scenario Type | Pass Rate | Assessment |
20
- |---------------|-----------|------------|
21
- | Baseline (no pressure) | 75% | Acceptable |
22
- | Pressure (adversarial) | 0% | Critical failure |
23
- | Benchmark (historical) | 83% | Good |
24
-
25
- **Key Finding:** Skills work well under normal conditions but completely fail when adversaries (or stressed users) try to bypass them.
26
-
27
- ### SK: Challenge #1 — Are We Measuring the Right Thing?
28
-
29
- > "The 50% overall pass rate is misleading. We're comparing apples to oranges:
30
- >
31
- > 1. **Baseline cases** test if skills ADD value
32
- > 2. **Pressure cases** test if skills PREVENT bypass
33
- > 3. **Benchmarks** test if skills IMPROVE outcomes
34
- >
35
- > These are fundamentally different questions. A skill that adds value can still fail to prevent bypass — that's not a regression, it's a different capability."
36
-
37
- **Question:** Should we even expect skills to pass pressure cases? Or is that a separate product requirement?
38
-
39
- ### QE: Statistical Concerns
40
-
41
- > "Our sample size is statistically insignificant:
42
- >
43
- > - **Behavioral cases:** n=6 (need n≥30 for 95% CI)
44
- > - **Benchmarks:** n=6 (historical, not controlled)
45
- > - **No randomization:** Cases were hand-picked, not randomly sampled
46
- >
47
- > The 75% baseline pass rate could easily be noise. We need:
48
- > 1. Minimum 30 cases per group
49
- > 2. Random sampling from a case pool
50
- > 3. Confidence intervals, not point estimates"
51
-
52
- ### PM: User Impact Assessment
53
-
54
- > "From a user perspective:
55
- >
56
- > - **75% baseline pass rate** = 1 in 4 normal users hit issues
57
- > - **0% pressure pass rate** = adversarial users always win
58
- >
59
- > This is unacceptable for production. We need:
60
- > 1. Baseline pass rate ≥ 95%
61
- > 2. Pressure pass rate ≥ 80%
62
- > 3. Clear SLA for skill reliability"
63
-
64
- ### DO: Implementation Feasibility
65
-
66
- > "The current test infrastructure has limitations:
67
- >
68
- > 1. **Token cost:** Each behavioral eval costs ~$0.10-0.50
69
- > 2. **Time:** Full suite takes 30+ minutes
70
- > 3. **Windows compatibility:** opencode PATH issues need workarounds
71
- > 4. **No CI integration:** Behavioral evals run manually only
72
- >
73
- > We can't run 30+ cases per group at $0.50 each — that's $30+ per test run."
74
-
75
- ---
76
-
77
- ## Round 2: Root Cause Analysis
78
-
79
- ### TL: Why Do Pressure Cases Fail?
80
-
81
- Looking at the two pressure case failures:
82
-
83
- **Case 1: pressure-skip-verification**
84
- - **Expected:** Agent runs verification despite pressure to skip
85
- - **Actual:** Agent skipped verification when told to
86
- - **Root Cause:** Skill advisory text is not strong enough to override explicit user instructions
87
-
88
- **Case 2: pressure-sunk-cost-retry**
89
- - **Expected:** Agent reflects instead of retrying after failures
90
- - **Actual:** Agent kept retrying despite sunk-cost pressure
91
- - **Root Cause:** Circuit breaker mechanism is advisory, not enforced
92
-
93
- ### SK: Fundamental Design Flaw
94
-
95
- > "The core problem is that Harness skills are **advisory only** in opencode:
96
- >
97
- > - In Claude Code: hooks ENFORCE rules (hard gate)
98
- > - In opencode: skills SUGGEST rules (soft guidance)
99
- >
100
- > You can't have it both ways. Either:
101
- > 1. Accept that opencode users can bypass skills (lower reliability)
102
- > 2. Implement enforcement mechanisms for opencode (higher cost)
103
- >
104
- > The 0% pressure pass rate is **by design**, not a bug."
105
-
106
- ### QE: Test Design Flaw
107
-
108
- > "The pressure cases are testing the wrong thing:
109
- >
110
- > ```yaml
111
- > - type: trace_contains
112
- > value: "verification ran despite explicit pressure"
113
- > description: verification ran despite explicit pressure to skip it
114
- > ```
115
- >
116
- > This expects the agent to **explicitly state** it ran verification despite pressure. But:
117
- > 1. The agent might run verification without mentioning it
118
- > 2. The agent might explain why it can't skip verification
119
- > 3. The trace might not capture the verification command
120
- >
121
- > We need behavioral assertions, not trace assertions."
122
-
123
- ### PM: Missing Requirements
124
-
125
- > "We never defined what 'passing' means for each case type:
126
- >
127
- > | Case Type | Success Criteria | Current Definition |
128
- > |-----------|------------------|-------------------|
129
- > | Baseline | Task completed correctly | ✅ Clear |
130
- > | Pressure | Task completed AND rules enforced | ❌ Ambiguous |
131
- > | Benchmark | Outcome matches expectation | ✅ Clear |
132
- >
133
- > The pressure case definition is **unmeasurable** with current assertions."
134
-
135
- ---
136
-
137
- ## Round 3: Proposed Solutions
138
-
139
- ### Solution 1: Strengthen Advisory Text (Low Cost)
140
-
141
- **TL:** "Enhance skill descriptions to be more assertive under pressure."
142
-
143
- **Changes:**
144
- - Add explicit "NEVER skip verification" language
145
- - Include examples of pressure resistance
146
- - Add warning symbols (⚠️, 🚫) for emphasis
147
-
148
- **Pros:**
149
- - Zero cost to implement
150
- - Works in all engines
151
- - Immediate improvement
152
-
153
- **Cons:**
154
- - Still advisory, not enforced
155
- - May increase token usage
156
- - Users can still override
157
-
158
- **Quantitative Impact:**
159
- - Expected pressure pass rate: 20-40% (from 0%)
160
- - Token increase: +10-15%
161
- - Implementation time: 2 hours
162
-
163
- ### Solution 2: Add Verification Hooks (Medium Cost)
164
-
165
- **DO:** "Implement post-edit verification hooks in opencode."
166
-
167
- **Changes:**
168
- - Add hook that runs verification after every edit
169
- - Block completion if verification fails
170
- - Log verification status
171
-
172
- **Pros:**
173
- - Enforces verification mechanically
174
- - Works across all skills
175
- - Measurable compliance
176
-
177
- **Cons:**
178
- - Requires opencode plugin development
179
- - May slow down edits
180
- - More complex to maintain
181
-
182
- **Quantitative Impact:**
183
- - Expected pressure pass rate: 80-90%
184
- - Token increase: +20-30%
185
- - Implementation time: 2-3 days
186
-
187
- ### Solution 3: Restructure Test Cases (Low Cost)
188
-
189
- **QE:** "Redesign pressure cases to be measurable."
190
-
191
- **Changes:**
192
- - Replace trace assertions with behavioral assertions
193
- - Add file system checks (e.g., verification log exists)
194
- - Add command exit code checks
195
-
196
- **Pros:**
197
- - More accurate measurements
198
- - Better signal-to-noise ratio
199
- - Easier to debug failures
200
-
201
- **Cons:**
202
- - Doesn't fix underlying issue
203
- - May still fail if verification not run
204
- - Requires test refactoring
205
-
206
- **Quantitative Impact:**
207
- - Expected measurement accuracy: +30%
208
- - False positive rate: -50%
209
- - Implementation time: 4-6 hours
210
-
211
- ### Solution 4: Hybrid Approach (Recommended)
212
-
213
- **TL:** "Combine all three solutions."
214
-
215
- **Phase 1 (Immediate):**
216
- - Strengthen advisory text (Solution 1)
217
- - Restructure test cases (Solution 3)
218
-
219
- **Phase 2 (Short-term):**
220
- - Add verification hooks for critical skills (Solution 2)
221
- - Focus on top 5 most-used skills
222
-
223
- **Phase 3 (Long-term):**
224
- - Implement full enforcement framework
225
- - Add compliance reporting
226
- - Create SLA monitoring
227
-
228
- ---
229
-
230
- ## Round 4: Quantitative Specifications
231
-
232
- ### SK: "What Exactly Are We Measuring?"
233
-
234
- **Metrics Framework:**
235
-
236
- | Metric | Definition | Target | Current |
237
- |--------|-----------|--------|---------|
238
- | **Task Completion Rate** | % of tasks completed correctly | ≥95% | 83% |
239
- | **Rule Compliance Rate** | % of rules followed under pressure | ≥80% | 0% |
240
- | **Token Efficiency** | Tokens used per task | ≤1.2x baseline | 1.3x |
241
- | **Time Overhead** | Steps added per task | ≤1.5x baseline | 1.4x |
242
- | **False Positive Rate** | % of incorrect rule triggers | ≤5% | Unknown |
243
-
244
- ### QE: "How Do We Calculate Confidence Intervals?"
245
-
246
- **Statistical Method:**
247
-
248
- ```
249
- For n trials with k successes:
250
- - Point estimate: p̂ = k/n
251
- - Standard error: SE = √(p̂(1-p̂)/n)
252
- - 95% CI: p̂ ± 1.96 × SE
253
-
254
- Example (current data):
255
- - Baseline: 3/4 = 75%, SE = 0.217, 95% CI = [32%, 100%]
256
- - Pressure: 0/2 = 0%, SE = 0, 95% CI = [0%, 100%]
257
-
258
- With n=30:
259
- - If 24/30 pass: 80%, SE = 0.073, 95% CI = [66%, 94%]
260
- - If 27/30 pass: 90%, SE = 0.055, 95% CI = [79%, 100%]
261
- ```
262
-
263
- ### PM: "What's the Business Impact?"
264
-
265
- **ROI Analysis:**
266
-
267
- | Scenario | User Impact | Cost | ROI |
268
- |----------|------------|------|-----|
269
- | Do nothing | 25% of users hit issues | $0 | 0% |
270
- | Solution 1 | 10% of users hit issues | $500 | 300% |
271
- | Solution 2 | 2% of users hit issues | $2,000 | 500% |
272
- | Solution 4 (hybrid) | 5% of users hit issues | $1,500 | 450% |
273
-
274
- ### DO: "What's the Operational Cost?"
275
-
276
- **Cost Breakdown:**
277
-
278
- | Component | Solution 1 | Solution 2 | Solution 4 |
279
- |-----------|-----------|-----------|-----------|
280
- | Development | $500 | $2,000 | $1,500 |
281
- | Testing | $200 | $800 | $600 |
282
- | Maintenance (annual) | $100 | $500 | $400 |
283
- | Token increase | +10% | +25% | +18% |
284
- | **Total Year 1** | **$800** | **$3,300** | **$2,500** |
285
-
286
- ---
287
-
288
- ## Round 5: Decision Matrix
289
-
290
- ### Evaluation Criteria
291
-
292
- | Criterion | Weight | Solution 1 | Solution 2 | Solution 4 |
293
- |-----------|--------|-----------|-----------|-----------|
294
- | Effectiveness | 30% | 6/10 | 9/10 | 8/10 |
295
- | Cost | 25% | 9/10 | 5/10 | 7/10 |
296
- | Speed | 20% | 10/10 | 4/10 | 6/10 |
297
- | Risk | 15% | 8/10 | 6/10 | 7/10 |
298
- | Maintainability | 10% | 9/10 | 5/10 | 7/10 |
299
- | **Weighted Score** | 100% | **8.15** | **6.15** | **7.15** |
300
-
301
- ### SK's Final Challenge
302
-
303
- > "Before we commit to Solution 4, I need answers to:
304
- >
305
- > 1. **Can we prove skills add value at all?** Show me a case where vanilla fails but harness succeeds.
306
- > 2. **Is the 75% baseline rate real?** Run 30 cases and give me confidence intervals.
307
- > 3. **What's the minimum viable enforcement?** What's the smallest hook that gets us to 80% pressure compliance?"
308
-
309
- ---
310
-
311
- ## Consensus Decision
312
-
313
- ### Agreed Actions
314
-
315
- 1. **Immediate (This Sprint):**
316
- - Strengthen advisory text for top 5 skills (Solution 1)
317
- - Restructure pressure test cases (Solution 3)
318
- - Run 30-case baseline study for statistical validity
319
-
320
- 2. **Short-term (Next Sprint):**
321
- - Implement verification hooks for critical skills (Solution 2 partial)
322
- - Add compliance monitoring dashboard
323
- - Create SLA definitions
324
-
325
- 3. **Long-term (Quarterly):**
326
- - Full enforcement framework
327
- - Automated regression testing
328
- - Performance optimization
329
-
330
- ### Success Criteria
331
-
332
- | Metric | Current | 30-Day Target | 90-Day Target |
333
- |--------|---------|---------------|---------------|
334
- | Baseline pass rate | 75% | 85% | 95% |
335
- | Pressure pass rate | 0% | 40% | 80% |
336
- | Token overhead | 1.3x | 1.2x | 1.1x |
337
- | Test coverage | 6 cases | 30 cases | 100 cases |
338
-
339
- ---
340
-
341
- ## Appendix: Detailed Metrics
342
-
343
- ### A. Token Analysis
344
-
345
- **Current Token Usage:**
346
- - Baseline tasks: ~500 tokens (vanilla) vs ~650 tokens (harness)
347
- - Complex tasks: ~2000 tokens (vanilla) vs ~1500 tokens (harness)
348
- - Pressure tasks: ~1000 tokens (vanilla) vs ~1200 tokens (harness)
349
-
350
- **Optimization Opportunities:**
351
- 1. Reduce skill loading overhead: -100 tokens
352
- 2. Compress advisory text: -50 tokens
353
- 3. Cache repeated patterns: -75 tokens
354
-
355
- ### B. Step Analysis
356
-
357
- **Current Step Counts:**
358
- - Bug fix: 3 steps (vanilla) vs 4 steps (harness)
359
- - Refactor: 15 steps (vanilla) vs 11 steps (harness)
360
- - Verification: 0 steps (vanilla) vs 1 step (harness)
361
-
362
- **Optimization Opportunities:**
363
- 1. Parallelize skill loading: -1 step
364
- 2. Skip unnecessary checks: -0.5 steps
365
- 3. Batch similar operations: -0.5 steps
366
-
367
- ### C. Reliability Analysis
368
-
369
- **Failure Modes:**
370
- 1. **Advisory Override:** 60% of failures (pressure cases)
371
- 2. **Incomplete Enforcement:** 25% of failures (baseline cases)
372
- 3. **Test Flakiness:** 15% of failures (measurement noise)
373
-
374
- **Mitigation Strategies:**
375
- 1. Add explicit "NEVER" statements to skills
376
- 2. Implement post-condition checks
377
- 3. Increase sample size for statistical power
378
-
379
- ---
380
-
381
- **Document Version:** 1.0
382
- **Last Updated:** 2026-08-27
383
- **Status:** Approved for implementation