@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.
Files changed (357) hide show
  1. package/.claude/skills/mutagent-helix/SKILL.md +113 -0
  2. package/.claude/skills/mutagent-helix/scripts/cli/codex-transcode.ts +143 -0
  3. package/.claude/skills/mutagent-helix/scripts/cli/doctor.ts +111 -0
  4. package/.claude/skills/mutagent-helix/scripts/cli/init.ts +382 -0
  5. package/.claude/skills/mutagent-helix/scripts/cli/run.sh +61 -0
  6. package/CLAUDE.md +193 -0
  7. package/LICENSE +201 -0
  8. package/NOTICE +22 -0
  9. package/README.md +209 -0
  10. package/assets/adl-loop.svg +162 -0
  11. package/assets/system-status.svg +422 -0
  12. package/bin/mutagent-cli.mjs +9950 -0
  13. package/bin/mutagent-helix.mjs +78 -0
  14. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/CLAUDE.md +28 -0
  15. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/SKILL.md +138 -0
  16. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/assets/templates/agentspec.yaml.tpl +247 -0
  17. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/frameworks/doc-pins.md +53 -0
  18. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/principles.md +91 -0
  19. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/requirements.yaml +295 -0
  20. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/references/workflows/orchestrator-protocol.md +302 -0
  21. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/doctor.ts +116 -0
  22. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/init.ts +230 -0
  23. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/cli/run.sh +60 -0
  24. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/config/resolve-spec-dir.ts +199 -0
  25. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/contract/agentspec.schema.ts +455 -0
  26. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/setup/detect.ts +67 -0
  27. package/mutagent-agentspec/.claude/skills/mutagent-agentspec/scripts/validate/validate-spec.ts +93 -0
  28. package/mutagent-agentspec/LICENSE +201 -0
  29. package/mutagent-agentspec/NOTICE +19 -0
  30. package/mutagent-agentspec/README.md +44 -0
  31. package/mutagent-builder/.claude/skills/mutagent-builder/SKILL.md +100 -0
  32. package/mutagent-builder/.claude/skills/mutagent-builder/assets/agents/ai-architect.md +312 -0
  33. package/mutagent-builder/.claude/skills/mutagent-builder/assets/agents/ai-engineer.md +357 -0
  34. package/mutagent-builder/.claude/skills/mutagent-builder/assets/templates/build-report.md.tpl +39 -0
  35. package/mutagent-builder/.claude/skills/mutagent-builder/references/principles.md +31 -0
  36. package/mutagent-builder/.claude/skills/mutagent-builder/references/workflows/build-protocol.md +61 -0
  37. package/mutagent-builder/.claude/skills/mutagent-builder/references/workflows/improve-handoff.md +23 -0
  38. package/mutagent-builder/.claude/skills/mutagent-builder/scripts/cli/run.sh +60 -0
  39. package/mutagent-builder/.claude/skills/mutagent-builder/scripts/handoff/validate-build-input.ts +72 -0
  40. package/mutagent-builder/.claude/skills/mutagent-builder/scripts/sync-spec/check-sync-spec.ts +499 -0
  41. package/mutagent-builder/.claude/skills/mutagent-builder/scripts/verify/spec-impl-coverage.ts +182 -0
  42. package/mutagent-builder/CLAUDE.md +25 -0
  43. package/mutagent-builder/README.md +26 -0
  44. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/README.md +192 -0
  45. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/SKILL.md +352 -0
  46. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/ai-architect.md +256 -0
  47. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/ai-engineer.md +344 -0
  48. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/diagnostics-analyzer.md +576 -0
  49. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/agents/discovery.md +425 -0
  50. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/audit.json.tpl +24 -0
  51. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/audit.md.tpl +49 -0
  52. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/config.yaml.tpl +100 -0
  53. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/pr-body.md.tpl +56 -0
  54. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/report.html.tpl +327 -0
  55. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/README.md +27 -0
  56. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/iter-N-handover.md.tpl +125 -0
  57. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/self-diagnosis-contract.v0.1.0.yaml.tpl +234 -0
  58. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/spec.yaml.tpl +152 -0
  59. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/team.yaml.tpl +127 -0
  60. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/templates/shared/wave-N-dashboard.html.tpl +1712 -0
  61. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.1-nl-query.md +59 -0
  62. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.2-tier0-progress.md +58 -0
  63. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.3-analysis-progress.md +44 -0
  64. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.4-html-report.md +61 -0
  65. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.5-rca-detail.md +69 -0
  66. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/diagnostics/WF-2.6-stale-warning.md +53 -0
  67. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.1-welcome.md +60 -0
  68. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.2-source-platform-picker.md +41 -0
  69. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.3-source-auth.md +75 -0
  70. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.4-target-picker.md +48 -0
  71. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.5-ask-tool.md +43 -0
  72. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.6-config-review.md +57 -0
  73. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.7-filter-defaults.md +52 -0
  74. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/assets/wireframes/onboarding/WF-1.8-first-run.md +59 -0
  75. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/examples/sample-findings.json +92 -0
  76. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/examples/sample-meta.json +47 -0
  77. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/adapter-strategy.md +75 -0
  78. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/config-migration.md +84 -0
  79. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/config.md +159 -0
  80. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/filter-search-matrix.md +66 -0
  81. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/harness-knowledge.md +22 -0
  82. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/memory-format.md +78 -0
  83. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/onboarding-decisions.yaml +187 -0
  84. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/operation-inventory.md +59 -0
  85. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/overview.md +167 -0
  86. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/reference.md +119 -0
  87. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/script-index.md +101 -0
  88. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-adapter-contract.md +93 -0
  89. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/claude-code-transcripts.md +66 -0
  90. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/codex-transcripts.md +78 -0
  91. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/codex.md +145 -0
  92. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/install-paths.md +57 -0
  93. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/langfuse.md +178 -0
  94. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/local-jsonl.md +55 -0
  95. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/openobserve.md +102 -0
  96. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/source-platforms/otel.md +63 -0
  97. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/cloud-rest.md +84 -0
  98. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-claude.md +65 -0
  99. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-cloud-agent-sdk.md +92 -0
  100. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-codex.md +72 -0
  101. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-cursor.md +108 -0
  102. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-mastra.md +77 -0
  103. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/target-platforms/local-opencode.md +70 -0
  104. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/apply-pr-comment-format.md +82 -0
  105. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/diagnostics.md +35 -0
  106. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/handover-contract.md +247 -0
  107. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/onboarding.md +300 -0
  108. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/orchestrator-protocol.md +1861 -0
  109. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/rca.md +331 -0
  110. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/rendering-anatomy.md +314 -0
  111. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/schedule-prep.md +100 -0
  112. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/scope-model.md +128 -0
  113. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/references/workflows/verification-methodology.md +174 -0
  114. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/aggregate/sort-findings.ts +0 -0
  115. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/awareness/blind-spots.ts +167 -0
  116. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/awareness/llm-sample.ts +681 -0
  117. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/doctor.ts +215 -0
  118. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/init.ts +1013 -0
  119. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/install-agents.ts +350 -0
  120. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/run.sh +61 -0
  121. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/cli/shared-templates.ts +79 -0
  122. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/load.ts +392 -0
  123. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/resolve-credential.ts +120 -0
  124. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/schema.ts +641 -0
  125. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/config/validate.ts +134 -0
  126. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/context/build-diagnosis-context.ts +417 -0
  127. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/context/load-context.ts +105 -0
  128. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/contract/types.ts +166 -0
  129. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/build-render-input.ts +1964 -0
  130. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/corpus-severity.ts +172 -0
  131. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/dismissal-match.ts +270 -0
  132. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/enrich/rank-remedies.ts +75 -0
  133. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/hooks/install-hooks.sh +46 -0
  134. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/hooks/pre-push.sh +78 -0
  135. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/invocation/parse-brief.ts +188 -0
  136. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/match.ts +114 -0
  137. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/paths.ts +95 -0
  138. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/store.ts +535 -0
  139. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/library/types.ts +181 -0
  140. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/lint/template-inline-js.ts +267 -0
  141. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/memory/append.ts +188 -0
  142. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/memory/read.ts +218 -0
  143. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/platforms/entity-context.ts +686 -0
  144. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/read-unitf.ts +267 -0
  145. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/trace.ts +1078 -0
  146. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/unitf-adapter.ts +0 -0
  147. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/normalize/unitf-types.ts +213 -0
  148. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/report/persist-selections.ts +174 -0
  149. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/report/render.ts +3254 -0
  150. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/run/diagnose.ts +64 -0
  151. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/run/session.ts +167 -0
  152. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/caps.ts +345 -0
  153. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/deep-read-gate.ts +424 -0
  154. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/sample/representative.ts +584 -0
  155. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/scan/objection.ts +224 -0
  156. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/scan/trajectory.ts +489 -0
  157. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/self-diagnostics/dispatch.ts +135 -0
  158. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/self-diagnostics/probe.ts +170 -0
  159. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/detect.ts +307 -0
  160. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/ensure-cli.ts +315 -0
  161. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/reconfigure.ts +77 -0
  162. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/setup/verify-agents.ts +207 -0
  163. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/slicer.ts +166 -0
  164. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/claude-code.ts +17 -0
  165. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/codex.ts +11 -0
  166. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/langfuse.ts +17 -0
  167. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/local-jsonl.ts +12 -0
  168. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/adapters/otel.ts +12 -0
  169. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/index.ts +54 -0
  170. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/registry.ts +45 -0
  171. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/source/types.ts +86 -0
  172. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/stale-detector.ts +74 -0
  173. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/test/render-playwright.cli.ts +477 -0
  174. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0/claude-code.ts +133 -0
  175. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0/langfuse.ts +143 -0
  176. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/tier0-scan.ts +423 -0
  177. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/completeness-check.ts +436 -0
  178. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/doc-refs.ts +190 -0
  179. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/finalize-gate.ts +417 -0
  180. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/findings-contract.ts +628 -0
  181. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/render-js-syntax.ts +188 -0
  182. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/report-checklist.yaml +217 -0
  183. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/trace-shape.ts +262 -0
  184. package/mutagent-diagnostics/.claude/skills/mutagent-diagnostics/scripts/validate/wave6-checklist.ts +326 -0
  185. package/mutagent-diagnostics/CLAUDE.md +41 -0
  186. package/mutagent-diagnostics/LICENSE +201 -0
  187. package/mutagent-diagnostics/NOTICE +18 -0
  188. package/mutagent-diagnostics/README.md +343 -0
  189. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/SKILL.md +548 -0
  190. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/audit-executor.md +169 -0
  191. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/dataset-builder.md +160 -0
  192. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/discovery.md +425 -0
  193. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/agents/evaluator.md +1108 -0
  194. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/brand/theme.css +213 -0
  195. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/assets/brand/wordmark.html +9 -0
  196. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/context-flow-lens.md +85 -0
  197. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/data-lens.md +47 -0
  198. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/decision-lens.md +48 -0
  199. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/methodology-critic-lens.md +53 -0
  200. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/lenses/trajectory-lens.md +44 -0
  201. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/build-review-interface.md +83 -0
  202. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/edd-loop.md +134 -0
  203. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/error-analysis.md +113 -0
  204. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/eval-audit.md +154 -0
  205. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/eval-stage.md +168 -0
  206. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/generate-synthetic-data.md +81 -0
  207. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/grounded-adjudication.md +221 -0
  208. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/memory-format.md +65 -0
  209. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/methodology.md +201 -0
  210. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/operation-inventory.md +197 -0
  211. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/validate-evaluator.md +125 -0
  212. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/workflows/orchestrator-protocol.md +300 -0
  213. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/references/write-judge-prompt.md +123 -0
  214. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/behavior-tree.schema.yaml +73 -0
  215. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/dataset.schema.yaml +66 -0
  216. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/edd-change-request.schema.yaml +114 -0
  217. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/eval-matrix.schema.yaml +74 -0
  218. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/flow-graph.schema.yaml +69 -0
  219. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/flow-profile.schema.yaml +49 -0
  220. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/methodology-review.schema.yaml +40 -0
  221. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/schemas/scorecard.schema.yaml +85 -0
  222. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/agent-dispatch.ts +0 -0
  223. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/aggregate-discover.ts +543 -0
  224. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/artifact-paths.ts +115 -0
  225. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/assemble-scorecard.ts +172 -0
  226. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-dataset.ts +186 -0
  227. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-evals.ts +93 -0
  228. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/build-review-ui.ts +393 -0
  229. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/check-method-router.ts +170 -0
  230. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/aggregate.ts +112 -0
  231. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/audit-run.ts +182 -0
  232. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/doctor.ts +211 -0
  233. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/dogfood.ts +133 -0
  234. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/init.ts +601 -0
  235. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/methodology-review.ts +122 -0
  236. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/prep.ts +295 -0
  237. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/profile-subject.ts +165 -0
  238. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/run.sh +56 -0
  239. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cli/variance-check.ts +105 -0
  240. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/code-eval.ts +248 -0
  241. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/code-quality-verdict.ts +285 -0
  242. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/codegen-evals.ts +173 -0
  243. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cold-start-project.ts +151 -0
  244. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/cold-start-sampler.ts +267 -0
  245. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/config/load.ts +343 -0
  246. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/config/schema.ts +380 -0
  247. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/agentspec-evals.ts +85 -0
  248. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/dataset.ts +149 -0
  249. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-engine.ts +118 -0
  250. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-matrix.ts +577 -0
  251. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/eval-types.ts +1074 -0
  252. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/flow-graph.ts +194 -0
  253. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/types.ts +303 -0
  254. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/contracts/validation.ts +193 -0
  255. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/derive-dataset.ts +152 -0
  256. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/determine-outcome.ts +219 -0
  257. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/diff-discriminate.ts +160 -0
  258. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/discover-criteria.ts +348 -0
  259. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/change-request.ts +232 -0
  260. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/edd-types.ts +210 -0
  261. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/edd/variance-gate.ts +186 -0
  262. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/emit-completeness.ts +111 -0
  263. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/eval-engine.ts +160 -0
  264. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/evaluate.ts +333 -0
  265. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/flow-graph.ts +230 -0
  266. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/judge-prompt-template.ts +253 -0
  267. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/judge-provider.ts +135 -0
  268. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/lint-grounding.ts +229 -0
  269. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/lint-uniformity.ts +168 -0
  270. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/living-suite.ts +109 -0
  271. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-bundle.ts +203 -0
  272. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-profile-vocab.ts +64 -0
  273. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/load-profile.ts +106 -0
  274. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/mask.ts +138 -0
  275. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/materialize-dataset.ts +113 -0
  276. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/matrix-judge.ts +750 -0
  277. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/memory/append.ts +215 -0
  278. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/memory/read.ts +168 -0
  279. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/persist-eval-criteria.ts +232 -0
  280. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/prep-tasks.ts +125 -0
  281. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/profile-subject.ts +310 -0
  282. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/publish-report.ts +131 -0
  283. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/read-unitf-traces.ts +81 -0
  284. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-build-cards.ts +195 -0
  285. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-discover-report.ts +1640 -0
  286. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-eval-report.ts +3838 -0
  287. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/render-report.ts +212 -0
  288. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/resolve-credential.ts +110 -0
  289. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/resolve-ref.ts +98 -0
  290. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/result-verify.ts +129 -0
  291. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/route-failures.ts +330 -0
  292. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-deterministic.ts +367 -0
  293. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-evaluate.ts +719 -0
  294. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-judge.ts +155 -0
  295. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/run-pipeline.ts +175 -0
  296. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/sample-traces.ts +210 -0
  297. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/self-audit.ts +387 -0
  298. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/source-map.ts +106 -0
  299. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/subject-profile.ts +134 -0
  300. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/substrate.ts +162 -0
  301. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/sync-eval-criteria.ts +244 -0
  302. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/ui-slots.ts +119 -0
  303. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/unitf-to-evaltrace.ts +284 -0
  304. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/validate-judge.ts +358 -0
  305. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/scripts/variance-compare.ts +177 -0
  306. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/behavior-tree.yaml +140 -0
  307. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/eval-matrix.yaml +1270 -0
  308. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/subjects/mutagent-diagnostics/methodology-review.yaml +105 -0
  309. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/audit.workflow.js +82 -0
  310. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/data-leak.workflow.js +236 -0
  311. package/mutagent-evaluator/.claude/skills/mutagent-evaluator/workflows/variance.workflow.js +163 -0
  312. package/mutagent-evaluator/CLAUDE.md +45 -0
  313. package/mutagent-evaluator/LICENSE +201 -0
  314. package/mutagent-evaluator/NOTICE +23 -0
  315. package/mutagent-evaluator/README.md +88 -0
  316. package/mutagent-optimize/.claude/skills/mutagent-optimize/SKILL.md +287 -0
  317. package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/contracts/amend-request.ts +503 -0
  318. package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/improve-loop-run.ts +304 -0
  319. package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/loop-state-cli.ts +300 -0
  320. package/mutagent-optimize/.claude/skills/mutagent-optimize/scripts/loop-state.ts +440 -0
  321. package/mutagent-optimize/CLAUDE.md +49 -0
  322. package/mutagent-optimize/README.md +26 -0
  323. package/mutagent-orchestrator/CLAUDE.md +102 -0
  324. package/mutagent-orchestrator/README.md +20 -0
  325. package/mutagent-orchestrator/assets/agents/discovery.md +425 -0
  326. package/mutagent-orchestrator/assets/agents/dogfood-monitor.md +266 -0
  327. package/mutagent-orchestrator/assets/agents/monitor.md +258 -0
  328. package/mutagent-orchestrator/orchestrator.md +782 -0
  329. package/mutagent-orchestrator/references/MONITORING.md +209 -0
  330. package/mutagent-orchestrator/references/config-fields.md +132 -0
  331. package/mutagent-orchestrator/references/config-migration.md +132 -0
  332. package/mutagent-orchestrator/references/index-registry.md +92 -0
  333. package/mutagent-orchestrator/routing.yaml +391 -0
  334. package/mutagent-orchestrator/scripts/config-schema.ts +1010 -0
  335. package/mutagent-orchestrator/scripts/dispatch.ts +439 -0
  336. package/mutagent-orchestrator/scripts/dogfood/extract-feedback.ts +203 -0
  337. package/mutagent-orchestrator/scripts/dogfood/reconstruct-trajectory.ts +327 -0
  338. package/mutagent-orchestrator/scripts/dogfood/render-dogfood-report.ts +347 -0
  339. package/mutagent-orchestrator/scripts/dogfood/resolve-subagents.ts +160 -0
  340. package/mutagent-orchestrator/scripts/dogfood/run-report.ts +264 -0
  341. package/mutagent-orchestrator/scripts/dogfood/slack-thread.ts +106 -0
  342. package/mutagent-orchestrator/scripts/dogfood/types.ts +257 -0
  343. package/mutagent-orchestrator/scripts/eval-routing.ts +753 -0
  344. package/mutagent-orchestrator/scripts/gate.ts +219 -0
  345. package/mutagent-orchestrator/scripts/handover-contract.ts +362 -0
  346. package/mutagent-orchestrator/scripts/index/build-index.ts +351 -0
  347. package/mutagent-orchestrator/scripts/index/render-index.ts +110 -0
  348. package/mutagent-orchestrator/scripts/monitor/slack-notify.ts +111 -0
  349. package/mutagent-orchestrator/scripts/monitor/triggers.ts +162 -0
  350. package/mutagent-orchestrator/scripts/onboarding-check.ts +369 -0
  351. package/mutagent-orchestrator/scripts/render-roster.ts +308 -0
  352. package/mutagent-orchestrator/scripts/resolve-credential.ts +185 -0
  353. package/mutagent-orchestrator/scripts/resolve-paths.ts +114 -0
  354. package/mutagent-orchestrator/scripts/slack/format.ts +63 -0
  355. package/mutagent-orchestrator/scripts/slack/post.ts +115 -0
  356. package/mutagent-orchestrator/scripts/sync-index.ts +311 -0
  357. package/package.json +64 -0
@@ -0,0 +1,425 @@
1
+ ---
2
+ name: discovery
3
+ model: sonnet # CC-native pin — host reads this at spawn
4
+ description: >
5
+ Pure subagent executor — trace collection cell. Receives a HandoverBundle carrying a
6
+ TraceQuery (kind:config ArtifactRef). Sizes the window via `mutagent-cli trace count`,
7
+ then collects and normalizes → UniTF JSONL + TraceManifest via `mutagent-cli trace fetch
8
+ --export`. Emits a HandoverBundle whose inputs[] are the trace JSONL + the manifest, ready
9
+ for Diagnostics or Evaluator to consume. No analysis — collection only.
10
+ tools: Read, Write, Bash, Monitor, SendMessage
11
+ ---
12
+
13
+ # discovery
14
+
15
+ ACTIVATION-NOTICE: This file contains your full agent operating guidelines. Read the YAML block below.
16
+
17
+ ```yaml
18
+ class: pure_subagent_executor
19
+ isolation: none
20
+
21
+ # STATUS: DISPATCHED standalone as the vendored delegate-or-artifact trace agent (diagnostics Step 3.6 · evaluator Step 0.5). The orchestrator `*collect-traces` alias route remains future.
22
+ # Helix currently calls `mutagent-cli trace count` + `trace fetch --export` DIRECTLY (the
23
+ # example workflows in trace-layer-plan.md §Example Workflows). This agent FORMALIZES that
24
+ # pattern into a delegatable cell once the CLI surface is proven in production. The contracts
25
+ # (TraceQuery + TraceManifest + HandoverBundle carriage) are already built and validated;
26
+ # this definition is the orchestration shell that wraps them.
27
+ #
28
+ # Dispatch wiring (FUTURE): add a `*collect-traces` route to
29
+ # `mutagent-orchestrator/dispatch.ts ROUTES` + `mutagent-orchestrator/routing.yaml`
30
+ # forward-intents so Helix can delegate collection. Indexed by `*sync`.
31
+
32
+ # Model-intent-sacred (feedback_model_intent_sacred): no silent swap, no context-optimized
33
+ # routing, no retry-on-failure alternate-model fallback. If the pinned model cannot satisfy a
34
+ # constraint, THROW — never silently re-target.
35
+ inference:
36
+ # Collection is I/O-bound + CLI-driven — no expensive LLM reasoning required. Sonnet is
37
+ # sufficient; the orchestrator may override explicitly (must be logged — never implicit).
38
+ model: claude-sonnet-4-6 # DEFAULT pin — overridable per dispatch, explicit + logged
39
+ temperature: 0 # PINNED — deterministic CLI dispatch; never varied
40
+ model_overridable: true
41
+ pin_rationale: "Collection agent — no analysis LLM work; pinned for reproducible dispatch behavior"
42
+
43
+ stage:
44
+ position: sequential-pre-worker # runs BEFORE a Diagnostics or Evaluator worker
45
+ depends_on: [helix-intent-routing]
46
+ blocks: [diagnostics-dispatch, evaluator-dispatch]
47
+
48
+ # =============================================================================
49
+ # operation_contract
50
+ # =============================================================================
51
+ operation_contract:
52
+ # -- IN: a HandoverBundle (adl_stage: diagnose|evaluate) whose inputs[] contains
53
+ # ONE config ArtifactRef pointing at the TraceQuery JSON.
54
+ inputs:
55
+ - name: handover_bundle
56
+ schema: "HandoverBundle v0.1.0 # mutagent-orchestrator/scripts/handover-contract.ts"
57
+ required: true
58
+ validation:
59
+ - condition: "adl_stage not in {diagnose, evaluate}"
60
+ on_invalid: "escalate — discovery only collects for diagnose or evaluate stages"
61
+ - condition: "inputs[] contains no ArtifactRef with id 'trace-query'"
62
+ on_invalid: "escalate — no TraceQuery artifact in bundle"
63
+
64
+ - name: trace_query
65
+ # Resolved from: handover_bundle.inputs[id='trace-query'].path
66
+ # The query.json file MUST validate against TraceQuerySchema (trace-query.ts).
67
+ schema: "TraceQuery v0.1.0 # mutagent-tools/src/format/trace-query.ts"
68
+ required: true
69
+ validation:
70
+ - condition: "query.json not found at the ArtifactRef path"
71
+ on_invalid: "escalate — query.json missing; cannot collect without the query"
72
+ - condition: "validateTraceQuery(query).ok === false"
73
+ on_invalid: "escalate — TraceQuery fails schema validation; log errors"
74
+ - condition: "platform is a SEAM stub (signoz|datadog|braintrust)"
75
+ on_invalid: "escalate — platform adapter not implemented in v1; see TRACES-CLI.md §4"
76
+
77
+ # -- DOES: two sequential CLI calls, then a bundle emit.
78
+ #
79
+ # Step 1 — SIZE:
80
+ # mutagent-cli trace count --platform <platform> [<filters>] [--since <w> --until <w>]
81
+ # [--agent <a>] [--skill <s>] [--session <id>] [--scope <any|scoped|unscoped>]
82
+ # [--has-error] [--has-feedback] [--score-below <n>] [--limit <n>]
83
+ # Reads: stdout integer. If count === 0, short-circuit to empty-manifest path.
84
+ #
85
+ # Step 2 — COLLECT:
86
+ # mutagent-cli trace fetch --platform <platform> [<same filters>] \
87
+ # --export .mutagent/traces/<query_id>/traces.jsonl
88
+ # Writes: traces.jsonl + traces.manifest.json (sibling auto-emitted by --export)
89
+ #
90
+ # Step 3 — BUNDLE:
91
+ # Read the manifest.json, validate against TraceManifestSchema, construct and emit
92
+ # the outbound HandoverBundle (see outputs below).
93
+ does: >
94
+ 1. Read + validate query.json against TraceQuerySchema.
95
+ 2. Run `mutagent-cli trace count` with all filters from the query — record the window size.
96
+ If count === 0: proceed to Step 3 directly (empty-manifest path — not a failure).
97
+ 3. Run `mutagent-cli trace fetch --export <namespace>/traces.jsonl` with the same filters.
98
+ The CLI auto-writes the sibling manifest at <namespace>/traces.manifest.json.
99
+ 4. Read the emitted manifest.json and validate it against TraceManifestSchema.
100
+ MANIFEST MUTATION RULE (closed schema — SL-6 evidence 2026-07-03): TraceManifest
101
+ v0.1.0 is a CLOSED object (additionalProperties: false) — NEVER add keys to it.
102
+ If you post-filter the export (e.g. excluding your own still-growing session
103
+ transcript — a legitimate, encouraged hygiene step), record every annotation as
104
+ strings in the IN-CONTRACT `warnings[]` field (e.g. "post-filter: excluded
105
+ currently-active session <id> (this discovery agent's own transcript); cliExportCount
106
+ 16 → finalCount 15"), update `count`/`sha256`/`bytes` to match the FINAL jsonl, and
107
+ re-validate — a consumer's validateTraceManifest rejects any out-of-contract key.
108
+ 5. Construct and emit the outbound HandoverBundle (inputs=[trace-list, trace-manifest]).
109
+ 6. Send the bundle to the parent (SendMessage) or write it to the handover path.
110
+
111
+ # -- OUT: a HandoverBundle (same adl_stage, updated subject → the consumer skill) whose
112
+ # inputs[] carries TWO ArtifactRefs:
113
+ # {kind:"trace", id:"trace-list", path:"<ns>/traces.jsonl", sha}
114
+ # {kind:"config", id:"trace-manifest", path:"<ns>/traces.manifest.json"}
115
+ outputs:
116
+ - artifact_name: traces_jsonl
117
+ kind: trace
118
+ id: trace-list
119
+ path: ".mutagent/traces/{query_id}/traces.jsonl"
120
+ schema: "UniTF JSONL — one UnifiedTrace record per line (unitf@0.1)"
121
+ sha256: true # computed + stamped in manifest; echoed as ArtifactRef.sha
122
+
123
+ - artifact_name: trace_manifest
124
+ kind: config
125
+ id: trace-manifest
126
+ path: ".mutagent/traces/{query_id}/traces.manifest.json"
127
+ schema: "TraceManifest v0.1.0 # mutagent-tools/src/format/trace-manifest.ts"
128
+
129
+ - artifact_name: outbound_handover_bundle
130
+ schema: "HandoverBundle v0.1.0"
131
+ shape: |
132
+ HandoverBundle {
133
+ bundle_version: "0.1.0",
134
+ adl_stage: <same as inbound>,
135
+ subject: { kind: "skill", name: <consumer skill name> },
136
+ intent: { command: <inbound intent.command> },
137
+ inputs: [
138
+ { kind: "trace", id: "trace-list", path: ".mutagent/traces/{query_id}/traces.jsonl", sha: <sha256> },
139
+ { kind: "config", id: "trace-manifest", path: ".mutagent/traces/{query_id}/traces.manifest.json" }
140
+ ],
141
+ context_pack: { rules: [], memory: [], partial_loads: [] },
142
+ acceptance: {
143
+ goal: "Consume UniTF JSONL + manifest for <adl_stage>",
144
+ criteria: [
145
+ "manifest.count matches the actual line count of traces.jsonl",
146
+ "validateHandoverBundle passes (structural + locatable-artifact)"
147
+ ]
148
+ },
149
+ provenance: { produced_by: "discovery", produced_at: <ISO-INJECTED> },
150
+ escalation_policy: "escalate"
151
+ }
152
+
153
+ # -- query_id derivation: deterministic from the TraceQuery content.
154
+ # Use sha256(JSON.stringify(sorted-query)) trimmed to 12 hex chars.
155
+ # This makes the artifact namespace stable across retries of the same query.
156
+
157
+ artifact_namespace: ".mutagent/traces/{query_id}/"
158
+
159
+ # =============================================================================
160
+ # file_access
161
+ # =============================================================================
162
+ file_access:
163
+ reads:
164
+ - glob: "{handover_bundle.inputs[id='trace-query'].path}"
165
+ scope: handover-input
166
+ on_missing: "escalate — TraceQuery file not found at the path in the bundle"
167
+ - glob: ".mutagent/traces/{query_id}/traces.manifest.json"
168
+ scope: worktree
169
+ on_missing: "escalate — manifest not emitted by CLI; CLI exit-code check required"
170
+ writes:
171
+ - glob: ".mutagent/traces/{query_id}/traces.jsonl"
172
+ scope: worktree
173
+ mode: overwrite
174
+ on_collision: "overwrite — same query_id = idempotent re-run of the same query"
175
+ - glob: ".mutagent/traces/{query_id}/traces.manifest.json"
176
+ scope: worktree
177
+ mode: overwrite
178
+ on_collision: "overwrite — sibling auto-emitted by CLI --export; safe to overwrite"
179
+
180
+ credentials:
181
+ # The CLI resolves credentials via env-var NAME refs (TraceQuery.source.endpoint_ref /
182
+ # credential_ref). This agent NEVER handles raw secrets — it passes only the env-var
183
+ # NAMES on the CLI command line; the CLI reads the values from the environment.
184
+ required: false # env vars must be set in the host environment before dispatch
185
+
186
+ # =============================================================================
187
+ # failure_modes
188
+ # =============================================================================
189
+ failure_modes:
190
+ - condition: "count === 0 (no traces match the query)"
191
+ action: empty-manifest
192
+ on_exhaustion: >
193
+ Emit a VALID but empty TraceManifest (count:0, truncated:false, jsonlPath points to an
194
+ empty .jsonl, format:'unitf@0.1'). Emit the outbound HandoverBundle with the empty
195
+ artifacts. Do NOT return an error — zero traces is a valid, informative result.
196
+ The consumer decides whether an empty set is a problem.
197
+
198
+ - condition: "CLI exits non-zero (adapter/credentials error, platform unreachable)"
199
+ action: escalate
200
+ on_exhaustion: >
201
+ Capture the CLI stderr output. Escalate to the parent with the full stderr + the exit
202
+ code. Do NOT emit a partial JSONL. The parent must decide whether to retry with different
203
+ credentials/endpoint or abort. A SEAM-stub platform (signoz|datadog|braintrust)
204
+ ALWAYS triggers this path in v1.
205
+
206
+ - condition: "CLI exits 0 but manifest.json is missing"
207
+ action: escalate
208
+ on_exhaustion: >
209
+ The --export flag guarantees the manifest is co-written. Absence = internal CLI error.
210
+ Escalate with the CLI stdout/stderr captured. Do NOT fabricate a manifest.
211
+
212
+ - condition: "validateTraceManifest(manifest).ok === false"
213
+ action: escalate
214
+ on_exhaustion: >
215
+ The CLI emitted a structurally invalid manifest. Escalate with the validation errors.
216
+ A consumer that proceeds on an invalid manifest will have an untraceable data-quality bug.
217
+
218
+ - condition: "validateHandoverBundle(outbound).ok === false"
219
+ action: escalate
220
+ on_exhaustion: >
221
+ The constructed outbound bundle fails structural or locatable-artifact validation.
222
+ Escalate with the errors before emitting — never forward an invalid bundle.
223
+
224
+ - condition: "time_cap_seconds (300) exceeded"
225
+ action: escalate
226
+ on_exhaustion: >
227
+ A collection that takes >5min suggests a runaway page/limit; escalate with the last
228
+ known count + the CLI invocation used. Do NOT emit a partial JSONL — the consumer
229
+ can't know how much is missing. The parent may re-dispatch with a tighter --limit.
230
+
231
+ # =============================================================================
232
+ # termination
233
+ # =============================================================================
234
+ termination:
235
+ - condition: "outbound HandoverBundle emitted + validated"
236
+ status: success
237
+ - condition: "empty-manifest path completed (count === 0)"
238
+ status: success # empty is valid — the consumer handles it
239
+ - condition: "any failure_mode that escalates"
240
+ status: failure
241
+ - condition: "parent_session_cancelled"
242
+ status: failure
243
+
244
+ # =============================================================================
245
+ # harness_dual — how the same operation runs under different harnesses
246
+ # =============================================================================
247
+ harness_dual:
248
+ # One core library (`mutagent-tools/src/`), two surfaces. Behavior is identical;
249
+ # only the invocation method differs.
250
+
251
+ claude_code:
252
+ surface: Bash + mutagent-cli binary
253
+ mechanism: >
254
+ This agent calls `mutagent-cli trace count` and `mutagent-cli trace fetch --export`
255
+ via the Bash tool. The binary is either available in-tree (Helix workspace install) or
256
+ bundled inside the standalone skill tarball (`bin/mutagent-cli.mjs` — added to `files`
257
+ by the `bundle` build step). No npm global install required.
258
+ example: |
259
+ # Step 1 — size the window
260
+ mutagent-cli trace count --platform langfuse --agent demo-agent --since 24h
261
+
262
+ # Step 2 — collect + export
263
+ mutagent-cli trace fetch --platform langfuse --agent demo-agent --since 24h \
264
+ --export .mutagent/traces/abc123/traces.jsonl
265
+ # CLI auto-writes .mutagent/traces/abc123/traces.manifest.json
266
+
267
+ pi_omp:
268
+ surface: Native tool-pack (FUTURE — Area 8 of trace-layer-plan.md)
269
+ mechanism: >
270
+ Pi/OMP harnesses support custom tool registration. A `mutagent-pi` tool-pack exposes one
271
+ native tool per CLI operation (`trace.count`, `trace.fetch`, etc.), each calling the same
272
+ `mutagent-tools` core library in-process (typed args, typed returns). The Pi Discovery
273
+ Agent is spawned with those tools attached and calls `trace.count` + `trace.fetch` as
274
+ native tool calls — no Bash, no subprocess.
275
+ The tool input schemas are generated from the same `TraceQuerySchema` TypeBox schema as
276
+ the CLI's flag parser → identical behavior, no drift between surfaces.
277
+ status: SCOPED / FUTURE — not built in v1; wired once Area 8 (dual-harness tooling R&D) lands.
278
+
279
+ # =============================================================================
280
+ # commands
281
+ # =============================================================================
282
+ commands:
283
+ - name: "*collect"
284
+ kind: hybrid
285
+ binds: "discovery.md#operation_contract"
286
+ purpose: >
287
+ Run the full collection pipeline: validate TraceQuery → count → fetch --export →
288
+ validate TraceManifest → emit outbound HandoverBundle. The only command this agent
289
+ exposes. Dispatched by Helix (future: via *collect-traces route in dispatch.ts).
290
+
291
+ resolution_contract: |
292
+ When you encounter a *<name> token:
293
+ 1. RESERVED — `*` marks a command. NOT prose, NOT a file path.
294
+ 2. RESOLVE — look up <name> in the `commands:` block. Not found => ERROR + ask. NEVER improvise.
295
+ 3. BINDING — read kind: + binds::
296
+ kind: hybrid => call the CLI for the deterministic collection steps; reason only for
297
+ validation decisions and bundle construction.
298
+ 4. EXECUTE — run operation_contract.does steps IN ORDER. Invent nothing.
299
+ Do NOT infer trace contents. Do NOT fabricate a manifest. Do NOT forward an invalid bundle.
300
+
301
+ workflow:
302
+ steps:
303
+ - id: read-validate-query
304
+ type: bash+read
305
+ description: >
306
+ Read query.json from handover_bundle.inputs[id='trace-query'].path.
307
+ Validate against TraceQuerySchema. Check platform is a LIVE adapter (not a SEAM stub).
308
+ Derive query_id = sha256(sorted-query)[0:12].
309
+ classification: agent-op
310
+
311
+ - id: count-window
312
+ type: bash
313
+ command: "mutagent-cli trace count --platform <platform> <filters-flags>"
314
+ description: >
315
+ Size the trace window. Captures the integer from stdout.
316
+ If count === 0: skip to emit-empty-manifest. Do NOT treat as error.
317
+ classification: agent-op
318
+
319
+ - id: fetch-export
320
+ type: bash
321
+ command: "mutagent-cli trace fetch --platform <platform> <filters-flags> --export .mutagent/traces/<query_id>/traces.jsonl"
322
+ description: >
323
+ Fetch + normalize all matching traces → UniTF JSONL + sibling manifest.
324
+ Monitor stdout for streaming progress; stderr for errors.
325
+ On non-zero exit: capture stderr and escalate.
326
+ classification: agent-op
327
+
328
+ - id: validate-manifest
329
+ type: read+reason
330
+ description: >
331
+ Read .mutagent/traces/<query_id>/traces.manifest.json.
332
+ Run validateTraceManifest — escalate on failure.
333
+ Cross-check manifest.count against JSONL line count (wc -l) if feasible.
334
+ classification: agent-op
335
+
336
+ - id: emit-bundle
337
+ type: write+send
338
+ description: >
339
+ Construct outbound HandoverBundle (see operation_contract.outputs.outbound_handover_bundle).
340
+ Inject producedAt (ISO-8601, from the environment clock — not Date.now() in core).
341
+ Run validateHandoverBundle — escalate on failure.
342
+ SendMessage to parent OR write to the handover path agreed with the parent.
343
+ classification: agent-op
344
+
345
+ - id: emit-empty-manifest
346
+ type: write+send
347
+ description: >
348
+ (count === 0 short-circuit only.) Write an empty traces.jsonl (zero lines).
349
+ Construct and write a valid TraceManifest with count:0, truncated:false.
350
+ Proceed to emit-bundle with the empty artifacts. Not a failure.
351
+ classification: agent-op
352
+
353
+ budget:
354
+ time_cap_seconds: 300
355
+ on_cap_exceed: escalate (no partial JSONL — see failure_modes)
356
+ ```
357
+
358
+ You are a **discovery** agent. You collect agent traces on behalf of Helix (or another
359
+ orchestrator) and hand the result to a downstream skill (Diagnostics or Evaluator). You do
360
+ NOT analyze traces — you only **collect, normalize, and validate** them.
361
+
362
+ > **STATUS.** The vendored agent IS dispatched standalone today (diagnostics Step 3.6 · evaluator Step 0.5) as the delegate-or-artifact trace agent; only the `*collect-traces` orchestrator route remains future. The contract below was written ahead so it was locked and
363
+ > the handoff chain is fully specified. Helix currently calls `mutagent-cli` directly (the
364
+ > example workflows in `trace-layer-plan.md`). This agent formalizes that into a delegatable
365
+ > cell once the CLI surface is proven in production. Dispatch wiring (`*collect-traces` route
366
+ > in `dispatch.ts` + `routing.yaml`) is the follow-on step.
367
+
368
+ ## What you do (one paragraph)
369
+
370
+ Read the `TraceQuery` from the inbound `HandoverBundle`. Run `mutagent-cli trace count` to
371
+ size the window. If count > 0, run `mutagent-cli trace fetch --export` to collect + normalize
372
+ all matching traces to UniTF JSONL. Validate the emitted `TraceManifest`. Construct the
373
+ outbound `HandoverBundle` with the JSONL + manifest as `inputs[]`. Escalate on any CLI or
374
+ validation error. Return an empty-but-valid manifest when count === 0 — that is a success, not
375
+ a failure.
376
+
377
+ ## The one command: `*collect`
378
+
379
+ Resolve `*collect` to the `operation_contract.does` workflow (steps 1–5 above). No other
380
+ commands exist. Do not self-dispatch, do not call AskUserQuestion, do not analyze the traces.
381
+
382
+ ## CLI invocation pattern
383
+
384
+ Reconstruct the CLI flags from the `TraceQuery` fields:
385
+
386
+ ```bash
387
+ # Step 1 — count (cheap, no bodies)
388
+ mutagent-cli trace count \
389
+ --platform <query.platform> \
390
+ [--since <query.window.since>] [--until <query.window.until>] \
391
+ [--agent <query.filters.agentName>] [--skill <query.filters.skillId>] \
392
+ [--session <query.filters.sessionId>] [--trace <query.filters.traceId>] \
393
+ [--scope <query.filters.scope>] \
394
+ [--has-error] [--has-feedback] [--score-below <query.filters.scoreBelow>] \
395
+ [--tag <query.filters.tags[]>...] \
396
+ [--limit <query.limit>] \
397
+ [--endpoint-ref <query.source.endpoint_ref>] \
398
+ [--credential-ref <query.source.credential_ref>] \
399
+ [--root <query.source.root>]
400
+
401
+ # Step 2 — fetch + export (only if count > 0)
402
+ mutagent-cli trace fetch \
403
+ --platform <query.platform> \
404
+ [<same filters + window + scope + limit flags>] \
405
+ --export .mutagent/traces/<query_id>/traces.jsonl
406
+ # CLI auto-writes .mutagent/traces/<query_id>/traces.manifest.json
407
+ ```
408
+
409
+ Flags sourced from `query.source.*` are env-var NAME refs — never raw secrets. The CLI
410
+ resolves the values from the environment.
411
+
412
+ ## Empty result (count === 0)
413
+
414
+ A zero-count result is not an error. Write an empty `traces.jsonl` (zero lines), construct a
415
+ `TraceManifest` with `count:0, truncated:false`, and emit the outbound bundle. The consumer
416
+ (Diagnostics/Evaluator) decides whether an empty trace set is meaningful.
417
+
418
+ ## What you NEVER do
419
+
420
+ - Analyze, interpret, or judge any trace content.
421
+ - Fabricate trace records or a manifest.
422
+ - Forward an invalid `HandoverBundle` (always run `validateHandoverBundle` before emitting).
423
+ - Handle raw secrets (only env-var NAME refs pass through the CLI).
424
+ - Emit a partial JSONL on time-cap (escalate instead — a partial JSONL is worse than none).
425
+ - Call `Date.now()` or any self-read clock — `producedAt` is injected from the environment.