@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,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mutagent-helix
|
|
3
|
+
description: |
|
|
4
|
+
Helix — the MutagenT Agentic Development Lifecycle (ADL) conductor. Drives a skill or agent
|
|
5
|
+
through the full lifecycle — spec → build → evaluate → diagnose → improve — by sequencing a set
|
|
6
|
+
of standalone lifecycle-stage skills and adjudicating the gates between them. Helix is a
|
|
7
|
+
natural-language *command router: it indexes the system, tracks where you are in the loop, hands
|
|
8
|
+
each stage to its owning skill, and keeps every apply (a code change, a platform update)
|
|
9
|
+
approval-gated. First invocation auto-detects setup and guides onboarding; subsequent
|
|
10
|
+
invocations render the ADL dashboard and await a *command (or free text, which routes through the
|
|
11
|
+
intent layer). Ships the lifecycle-stage skills it conducts: mutagent-agentspec (① SPEC — a
|
|
12
|
+
guided interview that emits a portable agentspec.yaml), mutagent-builder (② BUILD — implement the
|
|
13
|
+
validated spec into the target framework/harness), mutagent-evaluator (③ EVALUATE — mine criteria
|
|
14
|
+
from traces, judge, validate the judge, build datasets; judge only, never fixes), and
|
|
15
|
+
mutagent-diagnostics (④ DIAGNOSE — RCA + ranked remedies from real traces). The ⑤ IMPROVE stage
|
|
16
|
+
routes to mutagent-optimize (published separately as @mutagent/optimize) — the session-conducted,
|
|
17
|
+
bounded eval-driven optimize loop (Build → Eval → Diagnose → Improve ↻) whose one apply-gate at
|
|
18
|
+
convergence goes through the shared `mutagent-cli apply`. Helix never executes a stage's inner
|
|
19
|
+
work — it routes. Two invariants hold the loop
|
|
20
|
+
together: judge-never-fix (the evaluator decides; failures route to diagnostics) and
|
|
21
|
+
explicit-and-gated (no stage auto-advances; the operator stays in control).
|
|
22
|
+
license: Apache-2.0. See LICENSE for complete terms.
|
|
23
|
+
compatibility: Designed for Claude Code, Codex, Cursor, and similar coding-agent runtimes; works with git, gh CLI, jq, curl, and Bun/pnpm/npm runtimes.
|
|
24
|
+
metadata:
|
|
25
|
+
author: mutagent
|
|
26
|
+
version: "0.1.0-alpha.0"
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# Helix — the MutagenT ADL conductor
|
|
30
|
+
|
|
31
|
+
> **The full agent definition lives in [`orchestrator.md`](./orchestrator.md)** (bundled alongside
|
|
32
|
+
> this file). That is the canonical Helix persona + activation-instructions + the complete
|
|
33
|
+
> `*command` roster + the dashboard template. Read it first; this SKILL.md is the operator-facing
|
|
34
|
+
> contract and setup map.
|
|
35
|
+
|
|
36
|
+
## §0 · Setup (first invocation)
|
|
37
|
+
|
|
38
|
+
If you have just installed `@mutagent/helix` and have not yet onboarded:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pnpx @mutagent/helix init # installs Helix + the lifecycle skills, links CLAUDE.md / AGENTS.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`init` installs the conductor and the lifecycle-stage skills (agentspec · builder · evaluator ·
|
|
45
|
+
diagnostics) into your coding agent's `.claude/` (project-local by default; `--global` for the home dir), and
|
|
46
|
+
links `CLAUDE.md` / `AGENTS.md` so the host boots Helix. Then open your coding agent and invoke the
|
|
47
|
+
conductor.
|
|
48
|
+
|
|
49
|
+
## §1 · Triggers
|
|
50
|
+
|
|
51
|
+
| You type | Helix does |
|
|
52
|
+
|---|---|
|
|
53
|
+
| `/mutagent-helix` · `*mutagent` · `boot` | Boot the conductor: adopt the Helix persona (per `orchestrator.md`), build the shallow system index, render the ADL dashboard, then HALT awaiting a `*command`. |
|
|
54
|
+
| free text (e.g. "diagnose the failures") | Routes through the NL intent layer (`routing.yaml`) to the owning stage's `*command`. |
|
|
55
|
+
|
|
56
|
+
## §2 · What Helix is
|
|
57
|
+
|
|
58
|
+
Helix is the **only layer that knows the whole system at once**. It sequences the Agentic
|
|
59
|
+
Development Lifecycle as a flexible DAG — you can enter at any stage and Helix routes onward — and
|
|
60
|
+
hands each stage to the standalone skill that owns it. It owns sequencing, the system topology
|
|
61
|
+
index, cross-stage handoff (a shared contract bundle + file-based handover), and gate adjudication
|
|
62
|
+
— **never** the work inside a stage.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
spec ──▶ build ──▶ evaluate ──▶ diagnose ──▶ improve ──▶ (loop back to build)
|
|
66
|
+
│ │ │ │ │
|
|
67
|
+
agentspec builder evaluator diagnostics optimize (gated apply) ↻
|
|
68
|
+
(① SPEC) (② BUILD) (③ EVALUATE) (④ DIAGNOSE) (⑤ IMPROVE)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## §3 · The `*command` roster
|
|
72
|
+
|
|
73
|
+
| Command | Stage | Owning skill | What it does |
|
|
74
|
+
|---|---|---|---|
|
|
75
|
+
| `*sync` · `*status` · `*onboard` · `*help` | conductor | Helix | Index the system · report where you are in the loop · onboard/configure · render the dashboard. |
|
|
76
|
+
| `*spec` · `*validate-spec` | ① SPEC | mutagent-agentspec | Guided interview → portable, validated `agentspec.yaml`. |
|
|
77
|
+
| `*build` · `*sync-spec` | ② BUILD | mutagent-builder | Implement the validated spec; resync `agentspec.yaml` from implementation drift. |
|
|
78
|
+
| `*evaluate` · `*audit` (+ `*discover` · `*validate` · `*review` · `*build-dataset` · `*derive-dataset`) | ③ EVALUATE | mutagent-evaluator | Mine criteria from real traces → judge → validate the judge → datasets. **Judge only — never fixes.** |
|
|
79
|
+
| `*diagnose` | ④ DIAGNOSE | mutagent-diagnostics | Root-cause routed failures on real evidence → ranked remedies, handed to the gated ⑤ IMPROVE. |
|
|
80
|
+
| `*improve` · `*optimize` | ⑤ IMPROVE | mutagent-optimize | The session-conducted, bounded eval-driven optimize loop (Build → Eval → Diagnose → Improve ↻): confirm once at entry, ONE apply-gate at convergence — the write goes through the shared `mutagent-cli apply`. Utterances: "optimize this agent/skill" · "run the improve/optimize loop" · "apply the fix/remedy" · "next iteration" · "make it better" · "keep improving". |
|
|
81
|
+
|
|
82
|
+
The evaluator `*discover/*validate/*review/*build-dataset/*derive-dataset` commands are **forward-intents**.
|
|
83
|
+
`*build` is an owned BUILD route to `mutagent-builder`; `*sync-spec` is a SPEC route to
|
|
84
|
+
`mutagent-agentspec` (which delegates the code-read to builder's `ai-architect #sync-spec`). Helix
|
|
85
|
+
gates/forwards; it does not execute a stage's inner work.
|
|
86
|
+
|
|
87
|
+
## §4 · The skills Helix conducts (bundled)
|
|
88
|
+
|
|
89
|
+
| Skill | ADL stage | Invoke directly |
|
|
90
|
+
|---|---|---|
|
|
91
|
+
| [`mutagent-agentspec`](../mutagent-agentspec/SKILL.md) | ① SPEC | `/mutagent-agentspec` |
|
|
92
|
+
| [`mutagent-builder`](../mutagent-builder/SKILL.md) | ② BUILD | `/mutagent-builder` |
|
|
93
|
+
| [`mutagent-evaluator`](../mutagent-evaluator/SKILL.md) | ③ EVALUATE | `/mutagent-evaluator` |
|
|
94
|
+
| [`mutagent-diagnostics`](../mutagent-diagnostics/SKILL.md) | ④ DIAGNOSE | `/mutagent-diagnostics` |
|
|
95
|
+
| [`mutagent-optimize`](../mutagent-optimize/SKILL.md) | ⑤ IMPROVE | `/mutagent-optimize` |
|
|
96
|
+
|
|
97
|
+
`mutagent-optimize` is published independently as `@mutagent/optimize` and installed alongside
|
|
98
|
+
(it is not yet part of the `helix init` bundled set); Helix's `*improve` route targets it either way.
|
|
99
|
+
|
|
100
|
+
Each is a **sealed, standalone** skill (it never references a sibling in source) and is also
|
|
101
|
+
published independently under its own `@mutagent/*` name. Helix is the only layer that knows about
|
|
102
|
+
all of them; it talks to each via its public skill contract, never by reaching into its source.
|
|
103
|
+
|
|
104
|
+
## §5 · Invariants (do not regress)
|
|
105
|
+
|
|
106
|
+
- **Judge, never fix.** The evaluator decides pass/fail; failures route to diagnostics, which
|
|
107
|
+
proposes the remedies the gated ⑤ IMPROVE stage (mutagent-optimize → the shared `mutagent-cli
|
|
108
|
+
apply`) applies. Decision stays independent of remediation.
|
|
109
|
+
- **Explicit and gated.** No stage auto-advances. Every apply (PR · REST · CLI install) requires
|
|
110
|
+
explicit operator approval. Helix never auto-applies a remedy.
|
|
111
|
+
- **Routing only.** Helix sequences stages and adjudicates gates; it never performs a stage's inner
|
|
112
|
+
work.
|
|
113
|
+
- **Standalone.** The system carries its own context — no external framework coupling.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* codex-transcode.ts — convert a Claude-Code agent `.md` (YAML frontmatter + body)
|
|
3
|
+
* into a Codex-native project custom-agent `.toml`.
|
|
4
|
+
*
|
|
5
|
+
* Codex auto-loads spawnable subagents from `.codex/agents/*.toml` (project scope).
|
|
6
|
+
* The correct format is FLAT top-level keys (NOT `[agent]` tables) — matching the
|
|
7
|
+
* native `moni-thor.toml`:
|
|
8
|
+
*
|
|
9
|
+
* name = "<name>"
|
|
10
|
+
* description = "<one-line>"
|
|
11
|
+
* developer_instructions = """
|
|
12
|
+
* ```yaml
|
|
13
|
+
* <the EXCESS frontmatter — everything except name/description>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* <the agent .md body, verbatim>
|
|
17
|
+
* """
|
|
18
|
+
*
|
|
19
|
+
* The OLD diagnostics transcode was malformed: it collapsed `description: >` block
|
|
20
|
+
* scalars to ">", mangled nested frontmatter into invalid TOML, and used `[agent]`
|
|
21
|
+
* tables. This version is lossless + intact: name/description become structured TOML
|
|
22
|
+
* keys; ALL other frontmatter is preserved verbatim inside a ```yaml``` block; the
|
|
23
|
+
* body is preserved verbatim; the whole thing parses as valid TOML.
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
export interface ParsedAgentMd {
|
|
27
|
+
name: string;
|
|
28
|
+
/** one-line, block-scalars flattened */
|
|
29
|
+
description: string;
|
|
30
|
+
/** the frontmatter MINUS the name + description lines, verbatim */
|
|
31
|
+
excessFrontmatter: string;
|
|
32
|
+
/** the markdown after the frontmatter, verbatim */
|
|
33
|
+
body: string;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const FM_RE = /^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n([\s\S]*))?$/;
|
|
37
|
+
|
|
38
|
+
/** Is a line a top-level YAML key (`key:` at column 0, not a list item)? */
|
|
39
|
+
function isTopLevelKey(line: string): boolean {
|
|
40
|
+
return /^[^\s#][^:]*:/.test(line);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Parse a Claude agent .md: split frontmatter/body, extract name + description
|
|
45
|
+
* (flattening `>`/`|` block scalars and inline values), and return the remaining
|
|
46
|
+
* frontmatter verbatim.
|
|
47
|
+
*/
|
|
48
|
+
export function parseAgentMd(md: string): ParsedAgentMd {
|
|
49
|
+
const m = md.match(FM_RE);
|
|
50
|
+
if (!m) {
|
|
51
|
+
// No frontmatter — treat the whole thing as the body with a derived name.
|
|
52
|
+
return { name: "agent", description: "", excessFrontmatter: "", body: md };
|
|
53
|
+
}
|
|
54
|
+
const fm = m[1] ?? "";
|
|
55
|
+
const body = m[2] ?? "";
|
|
56
|
+
const lines = fm.split(/\r?\n/);
|
|
57
|
+
|
|
58
|
+
let name = "";
|
|
59
|
+
let description = "";
|
|
60
|
+
const excess: string[] = [];
|
|
61
|
+
|
|
62
|
+
for (let i = 0; i < lines.length; i++) {
|
|
63
|
+
const line = lines[i]!;
|
|
64
|
+
const keyMatch = line.match(/^([A-Za-z0-9_-]+):\s?(.*)$/);
|
|
65
|
+
if (keyMatch && isTopLevelKey(line)) {
|
|
66
|
+
const key = keyMatch[1]!;
|
|
67
|
+
const rawVal = keyMatch[2] ?? "";
|
|
68
|
+
|
|
69
|
+
if (key === "name" || key === "description") {
|
|
70
|
+
const isBlock = rawVal.trim() === ">" || rawVal.trim() === "|";
|
|
71
|
+
let value: string;
|
|
72
|
+
if (isBlock) {
|
|
73
|
+
// consume following MORE-indented lines as the scalar body
|
|
74
|
+
const parts: string[] = [];
|
|
75
|
+
let j = i + 1;
|
|
76
|
+
for (; j < lines.length; j++) {
|
|
77
|
+
const l = lines[j]!;
|
|
78
|
+
if (l.trim() === "") { parts.push(""); continue; }
|
|
79
|
+
if (/^\s+/.test(l)) { parts.push(l.trim()); }
|
|
80
|
+
else break;
|
|
81
|
+
}
|
|
82
|
+
i = j - 1;
|
|
83
|
+
value = parts.join(" ").replace(/\s+/g, " ").trim();
|
|
84
|
+
} else {
|
|
85
|
+
// strip an inline trailing comment ONLY when the value isn't quoted
|
|
86
|
+
value = rawVal.trim();
|
|
87
|
+
value = value.replace(/\s+#.*$/, "").trim();
|
|
88
|
+
value = value.replace(/^["']|["']$/g, "");
|
|
89
|
+
}
|
|
90
|
+
if (key === "name") name = value;
|
|
91
|
+
else description = value;
|
|
92
|
+
continue; // do NOT add name/description to excess
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
excess.push(line);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// drop leading/trailing blank lines from excess
|
|
99
|
+
const excessFrontmatter = excess.join("\n").replace(/^\n+|\n+$/g, "");
|
|
100
|
+
return { name: name || "agent", description, excessFrontmatter, body: body.replace(/^\n+/, "") };
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/** Escape a value for a TOML basic (single-line) string. */
|
|
104
|
+
function tomlBasic(s: string): string {
|
|
105
|
+
return s.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/[\r\n]+/g, " ");
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Make content safe inside a TOML multi-line LITERAL string ('''...''').
|
|
110
|
+
* Literal strings do NO escape processing — perfect for markdown bodies full of
|
|
111
|
+
* backslashes (e.g. table cells `a \| b`) that a basic `"""` string would reject.
|
|
112
|
+
* The only thing a literal string can't contain is `'''`; we verified the bundled
|
|
113
|
+
* agents have none, but guard anyway by inserting a zero-width break.
|
|
114
|
+
*/
|
|
115
|
+
function tomlLiteral(s: string): string {
|
|
116
|
+
return s.replace(/'''/g, "'''");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Transcode a Claude agent `.md` → the Codex project custom-agent `.toml` string.
|
|
121
|
+
* Lossless: every frontmatter field + the full body is preserved.
|
|
122
|
+
*/
|
|
123
|
+
export function toCodexAgentToml(md: string): string {
|
|
124
|
+
const { name, description, excessFrontmatter, body } = parseAgentMd(md);
|
|
125
|
+
|
|
126
|
+
const blocks: string[] = [];
|
|
127
|
+
if (excessFrontmatter.trim()) {
|
|
128
|
+
blocks.push("```yaml\n" + excessFrontmatter + "\n```");
|
|
129
|
+
}
|
|
130
|
+
if (body.trim()) blocks.push(body.trimEnd());
|
|
131
|
+
const instructions = tomlLiteral(blocks.join("\n\n"));
|
|
132
|
+
|
|
133
|
+
const lines = [
|
|
134
|
+
`name = "${tomlBasic(name)}"`,
|
|
135
|
+
`description = "${tomlBasic(description)}"`,
|
|
136
|
+
"",
|
|
137
|
+
"developer_instructions = '''",
|
|
138
|
+
instructions,
|
|
139
|
+
"'''",
|
|
140
|
+
"",
|
|
141
|
+
];
|
|
142
|
+
return lines.join("\n");
|
|
143
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* scripts/cli/doctor.ts — @mutagent/helix runtime probe.
|
|
3
|
+
* Invoked as: pnpx @mutagent/helix doctor
|
|
4
|
+
*
|
|
5
|
+
* Reports what Helix sees: which skills are installed in the consumer's .claude,
|
|
6
|
+
* how many agents are present, and whether CLAUDE.md / AGENTS.md are linked.
|
|
7
|
+
* Read-only — never writes. Mirrors the diagnostics doctor discipline.
|
|
8
|
+
*
|
|
9
|
+
* Flags:
|
|
10
|
+
* --global probe ~/.claude (default is <cwd>/.claude)
|
|
11
|
+
* --json emit only the DoctorReport JSON
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { existsSync, readdirSync } from "node:fs";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
import { homedir } from "node:os";
|
|
17
|
+
import { parseArgs } from "node:util";
|
|
18
|
+
|
|
19
|
+
interface SkillProbe {
|
|
20
|
+
name: string;
|
|
21
|
+
present: boolean;
|
|
22
|
+
hasSkillMd: boolean;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
interface DoctorReport {
|
|
26
|
+
package: "@mutagent/helix";
|
|
27
|
+
scope: "project" | "global";
|
|
28
|
+
claudeRoot: string;
|
|
29
|
+
skills: SkillProbe[];
|
|
30
|
+
agentCount: number;
|
|
31
|
+
claudeMd: boolean;
|
|
32
|
+
agentsMd: boolean;
|
|
33
|
+
healthy: boolean;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const EXPECTED_SKILLS = [
|
|
37
|
+
"mutagent-helix",
|
|
38
|
+
"mutagent-agentspec",
|
|
39
|
+
"mutagent-builder",
|
|
40
|
+
"mutagent-evaluator",
|
|
41
|
+
"mutagent-diagnostics",
|
|
42
|
+
] as const;
|
|
43
|
+
|
|
44
|
+
function main(): void {
|
|
45
|
+
const { values } = parseArgs({
|
|
46
|
+
args: process.argv.slice(2),
|
|
47
|
+
options: {
|
|
48
|
+
global: { type: "boolean", default: false },
|
|
49
|
+
json: { type: "boolean", default: false },
|
|
50
|
+
},
|
|
51
|
+
allowPositionals: true,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const scope = values.global ? "global" : "project";
|
|
55
|
+
const configRoot = scope === "global" ? join(homedir(), ".claude") : join(process.cwd(), ".claude");
|
|
56
|
+
const skillsDir = join(configRoot, "skills");
|
|
57
|
+
const agentsDir = join(configRoot, "agents");
|
|
58
|
+
const linkRoot = scope === "global" ? configRoot : process.cwd();
|
|
59
|
+
|
|
60
|
+
const skills: SkillProbe[] = EXPECTED_SKILLS.map((name) => {
|
|
61
|
+
const dir = join(skillsDir, name);
|
|
62
|
+
return {
|
|
63
|
+
name,
|
|
64
|
+
present: existsSync(dir),
|
|
65
|
+
hasSkillMd: existsSync(join(dir, "SKILL.md")),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
const agentCount = existsSync(agentsDir)
|
|
70
|
+
? readdirSync(agentsDir).filter((f) => f.endsWith(".md")).length
|
|
71
|
+
: 0;
|
|
72
|
+
const claudeMd = existsSync(join(linkRoot, "CLAUDE.md"));
|
|
73
|
+
const agentsMd = existsSync(join(linkRoot, "AGENTS.md"));
|
|
74
|
+
const healthy = skills.every((s) => s.hasSkillMd) && agentCount > 0;
|
|
75
|
+
|
|
76
|
+
const report: DoctorReport = {
|
|
77
|
+
package: "@mutagent/helix",
|
|
78
|
+
scope,
|
|
79
|
+
claudeRoot: configRoot,
|
|
80
|
+
skills,
|
|
81
|
+
agentCount,
|
|
82
|
+
claudeMd,
|
|
83
|
+
agentsMd,
|
|
84
|
+
healthy,
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
if (values.json) {
|
|
88
|
+
console.log(JSON.stringify(report, null, 2));
|
|
89
|
+
process.exit(healthy ? 0 : 1);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
console.info(`\n🧬 @mutagent/helix doctor (${scope}-scope) — ${configRoot}\n`);
|
|
93
|
+
for (const s of skills) {
|
|
94
|
+
console.info(` ${s.hasSkillMd ? "✓" : "✗"} ${s.name}${s.hasSkillMd ? "" : s.present ? " (no SKILL.md)" : " (missing)"}`);
|
|
95
|
+
}
|
|
96
|
+
console.info(` ${agentCount > 0 ? "✓" : "✗"} agents: ${agentCount} installed`);
|
|
97
|
+
console.info(` ${claudeMd ? "✓" : "•"} CLAUDE.md ${claudeMd ? "linked" : "not found"}`);
|
|
98
|
+
console.info(` ${agentsMd ? "✓" : "•"} AGENTS.md ${agentsMd ? "linked" : "not found"}`);
|
|
99
|
+
// Codex side (project-local)
|
|
100
|
+
const aSkills = join(process.cwd(), ".agents", "skills");
|
|
101
|
+
const cAgents = join(process.cwd(), ".codex", "agents");
|
|
102
|
+
const codexSkills = existsSync(aSkills)
|
|
103
|
+
? readdirSync(aSkills).filter((d) => existsSync(join(aSkills, d, "SKILL.md"))).length
|
|
104
|
+
: 0;
|
|
105
|
+
const codexAgents = existsSync(cAgents) ? readdirSync(cAgents).filter((f) => f.endsWith(".toml")).length : 0;
|
|
106
|
+
console.info(` ${codexSkills > 0 ? "✓" : "•"} Codex: ${codexSkills} skills (.agents/skills) · ${codexAgents} agents (.codex/agents/*.toml)`);
|
|
107
|
+
console.info(`\n${healthy ? "✅ healthy — boot with *mutagent" : "⚠ incomplete — run: pnpx @mutagent/helix init"}\n`);
|
|
108
|
+
process.exit(healthy ? 0 : 1);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
main();
|