@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,57 @@
|
|
|
1
|
+
# Install Paths — Per-Platform Reference
|
|
2
|
+
|
|
3
|
+
> Per-platform install locations for the `mutagent-diagnostics` skill binding and agent files.
|
|
4
|
+
> Used by `scripts/cli/init.ts` (`pnpx @mutagent/diagnostics init`) to determine where to
|
|
5
|
+
> install on each detected platform.
|
|
6
|
+
|
|
7
|
+
## Detection + Install Table
|
|
8
|
+
|
|
9
|
+
| Platform | Detection marker | Skill path | Agents path | Binding format |
|
|
10
|
+
|---|---|---|---|---|
|
|
11
|
+
| Claude Code | `~/.claude/` exists | `~/.claude/skills/mutagent-diagnostics/` | `~/.claude/agents/` | `.md` |
|
|
12
|
+
| Codex | `~/.codex/` exists | `~/.codex/skills/mutagent-diagnostics/` | `~/.codex/agents/` | `.toml` |
|
|
13
|
+
| Cursor | `.cursor/` in CWD exists | `.cursor/rules/` (project-scoped) | n/a (no agent primitive yet) | `.mdc` |
|
|
14
|
+
|
|
15
|
+
## Notes
|
|
16
|
+
|
|
17
|
+
### Claude Code
|
|
18
|
+
|
|
19
|
+
- Detection: `~/.claude/` directory presence (filesystem probe — not env var).
|
|
20
|
+
- Skill: full skill directory copied to `~/.claude/skills/mutagent-diagnostics/`.
|
|
21
|
+
- Agents: `assets/agents/*.md` symlinked (or copied) to `~/.claude/agents/`.
|
|
22
|
+
Use `scripts/cli/install-agents.ts --scope=user` for user-scope install.
|
|
23
|
+
- **Session restart required** after install: the `subagent_type` registry caches at boot.
|
|
24
|
+
|
|
25
|
+
### Codex
|
|
26
|
+
|
|
27
|
+
- Detection: `~/.codex/` directory presence.
|
|
28
|
+
- Skill: full skill directory copied to `~/.codex/skills/mutagent-diagnostics/`.
|
|
29
|
+
- Agents: `assets/agents/*.md` **transcoded** `.md → .toml` (YAML frontmatter → `[agent]` TOML block)
|
|
30
|
+
and written to `~/.codex/agents/`.
|
|
31
|
+
Use `scripts/cli/install-agents.ts --transcode-only --to codex <input.md> <output.toml>`.
|
|
32
|
+
- See `references/source-platforms/codex.md` for the full TOML format spec.
|
|
33
|
+
|
|
34
|
+
### Cursor
|
|
35
|
+
|
|
36
|
+
- Detection: `.cursor/` directory in the **current working directory** (project-scoped; no
|
|
37
|
+
user-global `~/.cursor/` detection implemented in v0.1).
|
|
38
|
+
- Skill: skill rules copied to `.cursor/rules/mutagent-diagnostics.mdc` (project-scoped).
|
|
39
|
+
- Agents: **no agent primitive** on Cursor yet.
|
|
40
|
+
- See `references/target-platforms/local-cursor.md` (Binding Surface & Install Path) for current Cursor binding state and TODO. (Cursor is an apply target, not a trace source — PR-016.)
|
|
41
|
+
|
|
42
|
+
## Path resolution rules
|
|
43
|
+
|
|
44
|
+
- All `~/` prefixes resolve via `os.homedir()` at runtime — never hardcoded `~` expansion.
|
|
45
|
+
- CWD-relative paths (Cursor) resolve from `process.cwd()` at install time.
|
|
46
|
+
- Idempotent: re-running `pnpx @mutagent/diagnostics init` on an already-installed path is safe.
|
|
47
|
+
Existing files are not clobbered unless `--force` is passed.
|
|
48
|
+
|
|
49
|
+
## Per-platform trigger / activation
|
|
50
|
+
|
|
51
|
+
| Platform | How to invoke mutagent-diagnostics after install |
|
|
52
|
+
|---|---|
|
|
53
|
+
| Claude Code | Slash command `/mutagent-diagnostics` OR natural language "diagnose my agents" |
|
|
54
|
+
| Codex | Invoke agent by name from Codex session (agent primitive in `~/.codex/agents/`) |
|
|
55
|
+
| Cursor | `.mdc` rule injected as a Cursor Background Agents rule (TBD — see `target-platforms/local-cursor.md`) |
|
|
56
|
+
|
|
57
|
+
See also: `SKILL.md §1 — Triggers` for the canonical natural-language activation list.
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# Langfuse — Source Platform Reference
|
|
2
|
+
|
|
3
|
+
> **POST-FLIP (UniTF):** the diagnostics skill no longer fetches or normalizes
|
|
4
|
+
> Langfuse traces itself. Fetch + normalize now live in `@mutagent/tools` and run
|
|
5
|
+
> UPSTREAM via `mutagent-cli trace fetch --platform langfuse …`, which emits a
|
|
6
|
+
> UniTF JSONL + `manifest.json`. The skill READS that handover via
|
|
7
|
+
> `scripts/normalize/read-unitf.ts` (Step 3.7). This doc is now reference material
|
|
8
|
+
> for **shaping the upstream CLI query** (filter coverage, quirks, CLI-vs-REST).
|
|
9
|
+
> Run `mutagent-cli trace --help` for the fetch surface.
|
|
10
|
+
|
|
11
|
+
> CLI-first per PR-001 and OQ-1 (REST fallback only when the CLI cannot express
|
|
12
|
+
> the operation — see CLI vs REST below).
|
|
13
|
+
> **Official CLI docs: https://langfuse.com/docs/api-and-data-platform/features/cli**
|
|
14
|
+
> Upstream docs: https://langfuse.com/docs
|
|
15
|
+
> Public API reference: https://api.reference.langfuse.com
|
|
16
|
+
|
|
17
|
+
## Why a CLI (and why clients will have one)
|
|
18
|
+
|
|
19
|
+
Langfuse CLIs are the **primary way sources and targets interact with + update
|
|
20
|
+
trace data** in a Langfuse deployment; the **REST API is the fallback** for
|
|
21
|
+
operations the CLI cannot express. Clients running diagnostics will most often
|
|
22
|
+
have either the `langfuse` CLI installed or Langfuse-as-platform reachable, so
|
|
23
|
+
the skill's fetch layer is CLI-first (`langfuse traces list --json`) and degrades
|
|
24
|
+
to the documented REST endpoints when the CLI is absent or a filter is
|
|
25
|
+
CLI-unsupported. The skill must stay compatible with both surfaces.
|
|
26
|
+
|
|
27
|
+
## Install
|
|
28
|
+
|
|
29
|
+
> Official CLI docs: https://langfuse.com/docs/api-and-data-platform/features/cli
|
|
30
|
+
>
|
|
31
|
+
> During onboarding the skill checks whether the `langfuse` CLI is on PATH
|
|
32
|
+
> (`scripts/setup/detect.ts --cli langfuse`). If it is MISSING, onboarding shows
|
|
33
|
+
> this docs link + the install command below and **asks for explicit approval
|
|
34
|
+
> before installing** (approve-to-install gate, PR-021 — see
|
|
35
|
+
> `references/workflows/onboarding.md` Phase 2). It NEVER auto-installs; on decline
|
|
36
|
+
> the skill continues via the REST fallback documented under "CLI vs REST" below.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install langfuse # Python SDK + CLI
|
|
40
|
+
# OR
|
|
41
|
+
npm install -g langfuse
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Auth
|
|
45
|
+
|
|
46
|
+
Set in `.mutagentrc` (or the environment — the skill reads them at runtime,
|
|
47
|
+
never hardcoded):
|
|
48
|
+
```
|
|
49
|
+
LANGFUSE_SECRET_KEY=sk-...
|
|
50
|
+
LANGFUSE_PUBLIC_KEY=pk-...
|
|
51
|
+
LANGFUSE_HOST=https://cloud.langfuse.com # or self-hosted URL (local dev: http://localhost:3033)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## CLI Operation Manual
|
|
55
|
+
|
|
56
|
+
### List traces (with filters)
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
langfuse traces list \
|
|
60
|
+
--from "7daysAgo" \
|
|
61
|
+
--to "now" \
|
|
62
|
+
--agent-id "search-agent" \
|
|
63
|
+
--has-feedback \
|
|
64
|
+
--score-below 3 \
|
|
65
|
+
--has-error \
|
|
66
|
+
--limit 100 \
|
|
67
|
+
--json
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> POST-FLIP: the arg-builder + REST pager that used to live in the skill
|
|
71
|
+
> (`scripts/fetch/langfuse.ts`) were REMOVED. The upstream `mutagent-cli trace
|
|
72
|
+
> fetch --platform langfuse` (in `@mutagent/tools`) now owns these flags and the
|
|
73
|
+
> CLI-vs-REST fallback; the flags above document the query surface it accepts.
|
|
74
|
+
|
|
75
|
+
### Fetch single trace (with observations)
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
langfuse traces get --trace-id tr_abc123 --json
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### List scores (for scale auto-discovery)
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
langfuse scores list --limit 100 --json
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Filter by skill tag
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
langfuse traces list --tag "skill:mutagent-diagnostics" --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Filter-Coverage Matrix — what we can ACTUALLY filter on
|
|
96
|
+
|
|
97
|
+
> **Operator priority (Wave-5.1).** Empirically verified 2026-06-01 against a
|
|
98
|
+
> live local Langfuse stack (docker-compose, `:3033`) using the public REST API
|
|
99
|
+
> `GET /api/public/traces`. The CLI flags above are sugar over these same REST
|
|
100
|
+
> filters; an operation is only as reliable as its underlying REST/field support.
|
|
101
|
+
>
|
|
102
|
+
> **KEY FINDING — Langfuse has NO native "agent ID".** There is no first-class
|
|
103
|
+
> agent identifier on a trace. The skill approximates an agent by:
|
|
104
|
+
> `trace.name` (the closest proxy — exact-match filterable), `tags`
|
|
105
|
+
> (e.g. `skill:<name>`, `host:<runtime>`), or `metadata.*` (NOT server-side
|
|
106
|
+
> filterable — must post-filter client-side). Plan diagnostics scoping around
|
|
107
|
+
> `name` + `tags`, not an agent-ID.
|
|
108
|
+
|
|
109
|
+
| Operation (filter on…) | Supported? | Via which field | REST param (`/api/public/traces`) | CLI flag | Notes |
|
|
110
|
+
|---|---|---|---|---|---|
|
|
111
|
+
| Agent identity | ⚠️ proxy only | `trace.name` (exact) **or** `tags` | `name=` / `tags=` | `--agent-id`* / `--tag` | No native agent-ID; `--agent-id` maps to a `name`/`tag` proxy. |
|
|
112
|
+
| Trace name | ✅ yes | `trace.name` | `name=` (EXACT match) | `--agent-id`* | `name=probe` → hit; `name=prob` → 0. No prefix/substring. |
|
|
113
|
+
| Tags | ✅ yes | `trace.tags[]` | `tags=` | `--tag` | Matches traces carrying the tag (`skill:mutagent-diagnostics` → 3). |
|
|
114
|
+
| Metadata | ❌ no (server) | `trace.metadata.*` | — (ignored) | — | `metadata=` is silently ignored — returns ALL. Post-filter client-side. |
|
|
115
|
+
| User ID | ✅ yes | `trace.userId` | `userId=` | — | Native column. `userId=` filters server-side (often null in our traces). |
|
|
116
|
+
| Session ID | ✅ yes | `trace.sessionId` | `sessionId=` | `--session-id` | Exact match (`sessionId=probe-…` → 1). |
|
|
117
|
+
| Time window | ✅ yes | `trace.timestamp` | `fromTimestamp=` / `toTimestamp=` | `--from` / `--to` | ISO8601 server-side; CLI also accepts relative (`7daysAgo`). |
|
|
118
|
+
| Environment | ✅ yes | `trace.environment` | `environment=` | — | Native column (`default`). |
|
|
119
|
+
| Release / Version | ✅ yes | `trace.release` / `.version` | `release=` / `version=` | — | Native columns. |
|
|
120
|
+
| Order | ✅ yes | any sortable column | `orderBy=timestamp.desc` | — | e.g. `timestamp.desc`. |
|
|
121
|
+
| **Score value / threshold** | ❌ NOT on traces-list | — | — (ignored on `/traces`) | `--score-below`† | `scoreValue=`/`minScore=` are IGNORED by `/api/public/traces`. Use `/api/public/scores` then join, OR client-side post-filter on the embedded `scores[]`. |
|
|
122
|
+
| **Error / level=ERROR** | ❌ NOT on traces-list | observation `.level` | — (ignored on `/traces`) | `--has-error`† | `level=`/`hasError=` are IGNORED by `/api/public/traces`. Use `GET /api/public/observations?level=ERROR` then join to traces, OR client-side post-filter. |
|
|
123
|
+
| **Has-feedback** | ⚠️ derived | embedded `scores[]` | — | `--has-feedback`† | No native traces-list param. Derived client-side: `trace.scores.length > 0` (this is what `normalizeLangfuseTrace` does). |
|
|
124
|
+
|
|
125
|
+
`*` `--agent-id` is a convenience flag in the skill's arg-builder; it has no
|
|
126
|
+
native Langfuse equivalent — it routes to a `name`/`tag` proxy filter.
|
|
127
|
+
`†` `--score-below` / `--has-error` / `--has-feedback` are CLI conveniences. They
|
|
128
|
+
are NOT supported as native `/api/public/traces` query params: the traces-list
|
|
129
|
+
endpoint silently ignores unknown params (returns the full set). Where the CLI
|
|
130
|
+
implements them it does so via the scores/observations endpoints or by
|
|
131
|
+
client-side post-filtering. The skill's tier0 census
|
|
132
|
+
(`scripts/tier0/langfuse.ts`) computes error/feedback/low-score rates
|
|
133
|
+
CLIENT-SIDE from the normalized `TraceMetadata`, so coverage does not depend on
|
|
134
|
+
server-side support for these three.
|
|
135
|
+
|
|
136
|
+
### Semantic search
|
|
137
|
+
|
|
138
|
+
- Semantic / free-text search across trace content: **NOT supported.**
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## CLI vs REST — operational reality (Wave-5.1)
|
|
143
|
+
|
|
144
|
+
| Need | CLI (`langfuse …`) | REST fallback | Skill behavior |
|
|
145
|
+
|---|---|---|---|
|
|
146
|
+
| List traces in a window | `traces list --from … --json` | `GET /api/public/traces?fromTimestamp=…` | `mutagent-cli trace fetch --platform langfuse` (upstream; CLI-first, REST fallback when the `langfuse` CLI is absent). |
|
|
147
|
+
| Single trace + observations | `traces get --trace-id … --json` | `GET /api/public/traces/{id}` | upstream CLI fetch → UniTF; the skill reads the projected trace. |
|
|
148
|
+
| Error filtering | `--has-error` (CLI sugar) | `GET /api/public/observations?level=ERROR` | tier0 derives `hasError` client-side from observations. |
|
|
149
|
+
| Score / low-score filtering | `--score-below N` (CLI sugar) | `GET /api/public/scores` + join | tier0 derives low-score client-side from embedded `scores[]`. |
|
|
150
|
+
| Seeding test traces | — | `POST /api/public/ingestion` (async worker) | T2 integration seeds SYNTHETIC traces this way (NO client data). |
|
|
151
|
+
|
|
152
|
+
The fetch→normalize half of this chain (and its live REST-backed verification)
|
|
153
|
+
now lives in `@mutagent/tools`; the skill consumes the resulting UniTF. Any
|
|
154
|
+
operation the CLI cannot express (score/level/metadata server-side filtering)
|
|
155
|
+
falls back to REST or client-side post-filtering as noted above — handled
|
|
156
|
+
upstream by `mutagent-cli trace fetch`, not by the skill.
|
|
157
|
+
|
|
158
|
+
> Note: the internal `.claude/skills/langfuse-cli/` toolkit is a benchmark
|
|
159
|
+
> cross-verification tool for dev use — it is NOT this skill's source/target
|
|
160
|
+
> adapter. The source/target interaction surface is the public `langfuse` CLI
|
|
161
|
+
> (CLI-first) + the public REST API (fallback).
|
|
162
|
+
|
|
163
|
+
## Normalization (moved upstream)
|
|
164
|
+
|
|
165
|
+
Langfuse-record → UniTF normalization is owned by the `@mutagent/tools` langfuse
|
|
166
|
+
adapter and produced by `mutagent-cli trace fetch --platform langfuse --export
|
|
167
|
+
<traces.jsonl>`. Inside the skill there is a SINGLE platform-agnostic read path:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
# Read the handed-over UniTF JSONL (+ manifest) → TraceMetadata[] + EntityContext:
|
|
171
|
+
bun scripts/cli/run.sh scripts/normalize/read-unitf.ts \
|
|
172
|
+
--in <traces.jsonl> --manifest <manifest.json> \
|
|
173
|
+
--out-metadata /tmp/traces-metadata.json --out-entity /tmp/entity-context.json
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Reader: `scripts/normalize/read-unitf.ts` (+ `unitf-adapter.ts`). The per-platform
|
|
177
|
+
Langfuse normalizer + its live round-trip verification now live in
|
|
178
|
+
`@mutagent/tools`.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Local JSONL — Source Platform Reference
|
|
2
|
+
|
|
3
|
+
> For `.jsonl` / `.ndjson` trace files on the local filesystem.
|
|
4
|
+
> No CLI needed — pure file reads.
|
|
5
|
+
>
|
|
6
|
+
> The ensure-cli gate (PR-021 — `references/workflows/onboarding.md` Phase 2)
|
|
7
|
+
> reports `status: not-required` for this source: there is no platform CLI to
|
|
8
|
+
> install. Filtering is client-side via `grep`/`jq` (see below). Tooling docs:
|
|
9
|
+
> `jq` — https://jqlang.github.io/jq/manual/ (optional, for advanced filtering).
|
|
10
|
+
|
|
11
|
+
## Format
|
|
12
|
+
|
|
13
|
+
One JSON object per line. Flexible schema — unknown fields are ignored.
|
|
14
|
+
|
|
15
|
+
Minimal required fields for a trace:
|
|
16
|
+
```json
|
|
17
|
+
{"id": "tr_001", "messages": [...], "startTime": "2026-05-27T10:00:00Z"}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Fetching traces (filter examples)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# All traces with errors:
|
|
24
|
+
grep '"hasError":true' traces.jsonl
|
|
25
|
+
|
|
26
|
+
# By agent ID:
|
|
27
|
+
grep '"agentId":"search-agent"' traces.jsonl
|
|
28
|
+
|
|
29
|
+
# By time window (using jq):
|
|
30
|
+
jq 'select(.startTime >= "2026-05-20")' traces.jsonl
|
|
31
|
+
|
|
32
|
+
# With feedback:
|
|
33
|
+
grep '"hasFeedback":true' traces.jsonl
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Filter/Search Support
|
|
37
|
+
|
|
38
|
+
See `references/filter-search-matrix.md`. All filtering is post-read client-side. Full grep/jq support on all dimensions. Semantic search not supported.
|
|
39
|
+
|
|
40
|
+
## Normalization (moved upstream — UniTF flip)
|
|
41
|
+
|
|
42
|
+
The skill no longer normalizes local NDJSON itself. `mutagent-cli trace fetch
|
|
43
|
+
--platform local-ndjson --export <traces.jsonl>` (in `@mutagent/tools`) reads the
|
|
44
|
+
raw file and emits a UniTF JSONL + `manifest.json`; the skill READS that handover
|
|
45
|
+
via the single platform-agnostic reader:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
bun scripts/cli/run.sh scripts/normalize/read-unitf.ts \
|
|
49
|
+
--in <traces.jsonl> --manifest <manifest.json> \
|
|
50
|
+
--out-metadata /tmp/traces-metadata.json --out-entity /tmp/entity-context.json
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Reader: `scripts/normalize/read-unitf.ts` (+ `unitf-adapter.ts`). The bad-line
|
|
54
|
+
tolerance (blank lines skipped; malformed lines counted-but-visible, F-S7) is
|
|
55
|
+
preserved by the reader. Run `mutagent-cli trace --help` for the fetch surface.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# OpenObserve — Source Platform Reference
|
|
2
|
+
|
|
3
|
+
> **POST-FLIP (UniTF):** the diagnostics skill does not fetch or normalize
|
|
4
|
+
> OpenObserve traces itself. Fetch + normalize live in `@mutagent/tools` and run
|
|
5
|
+
> UPSTREAM via `mutagent-cli trace fetch --platform openobserve …`, which emits a
|
|
6
|
+
> UniTF JSONL + `manifest.json`. The skill READS that handover via
|
|
7
|
+
> `scripts/normalize/read-unitf.ts` (Step 3.7). This doc is reference material for
|
|
8
|
+
> **shaping the upstream CLI query** (auth, endpoints, quirks). Run
|
|
9
|
+
> `mutagent-cli trace --help` for the fetch surface.
|
|
10
|
+
>
|
|
11
|
+
> Transport = **REST** (HTTP Basic auth). OpenObserve stores OpenTelemetry spans,
|
|
12
|
+
> so the adapter maps OpenObserve span rows → the shared OTel span shape and reuses
|
|
13
|
+
> the otel normalizer (`sourcePlatform: "openobserve"`). Upstream contract:
|
|
14
|
+
> `mutagent-tools/references/adapter-research/openobserve.md` (cited sources O1–O8).
|
|
15
|
+
|
|
16
|
+
## Access patterns
|
|
17
|
+
|
|
18
|
+
OpenObserve exposes two complementary trace endpoints; the adapter uses SQL search:
|
|
19
|
+
|
|
20
|
+
| Endpoint | Use |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `GET /api/{org}/{stream}/traces/latest` | list recent trace summaries by window (root span only) |
|
|
23
|
+
| `POST /api/{org}/_search` | full SQL over spans — the adapter's primary path (window-scoped `SELECT * FROM "{stream}"`) |
|
|
24
|
+
|
|
25
|
+
The adapter runs a single window-scoped `_search`, pages by `from`/`size`, and
|
|
26
|
+
groups the returned span rows by `trace_id` into full `UnifiedTrace`s — no per-trace
|
|
27
|
+
N+1 request storm.
|
|
28
|
+
|
|
29
|
+
## Auth
|
|
30
|
+
|
|
31
|
+
HTTP Basic auth: `Authorization: Basic base64(email:password)`. Set env vars (read
|
|
32
|
+
at runtime, never hardcoded — the CLI passes only env-var NAME refs, not raw secrets):
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
OPENOBSERVE_URL=http://localhost:5080 # self-hosted; cloud: https://api.openobserve.ai
|
|
36
|
+
OPENOBSERVE_ORG=default # org id path segment (default "default")
|
|
37
|
+
OPENOBSERVE_STREAM=default # trace stream name (default "default")
|
|
38
|
+
# EITHER email + password (→ Basic base64(email:password)):
|
|
39
|
+
OPENOBSERVE_EMAIL=you@example.com
|
|
40
|
+
OPENOBSERVE_PASSWORD=...
|
|
41
|
+
# OR a single pre-issued token (cloud). If it starts with "Basic "/"Bearer " it is
|
|
42
|
+
# sent verbatim; otherwise it is sent as `Basic <token>`:
|
|
43
|
+
OPENOBSERVE_AUTH=...
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
`--endpoint-ref` / `--credential-ref` override the URL / auth env-var NAMES.
|
|
47
|
+
|
|
48
|
+
## CLI Operation Manual
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Size the window (cheap)
|
|
52
|
+
mutagent-cli trace count --platform openobserve --since 24h
|
|
53
|
+
|
|
54
|
+
# Fetch + normalize → UniTF JSONL + sibling manifest
|
|
55
|
+
mutagent-cli trace fetch --platform openobserve --since 24h \
|
|
56
|
+
--export .mutagent/traces/oo1/traces.jsonl
|
|
57
|
+
|
|
58
|
+
# Pin a single trace
|
|
59
|
+
mutagent-cli trace fetch --platform openobserve --trace <trace_id> --since 7d
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Window bounds are required by `_search`; when `--since/--until` are omitted the
|
|
63
|
+
adapter defaults to a 24h lookback ending at `now` so the required bounds hold.
|
|
64
|
+
|
|
65
|
+
## Filter/Search Support
|
|
66
|
+
|
|
67
|
+
| Filter | Support | How |
|
|
68
|
+
|---|---|---|
|
|
69
|
+
| Time window | ✅ | `start_time`/`end_time` (µs) — partition-pruned in `_search` |
|
|
70
|
+
| Single trace | ✅ | `WHERE trace_id = '…'` |
|
|
71
|
+
| Agent / service / keyword / scope | ⚠️ core-side | applied by the CLI's canonical filter pass over normalized UniTF |
|
|
72
|
+
| Error / feedback | ⚠️ derived | `span_status = "ERROR"` → UniTF `status: "error"`; derived client-side downstream |
|
|
73
|
+
|
|
74
|
+
## Quirks (grounded in the research doc's Open Questions)
|
|
75
|
+
|
|
76
|
+
- **Timestamp unit** (OO-G2): `_search` uses microseconds; some fields are nanoseconds.
|
|
77
|
+
The adapter auto-detects by magnitude (µs vs ns vs ms vs s) — no unit assumption.
|
|
78
|
+
- **Root span sentinel** (OO-G1): `parent_span_id` may be `null`, `""`, or omitted —
|
|
79
|
+
all three map to a root span.
|
|
80
|
+
- **GenAI attribute duality** (OO-G5/G6): GenAI fields appear both inside `attributes`
|
|
81
|
+
(canonical dotted keys) and as promoted top-level columns. The adapter prefers the
|
|
82
|
+
canonical `attributes` value; Mastra aliases (`ai_usage_*` / `ai_model_name`) fill the
|
|
83
|
+
OTel semconv keys only when the canonical field is absent (priority: OTel > Mastra).
|
|
84
|
+
- **Stream name** (OO-G4): never hardcoded — `OPENOBSERVE_STREAM` (default `"default"`).
|
|
85
|
+
- **Cloud auth** (OO-G7): a cloud-issued token is supported via `OPENOBSERVE_AUTH`
|
|
86
|
+
(Bearer/Basic pass-through). An MCP transport is a future task (UT-3), not built.
|
|
87
|
+
|
|
88
|
+
## Normalization (moved upstream — UniTF flip)
|
|
89
|
+
|
|
90
|
+
OpenObserve span rows → UniTF normalization lives in the `@mutagent/tools`
|
|
91
|
+
openobserve adapter and runs UPSTREAM via `mutagent-cli trace fetch --platform
|
|
92
|
+
openobserve --export <traces.jsonl>`. The skill READS the resulting UniTF JSONL
|
|
93
|
+
(+ manifest) via the single platform-agnostic reader:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
bun scripts/cli/run.sh scripts/normalize/read-unitf.ts \
|
|
97
|
+
--in <traces.jsonl> --manifest <manifest.json> \
|
|
98
|
+
--out-metadata /tmp/traces-metadata.json --out-entity /tmp/entity-context.json
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Reader: `scripts/normalize/read-unitf.ts` (+ `unitf-adapter.ts`). Run
|
|
102
|
+
`mutagent-cli trace --help` for the fetch surface.
|
package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/otel.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# OpenTelemetry — Source Platform Reference
|
|
2
|
+
|
|
3
|
+
> CLI-first per OQ-1.
|
|
4
|
+
> Upstream docs: https://opentelemetry.io/docs/
|
|
5
|
+
> **Official tooling/protocol docs: https://opentelemetry.io/docs/specs/otlp/**
|
|
6
|
+
>
|
|
7
|
+
> NOTE: OpenTelemetry has **no single canonical CLI** — trace access is
|
|
8
|
+
> backend-specific (Jaeger / Tempo / Honeycomb), each with its own API/CLI.
|
|
9
|
+
> Onboarding therefore treats OTel as `status: not-required` in the ensure-cli
|
|
10
|
+
> gate (PR-021 — `references/workflows/onboarding.md` Phase 2): there is nothing
|
|
11
|
+
> to install, so the skill links these docs and proceeds via the REST/curl fetch
|
|
12
|
+
> shown below. Per-backend docs:
|
|
13
|
+
> - Jaeger: https://www.jaegertracing.io/docs/
|
|
14
|
+
> - Tempo (Grafana): https://grafana.com/docs/tempo/
|
|
15
|
+
> - Honeycomb: https://docs.honeycomb.io/
|
|
16
|
+
|
|
17
|
+
## Access patterns
|
|
18
|
+
|
|
19
|
+
OTel spans are accessed via an OTLP-compatible backend. Common options:
|
|
20
|
+
- Jaeger: https://www.jaegertracing.io/
|
|
21
|
+
- Tempo (Grafana): https://grafana.com/docs/tempo/
|
|
22
|
+
- Honeycomb: https://www.honeycomb.io/
|
|
23
|
+
|
|
24
|
+
## Auth
|
|
25
|
+
|
|
26
|
+
Set in `.mutagentrc` per your backend:
|
|
27
|
+
```
|
|
28
|
+
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318
|
|
29
|
+
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer sk-...
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## CLI Operation Manual (Jaeger example)
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# List traces (Jaeger UI API)
|
|
36
|
+
curl -s "http://localhost:16686/api/traces?service=my-agent&limit=100" | jq .
|
|
37
|
+
|
|
38
|
+
# Fetch specific trace
|
|
39
|
+
curl -s "http://localhost:16686/api/traces/{traceId}" | jq .
|
|
40
|
+
|
|
41
|
+
# Filter by error
|
|
42
|
+
curl -s "http://localhost:16686/api/traces?service=my-agent&tags=%7B%22error%22%3A%22true%22%7D"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Filter/Search Support
|
|
46
|
+
|
|
47
|
+
See `references/filter-search-matrix.md`. Key: most OTel filtering is client-side post-fetch grep because CLI tooling varies per backend. `span.status.code == 2` = ERROR.
|
|
48
|
+
|
|
49
|
+
## Normalization (moved upstream — UniTF flip)
|
|
50
|
+
|
|
51
|
+
OTLP-JSON spans → UniTF normalization now lives in the `@mutagent/tools` otel
|
|
52
|
+
adapter and runs UPSTREAM via `mutagent-cli trace fetch --platform otel --export
|
|
53
|
+
<traces.jsonl>` (input: array of OTel spans / OTLP JSON). The skill READS the
|
|
54
|
+
resulting UniTF JSONL (+ manifest) via the single platform-agnostic reader:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
bun scripts/cli/run.sh scripts/normalize/read-unitf.ts \
|
|
58
|
+
--in <traces.jsonl> --manifest <manifest.json> \
|
|
59
|
+
--out-metadata /tmp/traces-metadata.json --out-entity /tmp/entity-context.json
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Reader: `scripts/normalize/read-unitf.ts` (+ `unitf-adapter.ts`). Run
|
|
63
|
+
`mutagent-cli trace --help` for the fetch surface.
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Cloud REST — Target Platform Reference
|
|
2
|
+
|
|
3
|
+
> Apply target: Remote cloud services accessed via REST API (e.g., Langfuse, hosted OTel, custom agent API).
|
|
4
|
+
> Target class: `remote`
|
|
5
|
+
> Apply branch: remote (read-before-write required; idempotency required; HITL gate for all mutations)
|
|
6
|
+
|
|
7
|
+
## Classification
|
|
8
|
+
|
|
9
|
+
| Dimension | Value |
|
|
10
|
+
|-----------|-------|
|
|
11
|
+
| Target class | `remote` |
|
|
12
|
+
| Mutability | REST mutations via idempotent API calls |
|
|
13
|
+
| Isolation | No local isolation — all changes are live |
|
|
14
|
+
|
|
15
|
+
## Key Constraints
|
|
16
|
+
|
|
17
|
+
- **Read before write (PR-003)**: always GET the resource before PATCH/PUT/DELETE
|
|
18
|
+
- **Idempotency (PR-012)**: use `uuidgen` client-side idempotency keys for all mutations; retry-safe
|
|
19
|
+
- **HITL gate (PR-014)**: ALL remote mutations require user confirmation via HITL HTML before execution
|
|
20
|
+
- **No destructive ops without gate**: DELETE operations require explicit `AskUserQuestion` in Claude Code; numbered chat-multi-choice elsewhere
|
|
21
|
+
|
|
22
|
+
## Supported Services
|
|
23
|
+
|
|
24
|
+
| Service | Auth | Base URL |
|
|
25
|
+
|---------|------|----------|
|
|
26
|
+
| Langfuse | `LANGFUSE_SECRET_KEY` + `LANGFUSE_PUBLIC_KEY` | `https://cloud.langfuse.com` or self-hosted |
|
|
27
|
+
| Custom REST Agent | Bearer token | User-configured |
|
|
28
|
+
|
|
29
|
+
## How Remedies Are Applied
|
|
30
|
+
|
|
31
|
+
1. **GET resource** — confirm current state matches expected (read-before-write)
|
|
32
|
+
2. **Render HITL HTML** — show proposed change to user
|
|
33
|
+
3. **User confirms** — via AskUserQuestion (Claude Code) or numbered chat option
|
|
34
|
+
4. **PATCH/POST** with idempotency key — execute mutation
|
|
35
|
+
5. **Verify** — re-GET to confirm applied state
|
|
36
|
+
6. **Emit audit** — `audit.json` + `audit.md` per PR-013
|
|
37
|
+
|
|
38
|
+
## Idempotency Pattern
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
const idempotencyKey = crypto.randomUUID(); // uuidgen equivalent
|
|
42
|
+
|
|
43
|
+
await fetch(`${baseUrl}/api/resource`, {
|
|
44
|
+
method: 'PATCH',
|
|
45
|
+
headers: {
|
|
46
|
+
'Content-Type': 'application/json',
|
|
47
|
+
'Idempotency-Key': idempotencyKey,
|
|
48
|
+
'Authorization': `Bearer ${apiKey}`,
|
|
49
|
+
},
|
|
50
|
+
body: JSON.stringify(patch),
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Auth Configuration
|
|
55
|
+
|
|
56
|
+
Keys are referenced by name only — never inline values. From `.mutagentrc`:
|
|
57
|
+
```
|
|
58
|
+
LANGFUSE_SECRET_KEY=<key>
|
|
59
|
+
LANGFUSE_PUBLIC_KEY=<key>
|
|
60
|
+
LANGFUSE_HOST=https://cloud.langfuse.com
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Remedy Categories
|
|
64
|
+
|
|
65
|
+
- **Score annotation**: POST score to a trace (e.g., flag false positive in Langfuse)
|
|
66
|
+
- **Trace annotation**: add metadata tag to a trace
|
|
67
|
+
- **Dataset update**: add or update evaluation dataset entries
|
|
68
|
+
- **Config sync**: update remote agent config via REST API
|
|
69
|
+
|
|
70
|
+
## Audit
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"targetPlatform": "cloud-rest",
|
|
75
|
+
"targetClass": "remote",
|
|
76
|
+
"remedyType": "score-annotation",
|
|
77
|
+
"idempotencyKey": "<uuid>",
|
|
78
|
+
"resourceUrl": "https://cloud.langfuse.com/api/...",
|
|
79
|
+
"before": {},
|
|
80
|
+
"after": {},
|
|
81
|
+
"diagnosedAtHash": "<git-hash>",
|
|
82
|
+
"appliedAtHash": "<git-hash>"
|
|
83
|
+
}
|
|
84
|
+
```
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Local Claude (Claude Code) — Target Platform Reference
|
|
2
|
+
|
|
3
|
+
> Apply target: Claude Code running on the local machine.
|
|
4
|
+
> Target class: `local-agent`
|
|
5
|
+
> Apply branch: local-agent (read-verify-only; no code edits; git BG-worktree for self-diagnostics PRs)
|
|
6
|
+
|
|
7
|
+
## Classification
|
|
8
|
+
|
|
9
|
+
| Dimension | Value |
|
|
10
|
+
|-----------|-------|
|
|
11
|
+
| Target class | `local-agent` |
|
|
12
|
+
| Mutability | read-verify; HITL via HTML |
|
|
13
|
+
| Isolation | N/A (agent runs in its own session) |
|
|
14
|
+
|
|
15
|
+
## How Remedies Are Applied
|
|
16
|
+
|
|
17
|
+
Claude Code remedies are **configuration changes**, not code edits.
|
|
18
|
+
|
|
19
|
+
1. **Read before write (PR-003)**: read `~/.claude/settings.json` (or project `.claude/settings.json`) before proposing edits
|
|
20
|
+
2. **HITL gate (PR-014)**: HTML report + markdown remedy proposal rendered; user applies in Claude Code settings UI or confirms before file edit
|
|
21
|
+
3. **BG-worktree only (PR-004)**: if remedy involves committing configuration to `.claude/` in the project, a separate worktree branch is opened — no direct main-branch commits
|
|
22
|
+
|
|
23
|
+
## Config Targets
|
|
24
|
+
|
|
25
|
+
| File | Purpose |
|
|
26
|
+
|------|---------|
|
|
27
|
+
| `~/.claude/settings.json` | Global user settings |
|
|
28
|
+
| `<project>/.claude/settings.json` | Project-scoped settings |
|
|
29
|
+
| `<project>/.claude/skills/` | Installed skill bundles |
|
|
30
|
+
| `CLAUDE.md` | Project instructions (human-authored) |
|
|
31
|
+
|
|
32
|
+
## Capability Probing
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Check Claude Code is installed
|
|
36
|
+
which claude || npx claude --version
|
|
37
|
+
|
|
38
|
+
# List recent projects
|
|
39
|
+
ls ~/.claude/projects/
|
|
40
|
+
|
|
41
|
+
# Check settings
|
|
42
|
+
cat ~/.claude/settings.json 2>/dev/null
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Remedy Categories (iter-8 locked)
|
|
46
|
+
|
|
47
|
+
- **Skill install**: copy skill bundle to `.claude/skills/<skill-name>/`
|
|
48
|
+
- **Settings update**: patch `~/.claude/settings.json` key
|
|
49
|
+
- **CLAUDE.md addendum**: append or insert a section via PR (BG worktree)
|
|
50
|
+
- **Session cleanup**: no automated session cleanup — surfaced as informational finding only
|
|
51
|
+
|
|
52
|
+
## Audit
|
|
53
|
+
|
|
54
|
+
Auditor emits `audit.json` + `audit.md` per PR-013. All fields required:
|
|
55
|
+
```json
|
|
56
|
+
{
|
|
57
|
+
"targetPlatform": "local-claude",
|
|
58
|
+
"targetClass": "local-agent",
|
|
59
|
+
"remedyType": "skill-install",
|
|
60
|
+
"before": {},
|
|
61
|
+
"after": {},
|
|
62
|
+
"diagnosedAtHash": "<git-hash>",
|
|
63
|
+
"appliedAtHash": "<git-hash>"
|
|
64
|
+
}
|
|
65
|
+
```
|