metaharness 0.3.0 → 0.3.2

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 (384) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +111 -74
  3. package/dist/bin.js +14 -2
  4. package/dist/bin.js.map +1 -1
  5. package/dist/completions-cmd.js +94 -94
  6. package/dist/diag.d.ts +8 -0
  7. package/dist/diag.d.ts.map +1 -1
  8. package/dist/diag.js +79 -15
  9. package/dist/diag.js.map +1 -1
  10. package/dist/export-config.d.ts.map +1 -1
  11. package/dist/export-config.js +3 -12
  12. package/dist/export-config.js.map +1 -1
  13. package/dist/genome.d.ts.map +1 -1
  14. package/dist/genome.js +3 -12
  15. package/dist/genome.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +101 -75
  18. package/dist/index.js.map +1 -1
  19. package/dist/meta-proxy.d.ts +57 -0
  20. package/dist/meta-proxy.d.ts.map +1 -0
  21. package/dist/meta-proxy.js +325 -0
  22. package/dist/meta-proxy.js.map +1 -0
  23. package/dist/publish-cmd.d.ts.map +1 -1
  24. package/dist/publish-cmd.js +5 -0
  25. package/dist/publish-cmd.js.map +1 -1
  26. package/dist/publish.d.ts +6 -0
  27. package/dist/publish.d.ts.map +1 -1
  28. package/dist/publish.js +9 -0
  29. package/dist/publish.js.map +1 -1
  30. package/dist/redact.d.ts +25 -0
  31. package/dist/redact.d.ts.map +1 -0
  32. package/dist/redact.js +62 -0
  33. package/dist/redact.js.map +1 -0
  34. package/dist/score.d.ts +9 -0
  35. package/dist/score.d.ts.map +1 -1
  36. package/dist/score.js +20 -14
  37. package/dist/score.js.map +1 -1
  38. package/dist/threat-model.d.ts.map +1 -1
  39. package/dist/threat-model.js +3 -12
  40. package/dist/threat-model.js.map +1 -1
  41. package/dist/with-wasm.js +43 -43
  42. package/dist/witness-client.d.ts +7 -0
  43. package/dist/witness-client.d.ts.map +1 -1
  44. package/dist/witness-client.js +5 -1
  45. package/dist/witness-client.js.map +1 -1
  46. package/genomes/README.md +23 -23
  47. package/genomes/genome-promoted-cand6-edit-by-midpoint.json +26 -26
  48. package/package.json +126 -125
  49. package/templates/catalog.def.mjs +542 -542
  50. package/templates/catalog.json +1274 -1274
  51. package/templates/minimal/.claude/settings.json.tmpl +18 -18
  52. package/templates/minimal/.claude-plugin/plugin.json.tmpl +13 -13
  53. package/templates/minimal/CLAUDE.md.tmpl +26 -23
  54. package/templates/minimal/README.md.tmpl +20 -20
  55. package/templates/minimal/__tests__/smoke.test.ts.tmpl +37 -37
  56. package/templates/minimal/bin/cli.js.tmpl +100 -100
  57. package/templates/minimal/manifest.json +20 -20
  58. package/templates/minimal/package.json.tmpl +31 -31
  59. package/templates/minimal/src/init.ts.tmpl +21 -21
  60. package/templates/minimal/tsconfig.json.tmpl +19 -19
  61. package/templates/minimal/vitest.config.ts.tmpl +23 -23
  62. package/templates/vertical_advertising/.claude/commands/doctor.md.tmpl +12 -12
  63. package/templates/vertical_advertising/.claude/settings.json.tmpl +33 -33
  64. package/templates/vertical_advertising/.claude/skills/media-plan/SKILL.md.tmpl +13 -13
  65. package/templates/vertical_advertising/.claude-plugin/plugin.json.tmpl +23 -23
  66. package/templates/vertical_advertising/CLAUDE.md.tmpl +30 -30
  67. package/templates/vertical_advertising/README.md.tmpl +29 -29
  68. package/templates/vertical_advertising/__tests__/smoke.test.ts.tmpl +37 -37
  69. package/templates/vertical_advertising/bin/cli.js.tmpl +100 -100
  70. package/templates/vertical_advertising/manifest.json +101 -101
  71. package/templates/vertical_advertising/package.json.tmpl +30 -30
  72. package/templates/vertical_advertising/src/agents/copywriter.ts.tmpl +7 -7
  73. package/templates/vertical_advertising/src/agents/media-planner.ts.tmpl +7 -7
  74. package/templates/vertical_advertising/src/agents/performance-analyst.ts.tmpl +7 -7
  75. package/templates/vertical_advertising/src/init.ts.tmpl +21 -21
  76. package/templates/vertical_advertising/tsconfig.json.tmpl +19 -19
  77. package/templates/vertical_advertising/vitest.config.ts.tmpl +23 -23
  78. package/templates/vertical_agentics/.claude/commands/doctor.md.tmpl +12 -12
  79. package/templates/vertical_agentics/.claude/settings.json.tmpl +33 -33
  80. package/templates/vertical_agentics/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  81. package/templates/vertical_agentics/.claude/skills/run-swarm/SKILL.md.tmpl +14 -14
  82. package/templates/vertical_agentics/.claude-plugin/plugin.json.tmpl +23 -23
  83. package/templates/vertical_agentics/CLAUDE.md.tmpl +32 -32
  84. package/templates/vertical_agentics/README.md.tmpl +30 -30
  85. package/templates/vertical_agentics/__tests__/smoke.test.ts.tmpl +37 -37
  86. package/templates/vertical_agentics/bin/cli.js.tmpl +100 -100
  87. package/templates/vertical_agentics/manifest.json +111 -111
  88. package/templates/vertical_agentics/package.json.tmpl +30 -30
  89. package/templates/vertical_agentics/src/agents/critic.ts.tmpl +7 -7
  90. package/templates/vertical_agentics/src/agents/orchestrator.ts.tmpl +7 -7
  91. package/templates/vertical_agentics/src/agents/planner.ts.tmpl +7 -7
  92. package/templates/vertical_agentics/src/agents/worker.ts.tmpl +7 -7
  93. package/templates/vertical_agentics/src/init.ts.tmpl +21 -21
  94. package/templates/vertical_agentics/tsconfig.json.tmpl +19 -19
  95. package/templates/vertical_agentics/vitest.config.ts.tmpl +23 -23
  96. package/templates/vertical_ai/.claude/commands/doctor.md.tmpl +12 -12
  97. package/templates/vertical_ai/.claude/settings.json.tmpl +35 -35
  98. package/templates/vertical_ai/.claude/skills/eval-report/SKILL.md.tmpl +13 -13
  99. package/templates/vertical_ai/.claude-plugin/plugin.json.tmpl +23 -23
  100. package/templates/vertical_ai/CLAUDE.md.tmpl +31 -31
  101. package/templates/vertical_ai/README.md.tmpl +30 -30
  102. package/templates/vertical_ai/__tests__/smoke.test.ts.tmpl +37 -37
  103. package/templates/vertical_ai/bin/cli.js.tmpl +100 -100
  104. package/templates/vertical_ai/manifest.json +106 -106
  105. package/templates/vertical_ai/package.json.tmpl +30 -30
  106. package/templates/vertical_ai/src/agents/data-curator.ts.tmpl +7 -7
  107. package/templates/vertical_ai/src/agents/deployer.ts.tmpl +7 -7
  108. package/templates/vertical_ai/src/agents/evaluator.ts.tmpl +7 -7
  109. package/templates/vertical_ai/src/agents/trainer.ts.tmpl +7 -7
  110. package/templates/vertical_ai/src/init.ts.tmpl +21 -21
  111. package/templates/vertical_ai/tsconfig.json.tmpl +19 -19
  112. package/templates/vertical_ai/vitest.config.ts.tmpl +23 -23
  113. package/templates/vertical_business/.claude/commands/doctor.md.tmpl +12 -12
  114. package/templates/vertical_business/.claude/settings.json.tmpl +33 -33
  115. package/templates/vertical_business/.claude/skills/quarterly-plan/SKILL.md.tmpl +13 -13
  116. package/templates/vertical_business/.claude-plugin/plugin.json.tmpl +23 -23
  117. package/templates/vertical_business/CLAUDE.md.tmpl +30 -30
  118. package/templates/vertical_business/README.md.tmpl +29 -29
  119. package/templates/vertical_business/__tests__/smoke.test.ts.tmpl +37 -37
  120. package/templates/vertical_business/bin/cli.js.tmpl +100 -100
  121. package/templates/vertical_business/manifest.json +101 -101
  122. package/templates/vertical_business/package.json.tmpl +30 -30
  123. package/templates/vertical_business/src/agents/analyst.ts.tmpl +7 -7
  124. package/templates/vertical_business/src/agents/ops-coordinator.ts.tmpl +7 -7
  125. package/templates/vertical_business/src/agents/strategist.ts.tmpl +7 -7
  126. package/templates/vertical_business/src/init.ts.tmpl +21 -21
  127. package/templates/vertical_business/tsconfig.json.tmpl +19 -19
  128. package/templates/vertical_business/vitest.config.ts.tmpl +23 -23
  129. package/templates/vertical_coding/.claude/commands/doctor.md.tmpl +12 -12
  130. package/templates/vertical_coding/.claude/commands/review-diff.md.tmpl +10 -10
  131. package/templates/vertical_coding/.claude/settings.json.tmpl +40 -40
  132. package/templates/vertical_coding/.claude/skills/plan-change/SKILL.md.tmpl +15 -15
  133. package/templates/vertical_coding/.claude-plugin/plugin.json.tmpl +23 -23
  134. package/templates/vertical_coding/CLAUDE.md.tmpl +32 -32
  135. package/templates/vertical_coding/README.md.tmpl +30 -30
  136. package/templates/vertical_coding/__tests__/smoke.test.ts.tmpl +37 -37
  137. package/templates/vertical_coding/bin/cli.js.tmpl +100 -100
  138. package/templates/vertical_coding/manifest.json +111 -111
  139. package/templates/vertical_coding/package.json.tmpl +30 -30
  140. package/templates/vertical_coding/src/agents/architect.ts.tmpl +7 -7
  141. package/templates/vertical_coding/src/agents/implementer.ts.tmpl +7 -7
  142. package/templates/vertical_coding/src/agents/reviewer.ts.tmpl +7 -7
  143. package/templates/vertical_coding/src/agents/test-writer.ts.tmpl +7 -7
  144. package/templates/vertical_coding/src/init.ts.tmpl +21 -21
  145. package/templates/vertical_coding/tsconfig.json.tmpl +19 -19
  146. package/templates/vertical_coding/vitest.config.ts.tmpl +23 -23
  147. package/templates/vertical_crm/.claude/commands/doctor.md.tmpl +12 -12
  148. package/templates/vertical_crm/.claude/settings.json.tmpl +33 -33
  149. package/templates/vertical_crm/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  150. package/templates/vertical_crm/.claude-plugin/plugin.json.tmpl +23 -23
  151. package/templates/vertical_crm/CLAUDE.md.tmpl +30 -30
  152. package/templates/vertical_crm/README.md.tmpl +29 -29
  153. package/templates/vertical_crm/__tests__/smoke.test.ts.tmpl +37 -37
  154. package/templates/vertical_crm/bin/cli.js.tmpl +100 -100
  155. package/templates/vertical_crm/manifest.json +101 -101
  156. package/templates/vertical_crm/package.json.tmpl +30 -30
  157. package/templates/vertical_crm/src/agents/account-manager.ts.tmpl +7 -7
  158. package/templates/vertical_crm/src/agents/churn-watcher.ts.tmpl +7 -7
  159. package/templates/vertical_crm/src/agents/lead-qualifier.ts.tmpl +7 -7
  160. package/templates/vertical_crm/src/init.ts.tmpl +21 -21
  161. package/templates/vertical_crm/tsconfig.json.tmpl +19 -19
  162. package/templates/vertical_crm/vitest.config.ts.tmpl +23 -23
  163. package/templates/vertical_devops/.claude/settings.json.tmpl +36 -36
  164. package/templates/vertical_devops/.claude-plugin/plugin.json.tmpl +23 -23
  165. package/templates/vertical_devops/CLAUDE.md.tmpl +34 -34
  166. package/templates/vertical_devops/README.md.tmpl +27 -27
  167. package/templates/vertical_devops/__tests__/smoke.test.ts.tmpl +37 -37
  168. package/templates/vertical_devops/bin/cli.js.tmpl +100 -100
  169. package/templates/vertical_devops/manifest.json +100 -100
  170. package/templates/vertical_devops/package.json.tmpl +27 -27
  171. package/templates/vertical_devops/runbooks/README.md.tmpl +32 -32
  172. package/templates/vertical_devops/src/agents/escalator.ts.tmpl +19 -19
  173. package/templates/vertical_devops/src/agents/postmortem.ts.tmpl +23 -23
  174. package/templates/vertical_devops/src/agents/responder.ts.tmpl +14 -14
  175. package/templates/vertical_devops/src/agents/runbook-runner.ts.tmpl +17 -17
  176. package/templates/vertical_devops/src/init.ts.tmpl +23 -23
  177. package/templates/vertical_devops/tsconfig.json.tmpl +19 -19
  178. package/templates/vertical_devops/vitest.config.ts.tmpl +23 -23
  179. package/templates/vertical_education/.claude/commands/doctor.md.tmpl +12 -12
  180. package/templates/vertical_education/.claude/commands/mastery-report.md.tmpl +12 -12
  181. package/templates/vertical_education/.claude/settings.json.tmpl +45 -45
  182. package/templates/vertical_education/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  183. package/templates/vertical_education/.claude/skills/teach-next/SKILL.md.tmpl +16 -16
  184. package/templates/vertical_education/.claude-plugin/plugin.json.tmpl +23 -23
  185. package/templates/vertical_education/CLAUDE.md.tmpl +33 -33
  186. package/templates/vertical_education/README.md.tmpl +30 -30
  187. package/templates/vertical_education/__tests__/smoke.test.ts.tmpl +37 -37
  188. package/templates/vertical_education/bin/cli.js.tmpl +100 -100
  189. package/templates/vertical_education/manifest.json +116 -116
  190. package/templates/vertical_education/package.json.tmpl +30 -30
  191. package/templates/vertical_education/src/agents/explainer.ts.tmpl +7 -7
  192. package/templates/vertical_education/src/agents/grader.ts.tmpl +7 -7
  193. package/templates/vertical_education/src/agents/quiz-master.ts.tmpl +7 -7
  194. package/templates/vertical_education/src/agents/tutor.ts.tmpl +7 -7
  195. package/templates/vertical_education/src/init.ts.tmpl +21 -21
  196. package/templates/vertical_education/tsconfig.json.tmpl +19 -19
  197. package/templates/vertical_education/vitest.config.ts.tmpl +23 -23
  198. package/templates/vertical_exotic/.claude/commands/doctor.md.tmpl +12 -12
  199. package/templates/vertical_exotic/.claude/settings.json.tmpl +44 -44
  200. package/templates/vertical_exotic/.claude/skills/evolve/SKILL.md.tmpl +14 -14
  201. package/templates/vertical_exotic/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  202. package/templates/vertical_exotic/.claude-plugin/plugin.json.tmpl +23 -23
  203. package/templates/vertical_exotic/CLAUDE.md.tmpl +31 -31
  204. package/templates/vertical_exotic/README.md.tmpl +29 -29
  205. package/templates/vertical_exotic/__tests__/smoke.test.ts.tmpl +37 -37
  206. package/templates/vertical_exotic/bin/cli.js.tmpl +100 -100
  207. package/templates/vertical_exotic/manifest.json +106 -106
  208. package/templates/vertical_exotic/package.json.tmpl +30 -30
  209. package/templates/vertical_exotic/src/agents/experimenter.ts.tmpl +7 -7
  210. package/templates/vertical_exotic/src/agents/federator.ts.tmpl +7 -7
  211. package/templates/vertical_exotic/src/agents/hypothesizer.ts.tmpl +7 -7
  212. package/templates/vertical_exotic/src/init.ts.tmpl +21 -21
  213. package/templates/vertical_exotic/tsconfig.json.tmpl +19 -19
  214. package/templates/vertical_exotic/vitest.config.ts.tmpl +23 -23
  215. package/templates/vertical_gaming/.claude/commands/design-doc-diff.md.tmpl +13 -13
  216. package/templates/vertical_gaming/.claude/commands/doctor.md.tmpl +12 -12
  217. package/templates/vertical_gaming/.claude/settings.json.tmpl +45 -45
  218. package/templates/vertical_gaming/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  219. package/templates/vertical_gaming/.claude/skills/playtest-recap/SKILL.md.tmpl +16 -16
  220. package/templates/vertical_gaming/.claude-plugin/plugin.json.tmpl +23 -23
  221. package/templates/vertical_gaming/CLAUDE.md.tmpl +33 -33
  222. package/templates/vertical_gaming/README.md.tmpl +30 -30
  223. package/templates/vertical_gaming/__tests__/smoke.test.ts.tmpl +37 -37
  224. package/templates/vertical_gaming/bin/cli.js.tmpl +100 -100
  225. package/templates/vertical_gaming/manifest.json +116 -116
  226. package/templates/vertical_gaming/package.json.tmpl +30 -30
  227. package/templates/vertical_gaming/src/agents/balance-critic.ts.tmpl +7 -7
  228. package/templates/vertical_gaming/src/agents/economy-modeler.ts.tmpl +7 -7
  229. package/templates/vertical_gaming/src/agents/narrative-keeper.ts.tmpl +7 -7
  230. package/templates/vertical_gaming/src/agents/playtest-reader.ts.tmpl +7 -7
  231. package/templates/vertical_gaming/src/init.ts.tmpl +21 -21
  232. package/templates/vertical_gaming/tsconfig.json.tmpl +19 -19
  233. package/templates/vertical_gaming/vitest.config.ts.tmpl +23 -23
  234. package/templates/vertical_health/.claude/commands/doctor.md.tmpl +12 -12
  235. package/templates/vertical_health/.claude/settings.json.tmpl +33 -33
  236. package/templates/vertical_health/.claude/skills/wellness-intake/SKILL.md.tmpl +15 -15
  237. package/templates/vertical_health/.claude-plugin/plugin.json.tmpl +23 -23
  238. package/templates/vertical_health/CLAUDE.md.tmpl +30 -30
  239. package/templates/vertical_health/README.md.tmpl +29 -29
  240. package/templates/vertical_health/__tests__/smoke.test.ts.tmpl +37 -37
  241. package/templates/vertical_health/bin/cli.js.tmpl +100 -100
  242. package/templates/vertical_health/manifest.json +101 -101
  243. package/templates/vertical_health/package.json.tmpl +30 -30
  244. package/templates/vertical_health/src/agents/care-coordinator.ts.tmpl +7 -7
  245. package/templates/vertical_health/src/agents/intake.ts.tmpl +7 -7
  246. package/templates/vertical_health/src/agents/triage.ts.tmpl +7 -7
  247. package/templates/vertical_health/src/init.ts.tmpl +21 -21
  248. package/templates/vertical_health/tsconfig.json.tmpl +19 -19
  249. package/templates/vertical_health/vitest.config.ts.tmpl +23 -23
  250. package/templates/vertical_legal/.claude/settings.json.tmpl +10 -10
  251. package/templates/vertical_legal/.claude-plugin/plugin.json.tmpl +23 -23
  252. package/templates/vertical_legal/CLAUDE.md.tmpl +24 -24
  253. package/templates/vertical_legal/README.md.tmpl +21 -21
  254. package/templates/vertical_legal/__tests__/smoke.test.ts.tmpl +37 -37
  255. package/templates/vertical_legal/bin/cli.js.tmpl +100 -100
  256. package/templates/vertical_legal/manifest.json +90 -90
  257. package/templates/vertical_legal/package.json.tmpl +14 -14
  258. package/templates/vertical_legal/src/agents/citation-checker.ts.tmpl +7 -7
  259. package/templates/vertical_legal/src/agents/redline.ts.tmpl +7 -7
  260. package/templates/vertical_legal/src/agents/risk-rater.ts.tmpl +8 -8
  261. package/templates/vertical_legal/src/init.ts.tmpl +13 -13
  262. package/templates/vertical_legal/tsconfig.json.tmpl +19 -19
  263. package/templates/vertical_legal/vitest.config.ts.tmpl +23 -23
  264. package/templates/vertical_marketing/.claude/commands/doctor.md.tmpl +12 -12
  265. package/templates/vertical_marketing/.claude/settings.json.tmpl +33 -33
  266. package/templates/vertical_marketing/.claude/skills/campaign-brief/SKILL.md.tmpl +13 -13
  267. package/templates/vertical_marketing/.claude-plugin/plugin.json.tmpl +23 -23
  268. package/templates/vertical_marketing/CLAUDE.md.tmpl +30 -30
  269. package/templates/vertical_marketing/README.md.tmpl +29 -29
  270. package/templates/vertical_marketing/__tests__/smoke.test.ts.tmpl +37 -37
  271. package/templates/vertical_marketing/bin/cli.js.tmpl +100 -100
  272. package/templates/vertical_marketing/manifest.json +101 -101
  273. package/templates/vertical_marketing/package.json.tmpl +30 -30
  274. package/templates/vertical_marketing/src/agents/content-creator.ts.tmpl +7 -7
  275. package/templates/vertical_marketing/src/agents/seo-analyst.ts.tmpl +7 -7
  276. package/templates/vertical_marketing/src/agents/strategist.ts.tmpl +7 -7
  277. package/templates/vertical_marketing/src/init.ts.tmpl +21 -21
  278. package/templates/vertical_marketing/tsconfig.json.tmpl +19 -19
  279. package/templates/vertical_marketing/vitest.config.ts.tmpl +23 -23
  280. package/templates/vertical_repo-maintainer/.claude/commands/doctor.md.tmpl +12 -12
  281. package/templates/vertical_repo-maintainer/.claude/commands/release-check.md.tmpl +13 -13
  282. package/templates/vertical_repo-maintainer/.claude/commands/repo-triage.md.tmpl +16 -16
  283. package/templates/vertical_repo-maintainer/.claude/settings.json.tmpl +44 -44
  284. package/templates/vertical_repo-maintainer/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  285. package/templates/vertical_repo-maintainer/.claude/skills/plan-change/SKILL.md.tmpl +15 -15
  286. package/templates/vertical_repo-maintainer/.claude-plugin/plugin.json.tmpl +23 -23
  287. package/templates/vertical_repo-maintainer/CLAUDE.md.tmpl +34 -34
  288. package/templates/vertical_repo-maintainer/README.md.tmpl +30 -30
  289. package/templates/vertical_repo-maintainer/__tests__/smoke.test.ts.tmpl +37 -37
  290. package/templates/vertical_repo-maintainer/bin/cli.js.tmpl +100 -100
  291. package/templates/vertical_repo-maintainer/manifest.json +121 -121
  292. package/templates/vertical_repo-maintainer/package.json.tmpl +30 -30
  293. package/templates/vertical_repo-maintainer/src/agents/benchmarker.ts.tmpl +7 -7
  294. package/templates/vertical_repo-maintainer/src/agents/maintainer.ts.tmpl +7 -7
  295. package/templates/vertical_repo-maintainer/src/agents/release.ts.tmpl +7 -7
  296. package/templates/vertical_repo-maintainer/src/agents/security.ts.tmpl +7 -7
  297. package/templates/vertical_repo-maintainer/src/init.ts.tmpl +21 -21
  298. package/templates/vertical_repo-maintainer/tsconfig.json.tmpl +19 -19
  299. package/templates/vertical_repo-maintainer/vitest.config.ts.tmpl +23 -23
  300. package/templates/vertical_research/.claude/settings.json.tmpl +9 -9
  301. package/templates/vertical_research/.claude-plugin/plugin.json.tmpl +23 -23
  302. package/templates/vertical_research/CLAUDE.md.tmpl +33 -33
  303. package/templates/vertical_research/README.md.tmpl +17 -17
  304. package/templates/vertical_research/__tests__/smoke.test.ts.tmpl +37 -37
  305. package/templates/vertical_research/bin/cli.js.tmpl +100 -100
  306. package/templates/vertical_research/manifest.json +105 -105
  307. package/templates/vertical_research/package.json.tmpl +14 -14
  308. package/templates/vertical_research/src/agents/citer.ts.tmpl +8 -8
  309. package/templates/vertical_research/src/agents/fact-checker.ts.tmpl +8 -8
  310. package/templates/vertical_research/src/agents/scout.ts.tmpl +7 -7
  311. package/templates/vertical_research/src/agents/source-grader.ts.tmpl +10 -10
  312. package/templates/vertical_research/src/agents/synthesizer.ts.tmpl +8 -8
  313. package/templates/vertical_research/src/agents/web-searcher.ts.tmpl +6 -6
  314. package/templates/vertical_research/src/init.ts.tmpl +13 -13
  315. package/templates/vertical_research/tsconfig.json.tmpl +19 -19
  316. package/templates/vertical_research/vitest.config.ts.tmpl +23 -23
  317. package/templates/vertical_ruview/.claude/commands/doctor.md.tmpl +12 -12
  318. package/templates/vertical_ruview/.claude/settings.json.tmpl +33 -33
  319. package/templates/vertical_ruview/.claude/skills/index-and-ask/SKILL.md.tmpl +15 -15
  320. package/templates/vertical_ruview/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  321. package/templates/vertical_ruview/.claude-plugin/plugin.json.tmpl +23 -23
  322. package/templates/vertical_ruview/CLAUDE.md.tmpl +31 -31
  323. package/templates/vertical_ruview/README.md.tmpl +29 -29
  324. package/templates/vertical_ruview/__tests__/smoke.test.ts.tmpl +37 -37
  325. package/templates/vertical_ruview/bin/cli.js.tmpl +100 -100
  326. package/templates/vertical_ruview/manifest.json +106 -106
  327. package/templates/vertical_ruview/package.json.tmpl +30 -30
  328. package/templates/vertical_ruview/src/agents/indexer.ts.tmpl +7 -7
  329. package/templates/vertical_ruview/src/agents/retriever.ts.tmpl +7 -7
  330. package/templates/vertical_ruview/src/agents/reviewer.ts.tmpl +7 -7
  331. package/templates/vertical_ruview/src/init.ts.tmpl +21 -21
  332. package/templates/vertical_ruview/tsconfig.json.tmpl +19 -19
  333. package/templates/vertical_ruview/vitest.config.ts.tmpl +23 -23
  334. package/templates/vertical_sales/.claude/commands/doctor.md.tmpl +12 -12
  335. package/templates/vertical_sales/.claude/commands/pipeline-report.md.tmpl +13 -13
  336. package/templates/vertical_sales/.claude/settings.json.tmpl +45 -45
  337. package/templates/vertical_sales/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -14
  338. package/templates/vertical_sales/.claude/skills/qualify-lead/SKILL.md.tmpl +15 -15
  339. package/templates/vertical_sales/.claude-plugin/plugin.json.tmpl +23 -23
  340. package/templates/vertical_sales/CLAUDE.md.tmpl +33 -33
  341. package/templates/vertical_sales/README.md.tmpl +30 -30
  342. package/templates/vertical_sales/__tests__/smoke.test.ts.tmpl +37 -37
  343. package/templates/vertical_sales/bin/cli.js.tmpl +100 -100
  344. package/templates/vertical_sales/manifest.json +116 -116
  345. package/templates/vertical_sales/package.json.tmpl +30 -30
  346. package/templates/vertical_sales/src/agents/closer.ts.tmpl +7 -7
  347. package/templates/vertical_sales/src/agents/demo-coach.ts.tmpl +7 -7
  348. package/templates/vertical_sales/src/agents/prospector.ts.tmpl +7 -7
  349. package/templates/vertical_sales/src/agents/qualifier.ts.tmpl +7 -7
  350. package/templates/vertical_sales/src/init.ts.tmpl +21 -21
  351. package/templates/vertical_sales/tsconfig.json.tmpl +19 -19
  352. package/templates/vertical_sales/vitest.config.ts.tmpl +23 -23
  353. package/templates/vertical_support/.claude/settings.json.tmpl +25 -25
  354. package/templates/vertical_support/.claude-plugin/plugin.json.tmpl +23 -23
  355. package/templates/vertical_support/CLAUDE.md.tmpl +34 -34
  356. package/templates/vertical_support/README.md.tmpl +16 -16
  357. package/templates/vertical_support/__tests__/smoke.test.ts.tmpl +37 -37
  358. package/templates/vertical_support/bin/cli.js.tmpl +100 -100
  359. package/templates/vertical_support/kb/README.md.tmpl +23 -23
  360. package/templates/vertical_support/manifest.json +100 -100
  361. package/templates/vertical_support/package.json.tmpl +25 -25
  362. package/templates/vertical_support/src/agents/escalator.ts.tmpl +6 -6
  363. package/templates/vertical_support/src/agents/kb-searcher.ts.tmpl +6 -6
  364. package/templates/vertical_support/src/agents/responder.ts.tmpl +7 -7
  365. package/templates/vertical_support/src/agents/triager.ts.tmpl +6 -6
  366. package/templates/vertical_support/src/init.ts.tmpl +16 -16
  367. package/templates/vertical_support/tsconfig.json.tmpl +19 -19
  368. package/templates/vertical_support/vitest.config.ts.tmpl +23 -23
  369. package/templates/vertical_trading/.claude/settings.json.tmpl +20 -20
  370. package/templates/vertical_trading/.claude-plugin/plugin.json.tmpl +23 -23
  371. package/templates/vertical_trading/CLAUDE.md.tmpl +24 -24
  372. package/templates/vertical_trading/README.md.tmpl +17 -17
  373. package/templates/vertical_trading/__tests__/smoke.test.ts.tmpl +37 -37
  374. package/templates/vertical_trading/bin/cli.js.tmpl +100 -100
  375. package/templates/vertical_trading/manifest.json +100 -100
  376. package/templates/vertical_trading/package.json.tmpl +14 -14
  377. package/templates/vertical_trading/src/agents/executor.ts.tmpl +8 -8
  378. package/templates/vertical_trading/src/agents/market-watcher.ts.tmpl +7 -7
  379. package/templates/vertical_trading/src/agents/postmortem.ts.tmpl +8 -8
  380. package/templates/vertical_trading/src/agents/risk-checker.ts.tmpl +11 -11
  381. package/templates/vertical_trading/src/agents/signal-gen.ts.tmpl +8 -8
  382. package/templates/vertical_trading/src/init.ts.tmpl +20 -20
  383. package/templates/vertical_trading/tsconfig.json.tmpl +19 -19
  384. package/templates/vertical_trading/vitest.config.ts.tmpl +23 -23
@@ -1,30 +1,30 @@
1
- {
2
- "name": "{{name}}",
3
- "version": "0.1.0",
4
- "description": "{{description}}",
5
- "type": "module",
6
- "bin": {
7
- "{{name}}": "bin/cli.js"
8
- },
9
- "files": ["bin/**", "dist/**", "src/**", "tsconfig.json", ".claude/**", "CLAUDE.md", "README.md", "LICENSE"],
10
- "scripts": {
11
- "build": "tsc",
12
- "test": "vitest run",
13
- "init": "node ./bin/cli.js init", "doctor": "node ./bin/cli.js doctor"
14
- },
15
- "dependencies": {
16
- "@metaharness/kernel": "^0.1.0",
17
- "@metaharness/host-{{host}}": "^0.1.0"
18
- },
19
- "devDependencies": {
20
- "@types/node": "^20.0.0",
21
- "typescript": "^5.4.0",
22
- "vitest": "^3.0.0"
23
- },
24
- "engines": {
25
- "node": ">=20.0.0"
26
- },
27
- "publishConfig": {
28
- "access": "public"
29
- }
30
- }
1
+ {
2
+ "name": "{{name}}",
3
+ "version": "0.1.0",
4
+ "description": "{{description}}",
5
+ "type": "module",
6
+ "bin": {
7
+ "{{name}}": "bin/cli.js"
8
+ },
9
+ "files": ["bin/**", "dist/**", "src/**", "tsconfig.json", ".claude/**", "CLAUDE.md", "README.md", "LICENSE"],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "test": "vitest run",
13
+ "init": "node ./bin/cli.js init", "doctor": "node ./bin/cli.js doctor"
14
+ },
15
+ "dependencies": {
16
+ "@metaharness/kernel": "^0.1.0",
17
+ "@metaharness/host-{{host}}": "^0.1.0"
18
+ },
19
+ "devDependencies": {
20
+ "@types/node": "^20.0.0",
21
+ "typescript": "^5.4.0",
22
+ "vitest": "^3.0.0"
23
+ },
24
+ "engines": {
25
+ "node": ">=20.0.0"
26
+ },
27
+ "publishConfig": {
28
+ "access": "public"
29
+ }
30
+ }
@@ -1,7 +1,7 @@
1
- // SPDX-License-Identifier: MIT
2
- // Architect agent — Designs the change before code is written.
3
-
4
- export const SYSTEM_PROMPT = `You are the architect. Before any code is written you produce the smallest design that satisfies the request: the files to touch, the interfaces to add, and the trade-offs. You never write the implementation — you hand a crisp plan to the implementer. Prefer reuse over new abstractions; call out any change that ripples beyond three files. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
-
6
- export const NAME = 'architect';
7
- export const TIER = 'opus' as const;
1
+ // SPDX-License-Identifier: MIT
2
+ // Architect agent — Designs the change before code is written.
3
+
4
+ export const SYSTEM_PROMPT = `You are the architect. Before any code is written you produce the smallest design that satisfies the request: the files to touch, the interfaces to add, and the trade-offs. You never write the implementation — you hand a crisp plan to the implementer. Prefer reuse over new abstractions; call out any change that ripples beyond three files. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
+
6
+ export const NAME = 'architect';
7
+ export const TIER = 'opus' as const;
@@ -1,7 +1,7 @@
1
- // SPDX-License-Identifier: MIT
2
- // Implementer agent — Writes code that matches the surrounding style.
3
-
4
- export const SYSTEM_PROMPT = `You implement the architect's plan. Match the existing code's naming, comment density, and idioms — your diff should read like the person who wrote the file kept writing. Make the minimal change; do not refactor unrelated code. Leave the tests to the test-writer unless asked. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
-
6
- export const NAME = 'implementer';
7
- export const TIER = 'sonnet' as const;
1
+ // SPDX-License-Identifier: MIT
2
+ // Implementer agent — Writes code that matches the surrounding style.
3
+
4
+ export const SYSTEM_PROMPT = `You implement the architect's plan. Match the existing code's naming, comment density, and idioms — your diff should read like the person who wrote the file kept writing. Make the minimal change; do not refactor unrelated code. Leave the tests to the test-writer unless asked. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
+
6
+ export const NAME = 'implementer';
7
+ export const TIER = 'sonnet' as const;
@@ -1,7 +1,7 @@
1
- // SPDX-License-Identifier: MIT
2
- // Reviewer agent — Hunts correctness bugs in the diff.
3
-
4
- export const SYSTEM_PROMPT = `You review diffs for correctness, security, and reuse. Report only high-confidence findings, each with a file:line and a concrete fix. Distinguish a bug (will break) from a nit (style). Never approve a change that widens a permission, swallows an error, or ships a secret. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
-
6
- export const NAME = 'reviewer';
7
- export const TIER = 'opus' as const;
1
+ // SPDX-License-Identifier: MIT
2
+ // Reviewer agent — Hunts correctness bugs in the diff.
3
+
4
+ export const SYSTEM_PROMPT = `You review diffs for correctness, security, and reuse. Report only high-confidence findings, each with a file:line and a concrete fix. Distinguish a bug (will break) from a nit (style). Never approve a change that widens a permission, swallows an error, or ships a secret. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
+
6
+ export const NAME = 'reviewer';
7
+ export const TIER = 'opus' as const;
@@ -1,7 +1,7 @@
1
- // SPDX-License-Identifier: MIT
2
- // Test Writer agent — Adds the missing tests for the change.
3
-
4
- export const SYSTEM_PROMPT = `You write the tests the change needs: the happy path, the boundary, and the one failure mode most likely to regress. Mirror the project's existing test style and runner. A test that cannot fail is worse than no test — assert behaviour, not implementation. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
-
6
- export const NAME = 'test-writer';
7
- export const TIER = 'sonnet' as const;
1
+ // SPDX-License-Identifier: MIT
2
+ // Test Writer agent — Adds the missing tests for the change.
3
+
4
+ export const SYSTEM_PROMPT = `You write the tests the change needs: the happy path, the boundary, and the one failure mode most likely to regress. Mirror the project's existing test style and runner. A test that cannot fail is worse than no test — assert behaviour, not implementation. You operate inside the {{name}} harness; defer destructive actions to the user.`;
5
+
6
+ export const NAME = 'test-writer';
7
+ export const TIER = 'sonnet' as const;
@@ -1,21 +1,21 @@
1
- // SPDX-License-Identifier: MIT
2
- // Generated by create-agent-harness — your harness's `{{name}} init` entry.
3
-
4
- import { loadKernel } from '@metaharness/kernel';
5
- import adapter from '@metaharness/host-{{host}}';
6
-
7
- const HARNESS_NAME = '{{name}}';
8
-
9
- async function main(): Promise<number> {
10
- const kernel = await loadKernel();
11
- const info = kernel.kernelInfo();
12
- console.log(`${HARNESS_NAME} — kernel ${info.version} (${kernel.backend})`);
13
- console.log(`Host adapter: ${adapter.name}`);
14
- console.log(`Run \`${HARNESS_NAME} doctor\` to verify the install.`);
15
- return 0;
16
- }
17
-
18
- main().then(c => process.exit(c)).catch(err => {
19
- console.error(err);
20
- process.exit(1);
21
- });
1
+ // SPDX-License-Identifier: MIT
2
+ // Generated by create-agent-harness — your harness's `{{name}} init` entry.
3
+
4
+ import { loadKernel } from '@metaharness/kernel';
5
+ import adapter from '@metaharness/host-{{host}}';
6
+
7
+ const HARNESS_NAME = '{{name}}';
8
+
9
+ async function main(): Promise<number> {
10
+ const kernel = await loadKernel();
11
+ const info = kernel.kernelInfo();
12
+ console.log(`${HARNESS_NAME} — kernel ${info.version} (${kernel.backend})`);
13
+ console.log(`Host adapter: ${adapter.name}`);
14
+ console.log(`Run \`${HARNESS_NAME} doctor\` to verify the install.`);
15
+ return 0;
16
+ }
17
+
18
+ main().then(c => process.exit(c)).catch(err => {
19
+ console.error(err);
20
+ process.exit(1);
21
+ });
@@ -1,19 +1,19 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "NodeNext",
5
- "moduleResolution": "NodeNext",
6
- "lib": ["ES2022"],
7
- "outDir": "./dist",
8
- "rootDir": "./src",
9
- "declaration": true,
10
- "declarationMap": true,
11
- "sourceMap": true,
12
- "strict": true,
13
- "esModuleInterop": true,
14
- "skipLibCheck": true,
15
- "forceConsistentCasingInFileNames": true
16
- },
17
- "include": ["src/**/*.ts"],
18
- "exclude": ["node_modules", "dist", "__tests__"]
19
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2022",
4
+ "module": "NodeNext",
5
+ "moduleResolution": "NodeNext",
6
+ "lib": ["ES2022"],
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "declaration": true,
10
+ "declarationMap": true,
11
+ "sourceMap": true,
12
+ "strict": true,
13
+ "esModuleInterop": true,
14
+ "skipLibCheck": true,
15
+ "forceConsistentCasingInFileNames": true
16
+ },
17
+ "include": ["src/**/*.ts"],
18
+ "exclude": ["node_modules", "dist", "__tests__"]
19
+ }
@@ -1,23 +1,23 @@
1
- // SPDX-License-Identifier: MIT
2
- // Generated by metaharness. Strips the `#!/usr/bin/env node` shebang from
3
- // importable entrypoints (e.g. bin/cli.js) before Vite parses them — Vite/esbuild
4
- // (used internally by Vitest) does NOT strip shebangs, so importing a shebanged
5
- // module throws `SyntaxError: Invalid or unexpected token`. See issue #44.
6
- // Has no effect on direct CLI execution or `npm run doctor` (those bypass Vite).
7
- import { defineConfig } from 'vitest/config';
8
-
9
- export default defineConfig({
10
- plugins: [
11
- {
12
- name: 'strip-shebang',
13
- enforce: 'pre',
14
- transform(code: string) {
15
- if (code.startsWith('#!')) {
16
- // Replace with a blank line so source line numbers stay aligned.
17
- return { code: code.replace(/^#![^\n]*/, ''), map: null };
18
- }
19
- return null;
20
- },
21
- },
22
- ],
23
- });
1
+ // SPDX-License-Identifier: MIT
2
+ // Generated by metaharness. Strips the `#!/usr/bin/env node` shebang from
3
+ // importable entrypoints (e.g. bin/cli.js) before Vite parses them — Vite/esbuild
4
+ // (used internally by Vitest) does NOT strip shebangs, so importing a shebanged
5
+ // module throws `SyntaxError: Invalid or unexpected token`. See issue #44.
6
+ // Has no effect on direct CLI execution or `npm run doctor` (those bypass Vite).
7
+ import { defineConfig } from 'vitest/config';
8
+
9
+ export default defineConfig({
10
+ plugins: [
11
+ {
12
+ name: 'strip-shebang',
13
+ enforce: 'pre',
14
+ transform(code: string) {
15
+ if (code.startsWith('#!')) {
16
+ // Replace with a blank line so source line numbers stay aligned.
17
+ return { code: code.replace(/^#![^\n]*/, ''), map: null };
18
+ }
19
+ return null;
20
+ },
21
+ },
22
+ ],
23
+ });
@@ -1,12 +1,12 @@
1
- ---
2
- description: "Health-check the harness: kernel load, MCP wiring, memory backend, host adapter."
3
- ---
4
-
5
- Run a full health check and print a PASS/FAIL table.
6
-
7
- 1. Kernel loads and `kernelInfo().version` matches package.json.
8
- 2. The MCP server starts and lists its tools.
9
- 3. The memory backend is reachable.
10
- 4. The configured host adapter is present.
11
-
12
- Exit non-zero if any check fails.
1
+ ---
2
+ description: "Health-check the harness: kernel load, MCP wiring, memory backend, host adapter."
3
+ ---
4
+
5
+ Run a full health check and print a PASS/FAIL table.
6
+
7
+ 1. Kernel loads and `kernelInfo().version` matches package.json.
8
+ 2. The MCP server starts and lists its tools.
9
+ 3. The memory backend is reachable.
10
+ 4. The configured host adapter is present.
11
+
12
+ Exit non-zero if any check fails.
@@ -1,33 +1,33 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npx {{name}}*)",
5
- "mcp__{{name}}__*",
6
- "mcp__crm_store__*"
7
- ],
8
- "deny": [
9
- "Read(./.env)",
10
- "Read(./.env.*)"
11
- ]
12
- },
13
- "mcpServers": {
14
- "{{name}}": {
15
- "command": "npx",
16
- "args": [
17
- "-y",
18
- "{{name}}@latest",
19
- "mcp",
20
- "start"
21
- ]
22
- },
23
- "crm_store": {
24
- "command": "npx",
25
- "args": [
26
- "-y",
27
- "{{name}}@latest",
28
- "mcp",
29
- "crm"
30
- ]
31
- }
32
- }
33
- }
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(npx {{name}}*)",
5
+ "mcp__{{name}}__*",
6
+ "mcp__crm_store__*"
7
+ ],
8
+ "deny": [
9
+ "Read(./.env)",
10
+ "Read(./.env.*)"
11
+ ]
12
+ },
13
+ "mcpServers": {
14
+ "{{name}}": {
15
+ "command": "npx",
16
+ "args": [
17
+ "-y",
18
+ "{{name}}@latest",
19
+ "mcp",
20
+ "start"
21
+ ]
22
+ },
23
+ "crm_store": {
24
+ "command": "npx",
25
+ "args": [
26
+ "-y",
27
+ "{{name}}@latest",
28
+ "mcp",
29
+ "crm"
30
+ ]
31
+ }
32
+ }
33
+ }
@@ -1,14 +1,14 @@
1
- ---
2
- name: memory-inspect
3
- description: Search and inspect the harness memory namespace (HNSW + emergent-time decay).
4
- ---
5
-
6
- # memory-inspect
7
-
8
- Inspect what the harness has learned.
9
-
10
- - `search <query>` — semantic nearest-neighbour over the namespace
11
- - `list` — recent patterns with decay weight
12
- - `forget <id>` — evict a pattern
13
-
14
- Use this before planning so the harness reuses prior trajectories instead of starting cold.
1
+ ---
2
+ name: memory-inspect
3
+ description: Search and inspect the harness memory namespace (HNSW + emergent-time decay).
4
+ ---
5
+
6
+ # memory-inspect
7
+
8
+ Inspect what the harness has learned.
9
+
10
+ - `search <query>` — semantic nearest-neighbour over the namespace
11
+ - `list` — recent patterns with decay weight
12
+ - `forget <id>` — evict a pattern
13
+
14
+ Use this before planning so the harness reuses prior trajectories instead of starting cold.
@@ -1,23 +1,23 @@
1
- {
2
- "name": "{{name}}",
3
- "version": "0.1.0",
4
- "description": "{{description}}",
5
- "author": {
6
- "displayName": "Generated by metaharness",
7
- "url": "https://www.npmjs.com/package/metaharness"
8
- },
9
- "license": "MIT",
10
- "categories": [
11
- "agent-harness",
12
- "metaharness-scaffold",
13
- "Customer",
14
- "crm/lifecycle"
15
- ],
16
- "tags": [
17
- "metaharness",
18
- "agent-harness",
19
- "vertical:crm",
20
- "crm/lifecycle"
21
- ],
22
- "homepage": "https://github.com/ruvnet/agent-harness-generator"
23
- }
1
+ {
2
+ "name": "{{name}}",
3
+ "version": "0.1.0",
4
+ "description": "{{description}}",
5
+ "author": {
6
+ "displayName": "Generated by metaharness",
7
+ "url": "https://www.npmjs.com/package/metaharness"
8
+ },
9
+ "license": "MIT",
10
+ "categories": [
11
+ "agent-harness",
12
+ "metaharness-scaffold",
13
+ "Customer",
14
+ "crm/lifecycle"
15
+ ],
16
+ "tags": [
17
+ "metaharness",
18
+ "agent-harness",
19
+ "vertical:crm",
20
+ "crm/lifecycle"
21
+ ],
22
+ "homepage": "https://github.com/ruvnet/agent-harness-generator"
23
+ }
@@ -1,30 +1,30 @@
1
- # {{name}}
2
-
3
- {{description}}
4
-
5
- > Customer Management harness · domain: `crm/lifecycle`. Generated with [create-agent-harness](https://github.com/ruvnet/agent-harness-generator).
6
-
7
- ## Behavioral rules
8
-
9
- - Use the harness's MCP tools (`mcp__{{name}}__*`) for orchestration
10
- - Memory and routing are handled by the kernel — you don't need to learn them
11
- - Defer destructive operations to the user
12
-
13
- ## Agents
14
-
15
- | Agent | Tier | Role |
16
- |---|---|---|
17
- | `lead-qualifier` | haiku | Scores and routes inbound leads. |
18
- | `account-manager` | sonnet | Owns the relationship and the next play. |
19
- | `churn-watcher` | sonnet | Detects and explains churn risk early. |
20
- ## Skills
21
-
22
- - `/memory-inspect` — Search and inspect the harness memory namespace (HNSW + emergent-time decay).
23
-
24
- ## Commands
25
-
26
- - `doctor` — Health-check the harness: kernel load, MCP wiring, memory backend, host adapter.
27
-
28
- ## Architecture
29
-
30
- This harness uses [@metaharness/kernel](https://www.npmjs.com/package/@metaharness/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
1
+ # {{name}}
2
+
3
+ {{description}}
4
+
5
+ > Customer Management harness · domain: `crm/lifecycle`. Generated with [create-agent-harness](https://github.com/ruvnet/agent-harness-generator).
6
+
7
+ ## Behavioral rules
8
+
9
+ - Use the harness's MCP tools (`mcp__{{name}}__*`) for orchestration
10
+ - Memory and routing are handled by the kernel — you don't need to learn them
11
+ - Defer destructive operations to the user
12
+
13
+ ## Agents
14
+
15
+ | Agent | Tier | Role |
16
+ |---|---|---|
17
+ | `lead-qualifier` | haiku | Scores and routes inbound leads. |
18
+ | `account-manager` | sonnet | Owns the relationship and the next play. |
19
+ | `churn-watcher` | sonnet | Detects and explains churn risk early. |
20
+ ## Skills
21
+
22
+ - `/memory-inspect` — Search and inspect the harness memory namespace (HNSW + emergent-time decay).
23
+
24
+ ## Commands
25
+
26
+ - `doctor` — Health-check the harness: kernel load, MCP wiring, memory backend, host adapter.
27
+
28
+ ## Architecture
29
+
30
+ This harness uses [@metaharness/kernel](https://www.npmjs.com/package/@metaharness/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
@@ -1,29 +1,29 @@
1
- # {{name}}
2
-
3
- {{description}}
4
-
5
- > **Customer Management** — Qualify → manage → watch-churn, with a CRM-store MCP and lifecycle memory.
6
- >
7
- > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). Multi-host scaffolding with a kernel that resolves native → wasm → js (js backend in the published beta; see `harness doctor`).
8
-
9
- ## Install
10
-
11
- ```bash
12
- npm install -g {{name}}
13
- {{name}} init
14
- {{name}} doctor
15
- ```
16
-
17
- ## Agents
18
-
19
- | Agent | Role |
20
- |---|---|
21
- | `lead-qualifier` | Scores and routes inbound leads. |
22
- | `account-manager` | Owns the relationship and the next play. |
23
- | `churn-watcher` | Detects and explains churn risk early. |
24
-
25
- This harness ships with the **{{host}}** adapter.
26
-
27
- ## License
28
-
29
- MIT
1
+ # {{name}}
2
+
3
+ {{description}}
4
+
5
+ > **Customer Management** — Qualify → manage → watch-churn, with a CRM-store MCP and lifecycle memory.
6
+ >
7
+ > Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). Multi-host scaffolding with a kernel that resolves native → wasm → js (js backend in the published beta; see `harness doctor`).
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install -g {{name}}
13
+ {{name}} init
14
+ {{name}} doctor
15
+ ```
16
+
17
+ ## Agents
18
+
19
+ | Agent | Role |
20
+ |---|---|
21
+ | `lead-qualifier` | Scores and routes inbound leads. |
22
+ | `account-manager` | Owns the relationship and the next play. |
23
+ | `churn-watcher` | Detects and explains churn risk early. |
24
+
25
+ This harness ships with the **{{host}}** adapter.
26
+
27
+ ## License
28
+
29
+ MIT
@@ -1,37 +1,37 @@
1
- // SPDX-License-Identifier: MIT
2
- // Generated by metaharness — a real smoke test for {{name}}.
3
- //
4
- // This is NOT a placeholder: it boots the actual kernel + host adapter the
5
- // harness depends on, so `npm test` fails loudly if @metaharness/kernel or
6
- // @metaharness/host-{{host}} is missing, broken, or version-skewed. It is the
7
- // fastest signal that `npm install` produced a runnable harness.
8
-
9
- import { describe, it, expect } from 'vitest';
10
- import { loadKernel } from '@metaharness/kernel';
11
- import adapter from '@metaharness/host-{{host}}';
12
- import { run } from '../bin/cli.js';
13
-
14
- describe('{{name}} — install smoke test', () => {
15
- it('loads the kernel and reports a version + a known backend', async () => {
16
- const kernel = await loadKernel();
17
- const info = kernel.kernelInfo();
18
- expect(typeof info.version).toBe('string');
19
- expect(info.version.length).toBeGreaterThan(0);
20
- expect(['native', 'wasm', 'js']).toContain(kernel.backend);
21
- });
22
-
23
- it('resolves the host adapter with a name', () => {
24
- expect(typeof adapter.name).toBe('string');
25
- expect(adapter.name.length).toBeGreaterThan(0);
26
- });
27
-
28
- it('the CLI doctor command succeeds (exit 0)', async () => {
29
- const code = await run(['doctor']);
30
- expect(code).toBe(0);
31
- });
32
-
33
- it('an unknown CLI command exits non-zero', async () => {
34
- const code = await run(['definitely-not-a-command']);
35
- expect(code).not.toBe(0);
36
- });
37
- });
1
+ // SPDX-License-Identifier: MIT
2
+ // Generated by metaharness — a real smoke test for {{name}}.
3
+ //
4
+ // This is NOT a placeholder: it boots the actual kernel + host adapter the
5
+ // harness depends on, so `npm test` fails loudly if @metaharness/kernel or
6
+ // @metaharness/host-{{host}} is missing, broken, or version-skewed. It is the
7
+ // fastest signal that `npm install` produced a runnable harness.
8
+
9
+ import { describe, it, expect } from 'vitest';
10
+ import { loadKernel } from '@metaharness/kernel';
11
+ import adapter from '@metaharness/host-{{host}}';
12
+ import { run } from '../bin/cli.js';
13
+
14
+ describe('{{name}} — install smoke test', () => {
15
+ it('loads the kernel and reports a version + a known backend', async () => {
16
+ const kernel = await loadKernel();
17
+ const info = kernel.kernelInfo();
18
+ expect(typeof info.version).toBe('string');
19
+ expect(info.version.length).toBeGreaterThan(0);
20
+ expect(['native', 'wasm', 'js']).toContain(kernel.backend);
21
+ });
22
+
23
+ it('resolves the host adapter with a name', () => {
24
+ expect(typeof adapter.name).toBe('string');
25
+ expect(adapter.name.length).toBeGreaterThan(0);
26
+ });
27
+
28
+ it('the CLI doctor command succeeds (exit 0)', async () => {
29
+ const code = await run(['doctor']);
30
+ expect(code).toBe(0);
31
+ });
32
+
33
+ it('an unknown CLI command exits non-zero', async () => {
34
+ const code = await run(['definitely-not-a-command']);
35
+ expect(code).not.toBe(0);
36
+ });
37
+ });