feat(exodia)!: collapse turbo-fix + fix-pipeline into one /exodia:fix (v3.0.0) - #305
Conversation
… (v3.0.0) BREAKING: removes /exodia:turbo-fix and /exodia:fix-pipeline. Both were the SAME 4-gated pipeline as `fix`, re-skinned: - fix-pipeline ⊂ fix standard — identical phases, agents merely renamed (root-cause-analyst≡root-cause-hunter, context-gatherer≡code-explorer); its "audit findings" identity is the findings.json inheritance fix already does in STEP -1. - turbo-fix ≈ fix maximum — same 6+4 agents, same gates, same STEP -1; fix already exposes `severity P0` and `parallelism maximum`. `fix` already carried every argument. Migration: /exodia:turbo-fix <issue> → /exodia:fix <issue> P0 maximum /exodia:fix-pipeline <issue> → /exodia:fix <issue> (auto-inherits findings.json) Capability is GAINED, not lost: turbo-fix's atomic TDD (one agent owns tests AND code — "never split test-writing from implementation") was the one real difference, and it is now fix's default implement phase, replacing the weaker split test-writer. Same collapse the marketplace already applied to charon in #294. Rewrote all 8 cross-references (council, mega-swarm ×2, exodia hooks.json, README, both manifests). exodia 2.2.2 → 3.0.0. Net -510 lines. Verified: 0 dangling refs, JSON valid, cc-plugin-eval 98/A with 0 CC710 (every remaining subagent ref resolves). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Collapses Exodia’s two specialized fix commands (/exodia:turbo-fix, /exodia:fix-pipeline) into a single argument-dispatched /exodia:fix and bumps exodia to v3.0.0 to reflect the breaking command removals.
Changes:
- Removed the redundant
/exodia:turbo-fixand/exodia:fix-pipelinecommand definitions and consolidated behavior into/exodia:fix. - Updated Exodia command docs and hook prompts to reference
/exodia:fixand “auto-inherit” findings flow. - Bumped Exodia version metadata in plugin manifest + marketplace entry and updated an external cross-reference in
council.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/exodia/README.md | Updates Exodia command list and workflow examples to reflect the single /exodia:fix entry point. |
| plugins/exodia/hooks/hooks.json | Updates workflow-state recovery prompt to reference fix instead of removed workflows. |
| plugins/exodia/commands/turbo-fix.md | Deletes the removed command implementation/documentation. |
| plugins/exodia/commands/mega-swarm.md | Updates audit output guidance to route findings into /exodia:fix. |
| plugins/exodia/commands/fix.md | Updates /exodia:fix documentation to absorb “turbo-fix” atomic TDD behavior and remove test-writer. |
| plugins/exodia/commands/fix-pipeline.md | Deletes the removed command implementation/documentation. |
| plugins/exodia/.claude-plugin/plugin.json | Bumps Exodia plugin version to 3.0.0 and updates description. |
| plugins/council/commands/council.md | Updates guidance for P0 bugs to the new /exodia:fix <issue> P0 maximum invocation. |
| .claude-plugin/marketplace.json | Updates marketplace metadata for Exodia version/description to match v3.0.0 and 7-command state. |
| @@ -1,5 +1,5 @@ | |||
| --- | |||
| description: "IF bug fix needed THEN use this. 4 gated phases, 8 agents (standard) or 16 (maximum). For P0 critical → turbo-fix. From audit findings → fix-pipeline." | |||
| description: "IF a bug needs fixing THEN use this — the one exodia fix command. 4 gated phases (analyze → design → implement → verify). Args: severity P0|P1|P2|P3 and parallelism standard|maximum (use maximum for P0 emergencies). Auto-inherits audit findings.json from a prior mega-swarm / eight-gates run when present." | |||
| | `/exodia:turbo-fix` | 13 | Phased pipeline | P0 critical bugs | | ||
| | `/exodia:fix` | 8-16 | Configurable pipeline | Any bug fix | | ||
| | `/exodia:fix-pipeline` | 7 | Systematic pipeline | Audit findings | | ||
| | `/exodia:fix` | 8-14 | Gated pipeline (`severity` P0-P3, `parallelism` standard\|maximum) | Any bug — ad-hoc, P0 (add `maximum`), or audit findings (auto-inherited) | |
| 2. Audit the codebase → /exodia:mega-swarm mode=quick | ||
| 3. Exterminate warnings → /exodia:baryon-mode path/to/Solution.sln | ||
| 4. Fix critical issues → /exodia:turbo-fix (P0) or /exodia:fix (P1/P2) | ||
| 4. Fix any issue → /exodia:fix "issue" (add `maximum` for P0; auto-inherits audit findings) |
| |---|----------|-------|----------| | ||
|
|
||
| **Next:** `/fix-pipeline "[P0 issue]"` | ||
| **Next:** `/exodia:fix "[P0 issue]"` — it auto-inherits these findings from `findings.json`. |
| "description": "Multi-agent workflow orchestration (7 commands + 2 skills: eight-gates, hades): fix, tournament, mega-swarm, deep-think, batch-implement, red-blue-review, baryon-mode. Hades, eight-gates, and red-blue-review use Teams API for reactive collaboration.", | ||
| "version": "3.0.0", |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f4d289ffc5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| |---|----------|-------|----------| | ||
|
|
||
| **Next:** `/fix-pipeline "[P0 issue]"` | ||
| **Next:** `/exodia:fix "[P0 issue]"` — it auto-inherits these findings from `findings.json`. |
There was a problem hiding this comment.
Pass the finding id to preserve audit inheritance
This replacement points audit users at /exodia:fix "[P0 issue]", but the consolidated fix command still says to filter prior findings by finding.id matching $0 (plugins/exodia/commands/fix.md:53), and the SessionStart index exposes ids separately from titles. In the common mega-swarm flow where the user copies the issue title from this report, the lookup will miss and the advertised auto-inheritance of fix, files, and severity will not happen; either instruct users to pass the finding id or make fix match titles/scope too.
Useful? React with 👍 / 👎.
| 2. Audit the codebase → /exodia:mega-swarm mode=quick | ||
| 3. Exterminate warnings → /exodia:baryon-mode path/to/Solution.sln | ||
| 4. Fix critical issues → /exodia:turbo-fix (P0) or /exodia:fix (P1/P2) | ||
| 4. Fix any issue → /exodia:fix "issue" (add `maximum` for P0; auto-inherits audit findings) |
There was a problem hiding this comment.
Include the severity before maximum
For users following this migration example for a P0, adding only maximum after the issue does not actually select maximum mode because fix parses $1 as severity and $2 as parallelism (plugins/exodia/commands/fix.md:11-13). /exodia:fix "issue" maximum therefore leaves $2 at its default standard and gives the workflow an invalid severity instead of the intended P0 maximum pipeline; the example should show P0 maximum.
Useful? React with 👍 / 👎.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 31d197e4dd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| 2. Audit the codebase → /exodia:mega-swarm mode=quick | ||
| 3. Exterminate warnings → /exodia:baryon-mode path/to/Solution.sln | ||
| 4. Fix critical issues → /exodia:turbo-fix (P0) or /exodia:fix (P1/P2) | ||
| 4. Fix any issue → /exodia:fix "issue" (add `maximum` for P0; auto-inherits audit findings) |
There was a problem hiding this comment.
Show the full P0 maximum invocation
For the P0 case this example tells users to add only maximum, but fix.md still treats $1 as severity and $2 as parallelism. A user following this as /exodia:fix "issue" maximum will pass maximum as the severity and leave parallelism at the standard default, so the max-only agents described by the migration will not run; the example should show P0 maximum.
Useful? React with 👍 / 👎.
| |---|----------|-------|----------| | ||
|
|
||
| **Next:** `/fix-pipeline "[P0 issue]"` | ||
| **Next:** `/exodia:fix "[P0 issue]"` — it auto-inherits these findings from `findings.json`. |
There was a problem hiding this comment.
Pass the persisted finding id to fix
After a mega-swarm run, the persisted JSON includes an id for each finding, and /exodia:fix only injects prior context when finding.id matches $0 (fix.md line 53). This new handoff tells users to pass the rendered P0 issue title from the report table, which has no id column; in that scenario the match misses and fix re-discovers the issue instead of using the stored fix, files, and severity.
Useful? React with 👍 / 👎.
| @@ -1,5 +1,5 @@ | |||
| --- | |||
| description: "IF bug fix needed THEN use this. 4 gated phases, 8 agents (standard) or 16 (maximum). For P0 critical → turbo-fix. From audit findings → fix-pipeline." | |||
| description: "IF a bug needs fixing THEN use this — the one exodia fix command. 4 gated phases (analyze → design → implement → verify). Args: severity P0|P1|P2|P3 and parallelism standard|maximum (use maximum for P0 emergencies). Auto-inherits audit findings.json from a prior mega-swarm / eight-gates run when present." | |||
There was a problem hiding this comment.
Don't claim eight-gates auto-inheritance
This expanded description promises auto-inheritance after an eight-gates run, but the eight-gates checkpoint path caches its merged findings with session-state.sh artifact add "findings" (plugins/exodia/skills/eight-gates/templates/gate-04-checkpoint.md line 22), which writes .eight-gates/artifacts/findings, not the .eight-gates/artifacts/findings.json file that fix reads. Users coming from eight-gates therefore get no injected fix/files context and the consolidated command falls back to rediscovery.
Useful? React with 👍 / 👎.
…ugins in table & tree The README claimed "9 plugins, 22 commands, 14 skills, 21 agents", and BOTH its Plugins table and the ASCII tree under "Technical details" listed only 9 of the 13 plugins. - Counts → 13 plugins, 24 commands, 24 skills, 30 agents. SHIPPED marketplace plugins only: excludes cc-plugin-eval/fixtures/ (5 fixture skills + 2 fixture agents — a test corpus, not marketplace components), noted inline. - Added the 4 missing plugins to BOTH the table and the tree: charon, derot, nihil, tomevault-publish. - Fixed the tree's stale "exodia (9 commands)" → 7 (after #305 collapsed turbo-fix + fix-pipeline into fix). Addresses the Codex + Copilot review on this PR (fixture-inflated counts; un-updated tree). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ugins in table & tree (#306) The README claimed "9 plugins, 22 commands, 14 skills, 21 agents", and BOTH its Plugins table and the ASCII tree under "Technical details" listed only 9 of the 13 plugins. - Counts → 13 plugins, 24 commands, 24 skills, 30 agents. SHIPPED marketplace plugins only: excludes cc-plugin-eval/fixtures/ (5 fixture skills + 2 fixture agents — a test corpus, not marketplace components), noted inline. - Added the 4 missing plugins to BOTH the table and the tree: charon, derot, nihil, tomevault-publish. - Fixed the tree's stale "exodia (9 commands)" → 7 (after #305 collapsed turbo-fix + fix-pipeline into fix). Addresses the Codex + Copilot review on this PR (fixture-inflated counts; un-updated tree). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ITECTURE after the v3 collapse (v3.0.1) (#310) The fix-family collapse (PR #305) folded turbo-fix/fix-pipeline into a single arg-dispatched /exodia:fix whose real spec is $0=issue, $1=severity (default P1; P0|P1|P2|P3), $2=parallelism (default standard; standard|maximum). Codex and Copilot flagged the migration docs as misleading. Verified each claim against commands/fix.md and corrected: - P0 invocation: a P0 run needs BOTH `P0` (2nd arg) AND `maximum` (3rd arg). Adding only `maximum` runs P1-maximum. Replaced every "add maximum for P0" with the full `P0 maximum` form in exodia/README.md (flow line + fix-row "Best For") and fix.md's description frontmatter ("for a P0 emergency pass `P0 maximum`"). council.md already used the correct full form — left as-is. - Agent counts: after #305 dropped the separate test-writer, fix runs standard 3+2+1=6 and maximum 6+4+2=12. README fix-row "8-14" -> "6-12". - Stale ARCHITECTURE: exodia "9 commands" -> "7 commands". No turbo-fix / fix-pipeline strings remain anywhere in the repo (rg: 0 hits). - mega-swarm "Next:" line: fix's STEP -1 filters findings.json by finding.id matching $0, so the P0 handoff now passes `"<finding-id>" P0` (id + severity), not prose. - Dropped "eight-gates" from fix.md's auto-inherit claim: eight-gates only READS .eight-gates/artifacts/findings.json (its STEP -1) and writes its own work-queue.json / kill-list artifacts — it never produces findings.json. Only mega-swarm (STEP FINAL) and hades write that file. Claim now reads "from a prior mega-swarm run". Docs-only; analyzer steady at 98/100 Grade A (0 fail/0 warn), JSON valid. Version bump 3.0.0 -> 3.0.1 (patch) in plugin.json + marketplace entry. Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What
Collapses
/exodia:turbo-fix+/exodia:fix-pipelineinto the one arg-dispatched/exodia:fix. Breaking — exodia 2.2.2 → 3.0.0 (two published commands removed).Why it's a clean gain (I read all three in full — not nihil's say-so)
fix-pipeline⊂fixstandard: identical 4-gate pipeline; agents merely renamed (root-cause-analyst≡root-cause-hunter,context-gatherer≡code-explorer). Its "audit findings" identity is thefindings.jsoninheritancefixalready does in STEP -1.turbo-fix≈fix maximum: same 6+4 agents, same gates, same STEP -1;fixalready exposesseverity P0andparallelism maximum.So
fixalready carried every argument — the other two were framing.Migration
/exodia:turbo-fix <issue>/exodia:fix <issue> P0 maximum/exodia:fix-pipeline <issue>/exodia:fix <issue>(auto-inheritsfindings.json)Capability gained, not lost
turbo-fix's atomic TDD — one agent owns tests AND code, "never split test-writing from implementation, they diverge" — was the single real difference. It's nowfix's default implement phase, replacing the weaker splittest-writer.Scope & verification
hooks.json, README,plugin.json,marketplace.json).rg turbo-fix|fix-pipeline→ 0 dangling refs; JSON valid;cc-plugin-eval analyze exodia→ 98/A, 0 fail/warn, 0 CC710 (every remaining subagent ref resolves).Mirrors the charon single-command collapse (#294); last of the nihil consolidation wave.
🤖 Generated with Claude Code