@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,213 @@
|
|
|
1
|
+
/* ============================================================================
|
|
2
|
+
* Mutagent brand — SELF-CONTAINED copy, ALIGNED to the unified design-system.
|
|
3
|
+
*
|
|
4
|
+
* Source of truth: @mutagent/templates/design-system/tokens.css (the ONE canonical
|
|
5
|
+
* style). This file mirrors those tokens + re-skins the evaluator report's own
|
|
6
|
+
* component classes onto them, so all three evaluator HTML renderers
|
|
7
|
+
* (render-report.ts · render-eval-report.ts · build-review-ui.ts) share the
|
|
8
|
+
* unified brand WITHOUT a cross-skill runtime reference (the self-containment
|
|
9
|
+
* rule: copied here, read from the evaluator's own assets/brand/ at runtime).
|
|
10
|
+
*
|
|
11
|
+
* Brand (2026-06-23 design session):
|
|
12
|
+
* · SHARP corners (radius 0) — the UI "sharp-corners brand"
|
|
13
|
+
* · SUBTLE non-black card surfaces (cards lift off the void, never pure black,
|
|
14
|
+
* never "overly purple") — purple is an ACCENT only, never a card fill
|
|
15
|
+
* · TONED status (vibrant, not neon) + MUTED heatmap fills
|
|
16
|
+
* · RESTRAINED cyberpunk — minimal glow, NO heavy gradients (the wordmark
|
|
17
|
+
* gradient is the only one)
|
|
18
|
+
* Fonts: Space Grotesk (display) + IBM Plex Mono (mono) — loaded via the <head>
|
|
19
|
+
* <link> the renderer emits.
|
|
20
|
+
* ========================================================================== */
|
|
21
|
+
|
|
22
|
+
:root {
|
|
23
|
+
/* ── canonical design-system tokens (mirror tokens.css) ── */
|
|
24
|
+
--bg: #0a0a12; /* near-black void (dominant surface) */
|
|
25
|
+
--surf: #14141d; /* CARD — subtle lift, non-black, barely-tinted */
|
|
26
|
+
--surf-2: #1a1a25; /* raised (nested cards, headers) */
|
|
27
|
+
--surf-3: #22222f; /* elevated / hover */
|
|
28
|
+
--border: rgba(255, 255, 255, 0.09);
|
|
29
|
+
--border-strong: rgba(255, 255, 255, 0.16);
|
|
30
|
+
|
|
31
|
+
--fg: #d6dbe6;
|
|
32
|
+
--fg-strong: #eef1f6;
|
|
33
|
+
--muted: #8a8698;
|
|
34
|
+
--dim: #5a5667;
|
|
35
|
+
|
|
36
|
+
--primary: #7E47D7; /* purple — ACCENT only (never a card fill) */
|
|
37
|
+
--primary-soft: #b794f4;
|
|
38
|
+
--cyan: #45b8cc; /* secondary accent, used sparingly */
|
|
39
|
+
|
|
40
|
+
--pass: #43c39a; /* TONED status (vibrant, not neon) */
|
|
41
|
+
--fail: #e06666;
|
|
42
|
+
--warn: #e8a64d;
|
|
43
|
+
/* STATUS COLOR-ACUITY — tints raised ~.08→.16 so pass/fail/indeterminate POP at a
|
|
44
|
+
* glance (still toned, not neon). Paired with a status LEFT-BORDER on verdict
|
|
45
|
+
* cards/rows so the eye catches the outcome instantly. */
|
|
46
|
+
--pass-bg: rgba(67, 195, 154, 0.16);
|
|
47
|
+
--fail-bg: rgba(224, 102, 102, 0.16);
|
|
48
|
+
--warn-bg: rgba(232, 166, 77, 0.16);
|
|
49
|
+
|
|
50
|
+
/* §9.4.5 E7 — RECOMMENDED highlight toned DOWN ~50% (cyan #45b8cc desaturated →
|
|
51
|
+
* #67a0aa; bg alpha .10→.05) so the "★ recommended" treatment reads calm, not glare.
|
|
52
|
+
* Mirrors the shared @mutagent/templates token. */
|
|
53
|
+
--recommend: #67a0aa; /* RECOMMENDED highlight (remedies / picks) — calm cyan */
|
|
54
|
+
--recommend-bg: rgba(103, 160, 170, 0.05);
|
|
55
|
+
|
|
56
|
+
--radius: 0px; /* SHARP corners */
|
|
57
|
+
--font: 'Space Grotesk', system-ui, -apple-system, sans-serif;
|
|
58
|
+
--mono: 'IBM Plex Mono', ui-monospace, monospace;
|
|
59
|
+
|
|
60
|
+
/* ── R7 (§9.4.4) NORMALIZED TYPE SCALE — one scale, applied everywhere ──
|
|
61
|
+
* The single source of font sizing for every evaluator artifact. The FLOOR is
|
|
62
|
+
* --fs-2xs = 11px: raised from 10.5 so even the smallest mono chip is comfortably
|
|
63
|
+
* legible at normal zoom. Every size steps off this scale — NO ad-hoc px in the
|
|
64
|
+
* report components, and NO sub-1em (em/%-relative) shrink anywhere (the `code`
|
|
65
|
+
* 0.88em bug let nested mono dip below floor — now pinned to the absolute token).
|
|
66
|
+
* Map of legacy → token:
|
|
67
|
+
* 8 / 8.5 / 9 / 9.5 → --fs-2xs (11) micro labels · mono chips · code
|
|
68
|
+
* 10 / 10.5 / 11 / 11.5 → --fs-xs (12) small mono · secondary
|
|
69
|
+
* 12 / 12.5 / 13 → --fs-sm (13) table cells · body-small
|
|
70
|
+
* 14 → --fs-md (14) base body
|
|
71
|
+
* 15 / 16 → --fs-lg (16) h3 / section emphasis
|
|
72
|
+
* 18 → --fs-xl (19) large emphasis
|
|
73
|
+
* 22 → --fs-2xl (22) h2 / big-stat values
|
|
74
|
+
*/
|
|
75
|
+
--fs-2xs: 11px;
|
|
76
|
+
--fs-xs: 12px;
|
|
77
|
+
--fs-sm: 13px;
|
|
78
|
+
--fs-md: 14px;
|
|
79
|
+
--fs-lg: 16px;
|
|
80
|
+
--fs-xl: 19px;
|
|
81
|
+
--fs-2xl: 22px;
|
|
82
|
+
|
|
83
|
+
/* ── legacy aliases — the renderers reference these names; map onto canonical ── */
|
|
84
|
+
--bg2: #14141d; /* tabs strip — subtle, non-black */
|
|
85
|
+
--bg3: #1a1a25; /* table even-row — subtle */
|
|
86
|
+
--surf-r: var(--surf-2);
|
|
87
|
+
--surf-e: var(--surf-3);
|
|
88
|
+
--surf-h: var(--surf-3);
|
|
89
|
+
--text: var(--fg-strong);
|
|
90
|
+
--bstr: var(--border-strong);
|
|
91
|
+
--p: var(--primary);
|
|
92
|
+
--c: var(--cyan);
|
|
93
|
+
--g: var(--pass);
|
|
94
|
+
--y: var(--warn);
|
|
95
|
+
--r: var(--fail);
|
|
96
|
+
--m: var(--primary-soft); /* inline code — soft purple, not magenta */
|
|
97
|
+
--glow: transparent; /* RESTRAINED — no glow */
|
|
98
|
+
--gglow: transparent;
|
|
99
|
+
--fs: var(--font);
|
|
100
|
+
--fm: var(--mono);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/* SHARP everywhere — the global radius reset is the sharp-corners brand. */
|
|
104
|
+
* { box-sizing: border-box; border-radius: var(--radius); }
|
|
105
|
+
body {
|
|
106
|
+
margin: 0;
|
|
107
|
+
font-family: var(--font);
|
|
108
|
+
color: var(--fg);
|
|
109
|
+
background: var(--bg);
|
|
110
|
+
font-size: var(--fs-md);
|
|
111
|
+
line-height: 1.55;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* ── Banner + MUTAGENT wordmark (flat subtle surface; wordmark is the ONLY gradient) ── */
|
|
115
|
+
header.banner {
|
|
116
|
+
background: var(--surf);
|
|
117
|
+
border-bottom: 1px solid var(--border-strong);
|
|
118
|
+
padding: 20px 32px;
|
|
119
|
+
position: relative;
|
|
120
|
+
}
|
|
121
|
+
.brand { display: flex; align-items: baseline; gap: 14px; margin-bottom: 6px; }
|
|
122
|
+
.logo {
|
|
123
|
+
font-family: var(--font);
|
|
124
|
+
font-weight: 700;
|
|
125
|
+
font-size: var(--fs-2xl);
|
|
126
|
+
letter-spacing: 0.18em;
|
|
127
|
+
background: linear-gradient(90deg, var(--primary-soft), var(--cyan));
|
|
128
|
+
-webkit-background-clip: text;
|
|
129
|
+
background-clip: text;
|
|
130
|
+
-webkit-text-fill-color: transparent;
|
|
131
|
+
}
|
|
132
|
+
.product { font-size: var(--fs-md); font-weight: 500; color: var(--muted); letter-spacing: 0.04em; }
|
|
133
|
+
.meta { font-size: var(--fs-xs); font-family: var(--mono); color: var(--muted); letter-spacing: 0.02em; }
|
|
134
|
+
.meta .mk { color: var(--cyan); font-weight: 600; }
|
|
135
|
+
.meta .mv { color: var(--fg-strong); font-weight: 600; }
|
|
136
|
+
.meta .sep { color: var(--dim); margin: 0 6px; }
|
|
137
|
+
|
|
138
|
+
/* ── Tabs (functional; no glow/shadow) ────────────────────────────────────── */
|
|
139
|
+
nav.tabs {
|
|
140
|
+
background: var(--bg);
|
|
141
|
+
border-bottom: 1px solid var(--border);
|
|
142
|
+
padding: 0 12px;
|
|
143
|
+
position: sticky; top: 0; z-index: 100;
|
|
144
|
+
overflow-x: auto; white-space: nowrap;
|
|
145
|
+
}
|
|
146
|
+
nav.tabs button {
|
|
147
|
+
background: none; border: none;
|
|
148
|
+
padding: 10px 12px;
|
|
149
|
+
font-size: var(--fs-xs); font-weight: 500;
|
|
150
|
+
color: var(--muted); cursor: pointer;
|
|
151
|
+
border-bottom: 3px solid transparent;
|
|
152
|
+
transition: all 0.15s; font-family: inherit; letter-spacing: 0.01em;
|
|
153
|
+
}
|
|
154
|
+
nav.tabs button:hover { color: var(--fg-strong); background: var(--surf); }
|
|
155
|
+
nav.tabs button.active { color: var(--primary-soft); border-bottom-color: var(--primary); font-weight: 600; }
|
|
156
|
+
nav.tabs button.internal { color: var(--cyan); }
|
|
157
|
+
nav.tabs button.internal.active { border-bottom-color: var(--cyan); }
|
|
158
|
+
|
|
159
|
+
/* ── Layout + panels ─────────────────────────────────────────────────────── */
|
|
160
|
+
main { max-width: 1200px; margin: 0 auto; padding: 28px 32px 140px 32px; }
|
|
161
|
+
.panel { display: none; }
|
|
162
|
+
.panel.active { display: block; animation: fade 0.2s ease-out; }
|
|
163
|
+
@keyframes fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: translateY(0); } }
|
|
164
|
+
|
|
165
|
+
h2 { font-size: var(--fs-2xl); font-weight: 600; margin: 0 0 8px 0; padding-bottom: 10px; border-bottom: 1px solid var(--border-strong); color: var(--fg-strong); }
|
|
166
|
+
.sub { color: var(--muted); font-size: var(--fs-sm); margin-bottom: 24px; }
|
|
167
|
+
/* §9.4.5 E4 — tighter section rhythm (24→18) toward diagnostics density. */
|
|
168
|
+
h3 { font-size: var(--fs-lg); font-weight: 600; margin-top: 18px; margin-bottom: 6px; color: var(--primary-soft); }
|
|
169
|
+
h4 { font-size: var(--fs-sm); font-weight: 600; margin-top: 14px; color: var(--fg-strong); text-transform: uppercase; letter-spacing: 0.04em; font-family: var(--mono); }
|
|
170
|
+
p { line-height: 1.6; color: var(--muted); }
|
|
171
|
+
strong { color: var(--fg-strong); }
|
|
172
|
+
|
|
173
|
+
/* ── Tables (sharp; subtle) ───────────────────────────────────────────────── */
|
|
174
|
+
table { border-collapse: collapse; margin: 12px 0; font-size: var(--fs-sm); width: 100%; border: 1px solid var(--border); }
|
|
175
|
+
th, td { border: 1px solid var(--border); padding: 8px 12px; text-align: left; vertical-align: top; color: var(--muted); }
|
|
176
|
+
th { background: var(--surf-2); font-weight: 600; color: var(--fg-strong); }
|
|
177
|
+
tr:nth-child(even) td { background: var(--surf); }
|
|
178
|
+
code { background: var(--bg); color: var(--primary-soft); padding: 2px 6px; font-size: var(--fs-2xs); font-family: var(--mono); border: 1px solid var(--border); }
|
|
179
|
+
|
|
180
|
+
/* ── Callouts (flat tinted surface + accent border; NO gradient/glow) ─────── */
|
|
181
|
+
.crit { background: var(--fail-bg); border-left: 3px solid var(--fail); padding: 14px 18px; margin: 14px 0; }
|
|
182
|
+
.crit strong { color: var(--fail); }
|
|
183
|
+
.warn { background: var(--warn-bg); border-left: 3px solid var(--warn); padding: 14px 18px; margin: 14px 0; }
|
|
184
|
+
.warn strong { color: var(--warn); }
|
|
185
|
+
.alert { background: var(--pass-bg); border-left: 3px solid var(--pass); padding: 14px 18px; margin: 14px 0; }
|
|
186
|
+
.alert strong { color: var(--pass); }
|
|
187
|
+
.internal-banner { background: var(--recommend-bg); border: 1px dashed var(--cyan); padding: 10px 16px; margin: 0 0 18px 0; font-family: var(--mono); font-size: var(--fs-xs); color: var(--cyan); letter-spacing: 0.03em; }
|
|
188
|
+
|
|
189
|
+
/* ── RECOMMENDED highlight (remedies / recommended picks) ─────────────────── */
|
|
190
|
+
.recommend { border-left: 3px solid var(--recommend); background: var(--recommend-bg); padding: 7px 11px; }
|
|
191
|
+
.recommend .tag { font-family: var(--mono); font-size: var(--fs-2xs); font-weight: 700; color: var(--recommend); }
|
|
192
|
+
|
|
193
|
+
/* ── Badges + pills (sharp; toned) ────────────────────────────────────────── */
|
|
194
|
+
.badge { display: inline-block; padding: 2px 6px; font-size: var(--fs-xs); font-weight: 600; letter-spacing: 0.04em; font-family: var(--mono); margin-right: 4px; }
|
|
195
|
+
.b-crit { background: var(--fail-bg); color: var(--fail); border: 1px solid var(--fail); }
|
|
196
|
+
.b-high { background: var(--warn-bg); color: var(--warn); border: 1px solid var(--warn); }
|
|
197
|
+
.b-med { background: rgba(69, 184, 204, 0.10); color: var(--cyan); border: 1px solid var(--cyan); }
|
|
198
|
+
.b-low { background: var(--surf-3); color: var(--muted); border: 1px solid var(--border); }
|
|
199
|
+
.b-pass { background: var(--pass-bg); color: var(--pass); border: 1px solid var(--pass); }
|
|
200
|
+
.b-fail { background: var(--fail-bg); color: var(--fail); border: 1px solid var(--fail); }
|
|
201
|
+
.b-skip { background: var(--surf-3); color: var(--muted); border: 1px solid var(--border); }
|
|
202
|
+
|
|
203
|
+
/* ── Big-stat tiles (subtle non-black cards) ──────────────────────────────── */
|
|
204
|
+
.big-stat { display: flex; gap: 18px; flex-wrap: wrap; margin: 16px 0; }
|
|
205
|
+
.big-stat .s { background: var(--surf-2); border: 1px solid var(--border); padding: 12px 16px; min-width: 96px; }
|
|
206
|
+
.big-stat .v { font-size: var(--fs-2xl); font-weight: 700; font-family: var(--mono); }
|
|
207
|
+
.big-stat .l { font-size: var(--fs-xs); color: var(--dim); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 2px; }
|
|
208
|
+
|
|
209
|
+
/* ── Verdict card (subtle; toned accent border; NO glow) ──────────────────── */
|
|
210
|
+
.verdict { background: var(--surf-2); border: 1px solid var(--border-strong); border-left-width: 5px; padding: 18px 20px; margin: 16px 0; }
|
|
211
|
+
.verdict.pass { border-color: var(--pass); border-left-color: var(--pass); background: var(--pass-bg); }
|
|
212
|
+
.verdict.fail { border-color: var(--fail); border-left-color: var(--fail); background: var(--fail-bg); }
|
|
213
|
+
.verdict.skip { border-color: var(--warn); border-left-color: var(--warn); background: var(--warn-bg); }
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<!-- Mutagent banner + MUTAGENT wordmark — SELF-CONTAINED copy, extracted from
|
|
2
|
+
the diagnostics report.html.tpl header treatment so the two products are
|
|
3
|
+
visually consistent. The HEADER title + meta are stamped by render-report.ts.
|
|
4
|
+
The renderer reads this partial from its own package; it never references
|
|
5
|
+
the diagnostics package at runtime. -->
|
|
6
|
+
<header class="banner">
|
|
7
|
+
<div class="brand"><div class="logo">MUTAGENT</div><div class="product">{{HEADER_TITLE}}</div></div>
|
|
8
|
+
<div class="meta">{{HEADER_META}}</div>
|
|
9
|
+
</header>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Context-Flow Lens — generic pinned-judge prompt (EV-028 / EV-029)
|
|
2
|
+
|
|
3
|
+
> **Track:** Data-Leak Tab — the **context-flow** dimension (agent context-flow,
|
|
4
|
+
> not data-pipeline). Scores over the deterministic **flow-graph** (EV-032) +
|
|
5
|
+
> **expected-flow** (EV-037), never the raw trace.
|
|
6
|
+
> **Pinning (R10):** PINNED model id + **temperature = 0**, recorded. **Mask the
|
|
7
|
+
> output.** Two audits on one flow-graph ⇒ byte-identical verdict.
|
|
8
|
+
> **Parameterized by the loaded subject profile** — flow/slot/tool names come
|
|
9
|
+
> from the flow-graph + expected-flow, NOT from any subject constant in the lens.
|
|
10
|
+
|
|
11
|
+
## Purpose
|
|
12
|
+
|
|
13
|
+
Judge an AGENT's context-flow for two leak families — the same `LEAK_SCHEMA`
|
|
14
|
+
SHAPE the data-pipeline dimensions use (`locus` C2C/UI · `cls` A/B ·
|
|
15
|
+
`formalStructure`), new producers:
|
|
16
|
+
|
|
17
|
+
- **EV-028 — tool-result threading.** A tool result produced at step N that is
|
|
18
|
+
NEVER threaded into a later consumer's context (an `unthreadedOutput` in the
|
|
19
|
+
flow-graph). Is the dropped result one the downstream step NEEDED? → leak
|
|
20
|
+
(`locus: C2C`, `cls: B` producer-not-threaded). Or was it legitimately unused
|
|
21
|
+
(a side-effect / log) → NOT a leak.
|
|
22
|
+
- **EV-029 — sub-agent handoff completeness.** A `lossyHandoff` (an expected-flow
|
|
23
|
+
edge ABSENT from the actual graph): the dispatch brief did not carry the
|
|
24
|
+
context the expected-flow says the child sub-agent needs. A child that runs
|
|
25
|
+
without the context it required → leak (`locus: C2C`, `cls: B`). The
|
|
26
|
+
expected-flow is the source of truth for "what the child NEEDED".
|
|
27
|
+
|
|
28
|
+
> This lens generalizes the v1 data-pipeline SHAPE to agent context-flow — it
|
|
29
|
+
> does NOT rebuild the engine. `flow-graph.ts` makes producers/consumers/edges
|
|
30
|
+
> EXPLICIT; `expected-flow` supplies the diff target; THIS lens adjudicates.
|
|
31
|
+
|
|
32
|
+
## Inputs (supplied by the harness, deterministic)
|
|
33
|
+
|
|
34
|
+
- `flowGraph` — the EV-032 graph for the trace under audit (`nodes` with
|
|
35
|
+
produces/consumes slots · `edges` threaded handoffs · `unthreadedOutputs`).
|
|
36
|
+
- `expectedFlow` — the EV-037 spec (`dispatchToolNames` · expected `edges` ·
|
|
37
|
+
`expectedUiSlots`).
|
|
38
|
+
- `candidates` — the deterministic `contextFlowCandidates` bundle
|
|
39
|
+
(`unthreadedOutputs` = EV-028 candidates · `lossyHandoffs` = EV-029 candidates).
|
|
40
|
+
These are CANDIDATES — the lens decides which are TRUE leaks + their severity.
|
|
41
|
+
|
|
42
|
+
## Method
|
|
43
|
+
|
|
44
|
+
1. **Threading (EV-028).** For EACH `candidates.unthreadedOutputs[]`
|
|
45
|
+
`{node, name, slot}`: read the producing observation's output slot + the
|
|
46
|
+
downstream steps. Decide: was this slot's value REQUIRED by a later step that
|
|
47
|
+
silently re-derived it, guessed, or proceeded without it? → leak. Or a
|
|
48
|
+
legitimate side-effect with no consumer → not a leak. Ground the verdict in
|
|
49
|
+
the specific producer/consumer node names — never speculate.
|
|
50
|
+
2. **Handoff completeness (EV-029).** For EACH `candidates.lossyHandoffs[]`
|
|
51
|
+
`{fromTool, toTool, slot?}`: confirm the expected producer→consumer threading
|
|
52
|
+
is genuinely absent in `flowGraph.edges` (not merely renamed). A dispatch that
|
|
53
|
+
handed a child an INCOMPLETE brief (the expected context never threaded) →
|
|
54
|
+
leak. Cite the dispatch node + the missing slot.
|
|
55
|
+
3. **Severity.** HIGH when the dropped/incomplete context changes the agent's
|
|
56
|
+
action (a wrong send, a hallucinated value, a child that acts on stale
|
|
57
|
+
context). MED/LOW when cosmetic or recoverable. `formalStructure`: `exists`
|
|
58
|
+
when a schema/contract for the handoff is defined but unenforced; `partial`
|
|
59
|
+
when fields are optional; `none` when no handoff contract exists.
|
|
60
|
+
4. **No candidates → no leaks.** A fully-threaded, expectation-meeting graph
|
|
61
|
+
returns an empty `leaks` array (the audit is allowed to find nothing).
|
|
62
|
+
|
|
63
|
+
## Output contract (masked, schema-validated → `LEAK_SCHEMA`, dimension="context-flow")
|
|
64
|
+
|
|
65
|
+
Emit ONE `LEAK_SCHEMA` leak per CONFIRMED context-flow leak:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
dimension: context-flow
|
|
69
|
+
summary: <one-line verdict on the headline context-flow leaks>
|
|
70
|
+
leaks:
|
|
71
|
+
- id: CF-1 # CF-n
|
|
72
|
+
title: <unthreaded result | lossy handoff — named>
|
|
73
|
+
locus: C2C # context lost between steps/components
|
|
74
|
+
cls: B # producer not run / not threaded
|
|
75
|
+
producer: <the node name that should have threaded it>
|
|
76
|
+
whyNotProduced: <dropped result | incomplete dispatch brief>
|
|
77
|
+
formalStructure: none|partial|exists
|
|
78
|
+
severity: HIGH|MED|LOW
|
|
79
|
+
whatsLost: <the slot/context + the downstream step that needed it>
|
|
80
|
+
evidence: <flow-graph node ids + slot, e.g. "n3.draft unthreaded; n7 sendMessage proceeded without it">
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Never fabricate.** If a candidate turns out to be legitimately unused
|
|
84
|
+
(side-effect, log, terminal output), DO NOT emit a leak for it — say so in
|
|
85
|
+
`summary`. The flow-graph is the ground truth; cite node ids + slot names from it.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Data Lens — generic pinned-judge prompt
|
|
2
|
+
|
|
3
|
+
> **Track:** Tab-1 judge rows (checkMethod `trace-cross-ref` on data rows).
|
|
4
|
+
> **Pinning (R10):** PINNED model id + **temperature = 0**, recorded. **Mask the
|
|
5
|
+
> output.** Two audits on one bundle ⇒ byte-identical verdict.
|
|
6
|
+
> **Parameterized by the loaded subject profile** — no subject-specific logic.
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Judges **data correctness** rows that cannot be settled by schema-presence alone:
|
|
11
|
+
faithfulness of a produced artifact to its evidence source, threading of a
|
|
12
|
+
producer's output to its consumer, and the C2C/UI loci where data is produced
|
|
13
|
+
but not drawn. (Schema-shape rows are handled deterministically; this lens is
|
|
14
|
+
only for the `trace-cross-ref` rows the deterministic engine defers.)
|
|
15
|
+
|
|
16
|
+
## Inputs (supplied by the harness)
|
|
17
|
+
|
|
18
|
+
- `criterion` — the single data criterion under judgment (statement +
|
|
19
|
+
passCondition + severity).
|
|
20
|
+
- `runBundle` — the produced artifacts (runMeta / render-input / evidence /
|
|
21
|
+
traces-metadata) to cross-reference.
|
|
22
|
+
|
|
23
|
+
## Method
|
|
24
|
+
|
|
25
|
+
1. Identify the **producer** artifact and the **consumer** surface named in the
|
|
26
|
+
criterion's `passCondition`.
|
|
27
|
+
2. Cross-reference: does the value the producer emitted reach the consumer
|
|
28
|
+
**unaltered and non-empty**? Spot-check 2 concrete values
|
|
29
|
+
(producer-side vs consumer-side) and compare verbatim.
|
|
30
|
+
3. A value that is silently dropped, altered, or re-derived ad hoc (instead of
|
|
31
|
+
threaded from the script-of-record) **FAILS**. An identical, faithfully
|
|
32
|
+
threaded value **PASSES**.
|
|
33
|
+
|
|
34
|
+
## Output contract (masked, schema-validated)
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
criterion: <statement>
|
|
38
|
+
producer: <artifact/field>
|
|
39
|
+
consumer: <surface/field>
|
|
40
|
+
result: pass | fail
|
|
41
|
+
evidence: <the two compared values + their file:locations>
|
|
42
|
+
rationale: <faithful & threaded → pass; dropped/altered/re-derived → fail>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Never fabricate.** If the producer or consumer artifact is absent from the
|
|
46
|
+
bundle, return `result: fail` (a missing producer is a leak, not a pass) with an
|
|
47
|
+
evidence note naming the absent artifact.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Decision Lens — generic pinned-judge prompt
|
|
2
|
+
|
|
3
|
+
> **Track:** Tab-1 judge rows (checkMethod `trajectory-diff` on decision nodes).
|
|
4
|
+
> **Pinning (decision #10 / R10):** run at a PINNED model id + **temperature = 0**.
|
|
5
|
+
> Record the resolved model id + temperature into the scorecard. **Mask the
|
|
6
|
+
> output** (runId / timestamps / abs-paths) so two audits on one bundle produce a
|
|
7
|
+
> byte-identical verdict.
|
|
8
|
+
> **Parameterized by the loaded subject profile** — this lens ships ZERO subject-
|
|
9
|
+
> specific logic; the behavior-tree supplies the expected decisions.
|
|
10
|
+
|
|
11
|
+
## Inputs (supplied by the harness)
|
|
12
|
+
|
|
13
|
+
- `behaviorTree` — the subject's `behavior-tree.yaml` (the golden behavioral spec).
|
|
14
|
+
- `runTrajectory` — the run-bundle's transcript / runMeta / evidence.
|
|
15
|
+
- `node` — the single decision node under judgment (one row per node-scenario).
|
|
16
|
+
|
|
17
|
+
## The generic comparison (specific ↔ generic)
|
|
18
|
+
|
|
19
|
+
At the given behavior-tree node, determine **which scenario the agent was
|
|
20
|
+
actually in** (match the run's tier-0 signals + brief state against each
|
|
21
|
+
scenario's `when`). Then compare:
|
|
22
|
+
|
|
23
|
+
1. **expected-scenario vs observed-scenario** — did the agent correctly identify
|
|
24
|
+
the situation it was in?
|
|
25
|
+
2. **expected-decision vs observed-decision** — given the scenario it was
|
|
26
|
+
actually in, did the agent make the decision the methodology expected
|
|
27
|
+
(`expectedDecision`) and take the expected fork (`expectedFork`)?
|
|
28
|
+
|
|
29
|
+
A decision that reaches the goal via an out-of-order-but-valid path **PASSES**
|
|
30
|
+
(trajectory judging rewards goal-reaching, not rote path-matching). A decision
|
|
31
|
+
that takes a fork the scenario did not warrant **FAILS**.
|
|
32
|
+
|
|
33
|
+
## Output contract (masked, schema-validated)
|
|
34
|
+
|
|
35
|
+
```yaml
|
|
36
|
+
nodeId: <string>
|
|
37
|
+
observedScenario: <scenarioId | "unmatched">
|
|
38
|
+
expectedDecision: <verbatim from the node>
|
|
39
|
+
observedDecision: <what the agent actually did, quoted from the transcript>
|
|
40
|
+
result: pass | fail
|
|
41
|
+
evidence: <transcript quote / runMeta field proving the observed decision>
|
|
42
|
+
rationale: <why pass/fail — cite the scenario's rationale>
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Never fabricate a verdict.** If the transcript does not contain enough to
|
|
46
|
+
identify the observed decision, return `result: fail` with
|
|
47
|
+
`observedScenario: unmatched` and an evidence note — an unobservable decision is
|
|
48
|
+
a determinism defect, not a pass.
|
package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/methodology-critic-lens.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Methodology-Critic Lens — Tab-4 (FITNESS, not conformance)
|
|
2
|
+
|
|
3
|
+
> **Track:** Tab-4 — the §1.5 family. **Advisory, NOT pass/fail** (decision #5
|
|
4
|
+
> keeps GATE and TREND/fitness separate). A methodology can score 100%
|
|
5
|
+
> conformance (Tab-1) and still be the wrong/inefficient choice; this lens
|
|
6
|
+
> answers that second question independently.
|
|
7
|
+
> **Pinning (R10):** PINNED model id + **temperature = 0**, recorded. **Mask the
|
|
8
|
+
> output.**
|
|
9
|
+
> **Parameterized by the loaded subject profile** — the subject's behavior-tree +
|
|
10
|
+
> MR rubric drive the critique; no subject-specific logic in the lens.
|
|
11
|
+
|
|
12
|
+
## Inputs (supplied by the harness / methodology-review.ts)
|
|
13
|
+
|
|
14
|
+
- `behaviorTree` — the subject's decision-tree.
|
|
15
|
+
- `methodologyRubric` — the subject's `methodology-review.yaml` (MR-1..9).
|
|
16
|
+
- `runTrajectory` — the run's trajectory + findings + data-pipeline trace.
|
|
17
|
+
|
|
18
|
+
## The rubric (run each item; emit a finding, ranked)
|
|
19
|
+
|
|
20
|
+
| MR | Concern | What to interrogate |
|
|
21
|
+
|----|---------|---------------------|
|
|
22
|
+
| MR-1 | Decision-tree fitness | Does each fork earn its place? Flag **dead / rarely-useful / mis-placed** forks vs what the run needed. |
|
|
23
|
+
| MR-2 | Data-flow efficiency | Redundant/recomputed transforms; stages that could collapse/parallelize; artifacts produced-and-never-consumed. |
|
|
24
|
+
| MR-3 | Methodology fitness given findings | Was depth/breadth (deep-read tier · analyzer count · sampling) over- or under-scaled for what the findings turned out to be? |
|
|
25
|
+
| MR-4 | Sequence soundness | Reactive one-at-a-time crash patching, re-dispatch loops, redo-after-failure = the order/contract is wrong, not just the code. |
|
|
26
|
+
| MR-5 | Process self-feedback | Concrete, **impact-ranked** proposals: collapse a stage, drop a fork, re-order, pin a choice. |
|
|
27
|
+
| MR-6 | Followed ≠ Right | Explicitly separate conformance (Tab-1) from fitness (here). |
|
|
28
|
+
| MR-7 | Signal/failure-mode selection | Was the primary signal grounded in the RIGHT evidence tier (deep-read-evidenced WHAT, not a frequency artifact)? Highest-leverage. |
|
|
29
|
+
| MR-8 | Confidence derivation | Does the confidence number FOLLOW from the LLM-trace evidence + sample representativeness? Catch asserted-not-earned confidence on imbalanced samples. |
|
|
30
|
+
| MR-9 | Focus determination → search-shaping | Expected-focus vs observed-focus; a wrong/early focus mis-steers every downstream trace selection. |
|
|
31
|
+
|
|
32
|
+
## The generic engine (MR-7/8/9 generalized)
|
|
33
|
+
|
|
34
|
+
At every behavior-tree node, compare **expected-decision vs observed-decision**
|
|
35
|
+
and **expected-scenario vs observed-scenario**. Diagnostics' signal-selection /
|
|
36
|
+
confidence / focus are the concrete instances; for ANY audited agent, judge its
|
|
37
|
+
sub-decisions the same way: *given the scenario it was actually in, did the agent
|
|
38
|
+
make the decision the methodology expected?*
|
|
39
|
+
|
|
40
|
+
## Output contract (masked)
|
|
41
|
+
|
|
42
|
+
```yaml
|
|
43
|
+
findings:
|
|
44
|
+
- mr: MR-7
|
|
45
|
+
verdict: <fit | mis-fit | inefficient>
|
|
46
|
+
observation: <what the run actually did at this methodology decision>
|
|
47
|
+
recommendation: <concrete rearrange/improve proposal>
|
|
48
|
+
impactRank: <1=highest> # ranked self-feedback (MR-5)
|
|
49
|
+
advisory: true # NEVER gates the run
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
This lens **never** emits a pass/fail that feeds the GATE. It is process
|
|
53
|
+
self-feedback only.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Trajectory Lens — generic pinned-judge prompt
|
|
2
|
+
|
|
3
|
+
> **Track:** Tab-1 judge rows (checkMethod `trajectory-diff` on operational-
|
|
4
|
+
> deviation rows — R3).
|
|
5
|
+
> **Pinning (R10):** PINNED model id + **temperature = 0**, recorded. **Mask the
|
|
6
|
+
> output.** Two audits on one bundle ⇒ byte-identical verdict.
|
|
7
|
+
> **Parameterized by the loaded subject profile** — no subject-specific logic.
|
|
8
|
+
|
|
9
|
+
## Purpose
|
|
10
|
+
|
|
11
|
+
Judges **operational deviation** (expected-vs-observed trajectory): which input →
|
|
12
|
+
which path → which fork at known decision points. This is the R3/R9 family — the
|
|
13
|
+
judge is the only thing in the loop for these rows, reading the transcript
|
|
14
|
+
against the behavior-tree.
|
|
15
|
+
|
|
16
|
+
## Inputs (supplied by the harness)
|
|
17
|
+
|
|
18
|
+
- `behaviorTree` — the golden state-transition spec.
|
|
19
|
+
- `runTrajectory` — the transcript + runMeta stamps.
|
|
20
|
+
- `criterion` — the operational-deviation row under judgment.
|
|
21
|
+
|
|
22
|
+
## Method
|
|
23
|
+
|
|
24
|
+
1. Reconstruct the **observed path** through the behavior-tree from the
|
|
25
|
+
transcript (node → fork → node …).
|
|
26
|
+
2. Compare against the **expected path** for the scenario the run was in.
|
|
27
|
+
3. **Out-of-order tool sequences that still reach the goal PASS** — trajectory
|
|
28
|
+
judging is about goal-reaching and decision-point correctness, not literal
|
|
29
|
+
ordering. Skipping a *mandatory* step, taking an unwarranted fork, or a
|
|
30
|
+
reactive re-dispatch loop (the same failure patched one-at-a-time) **FAILS**.
|
|
31
|
+
|
|
32
|
+
## Output contract (masked, schema-validated)
|
|
33
|
+
|
|
34
|
+
```yaml
|
|
35
|
+
criterion: <statement>
|
|
36
|
+
observedPath: [<nodeId>, <fork>, ...]
|
|
37
|
+
expectedPath: [<nodeId>, <fork>, ...]
|
|
38
|
+
result: pass | fail
|
|
39
|
+
deviation: <the first divergence point, or "none">
|
|
40
|
+
evidence: <transcript quotes proving the observed path>
|
|
41
|
+
rationale: <goal reached via valid path → pass; mandatory-skip / unwarranted-fork → fail>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Never fabricate.** An unobservable trajectory is a determinism defect → `fail`.
|
package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/build-review-interface.md
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# build-review-interface — a browser annotation UI to collect human labels
|
|
2
|
+
|
|
3
|
+
> **Source:** absorbed from `mutagent-system/.memory/features/evals-skills-source/skills/build-review-interface/SKILL.md`.
|
|
4
|
+
> **Loaded by:** `*review` (EV-045), rendered by `scripts/build-review-ui.ts`. Load on demand.
|
|
5
|
+
> **Sibling refs:** `error-analysis.md` (what to look for) · `validate-evaluator.md` (the labels feed TPR/TNR).
|
|
6
|
+
|
|
7
|
+
Build an HTML page that loads traces from a data source, shows ONE trace at a time with Pass/Fail
|
|
8
|
+
buttons, a notes field, and Next/Previous navigation, and persists labels to a local file. The
|
|
9
|
+
human labels it collects are the ground truth `*validate` calibrates the judge against
|
|
10
|
+
(`HumanLabel`, `scripts/contracts/validation.ts`).
|
|
11
|
+
|
|
12
|
+
## How this maps onto the evaluator (the Hybrid, EV-045)
|
|
13
|
+
|
|
14
|
+
| Piece | Type | Who |
|
|
15
|
+
|-------|------|-----|
|
|
16
|
+
| **Render the annotation HTML + labels persistence** | Code-only (deterministic template, like `render-report.ts`) | `scripts/build-review-ui.ts` |
|
|
17
|
+
| **A human labels traces in the browser** | HITL gate | a domain expert |
|
|
18
|
+
|
|
19
|
+
**Autonomy caveat (afkloop):** in the autonomous loop NO human labels in-browser. The UI is BUILT +
|
|
20
|
+
deterministically smoke-tested (DOM structure asserted) and surfaced as an artifact; `*validate`
|
|
21
|
+
proceeds on whatever labels exist and marks criteria with < ~60 labels `unvalidated` (bias-corrected,
|
|
22
|
+
never blocking on a human — see `validate-evaluator.md`).
|
|
23
|
+
|
|
24
|
+
## Data display (render in the most human-readable form for the domain)
|
|
25
|
+
- **Native format**: emails look like emails, markdown rendered, code highlighted, JSON
|
|
26
|
+
pretty-printed + collapsible, tables as tables, URLs clickable.
|
|
27
|
+
- **Collapse repetitive elements** (a shared system prompt → a `<details>` toggle).
|
|
28
|
+
- **Extract + surface key metadata** (subject id, channel, session id) as a prominent header/badge.
|
|
29
|
+
- **Color-code by role/status** (left-border colors for user / assistant / tool / system).
|
|
30
|
+
- **Group related elements** (a tool call + its response visually linked).
|
|
31
|
+
- **Highlight what matters** (bold prices/dates/names; hierarchy via size + spacing).
|
|
32
|
+
- **Show the full trace** — all intermediate steps accessible, collapsed by default.
|
|
33
|
+
- **Sanitize rendered content** — strip raw HTML from LLM outputs before rendering; disable images
|
|
34
|
+
in rendered markdown (tracking-pixel risk).
|
|
35
|
+
|
|
36
|
+
## Feedback collection (trace-level, not span-level)
|
|
37
|
+
- Binary **Pass / Fail** buttons as the primary action (visually distinct: color + size).
|
|
38
|
+
- Free-text **notes** field.
|
|
39
|
+
- **Defer** button for uncertain cases.
|
|
40
|
+
- **Auto-save on every action** — labels persist without an explicit save.
|
|
41
|
+
- (Later, once failure categories exist, predefined failure-mode tags can be added as checkboxes —
|
|
42
|
+
NOT in the initial build.)
|
|
43
|
+
|
|
44
|
+
## Navigation & status
|
|
45
|
+
Next/Previous (buttons + arrow keys) · trace counter ("12 of 87 remaining") · jump-to-id · labeled
|
|
46
|
+
vs unlabeled counts.
|
|
47
|
+
|
|
48
|
+
## Keyboard shortcuts
|
|
49
|
+
```
|
|
50
|
+
Arrow keys = Navigate 1 = Pass 2 = Fail
|
|
51
|
+
D = Defer U = Undo Cmd+S = Save Cmd+Enter = Save and next
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Selecting traces to load
|
|
55
|
+
The app accepts traces from any source; keep sampling OUTSIDE the app in `scripts/sample-traces.ts`
|
|
56
|
+
(start with the balanced ✓/✗ mix). The app is a pure renderer + label collector.
|
|
57
|
+
|
|
58
|
+
## Testing
|
|
59
|
+
After building, verify with Playwright (the human-run path):
|
|
60
|
+
- **Visual review** — screenshots with representative data: visual hierarchy clear? all data in
|
|
61
|
+
native format (no raw JSON blobs / unrendered markdown)? professional + clean? responsive?
|
|
62
|
+
- **Functional test** — load app → click Pass (label saved) → click Fail + note (both saved) →
|
|
63
|
+
Defer (recorded) → navigate (buttons + keyboard) → counter updates → reload → labels persist →
|
|
64
|
+
expand collapsed sections → every keyboard shortcut fires its action.
|
|
65
|
+
|
|
66
|
+
In this skill the **deterministic DOM-structure smoke test** (`tests/build-review-ui.test.ts`)
|
|
67
|
+
asserts the controls + handlers + persistence shape exist without a browser dep, so the gate stays
|
|
68
|
+
austere; the Playwright workflow above is the human-run visual/functional verification.
|
|
69
|
+
|
|
70
|
+
## Design checklist
|
|
71
|
+
- [ ] Same layout, controls, terminology on every trace
|
|
72
|
+
- [ ] Pass/Fail buttons visually distinct
|
|
73
|
+
- [ ] Keyboard shortcuts work for all primary actions
|
|
74
|
+
- [ ] Full trace accessible even when sections are collapsed
|
|
75
|
+
- [ ] Labels persist automatically (no explicit save)
|
|
76
|
+
- [ ] Trace-level annotation as the default
|
|
77
|
+
- [ ] All data rendered in its native format
|
|
78
|
+
|
|
79
|
+
## Anti-patterns
|
|
80
|
+
- **Span-level annotation by default** — judge the whole trace.
|
|
81
|
+
- **Explicit-save-only** — auto-save or labels get lost.
|
|
82
|
+
- **Raw unrendered data** (JSON blobs, unescaped LLM HTML) — render native + sanitize.
|
|
83
|
+
- **Sampling logic inside the app** — keep it in `sample-traces.ts` (separable, testable).
|