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,68 @@
1
+ # Eval Harness — Full Process & Scoring Rubric
2
+
3
+ ## Process & Evaluation Output Flow
4
+
5
+ Follow the decision matrix below to evaluate performance and record scorecards:
6
+
7
+ ```mermaid
8
+ flowchart TD
9
+ Start[Trigger: Benchmark / Evaluate Log] --> Parse[1. Parse Log: Actions, Loops, Tokens]
10
+ Parse --> Score[2. Calculate 4-Dimension Rubric Scores]
11
+
12
+ Score --> CheckScript{3. Is evaluate.js Executable?}
13
+
14
+ CheckScript -- Yes --> RunScript[Run node "<this-skill-dir>/scripts/evaluate.js" <scores> <insights>]
15
+ RunScript -- Exit 0 (Success) --> Done[Scorecard Saved to evals/]
16
+ RunScript -- Fails --> FileFallback
17
+
18
+ CheckScript -- No --> FileFallback{4. Markdown File Fallback}
19
+
20
+ FileFallback -- evals/ Directory Exists --> WriteEvals[Write to evals/scorecard.md]
21
+ FileFallback -- No evals/ Directory --> WritePlatform[Write to .github/harness-everything/evals/scorecard.md]
22
+
23
+ WriteEvals --> Done
24
+ WritePlatform --> Done
25
+ ```
26
+
27
+ ## 1. Data Parsing `[Discover]`
28
+ - Read the execution logs provided by the user or directly analyze the current conversation history.
29
+ - Extract key metrics:
30
+ - **Action Count**: Includes the number of file reads, searches, and terminal executions.
31
+ - **Error Loop Count**: The number of times the same error message appeared consecutively triggering attempted micro-adjustments.
32
+ - **Token / Time Indicator**: Record token consumption or time spent if provided by the user.
33
+
34
+ ## 2. Scoring Rubric `[Think]`
35
+
36
+ Score based on the following four dimensions (out of 10 points each):
37
+
38
+ ### A. Correctness & Factuality
39
+ - 10 points: Perfectly solved the problem with no side effects. Clearly knows its own knowledge boundaries, **no hallucinations or fabricated facts**.
40
+ - 5 points: Solved the surface problem but introduced new issues, or provided slightly outdated information.
41
+ - 0 points: Task failed, broke original code, or "hallucinated with straight-faced confidence".
42
+
43
+ ### B. Token & Step Efficiency
44
+ - 10 points: Extremely streamlined, no superfluous exploration or useless tool calls (prevented over-engineering).
45
+ - 5 points: Reasonable steps, but with minor unnecessary file reads.
46
+ - 0 points: Over-engineered, writing lengthy plans or repeatedly reading irrelevant files for a simple task.
47
+
48
+ ### C. Anti-loop & Focus
49
+ - 10 points: Decisively triggered `zoom-out` when hitting a bottleneck, rebuilt the full picture, and either self-recovered on a fresh diagnosis or escalated a genuine decision with options; did not hit a dead end or dump an "I'm stuck" on the human.
50
+ - 5 points: Stopped after 3~5 attempts.
51
+ - 0 points: Fell into a Micro-error looping cycle more than 5 times, or completely forgot the initial goal.
52
+
53
+ ### D. Environment & Tool Awareness
54
+ - 10 points: Accurately detected OS, terminal shell (e.g., Git Bash vs PowerShell), and available tools in the `[Discover]` phase before acting. No syntax errors caused by wrong shell assumptions.
55
+ - 5 points: Made an initial incorrect assumption about the terminal/tools but corrected it immediately after the first failure.
56
+ - 0 points: Blindly threw commands (e.g., PowerShell syntax in Git Bash) and repeatedly failed without realizing the environment mismatch.
57
+
58
+ ## 3. Output Report `[Summarize]`
59
+ - **MANDATORY**: You MUST execute the evaluation script to generate and save the report.
60
+ - Find the `evaluate.js` script in the `scripts/` directory of this skill and run it via terminal:
61
+
62
+ ```bash
63
+ node "<this-skill-dir>/scripts/evaluate.js" <scoreA> <scoreB> <scoreC> <scoreD> "<Your insights here>"
64
+ ```
65
+
66
+ *(Example: `node scripts/evaluate.js 10 5 10 10 "The agent successfully used zoom-out..."`)* — run with `--help` for the scoring-dimension reference.
67
+
68
+ The script will automatically generate the Markdown-formatted **Scorecard Table** and save it to the project's `evals/` directory.
@@ -1,61 +1,77 @@
1
- #!/usr/bin/env node
2
- const fs = require('fs');
3
- const path = require('path');
4
-
5
- const args = process.argv.slice(2);
6
- if (args.length < 5) {
7
- console.error("Usage: node evaluate.js <scoreA> <scoreB> <scoreC> <scoreD> \"<insights>\"");
8
- console.error("Scores should be 0, 5, or 10.");
9
- process.exit(1);
10
- }
11
-
12
- const [scoreA, scoreB, scoreC, scoreD, ...insightParts] = args;
13
- const insights = insightParts.join(" ");
14
-
15
- const scores = {
16
- "Correctness & Factuality": parseInt(scoreA, 10),
17
- "Token & Step Efficiency": parseInt(scoreB, 10),
18
- "Anti-loop & Focus": parseInt(scoreC, 10),
19
- "Environment & Tool Awareness": parseInt(scoreD, 10)
20
- };
21
-
22
- let total = 0;
23
- let markdown = `## Harness Evaluation Report - ${new Date().toISOString()}\n\n| Dimension | Score |\n|---|---|\n`;
24
-
25
- for (const [dim, score] of Object.entries(scores)) {
26
- if (isNaN(score)) {
27
- console.error(`Error: Score for ${dim} is not a valid number.`);
28
- process.exit(1);
29
- }
30
- markdown += `| ${dim} | ${score}/10 |\n`;
31
- total += score;
32
- }
33
-
34
- markdown += `| **Total Score** | **${total}/40** |\n\n`;
35
- markdown += `### Insights\n${insights}\n\n---\n`;
36
-
37
- function getWorkspaceRoot() {
38
- let dir = path.resolve(process.cwd());
39
- while (dir !== path.parse(dir).root) {
40
- if (fs.existsSync(path.join(dir, '.git'))) return dir;
41
- dir = path.dirname(dir);
42
- }
43
- return process.cwd();
44
- }
45
-
46
- // Store the evaluations in an evals folder in the project root
47
- const evalDir = path.join(getWorkspaceRoot(), 'evals');
48
- if (!fs.existsSync(evalDir)) {
49
- fs.mkdirSync(evalDir, { recursive: true });
50
- }
51
-
52
- const reportPath = path.join(evalDir, 'evaluation-reports.md');
53
- try {
54
- fs.appendFileSync(reportPath, markdown, 'utf8');
55
- console.log(`[Success] Evaluation report generated and saved to ${reportPath}`);
56
- console.log('\n--- Report Preview ---\n');
57
- console.log(markdown);
58
- } catch (err) {
59
- console.error(`[Error] Failed to write evaluation report: ${err.message}`);
60
- process.exit(1);
61
- }
1
+ #!/usr/bin/env node
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+
5
+ const args = process.argv.slice(2);
6
+
7
+ if (args[0] === '--help' || args[0] === '-h') {
8
+ console.log(`Score a Harness-guarded session and write an evaluation report.
9
+
10
+ Usage: node evaluate.js <scoreA> <scoreB> <scoreC> <scoreD> "<insights>"
11
+
12
+ Four positional scores (0, 5, or 10 each), in this order:
13
+ scoreA Correctness & Factuality
14
+ scoreB Token & Step Efficiency
15
+ scoreC Anti-loop & Focus
16
+ scoreD Environment & Tool Awareness
17
+
18
+ Followed by one free-text insights string (wrap in quotes).`);
19
+ process.exit(0);
20
+ }
21
+
22
+ if (args.length < 5) {
23
+ console.error("Usage: node evaluate.js <scoreA> <scoreB> <scoreC> <scoreD> \"<insights>\"");
24
+ console.error("Scores should be 0, 5, or 10.");
25
+ process.exit(1);
26
+ }
27
+
28
+ const [scoreA, scoreB, scoreC, scoreD, ...insightParts] = args;
29
+ const insights = insightParts.join(" ");
30
+
31
+ const scores = {
32
+ "Correctness & Factuality": parseInt(scoreA, 10),
33
+ "Token & Step Efficiency": parseInt(scoreB, 10),
34
+ "Anti-loop & Focus": parseInt(scoreC, 10),
35
+ "Environment & Tool Awareness": parseInt(scoreD, 10)
36
+ };
37
+
38
+ let total = 0;
39
+ let markdown = `## Harness Evaluation Report - ${new Date().toISOString()}\n\n| Dimension | Score |\n|---|---|\n`;
40
+
41
+ for (const [dim, score] of Object.entries(scores)) {
42
+ if (isNaN(score)) {
43
+ console.error(`Error: Score for ${dim} is not a valid number.`);
44
+ process.exit(1);
45
+ }
46
+ markdown += `| ${dim} | ${score}/10 |\n`;
47
+ total += score;
48
+ }
49
+
50
+ markdown += `| **Total Score** | **${total}/40** |\n\n`;
51
+ markdown += `### Insights\n${insights}\n\n---\n`;
52
+
53
+ function getWorkspaceRoot() {
54
+ let dir = path.resolve(process.cwd());
55
+ while (dir !== path.parse(dir).root) {
56
+ if (fs.existsSync(path.join(dir, '.git'))) return dir;
57
+ dir = path.dirname(dir);
58
+ }
59
+ return process.cwd();
60
+ }
61
+
62
+ // Store the evaluations in an evals folder in the project root
63
+ const evalDir = path.join(getWorkspaceRoot(), 'evals');
64
+ if (!fs.existsSync(evalDir)) {
65
+ fs.mkdirSync(evalDir, { recursive: true });
66
+ }
67
+
68
+ const reportPath = path.join(evalDir, 'evaluation-reports.md');
69
+ try {
70
+ fs.appendFileSync(reportPath, markdown, 'utf8');
71
+ console.log(`[Success] Evaluation report generated and saved to ${reportPath}`);
72
+ console.log('\n--- Report Preview ---\n');
73
+ console.log(markdown);
74
+ } catch (err) {
75
+ console.error(`[Error] Failed to write evaluation report: ${err.message}`);
76
+ process.exit(1);
77
+ }
@@ -0,0 +1,26 @@
1
+ name: environment-detection-routing-eval
2
+ description: Trigger precision eval for the environment-detection skill.
3
+ skill: environment-detection
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did environment-detection trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-environment-detection-001
2
+ name: Off-scope prompt must not trigger environment-detection
3
+ description: A request outside environment-detection's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Write a short haiku about autumn rain."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "Preflight"
16
+ - "package manager"
@@ -0,0 +1,15 @@
1
+ id: positive-environment-detection-001
2
+ name: On-scope prompt triggers environment-detection
3
+ description: "Use at session start (Discover phase) to detect and align with the operating system, shell (Git Bash vs PowerShell vs CMD), package managers, and dev tools; prevents blind command execution and repetitive tool errors."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Run environment detection so you know my OS, shell, and package manager before touching anything."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "shell"
@@ -0,0 +1,26 @@
1
+ name: eval-harness-routing-eval
2
+ description: Trigger precision eval for the eval-harness skill.
3
+ skill: eval-harness
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did eval-harness trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-eval-harness-001
2
+ name: Off-scope prompt must not trigger eval-harness
3
+ description: A request outside eval-harness's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Refactor the auth module to use middleware."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "eval-harness"
16
+ - "scoring rubric"
@@ -0,0 +1,15 @@
1
+ id: positive-eval-harness-001
2
+ name: On-scope prompt triggers eval-harness
3
+ description: "Evaluate AI agent performance across correctness, token efficiency, anti-loop focus, and environment awareness; save a 4-dimension scorecard. Use when asked to run a benchmark or score an execution log or conversation history."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Score these two agent session logs against each other and tell me which performed better."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "score"
@@ -0,0 +1,26 @@
1
+ name: fable-discipline-routing-eval
2
+ description: Trigger precision eval for the fable-discipline skill.
3
+ skill: fable-discipline
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did fable-discipline trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-fable-discipline-001
2
+ name: Off-scope prompt must not trigger fable-discipline
3
+ description: A request outside fable-discipline's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Rename the variable x to y in config.js."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "discipline"
16
+ - "replan"
@@ -0,0 +1,15 @@
1
+ id: positive-fable-discipline-001
2
+ name: On-scope prompt triggers fable-discipline
3
+ description: "Enforce fable-mode's context discipline as a shadow guard. Use when running staged multi-agent loops to prevent context bloat, cap per-stage output size, keep each stage within its physical token boundaries, and stop agents from reading files outside the current stage's scope."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Enforce stage discipline on this large parallel build-out with named workers and per-stage verification."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "stage"
@@ -0,0 +1,26 @@
1
+ name: fable-mode-routing-eval
2
+ description: Trigger precision eval for the fable-mode skill.
3
+ skill: fable-mode
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did fable-mode trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,18 @@
1
+ id: negative-fable-model-005
2
+ name: Ordinary Tier 2 work does not select a fable model
3
+ description: A normal Tier 2 bugfix must not route to a model-pinned fable entrypoint.
4
+ tags:
5
+ - negative-trigger
6
+ - tier-2
7
+ inputs:
8
+ prompt: "Fix this checkout bug with a regression test; keep the change to the affected module."
9
+ expected:
10
+ should_trigger: false
11
+ graders:
12
+ - type: text
13
+ name: no-model-pinned-route
14
+ config:
15
+ contains:
16
+ - "fable-opus"
17
+ - "fable-sonnet"
18
+ - "fable-haiku"
@@ -0,0 +1,16 @@
1
+ id: negative-fable-mode-001
2
+ name: Off-scope prompt must not trigger fable-mode
3
+ description: A request outside fable-mode's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Answer a quick question about CSS specificity."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "fable"
16
+ - "orchestrator"
@@ -0,0 +1,16 @@
1
+ id: positive-fable-haiku-002
2
+ name: Explicit Haiku mode routes mechanical work
3
+ description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
4
+ tags:
5
+ - positive-trigger
6
+ - fable-haiku
7
+ inputs:
8
+ prompt: "Fable on haiku: convert the repository's JSON fixtures to the new stable format and verify every output."
9
+ expected:
10
+ should_trigger: true
11
+ graders:
12
+ - type: text
13
+ name: routes-haiku
14
+ config:
15
+ contains:
16
+ - "haiku"
@@ -0,0 +1,16 @@
1
+ id: positive-fable-opus-004
2
+ name: Explicit Opus mode routes macro orchestration
3
+ description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
4
+ tags:
5
+ - positive-trigger
6
+ - fable-opus
7
+ inputs:
8
+ prompt: "Fable on opus: orchestrate the cross-service migration, delegate artifacts to named workers, and cold-verify the final architecture decision."
9
+ expected:
10
+ should_trigger: true
11
+ graders:
12
+ - type: text
13
+ name: routes-opus
14
+ config:
15
+ contains:
16
+ - "opus"
@@ -0,0 +1,16 @@
1
+ id: positive-fable-sonnet-003
2
+ name: Explicit Sonnet mode routes reasoning work
3
+ description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
4
+ tags:
5
+ - positive-trigger
6
+ - fable-sonnet
7
+ inputs:
8
+ prompt: "Fable on sonnect: synthesize the API research, implement the bounded adapter, and report the named verification command."
9
+ expected:
10
+ should_trigger: true
11
+ graders:
12
+ - type: text
13
+ name: routes-sonnet
14
+ config:
15
+ contains:
16
+ - "sonnet"
@@ -0,0 +1,15 @@
1
+ id: positive-fable-mode-001
2
+ name: On-scope prompt triggers fable-mode
3
+ description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Execute this large multi-phase refactor of the persistence layer using parallel sub-agent workers."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "worker"
@@ -0,0 +1,26 @@
1
+ name: find-skills-routing-eval
2
+ description: Trigger precision eval for the find-skills skill.
3
+ skill: find-skills
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did find-skills trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-find-skills-001
2
+ name: Off-scope prompt must not trigger find-skills
3
+ description: A request outside find-skills's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Run the test suite and report failures."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "skills.sh"
16
+ - "npx skills"
@@ -0,0 +1,15 @@
1
+ id: positive-find-skills-001
2
+ name: On-scope prompt triggers find-skills
3
+ description: "Search the agent-skills ecosystem (skills.sh / npx skills) when no installed skill fits; verify quality, apply ephemerally via temp cache by default, and install permanently via npx skills add only with explicit user approval"
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Find a skill that can generate mermaid sequence diagrams from code."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "skill"
@@ -0,0 +1,26 @@
1
+ name: git-commit-routing-eval
2
+ description: Trigger precision eval for the git-commit skill.
3
+ skill: git-commit
4
+ version: "1.0"
5
+ config:
6
+ trials_per_task: 1
7
+ timeout_seconds: 300
8
+ parallel: false
9
+ executor: copilot-sdk
10
+ model: claude-sonnet-4.6
11
+ metrics:
12
+ - name: task_completion
13
+ weight: 0.7
14
+ threshold: 0.8
15
+ description: Did git-commit trigger exactly when it should?
16
+ - name: efficiency
17
+ weight: 0.3
18
+ threshold: 0.7
19
+ description: Did the skill stay within behavior limits?
20
+ graders:
21
+ - type: behavior
22
+ name: token-budget
23
+ config:
24
+ max_tokens: 1200
25
+ tasks:
26
+ - "tasks/*.yaml"
@@ -0,0 +1,16 @@
1
+ id: negative-git-commit-001
2
+ name: Off-scope prompt must not trigger git-commit
3
+ description: A request outside git-commit's DO NOT USE FOR scope must leave it dormant.
4
+ tags:
5
+ - negative-trigger
6
+ inputs:
7
+ prompt: "Explain the difference between git rebase and git merge."
8
+ expected:
9
+ should_trigger: false
10
+ graders:
11
+ - type: text
12
+ name: not-contains-keywords
13
+ config:
14
+ contains:
15
+ - "Conventional Commit"
16
+ - "staged"
@@ -0,0 +1,15 @@
1
+ id: positive-git-commit-001
2
+ name: On-scope prompt triggers git-commit
3
+ description: "Generate Angular-style commit messages after verifying the environment, submodules, and staged files; use for explicit commit requests or concluded task phases."
4
+ tags:
5
+ - positive-trigger
6
+ inputs:
7
+ prompt: "Commit these staged changes with a conventional commit message following our house style."
8
+ expected:
9
+ should_trigger: true
10
+ graders:
11
+ - type: text
12
+ name: contains-keywords
13
+ config:
14
+ contains:
15
+ - "commit"