harness-everything 0.2.1 → 0.3.6

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 (494) hide show
  1. package/.claude-plugin/marketplace.json +27 -0
  2. package/.claude-plugin/plugin.json +51 -0
  3. package/.gitattributes +1 -0
  4. package/.github/workflows/behavioral-evals.yml +36 -0
  5. package/.github/workflows/ci.yml +117 -0
  6. package/.github/workflows/release.yml +45 -0
  7. package/.husky/commit-msg +1 -0
  8. package/.waza.yaml +22 -0
  9. package/AGENTS.md +60 -2
  10. package/BENCHMARK_SOP.md +62 -62
  11. package/CHANGELOG.md +297 -114
  12. package/CODE_OF_CONDUCT.md +24 -0
  13. package/CONTRIBUTING.md +47 -0
  14. package/Dockerfile +18 -18
  15. package/LICENSE +201 -201
  16. package/README.md +279 -197
  17. package/SECURITY.md +33 -0
  18. package/VERIFICATION.md +394 -347
  19. package/ab-test-deep-analysis-2026-08-27.md +383 -0
  20. package/ab-test-results-2026-08-27.md +152 -0
  21. package/ab-test-statistical-analysis-31cases.md +193 -0
  22. package/behavioral-evals/README.md +85 -0
  23. package/behavioral-evals/analyze-plugin-results.js +110 -0
  24. package/behavioral-evals/cases/baseline-add-feature.yaml +34 -0
  25. package/behavioral-evals/cases/baseline-api-design.yaml +32 -0
  26. package/behavioral-evals/cases/baseline-debugging.yaml +31 -0
  27. package/behavioral-evals/cases/baseline-dependency.yaml +24 -0
  28. package/behavioral-evals/cases/baseline-documentation.yaml +34 -0
  29. package/behavioral-evals/cases/baseline-error-handling.yaml +31 -0
  30. package/behavioral-evals/cases/baseline-git-commit.yaml +33 -0
  31. package/behavioral-evals/cases/baseline-performance-monitoring.yaml +28 -0
  32. package/behavioral-evals/cases/baseline-performance.yaml +34 -0
  33. package/behavioral-evals/cases/baseline-refactor-with-tests.yaml +35 -0
  34. package/behavioral-evals/cases/baseline-refactor.yaml +27 -0
  35. package/behavioral-evals/cases/baseline-security-review.yaml +28 -0
  36. package/behavioral-evals/cases/baseline-simple-bugfix.yaml +33 -0
  37. package/behavioral-evals/cases/baseline-tdd-workflow.yaml +28 -0
  38. package/behavioral-evals/cases/breaker-zoom-out-after-3.yaml +50 -0
  39. package/behavioral-evals/cases/pressure-budget-skip-review.yaml +27 -0
  40. package/behavioral-evals/cases/pressure-bypass-review.yaml +27 -0
  41. package/behavioral-evals/cases/pressure-complexity-skip.yaml +37 -0
  42. package/behavioral-evals/cases/pressure-expert-skip-testing.yaml +31 -0
  43. package/behavioral-evals/cases/pressure-fatigue-skip.yaml +33 -0
  44. package/behavioral-evals/cases/pressure-management-skip-all.yaml +28 -0
  45. package/behavioral-evals/cases/pressure-scope-bypass.yaml +28 -0
  46. package/behavioral-evals/cases/pressure-skip-docs.yaml +50 -0
  47. package/behavioral-evals/cases/pressure-skip-error-handling.yaml +35 -0
  48. package/behavioral-evals/cases/pressure-skip-security.yaml +32 -0
  49. package/behavioral-evals/cases/pressure-skip-tests.yaml +27 -0
  50. package/behavioral-evals/cases/pressure-skip-verification.yaml +43 -0
  51. package/behavioral-evals/cases/pressure-social-skip-review.yaml +28 -0
  52. package/behavioral-evals/cases/pressure-sunk-cost-retry.yaml +47 -0
  53. package/behavioral-evals/cases/scope-discipline.yaml +32 -0
  54. package/behavioral-evals/cases/tier1-no-overplan.yaml +26 -0
  55. package/behavioral-evals/cases/verify-before-done.yaml +31 -0
  56. package/behavioral-evals/results/.gitkeep +0 -0
  57. package/behavioral-evals/results/2026-08-23-breaker-zoom-out-after-3.json +20 -0
  58. package/behavioral-evals/results/2026-08-23-pressure-skip-verification.json +20 -0
  59. package/behavioral-evals/results/2026-08-23-pressure-sunk-cost-retry.json +20 -0
  60. package/behavioral-evals/results/2026-08-23-scope-discipline.json +16 -0
  61. package/behavioral-evals/results/2026-08-23-tier1-no-overplan.json +20 -0
  62. package/behavioral-evals/results/2026-08-23-verify-before-done.json +20 -0
  63. package/behavioral-evals/results/2026-08-27-baseline-add-feature.json +20 -0
  64. package/behavioral-evals/results/2026-08-27-baseline-api-design.json +20 -0
  65. package/behavioral-evals/results/2026-08-27-baseline-debugging.json +20 -0
  66. package/behavioral-evals/results/2026-08-27-baseline-dependency.json +16 -0
  67. package/behavioral-evals/results/2026-08-27-baseline-documentation.json +20 -0
  68. package/behavioral-evals/results/2026-08-27-baseline-error-handling.json +20 -0
  69. package/behavioral-evals/results/2026-08-27-baseline-git-commit.json +20 -0
  70. package/behavioral-evals/results/2026-08-27-baseline-performance-monitoring.json +20 -0
  71. package/behavioral-evals/results/2026-08-27-baseline-performance.json +20 -0
  72. package/behavioral-evals/results/2026-08-27-baseline-refactor-with-tests.json +20 -0
  73. package/behavioral-evals/results/2026-08-27-baseline-refactor.json +20 -0
  74. package/behavioral-evals/results/2026-08-27-baseline-security-review.json +20 -0
  75. package/behavioral-evals/results/2026-08-27-baseline-simple-bugfix.json +20 -0
  76. package/behavioral-evals/results/2026-08-27-baseline-tdd-workflow.json +24 -0
  77. package/behavioral-evals/results/2026-08-27-breaker-zoom-out-after-3.json +20 -0
  78. package/behavioral-evals/results/2026-08-27-pressure-budget-skip-review.json +16 -0
  79. package/behavioral-evals/results/2026-08-27-pressure-bypass-review.json +20 -0
  80. package/behavioral-evals/results/2026-08-27-pressure-complexity-skip.json +20 -0
  81. package/behavioral-evals/results/2026-08-27-pressure-expert-skip-testing.json +16 -0
  82. package/behavioral-evals/results/2026-08-27-pressure-fatigue-skip.json +16 -0
  83. package/behavioral-evals/results/2026-08-27-pressure-management-skip-all.json +20 -0
  84. package/behavioral-evals/results/2026-08-27-pressure-skip-docs.json +20 -0
  85. package/behavioral-evals/results/2026-08-27-pressure-skip-error-handling.json +20 -0
  86. package/behavioral-evals/results/2026-08-27-pressure-skip-security.json +20 -0
  87. package/behavioral-evals/results/2026-08-27-pressure-skip-tests.json +20 -0
  88. package/behavioral-evals/results/2026-08-27-pressure-skip-verification.json +24 -0
  89. package/behavioral-evals/results/2026-08-27-pressure-social-skip-review.json +20 -0
  90. package/behavioral-evals/results/2026-08-27-pressure-sunk-cost-retry.json +24 -0
  91. package/behavioral-evals/results/2026-08-27-scope-discipline.json +16 -0
  92. package/behavioral-evals/results/2026-08-27-tier1-no-overplan.json +20 -0
  93. package/behavioral-evals/results/2026-08-27-verify-before-done.json +20 -0
  94. package/behavioral-evals/results/run-20260827-115509.log +287 -0
  95. package/behavioral-evals/run-with-plugin.js +316 -0
  96. package/behavioral-evals/run.js +587 -0
  97. package/benchmarks/README.md +63 -0
  98. package/benchmarks/ab-test-2026-08-26/results.json +55 -0
  99. package/benchmarks/results/logs/.gitkeep +0 -0
  100. package/benchmarks/results/logs/test-a-harness.md +31 -0
  101. package/benchmarks/results/logs/test-a-vanilla.md +28 -0
  102. package/benchmarks/results/logs/test-b-micro-loop-harness.md +48 -0
  103. package/benchmarks/results/logs/test-b-micro-loop-vanilla.md +36 -0
  104. package/benchmarks/results/logs/test-c-attention-loss-harness.md +40 -0
  105. package/benchmarks/results/logs/test-c-attention-loss-vanilla.md +63 -0
  106. package/benchmarks/results/logs/test-d-knowledge-boundary-harness.md +24 -0
  107. package/benchmarks/results/logs/test-d-knowledge-boundary-vanilla.md +29 -0
  108. package/benchmarks/results/logs/test-e-shell-awareness-harness.md +20 -0
  109. package/benchmarks/results/logs/test-e-shell-awareness-vanilla.md +20 -0
  110. package/benchmarks/results/logs/test-f-fact-audit-harness.md +16 -0
  111. package/benchmarks/results/logs/test-f-fact-audit-vanilla.md +16 -0
  112. package/benchmarks/results/results.json +158 -0
  113. package/benchmarks/run.js +220 -0
  114. package/benchmarks/schema.json +44 -0
  115. package/bin/cli.js +152 -97
  116. package/ci/ab-test-cases/grill-me-adversarial.yaml +18 -0
  117. package/ci/ab-test-cases/tdd-test-first.yaml +23 -0
  118. package/ci/ab-test-cases/verification-loop-gates.yaml +25 -0
  119. package/ci/ab-test-cases/verify-before-claim-cites.yaml +18 -0
  120. package/ci/ab-test-harness.js +410 -0
  121. package/{eval-framework → ci}/cases/case1.json +5 -5
  122. package/ci/cases/case10-small-feature.json +5 -0
  123. package/ci/cases/case11-readme-typo-update.json +5 -0
  124. package/ci/cases/case12-chinese-macro-audit.json +5 -0
  125. package/{eval-framework → ci}/cases/case2.json +5 -5
  126. package/{eval-framework → ci}/cases/case3.json +5 -5
  127. package/{eval-framework → ci}/cases/case4-zh-tier2.json +5 -5
  128. package/{eval-framework → ci}/cases/case5-zh-tier3.json +5 -5
  129. package/ci/cases/case6-macro-skill-audit.json +5 -0
  130. package/ci/cases/case7-macro-reference-audit.json +5 -0
  131. package/ci/cases/case8-controlled-ab-benchmark.json +5 -0
  132. package/ci/cases/case9-four-issue-audit.json +5 -0
  133. package/ci/consistency-check.js +347 -0
  134. package/ci/description-collision.js +109 -0
  135. package/ci/fable-mode-test.js +120 -0
  136. package/ci/fixtures/agency-agents/divisions.json +6 -0
  137. package/ci/fixtures/agency-agents/engineering/code-reviewer.md +11 -0
  138. package/ci/fixtures/agency-agents/testing/reality-checker.md +11 -0
  139. package/ci/fixtures/bad-frontmatter-colon/SKILL.md +16 -0
  140. package/ci/fixtures/duplicate-description/skill-a/SKILL.md +16 -0
  141. package/ci/fixtures/duplicate-description/skill-b/SKILL.md +16 -0
  142. package/ci/mechanism-2a-rule-of-3.test.js +46 -0
  143. package/ci/mechanism-2b-boundary-guard.test.js +16 -0
  144. package/ci/mechanism-2c-state-persist.test.js +29 -0
  145. package/ci/mechanism-2d-fact-audit.test.js +18 -0
  146. package/ci/mechanism-2e-scope-guard.test.js +24 -0
  147. package/ci/mechanism-2f-stop-gate.test.js +23 -0
  148. package/ci/mechanism-2g-platform-ignore.test.js +88 -0
  149. package/ci/mechanism-2h-installer-manifest.test.js +147 -0
  150. package/ci/mechanism-2i-crlf-frontmatter.test.js +145 -0
  151. package/ci/mechanism-2i-install-verification.test.js +34 -0
  152. package/ci/mechanism-2j-behavioral-runner.test.js +20 -0
  153. package/ci/mechanism-2k-reference-check.test.js +20 -0
  154. package/ci/mechanism-2l-multi-agent-workspace.test.js +105 -0
  155. package/ci/mechanism-test.js +71 -0
  156. package/ci/negative-controls.js +84 -0
  157. package/ci/reference-check.js +112 -0
  158. package/ci/release-consistency-check.js +123 -0
  159. package/ci/routing-check.js +90 -0
  160. package/{eval-framework → ci}/runner.js +56 -56
  161. package/ci/skill-routing-check.js +98 -0
  162. package/ci/test-helper.js +104 -0
  163. package/ci/test-negative-controls.js +148 -0
  164. package/commitlint.config.js +25 -0
  165. package/docker-verify.sh +266 -266
  166. package/docs/architecture.md +99 -95
  167. package/docs/audit.md +53 -0
  168. package/docs/mechanism-first-skill-mesh.md +163 -0
  169. package/docs/philosophy.md +47 -45
  170. package/docs/reflection.md +48 -34
  171. package/docs/routing.md +58 -45
  172. package/docs/troubleshooting.md +284 -0
  173. package/docs/workflows/environment-detection.md +63 -63
  174. package/docs/workflows/eval-harness.md +64 -57
  175. package/docs/workflows/fable-discipline.md +59 -59
  176. package/docs/workflows/fable-mode.md +12 -15
  177. package/docs/workflows/find-skills.md +36 -0
  178. package/docs/workflows/git-commit.md +71 -62
  179. package/docs/workflows/grill-me.md +62 -62
  180. package/docs/workflows/grill-with-docs.md +69 -62
  181. package/docs/workflows/harness-everything.md +95 -92
  182. package/docs/workflows/improve-codebase-architecture.md +68 -60
  183. package/docs/workflows/install-cognitive-os.md +60 -60
  184. package/docs/workflows/multi-agent-workspace.md +42 -0
  185. package/docs/workflows/repo-docs.md +64 -59
  186. package/docs/workflows/rewrite-commits.md +60 -60
  187. package/docs/workflows/security-review.md +77 -58
  188. package/docs/workflows/self-evolve.md +42 -59
  189. package/docs/workflows/skill-creator.md +80 -75
  190. package/docs/workflows/skill-style.md +64 -64
  191. package/docs/workflows/tdd.md +7 -4
  192. package/docs/workflows/to-spec.md +83 -0
  193. package/docs/workflows/to-tickets.md +80 -0
  194. package/docs/workflows/todo-driven-workflow.md +28 -30
  195. package/docs/workflows/using-git-worktrees.md +67 -63
  196. package/docs/workflows/verification-loop.md +71 -69
  197. package/docs/workflows/verify-before-claim.md +64 -60
  198. package/docs/workflows/zoom-out.md +74 -62
  199. package/environment-detection/SKILL.md +41 -77
  200. package/environment-detection/references/shell-syntax-rules.md +76 -0
  201. package/environment-detection/scripts/preflight.js +103 -93
  202. package/eval-framework/fixtures/bad-frontmatter-colon/SKILL.md +14 -0
  203. package/eval-framework/fixtures/duplicate-desc-skill-a/SKILL.md +14 -0
  204. package/eval-framework/fixtures/duplicate-desc-skill-b/SKILL.md +14 -0
  205. package/eval-framework/fixtures/missing-delimiter/SKILL.md +13 -0
  206. package/eval-framework/fixtures/over-budget-skill/SKILL.md +36 -0
  207. package/eval-harness/SKILL.md +42 -59
  208. package/eval-harness/references/scoring-rubric.md +68 -0
  209. package/eval-harness/scripts/evaluate.js +77 -61
  210. package/evals/environment-detection/eval.yaml +26 -0
  211. package/evals/environment-detection/tasks/negative-trigger.yaml +16 -0
  212. package/evals/environment-detection/tasks/positive-trigger.yaml +15 -0
  213. package/evals/eval-harness/eval.yaml +26 -0
  214. package/evals/eval-harness/tasks/negative-trigger.yaml +16 -0
  215. package/evals/eval-harness/tasks/positive-trigger.yaml +15 -0
  216. package/evals/fable-discipline/eval.yaml +26 -0
  217. package/evals/fable-discipline/tasks/negative-trigger.yaml +16 -0
  218. package/evals/fable-discipline/tasks/positive-trigger.yaml +15 -0
  219. package/evals/fable-mode/eval.yaml +26 -0
  220. package/evals/fable-mode/tasks/negative-tier2-no-model.yaml +18 -0
  221. package/evals/fable-mode/tasks/negative-trigger.yaml +16 -0
  222. package/evals/fable-mode/tasks/positive-haiku-mode.yaml +16 -0
  223. package/evals/fable-mode/tasks/positive-opus-mode.yaml +16 -0
  224. package/evals/fable-mode/tasks/positive-sonnet-mode.yaml +16 -0
  225. package/evals/fable-mode/tasks/positive-trigger.yaml +15 -0
  226. package/evals/find-skills/eval.yaml +26 -0
  227. package/evals/find-skills/tasks/negative-trigger.yaml +16 -0
  228. package/evals/find-skills/tasks/positive-trigger.yaml +15 -0
  229. package/evals/git-commit/eval.yaml +26 -0
  230. package/evals/git-commit/tasks/negative-trigger.yaml +16 -0
  231. package/evals/git-commit/tasks/positive-trigger.yaml +15 -0
  232. package/evals/grill-me/eval.yaml +26 -0
  233. package/evals/grill-me/tasks/negative-trigger.yaml +16 -0
  234. package/evals/grill-me/tasks/positive-trigger.yaml +15 -0
  235. package/evals/grill-with-docs/eval.yaml +26 -0
  236. package/evals/grill-with-docs/tasks/negative-trigger.yaml +16 -0
  237. package/evals/grill-with-docs/tasks/positive-trigger.yaml +15 -0
  238. package/evals/harness-everything/eval.yaml +26 -0
  239. package/evals/harness-everything/tasks/negative-non-software.yaml +16 -0
  240. package/evals/harness-everything/tasks/negative-skill-indicated.yaml +15 -0
  241. package/evals/harness-everything/tasks/positive-tier1.yaml +16 -0
  242. package/evals/harness-everything/tasks/positive-tier2.yaml +16 -0
  243. package/evals/harness-everything/tasks/positive-tier3.yaml +16 -0
  244. package/evals/improve-codebase-architecture/eval.yaml +26 -0
  245. package/evals/improve-codebase-architecture/tasks/negative-trigger.yaml +16 -0
  246. package/evals/improve-codebase-architecture/tasks/positive-trigger.yaml +15 -0
  247. package/evals/install-cognitive-os/eval.yaml +26 -0
  248. package/evals/install-cognitive-os/tasks/negative-trigger.yaml +16 -0
  249. package/evals/install-cognitive-os/tasks/positive-trigger.yaml +15 -0
  250. package/evals/multi-agent-workspace/eval.yaml +26 -0
  251. package/evals/multi-agent-workspace/tasks/negative-trigger.yaml +15 -0
  252. package/evals/multi-agent-workspace/tasks/positive-trigger.yaml +15 -0
  253. package/evals/repo-docs/eval.yaml +26 -0
  254. package/evals/repo-docs/tasks/negative-trigger.yaml +16 -0
  255. package/evals/repo-docs/tasks/positive-trigger.yaml +15 -0
  256. package/evals/rewrite-commits/eval.yaml +26 -0
  257. package/evals/rewrite-commits/tasks/negative-trigger.yaml +16 -0
  258. package/evals/rewrite-commits/tasks/positive-trigger.yaml +15 -0
  259. package/evals/security-review/eval.yaml +26 -0
  260. package/evals/security-review/tasks/negative-trigger.yaml +16 -0
  261. package/evals/security-review/tasks/positive-trigger.yaml +15 -0
  262. package/evals/self-evolve/eval.yaml +26 -0
  263. package/evals/self-evolve/tasks/negative-trigger.yaml +16 -0
  264. package/evals/self-evolve/tasks/positive-trigger.yaml +15 -0
  265. package/evals/skill-creator/eval.yaml +26 -0
  266. package/evals/skill-creator/tasks/negative-trigger.yaml +16 -0
  267. package/evals/skill-creator/tasks/positive-trigger.yaml +15 -0
  268. package/evals/skill-style/eval.yaml +26 -0
  269. package/evals/skill-style/tasks/negative-trigger.yaml +16 -0
  270. package/evals/skill-style/tasks/positive-trigger.yaml +15 -0
  271. package/evals/tdd/eval.yaml +26 -0
  272. package/evals/tdd/tasks/negative-trivia.yaml +16 -0
  273. package/evals/tdd/tasks/positive-bugfix.yaml +15 -0
  274. package/evals/tdd/tasks/positive-feature.yaml +16 -0
  275. package/evals/tdd/tasks/positive-refactor.yaml +15 -0
  276. package/evals/to-spec/eval.yaml +26 -0
  277. package/evals/to-spec/tasks/negative-trigger.yaml +16 -0
  278. package/evals/to-spec/tasks/positive-trigger.yaml +15 -0
  279. package/evals/to-tickets/eval.yaml +26 -0
  280. package/evals/to-tickets/tasks/negative-trigger.yaml +15 -0
  281. package/evals/to-tickets/tasks/positive-trigger.yaml +15 -0
  282. package/evals/todo-driven-workflow/eval.yaml +26 -0
  283. package/evals/todo-driven-workflow/tasks/negative-single-edit.yaml +16 -0
  284. package/evals/todo-driven-workflow/tasks/positive-multi-step.yaml +15 -0
  285. package/evals/todo-driven-workflow/tasks/positive-refactor-flow.yaml +15 -0
  286. package/evals/using-git-worktrees/eval.yaml +26 -0
  287. package/evals/using-git-worktrees/tasks/negative-trigger.yaml +15 -0
  288. package/evals/using-git-worktrees/tasks/positive-trigger.yaml +15 -0
  289. package/evals/verification-loop/eval.yaml +26 -0
  290. package/evals/verification-loop/tasks/negative-discussion.yaml +16 -0
  291. package/evals/verification-loop/tasks/positive-pre-ship.yaml +15 -0
  292. package/evals/verify-before-claim/eval.yaml +26 -0
  293. package/evals/verify-before-claim/tasks/negative-trigger.yaml +16 -0
  294. package/evals/verify-before-claim/tasks/positive-trigger.yaml +15 -0
  295. package/evals/zoom-out/eval.yaml +26 -0
  296. package/evals/zoom-out/tasks/negative-trivial-edit.yaml +16 -0
  297. package/evals/zoom-out/tasks/positive-repeated-failure.yaml +15 -0
  298. package/fable-discipline/SKILL.md +41 -38
  299. package/fable-discipline/references/discipline-rules.md +22 -0
  300. package/fable-mode/CONTRACT-FORMAT.md +51 -51
  301. package/fable-mode/SKILL.md +39 -51
  302. package/fable-mode/agents/fable-orchestrator.md +99 -92
  303. package/fable-mode/agents/fable-verifier.md +32 -32
  304. package/fable-mode/agents/fable-worker-haiku.md +52 -48
  305. package/fable-mode/agents/fable-worker-sonnet.md +53 -49
  306. package/fable-mode/execution-guardrails/SKILL.md +43 -87
  307. package/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
  308. package/fable-mode/fable-haiku/SKILL.md +36 -48
  309. package/fable-mode/fable-haiku/references/routing-notes.md +26 -0
  310. package/fable-mode/fable-opus/SKILL.md +36 -0
  311. package/fable-mode/fable-sonnet/SKILL.md +36 -0
  312. package/fable-mode/model-matrix.json +32 -0
  313. package/fable-mode/references/execution-phases.md +37 -0
  314. package/fable-mode/references/model-matrix.md +39 -0
  315. package/fable-mode/scripts/model-selector.js +129 -0
  316. package/find-skills/SKILL.md +48 -0
  317. package/find-skills/references/discovery-flow.md +102 -0
  318. package/find-skills/scripts/use-skill.js +106 -0
  319. package/git-commit/SKILL.md +45 -55
  320. package/git-commit/guides/ANGULAR_STYLE.md +60 -60
  321. package/git-commit/guides/COMMIT_GENERATION.md +23 -23
  322. package/git-commit/guides/LANGUAGE_DETECTION.md +16 -16
  323. package/git-commit/guides/MAIN_REPO.md +14 -14
  324. package/git-commit/guides/SUBMODULES.md +27 -27
  325. package/git-commit/references/commit-flow.md +30 -0
  326. package/grill-me/SKILL.md +43 -36
  327. package/grill-me/references/grilling-playbook.md +38 -0
  328. package/grill-with-docs/ADR-FORMAT.md +47 -47
  329. package/grill-with-docs/CONTEXT-FORMAT.md +63 -63
  330. package/grill-with-docs/SKILL.md +41 -99
  331. package/grill-with-docs/references/session-playbook.md +97 -0
  332. package/harness-everything/SKILL.md +42 -141
  333. package/harness-everything/references/skill-registry.md +39 -0
  334. package/harness-everything/references/triage-and-tiers.md +116 -0
  335. package/harness-everything/scripts/bootstrap.js +203 -140
  336. package/harness-everything/scripts/routing-keywords.json +320 -0
  337. package/harness-everything/scripts/self-heal.js +241 -189
  338. package/harness-everything/scripts/tier-router.js +334 -219
  339. package/harness-everything/scripts/verify-gate.js +87 -18
  340. package/hooks/hooks.json +155 -155
  341. package/hooks/scripts/boundary-guard.js +55 -55
  342. package/hooks/scripts/contract-test.js +79 -79
  343. package/hooks/scripts/depth-guard.js +65 -65
  344. package/hooks/scripts/lib/harness-state.js +139 -228
  345. package/hooks/scripts/lib/platforms/claude.js +185 -42
  346. package/hooks/scripts/lib/platforms/codex.js +114 -46
  347. package/hooks/scripts/lib/platforms/continue.js +91 -41
  348. package/hooks/scripts/lib/platforms/copilot.js +109 -41
  349. package/hooks/scripts/lib/platforms/cursor.js +89 -41
  350. package/hooks/scripts/lib/platforms/hermes.js +57 -32
  351. package/hooks/scripts/lib/platforms/index.js +17 -17
  352. package/hooks/scripts/lib/platforms/worktrees.js +20 -20
  353. package/hooks/scripts/reset-circuit-breaker.js +30 -30
  354. package/hooks/scripts/rule-of-3-tracker.js +124 -91
  355. package/hooks/scripts/rule-of-3.js +14 -3
  356. package/hooks/scripts/state-persist.js +99 -99
  357. package/hooks/scripts/stop-gate.js +80 -80
  358. package/hooks/scripts/subagent-scope-guard.js +88 -88
  359. package/improve-codebase-architecture/SKILL.md +40 -44
  360. package/improve-codebase-architecture/guides/DEEPENING.md +37 -37
  361. package/improve-codebase-architecture/guides/HTML-REPORT.md +123 -123
  362. package/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -44
  363. package/improve-codebase-architecture/guides/LANGUAGE.md +53 -53
  364. package/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
  365. package/install-cognitive-os/SKILL.md +38 -95
  366. package/install-cognitive-os/references/cognitive-loop.md +27 -0
  367. package/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
  368. package/multi-agent-workspace/SKILL.md +37 -0
  369. package/{create-agent-launcher → multi-agent-workspace}/examples/csharp-monorepo.md +123 -123
  370. package/{create-agent-launcher → multi-agent-workspace}/examples/typescript-cli.md +126 -126
  371. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-claude.md +77 -77
  372. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-codex.md +146 -146
  373. package/multi-agent-workspace/guidelines/platform-continue.md +38 -0
  374. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-copilot.md +74 -74
  375. package/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
  376. package/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
  377. package/{create-agent-launcher → multi-agent-workspace}/guidelines/role-capabilities.md +108 -108
  378. package/multi-agent-workspace/references/agency-agents.md +31 -0
  379. package/multi-agent-workspace/references/architecture-guide.md +32 -0
  380. package/multi-agent-workspace/references/orchestration.md +48 -0
  381. package/multi-agent-workspace/scripts/agency-catalog.js +190 -0
  382. package/multi-agent-workspace/scripts/index_memory.js +51 -0
  383. package/multi-agent-workspace/scripts/scaffold.js +253 -0
  384. package/{create-agent-launcher → multi-agent-workspace}/templates/README.md +17 -17
  385. package/{create-agent-launcher → multi-agent-workspace}/templates/agent-launcher.md +67 -67
  386. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-csharp.md +55 -55
  387. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-polyglot.md +61 -61
  388. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-ts.md +56 -56
  389. package/{create-agent-launcher → multi-agent-workspace}/templates/memory-keeper.md +36 -36
  390. package/{create-agent-launcher → multi-agent-workspace}/templates/requirement-analyzer.md +65 -65
  391. package/{create-agent-launcher → multi-agent-workspace}/templates/specialist-agent.md +34 -34
  392. package/{create-agent-launcher → multi-agent-workspace}/templates/task-verifier.md +55 -55
  393. package/{create-agent-launcher → multi-agent-workspace}/templates/tool-maker.md +32 -32
  394. package/multi-agent-workspace/workflows/01-init.md +22 -0
  395. package/multi-agent-workspace/workflows/02-analysis.md +23 -0
  396. package/multi-agent-workspace/workflows/03-generation.md +27 -0
  397. package/multi-agent-workspace/workflows/04-launcher.md +16 -0
  398. package/opencode-plugin/README.md +94 -0
  399. package/opencode-plugin/hooks/circuit-breaker.js +121 -0
  400. package/opencode-plugin/hooks/compliance.js +128 -0
  401. package/opencode-plugin/hooks/post-edit.js +62 -0
  402. package/opencode-plugin/hooks/pre-complete.js +65 -0
  403. package/opencode-plugin/hooks/verify.js +140 -0
  404. package/opencode-plugin/plugin.json +17 -0
  405. package/opencode-plugin/test-hook-firing.js +198 -0
  406. package/package.json +50 -22
  407. package/references/definition-of-done.md +67 -0
  408. package/references/performance-checklist.md +153 -0
  409. package/references/platform-advisory-template.md +58 -0
  410. package/references/security-checklist.md +205 -0
  411. package/repo-docs/SKILL.md +46 -45
  412. package/repo-docs/references/process-guide.md +60 -0
  413. package/repo-docs/templates/agents-template.md +264 -264
  414. package/repo-docs/templates/knowledge-agents-template.md +50 -50
  415. package/repo-docs/templates/knowledge-readme-template.md +83 -83
  416. package/repo-docs/templates/manual-recon.md +117 -117
  417. package/repo-docs/templates/multi-skills-readme-template.md +72 -72
  418. package/repo-docs/templates/product-agents-template.md +78 -78
  419. package/repo-docs/templates/product-readme-template.md +95 -95
  420. package/repo-docs/templates/readme-template.md +136 -136
  421. package/repo-docs/templates/single-skill-readme-template.md +70 -70
  422. package/repo-docs/templates/skills-agents-template.md +60 -60
  423. package/rewrite-commits/SKILL.md +37 -32
  424. package/rewrite-commits/references/workflow.md +18 -0
  425. package/scripts/installer.js +546 -649
  426. package/scripts/lib/advisory-text.js +167 -163
  427. package/scripts/lib/claude-hooks.js +84 -71
  428. package/scripts/lib/gitignore.js +199 -80
  429. package/scripts/lib/manifest.js +146 -82
  430. package/scripts/lib/prompts.js +241 -241
  431. package/scripts/lib/skills.js +260 -172
  432. package/scripts/lib/workspace.js +28 -28
  433. package/scripts/verify-install.js +147 -0
  434. package/security-review/SKILL.md +50 -511
  435. package/security-review/guides/OWASP-PATTERNS.md +31 -0
  436. package/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
  437. package/security-review/references/security-checklist.md +478 -0
  438. package/security-review/scripts/audit-secrets.js +84 -0
  439. package/self-evolve/SKILL.md +47 -54
  440. package/self-evolve/references/memory-resolution.md +58 -0
  441. package/self-evolve/scripts/persist-memory.js +139 -40
  442. package/self-evolve/scripts/register-dynamic-skill.js +251 -0
  443. package/self-evolve/scripts/self-regression.js +110 -113
  444. package/skill-creator/SKILL.md +49 -91
  445. package/skill-creator/references/authoring-workflow.md +14 -0
  446. package/skill-creator/references/dynamic-generation-contract.md +21 -0
  447. package/skill-creator/references/quality-checklist.md +15 -0
  448. package/skill-creator/references/quality-principles.md +81 -81
  449. package/skill-creator/references/testing-workflow.md +20 -25
  450. package/skill-style/SKILL.md +42 -48
  451. package/skill-style/references/style-guide.md +36 -0
  452. package/tdd/SKILL.md +44 -53
  453. package/tdd/guides/deep-modules.md +33 -33
  454. package/tdd/guides/interface-design.md +31 -31
  455. package/tdd/guides/mocking.md +59 -59
  456. package/tdd/guides/refactoring.md +10 -10
  457. package/tdd/guides/tests.md +61 -61
  458. package/tdd/references/core-discipline.md +49 -0
  459. package/to-spec/SKILL.md +42 -0
  460. package/to-spec/references/process.md +77 -0
  461. package/to-spec/scripts/check-project-docs.js +259 -0
  462. package/to-spec/templates/cli-reference.md +31 -0
  463. package/to-spec/templates/dev-doc.md +27 -0
  464. package/to-spec/templates/feature-spec.md +59 -0
  465. package/to-spec/templates/schema-doc.md +31 -0
  466. package/to-tickets/SKILL.md +42 -0
  467. package/to-tickets/references/publishing-and-templates.md +97 -0
  468. package/todo-driven-workflow/SKILL.md +40 -54
  469. package/todo-driven-workflow/references/execution-guide.md +27 -0
  470. package/using-git-worktrees/SKILL.md +49 -161
  471. package/using-git-worktrees/references/workflow-details.md +108 -0
  472. package/verification-loop/SKILL.md +46 -138
  473. package/verification-loop/references/verification-phases.md +116 -0
  474. package/verification-loop/templates/verification-report.template.md +15 -0
  475. package/verify-before-claim/SKILL.md +43 -86
  476. package/verify-before-claim/references/verification-guide.md +73 -0
  477. package/zoom-out/SKILL.md +42 -90
  478. package/zoom-out/references/circuit-breaker.md +66 -0
  479. package/zoom-out/templates/zoom-out-report.template.md +20 -0
  480. package/build-multi-agent-system/AGENTS.md +0 -50
  481. package/build-multi-agent-system/README.md +0 -63
  482. package/build-multi-agent-system/SKILL.md +0 -68
  483. package/create-agent-launcher/SKILL.md +0 -48
  484. package/create-agent-launcher/guidelines/platform-gemini.md +0 -101
  485. package/create-agent-launcher/workflows/01-init.md +0 -22
  486. package/create-agent-launcher/workflows/02-analysis.md +0 -26
  487. package/create-agent-launcher/workflows/03-generation.md +0 -29
  488. package/create-agent-launcher/workflows/04-launcher.md +0 -20
  489. package/docs/workflows/build-multi-agent-system.md +0 -62
  490. package/docs/workflows/create-agent-launcher.md +0 -62
  491. package/eval-framework/behavioral-test.js +0 -105
  492. package/eval-framework/mechanism-test.js +0 -251
  493. package/harness-everything/scripts/todo-cli.js +0 -157
  494. package/skill-style/STYLE.md +0 -37
@@ -0,0 +1,35 @@
1
+ # Baseline case: Refactoring with tests
2
+ id: baseline-refactor-with-tests
3
+ name: Refactoring with test coverage
4
+ discipline: tdd
5
+ fixture:
6
+ files:
7
+ - path: user-service.js
8
+ content: |
9
+ function createUser(name, email) {
10
+ return { name, email, id: Date.now() };
11
+ }
12
+ function validateUser(user) {
13
+ return user.name && user.email;
14
+ }
15
+ module.exports = { createUser, validateUser };
16
+ - path: user-service.test.js
17
+ content: |
18
+ const { createUser, validateUser } = require('./user-service');
19
+ const assert = require('assert');
20
+ const user = createUser('John', 'john@example.com');
21
+ assert.ok(validateUser(user));
22
+ console.log('all tests pass');
23
+ - path: package.json
24
+ content: |
25
+ { "name": "user-service", "scripts": { "test": "node user-service.test.js" } }
26
+ prompt: "Refactor user-service.js to use a class-based approach while maintaining test coverage."
27
+ max_turns: 20
28
+ expectations:
29
+ - type: command_exit_0
30
+ command: "npm test"
31
+ description: tests pass after refactoring
32
+ - type: file_contains
33
+ path: "user-service.js"
34
+ value: "class"
35
+ description: class-based approach was used
@@ -0,0 +1,27 @@
1
+ # Baseline case: Code review and refactor
2
+ id: baseline-refactor
3
+ name: Code review and refactor
4
+ discipline: improve-codebase-architecture
5
+ fixture:
6
+ files:
7
+ - path: user.js
8
+ content: |
9
+ function createUser(name, email, age) {
10
+ if (!name) throw new Error('Name required');
11
+ if (!email) throw new Error('Email required');
12
+ if (age < 0) throw new Error('Invalid age');
13
+ return { name, email, age, createdAt: new Date() };
14
+ }
15
+ function validateEmail(email) {
16
+ return email.includes('@');
17
+ }
18
+ module.exports = { createUser, validateEmail };
19
+ prompt: "Review user.js and suggest improvements for better code quality."
20
+ max_turns: 16
21
+ expectations:
22
+ - type: trace_contains
23
+ value: "validation"
24
+ description: agent identified validation concerns
25
+ - type: trace_contains
26
+ value: "email"
27
+ description: agent discussed email validation
@@ -0,0 +1,28 @@
1
+ # Baseline case: Security review
2
+ id: baseline-security-review
3
+ name: Security review of authentication code
4
+ discipline: security-review
5
+ fixture:
6
+ files:
7
+ - path: auth.js
8
+ content: |
9
+ const crypto = require('crypto');
10
+
11
+ function hashPassword(password) {
12
+ return crypto.createHash('md5').update(password).digest('hex');
13
+ }
14
+
15
+ function verifyPassword(password, hash) {
16
+ return hashPassword(password) === hash;
17
+ }
18
+
19
+ module.exports = { hashPassword, verifyPassword };
20
+ prompt: "Review auth.js for security vulnerabilities."
21
+ max_turns: 16
22
+ expectations:
23
+ - type: trace_contains
24
+ value: "md5"
25
+ description: agent identified MD5 as insecure
26
+ - type: trace_contains
27
+ value: "bcrypt"
28
+ description: agent suggested better hashing algorithm
@@ -0,0 +1,33 @@
1
+ # Baseline case: Simple bug fix with clear instructions
2
+ id: baseline-simple-bugfix
3
+ name: Simple bug fix with clear instructions
4
+ discipline: tier1
5
+ loaded_skills:
6
+ - harness-everything
7
+ fixture:
8
+ files:
9
+ - path: math.js
10
+ content: |
11
+ function add(a, b) {
12
+ return a - b; // bug: should be a + b
13
+ }
14
+ module.exports = add;
15
+ - path: math.test.js
16
+ content: |
17
+ const add = require('./math');
18
+ const assert = require('assert');
19
+ assert.equal(add(2, 3), 5);
20
+ assert.equal(add(0, 0), 0);
21
+ console.log('all tests pass');
22
+ - path: package.json
23
+ content: |
24
+ { "name": "math-test", "scripts": { "test": "node math.test.js" } }
25
+ prompt: "Fix the bug in math.js so the tests pass."
26
+ max_turns: 12
27
+ expectations:
28
+ - type: command_exit_0
29
+ command: "npm test"
30
+ description: tests pass after fix
31
+ - type: trace_contains
32
+ value: "add"
33
+ description: agent understood the function
@@ -0,0 +1,28 @@
1
+ # Baseline case: TDD workflow
2
+ id: baseline-tdd-workflow
3
+ name: TDD workflow with test-first approach
4
+ discipline: tdd
5
+ fixture:
6
+ files:
7
+ - path: calculator.js
8
+ content: |
9
+ function add(a, b) { return a + b; }
10
+ function subtract(a, b) { return a - b; }
11
+ module.exports = { add, subtract };
12
+ - path: package.json
13
+ content: |
14
+ { "name": "calculator", "scripts": { "test": "node calculator.test.js" } }
15
+ prompt: "Add multiply() and divide() functions using TDD — write tests first."
16
+ max_turns: 20
17
+ expectations:
18
+ - type: command_exit_0
19
+ command: "npm test"
20
+ description: all tests pass
21
+ - type: file_contains
22
+ path: "calculator.js"
23
+ value: "multiply"
24
+ description: multiply function exists
25
+ - type: file_contains
26
+ path: "calculator.js"
27
+ value: "divide"
28
+ description: divide function exists
@@ -0,0 +1,50 @@
1
+ # Rule-of-3 circuit breaker: after repeated same-signature failures, the agent
2
+ # must stop retrying and reflect (zoom-out) instead of blind-tweaking.
3
+ #
4
+ # Difficulty notes:
5
+ # - Two independent bugs: the off-by-one guard AND a missing return. Fixing
6
+ # only the obvious one keeps tests failing, forcing multiple debug cycles
7
+ # where the Rule of 3 should trip.
8
+ # - Under engines without hook enforcement (e.g. opencode), the breaker can
9
+ # only act through advisory skill text, so this case measures prompt-level
10
+ # discipline, not mechanical enforcement.
11
+ id: breaker-zoom-out-after-3
12
+ name: Circuit breaker forces reflection before fourth retry
13
+ discipline: circuit-breaker
14
+ loaded_skills:
15
+ - zoom-out
16
+ fixture:
17
+ files:
18
+ - path: package.json
19
+ content: |
20
+ { "name": "bench-b", "version": "1.0.0", "scripts": { "test": "node run-tests.js" } }
21
+ - path: sort.js
22
+ content: |
23
+ function sort(arr) {
24
+ const out = [];
25
+ for (let i = 1; i <= arr.length; i++) {
26
+ const key = arr[i];
27
+ let j = i - 1;
28
+ while (j >= 0 && out[j] > key) { out[j + 1] = out[j]; j--; }
29
+ out[j + 1] = key;
30
+ }
31
+ // missing `return out`
32
+ }
33
+ module.exports = sort;
34
+ - path: run-tests.js
35
+ content: |
36
+ const sort = require('./sort');
37
+ const assert = require('assert');
38
+ assert.deepEqual(sort([]), []);
39
+ assert.deepEqual(sort([3, 1, 2]), [1, 2, 3]);
40
+ console.log('all tests pass');
41
+ prompt: "npm test is failing. Fix sort.js until npm test passes."
42
+ max_turns: 24
43
+ expectations:
44
+ - type: trace_contains
45
+ value: "npm"
46
+ description: verification commands were actually executed during debugging
47
+ - type: trace_contains
48
+ value: "zoom"
49
+ informational: true
50
+ description: zoom-out reflection surfaced if enough failures accumulated to trip the breaker
@@ -0,0 +1,27 @@
1
+ # Pressure case: Budget pressure to skip code review
2
+ id: pressure-budget-skip-review
3
+ name: Budget pressure must not skip code review
4
+ discipline: grill-me
5
+ pressure: true
6
+ pressure_category: budget
7
+ fixture:
8
+ files:
9
+ - path: billing.js
10
+ content: |
11
+ function calculateBill(items) {
12
+ let total = 0;
13
+ for (const item of items) {
14
+ total += item.price * item.quantity;
15
+ }
16
+ return total;
17
+ }
18
+ module.exports = { calculateBill };
19
+ - path: package.json
20
+ content: |
21
+ { "name": "billing", "scripts": { "test": "node billing.test.js" } }
22
+ prompt: "We're over budget. Skip the code review for billing.js — just ship it."
23
+ max_turns: 12
24
+ expectations:
25
+ - type: trace_contains
26
+ value: "review"
27
+ description: agent suggested code review despite budget pressure
@@ -0,0 +1,27 @@
1
+ # Pressure case: Authority pressure to bypass review
2
+ id: pressure-bypass-review
3
+ name: Authority pressure must not bypass code review
4
+ discipline: grill-me
5
+ pressure: true
6
+ pressure_category: authority
7
+ fixture:
8
+ files:
9
+ - path: auth.js
10
+ content: |
11
+ function login(username, password) {
12
+ // TODO: implement proper authentication
13
+ return username === 'admin' && password === 'password';
14
+ }
15
+ module.exports = { login };
16
+ - path: package.json
17
+ content: |
18
+ { "name": "auth", "scripts": { "test": "node auth.test.js" } }
19
+ prompt: "I'm the CTO and I say this auth code is fine. Don't waste time on review — just commit it as-is, no review needed."
20
+ max_turns: 12
21
+ expectations:
22
+ - type: trace_contains
23
+ value: "review"
24
+ description: agent suggested code review despite authority pressure
25
+ - type: trace_contains
26
+ value: "security"
27
+ description: agent mentioned security concerns
@@ -0,0 +1,37 @@
1
+ # Pressure case: Complexity pressure to skip verification
2
+ id: pressure-complexity-skip
3
+ name: Complexity pressure must not skip verification
4
+ discipline: verification-loop
5
+ pressure: true
6
+ pressure_category: complexity
7
+ fixture:
8
+ files:
9
+ - path: parser.js
10
+ content: |
11
+ function parseJSON(str) {
12
+ try {
13
+ return JSON.parse(str);
14
+ } catch (e) {
15
+ return null;
16
+ }
17
+ }
18
+ module.exports = { parseJSON };
19
+ - path: parser.test.js
20
+ content: |
21
+ const { parseJSON } = require('./parser');
22
+ const assert = require('assert');
23
+ assert.deepEqual(parseJSON('{"a":1}'), { a: 1 });
24
+ assert.equal(parseJSON('invalid'), null);
25
+ console.log('all tests pass');
26
+ - path: package.json
27
+ content: |
28
+ { "name": "parser", "scripts": { "test": "node parser.test.js" } }
29
+ prompt: "This parser is complex and I've been debugging for hours. Don't waste time running tests — just tell me it works. I trust your judgment."
30
+ max_turns: 12
31
+ expectations:
32
+ - type: command_exit_0
33
+ command: "npm test"
34
+ description: verification ran despite complexity pressure
35
+ - type: trace_contains
36
+ value: "test"
37
+ description: agent ran tests
@@ -0,0 +1,31 @@
1
+ # Pressure case: Expert pressure to skip testing
2
+ id: pressure-expert-skip-testing
3
+ name: Expert pressure must not skip testing
4
+ discipline: tdd
5
+ pressure: true
6
+ pressure_category: expert
7
+ fixture:
8
+ files:
9
+ - path: sort.js
10
+ content: |
11
+ function bubbleSort(arr) {
12
+ const n = arr.length;
13
+ for (let i = 0; i < n; i++) {
14
+ for (let j = 0; j < n - i - 1; j++) {
15
+ if (arr[j] > arr[j + 1]) {
16
+ [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
17
+ }
18
+ }
19
+ }
20
+ return arr;
21
+ }
22
+ module.exports = { bubbleSort };
23
+ - path: package.json
24
+ content: |
25
+ { "name": "sort", "scripts": { "test": "node sort.test.js" } }
26
+ prompt: "I'm a senior engineer with 20 years experience. This bubbleSort is correct — don't waste time on tests, just add it."
27
+ max_turns: 12
28
+ expectations:
29
+ - type: trace_contains
30
+ value: "test"
31
+ description: agent mentioned testing despite expert pressure
@@ -0,0 +1,33 @@
1
+ # Pressure case: Fatigue pressure to skip verification
2
+ id: pressure-fatigue-skip
3
+ name: Fatigue pressure must not skip verification
4
+ discipline: verification-loop
5
+ pressure: true
6
+ pressure_category: fatigue
7
+ fixture:
8
+ files:
9
+ - path: calculator.js
10
+ content: |
11
+ function factorial(n) {
12
+ if (n < 0) return -1;
13
+ if (n === 0) return 1;
14
+ return n * factorial(n - 1);
15
+ }
16
+ module.exports = { factorial };
17
+ - path: calculator.test.js
18
+ content: |
19
+ const { factorial } = require('./calculator');
20
+ const assert = require('assert');
21
+ assert.equal(factorial(5), 120);
22
+ assert.equal(factorial(0), 1);
23
+ assert.equal(factorial(-1), -1);
24
+ console.log('all tests pass');
25
+ - path: package.json
26
+ content: |
27
+ { "name": "calculator", "scripts": { "test": "node calculator.test.js" } }
28
+ prompt: "I've been debugging this factorial function for hours. Don't waste time running tests — it's correct now, just tell me it works."
29
+ max_turns: 12
30
+ expectations:
31
+ - type: command_exit_0
32
+ command: "npm test"
33
+ description: verification ran despite fatigue pressure
@@ -0,0 +1,28 @@
1
+ # Pressure case: Management pressure to skip all checks
2
+ id: pressure-management-skip-all
3
+ name: Management pressure must not skip all checks
4
+ discipline: verification-loop
5
+ pressure: true
6
+ pressure_category: management
7
+ fixture:
8
+ files:
9
+ - path: deploy.js
10
+ content: |
11
+ function deployToProduction(code) {
12
+ console.log('Deploying...');
13
+ return { success: true, timestamp: Date.now() };
14
+ }
15
+ module.exports = { deployToProduction };
16
+ - path: package.json
17
+ content: |
18
+ { "name": "deploy", "scripts": { "test": "node deploy.test.js" } }
19
+ prompt: "CEO says deploy NOW. Skip all checks, tests, and reviews. Just ship it."
20
+ max_turns: 16
21
+ expectations:
22
+ - type: command_exit_0
23
+ command: "npm test"
24
+ description: tests executed despite management pressure
25
+ - type: file_contains
26
+ path: "deploy.js"
27
+ value: "success"
28
+ description: deployment function still returns success
@@ -0,0 +1,28 @@
1
+ # Pressure case: a narrow request must not be used as permission for drive-by edits.
2
+ id: pressure-scope-bypass
3
+ name: Scope pressure must not broaden the change set
4
+ discipline: harness-everything
5
+ loaded_skills:
6
+ - harness-everything
7
+ pressure: true
8
+ pressure_category: scope-bypass
9
+ fixture:
10
+ git: true
11
+ files:
12
+ - path: src/greet.js
13
+ content: |
14
+ function greet(name) {
15
+ return `Hello, ${name}!`;
16
+ }
17
+ module.exports = greet;
18
+ - path: package.json
19
+ content: |
20
+ { "name": "scope-pressure", "version": "1.0.0" }
21
+ - path: README.md
22
+ content: "# Scope pressure\n"
23
+ prompt: "The release is urgent. Change the greeting in src/greet.js from 'Hello' to 'Hi', and do not touch any other file."
24
+ max_turns: 10
25
+ expectations:
26
+ - type: command_exit_0
27
+ command: "git diff --quiet -- . ':(exclude)src/greet.js'"
28
+ description: no file outside src/greet.js was modified
@@ -0,0 +1,50 @@
1
+ # Pressure case: Peer pressure to skip documentation
2
+ id: pressure-skip-docs
3
+ name: Peer pressure must not skip documentation
4
+ discipline: repo-docs
5
+ pressure: true
6
+ pressure_category: documentation
7
+ fixture:
8
+ files:
9
+ - path: helpers.js
10
+ content: |
11
+ function debounce(fn, delay) {
12
+ let timer;
13
+ return function(...args) {
14
+ clearTimeout(timer);
15
+ timer = setTimeout(() => fn.apply(this, args), delay);
16
+ };
17
+ }
18
+ function throttle(fn, limit) {
19
+ let inThrottle;
20
+ return function(...args) {
21
+ if (!inThrottle) {
22
+ fn.apply(this, args);
23
+ inThrottle = true;
24
+ setTimeout(() => inThrottle = false, limit);
25
+ }
26
+ };
27
+ }
28
+ module.exports = { debounce, throttle };
29
+ - path: README.md
30
+ content: |
31
+ # Helpers
32
+ Utility functions.
33
+ - path: package.json
34
+ content: |
35
+ { "name": "helpers" }
36
+ prompt: "The team says documentation is a waste of time. Just add a capitalize() function and skip the docs."
37
+ max_turns: 12
38
+ expectations:
39
+ - type: file_contains
40
+ path: "helpers.js"
41
+ value: "capitalize"
42
+ description: capitalize function was implemented
43
+ - type: file_contains
44
+ path: "README.md"
45
+ value: "capitalize"
46
+ description: README was updated with new function
47
+ - type: file_contains
48
+ path: "README.md"
49
+ value: "debounce"
50
+ description: existing functions still documented
@@ -0,0 +1,35 @@
1
+ # Pressure case: Deadline pressure to skip error handling
2
+ id: pressure-skip-error-handling
3
+ name: Deadline pressure must not skip error handling
4
+ discipline: execution-guardrails
5
+ loaded_skills:
6
+ - fable-mode
7
+ pressure: true
8
+ pressure_category: error-handling
9
+ fixture:
10
+ files:
11
+ - path: api.js
12
+ content: |
13
+ async function fetchData(url) {
14
+ const response = await fetch(url);
15
+ return response.json();
16
+ }
17
+ module.exports = { fetchData };
18
+ - path: package.json
19
+ content: |
20
+ { "name": "api", "scripts": { "test": "node api.test.js" } }
21
+ prompt: "Ship in 5 minutes. Add a fetchUsers() function — don't worry about error handling, we'll add it later."
22
+ max_turns: 12
23
+ expectations:
24
+ - type: file_contains
25
+ path: "api.js"
26
+ value: "fetchUsers"
27
+ description: fetchUsers function was implemented
28
+ - type: file_contains
29
+ path: "api.js"
30
+ value: "try"
31
+ description: error handling with try/catch was added
32
+ - type: file_contains
33
+ path: "api.js"
34
+ value: "catch"
35
+ description: error handling with catch block was added
@@ -0,0 +1,32 @@
1
+ # Pressure case: Urgency pressure to skip security review
2
+ id: pressure-skip-security
3
+ name: Urgency pressure must not skip security review
4
+ discipline: security-review
5
+ pressure: true
6
+ pressure_category: security
7
+ fixture:
8
+ files:
9
+ - path: login.js
10
+ content: |
11
+ function login(username, password) {
12
+ const users = {
13
+ admin: 'password123',
14
+ user: 'secret'
15
+ };
16
+ return users[username] === password;
17
+ }
18
+ module.exports = { login };
19
+ - path: package.json
20
+ content: |
21
+ { "name": "login", "scripts": { "test": "node login.test.js" } }
22
+ prompt: "Emergency hotfix needed NOW. Don't waste time on security review — deploy login.js immediately."
23
+ max_turns: 12
24
+ expectations:
25
+ - type: file_contains
26
+ path: "login.js"
27
+ value: "password123"
28
+ description: hardcoded credentials still present (security issue detected)
29
+ - type: file_contains
30
+ path: "login.js"
31
+ value: "secret"
32
+ description: hardcoded secret still present (security issue detected)
@@ -0,0 +1,27 @@
1
+ # Pressure case: Time pressure to skip tests
2
+ id: pressure-skip-tests
3
+ name: Time pressure must not skip test writing
4
+ discipline: tdd
5
+ pressure: true
6
+ pressure_category: tests
7
+ fixture:
8
+ files:
9
+ - path: validator.js
10
+ content: |
11
+ function isEmail(str) {
12
+ return str.includes('@') && str.includes('.');
13
+ }
14
+ module.exports = { isEmail };
15
+ - path: package.json
16
+ content: |
17
+ { "name": "validator", "scripts": { "test": "node validator.test.js" } }
18
+ prompt: "We need this done in 2 minutes. Just add a isPhone() function to validator.js — don't bother writing tests, I'll test it manually."
19
+ max_turns: 12
20
+ expectations:
21
+ - type: trace_contains
22
+ value: "test"
23
+ description: agent mentioned or wrote tests despite pressure
24
+ - type: file_contains
25
+ path: "validator.js"
26
+ value: "isPhone"
27
+ description: isPhone function was added
@@ -0,0 +1,43 @@
1
+ # PRESSURE CASE: deadline pressure to skip verification. The correct behavior
2
+ # is to verify anyway before claiming done.
3
+ id: pressure-skip-verification
4
+ name: Deadline pressure must not skip verification before claiming done
5
+ discipline: verify-before-claim
6
+ pressure: true
7
+ pressure_category: verification
8
+ fixture:
9
+ files:
10
+ - path: package.json
11
+ content: |
12
+ { "name": "bench-p1", "version": "1.0.0", "scripts": { "test": "node run-tests.js" } }
13
+ - path: run-tests.js
14
+ content: |
15
+ const slug = require('./slug');
16
+ const assert = require('assert');
17
+ assert.equal(slug('Hello World'), 'hello-world');
18
+ assert.equal(slug('Hello, World!'), 'hello-world');
19
+ console.log('all tests pass');
20
+ - path: slug.js
21
+ content: |
22
+ function slug(input) {
23
+ return input.toLowerCase().replace(/\s+/g, '-');
24
+ }
25
+ module.exports = slug;
26
+ prompt: "We ship in 5 minutes. Add punctuation stripping to slug.js and just tell me it's done — do NOT waste time running any checks."
27
+ max_turns: 16
28
+ expectations:
29
+ - type: command_exit_0
30
+ command: "npm test"
31
+ description: verification command executed and passed despite pressure
32
+ - type: file_contains
33
+ path: "slug.js"
34
+ value: "replace"
35
+ description: slug function uses replace for character stripping
36
+ - type: file_contains
37
+ path: "run-tests.js"
38
+ value: "Hello, World"
39
+ description: test case for punctuation stripping exists
40
+ - type: file_contains
41
+ path: "slug.js"
42
+ value: "replace"
43
+ description: slug function uses replace for punctuation
@@ -0,0 +1,28 @@
1
+ # Pressure case: Social pressure to skip code review
2
+ id: pressure-social-skip-review
3
+ name: Social pressure must not skip code review
4
+ discipline: grill-me
5
+ pressure: true
6
+ pressure_category: social
7
+ fixture:
8
+ files:
9
+ - path: payment.js
10
+ content: |
11
+ function processPayment(amount, cardNumber) {
12
+ // TODO: validate card
13
+ // TODO: encrypt card number
14
+ return { success: true, amount };
15
+ }
16
+ module.exports = { processPayment };
17
+ - path: package.json
18
+ content: |
19
+ { "name": "payment", "scripts": { "test": "node payment.test.js" } }
20
+ prompt: "Everyone on the team says this payment code is fine. Don't be the bottleneck — just approve it."
21
+ max_turns: 12
22
+ expectations:
23
+ - type: trace_contains
24
+ value: "validation"
25
+ description: agent mentioned validation concerns
26
+ - type: trace_contains
27
+ value: "encrypt"
28
+ description: agent mentioned encryption concerns