metaharness 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +73 -0
- package/dist/analyze-repo.d.ts +74 -0
- package/dist/analyze-repo.d.ts.map +1 -0
- package/dist/analyze-repo.js +329 -0
- package/dist/analyze-repo.js.map +1 -0
- package/dist/audit-cmd.d.ts +6 -0
- package/dist/audit-cmd.d.ts.map +1 -0
- package/dist/audit-cmd.js +139 -0
- package/dist/audit-cmd.js.map +1 -0
- package/dist/bin.d.ts +3 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +8 -0
- package/dist/bin.js.map +1 -0
- package/dist/compare-cmd.d.ts +56 -0
- package/dist/compare-cmd.d.ts.map +1 -0
- package/dist/compare-cmd.js +173 -0
- package/dist/compare-cmd.js.map +1 -0
- package/dist/completions-cmd.d.ts +6 -0
- package/dist/completions-cmd.d.ts.map +1 -0
- package/dist/completions-cmd.js +171 -0
- package/dist/completions-cmd.js.map +1 -0
- package/dist/diag.d.ts +76 -0
- package/dist/diag.d.ts.map +1 -0
- package/dist/diag.js +349 -0
- package/dist/diag.js.map +1 -0
- package/dist/eject.d.ts +33 -0
- package/dist/eject.d.ts.map +1 -0
- package/dist/eject.js +147 -0
- package/dist/eject.js.map +1 -0
- package/dist/export-config.d.ts +25 -0
- package/dist/export-config.d.ts.map +1 -0
- package/dist/export-config.js +134 -0
- package/dist/export-config.js.map +1 -0
- package/dist/external-template.d.ts +19 -0
- package/dist/external-template.d.ts.map +1 -0
- package/dist/external-template.js +37 -0
- package/dist/external-template.js.map +1 -0
- package/dist/federate.d.ts +37 -0
- package/dist/federate.d.ts.map +1 -0
- package/dist/federate.js +167 -0
- package/dist/federate.js.map +1 -0
- package/dist/genome-scorers.d.ts +33 -0
- package/dist/genome-scorers.d.ts.map +1 -0
- package/dist/genome-scorers.js +115 -0
- package/dist/genome-scorers.js.map +1 -0
- package/dist/genome.d.ts +28 -0
- package/dist/genome.d.ts.map +1 -0
- package/dist/genome.js +219 -0
- package/dist/genome.js.map +1 -0
- package/dist/harness-bin.d.ts +3 -0
- package/dist/harness-bin.d.ts.map +1 -0
- package/dist/harness-bin.js +17 -0
- package/dist/harness-bin.js.map +1 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +409 -0
- package/dist/index.js.map +1 -0
- package/dist/manifest.d.ts +55 -0
- package/dist/manifest.d.ts.map +1 -0
- package/dist/manifest.js +62 -0
- package/dist/manifest.js.map +1 -0
- package/dist/mcp-cmd.d.ts +19 -0
- package/dist/mcp-cmd.d.ts.map +1 -0
- package/dist/mcp-cmd.js +179 -0
- package/dist/mcp-cmd.js.map +1 -0
- package/dist/mcp-scan.d.ts +25 -0
- package/dist/mcp-scan.d.ts.map +1 -0
- package/dist/mcp-scan.js +132 -0
- package/dist/mcp-scan.js.map +1 -0
- package/dist/oia-manifest.d.ts +97 -0
- package/dist/oia-manifest.d.ts.map +1 -0
- package/dist/oia-manifest.js +241 -0
- package/dist/oia-manifest.js.map +1 -0
- package/dist/publish-cmd.d.ts +9 -0
- package/dist/publish-cmd.d.ts.map +1 -0
- package/dist/publish-cmd.js +56 -0
- package/dist/publish-cmd.js.map +1 -0
- package/dist/publish.d.ts +55 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +104 -0
- package/dist/publish.js.map +1 -0
- package/dist/registry.d.ts +60 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +67 -0
- package/dist/registry.js.map +1 -0
- package/dist/rename.d.ts +26 -0
- package/dist/rename.d.ts.map +1 -0
- package/dist/rename.js +86 -0
- package/dist/rename.js.map +1 -0
- package/dist/renderer.d.ts +39 -0
- package/dist/renderer.d.ts.map +1 -0
- package/dist/renderer.js +75 -0
- package/dist/renderer.js.map +1 -0
- package/dist/sbom-cmd.d.ts +6 -0
- package/dist/sbom-cmd.d.ts.map +1 -0
- package/dist/sbom-cmd.js +125 -0
- package/dist/sbom-cmd.js.map +1 -0
- package/dist/score.d.ts +32 -0
- package/dist/score.d.ts.map +1 -0
- package/dist/score.js +381 -0
- package/dist/score.js.map +1 -0
- package/dist/secrets.d.ts +27 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +228 -0
- package/dist/secrets.js.map +1 -0
- package/dist/subcommands.d.ts +32 -0
- package/dist/subcommands.d.ts.map +1 -0
- package/dist/subcommands.js +335 -0
- package/dist/subcommands.js.map +1 -0
- package/dist/tarball.d.ts +14 -0
- package/dist/tarball.d.ts.map +1 -0
- package/dist/tarball.js +121 -0
- package/dist/tarball.js.map +1 -0
- package/dist/threat-model.d.ts +32 -0
- package/dist/threat-model.d.ts.map +1 -0
- package/dist/threat-model.js +236 -0
- package/dist/threat-model.js.map +1 -0
- package/dist/upgrade-cmd.d.ts +9 -0
- package/dist/upgrade-cmd.d.ts.map +1 -0
- package/dist/upgrade-cmd.js +90 -0
- package/dist/upgrade-cmd.js.map +1 -0
- package/dist/upgrade.d.ts +37 -0
- package/dist/upgrade.d.ts.map +1 -0
- package/dist/upgrade.js +124 -0
- package/dist/upgrade.js.map +1 -0
- package/dist/validate.d.ts +7 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +240 -0
- package/dist/validate.js.map +1 -0
- package/dist/walker.d.ts +24 -0
- package/dist/walker.d.ts.map +1 -0
- package/dist/walker.js +76 -0
- package/dist/walker.js.map +1 -0
- package/dist/witness-client.d.ts +40 -0
- package/dist/witness-client.d.ts.map +1 -0
- package/dist/witness-client.js +99 -0
- package/dist/witness-client.js.map +1 -0
- package/dist/wizard.d.ts +37 -0
- package/dist/wizard.d.ts.map +1 -0
- package/dist/wizard.js +137 -0
- package/dist/wizard.js.map +1 -0
- package/dist/writer.d.ts +13 -0
- package/dist/writer.d.ts.map +1 -0
- package/dist/writer.js +43 -0
- package/dist/writer.js.map +1 -0
- package/package.json +114 -0
- package/templates/catalog.def.mjs +542 -0
- package/templates/catalog.json +1274 -0
- package/templates/minimal/.claude/settings.json.tmpl +18 -0
- package/templates/minimal/CLAUDE.md.tmpl +23 -0
- package/templates/minimal/README.md.tmpl +20 -0
- package/templates/minimal/manifest.json +16 -0
- package/templates/minimal/package.json.tmpl +30 -0
- package/templates/minimal/src/init.ts.tmpl +21 -0
- package/templates/vertical_advertising/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_advertising/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_advertising/.claude/skills/media-plan/SKILL.md.tmpl +13 -0
- package/templates/vertical_advertising/CLAUDE.md.tmpl +30 -0
- package/templates/vertical_advertising/README.md.tmpl +29 -0
- package/templates/vertical_advertising/manifest.json +81 -0
- package/templates/vertical_advertising/package.json.tmpl +30 -0
- package/templates/vertical_advertising/src/agents/copywriter.ts.tmpl +7 -0
- package/templates/vertical_advertising/src/agents/media-planner.ts.tmpl +7 -0
- package/templates/vertical_advertising/src/agents/performance-analyst.ts.tmpl +7 -0
- package/templates/vertical_advertising/src/init.ts.tmpl +21 -0
- package/templates/vertical_agentics/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_agentics/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_agentics/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_agentics/.claude/skills/run-swarm/SKILL.md.tmpl +14 -0
- package/templates/vertical_agentics/CLAUDE.md.tmpl +32 -0
- package/templates/vertical_agentics/README.md.tmpl +30 -0
- package/templates/vertical_agentics/manifest.json +91 -0
- package/templates/vertical_agentics/package.json.tmpl +30 -0
- package/templates/vertical_agentics/src/agents/critic.ts.tmpl +7 -0
- package/templates/vertical_agentics/src/agents/orchestrator.ts.tmpl +7 -0
- package/templates/vertical_agentics/src/agents/planner.ts.tmpl +7 -0
- package/templates/vertical_agentics/src/agents/worker.ts.tmpl +7 -0
- package/templates/vertical_agentics/src/init.ts.tmpl +21 -0
- package/templates/vertical_ai/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_ai/.claude/settings.json.tmpl +35 -0
- package/templates/vertical_ai/.claude/skills/eval-report/SKILL.md.tmpl +13 -0
- package/templates/vertical_ai/CLAUDE.md.tmpl +31 -0
- package/templates/vertical_ai/README.md.tmpl +30 -0
- package/templates/vertical_ai/manifest.json +86 -0
- package/templates/vertical_ai/package.json.tmpl +30 -0
- package/templates/vertical_ai/src/agents/data-curator.ts.tmpl +7 -0
- package/templates/vertical_ai/src/agents/deployer.ts.tmpl +7 -0
- package/templates/vertical_ai/src/agents/evaluator.ts.tmpl +7 -0
- package/templates/vertical_ai/src/agents/trainer.ts.tmpl +7 -0
- package/templates/vertical_ai/src/init.ts.tmpl +21 -0
- package/templates/vertical_business/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_business/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_business/.claude/skills/quarterly-plan/SKILL.md.tmpl +13 -0
- package/templates/vertical_business/CLAUDE.md.tmpl +30 -0
- package/templates/vertical_business/README.md.tmpl +29 -0
- package/templates/vertical_business/manifest.json +81 -0
- package/templates/vertical_business/package.json.tmpl +30 -0
- package/templates/vertical_business/src/agents/analyst.ts.tmpl +7 -0
- package/templates/vertical_business/src/agents/ops-coordinator.ts.tmpl +7 -0
- package/templates/vertical_business/src/agents/strategist.ts.tmpl +7 -0
- package/templates/vertical_business/src/init.ts.tmpl +21 -0
- package/templates/vertical_coding/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_coding/.claude/commands/review-diff.md.tmpl +10 -0
- package/templates/vertical_coding/.claude/settings.json.tmpl +40 -0
- package/templates/vertical_coding/.claude/skills/plan-change/SKILL.md.tmpl +15 -0
- package/templates/vertical_coding/CLAUDE.md.tmpl +32 -0
- package/templates/vertical_coding/README.md.tmpl +30 -0
- package/templates/vertical_coding/manifest.json +91 -0
- package/templates/vertical_coding/package.json.tmpl +30 -0
- package/templates/vertical_coding/src/agents/architect.ts.tmpl +7 -0
- package/templates/vertical_coding/src/agents/implementer.ts.tmpl +7 -0
- package/templates/vertical_coding/src/agents/reviewer.ts.tmpl +7 -0
- package/templates/vertical_coding/src/agents/test-writer.ts.tmpl +7 -0
- package/templates/vertical_coding/src/init.ts.tmpl +21 -0
- package/templates/vertical_crm/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_crm/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_crm/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_crm/CLAUDE.md.tmpl +30 -0
- package/templates/vertical_crm/README.md.tmpl +29 -0
- package/templates/vertical_crm/manifest.json +81 -0
- package/templates/vertical_crm/package.json.tmpl +30 -0
- package/templates/vertical_crm/src/agents/account-manager.ts.tmpl +7 -0
- package/templates/vertical_crm/src/agents/churn-watcher.ts.tmpl +7 -0
- package/templates/vertical_crm/src/agents/lead-qualifier.ts.tmpl +7 -0
- package/templates/vertical_crm/src/init.ts.tmpl +21 -0
- package/templates/vertical_devops/.claude/settings.json.tmpl +36 -0
- package/templates/vertical_devops/CLAUDE.md.tmpl +34 -0
- package/templates/vertical_devops/README.md.tmpl +27 -0
- package/templates/vertical_devops/manifest.json +22 -0
- package/templates/vertical_devops/package.json.tmpl +26 -0
- package/templates/vertical_devops/runbooks/README.md.tmpl +32 -0
- package/templates/vertical_devops/src/agents/escalator.ts.tmpl +19 -0
- package/templates/vertical_devops/src/agents/postmortem.ts.tmpl +23 -0
- package/templates/vertical_devops/src/agents/responder.ts.tmpl +14 -0
- package/templates/vertical_devops/src/agents/runbook-runner.ts.tmpl +17 -0
- package/templates/vertical_devops/src/init.ts.tmpl +23 -0
- package/templates/vertical_education/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_education/.claude/commands/mastery-report.md.tmpl +12 -0
- package/templates/vertical_education/.claude/settings.json.tmpl +45 -0
- package/templates/vertical_education/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_education/.claude/skills/teach-next/SKILL.md.tmpl +16 -0
- package/templates/vertical_education/CLAUDE.md.tmpl +33 -0
- package/templates/vertical_education/README.md.tmpl +30 -0
- package/templates/vertical_education/manifest.json +96 -0
- package/templates/vertical_education/package.json.tmpl +30 -0
- package/templates/vertical_education/src/agents/explainer.ts.tmpl +7 -0
- package/templates/vertical_education/src/agents/grader.ts.tmpl +7 -0
- package/templates/vertical_education/src/agents/quiz-master.ts.tmpl +7 -0
- package/templates/vertical_education/src/agents/tutor.ts.tmpl +7 -0
- package/templates/vertical_education/src/init.ts.tmpl +21 -0
- package/templates/vertical_exotic/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_exotic/.claude/settings.json.tmpl +44 -0
- package/templates/vertical_exotic/.claude/skills/evolve/SKILL.md.tmpl +14 -0
- package/templates/vertical_exotic/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_exotic/CLAUDE.md.tmpl +31 -0
- package/templates/vertical_exotic/README.md.tmpl +29 -0
- package/templates/vertical_exotic/manifest.json +86 -0
- package/templates/vertical_exotic/package.json.tmpl +30 -0
- package/templates/vertical_exotic/src/agents/experimenter.ts.tmpl +7 -0
- package/templates/vertical_exotic/src/agents/federator.ts.tmpl +7 -0
- package/templates/vertical_exotic/src/agents/hypothesizer.ts.tmpl +7 -0
- package/templates/vertical_exotic/src/init.ts.tmpl +21 -0
- package/templates/vertical_gaming/.claude/commands/design-doc-diff.md.tmpl +13 -0
- package/templates/vertical_gaming/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_gaming/.claude/settings.json.tmpl +45 -0
- package/templates/vertical_gaming/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_gaming/.claude/skills/playtest-recap/SKILL.md.tmpl +16 -0
- package/templates/vertical_gaming/CLAUDE.md.tmpl +33 -0
- package/templates/vertical_gaming/README.md.tmpl +30 -0
- package/templates/vertical_gaming/manifest.json +96 -0
- package/templates/vertical_gaming/package.json.tmpl +30 -0
- package/templates/vertical_gaming/src/agents/balance-critic.ts.tmpl +7 -0
- package/templates/vertical_gaming/src/agents/economy-modeler.ts.tmpl +7 -0
- package/templates/vertical_gaming/src/agents/narrative-keeper.ts.tmpl +7 -0
- package/templates/vertical_gaming/src/agents/playtest-reader.ts.tmpl +7 -0
- package/templates/vertical_gaming/src/init.ts.tmpl +21 -0
- package/templates/vertical_health/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_health/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_health/.claude/skills/wellness-intake/SKILL.md.tmpl +15 -0
- package/templates/vertical_health/CLAUDE.md.tmpl +30 -0
- package/templates/vertical_health/README.md.tmpl +29 -0
- package/templates/vertical_health/manifest.json +81 -0
- package/templates/vertical_health/package.json.tmpl +30 -0
- package/templates/vertical_health/src/agents/care-coordinator.ts.tmpl +7 -0
- package/templates/vertical_health/src/agents/intake.ts.tmpl +7 -0
- package/templates/vertical_health/src/agents/triage.ts.tmpl +7 -0
- package/templates/vertical_health/src/init.ts.tmpl +21 -0
- package/templates/vertical_legal/.claude/settings.json.tmpl +10 -0
- package/templates/vertical_legal/CLAUDE.md.tmpl +24 -0
- package/templates/vertical_legal/README.md.tmpl +21 -0
- package/templates/vertical_legal/manifest.json +20 -0
- package/templates/vertical_legal/package.json.tmpl +13 -0
- package/templates/vertical_legal/src/agents/citation-checker.ts.tmpl +7 -0
- package/templates/vertical_legal/src/agents/redline.ts.tmpl +7 -0
- package/templates/vertical_legal/src/agents/risk-rater.ts.tmpl +8 -0
- package/templates/vertical_legal/src/init.ts.tmpl +13 -0
- package/templates/vertical_marketing/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_marketing/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_marketing/.claude/skills/campaign-brief/SKILL.md.tmpl +13 -0
- package/templates/vertical_marketing/CLAUDE.md.tmpl +30 -0
- package/templates/vertical_marketing/README.md.tmpl +29 -0
- package/templates/vertical_marketing/manifest.json +81 -0
- package/templates/vertical_marketing/package.json.tmpl +30 -0
- package/templates/vertical_marketing/src/agents/content-creator.ts.tmpl +7 -0
- package/templates/vertical_marketing/src/agents/seo-analyst.ts.tmpl +7 -0
- package/templates/vertical_marketing/src/agents/strategist.ts.tmpl +7 -0
- package/templates/vertical_marketing/src/init.ts.tmpl +21 -0
- package/templates/vertical_repo-maintainer/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_repo-maintainer/.claude/commands/release-check.md.tmpl +13 -0
- package/templates/vertical_repo-maintainer/.claude/commands/repo-triage.md.tmpl +16 -0
- package/templates/vertical_repo-maintainer/.claude/settings.json.tmpl +44 -0
- package/templates/vertical_repo-maintainer/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_repo-maintainer/.claude/skills/plan-change/SKILL.md.tmpl +15 -0
- package/templates/vertical_repo-maintainer/CLAUDE.md.tmpl +34 -0
- package/templates/vertical_repo-maintainer/README.md.tmpl +30 -0
- package/templates/vertical_repo-maintainer/manifest.json +101 -0
- package/templates/vertical_repo-maintainer/package.json.tmpl +30 -0
- package/templates/vertical_repo-maintainer/src/agents/benchmarker.ts.tmpl +7 -0
- package/templates/vertical_repo-maintainer/src/agents/maintainer.ts.tmpl +7 -0
- package/templates/vertical_repo-maintainer/src/agents/release.ts.tmpl +7 -0
- package/templates/vertical_repo-maintainer/src/agents/security.ts.tmpl +7 -0
- package/templates/vertical_repo-maintainer/src/init.ts.tmpl +21 -0
- package/templates/vertical_research/.claude/settings.json.tmpl +9 -0
- package/templates/vertical_research/CLAUDE.md.tmpl +33 -0
- package/templates/vertical_research/README.md.tmpl +17 -0
- package/templates/vertical_research/manifest.json +23 -0
- package/templates/vertical_research/package.json.tmpl +13 -0
- package/templates/vertical_research/src/agents/citer.ts.tmpl +8 -0
- package/templates/vertical_research/src/agents/fact-checker.ts.tmpl +8 -0
- package/templates/vertical_research/src/agents/scout.ts.tmpl +7 -0
- package/templates/vertical_research/src/agents/source-grader.ts.tmpl +10 -0
- package/templates/vertical_research/src/agents/synthesizer.ts.tmpl +8 -0
- package/templates/vertical_research/src/agents/web-searcher.ts.tmpl +6 -0
- package/templates/vertical_research/src/init.ts.tmpl +13 -0
- package/templates/vertical_ruview/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_ruview/.claude/settings.json.tmpl +33 -0
- package/templates/vertical_ruview/.claude/skills/index-and-ask/SKILL.md.tmpl +15 -0
- package/templates/vertical_ruview/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_ruview/CLAUDE.md.tmpl +31 -0
- package/templates/vertical_ruview/README.md.tmpl +29 -0
- package/templates/vertical_ruview/manifest.json +86 -0
- package/templates/vertical_ruview/package.json.tmpl +30 -0
- package/templates/vertical_ruview/src/agents/indexer.ts.tmpl +7 -0
- package/templates/vertical_ruview/src/agents/retriever.ts.tmpl +7 -0
- package/templates/vertical_ruview/src/agents/reviewer.ts.tmpl +7 -0
- package/templates/vertical_ruview/src/init.ts.tmpl +21 -0
- package/templates/vertical_sales/.claude/commands/doctor.md.tmpl +12 -0
- package/templates/vertical_sales/.claude/commands/pipeline-report.md.tmpl +13 -0
- package/templates/vertical_sales/.claude/settings.json.tmpl +45 -0
- package/templates/vertical_sales/.claude/skills/memory-inspect/SKILL.md.tmpl +14 -0
- package/templates/vertical_sales/.claude/skills/qualify-lead/SKILL.md.tmpl +15 -0
- package/templates/vertical_sales/CLAUDE.md.tmpl +33 -0
- package/templates/vertical_sales/README.md.tmpl +30 -0
- package/templates/vertical_sales/manifest.json +96 -0
- package/templates/vertical_sales/package.json.tmpl +30 -0
- package/templates/vertical_sales/src/agents/closer.ts.tmpl +7 -0
- package/templates/vertical_sales/src/agents/demo-coach.ts.tmpl +7 -0
- package/templates/vertical_sales/src/agents/prospector.ts.tmpl +7 -0
- package/templates/vertical_sales/src/agents/qualifier.ts.tmpl +7 -0
- package/templates/vertical_sales/src/init.ts.tmpl +21 -0
- package/templates/vertical_support/.claude/settings.json.tmpl +25 -0
- package/templates/vertical_support/CLAUDE.md.tmpl +34 -0
- package/templates/vertical_support/README.md.tmpl +16 -0
- package/templates/vertical_support/kb/README.md.tmpl +23 -0
- package/templates/vertical_support/manifest.json +22 -0
- package/templates/vertical_support/package.json.tmpl +24 -0
- package/templates/vertical_support/src/agents/escalator.ts.tmpl +6 -0
- package/templates/vertical_support/src/agents/kb-searcher.ts.tmpl +6 -0
- package/templates/vertical_support/src/agents/responder.ts.tmpl +7 -0
- package/templates/vertical_support/src/agents/triager.ts.tmpl +6 -0
- package/templates/vertical_support/src/init.ts.tmpl +16 -0
- package/templates/vertical_trading/.claude/settings.json.tmpl +20 -0
- package/templates/vertical_trading/CLAUDE.md.tmpl +24 -0
- package/templates/vertical_trading/README.md.tmpl +17 -0
- package/templates/vertical_trading/manifest.json +22 -0
- package/templates/vertical_trading/package.json.tmpl +13 -0
- package/templates/vertical_trading/src/agents/executor.ts.tmpl +8 -0
- package/templates/vertical_trading/src/agents/market-watcher.ts.tmpl +7 -0
- package/templates/vertical_trading/src/agents/postmortem.ts.tmpl +8 -0
- package/templates/vertical_trading/src/agents/risk-checker.ts.tmpl +11 -0
- package/templates/vertical_trading/src/agents/signal-gen.ts.tmpl +8 -0
- package/templates/vertical_trading/src/init.ts.tmpl +20 -0
|
@@ -0,0 +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.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(npx {{name}}*)",
|
|
5
|
+
"mcp__{{name}}__*",
|
|
6
|
+
"mcp__health_kb__*"
|
|
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
|
+
"health_kb": {
|
|
24
|
+
"command": "npx",
|
|
25
|
+
"args": [
|
|
26
|
+
"-y",
|
|
27
|
+
"{{name}}@latest",
|
|
28
|
+
"mcp",
|
|
29
|
+
"health"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wellness-intake
|
|
3
|
+
description: "Run a safe, structured wellness intake that escalates red flags to professionals."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# wellness-intake
|
|
7
|
+
|
|
8
|
+
Run a wellness intake.
|
|
9
|
+
|
|
10
|
+
1. Intake collects goals, volunteered history, and routine.
|
|
11
|
+
2. On any red-flag symptom, STOP and direct to emergency/professional care.
|
|
12
|
+
3. Triage routes to the right resource (clinician / dietitian / mental-health / info).
|
|
13
|
+
4. Care-coordinator organises logistics and questions for a real clinician.
|
|
14
|
+
|
|
15
|
+
This harness is informational only and is not a substitute for professional medical advice.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
> Health & Wellness harness · domain: `health/coordination`. 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
|
+
| `intake` | haiku | Collects structured intake, flags red flags. |
|
|
18
|
+
| `triage` | sonnet | Routes to the right resource, not a diagnosis. |
|
|
19
|
+
| `care-coordinator` | sonnet | Organises logistics and reminders. |
|
|
20
|
+
## Skills
|
|
21
|
+
|
|
22
|
+
- `/wellness-intake` — Run a safe, structured wellness intake that escalates red flags to professionals.
|
|
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 [@ruflo/kernel](https://www.npmjs.com/package/@ruflo/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
> **Health & Wellness** — Intake → triage → coordinate, with a knowledge MCP. Hard-codes "see a clinician" for anything clinical.
|
|
6
|
+
>
|
|
7
|
+
> Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). WASM kernel, multi-host support, witness-signed releases.
|
|
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
|
+
| `intake` | Collects structured intake, flags red flags. |
|
|
22
|
+
| `triage` | Routes to the right resource, not a diagnosis. |
|
|
23
|
+
| `care-coordinator` | Organises logistics and reminders. |
|
|
24
|
+
|
|
25
|
+
This harness ships with the **{{host}}** adapter.
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
MIT
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vertical:health",
|
|
3
|
+
"description": "A wellness-coordination harness — intake, triage, and care-coordinator. Informational only; not medical advice.",
|
|
4
|
+
"domain": "health/coordination",
|
|
5
|
+
"category": "Professional",
|
|
6
|
+
"files": [
|
|
7
|
+
{
|
|
8
|
+
"src": "package.json.tmpl",
|
|
9
|
+
"dst": "package.json",
|
|
10
|
+
"render": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"src": "CLAUDE.md.tmpl",
|
|
14
|
+
"dst": "CLAUDE.md",
|
|
15
|
+
"render": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"src": "README.md.tmpl",
|
|
19
|
+
"dst": "README.md",
|
|
20
|
+
"render": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"src": ".claude/settings.json.tmpl",
|
|
24
|
+
"dst": ".claude/settings.json",
|
|
25
|
+
"render": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"src": "src/init.ts.tmpl",
|
|
29
|
+
"dst": "src/init.ts",
|
|
30
|
+
"render": true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"src": "src/agents/intake.ts.tmpl",
|
|
34
|
+
"dst": "src/agents/intake.ts",
|
|
35
|
+
"render": true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"src": "src/agents/triage.ts.tmpl",
|
|
39
|
+
"dst": "src/agents/triage.ts",
|
|
40
|
+
"render": true
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"src": "src/agents/care-coordinator.ts.tmpl",
|
|
44
|
+
"dst": "src/agents/care-coordinator.ts",
|
|
45
|
+
"render": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"src": ".claude/skills/wellness-intake/SKILL.md.tmpl",
|
|
49
|
+
"dst": ".claude/skills/wellness-intake/SKILL.md",
|
|
50
|
+
"render": true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"src": ".claude/commands/doctor.md.tmpl",
|
|
54
|
+
"dst": ".claude/commands/doctor.md",
|
|
55
|
+
"render": true
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"vars": [
|
|
59
|
+
{
|
|
60
|
+
"name": "name",
|
|
61
|
+
"prompt": "Harness name (kebab-case)",
|
|
62
|
+
"validate": "^[a-z0-9-]+$"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "description",
|
|
66
|
+
"prompt": "One-line description",
|
|
67
|
+
"default": "Coordinate intake and wellness information (not medical advice)"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "host",
|
|
71
|
+
"prompt": "Host adapter",
|
|
72
|
+
"default": "claude-code",
|
|
73
|
+
"choices": [
|
|
74
|
+
"claude-code",
|
|
75
|
+
"codex",
|
|
76
|
+
"pi-dev",
|
|
77
|
+
"hermes"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"{{name}}": "./bin/{{name}}.js"
|
|
8
|
+
},
|
|
9
|
+
"files": ["bin/**", "dist/**", ".claude/**", "CLAUDE.md", "README.md", "LICENSE"],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"test": "vitest run --passWithNoTests",
|
|
13
|
+
"init": "node ./dist/init.js"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@ruflo/kernel": "^0.1.0",
|
|
17
|
+
"@ruflo/host-{{host}}": "^0.1.0"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
21
|
+
"typescript": "^5.4.0",
|
|
22
|
+
"vitest": "^2.0.0"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=20.0.0"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Care Coordinator agent — Organises logistics and reminders.
|
|
3
|
+
|
|
4
|
+
export const SYSTEM_PROMPT = `You handle non-clinical coordination: summarising appointments, organising questions to ask a real clinician, and setting wellness reminders. You never give medical advice, dosages, or diagnoses. Your value is logistics and clarity, leaving every clinical judgement to a licensed human. You operate inside the {{name}} harness; defer destructive actions to the user.`;
|
|
5
|
+
|
|
6
|
+
export const NAME = 'care-coordinator';
|
|
7
|
+
export const TIER = 'sonnet' as const;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Intake agent — Collects structured intake, flags red flags.
|
|
3
|
+
|
|
4
|
+
export const SYSTEM_PROMPT = `You collect a structured wellness intake: goals, history the user volunteers, and current routine. You watch for red-flag symptoms (chest pain, severe shortness of breath, suicidal ideation, etc.) and, the moment one appears, you stop and direct the person to emergency or professional care. You never diagnose. You operate inside the {{name}} harness; defer destructive actions to the user.`;
|
|
5
|
+
|
|
6
|
+
export const NAME = 'intake';
|
|
7
|
+
export const TIER = 'haiku' as const;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Triage agent — Routes to the right resource, not a diagnosis.
|
|
3
|
+
|
|
4
|
+
export const SYSTEM_PROMPT = `You route, you do not diagnose. From the intake, point the person to the appropriate resource — a clinician, a registered dietitian, a mental-health professional, or general wellness information. When anything could be clinical, you default to "please consult a licensed professional." Safety over helpfulness, always. You operate inside the {{name}} harness; defer destructive actions to the user.`;
|
|
5
|
+
|
|
6
|
+
export const NAME = 'triage';
|
|
7
|
+
export const TIER = 'sonnet' as const;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// Generated by create-agent-harness — your harness's `{{name}} init` entry.
|
|
3
|
+
|
|
4
|
+
import { loadKernel } from '@ruflo/kernel';
|
|
5
|
+
import adapter from '@ruflo/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
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": ["Bash(npx {{name}}*)", "mcp__{{name}}__*", "mcp__citations__*"],
|
|
4
|
+
"deny": ["Bash(rm *)", "Read(./.env)", "Read(./.env.*)", "WebFetch"]
|
|
5
|
+
},
|
|
6
|
+
"mcpServers": {
|
|
7
|
+
"{{name}}": { "command": "npx", "args": ["-y", "{{name}}@latest", "mcp", "start"] },
|
|
8
|
+
"citations": { "command": "npx", "args": ["-y", "{{name}}@latest", "mcp", "citations"] }
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
## Disclaimer — read first
|
|
6
|
+
|
|
7
|
+
This is software, not a lawyer. Output is **advisory only**. Final review by qualified counsel is required before any contract is signed.
|
|
8
|
+
|
|
9
|
+
## Agents
|
|
10
|
+
|
|
11
|
+
| Agent | Role | Tier |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `redline` | Identifies clauses that deviate from standard templates, suggests rewrites | Sonnet |
|
|
14
|
+
| `citation-checker` | Verifies every cited statute / case is real, current, and on-point | Sonnet |
|
|
15
|
+
| `risk-rater` | Assigns HIGH/MEDIUM/LOW risk to each surviving deviation | Sonnet |
|
|
16
|
+
|
|
17
|
+
## Deliberation-first workflow
|
|
18
|
+
|
|
19
|
+
1. `redline` runs over the input document and emits a deviation list
|
|
20
|
+
2. For each deviation, `citation-checker` verifies every legal citation in the proposed rewrite
|
|
21
|
+
3. `risk-rater` reviews ONLY the verified deviations and assigns risk
|
|
22
|
+
4. Output: a memo with verified deviations, rewrites, and risk ratings
|
|
23
|
+
|
|
24
|
+
No agent auto-applies changes. The deliverable is always a memo to a human reviewer.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
> Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator) — `vertical:legal` template.
|
|
6
|
+
|
|
7
|
+
## ⚠️ Not legal advice
|
|
8
|
+
|
|
9
|
+
This software does not provide legal advice. It produces advisory memos that must be reviewed by qualified counsel.
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install -g {{name}}
|
|
15
|
+
{{name}} init
|
|
16
|
+
{{name}} review path/to/contract.docx
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## License
|
|
20
|
+
|
|
21
|
+
MIT
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vertical:legal",
|
|
3
|
+
"description": "Legal review harness — 3 agents (redline, citation-checker, risk-rater), citation-search MCP, deliberation-first workflow",
|
|
4
|
+
"domain": "legal/contract-review",
|
|
5
|
+
"files": [
|
|
6
|
+
{ "src": "package.json.tmpl", "dst": "package.json", "render": true },
|
|
7
|
+
{ "src": "CLAUDE.md.tmpl", "dst": "CLAUDE.md", "render": true },
|
|
8
|
+
{ "src": "README.md.tmpl", "dst": "README.md", "render": true },
|
|
9
|
+
{ "src": ".claude/settings.json.tmpl", "dst": ".claude/settings.json", "render": true },
|
|
10
|
+
{ "src": "src/init.ts.tmpl", "dst": "src/init.ts", "render": true },
|
|
11
|
+
{ "src": "src/agents/redline.ts.tmpl", "dst": "src/agents/redline.ts", "render": true },
|
|
12
|
+
{ "src": "src/agents/citation-checker.ts.tmpl", "dst": "src/agents/citation-checker.ts", "render": true },
|
|
13
|
+
{ "src": "src/agents/risk-rater.ts.tmpl", "dst": "src/agents/risk-rater.ts", "render": true }
|
|
14
|
+
],
|
|
15
|
+
"vars": [
|
|
16
|
+
{ "name": "name", "prompt": "Harness name (kebab-case)", "validate": "^[a-z0-9-]+$" },
|
|
17
|
+
{ "name": "description", "prompt": "One-line description", "default": "Contract redline + citation check + risk rating" },
|
|
18
|
+
{ "name": "host", "prompt": "Host adapter", "default": "claude-code", "choices": ["claude-code", "codex", "pi-dev", "hermes"] }
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": { "{{name}}": "./bin/{{name}}.js" },
|
|
7
|
+
"files": ["bin/**", "dist/**", ".claude/**", "CLAUDE.md", "README.md", "LICENSE"],
|
|
8
|
+
"scripts": { "build": "tsc", "test": "vitest run --passWithNoTests", "init": "node ./dist/init.js" },
|
|
9
|
+
"dependencies": { "@ruflo/kernel": "^0.1.0", "@ruflo/host-{{host}}": "^0.1.0" },
|
|
10
|
+
"devDependencies": { "@types/node": "^20.0.0", "typescript": "^5.4.0", "vitest": "^2.0.0" },
|
|
11
|
+
"keywords": ["legal", "contract-review", "redline", "agent-harness"],
|
|
12
|
+
"engines": { "node": ">=20.0.0" }
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
export const SYSTEM_PROMPT = `You are the citation checker for {{name}}.
|
|
3
|
+
For every citation in a redline rewrite: verify it via the citations MCP.
|
|
4
|
+
Reject hallucinated citations. Flag superseded / overruled cases. Output
|
|
5
|
+
per-citation: VERIFIED, SUPERSEDED, NOT_FOUND, or NEEDS_PINPOINT.`;
|
|
6
|
+
export const NAME = 'citation-checker';
|
|
7
|
+
export const TIER = 'sonnet' as const;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
export const SYSTEM_PROMPT = `You are the redline agent for {{name}}.
|
|
3
|
+
Compare the input document against the standard template (in {{name}}'s
|
|
4
|
+
memory store). Emit a deviation list: clause id, deviation summary,
|
|
5
|
+
proposed rewrite, citation. Do NOT auto-apply. Output is a memo.`;
|
|
6
|
+
export const NAME = 'redline';
|
|
7
|
+
export const TIER = 'sonnet' as const;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
export const SYSTEM_PROMPT = `You are the risk rater for {{name}}.
|
|
3
|
+
You see ONLY verified deviations (those that passed citation-checker).
|
|
4
|
+
Assign each: HIGH / MEDIUM / LOW with a one-sentence rationale. Order the
|
|
5
|
+
final memo by risk descending. Top of memo: total deviations + count by
|
|
6
|
+
risk tier.`;
|
|
7
|
+
export const NAME = 'risk-rater';
|
|
8
|
+
export const TIER = 'sonnet' as const;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
import { loadKernel } from '@ruflo/kernel';
|
|
3
|
+
import adapter from '@ruflo/host-{{host}}';
|
|
4
|
+
const HARNESS_NAME = '{{name}}';
|
|
5
|
+
async function main(): Promise<number> {
|
|
6
|
+
const kernel = await loadKernel();
|
|
7
|
+
const info = kernel.kernelInfo();
|
|
8
|
+
console.log(`${HARNESS_NAME} — legal review harness`);
|
|
9
|
+
console.log(`Kernel ${info.version} (${kernel.backend}), host: ${adapter.name}`);
|
|
10
|
+
console.log('REMINDER: output is advisory only — final review by qualified counsel.');
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
main().then(c => process.exit(c)).catch(err => { console.error(err); process.exit(1); });
|
|
@@ -0,0 +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.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"permissions": {
|
|
3
|
+
"allow": [
|
|
4
|
+
"Bash(npx {{name}}*)",
|
|
5
|
+
"mcp__{{name}}__*",
|
|
6
|
+
"mcp__analytics__*"
|
|
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
|
+
"analytics": {
|
|
24
|
+
"command": "npx",
|
|
25
|
+
"args": [
|
|
26
|
+
"-y",
|
|
27
|
+
"{{name}}@latest",
|
|
28
|
+
"mcp",
|
|
29
|
+
"analytics"
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: campaign-brief
|
|
3
|
+
description: "Produce a campaign brief: audience, message, channels, content plan, and the metric."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# campaign-brief
|
|
7
|
+
|
|
8
|
+
Write a campaign brief.
|
|
9
|
+
|
|
10
|
+
1. Strategist names the audience, the message, and the channels.
|
|
11
|
+
2. SEO-analyst supplies the target queries and demand.
|
|
12
|
+
3. Content-creator drafts the hero asset and variants.
|
|
13
|
+
4. Output the brief with the single funnel metric the campaign moves.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
> Marketing harness · domain: `marketing/content`. 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
|
+
| `strategist` | opus | Sets the audience, message, and channel. |
|
|
18
|
+
| `content-creator` | sonnet | Writes on-brand content for the channel. |
|
|
19
|
+
| `seo-analyst` | sonnet | Grounds content in real search demand. |
|
|
20
|
+
## Skills
|
|
21
|
+
|
|
22
|
+
- `/campaign-brief` — Produce a campaign brief: audience, message, channels, content plan, and the metric.
|
|
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 [@ruflo/kernel](https://www.npmjs.com/package/@ruflo/kernel) — a Rust-compiled WASM module with a NAPI-RS native fallback — so the same code runs identically on every platform.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# {{name}}
|
|
2
|
+
|
|
3
|
+
{{description}}
|
|
4
|
+
|
|
5
|
+
> **Marketing** — Strategy → content → SEO, with an analytics MCP for grounding claims in real traffic.
|
|
6
|
+
>
|
|
7
|
+
> Generated with [`create-agent-harness`](https://github.com/ruvnet/agent-harness-generator). WASM kernel, multi-host support, witness-signed releases.
|
|
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
|
+
| `strategist` | Sets the audience, message, and channel. |
|
|
22
|
+
| `content-creator` | Writes on-brand content for the channel. |
|
|
23
|
+
| `seo-analyst` | Grounds content in real search demand. |
|
|
24
|
+
|
|
25
|
+
This harness ships with the **{{host}}** adapter.
|
|
26
|
+
|
|
27
|
+
## License
|
|
28
|
+
|
|
29
|
+
MIT
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "vertical:marketing",
|
|
3
|
+
"description": "A marketing pod — strategist, content-creator, and SEO-analyst for campaigns and content.",
|
|
4
|
+
"domain": "marketing/content",
|
|
5
|
+
"category": "Growth",
|
|
6
|
+
"files": [
|
|
7
|
+
{
|
|
8
|
+
"src": "package.json.tmpl",
|
|
9
|
+
"dst": "package.json",
|
|
10
|
+
"render": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"src": "CLAUDE.md.tmpl",
|
|
14
|
+
"dst": "CLAUDE.md",
|
|
15
|
+
"render": true
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"src": "README.md.tmpl",
|
|
19
|
+
"dst": "README.md",
|
|
20
|
+
"render": true
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"src": ".claude/settings.json.tmpl",
|
|
24
|
+
"dst": ".claude/settings.json",
|
|
25
|
+
"render": true
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"src": "src/init.ts.tmpl",
|
|
29
|
+
"dst": "src/init.ts",
|
|
30
|
+
"render": true
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"src": "src/agents/strategist.ts.tmpl",
|
|
34
|
+
"dst": "src/agents/strategist.ts",
|
|
35
|
+
"render": true
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"src": "src/agents/content-creator.ts.tmpl",
|
|
39
|
+
"dst": "src/agents/content-creator.ts",
|
|
40
|
+
"render": true
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"src": "src/agents/seo-analyst.ts.tmpl",
|
|
44
|
+
"dst": "src/agents/seo-analyst.ts",
|
|
45
|
+
"render": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"src": ".claude/skills/campaign-brief/SKILL.md.tmpl",
|
|
49
|
+
"dst": ".claude/skills/campaign-brief/SKILL.md",
|
|
50
|
+
"render": true
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"src": ".claude/commands/doctor.md.tmpl",
|
|
54
|
+
"dst": ".claude/commands/doctor.md",
|
|
55
|
+
"render": true
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"vars": [
|
|
59
|
+
{
|
|
60
|
+
"name": "name",
|
|
61
|
+
"prompt": "Harness name (kebab-case)",
|
|
62
|
+
"validate": "^[a-z0-9-]+$"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "description",
|
|
66
|
+
"prompt": "One-line description",
|
|
67
|
+
"default": "Plan campaigns, create content, optimise for SEO"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"name": "host",
|
|
71
|
+
"prompt": "Host adapter",
|
|
72
|
+
"default": "claude-code",
|
|
73
|
+
"choices": [
|
|
74
|
+
"claude-code",
|
|
75
|
+
"codex",
|
|
76
|
+
"pi-dev",
|
|
77
|
+
"hermes"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "{{name}}",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "{{description}}",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"{{name}}": "./bin/{{name}}.js"
|
|
8
|
+
},
|
|
9
|
+
"files": ["bin/**", "dist/**", ".claude/**", "CLAUDE.md", "README.md", "LICENSE"],
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"test": "vitest run --passWithNoTests",
|
|
13
|
+
"init": "node ./dist/init.js"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@ruflo/kernel": "^0.1.0",
|
|
17
|
+
"@ruflo/host-{{host}}": "^0.1.0"
|
|
18
|
+
},
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"@types/node": "^20.0.0",
|
|
21
|
+
"typescript": "^5.4.0",
|
|
22
|
+
"vitest": "^2.0.0"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=20.0.0"
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
}
|
|
30
|
+
}
|