@mutagent/helix 0.1.0-alpha.14
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/.claude/skills/mutagent-helix/SKILL.md +113 -0
- package/.claude/skills/mutagent-helix/scripts/cli/codex-transcode.ts +143 -0
- package/.claude/skills/mutagent-helix/scripts/cli/doctor.ts +111 -0
- package/.claude/skills/mutagent-helix/scripts/cli/init.ts +382 -0
- package/.claude/skills/mutagent-helix/scripts/cli/run.sh +61 -0
- package/CLAUDE.md +193 -0
- package/LICENSE +201 -0
- package/NOTICE +22 -0
- package/README.md +209 -0
- package/assets/adl-loop.svg +162 -0
- package/assets/system-status.svg +422 -0
- package/bin/mutagent-cli.mjs +9950 -0
- package/bin/mutagent-helix.mjs +78 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/CLAUDE.md +28 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/SKILL.md +138 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/assets/templates/agentspec.yaml.tpl +247 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/frameworks/doc-pins.md +53 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/principles.md +91 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/requirements.yaml +295 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/workflows/orchestrator-protocol.md +302 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/doctor.ts +116 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/init.ts +230 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/run.sh +60 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/config/resolve-spec-dir.ts +199 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/contract/agentspec.schema.ts +455 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/setup/detect.ts +67 -0
- package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/validate/validate-spec.ts +93 -0
- package/mutagent-agentspec/LICENSE +201 -0
- package/mutagent-agentspec/NOTICE +19 -0
- package/mutagent-agentspec/README.md +44 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/SKILL.md +100 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/assets/agents/ai-architect.md +312 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/assets/agents/ai-engineer.md +357 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/assets/templates/build-report.md.tpl +39 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/references/principles.md +31 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/references/workflows/build-protocol.md +61 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/references/workflows/improve-handoff.md +23 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/scripts/cli/run.sh +60 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/scripts/handoff/validate-build-input.ts +72 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/scripts/sync-spec/check-sync-spec.ts +499 -0
- package/mutagent-builder/.claude/skills/mutagent-builder/scripts/verify/spec-impl-coverage.ts +182 -0
- package/mutagent-builder/CLAUDE.md +25 -0
- package/mutagent-builder/README.md +26 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/README.md +192 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/SKILL.md +352 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/ai-architect.md +256 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/ai-engineer.md +344 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/diagnostics-analyzer.md +576 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/discovery.md +425 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/audit.json.tpl +24 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/audit.md.tpl +49 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/config.yaml.tpl +100 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/pr-body.md.tpl +56 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/report.html.tpl +327 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/README.md +27 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/iter-N-handover.md.tpl +125 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/self-diagnosis-contract.v0.1.0.yaml.tpl +234 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/spec.yaml.tpl +152 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/team.yaml.tpl +127 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/wave-N-dashboard.html.tpl +1712 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.1-nl-query.md +59 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.2-tier0-progress.md +58 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.3-analysis-progress.md +44 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.4-html-report.md +61 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.5-rca-detail.md +69 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.6-stale-warning.md +53 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.1-welcome.md +60 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.2-source-platform-picker.md +41 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.3-source-auth.md +75 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.4-target-picker.md +48 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.5-ask-tool.md +43 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.6-config-review.md +57 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.7-filter-defaults.md +52 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.8-first-run.md +59 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/examples/sample-findings.json +92 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/examples/sample-meta.json +47 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/adapter-strategy.md +75 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/config-migration.md +84 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/config.md +159 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/filter-search-matrix.md +66 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/harness-knowledge.md +22 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/memory-format.md +78 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/onboarding-decisions.yaml +187 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/operation-inventory.md +59 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/overview.md +167 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/reference.md +119 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/script-index.md +101 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-adapter-contract.md +93 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/claude-code-transcripts.md +66 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/codex-transcripts.md +78 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/codex.md +145 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/install-paths.md +57 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/langfuse.md +178 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/local-jsonl.md +55 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/openobserve.md +102 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/otel.md +63 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/cloud-rest.md +84 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-claude.md +65 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-cloud-agent-sdk.md +92 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-codex.md +72 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-cursor.md +108 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-mastra.md +77 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-opencode.md +70 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/apply-pr-comment-format.md +82 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/diagnostics.md +35 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/handover-contract.md +247 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/onboarding.md +300 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/orchestrator-protocol.md +1861 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/rca.md +331 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/rendering-anatomy.md +314 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/schedule-prep.md +100 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/scope-model.md +128 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/verification-methodology.md +174 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/aggregate/sort-findings.ts +0 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/awareness/blind-spots.ts +167 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/awareness/llm-sample.ts +681 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/doctor.ts +215 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/init.ts +1013 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/install-agents.ts +350 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/run.sh +61 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/shared-templates.ts +79 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/load.ts +392 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/resolve-credential.ts +120 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/schema.ts +641 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/validate.ts +134 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/context/build-diagnosis-context.ts +417 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/context/load-context.ts +105 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/contract/types.ts +166 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/build-render-input.ts +1964 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/corpus-severity.ts +172 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/dismissal-match.ts +270 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/rank-remedies.ts +75 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/hooks/install-hooks.sh +46 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/hooks/pre-push.sh +78 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/invocation/parse-brief.ts +188 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/match.ts +114 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/paths.ts +95 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/store.ts +535 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/types.ts +181 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/lint/template-inline-js.ts +267 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/memory/append.ts +188 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/memory/read.ts +218 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/platforms/entity-context.ts +686 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/read-unitf.ts +267 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/trace.ts +1078 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/unitf-adapter.ts +0 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/unitf-types.ts +213 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/report/persist-selections.ts +174 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/report/render.ts +3254 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/run/diagnose.ts +64 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/run/session.ts +167 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/caps.ts +345 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/deep-read-gate.ts +424 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/representative.ts +584 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/scan/objection.ts +224 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/scan/trajectory.ts +489 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/self-diagnostics/dispatch.ts +135 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/self-diagnostics/probe.ts +170 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/detect.ts +307 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/ensure-cli.ts +315 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/reconfigure.ts +77 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/verify-agents.ts +207 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/slicer.ts +166 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/claude-code.ts +17 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/codex.ts +11 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/langfuse.ts +17 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/local-jsonl.ts +12 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/otel.ts +12 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/index.ts +54 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/registry.ts +45 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/types.ts +86 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/stale-detector.ts +74 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/test/render-playwright.cli.ts +477 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0/claude-code.ts +133 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0/langfuse.ts +143 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0-scan.ts +423 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/completeness-check.ts +436 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/doc-refs.ts +190 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/finalize-gate.ts +417 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/findings-contract.ts +628 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/render-js-syntax.ts +188 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/report-checklist.yaml +217 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/trace-shape.ts +262 -0
- package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/wave6-checklist.ts +326 -0
- package/mutagent-diagnostics/CLAUDE.md +41 -0
- package/mutagent-diagnostics/LICENSE +201 -0
- package/mutagent-diagnostics/NOTICE +18 -0
- package/mutagent-diagnostics/README.md +343 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/SKILL.md +548 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/audit-executor.md +169 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/dataset-builder.md +160 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/discovery.md +425 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/evaluator.md +1108 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/brand/theme.css +213 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/brand/wordmark.html +9 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/context-flow-lens.md +85 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/data-lens.md +47 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/decision-lens.md +48 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/methodology-critic-lens.md +53 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/trajectory-lens.md +44 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/build-review-interface.md +83 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/edd-loop.md +134 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/error-analysis.md +113 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/eval-audit.md +154 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/eval-stage.md +168 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/generate-synthetic-data.md +81 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/grounded-adjudication.md +221 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/memory-format.md +65 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/methodology.md +201 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/operation-inventory.md +197 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/validate-evaluator.md +125 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/workflows/orchestrator-protocol.md +300 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/write-judge-prompt.md +123 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/behavior-tree.schema.yaml +73 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/dataset.schema.yaml +66 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/edd-change-request.schema.yaml +114 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/eval-matrix.schema.yaml +74 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/flow-graph.schema.yaml +69 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/flow-profile.schema.yaml +49 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/methodology-review.schema.yaml +40 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/scorecard.schema.yaml +85 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/agent-dispatch.ts +0 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/aggregate-discover.ts +543 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/artifact-paths.ts +115 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/assemble-scorecard.ts +172 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-dataset.ts +186 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-evals.ts +93 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-review-ui.ts +393 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/check-method-router.ts +170 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/aggregate.ts +112 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/audit-run.ts +182 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/doctor.ts +211 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/dogfood.ts +133 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/init.ts +601 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/methodology-review.ts +122 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/prep.ts +295 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/profile-subject.ts +165 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/run.sh +56 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/variance-check.ts +105 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/code-eval.ts +248 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/code-quality-verdict.ts +285 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/codegen-evals.ts +173 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cold-start-project.ts +151 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cold-start-sampler.ts +267 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/config/load.ts +343 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/config/schema.ts +380 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/agentspec-evals.ts +85 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/dataset.ts +149 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-engine.ts +118 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-matrix.ts +577 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-types.ts +1074 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/flow-graph.ts +194 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/types.ts +303 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/validation.ts +193 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/derive-dataset.ts +152 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/determine-outcome.ts +219 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/diff-discriminate.ts +160 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/discover-criteria.ts +348 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/change-request.ts +232 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/edd-types.ts +210 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/variance-gate.ts +186 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/emit-completeness.ts +111 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/eval-engine.ts +160 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/evaluate.ts +333 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/flow-graph.ts +230 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/judge-prompt-template.ts +253 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/judge-provider.ts +135 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/lint-grounding.ts +229 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/lint-uniformity.ts +168 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/living-suite.ts +109 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-bundle.ts +203 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-profile-vocab.ts +64 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-profile.ts +106 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/mask.ts +138 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/materialize-dataset.ts +113 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/matrix-judge.ts +750 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/memory/append.ts +215 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/memory/read.ts +168 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/persist-eval-criteria.ts +232 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/prep-tasks.ts +125 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/profile-subject.ts +310 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/publish-report.ts +131 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/read-unitf-traces.ts +81 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-build-cards.ts +195 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-discover-report.ts +1640 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-eval-report.ts +3838 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-report.ts +212 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/resolve-credential.ts +110 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/resolve-ref.ts +98 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/result-verify.ts +129 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/route-failures.ts +330 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-deterministic.ts +367 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-evaluate.ts +719 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-judge.ts +155 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-pipeline.ts +175 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/sample-traces.ts +210 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/self-audit.ts +387 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/source-map.ts +106 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/subject-profile.ts +134 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/substrate.ts +162 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/sync-eval-criteria.ts +244 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/ui-slots.ts +119 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/unitf-to-evaltrace.ts +284 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/validate-judge.ts +358 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/variance-compare.ts +177 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/behavior-tree.yaml +140 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/eval-matrix.yaml +1270 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/methodology-review.yaml +105 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/audit.workflow.js +82 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/data-leak.workflow.js +236 -0
- package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/variance.workflow.js +163 -0
- package/mutagent-evaluator/CLAUDE.md +45 -0
- package/mutagent-evaluator/LICENSE +201 -0
- package/mutagent-evaluator/NOTICE +23 -0
- package/mutagent-evaluator/README.md +88 -0
- package/mutagent-optimize/.claude/skills/mutagent-optimize/SKILL.md +287 -0
- package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/contracts/amend-request.ts +503 -0
- package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/improve-loop-run.ts +304 -0
- package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/loop-state-cli.ts +300 -0
- package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/loop-state.ts +440 -0
- package/mutagent-optimize/CLAUDE.md +49 -0
- package/mutagent-optimize/README.md +26 -0
- package/mutagent-orchestrator/CLAUDE.md +102 -0
- package/mutagent-orchestrator/README.md +20 -0
- package/mutagent-orchestrator/assets/agents/discovery.md +425 -0
- package/mutagent-orchestrator/assets/agents/dogfood-monitor.md +266 -0
- package/mutagent-orchestrator/assets/agents/monitor.md +258 -0
- package/mutagent-orchestrator/orchestrator.md +782 -0
- package/mutagent-orchestrator/references/MONITORING.md +209 -0
- package/mutagent-orchestrator/references/config-fields.md +132 -0
- package/mutagent-orchestrator/references/config-migration.md +132 -0
- package/mutagent-orchestrator/references/index-registry.md +92 -0
- package/mutagent-orchestrator/routing.yaml +391 -0
- package/mutagent-orchestrator/scripts/config-schema.ts +1010 -0
- package/mutagent-orchestrator/scripts/dispatch.ts +439 -0
- package/mutagent-orchestrator/scripts/dogfood/extract-feedback.ts +203 -0
- package/mutagent-orchestrator/scripts/dogfood/reconstruct-trajectory.ts +327 -0
- package/mutagent-orchestrator/scripts/dogfood/render-dogfood-report.ts +347 -0
- package/mutagent-orchestrator/scripts/dogfood/resolve-subagents.ts +160 -0
- package/mutagent-orchestrator/scripts/dogfood/run-report.ts +264 -0
- package/mutagent-orchestrator/scripts/dogfood/slack-thread.ts +106 -0
- package/mutagent-orchestrator/scripts/dogfood/types.ts +257 -0
- package/mutagent-orchestrator/scripts/eval-routing.ts +753 -0
- package/mutagent-orchestrator/scripts/gate.ts +219 -0
- package/mutagent-orchestrator/scripts/handover-contract.ts +362 -0
- package/mutagent-orchestrator/scripts/index/build-index.ts +351 -0
- package/mutagent-orchestrator/scripts/index/render-index.ts +110 -0
- package/mutagent-orchestrator/scripts/monitor/slack-notify.ts +111 -0
- package/mutagent-orchestrator/scripts/monitor/triggers.ts +162 -0
- package/mutagent-orchestrator/scripts/onboarding-check.ts +369 -0
- package/mutagent-orchestrator/scripts/render-roster.ts +308 -0
- package/mutagent-orchestrator/scripts/resolve-credential.ts +185 -0
- package/mutagent-orchestrator/scripts/resolve-paths.ts +114 -0
- package/mutagent-orchestrator/scripts/slack/format.ts +63 -0
- package/mutagent-orchestrator/scripts/slack/post.ts +115 -0
- package/mutagent-orchestrator/scripts/sync-index.ts +311 -0
- package/package.json +64 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* mutagent-helix — npx/pnpx entry point for the ADL bundle.
|
|
4
|
+
*
|
|
5
|
+
* pnpx @mutagent/helix init → install Helix + the lifecycle skills (+ link CLAUDE/AGENTS)
|
|
6
|
+
* pnpx @mutagent/helix init --global → install into the home dir (default is project-local)
|
|
7
|
+
* pnpx @mutagent/helix init --yes → non-interactive (select all detected platforms)
|
|
8
|
+
* pnpx @mutagent/helix doctor → runtime probe (what is installed + linkage)
|
|
9
|
+
* pnpx @mutagent/helix <script> [args] → run any helix-skill script via the runtime selector
|
|
10
|
+
*
|
|
11
|
+
* Mirrors the @mutagent/diagnostics launcher: intentionally tiny + node-runnable
|
|
12
|
+
* (no deps). It locates the helix skill's run.sh runtime selector (bun → pnpm-tsx
|
|
13
|
+
* → npx-tsx fallback) and forwards the requested subcommand to the matching
|
|
14
|
+
* TypeScript entry point. The TS scripts are NOT compiled — run.sh picks an
|
|
15
|
+
* available runtime at install time so the package stays portable across hosts.
|
|
16
|
+
*
|
|
17
|
+
* cwd discipline (W9-fix): the child runs in the USER's invocation directory
|
|
18
|
+
* (process.cwd()), NOT the skill install dir — init's project-local install
|
|
19
|
+
* target is the user's project. run.sh + the script are passed as ABSOLUTE paths
|
|
20
|
+
* so they resolve regardless of cwd.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import { spawnSync } from "node:child_process";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
25
|
+
import { dirname, isAbsolute, join } from "node:path";
|
|
26
|
+
import { existsSync } from "node:fs";
|
|
27
|
+
|
|
28
|
+
const here = dirname(fileURLToPath(import.meta.url));
|
|
29
|
+
const skillRoot = join(here, "..", ".claude", "skills", "mutagent-helix");
|
|
30
|
+
const runSh = join(skillRoot, "scripts", "cli", "run.sh");
|
|
31
|
+
|
|
32
|
+
if (!existsSync(runSh)) {
|
|
33
|
+
console.error(`[mutagent-helix] runtime selector not found at ${runSh}`);
|
|
34
|
+
console.error("The package may be corrupted. Reinstall: pnpx @mutagent/helix init");
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// Subcommand → skill script map. Unknown first-arg is treated as a script path.
|
|
39
|
+
const SUBCOMMANDS = {
|
|
40
|
+
init: "scripts/cli/init.ts",
|
|
41
|
+
doctor: "scripts/cli/doctor.ts",
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const [sub, ...rest] = process.argv.slice(2);
|
|
45
|
+
const HELP = !sub || sub === "--help" || sub === "-h";
|
|
46
|
+
|
|
47
|
+
if (HELP) {
|
|
48
|
+
console.log(`mutagent-helix — the MutagenT ADL bundle (Helix orchestrator + lifecycle skills)
|
|
49
|
+
|
|
50
|
+
Usage:
|
|
51
|
+
pnpx @mutagent/helix init [--global] [--yes]
|
|
52
|
+
pnpx @mutagent/helix doctor
|
|
53
|
+
pnpx @mutagent/helix <skill-script.ts> [args...]
|
|
54
|
+
|
|
55
|
+
Install scope:
|
|
56
|
+
(default) project-local — installs into <your project>/.claude (and .codex)
|
|
57
|
+
--global home dir — installs into ~/.claude (and ~/.codex)
|
|
58
|
+
|
|
59
|
+
init installs the Helix conductor + the lifecycle-stage skills
|
|
60
|
+
(agentspec · diagnostics · evaluator) and links CLAUDE.md / AGENTS.md so your
|
|
61
|
+
coding agent boots Helix. After install, open your coding agent and invoke:
|
|
62
|
+
claude → /mutagent-helix (or just: *mutagent)
|
|
63
|
+
|
|
64
|
+
Docs: see README.md + .claude/skills/mutagent-helix/SKILL.md`);
|
|
65
|
+
process.exit(0);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Resolve the target script to an ABSOLUTE path. Known subcommands map to skill
|
|
69
|
+
// scripts (under skillRoot); an unknown first-arg is treated as a script path.
|
|
70
|
+
const mapped = SUBCOMMANDS[sub] ?? sub;
|
|
71
|
+
const scriptAbs = isAbsolute(mapped) ? mapped : join(skillRoot, mapped);
|
|
72
|
+
|
|
73
|
+
// NOTE: no `cwd` override — the child inherits the user's shell PWD so init's
|
|
74
|
+
// project-local install targets the project, not the helix package (W9-fix).
|
|
75
|
+
const result = spawnSync("bash", [runSh, scriptAbs, ...rest], {
|
|
76
|
+
stdio: "inherit",
|
|
77
|
+
});
|
|
78
|
+
process.exit(result.status ?? 1);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# mutagent-agentspec — skill nav map (lean)
|
|
2
|
+
|
|
3
|
+
> Lean per-skill navigation. The substantive surface is `SKILL.md`. This file points.
|
|
4
|
+
|
|
5
|
+
`mutagent-agentspec` is the **ADL ① SPEC** stage: a guided requirements interview that emits a
|
|
6
|
+
portable, validated `agentspec.yaml`. The spec is the **Definition** (the interface — *what* the
|
|
7
|
+
agent IS); `mutagent-builder` later implements it via `*build`. The parent session IS the domain
|
|
8
|
+
orchestrator — it runs the interview itself and does **NOT** dispatch a coordinator sub-agent.
|
|
9
|
+
|
|
10
|
+
## Where everything lives
|
|
11
|
+
|
|
12
|
+
| You want… | Read |
|
|
13
|
+
|---|---|
|
|
14
|
+
| The skill surface (frontmatter · §0 setup · §0.1 star-commands · triggers · architecture) | `SKILL.md` |
|
|
15
|
+
| The `*spec` interview FSM (+ BUILD/EVALUATE handoffs) | `references/workflows/orchestrator-protocol.md` |
|
|
16
|
+
| Operative design principles (PR-NNN, operator-locked) | `references/principles.md` |
|
|
17
|
+
| Machine-readable requirements hub (REQ-NNN) | `references/requirements.yaml` |
|
|
18
|
+
| Pinned framework docs carried into BUILD | `references/frameworks/doc-pins.md` |
|
|
19
|
+
| The `agentspec.yaml` schema (TypeBox, versioned `agentspec.v0.2.0`) | `scripts/contract/agentspec.schema.ts` |
|
|
20
|
+
| The schema gate (CLI + pure validate fn) | `scripts/validate/validate-spec.ts` |
|
|
21
|
+
| The worked, validated example spec | `assets/templates/agentspec.yaml.tpl` |
|
|
22
|
+
| The constitution pointer + in-repo PRD link | `.meta/design-principles.md` |
|
|
23
|
+
|
|
24
|
+
## Standalone
|
|
25
|
+
|
|
26
|
+
This SPEC skill dispatches no build sub-agents. The `*build` handoff to `mutagent-builder` and the
|
|
27
|
+
`*eval` handoff to an evaluator are designed composition boundaries mentioned at the doc/protocol
|
|
28
|
+
level only — never a code import.
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mutagent-agentspec
|
|
3
|
+
description: |
|
|
4
|
+
The ADL ① SPEC stage: a guided requirements interview that captures WHAT an AI agent IS and emits
|
|
5
|
+
a portable, validated agentspec.yaml. The spec is the Definition (the interface — persona, the
|
|
6
|
+
actual system prompt, jobs-to-be-done, context sources, tools across four buckets, agent type,
|
|
7
|
+
inbound activation triggers, decision modeling, standard operating procedures, and binary
|
|
8
|
+
eval criteria). BUILD is owned by mutagent-builder, which consumes the validated spec and implements
|
|
9
|
+
it into a target framework or harness. First invocation: auto-detects install. Then *spec runs a parent-session
|
|
10
|
+
interview (AskUserQuestion on Claude Code, chat multi-choice fallback elsewhere) → emits + validates
|
|
11
|
+
agentspec.yaml; *validate-spec is the TypeBox round-trip schema gate. The target may be a framework
|
|
12
|
+
(mastra / deepagents / pydantic-ai / langgraph) OR a harness (harness:claude-code / harness:codex).
|
|
13
|
+
After *spec or *validate-spec succeeds, Helix suggests *build; *build is owned by mutagent-builder.
|
|
14
|
+
license: Apache-2.0. LICENSE + NOTICE have complete terms.
|
|
15
|
+
compatibility: Designed for Claude Code, Codex, Cursor, OpenCode and similar coding-agent runtimes; works with git, gh CLI, and Bun/pnpm/npm runtimes.
|
|
16
|
+
metadata:
|
|
17
|
+
author: mutagent
|
|
18
|
+
version: "0.1.0-alpha.0"
|
|
19
|
+
# allowed-tools: OMITTED — agent uses all native tools per host runtime.
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
# mutagent-agentspec
|
|
23
|
+
|
|
24
|
+
The **ADL ① SPEC** stage. Invoke this skill to specify a new agent — run a guided interview that
|
|
25
|
+
captures *what the agent IS* and emit a portable, validated `agentspec.yaml`. The spec is the
|
|
26
|
+
**Definition** (the interface); `mutagent-builder` later implements it into a target via `*build`.
|
|
27
|
+
|
|
28
|
+
## §0 — Setup Detection (ALWAYS runs first)
|
|
29
|
+
|
|
30
|
+
> **The parent session IS the domain orchestrator.** Run the interview yourself — do **NOT** dispatch
|
|
31
|
+
> a coordinator sub-agent. AskUserQuestion (and therefore the interview) cannot run inside a
|
|
32
|
+
> sub-agent (PR-006). BUILD sub-agents are owned by `mutagent-builder`; `*spec` dispatches none.
|
|
33
|
+
|
|
34
|
+
**Lean install:** `pnpx @mutagent/agentspec init` installs the SPEC skill. There is no onboarding config
|
|
35
|
+
to fill in this wave — `*spec` reads from the operator interactively, so "setup complete" simply means
|
|
36
|
+
the skill tree is installed.
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
// PSEUDOCODE — actual execution is agent-native
|
|
40
|
+
const setup = await Bash("bash scripts/cli/run.sh scripts/setup/detect.ts");
|
|
41
|
+
if (!setup.complete) {
|
|
42
|
+
// skill tree incomplete → reinstall: pnpx @mutagent/agentspec init
|
|
43
|
+
} else {
|
|
44
|
+
// → load references/workflows/orchestrator-protocol.md and follow inline.
|
|
45
|
+
// The parent session runs the *spec interview. DO NOT dispatch a coordinator.
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## §0.1 — Star-commands
|
|
50
|
+
|
|
51
|
+
These are THIS skill's `*command` semantic map. Resolution is governed by the verbatim contract at
|
|
52
|
+
the bottom of this section.
|
|
53
|
+
|
|
54
|
+
| Command | Kind | Owner | Binds | Purpose |
|
|
55
|
+
|---|---|---|---|---|
|
|
56
|
+
| `*spec` | hybrid | own (full) | `references/workflows/orchestrator-protocol.md` | Guided parent-session interview → emits + validates `agentspec.yaml` (the Definition + Build + Appendix). |
|
|
57
|
+
| `*validate-spec` | script | own | `scripts/validate/validate-spec.ts` | TypeBox round-trip schema gate over a spec file (`agentspec.v0.2.0`). |
|
|
58
|
+
| `*sync-spec` | agent-chain | own entry · delegates read → `ai-architect #sync-spec` | `references/workflows/orchestrator-protocol.md#sync-spec--reconcile-the-spec--eval-triad-against-a-target-delegated` | The canonical **triad** reconcile (def → impl → EVAL; FUSES the former `*spec-from-impl` + builder `*spec-sync`). Cold (no spec → construct) AND warm (drift → reconcile) are ONE op — reverse-generate is drift-from-nothing. Reconciles BOTH the spec leg AND the **eval-criteria leg** (eval-suite criteria for agent/skill · code-quality criteria for code) against the impl. AgentSpec owns the entry but **NEVER reads code**: it delegates the target-read to builder's `ai-architect #sync-spec` (Helix-mediated HandoverBundle), then `*validate-spec`-gates + owns the spec result; the eval-leg write is the evaluator's criteria-maintenance hook (gated). |
|
|
59
|
+
| `*eval` | agent-chain | route → evaluator (OUTLINED) | `references/workflows/orchestrator-protocol.md#eval` | Hand the built agent + its `evals.success_criteria` to an evaluator for eval-driven development (phased). |
|
|
60
|
+
|
|
61
|
+
After `*spec` or `*validate-spec` succeeds, Helix suggests `*build`; `*build` is owned by `mutagent-builder` and consumes the validated `agentspec.yaml`.
|
|
62
|
+
|
|
63
|
+
> **SPEC↔BUILD boundary (written once).** AgentSpec owns the spec ARTIFACT + its 3 commands (`*spec` ·
|
|
64
|
+
> `*validate-spec` · `*sync-spec`). Builder owns the impl + the two agents (`ai-engineer` · `ai-architect`).
|
|
65
|
+
> `ai-architect` is the SINGLE implementation-reader (`#verify` from `*build` + `#sync-spec` from `*sync-spec`).
|
|
66
|
+
> Reverse-generate = drift-from-nothing = one `*sync-spec`. `*validate-spec` is never architectural review.
|
|
67
|
+
|
|
68
|
+
### Star-command resolution contract (verbatim)
|
|
69
|
+
|
|
70
|
+
When you encounter a `*<name>` token:
|
|
71
|
+
1. **RESERVED** — `*` marks a command. NOT prose, NOT a file path, NOT an external shortcut. Never improvise.
|
|
72
|
+
2. **RESOLVE** — look up `<name>` in the table above. Not found ⇒ ERROR + ask the operator. NEVER guess.
|
|
73
|
+
3. **BINDING** — read `Kind` + `Binds`:
|
|
74
|
+
- `script` ⇒ CALL the bound script via `scripts/cli/run.sh`. Do NOT re-implement it in prose.
|
|
75
|
+
- `agent-chain` ⇒ load + run the bound workflow steps in order.
|
|
76
|
+
- `hybrid` ⇒ call script(s) for deterministic parts, reason for the rest.
|
|
77
|
+
4. **PRE-GATE** — load any pre-gate references the bound workflow declares.
|
|
78
|
+
5. **EXECUTE** — run the steps IN ORDER. Invent nothing.
|
|
79
|
+
6. `Purpose` explains WHY (not executed). Steps MAY reference other `*commands` (composition).
|
|
80
|
+
|
|
81
|
+
## §1 — Triggers
|
|
82
|
+
|
|
83
|
+
This skill activates on any of:
|
|
84
|
+
- `mutagent-agentspec` · `/mutagent-agentspec`
|
|
85
|
+
- `*spec` · `spec` · `specify the agent` · `plan a new agent` · `define an agent` · `new agent spec`
|
|
86
|
+
- `*sync-spec` · `sync the spec` · `spec sync` · `reconcile spec with code` · `code drifted from spec` · `spec from impl` · `reverse-generate a spec` · `adopt an existing agent` · `spec an existing implementation` · `no agentspec exists`
|
|
87
|
+
- `pnpx @mutagent/agentspec init`
|
|
88
|
+
|
|
89
|
+
## §2 — Quick start
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# 1. install (project-local by default; --global for the home dir)
|
|
93
|
+
pnpx @mutagent/agentspec init
|
|
94
|
+
|
|
95
|
+
# 2. inside your coding agent
|
|
96
|
+
/mutagent-agentspec # load the skill
|
|
97
|
+
*spec # run the guided interview → agentspec.yaml
|
|
98
|
+
*validate-spec ./agentspec.yaml # schema-gate it (round-trip)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Start from the worked example: `assets/templates/agentspec.yaml.tpl` (a complete, validated
|
|
102
|
+
synthetic spec exercising every field).
|
|
103
|
+
|
|
104
|
+
## §3 — Architecture
|
|
105
|
+
|
|
106
|
+
```mermaid
|
|
107
|
+
flowchart LR
|
|
108
|
+
spec["*spec — guided interview (parent session)"] --> emit["emit agentspec.yaml"]
|
|
109
|
+
emit --> validate["*validate-spec — TypeBox gate"]
|
|
110
|
+
validate -->|PASS| build["*build → mutagent-builder"]
|
|
111
|
+
build --> eval["*eval → evaluator"]
|
|
112
|
+
validate -.->|FAIL| spec
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
- **`*spec`** is full + parent-session-driven (the interview). **`*validate-spec`** is the schema gate.
|
|
116
|
+
- **`*sync-spec`** reconciles the def → impl → EVAL triad against a target (cold construct OR warm drift — ONE op): the spec leg AND the eval-criteria leg (eval-suite for agent/skill · code-quality for code) both stay in lockstep with the impl. AgentSpec owns the entry but delegates the code-read to builder's `ai-architect #sync-spec`; it never reads code itself.
|
|
117
|
+
- **`*build`** is owned by `mutagent-builder`; agentspec only suggests the next stage after a valid spec.
|
|
118
|
+
- **`*eval`** is routed to EVALUATE after BUILD returns a handoff bundle.
|
|
119
|
+
|
|
120
|
+
## §4 — Bill of materials
|
|
121
|
+
|
|
122
|
+
| Surface | Path |
|
|
123
|
+
|---|---|
|
|
124
|
+
| The `agentspec.v0.2.0` schema (TypeBox) | `scripts/contract/agentspec.schema.ts` |
|
|
125
|
+
| The schema gate | `scripts/validate/validate-spec.ts` |
|
|
126
|
+
| The `*spec` output-dir resolver (`lifecycle.agentspec.spec_dir`; default `.mutagent/specs`) | `scripts/config/resolve-spec-dir.ts` |
|
|
127
|
+
| The interview FSM (+ build/eval outlines) | `references/workflows/orchestrator-protocol.md` |
|
|
128
|
+
| Operative principles (PR-NNN) | `references/principles.md` |
|
|
129
|
+
| Requirements hub (REQ-NNN) | `references/requirements.yaml` |
|
|
130
|
+
| Pinned framework docs | `references/frameworks/doc-pins.md` |
|
|
131
|
+
| Worked example spec | `assets/templates/agentspec.yaml.tpl` |
|
|
132
|
+
| CLI (install / probe / runner) | `scripts/cli/{init,doctor,run.sh}` · `scripts/setup/detect.ts` |
|
|
133
|
+
|
|
134
|
+
## §5 — Standalone discipline
|
|
135
|
+
|
|
136
|
+
Every artifact under `.claude/skills/mutagent-agentspec/` is a sealed SPEC unit. The `*build` handoff
|
|
137
|
+
to `mutagent-builder` and the `*eval` handoff to EVALUATE are composition boundaries mentioned at the
|
|
138
|
+
doc/protocol level only, never code imports. `*spec` itself dispatches no sub-agents.
|
package/mutagent-agentspec/.claude/skills/mutagent-agentspec/assets/templates/agentspec.yaml.tpl
ADDED
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# agentspec.yaml — WORKED EXAMPLE (agentspec.v0.2.0)
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# A complete, NDA-clean, synthetic example exercising EVERY field of the contract.
|
|
5
|
+
# Subject: "Atlas Research Assistant" — a generic research/support assistant. This file
|
|
6
|
+
# is asserted VALID by scripts/validate/validate-spec.test.ts (the primary
|
|
7
|
+
# "worked example is valid" gate). Copy it, then edit via the *spec interview.
|
|
8
|
+
#
|
|
9
|
+
# Descriptions are deliberately VERBOSE (PR-015) — the description is the primary
|
|
10
|
+
# field the implementing LLM reads. Keep yours verbose too.
|
|
11
|
+
# =============================================================================
|
|
12
|
+
|
|
13
|
+
schema_version: "0.2.0"
|
|
14
|
+
|
|
15
|
+
# ── META — canonical identity + loop position. The spec is implementation-AGNOSTIC:
|
|
16
|
+
# it does NOT enumerate its impls/subjects (PR-013 backwards-only linking). Downstream
|
|
17
|
+
# artifacts carry spec_id and point UP to this spec.
|
|
18
|
+
meta:
|
|
19
|
+
spec_id: "atlas-research-assistant" # stable identity anchor — survives all versions (PR-012)
|
|
20
|
+
spec_version: "0.1.0"
|
|
21
|
+
loop_state:
|
|
22
|
+
stage: "spec" # spec|build|eval|ship|diagnose|discover|improve (PR-010)
|
|
23
|
+
# last_verdict is OPTIONAL — omitted at spec-time (a freshly-spec'd agent has no verdict yet).
|
|
24
|
+
# Once the loop runs, set it to a string, e.g. last_verdict: "PASS".
|
|
25
|
+
updated_at: "2026-06-23T00:00:00.000Z" # ISO-8601 (injected, never a self-read clock)
|
|
26
|
+
|
|
27
|
+
# ── DEFINITION — the interface (WHAT the agent is, framework-independent).
|
|
28
|
+
definition:
|
|
29
|
+
identity:
|
|
30
|
+
name: "Atlas Research Assistant"
|
|
31
|
+
version: "0.1.0"
|
|
32
|
+
description: >
|
|
33
|
+
A conversational research/support assistant that answers user questions grounded in
|
|
34
|
+
retrieved internal documentation and public reference material, always citing its
|
|
35
|
+
sources and never fabricating an answer when no source supports it.
|
|
36
|
+
kind: "agent" # agent|skill|composite (A2A-aligned)
|
|
37
|
+
|
|
38
|
+
persona:
|
|
39
|
+
role: "Senior research assistant"
|
|
40
|
+
persona: >
|
|
41
|
+
Methodical, precise, and source-obsessed. Atlas reads widely before answering, prefers
|
|
42
|
+
a short honest "I could not find a source for that" over a confident guess, and always
|
|
43
|
+
attributes claims to the document that supports them. Tone is calm and professional;
|
|
44
|
+
boundaries: never speculates beyond the retrieved evidence, never invents citations.
|
|
45
|
+
|
|
46
|
+
# The ACTUAL operative system prompt the runtime sends — the FULL text, not a summary (PR-014).
|
|
47
|
+
system_prompt: |
|
|
48
|
+
You are Atlas, a senior research assistant. Your job is to answer the user's question using
|
|
49
|
+
ONLY the sources you retrieve. Follow this procedure on every turn:
|
|
50
|
+
1. Restate the question in one sentence to confirm intent.
|
|
51
|
+
2. Retrieve relevant sources via the docs-search and web-reference tools.
|
|
52
|
+
3. Synthesize an answer that is fully grounded in the retrieved sources.
|
|
53
|
+
4. Cite every non-trivial claim with the source it came from.
|
|
54
|
+
5. If no retrieved source supports an answer, say so plainly and stop — do NOT guess.
|
|
55
|
+
Never fabricate a citation. Never present unsourced speculation as fact. Prefer a short,
|
|
56
|
+
correct, cited answer over a long, confident, unsourced one.
|
|
57
|
+
|
|
58
|
+
jobs_to_be_done:
|
|
59
|
+
- id: "answer-research-question"
|
|
60
|
+
description: >
|
|
61
|
+
Given a user research question, retrieve grounding sources and produce a cited,
|
|
62
|
+
evidence-backed answer — or an explicit "no supporting source found" when none exists.
|
|
63
|
+
expected_output: >
|
|
64
|
+
A concise answer with inline citations to the retrieved sources, or a clearly-labeled
|
|
65
|
+
"insufficient evidence" response.
|
|
66
|
+
backed_by: ["citation-formatter"] # PR-024: the code tool(s) implementing this job; the
|
|
67
|
+
# build-faithfulness gate asserts each is built + tested.
|
|
68
|
+
- id: "summarize-document"
|
|
69
|
+
description: >
|
|
70
|
+
Given a document reference, produce a faithful structured summary that preserves the
|
|
71
|
+
document's claims without adding interpretation the document does not support.
|
|
72
|
+
expected_output: >
|
|
73
|
+
A bulleted summary with each bullet traceable to a section of the source document.
|
|
74
|
+
|
|
75
|
+
context_sources:
|
|
76
|
+
- id: "internal-docs-search"
|
|
77
|
+
kind: "api"
|
|
78
|
+
description: >
|
|
79
|
+
The internal documentation search API — the primary grounding source. Needed because the
|
|
80
|
+
assistant must answer from the organization's own knowledge base, not its training prior.
|
|
81
|
+
where_from: "https://docs.example.test/search"
|
|
82
|
+
auth_ref: "DOCS_SEARCH_API_KEY"
|
|
83
|
+
- id: "web-reference-mcp"
|
|
84
|
+
kind: "mcp"
|
|
85
|
+
description: >
|
|
86
|
+
A public web-reference MCP server used to corroborate or supplement internal answers with
|
|
87
|
+
cited public material. Preferred over a bespoke HTTP client per MCP-first binding (PR-004).
|
|
88
|
+
where_from: "mcp://web-reference"
|
|
89
|
+
|
|
90
|
+
tools:
|
|
91
|
+
integration:
|
|
92
|
+
- id: "docs-search"
|
|
93
|
+
kind: "saas"
|
|
94
|
+
ref: "docs-search-api"
|
|
95
|
+
description: >
|
|
96
|
+
Calls the internal documentation search API and returns ranked passages with source IDs.
|
|
97
|
+
Use it FIRST on every research question to gather grounding evidence.
|
|
98
|
+
- id: "web-reference"
|
|
99
|
+
kind: "mcp"
|
|
100
|
+
ref: "mcp://web-reference/search"
|
|
101
|
+
description: >
|
|
102
|
+
MCP tool that searches public reference material. Use it to corroborate internal findings
|
|
103
|
+
or when the internal docs return no relevant passage.
|
|
104
|
+
code: # at *build, each module carries `// @implements <id>` +
|
|
105
|
+
# a test; the faithfulness gate (PR-024) asserts coverage.
|
|
106
|
+
- id: "citation-formatter"
|
|
107
|
+
lang: "python"
|
|
108
|
+
sandbox: true
|
|
109
|
+
description: >
|
|
110
|
+
A small sandboxed code tool that normalizes retrieved source IDs into a consistent
|
|
111
|
+
inline-citation format. Runs in a sandbox because it processes untrusted source metadata.
|
|
112
|
+
skills:
|
|
113
|
+
- id: "deep-summarize"
|
|
114
|
+
ref: "skill://deep-summarize"
|
|
115
|
+
description: >
|
|
116
|
+
A reusable summarization skill invoked for the summarize-document job — produces a
|
|
117
|
+
section-traceable structured summary from a long source document.
|
|
118
|
+
subagents:
|
|
119
|
+
- name: "retrieval-planner"
|
|
120
|
+
description: >
|
|
121
|
+
Plans a multi-step retrieval strategy for a complex question (decomposes it into
|
|
122
|
+
sub-queries, orders the searches, dedupes results).
|
|
123
|
+
instructions: >
|
|
124
|
+
Decompose the question into atomic sub-queries, issue docs-search for each, dedupe and
|
|
125
|
+
rank the combined passages, and return the top grounding set with source IDs.
|
|
126
|
+
tools: ["docs-search", "web-reference"]
|
|
127
|
+
model: "claude-sonnet-4-6" # honored verbatim — model intent is sacred (PR-003)
|
|
128
|
+
|
|
129
|
+
agent_type: "conversational" # conversational|automation|orchestrator
|
|
130
|
+
|
|
131
|
+
triggers: # how the DESIGNED agent is ACTIVATED (PR-017) — distinct from *monitor
|
|
132
|
+
- id: "a2a-research-request"
|
|
133
|
+
kind: "a2a"
|
|
134
|
+
description: >
|
|
135
|
+
An agent-to-agent research request arrives via the A2A protocol carrying a question payload;
|
|
136
|
+
Atlas answers and returns a cited response to the calling agent.
|
|
137
|
+
config:
|
|
138
|
+
protocol: "a2a"
|
|
139
|
+
accepts: "research-request/v1"
|
|
140
|
+
- id: "support-webhook"
|
|
141
|
+
kind: "webhook"
|
|
142
|
+
description: >
|
|
143
|
+
A support-platform webhook fires when a customer asks a knowledge-base question; the payload
|
|
144
|
+
carries the question text and a conversation ID for the reply.
|
|
145
|
+
config:
|
|
146
|
+
path: "/hooks/support-question"
|
|
147
|
+
|
|
148
|
+
modeling:
|
|
149
|
+
decision_graph:
|
|
150
|
+
state: "ResearchConversationState"
|
|
151
|
+
nodes: ["intake", "plan-retrieval", "retrieve", "synthesize", "cite", "answer", "no-evidence"]
|
|
152
|
+
edges:
|
|
153
|
+
- { from: "intake", to: "plan-retrieval" }
|
|
154
|
+
- { from: "plan-retrieval", to: "retrieve" }
|
|
155
|
+
- { from: "retrieve", to: "synthesize", condition: "at least one source found" }
|
|
156
|
+
- { from: "retrieve", to: "no-evidence", condition: "no source found" }
|
|
157
|
+
- { from: "synthesize", to: "cite" }
|
|
158
|
+
- { from: "cite", to: "answer" }
|
|
159
|
+
workflows:
|
|
160
|
+
- "research-answer: intake → plan-retrieval → retrieve → synthesize → cite → answer"
|
|
161
|
+
- "summarize: intake → retrieve(document) → deep-summarize → answer"
|
|
162
|
+
|
|
163
|
+
sop: # standardized SOP — when + context + procedure (PR-016)
|
|
164
|
+
- id: "sop-grounded-answer"
|
|
165
|
+
when: "A user or calling agent asks a research question"
|
|
166
|
+
context: "The retrieved grounding passages (with source IDs) for the question"
|
|
167
|
+
procedure: >
|
|
168
|
+
Restate the question; plan and run retrieval; synthesize ONLY from retrieved passages;
|
|
169
|
+
attach a citation to every non-trivial claim; if no passage supports an answer, return the
|
|
170
|
+
no-evidence response.
|
|
171
|
+
on_outcome:
|
|
172
|
+
success: "Return the cited answer and log the sources used."
|
|
173
|
+
failure: "Return a labeled insufficient-evidence response; never guess."
|
|
174
|
+
- id: "sop-faithful-summary"
|
|
175
|
+
when: "A user asks for a summary of a specific document"
|
|
176
|
+
context: "The full text of the referenced document"
|
|
177
|
+
procedure: >
|
|
178
|
+
Invoke deep-summarize; verify each summary bullet is traceable to a section of the source;
|
|
179
|
+
drop any bullet that cannot be traced.
|
|
180
|
+
|
|
181
|
+
evals: # binary-actionable + append-extensible (PR-019)
|
|
182
|
+
success_criteria:
|
|
183
|
+
- id: "every-claim-cited"
|
|
184
|
+
criterion: "Every non-trivial factual claim in the answer carries a citation to a retrieved source."
|
|
185
|
+
type: "llm-judge"
|
|
186
|
+
goal: "100% of factual claims are cited."
|
|
187
|
+
- id: "no-fabricated-citations"
|
|
188
|
+
criterion: "No citation in the answer points to a source that was not actually retrieved."
|
|
189
|
+
type: "code-check"
|
|
190
|
+
goal: "Zero fabricated citations."
|
|
191
|
+
- id: "honest-no-evidence"
|
|
192
|
+
criterion: "When no source supports an answer, the agent returns the no-evidence response instead of guessing."
|
|
193
|
+
type: "llm-judge"
|
|
194
|
+
goal: "100% of unsupported questions get an honest no-evidence response."
|
|
195
|
+
scenarios: # the SITUATIONS the agent must handle (seed for the eval-suite)
|
|
196
|
+
- id: "grounded-question"
|
|
197
|
+
description: "A user asks a question the internal docs directly answer."
|
|
198
|
+
expected_behavior: "Plans retrieval, gathers passages, returns an answer with a citation per claim."
|
|
199
|
+
category: "answer-research-question"
|
|
200
|
+
- id: "no-supporting-source"
|
|
201
|
+
description: "A user asks a question no retrieved passage supports."
|
|
202
|
+
expected_behavior: "Returns the labeled no-evidence response; never guesses or invents a citation."
|
|
203
|
+
category: "answer-research-question"
|
|
204
|
+
edge_case: true
|
|
205
|
+
- id: "conflicting-sources"
|
|
206
|
+
description: "Two retrieved passages support opposite answers."
|
|
207
|
+
expected_behavior: "Surfaces the conflict with both citations rather than silently picking one."
|
|
208
|
+
category: "answer-research-question"
|
|
209
|
+
edge_case: true
|
|
210
|
+
- id: "summarize-long-doc"
|
|
211
|
+
description: "A user asks for a summary of a long referenced document."
|
|
212
|
+
expected_behavior: "Invokes deep-summarize; every bullet is traceable to a source section."
|
|
213
|
+
category: "summarize-document"
|
|
214
|
+
dataset_categories: # the GOLDEN eval-suite slices the *eval dataset must cover (F2)
|
|
215
|
+
- id: "answer-research-question"
|
|
216
|
+
description: >
|
|
217
|
+
Grounded Q&A over the internal docs + public reference material — the primary use case.
|
|
218
|
+
The dataset must span easy single-source hits through the hard edge-cases below.
|
|
219
|
+
edge_cases:
|
|
220
|
+
- "no supporting source exists (must return no-evidence)"
|
|
221
|
+
- "sources conflict (must surface the conflict)"
|
|
222
|
+
- "prompt-injection embedded in the question (must ignore injected instructions)"
|
|
223
|
+
- id: "summarize-document"
|
|
224
|
+
description: "Faithful structured summaries of referenced documents."
|
|
225
|
+
edge_cases:
|
|
226
|
+
- "document longer than the context window (must chunk, not truncate)"
|
|
227
|
+
- "document makes a claim with no support (summary must not amplify it)"
|
|
228
|
+
|
|
229
|
+
# ── BUILD — the implementation target (guided choice, lives inside the spec → cascade-update, PR-001).
|
|
230
|
+
build:
|
|
231
|
+
# String — accepts a framework (mastra|deepagents|pydantic-ai|langgraph) OR a harness
|
|
232
|
+
# (harness:claude-code|harness:codex|harness:<other>) OR a future target (PR-005).
|
|
233
|
+
target_framework: "langgraph"
|
|
234
|
+
# The execution runtime, PINNED at spec-time so *build implements ONCE (bun|node|deno|python|shell|…).
|
|
235
|
+
# Dogfood F4: an unpinned runtime caused a bash→Bun rebuild — pin it here to prevent the rework.
|
|
236
|
+
runtime: "python"
|
|
237
|
+
target_eval_framework: "mutagent-evaluator"
|
|
238
|
+
|
|
239
|
+
# ── APPENDIX — pinned doc roots the *build agent crawls FRESH at build time (PR-002).
|
|
240
|
+
appendix:
|
|
241
|
+
framework_docs:
|
|
242
|
+
langgraph:
|
|
243
|
+
- "https://docs.langchain.com/llms.txt"
|
|
244
|
+
- "https://docs.langchain.com/oss/python/langgraph/graph-api"
|
|
245
|
+
references:
|
|
246
|
+
- "Decision: langgraph chosen as the only fully-declarative graph target for this assistant."
|
|
247
|
+
- "Glossary: 'grounding source' = a passage retrieved at answer-time, never a training prior."
|
package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/frameworks/doc-pins.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Framework Doc Pins
|
|
2
|
+
|
|
3
|
+
> **PR-002 — fetched at build, never copied.** These are the CANONICAL documentation ROOTS the
|
|
4
|
+
> `*build` agent (`ai-engineer`) crawls FRESH (WebFetch) at build time for the chosen
|
|
5
|
+
> `build.target_framework`. SDKs churn — never vendor the doc BODIES into this skill. PIN the roots
|
|
6
|
+
> here (and per-spec in `appendix.framework_docs`); crawl them live when building.
|
|
7
|
+
|
|
8
|
+
## Pinned roots (per target)
|
|
9
|
+
|
|
10
|
+
| Target | `llms.txt` / index root | Reference root | Notes |
|
|
11
|
+
|---|---|---|---|
|
|
12
|
+
| `mastra` | `https://mastra.ai/llms.txt` | `https://mastra.ai/reference/agents/agent` | TS-native agent framework. |
|
|
13
|
+
| `deepagents` | `https://reference.langchain.com/python/deepagents/` | `github.com/langchain-ai/deepagents` | LangChain deep-agents. |
|
|
14
|
+
| `pydantic-ai` | `https://ai.pydantic.dev/llms-full.txt` | `https://ai.pydantic.dev/api/agent/` | `llms.txt` intermittently drops the Agent section → use the HTML `api/agent/` fallback. |
|
|
15
|
+
| `langgraph` | `https://docs.langchain.com/llms.txt` | `https://docs.langchain.com/oss/python/langgraph/graph-api` | Docs moved to `docs.langchain.com`; only fully-declarative graph target. |
|
|
16
|
+
|
|
17
|
+
## Provider best-practices (dogfood F3 — crawl + apply at build)
|
|
18
|
+
|
|
19
|
+
The `*build` agent also crawls the chosen MODEL PROVIDER's best-practice docs and applies them to the
|
|
20
|
+
scaffold — chiefly **prompt-caching** (cache the static `system_prompt` + tool/skill defs + few-shot
|
|
21
|
+
prefixes). Pin the provider's caching root for whichever provider the spec's models target; crawl it
|
|
22
|
+
FRESH (PR-002) — never guess the caching API.
|
|
23
|
+
|
|
24
|
+
| Provider | Prompt/context caching root | Notes |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| Anthropic | `https://docs.claude.com/en/docs/build-with-claude/prompt-caching` | `cache_control` breakpoints; cache the long static prefix. |
|
|
27
|
+
| OpenAI | `https://platform.openai.com/docs/guides/prompt-caching` | Automatic for long prompts; order static content first. |
|
|
28
|
+
| Google (Gemini) | `https://ai.google.dev/gemini-api/docs/caching` | Explicit context caching for repeated large prefixes. |
|
|
29
|
+
|
|
30
|
+
The `ai-architect` Verifier confirms the caching (and any other crawled best-practice) was
|
|
31
|
+
actually applied to the scaffold — a skipped, documented best-practice is a STEER.
|
|
32
|
+
|
|
33
|
+
## Harness targets
|
|
34
|
+
|
|
35
|
+
`build.target_framework` may also be a HARNESS of the form `harness:<x>` (PR-005), e.g.
|
|
36
|
+
`harness:claude-code` or `harness:codex`. Harness targets emit a skill/agent definition for the
|
|
37
|
+
named coding-agent runtime rather than a framework SDK scaffold. Harness-target doc pins + the
|
|
38
|
+
emission shape are a Wave-2 `*build` concern (careful-design item) — they are NOT enumerated here
|
|
39
|
+
yet, by design (lean, PR-007).
|
|
40
|
+
|
|
41
|
+
## How a pin is used (PR-002)
|
|
42
|
+
|
|
43
|
+
1. The spec's `appendix.framework_docs[target]` carries the spec-specific pin list (it may add to or
|
|
44
|
+
override the canonical roots above).
|
|
45
|
+
2. At `*build`, `ai-engineer` runs `*crawl-docs` → WebFetch each pinned root FRESH.
|
|
46
|
+
3. If a pin is dead/moved, the Actor escalates rather than scaffolding against a stale local copy.
|
|
47
|
+
4. The `ai-architect` Verifier confirms every framework API the scaffold uses appears in the
|
|
48
|
+
crawled docs; an unpinned/guessed API is a STEER.
|
|
49
|
+
|
|
50
|
+
## Maintenance
|
|
51
|
+
|
|
52
|
+
When an upstream framework moves its docs, update the pinned root HERE (and note the move). Do NOT
|
|
53
|
+
add a vendored copy of the doc body — the whole point of pinning is to crawl fresh.
|