harness-everything 0.2.2 → 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 (496) 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 +10 -10
  174. package/docs/workflows/eval-harness.md +13 -6
  175. package/docs/workflows/fable-discipline.md +9 -9
  176. package/docs/workflows/fable-mode.md +29 -32
  177. package/docs/workflows/find-skills.md +36 -0
  178. package/docs/workflows/git-commit.md +18 -9
  179. package/docs/workflows/grill-me.md +11 -11
  180. package/docs/workflows/grill-with-docs.md +14 -7
  181. package/docs/workflows/harness-everything.md +95 -92
  182. package/docs/workflows/improve-codebase-architecture.md +15 -7
  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 +12 -7
  186. package/docs/workflows/security-review.md +26 -7
  187. package/docs/workflows/self-evolve.md +27 -44
  188. package/docs/workflows/skill-creator.md +80 -75
  189. package/docs/workflows/skill-style.md +64 -64
  190. package/docs/workflows/tdd.md +42 -39
  191. package/docs/workflows/to-spec.md +83 -0
  192. package/docs/workflows/to-tickets.md +80 -0
  193. package/docs/workflows/todo-driven-workflow.md +34 -36
  194. package/docs/workflows/using-git-worktrees.md +12 -8
  195. package/docs/workflows/verification-loop.md +16 -14
  196. package/docs/workflows/verify-before-claim.md +12 -8
  197. package/docs/workflows/zoom-out.md +22 -10
  198. package/environment-detection/SKILL.md +25 -61
  199. package/environment-detection/references/shell-syntax-rules.md +76 -0
  200. package/environment-detection/scripts/preflight.js +103 -93
  201. package/eval-framework/fixtures/bad-frontmatter-colon/SKILL.md +14 -0
  202. package/eval-framework/fixtures/duplicate-desc-skill-a/SKILL.md +14 -0
  203. package/eval-framework/fixtures/duplicate-desc-skill-b/SKILL.md +14 -0
  204. package/eval-framework/fixtures/missing-delimiter/SKILL.md +13 -0
  205. package/eval-framework/fixtures/over-budget-skill/SKILL.md +36 -0
  206. package/eval-harness/SKILL.md +34 -51
  207. package/eval-harness/references/scoring-rubric.md +68 -0
  208. package/eval-harness/scripts/evaluate.js +77 -61
  209. package/evals/environment-detection/eval.yaml +26 -0
  210. package/evals/environment-detection/tasks/negative-trigger.yaml +16 -0
  211. package/evals/environment-detection/tasks/positive-trigger.yaml +15 -0
  212. package/evals/eval-harness/eval.yaml +26 -0
  213. package/evals/eval-harness/tasks/negative-trigger.yaml +16 -0
  214. package/evals/eval-harness/tasks/positive-trigger.yaml +15 -0
  215. package/evals/fable-discipline/eval.yaml +26 -0
  216. package/evals/fable-discipline/tasks/negative-trigger.yaml +16 -0
  217. package/evals/fable-discipline/tasks/positive-trigger.yaml +15 -0
  218. package/evals/fable-mode/eval.yaml +26 -0
  219. package/evals/fable-mode/tasks/negative-tier2-no-model.yaml +18 -0
  220. package/evals/fable-mode/tasks/negative-trigger.yaml +16 -0
  221. package/evals/fable-mode/tasks/positive-haiku-mode.yaml +16 -0
  222. package/evals/fable-mode/tasks/positive-opus-mode.yaml +16 -0
  223. package/evals/fable-mode/tasks/positive-sonnet-mode.yaml +16 -0
  224. package/evals/fable-mode/tasks/positive-trigger.yaml +15 -0
  225. package/evals/find-skills/eval.yaml +26 -0
  226. package/evals/find-skills/tasks/negative-trigger.yaml +16 -0
  227. package/evals/find-skills/tasks/positive-trigger.yaml +15 -0
  228. package/evals/git-commit/eval.yaml +26 -0
  229. package/evals/git-commit/tasks/negative-trigger.yaml +16 -0
  230. package/evals/git-commit/tasks/positive-trigger.yaml +15 -0
  231. package/evals/grill-me/eval.yaml +26 -0
  232. package/evals/grill-me/tasks/negative-trigger.yaml +16 -0
  233. package/evals/grill-me/tasks/positive-trigger.yaml +15 -0
  234. package/evals/grill-with-docs/eval.yaml +26 -0
  235. package/evals/grill-with-docs/tasks/negative-trigger.yaml +16 -0
  236. package/evals/grill-with-docs/tasks/positive-trigger.yaml +15 -0
  237. package/evals/harness-everything/eval.yaml +26 -0
  238. package/evals/harness-everything/tasks/negative-non-software.yaml +16 -0
  239. package/evals/harness-everything/tasks/negative-skill-indicated.yaml +15 -0
  240. package/evals/harness-everything/tasks/positive-tier1.yaml +16 -0
  241. package/evals/harness-everything/tasks/positive-tier2.yaml +16 -0
  242. package/evals/harness-everything/tasks/positive-tier3.yaml +16 -0
  243. package/evals/improve-codebase-architecture/eval.yaml +26 -0
  244. package/evals/improve-codebase-architecture/tasks/negative-trigger.yaml +16 -0
  245. package/evals/improve-codebase-architecture/tasks/positive-trigger.yaml +15 -0
  246. package/evals/install-cognitive-os/eval.yaml +26 -0
  247. package/evals/install-cognitive-os/tasks/negative-trigger.yaml +16 -0
  248. package/evals/install-cognitive-os/tasks/positive-trigger.yaml +15 -0
  249. package/evals/multi-agent-workspace/eval.yaml +26 -0
  250. package/evals/multi-agent-workspace/tasks/negative-trigger.yaml +15 -0
  251. package/evals/multi-agent-workspace/tasks/positive-trigger.yaml +15 -0
  252. package/evals/repo-docs/eval.yaml +26 -0
  253. package/evals/repo-docs/tasks/negative-trigger.yaml +16 -0
  254. package/evals/repo-docs/tasks/positive-trigger.yaml +15 -0
  255. package/evals/rewrite-commits/eval.yaml +26 -0
  256. package/evals/rewrite-commits/tasks/negative-trigger.yaml +16 -0
  257. package/evals/rewrite-commits/tasks/positive-trigger.yaml +15 -0
  258. package/evals/security-review/eval.yaml +26 -0
  259. package/evals/security-review/tasks/negative-trigger.yaml +16 -0
  260. package/evals/security-review/tasks/positive-trigger.yaml +15 -0
  261. package/evals/self-evolve/eval.yaml +26 -0
  262. package/evals/self-evolve/tasks/negative-trigger.yaml +16 -0
  263. package/evals/self-evolve/tasks/positive-trigger.yaml +15 -0
  264. package/evals/skill-creator/eval.yaml +26 -0
  265. package/evals/skill-creator/tasks/negative-trigger.yaml +16 -0
  266. package/evals/skill-creator/tasks/positive-trigger.yaml +15 -0
  267. package/evals/skill-style/eval.yaml +26 -0
  268. package/evals/skill-style/tasks/negative-trigger.yaml +16 -0
  269. package/evals/skill-style/tasks/positive-trigger.yaml +15 -0
  270. package/evals/tdd/eval.yaml +26 -0
  271. package/evals/tdd/tasks/negative-trivia.yaml +16 -0
  272. package/evals/tdd/tasks/positive-bugfix.yaml +15 -0
  273. package/evals/tdd/tasks/positive-feature.yaml +16 -0
  274. package/evals/tdd/tasks/positive-refactor.yaml +15 -0
  275. package/evals/to-spec/eval.yaml +26 -0
  276. package/evals/to-spec/tasks/negative-trigger.yaml +16 -0
  277. package/evals/to-spec/tasks/positive-trigger.yaml +15 -0
  278. package/evals/to-tickets/eval.yaml +26 -0
  279. package/evals/to-tickets/tasks/negative-trigger.yaml +15 -0
  280. package/evals/to-tickets/tasks/positive-trigger.yaml +15 -0
  281. package/evals/todo-driven-workflow/eval.yaml +26 -0
  282. package/evals/todo-driven-workflow/tasks/negative-single-edit.yaml +16 -0
  283. package/evals/todo-driven-workflow/tasks/positive-multi-step.yaml +15 -0
  284. package/evals/todo-driven-workflow/tasks/positive-refactor-flow.yaml +15 -0
  285. package/evals/using-git-worktrees/eval.yaml +26 -0
  286. package/evals/using-git-worktrees/tasks/negative-trigger.yaml +15 -0
  287. package/evals/using-git-worktrees/tasks/positive-trigger.yaml +15 -0
  288. package/evals/verification-loop/eval.yaml +26 -0
  289. package/evals/verification-loop/tasks/negative-discussion.yaml +16 -0
  290. package/evals/verification-loop/tasks/positive-pre-ship.yaml +15 -0
  291. package/evals/verify-before-claim/eval.yaml +26 -0
  292. package/evals/verify-before-claim/tasks/negative-trigger.yaml +16 -0
  293. package/evals/verify-before-claim/tasks/positive-trigger.yaml +15 -0
  294. package/evals/zoom-out/eval.yaml +26 -0
  295. package/evals/zoom-out/tasks/negative-trivial-edit.yaml +16 -0
  296. package/evals/zoom-out/tasks/positive-repeated-failure.yaml +15 -0
  297. package/fable-discipline/SKILL.md +31 -28
  298. package/fable-discipline/references/discipline-rules.md +22 -0
  299. package/fable-mode/CONTRACT-FORMAT.md +51 -51
  300. package/fable-mode/SKILL.md +31 -43
  301. package/fable-mode/agents/fable-orchestrator.md +99 -92
  302. package/fable-mode/agents/fable-verifier.md +32 -32
  303. package/fable-mode/agents/fable-worker-haiku.md +52 -48
  304. package/fable-mode/agents/fable-worker-sonnet.md +53 -49
  305. package/fable-mode/execution-guardrails/SKILL.md +43 -87
  306. package/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
  307. package/fable-mode/fable-haiku/SKILL.md +36 -48
  308. package/fable-mode/fable-haiku/references/routing-notes.md +26 -0
  309. package/fable-mode/fable-opus/SKILL.md +36 -0
  310. package/fable-mode/fable-sonnet/SKILL.md +36 -0
  311. package/fable-mode/model-matrix.json +32 -0
  312. package/fable-mode/references/execution-phases.md +37 -0
  313. package/fable-mode/references/model-matrix.md +39 -0
  314. package/fable-mode/scripts/model-selector.js +129 -0
  315. package/find-skills/SKILL.md +48 -0
  316. package/find-skills/references/discovery-flow.md +102 -0
  317. package/find-skills/scripts/use-skill.js +106 -0
  318. package/git-commit/SKILL.md +35 -45
  319. package/git-commit/guides/ANGULAR_STYLE.md +60 -60
  320. package/git-commit/guides/COMMIT_GENERATION.md +23 -23
  321. package/git-commit/guides/LANGUAGE_DETECTION.md +16 -16
  322. package/git-commit/guides/MAIN_REPO.md +14 -14
  323. package/git-commit/guides/SUBMODULES.md +27 -27
  324. package/git-commit/references/commit-flow.md +30 -0
  325. package/grill-me/SKILL.md +34 -27
  326. package/grill-me/references/grilling-playbook.md +38 -0
  327. package/grill-with-docs/ADR-FORMAT.md +47 -47
  328. package/grill-with-docs/CONTEXT-FORMAT.md +63 -63
  329. package/grill-with-docs/SKILL.md +33 -91
  330. package/grill-with-docs/references/session-playbook.md +97 -0
  331. package/harness-everything/SKILL.md +29 -128
  332. package/harness-everything/examples/README.md +9 -9
  333. package/harness-everything/examples/todo-workflow.md +22 -22
  334. package/harness-everything/references/skill-registry.md +39 -0
  335. package/harness-everything/references/triage-and-tiers.md +116 -0
  336. package/harness-everything/scripts/bootstrap.js +203 -140
  337. package/harness-everything/scripts/routing-keywords.json +320 -0
  338. package/harness-everything/scripts/self-heal.js +241 -189
  339. package/harness-everything/scripts/tier-router.js +334 -219
  340. package/harness-everything/scripts/verify-gate.js +100 -31
  341. package/hooks/hooks.json +155 -155
  342. package/hooks/scripts/atomic-commit-check.js +68 -68
  343. package/hooks/scripts/boundary-guard.js +55 -55
  344. package/hooks/scripts/context-compact.js +114 -114
  345. package/hooks/scripts/contract-test.js +79 -79
  346. package/hooks/scripts/depth-guard.js +65 -65
  347. package/hooks/scripts/lib/harness-state.js +139 -228
  348. package/hooks/scripts/lib/platforms/claude.js +72 -19
  349. package/hooks/scripts/lib/platforms/codex.js +24 -6
  350. package/hooks/scripts/lib/platforms/continue.js +23 -5
  351. package/hooks/scripts/lib/platforms/copilot.js +23 -5
  352. package/hooks/scripts/lib/platforms/cursor.js +23 -5
  353. package/hooks/scripts/lib/platforms/hermes.js +57 -57
  354. package/hooks/scripts/lib/platforms/index.js +17 -17
  355. package/hooks/scripts/lib/platforms/worktrees.js +20 -20
  356. package/hooks/scripts/reset-circuit-breaker.js +30 -30
  357. package/hooks/scripts/rule-of-3-tracker.js +124 -91
  358. package/hooks/scripts/rule-of-3.js +187 -176
  359. package/hooks/scripts/state-persist.js +99 -99
  360. package/hooks/scripts/stop-gate.js +80 -80
  361. package/hooks/scripts/subagent-scope-guard.js +88 -88
  362. package/improve-codebase-architecture/SKILL.md +31 -35
  363. package/improve-codebase-architecture/guides/DEEPENING.md +37 -37
  364. package/improve-codebase-architecture/guides/HTML-REPORT.md +123 -123
  365. package/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -44
  366. package/improve-codebase-architecture/guides/LANGUAGE.md +53 -53
  367. package/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
  368. package/install-cognitive-os/SKILL.md +23 -80
  369. package/install-cognitive-os/references/cognitive-loop.md +27 -0
  370. package/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
  371. package/multi-agent-workspace/SKILL.md +37 -0
  372. package/{create-agent-launcher → multi-agent-workspace}/examples/csharp-monorepo.md +123 -123
  373. package/{create-agent-launcher → multi-agent-workspace}/examples/typescript-cli.md +126 -126
  374. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-claude.md +77 -77
  375. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-codex.md +146 -146
  376. package/multi-agent-workspace/guidelines/platform-continue.md +38 -0
  377. package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-copilot.md +74 -74
  378. package/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
  379. package/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
  380. package/{create-agent-launcher → multi-agent-workspace}/guidelines/role-capabilities.md +108 -108
  381. package/multi-agent-workspace/references/agency-agents.md +31 -0
  382. package/multi-agent-workspace/references/architecture-guide.md +32 -0
  383. package/multi-agent-workspace/references/orchestration.md +48 -0
  384. package/multi-agent-workspace/scripts/agency-catalog.js +190 -0
  385. package/multi-agent-workspace/scripts/index_memory.js +51 -0
  386. package/multi-agent-workspace/scripts/scaffold.js +253 -0
  387. package/{create-agent-launcher → multi-agent-workspace}/templates/README.md +17 -17
  388. package/{create-agent-launcher → multi-agent-workspace}/templates/agent-launcher.md +67 -67
  389. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-csharp.md +55 -55
  390. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-polyglot.md +61 -61
  391. package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-ts.md +56 -56
  392. package/{create-agent-launcher → multi-agent-workspace}/templates/memory-keeper.md +36 -36
  393. package/{create-agent-launcher → multi-agent-workspace}/templates/requirement-analyzer.md +65 -65
  394. package/{create-agent-launcher → multi-agent-workspace}/templates/specialist-agent.md +34 -34
  395. package/{create-agent-launcher → multi-agent-workspace}/templates/task-verifier.md +55 -55
  396. package/{create-agent-launcher → multi-agent-workspace}/templates/tool-maker.md +32 -32
  397. package/multi-agent-workspace/workflows/01-init.md +22 -0
  398. package/multi-agent-workspace/workflows/02-analysis.md +23 -0
  399. package/multi-agent-workspace/workflows/03-generation.md +27 -0
  400. package/multi-agent-workspace/workflows/04-launcher.md +16 -0
  401. package/opencode-plugin/README.md +94 -0
  402. package/opencode-plugin/hooks/circuit-breaker.js +121 -0
  403. package/opencode-plugin/hooks/compliance.js +128 -0
  404. package/opencode-plugin/hooks/post-edit.js +62 -0
  405. package/opencode-plugin/hooks/pre-complete.js +65 -0
  406. package/opencode-plugin/hooks/verify.js +140 -0
  407. package/opencode-plugin/plugin.json +17 -0
  408. package/opencode-plugin/test-hook-firing.js +198 -0
  409. package/package.json +50 -22
  410. package/references/definition-of-done.md +67 -0
  411. package/references/performance-checklist.md +153 -0
  412. package/references/platform-advisory-template.md +58 -0
  413. package/references/security-checklist.md +205 -0
  414. package/repo-docs/SKILL.md +38 -37
  415. package/repo-docs/references/process-guide.md +60 -0
  416. package/repo-docs/templates/agents-template.md +264 -264
  417. package/repo-docs/templates/knowledge-agents-template.md +50 -50
  418. package/repo-docs/templates/knowledge-readme-template.md +83 -83
  419. package/repo-docs/templates/manual-recon.md +117 -117
  420. package/repo-docs/templates/multi-skills-readme-template.md +72 -72
  421. package/repo-docs/templates/product-agents-template.md +78 -78
  422. package/repo-docs/templates/product-readme-template.md +95 -95
  423. package/repo-docs/templates/readme-template.md +136 -136
  424. package/repo-docs/templates/single-skill-readme-template.md +70 -70
  425. package/repo-docs/templates/skills-agents-template.md +60 -60
  426. package/rewrite-commits/SKILL.md +22 -17
  427. package/rewrite-commits/references/workflow.md +18 -0
  428. package/scripts/installer.js +546 -506
  429. package/scripts/lib/advisory-text.js +8 -4
  430. package/scripts/lib/claude-hooks.js +18 -5
  431. package/scripts/lib/gitignore.js +199 -80
  432. package/scripts/lib/manifest.js +68 -4
  433. package/scripts/lib/prompts.js +1 -1
  434. package/scripts/lib/skills.js +87 -1
  435. package/scripts/verify-install.js +147 -0
  436. package/security-review/SKILL.md +35 -496
  437. package/security-review/guides/OWASP-PATTERNS.md +31 -0
  438. package/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
  439. package/security-review/references/security-checklist.md +478 -0
  440. package/security-review/scripts/audit-secrets.js +84 -0
  441. package/self-evolve/SKILL.md +38 -45
  442. package/self-evolve/references/memory-resolution.md +58 -0
  443. package/self-evolve/scripts/persist-memory.js +139 -40
  444. package/self-evolve/scripts/register-dynamic-skill.js +251 -0
  445. package/self-evolve/scripts/self-regression.js +110 -113
  446. package/skill-creator/SKILL.md +34 -76
  447. package/skill-creator/references/authoring-workflow.md +14 -0
  448. package/skill-creator/references/dynamic-generation-contract.md +21 -0
  449. package/skill-creator/references/quality-checklist.md +15 -0
  450. package/skill-creator/references/quality-principles.md +81 -81
  451. package/skill-creator/references/testing-workflow.md +27 -32
  452. package/skill-style/SKILL.md +33 -39
  453. package/skill-style/references/style-guide.md +36 -0
  454. package/tdd/SKILL.md +34 -43
  455. package/tdd/guides/deep-modules.md +33 -33
  456. package/tdd/guides/interface-design.md +31 -31
  457. package/tdd/guides/mocking.md +59 -59
  458. package/tdd/guides/refactoring.md +10 -10
  459. package/tdd/guides/tests.md +61 -61
  460. package/tdd/references/core-discipline.md +49 -0
  461. package/to-spec/SKILL.md +42 -0
  462. package/to-spec/references/process.md +77 -0
  463. package/to-spec/scripts/check-project-docs.js +259 -0
  464. package/to-spec/templates/cli-reference.md +31 -0
  465. package/to-spec/templates/dev-doc.md +27 -0
  466. package/to-spec/templates/feature-spec.md +59 -0
  467. package/to-spec/templates/schema-doc.md +31 -0
  468. package/to-tickets/SKILL.md +42 -0
  469. package/to-tickets/references/publishing-and-templates.md +97 -0
  470. package/todo-driven-workflow/SKILL.md +27 -41
  471. package/todo-driven-workflow/references/execution-guide.md +27 -0
  472. package/using-git-worktrees/SKILL.md +29 -141
  473. package/using-git-worktrees/references/workflow-details.md +108 -0
  474. package/verification-loop/SKILL.md +29 -121
  475. package/verification-loop/references/verification-phases.md +116 -0
  476. package/verification-loop/templates/verification-report.template.md +15 -0
  477. package/verify-before-claim/SKILL.md +27 -70
  478. package/verify-before-claim/references/verification-guide.md +73 -0
  479. package/zoom-out/SKILL.md +28 -76
  480. package/zoom-out/references/circuit-breaker.md +66 -0
  481. package/zoom-out/templates/zoom-out-report.template.md +20 -0
  482. package/build-multi-agent-system/AGENTS.md +0 -50
  483. package/build-multi-agent-system/README.md +0 -63
  484. package/build-multi-agent-system/SKILL.md +0 -68
  485. package/create-agent-launcher/SKILL.md +0 -48
  486. package/create-agent-launcher/guidelines/platform-gemini.md +0 -101
  487. package/create-agent-launcher/workflows/01-init.md +0 -22
  488. package/create-agent-launcher/workflows/02-analysis.md +0 -26
  489. package/create-agent-launcher/workflows/03-generation.md +0 -29
  490. package/create-agent-launcher/workflows/04-launcher.md +0 -20
  491. package/docs/workflows/build-multi-agent-system.md +0 -62
  492. package/docs/workflows/create-agent-launcher.md +0 -62
  493. package/eval-framework/behavioral-test.js +0 -105
  494. package/eval-framework/mechanism-test.js +0 -251
  495. package/harness-everything/scripts/todo-cli.js +0 -157
  496. package/skill-style/STYLE.md +0 -37
@@ -0,0 +1,40 @@
1
+ ---
2
+ description: "Platform guidelines for generating agent scaffolds targeting Cursor. Covers naming, tool declarations, directory layout, and interaction mechanisms."
3
+ ---
4
+
5
+ # Platform Guidelines: Cursor
6
+
7
+ ## Naming Convention
8
+
9
+ - Agent/Rule names use lower-kebab-case (e.g., `requirement-analyzer`, `backend-developer`).
10
+ - File names follow `.cursorrules` or `.cursor/rules/*.mdc` depending on project structure.
11
+
12
+ ## Tools Declaration
13
+
14
+ Cursor manages tool permissions natively through its IDE setting UI. Use standard tool intent categories:
15
+
16
+ ```yaml
17
+ tools: [read, edit, search, execute]
18
+ ```
19
+
20
+ When generating agent files from templates, substitute the placeholders as follows:
21
+ - `{{TOOLS_ARRAY_DECLARATION}}`: `tools: [read, edit, search, execute]`
22
+ - `{{READ_TOOL_NAME}}`: `read`
23
+ - `{{EDIT_TOOL_NAME}}`: `edit`
24
+ - `{{SEARCH_TOOL_NAME}}`: `search`
25
+ - `{{EXECUTE_TOOL_NAME}}`: `execute`
26
+
27
+ ## Directory Layout
28
+
29
+ | Artifact | Path |
30
+ |----------|------|
31
+ | Native Project Rules | `.cursorrules` (project root) |
32
+ | Modular Rule Definitions | `.cursor/rules/*.mdc` |
33
+ | System Prompt | `.cursorrules` |
34
+
35
+ Default target directory is `.cursor/`.
36
+
37
+ ## User Interaction & Enforcement Mechanism
38
+
39
+ Cursor does not provide lifecycle hooks or exit code interception. All rule files operate as **Advisory Context** injected into the model prompt.
40
+ Ask questions directly in chat or request user confirmation before major file modifications.
@@ -0,0 +1,38 @@
1
+ ---
2
+ description: "Platform guidelines for generating agent scaffolds targeting Hermes Agent (Nous Research). Covers naming, tool declarations, directory layout, and interaction mechanisms."
3
+ ---
4
+
5
+ # Platform Guidelines: Hermes Agent (Nous Research)
6
+
7
+ ## Naming Convention
8
+
9
+ - Uses `.hermes.md` project-level context file or standard markdown rules files.
10
+
11
+ ## Tools Declaration
12
+
13
+ Hermes Agent auto-detects CLI capabilities. Use standard tool declarations:
14
+
15
+ ```yaml
16
+ tools: [read, edit, search, execute]
17
+ ```
18
+
19
+ When generating agent files from templates, substitute the placeholders as follows:
20
+ - `{{TOOLS_ARRAY_DECLARATION}}`: `tools: [read, edit, search, execute]`
21
+ - `{{READ_TOOL_NAME}}`: `read`
22
+ - `{{EDIT_TOOL_NAME}}`: `edit`
23
+ - `{{SEARCH_TOOL_NAME}}`: `search`
24
+ - `{{EXECUTE_TOOL_NAME}}`: `execute`
25
+
26
+ ## Directory Layout
27
+
28
+ | Artifact | Path |
29
+ |----------|------|
30
+ | Native Context | `.hermes.md` (project root) |
31
+ | Fallback Context | Reads `AGENTS.md` / `CLAUDE.md` / `.cursorrules` if present |
32
+
33
+ Default target directory is project root (`.hermes.md`).
34
+
35
+ ## User Interaction & Enforcement Mechanism
36
+
37
+ Hermes Agent loads `.hermes.md` into session context. Like other non-hook platforms, enforcement is **Advisory Only**.
38
+ Interactions and question prompting happen in the Hermes terminal or web UI session.
@@ -1,108 +1,108 @@
1
- ---
2
- description: >
3
- Capability menu for create-agent-launcher. Maps Karpathy behavioral guidelines and
4
- skill-derived behaviors to each subAgent role. Consult when generating any agent file.
5
- Core roles use the templates directly. Specialist and custom roles inject the blocks below
6
- into templates/specialist-agent.md.
7
- ---
8
-
9
- # Agent Role Capabilities Reference
10
-
11
- ## How to Use This File
12
-
13
- When generating a specialist or custom agent (using `templates/specialist-agent.md`), pick the appropriate `## Behavioral Guidelines` block from this file and inject it into the `{{BEHAVIORAL_GUIDELINES_BLOCK}}` placeholder. Do not mix capabilities — keep roles strictly separated to avoid LLM context dilution.
14
-
15
- ---
16
-
17
- ## Specialist Role Blocks
18
-
19
- ### Document Writer (Markdown Editor)
20
-
21
- **Purpose**: Edit, format, and structure Markdown files (e.g., `README.md`, `docs/`) without touching source code.
22
-
23
- **Ready-to-Embed Block**:
24
-
25
- ```markdown
26
- ### Architect, Not a Coder
27
- *(from Karpathy: Think Before Coding)*
28
- - Your domain is strictly documentation and markdown. DO NOT write or modify application source code.
29
- - If documentation requirements are unclear, provide 2-3 structured outline options for the user to choose from. Do not guess.
30
-
31
- ### Surgical Documentation Updates
32
- *(from Karpathy: Surgical Changes)*
33
- - When updating an existing document, touch ONLY the section that requires changes.
34
- - Preserve existing prose, formatting, and screenshots exactly as they are.
35
- - Do not "improve" or rewrite adjacent paragraphs unless explicitly asked.
36
- ```
37
-
38
- ---
39
-
40
- ### Shell Script Expert
41
-
42
- **Purpose**: Create, fix, and maintain bash, batch, or CI pipeline scripts.
43
-
44
- **Ready-to-Embed Block**:
45
-
46
- ```markdown
47
- ### Blind Obedience to the Task
48
- *(from Karpathy: Simplicity First)*
49
- - ONLY implement exactly what the task requires. DO NOT question the design or add pre-emptive abstraction.
50
- - Keep scripts as simple and POSIX-compliant as possible unless a specific shell (e.g., bash) is requested.
51
-
52
- ### Instrument and Diagnose Silently
53
- *(from Karpathy: Goal-Driven Execution + skill: diagnose)*
54
- - If a script fails during verification, do not immediately ask for help.
55
- - Generate a hypothesis, add echo/set -x instrumentation, run it to confirm, and fix it silently.
56
- - Only output a Handover Block when the script executes successfully.
57
- ```
58
-
59
- ---
60
-
61
- ### Frontend Developer
62
-
63
- **Purpose**: Implement UI components and styling based on design requirements.
64
-
65
- **Ready-to-Embed Block**:
66
-
67
- ```markdown
68
- ### Blind Obedience to the Design
69
- *(from Karpathy: Simplicity First)*
70
- - Implement exactly what the UI specification requires. Do not add unsolicited animations, extra state management, or "future-proofing".
71
- - If a simpler DOM structure achieves the exact same visual result, prefer it.
72
-
73
- ### Surgical UI Changes
74
- *(from Karpathy: Surgical Changes)*
75
- - Touch only the components explicitly mentioned in the plan.
76
- - Match the existing project styling system (e.g., Tailwind, CSS Modules) exactly.
77
- - Do not refactor adjacent UI components just because you are in the file.
78
- ```
79
-
80
- ---
81
-
82
- ### Architecture Reviewer
83
-
84
- **Purpose**: Perform broad structural audits and compliance checks. Read-only.
85
-
86
- **Ready-to-Embed Block**:
87
-
88
- ```markdown
89
- ### Map Before Analyzing
90
- *(from skill: zoom-out)*
91
- - Before rendering a verdict, you MUST map all relevant modules and architectural boundaries.
92
- - Do not make assumptions based on a single file; trace the dependency graph.
93
-
94
- ### Strict Compliance Verification
95
- *(from skill: grill-with-docs)*
96
- - Compare the current structure against the project's Architectural Decision Records (ADRs) or established patterns.
97
- - Do not suggest subjective "clean code" improvements; only report objective architectural violations.
98
- - You are Read-Only. Do not modify files to fix the architecture.
99
- ```
100
-
101
- ---
102
-
103
- ## Custom Roles (Decision Matrix)
104
-
105
- If the user asks for a completely undefined role (e.g., "Database Expert"), compose a custom block using this philosophy:
106
- 1. Is this a **thinking/planning** role? → Give it *Think Before Coding* (propose options, don't guess).
107
- 2. Is this an **execution/coding** role? → Give it *Blind Obedience* (execute exactly, keep it simple) and *Surgical Changes* (touch only what's needed).
108
- 3. Is this an **auditing/QA** role? → Give it *Strict Binary Verification* (pass/fail only, no modifications).
1
+ ---
2
+ description: >
3
+ Capability menu for multi-agent-workspace. Maps Karpathy behavioral guidelines and
4
+ skill-derived behaviors to each subAgent role. Consult when generating any agent file.
5
+ Core roles use the templates directly. Specialist and custom roles inject the blocks below
6
+ into templates/specialist-agent.md.
7
+ ---
8
+
9
+ # Agent Role Capabilities Reference
10
+
11
+ ## How to Use This File
12
+
13
+ When generating a specialist or custom agent (using `templates/specialist-agent.md`), pick the appropriate `## Behavioral Guidelines` block from this file and inject it into the `{{BEHAVIORAL_GUIDELINES_BLOCK}}` placeholder. Do not mix capabilities — keep roles strictly separated to avoid LLM context dilution.
14
+
15
+ ---
16
+
17
+ ## Specialist Role Blocks
18
+
19
+ ### Document Writer (Markdown Editor)
20
+
21
+ **Purpose**: Edit, format, and structure Markdown files (e.g., `README.md`, `docs/`) without touching source code.
22
+
23
+ **Ready-to-Embed Block**:
24
+
25
+ ```markdown
26
+ ### Architect, Not a Coder
27
+ *(from Karpathy: Think Before Coding)*
28
+ - Your domain is strictly documentation and markdown. DO NOT write or modify application source code.
29
+ - If documentation requirements are unclear, provide 2-3 structured outline options for the user to choose from. Do not guess.
30
+
31
+ ### Surgical Documentation Updates
32
+ *(from Karpathy: Surgical Changes)*
33
+ - When updating an existing document, touch ONLY the section that requires changes.
34
+ - Preserve existing prose, formatting, and screenshots exactly as they are.
35
+ - Do not "improve" or rewrite adjacent paragraphs unless explicitly asked.
36
+ ```
37
+
38
+ ---
39
+
40
+ ### Shell Script Expert
41
+
42
+ **Purpose**: Create, fix, and maintain bash, batch, or CI pipeline scripts.
43
+
44
+ **Ready-to-Embed Block**:
45
+
46
+ ```markdown
47
+ ### Blind Obedience to the Task
48
+ *(from Karpathy: Simplicity First)*
49
+ - ONLY implement exactly what the task requires. DO NOT question the design or add pre-emptive abstraction.
50
+ - Keep scripts as simple and POSIX-compliant as possible unless a specific shell (e.g., bash) is requested.
51
+
52
+ ### Instrument and Diagnose Silently
53
+ *(from Karpathy: Goal-Driven Execution + skill: diagnose)*
54
+ - If a script fails during verification, do not immediately ask for help.
55
+ - Generate a hypothesis, add echo/set -x instrumentation, run it to confirm, and fix it silently.
56
+ - Only output a Handover Block when the script executes successfully.
57
+ ```
58
+
59
+ ---
60
+
61
+ ### Frontend Developer
62
+
63
+ **Purpose**: Implement UI components and styling based on design requirements.
64
+
65
+ **Ready-to-Embed Block**:
66
+
67
+ ```markdown
68
+ ### Blind Obedience to the Design
69
+ *(from Karpathy: Simplicity First)*
70
+ - Implement exactly what the UI specification requires. Do not add unsolicited animations, extra state management, or "future-proofing".
71
+ - If a simpler DOM structure achieves the exact same visual result, prefer it.
72
+
73
+ ### Surgical UI Changes
74
+ *(from Karpathy: Surgical Changes)*
75
+ - Touch only the components explicitly mentioned in the plan.
76
+ - Match the existing project styling system (e.g., Tailwind, CSS Modules) exactly.
77
+ - Do not refactor adjacent UI components just because you are in the file.
78
+ ```
79
+
80
+ ---
81
+
82
+ ### Architecture Reviewer
83
+
84
+ **Purpose**: Perform broad structural audits and compliance checks. Read-only.
85
+
86
+ **Ready-to-Embed Block**:
87
+
88
+ ```markdown
89
+ ### Map Before Analyzing
90
+ *(from skill: zoom-out)*
91
+ - Before rendering a verdict, you MUST map all relevant modules and architectural boundaries.
92
+ - Do not make assumptions based on a single file; trace the dependency graph.
93
+
94
+ ### Strict Compliance Verification
95
+ *(from skill: grill-with-docs)*
96
+ - Compare the current structure against the project's Architectural Decision Records (ADRs) or established patterns.
97
+ - Do not suggest subjective "clean code" improvements; only report objective architectural violations.
98
+ - You are Read-Only. Do not modify files to fix the architecture.
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Custom Roles (Decision Matrix)
104
+
105
+ If the user asks for a completely undefined role (e.g., "Database Expert"), compose a custom block using this philosophy:
106
+ 1. Is this a **thinking/planning** role? → Give it *Think Before Coding* (propose options, don't guess).
107
+ 2. Is this an **execution/coding** role? → Give it *Blind Obedience* (execute exactly, keep it simple) and *Surgical Changes* (touch only what's needed).
108
+ 3. Is this an **auditing/QA** role? → Give it *Strict Binary Verification* (pass/fail only, no modifications).
@@ -0,0 +1,31 @@
1
+ # agency-agents source contract
2
+
3
+ `agency-agents` is an optional development-time source input. The merged skill
4
+ does not vendor its agent bodies or assume a machine-specific source path.
5
+
6
+ ## Verified source snapshot
7
+
8
+ The local source used for issue 26 verification contains:
9
+
10
+ - 18 divisions and 258 Markdown agent files with YAML frontmatter.
11
+ - Source revision `3c9588880b7cafaec325a104899fd8bbe27e7d72`.
12
+ - Frontmatter keys observed across the roster: `name`, `description`,
13
+ `color`, `emoji`, and `vibe`.
14
+ - 14 converter targets: `antigravity`, `gemini-cli`, `opencode`, `cursor`,
15
+ `aider`, `windsurf`, `openclaw`, `qwen`, `zcode`, `kimi`, `codex`,
16
+ `osaurus`, `hermes`, and `vibe`.
17
+
18
+ Counts and revision are evidence from the local checkout, not a promise that
19
+ future upstream revisions are identical. `scaffold.js` records the revision,
20
+ rejects empty divisions and duplicate names/slugs, and requires
21
+ `--allow-source-drift` before refreshing an existing generated catalog.
22
+
23
+ ## Selection and provenance
24
+
25
+ Pass `--agency-source <path>` or set `AGENCY_AGENTS_SOURCE`. Use repeated
26
+ `--division` or `--agent` options to select roles; use `--all-agents` only when
27
+ the complete metadata catalog is deliberately needed. The generated catalog
28
+ stores metadata and relative source files, not specialist bodies. Load a body
29
+ on demand after a bounded brief has been assigned.
30
+
31
+ The upstream repository is [msitarzewski/agency-agents](https://github.com/msitarzewski/agency-agents), licensed under MIT by AgentLand Contributors. Harness preserves that provenance; see `NOTICE-agency-agents.md` for the license notice.
@@ -0,0 +1,32 @@
1
+ # Multi-Agent Workspace Architecture
2
+
3
+ The canonical skill combines two responsibilities that previously routed
4
+ independently: physical workspace scaffolding and specialist delegation.
5
+
6
+ ```text
7
+ source catalog (optional)
8
+ |
9
+ v
10
+ validate divisions + frontmatter + revision
11
+ |
12
+ +--> roles/agency-catalog.json --> explicit selection
13
+ |
14
+ v
15
+ six zones --> launcher.md --> bounded specialist handoff
16
+ |
17
+ +--> index_memory.js --> memory-index.md
18
+ +--> AGENTS.md router + manifest.json
19
+ ```
20
+
21
+ ## Invariants
22
+
23
+ - `.harness/multi-agent/` is the generated boundary. The external catalog is
24
+ read-only input and is never mutated.
25
+ - `state/`, `logs/`, `decisions/`, `domain/`, `architecture/`, and `roles/`
26
+ have one semantic owner each. Raw logs do not enter default context.
27
+ - The generated router is immutable. Specialists receive a bounded brief and
28
+ return `status`, `changes`, `verification`, `risks`, and `nextAction`.
29
+ - A source that is absent is represented as `agency.status: unavailable`; an
30
+ unavailable source cannot be mistaken for a complete roster.
31
+ - A changed source revision is a migration event. Refresh only with
32
+ `--allow-source-drift`, then review the new catalog and selection.
@@ -0,0 +1,48 @@
1
+ # Sub-agent Orchestration Details
2
+
3
+ Details moved from SKILL.md. Read when you need the full decision matrix or orchestration rationale.
4
+
5
+ ## Process & Sub-agent Spawning Flow
6
+
7
+ ```mermaid
8
+ flowchart TD
9
+ Start[Trigger: Need Specialized Division of Labor] --> ScopeCheck{Task Complexity Check<br>>2 files / >300 lines?}
10
+
11
+ ScopeCheck -- No --> DirectTDD[Handle Directly via TDD / Tier 2 Flow]
12
+ ScopeCheck -- Yes --> CheckTool{1. Sub-agent Tool Available?<br>e.g. runSubagent / Task tool}
13
+
14
+ CheckTool -- Yes --> SpawnSub[Spawn Specialized Sub-agent<br>Inject Domain Skill + Isolated Scope]
15
+ CheckTool -- No --> InlineSwitch{2. Inline Persona Role-Switch Fallback}
16
+
17
+ InlineSwitch --> AssumePersona[Temporarily Assume Specialized Persona<br>e.g. DB Architect / Frontend Specialist]
18
+ AssumePersona --> ExecuteInline[Execute Domain Task with Isolated Context]
19
+
20
+ SpawnSub --> Handoff[Receive Structured Handoff Report]
21
+ ExecuteInline --> Handoff
22
+ Handoff --> NextTask[Proceed to Next Milestone]
23
+ ```
24
+
25
+ ## Dynamic Sub-agent Orchestration
26
+
27
+ When launching ad-hoc sub-agents during execution:
28
+ - **Persona Alignment**: Give the sub-agent a focused role (e.g. "Senior Database Architect focusing solely on user table indexes").
29
+ - **Scope Isolation**: Provide only the relevant file paths and context necessary for the specific sub-task.
30
+ - **Model Efficiency**: Match sub-task complexity with appropriate model tiers (e.g. small/fast model for file lookup, main model for multi-file implementation).
31
+ - **Handoff Contract**: Require a brief summary upon completion covering modified files, new interfaces, and notes for downstream tasks.
32
+ - **Scope Monitoring**: Sub-agent tool executions are monitored by `hooks/scripts/subagent-scope-guard.js`, which alerts if files outside the briefed brief are edited.
33
+
34
+ ## Scaffolding Multi-Agent Project Infrastructure (Sequential Workflows)
35
+
36
+ For generating structured, permanent agent manifests in a repository, follow the progressive workflow steps in order:
37
+ 1. **Phase 1 — Platform Discovery**: Read `multi-agent-workspace/workflows/01-init.md`
38
+ 2. **Phase 2 — Project Analysis**: Read `multi-agent-workspace/workflows/02-analysis.md`
39
+ 3. **Phase 3 — Scaffold Generation**: Read `multi-agent-workspace/workflows/03-generation.md`
40
+ 4. **Phase 4 — Execution & Handoff**: Read `multi-agent-workspace/workflows/04-launcher.md`
41
+
42
+ - **Platform Guidelines**: Supported platforms in `multi-agent-workspace/guidelines/`:
43
+ - `platform-claude.md` — Claude Code (Hard enforcement via native hooks)
44
+ - `platform-cursor.md` — Cursor (Advisory rules via `.cursorrules`)
45
+ - `platform-copilot.md` — GitHub Copilot (Advisory custom instructions)
46
+ - `platform-codex.md` — Codex CLI (Advisory `AGENTS.md`)
47
+ - `platform-continue.md` — Continue.dev (Advisory `.continue/rules/harness.md`)
48
+ - `platform-hermes.md` — Hermes Agent (Advisory `.hermes.md`)
@@ -0,0 +1,190 @@
1
+ 'use strict';
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+ const crypto = require('crypto');
6
+ const { execFileSync } = require('child_process');
7
+
8
+ const SUPPORTED_PLATFORMS = Object.freeze([
9
+ 'antigravity', 'gemini-cli', 'opencode', 'cursor', 'aider', 'windsurf',
10
+ 'openclaw', 'qwen', 'zcode', 'kimi', 'codex', 'osaurus', 'hermes', 'vibe'
11
+ ]);
12
+
13
+ function scalar(value) {
14
+ const trimmed = value.trim();
15
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) ||
16
+ (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
17
+ return trimmed.slice(1, -1);
18
+ }
19
+ return trimmed;
20
+ }
21
+
22
+ function parseFrontmatter(raw, filePath) {
23
+ const match = raw.match(/^---\r?\n([\s\S]*?)\r?\n---/);
24
+ if (!match) throw new Error(`agent file lacks YAML frontmatter: ${filePath}`);
25
+ const fields = {};
26
+ for (const line of match[1].split(/\r?\n/)) {
27
+ if (!line.trim() || line.trim().startsWith('#')) continue;
28
+ const field = line.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
29
+ if (field) fields[field[1]] = scalar(field[2]);
30
+ }
31
+ if (!fields.name || !fields.description) {
32
+ throw new Error(`agent frontmatter requires name and description: ${filePath}`);
33
+ }
34
+ return fields;
35
+ }
36
+
37
+ function slugify(value) {
38
+ const slug = value.normalize('NFKD')
39
+ .replace(/[\u0300-\u036f]/g, '')
40
+ .toLowerCase()
41
+ .replace(/[^a-z0-9]+/g, '-')
42
+ .replace(/^-+|-+$/g, '');
43
+ if (!slug) throw new Error(`agent name cannot produce a safe slug: ${value}`);
44
+ return slug;
45
+ }
46
+
47
+ function safeSegment(value, label) {
48
+ if (typeof value !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9._-]*$/.test(value)) {
49
+ throw new Error(`${label} must be a single safe path segment: ${value}`);
50
+ }
51
+ return value;
52
+ }
53
+
54
+ function sourceIdentity(sourceRoot) {
55
+ let revision = null;
56
+ try {
57
+ revision = execFileSync('git', ['-C', sourceRoot, 'rev-parse', 'HEAD'], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
58
+ } catch {
59
+ // A source export may not be a Git checkout; use a content fingerprint.
60
+ }
61
+ if (!revision) {
62
+ const hash = crypto.createHash('sha256');
63
+ const files = [];
64
+ const walk = dir => {
65
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
66
+ if (entry.name === '.git' || entry.name === 'integrations' || entry.name === 'scripts') continue;
67
+ const full = path.join(dir, entry.name);
68
+ if (entry.isDirectory()) walk(full);
69
+ else if (entry.name === 'divisions.json' || entry.name.endsWith('.md')) files.push(full);
70
+ }
71
+ };
72
+ walk(sourceRoot);
73
+ for (const file of files.sort()) {
74
+ hash.update(path.relative(sourceRoot, file).replace(/\\/g, '/'));
75
+ hash.update('\0');
76
+ hash.update(fs.readFileSync(file));
77
+ }
78
+ revision = `export-${hash.digest('hex').slice(0, 40)}`;
79
+ }
80
+ let version = null;
81
+ const packagePath = path.join(sourceRoot, 'package.json');
82
+ if (fs.existsSync(packagePath)) {
83
+ try { version = JSON.parse(fs.readFileSync(packagePath, 'utf8')).version || null; } catch { /* optional */ }
84
+ }
85
+ return { revision, version };
86
+ }
87
+
88
+ function readAgencyCatalog(sourceRoot) {
89
+ const root = path.resolve(sourceRoot);
90
+ if (!fs.existsSync(root) || !fs.statSync(root).isDirectory()) {
91
+ throw new Error(`agency source not found: ${root}`);
92
+ }
93
+ const divisionsPath = path.join(root, 'divisions.json');
94
+ if (!fs.existsSync(divisionsPath)) throw new Error(`agency source is missing divisions.json: ${root}`);
95
+
96
+ let divisionsManifest;
97
+ try { divisionsManifest = JSON.parse(fs.readFileSync(divisionsPath, 'utf8')); }
98
+ catch (error) { throw new Error(`invalid divisions.json: ${error.message}`); }
99
+ if (!divisionsManifest.divisions || typeof divisionsManifest.divisions !== 'object') {
100
+ throw new Error('divisions.json must contain a divisions object');
101
+ }
102
+
103
+ const divisions = [];
104
+ const agents = [];
105
+ const seenNames = new Map();
106
+ const seenSlugs = new Map();
107
+ for (const [rawId, metadata] of Object.entries(divisionsManifest.divisions).sort(([a], [b]) => a.localeCompare(b))) {
108
+ const id = safeSegment(rawId, 'division id');
109
+ const divisionPath = path.join(root, id);
110
+ if (!fs.existsSync(divisionPath) || !fs.statSync(divisionPath).isDirectory()) {
111
+ throw new Error(`division directory is missing: ${id}`);
112
+ }
113
+ const files = fs.readdirSync(divisionPath).filter(file => file.endsWith('.md')).sort();
114
+ if (files.length === 0) throw new Error(`division is empty: ${id}`);
115
+ const divisionAgents = [];
116
+ for (const file of files) {
117
+ const absolutePath = path.join(divisionPath, file);
118
+ const fields = parseFrontmatter(fs.readFileSync(absolutePath, 'utf8'), absolutePath);
119
+ const slug = slugify(path.basename(file, '.md'));
120
+ const normalizedName = fields.name.toLowerCase();
121
+ if (seenNames.has(normalizedName)) {
122
+ throw new Error(`duplicate agent name "${fields.name}" in ${seenNames.get(normalizedName)} and ${absolutePath}`);
123
+ }
124
+ if (seenSlugs.has(slug)) {
125
+ throw new Error(`duplicate agent slug "${slug}" in ${seenSlugs.get(slug)} and ${absolutePath}`);
126
+ }
127
+ seenNames.set(normalizedName, absolutePath);
128
+ seenSlugs.set(slug, absolutePath);
129
+ const agent = {
130
+ slug,
131
+ name: fields.name,
132
+ description: fields.description,
133
+ division: id,
134
+ sourceFile: path.relative(root, absolutePath).replace(/\\/g, '/'),
135
+ color: fields.color || null,
136
+ emoji: fields.emoji || null,
137
+ vibe: fields.vibe || null
138
+ };
139
+ divisionAgents.push(agent);
140
+ agents.push(agent);
141
+ }
142
+ divisions.push({
143
+ id,
144
+ label: metadata && metadata.label ? metadata.label : id,
145
+ icon: metadata && metadata.icon ? metadata.icon : null,
146
+ color: metadata && metadata.color ? metadata.color : null,
147
+ agentCount: divisionAgents.length,
148
+ agents: divisionAgents
149
+ });
150
+ }
151
+
152
+ const identity = sourceIdentity(root);
153
+ return {
154
+ source: {
155
+ kind: 'agency-agents',
156
+ locator: path.basename(root),
157
+ revision: identity.revision,
158
+ version: identity.version,
159
+ divisionCount: divisions.length,
160
+ agentCount: agents.length,
161
+ converterTargets: SUPPORTED_PLATFORMS
162
+ },
163
+ divisions,
164
+ agents
165
+ };
166
+ }
167
+
168
+ function resolveSelection(catalog, divisionIds = [], agentIds = [], allAgents = false) {
169
+ const divisionMap = new Map(catalog.divisions.map(division => [division.id, division]));
170
+ const agentMap = new Map(catalog.agents.map(agent => [agent.slug, agent]));
171
+ const nameMap = new Map(catalog.agents.map(agent => [agent.name.toLowerCase(), agent]));
172
+ const selected = new Map();
173
+ const requestedDivisions = [...new Set(divisionIds)].sort();
174
+ for (const id of requestedDivisions) {
175
+ if (!divisionMap.has(id)) throw new Error(`unknown agency division: ${id}`);
176
+ for (const agent of divisionMap.get(id).agents) selected.set(agent.slug, agent);
177
+ }
178
+ if (allAgents) for (const agent of catalog.agents) selected.set(agent.slug, agent);
179
+ for (const requested of [...new Set(agentIds)]) {
180
+ const agent = agentMap.get(requested) || nameMap.get(requested.toLowerCase());
181
+ if (!agent) throw new Error(`unknown agency agent: ${requested}`);
182
+ selected.set(agent.slug, agent);
183
+ }
184
+ return {
185
+ divisionIds: requestedDivisions,
186
+ agents: [...selected.values()].sort((a, b) => a.slug.localeCompare(b.slug))
187
+ };
188
+ }
189
+
190
+ module.exports = { SUPPORTED_PLATFORMS, parseFrontmatter, readAgencyCatalog, resolveSelection, safeSegment, slugify };
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ const fs = require('fs');
5
+ const path = require('path');
6
+
7
+ const ZONES = Object.freeze(['state', 'logs', 'decisions', 'domain', 'architecture', 'roles']);
8
+
9
+ function option(args, name) {
10
+ const index = args.indexOf(name);
11
+ return index === -1 ? undefined : args[index + 1];
12
+ }
13
+
14
+ function buildIndex(root) {
15
+ const base = path.join(root, '.harness', 'multi-agent');
16
+ const manifestPath = path.join(base, 'manifest.json');
17
+ let manifest = {};
18
+ if (fs.existsSync(manifestPath)) manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf8'));
19
+ const selected = Array.isArray(manifest.selectedAgents) ? manifest.selectedAgents : [];
20
+ const lines = [
21
+ '# Multi-Agent Memory Index',
22
+ '',
23
+ 'This index is generated from the local multi-agent manifest. Read linked records on demand.',
24
+ '',
25
+ '## Zones',
26
+ ''
27
+ ];
28
+ for (const zone of ZONES) lines.push(`- [${zone}](${zone}/)`);
29
+ lines.push('', '## Selected specialists', '');
30
+ if (selected.length === 0) {
31
+ lines.push('- None selected. Do not claim that the external roster is complete.');
32
+ } else {
33
+ for (const agent of selected) {
34
+ lines.push(`- **${agent.name}** (${agent.division}) - \`${agent.slug}\``);
35
+ }
36
+ }
37
+ lines.push('', '## Handoff', '', '- [Structured handoff](handoff.json)', '- [Launcher](launcher.md)');
38
+ return `${lines.join('\n')}\n`;
39
+ }
40
+
41
+ function main() {
42
+ const args = process.argv.slice(2);
43
+ const root = path.resolve(option(args, '--root') || '.');
44
+ const output = path.resolve(option(args, '--output') || path.join(root, '.harness', 'multi-agent', 'memory-index.md'));
45
+ fs.mkdirSync(path.dirname(output), { recursive: true });
46
+ fs.writeFileSync(output, buildIndex(root), 'utf8');
47
+ console.log(`Memory index written to ${output}`);
48
+ }
49
+
50
+ if (require.main === module) main();
51
+ module.exports = { ZONES, buildIndex };