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