MTG Commander deck builder with multi-agent pipeline. Build synergy-dense, format-legal, budget-compliant 100-card Commander decklists. Synergy-first card selection via Scryfall API. Triggers on phrases like "build a commander deck", "MTG deck", "commander deck", "EDH deck", "build me a deck", "100-card deck", "commander pipeline", "deck builder".
Multi-agent pipeline for building optimized, format-legal, budget-compliant Commander (EDH) decklists.
User-facing guide: see
README.mdfor install, quick start, and troubleshooting. Config authoring walkthrough atreferences/config-walkthrough.md.
Every pipeline step — primary agents and challenger agents alike — MUST be dispatched as a separate sub-agent via the Agent tool. This is NON-NEGOTIABLE.
NEVER inline any pipeline step. Running a pipeline step inside the orchestrator's own context instead of spawning a dedicated sub-agent is a GUARDRAIL VIOLATION. If you catch yourself thinking "I'll just run this step inline to save time," stop. That thought is the violation.
Rationale:
Anti-pattern (from real session 0876a59e):
"I'll run the agent roles inline to keep things moving..."
This collapsed all four agents into a single context window, destroyed adversarial independence, and produced a deck with 14 undetected color identity violations. The correction loop never fired because there were no agent boundaries to trigger it. NEVER repeat this.
All 8 dispatches (4 primary + 4 challenger) MUST be separate Agent tool invocations. No exceptions. No "just this once." No "it's a simple deck."
At pipeline start (after intake confirmation, before the pipeline banner), check the user's working directory for .mtg-commander.yml.
If absent: Use all defaults. Output a one-line note: No .mtg-commander.yml found — using defaults. Create one to customize loop caps, price goals, and escalation.
If present: Validate keys against the schema below. Apply overrides for recognized keys. Use defaults for any missing keys. Warn on invalid or unrecognized keys (list their names) but NEVER fail the pipeline due to config. A parse-failure (invalid YAML) also warns and falls back to all defaults.
Status line (shown after intake, before banner):
Config loaded from .mtg-commander.yml (version 1)No .mtg-commander.yml found — using defaults.