{
  "version": 2,
  "combos": [
    {
      "id": "python-code-reviewer-03ab4f",
      "name": "Python Code Reviewer (Dual)",
      "pattern": "parallel",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Three specialists audit Python code: bugs, style/idioms, and performance.",
      "steps": [
        {
          "id": "bugs",
          "model": "qwen2.5-coder:1.5b",
          "role": "Bug Hunter",
          "system": "List ONLY Python syntax errors, logic flaws, likely bugs as short bullets. No praise, no rewrite.",
          "runner": "ollama"
        },
        {
          "id": "style",
          "model": "gemma-3-4b-it",
          "role": "Idiom Checker",
          "system": "Point out non-idiomatic Python — what a senior Python dev would flag in review. Bullets only.",
          "runner": "localai"
        },
        {
          "id": "perf",
          "model": "llama3.2:1b",
          "role": "Performance",
          "system": "Report ONLY performance concerns for this Python code — hot loops, allocations, complexity. Bullets.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "javascript-refactor-pass-bc0eb1",
      "name": "JavaScript Refactor Pass (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Refactor JavaScript code for clarity, then verify nothing broke.",
      "steps": [
        {
          "id": "refactor",
          "model": "qwen2.5-coder:3b",
          "role": "Refactorer",
          "system": "Rewrite the given JavaScript code for clarity and idiom. Output only the revised code.",
          "runner": "ollama"
        },
        {
          "id": "verify",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Verifier",
          "system": "Sanity-check the refactored JavaScript code against the original — same behavior? List any risk in 3 bullets max.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "go-test-generator-e1a157",
      "name": "Go Test Generator (Dual)",
      "pattern": "parallel",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Generate Go unit tests: happy path, edge cases, and failure modes, in parallel.",
      "steps": [
        {
          "id": "happy",
          "model": "llama3.2:1b",
          "role": "Happy Path",
          "system": "Write Go unit tests for the normal/expected inputs only.",
          "runner": "ollama"
        },
        {
          "id": "edge",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Edge Cases",
          "system": "Write Go unit tests for boundary/edge-case inputs only.",
          "runner": "localai"
        },
        {
          "id": "fail",
          "model": "gemma2:2b",
          "role": "Failure Modes",
          "system": "Write Go unit tests for invalid input / error conditions only.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "rust-docs-7b53b6",
      "name": "Rust → Docs (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Turn Rust code into a short README, then tighten it.",
      "steps": [
        {
          "id": "draft",
          "model": "llama3.2:3b",
          "role": "Doc Writer",
          "system": "Write a concise Markdown README for this Rust code: what it does, how to use it.",
          "runner": "ollama"
        },
        {
          "id": "tighten",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Editor",
          "system": "Tighten the README — cut fluff, keep only what a new user actually needs.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "java-bug-triage-56bd5e",
      "name": "Java Bug Triage (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Error/log in Java → root cause → fix → a test to prevent regression.",
      "steps": [
        {
          "id": "cause",
          "model": "gemma2:2b",
          "role": "Diagnoser",
          "system": "Given a Java error/log, state the most likely root cause in 2-3 sentences.",
          "runner": "ollama"
        },
        {
          "id": "fix",
          "model": "qwen_qwen3.5-2b",
          "role": "Fixer",
          "system": "Propose a concrete Java code fix for the diagnosed cause. Code only, minimal diff.",
          "runner": "localai"
        },
        {
          "id": "test",
          "model": "qwen2.5:3b",
          "role": "Test Writer",
          "system": "Write one Java regression test that would have caught this bug.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "php-api-designer-43c2fb",
      "name": "PHP API Designer (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Idea → REST endpoints in PHP conventions → example payloads.",
      "steps": [
        {
          "id": "endpoints",
          "model": "qwen2.5:1.5b",
          "role": "API Designer",
          "system": "Given a feature idea, propose REST endpoints following PHP-ecosystem conventions.",
          "runner": "ollama"
        },
        {
          "id": "payloads",
          "model": "gemma-3-1b-it",
          "role": "Example Writer",
          "system": "Write example request/response JSON payloads for the proposed endpoints.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "c-duel-8eafe3",
      "name": "C# Duel (Dual)",
      "pattern": "judge",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Two C# coders solve the same task differently; a judge picks the cleaner one.",
      "steps": [
        {
          "id": "a",
          "model": "qwen2.5:3b",
          "role": "Coder A",
          "system": "Solve the given task in C#, straightforward/imperative style. Code only.",
          "runner": "ollama"
        },
        {
          "id": "b",
          "model": "gemma-3-4b-it",
          "role": "Coder B",
          "system": "Solve the given task in C#, a more functional/idiomatic style. Code only.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "typescript-commit-writer-b751e4",
      "name": "TypeScript Commit Writer (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "TypeScript diff/notes → summary → Conventional Commit message.",
      "steps": [
        {
          "id": "summary",
          "model": "deepseek-r1:1.5b",
          "role": "Summarizer",
          "system": "Summarize what this TypeScript diff/change actually does, in plain English.",
          "runner": "ollama"
        },
        {
          "id": "commit",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Commit Writer",
          "system": "Write a Conventional Commits message (type, scope, subject, body) for this change.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "ruby-dockerize-201934",
      "name": "Ruby Dockerize (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "App description (Ruby) → Dockerfile → run notes.",
      "steps": [
        {
          "id": "dockerfile",
          "model": "smollm2:1.7b",
          "role": "Dockerfile Author",
          "system": "Write a production-sane Dockerfile for this Ruby app description.",
          "runner": "ollama"
        },
        {
          "id": "notes",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Notes Writer",
          "system": "Write 3-5 short run/build notes for the Dockerfile above.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "kotlin-explainer-e98f21",
      "name": "Kotlin Explainer (Dual)",
      "pattern": "parallel",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Kotlin code → plain-English explanation + complexity + risk notes, in parallel.",
      "steps": [
        {
          "id": "explain",
          "model": "qwen2.5-coder:1.5b",
          "role": "Explainer",
          "system": "Explain what this Kotlin code does in plain English, no jargon.",
          "runner": "ollama"
        },
        {
          "id": "complexity",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Complexity",
          "system": "State the time/space complexity of this Kotlin code in one line, with reasoning.",
          "runner": "localai"
        },
        {
          "id": "risk",
          "model": "llama3.2:1b",
          "role": "Risk Spotter",
          "system": "List any risk (security, correctness, maintainability) in this Kotlin code. Bullets.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "swift-code-reviewer-e3b2e2",
      "name": "Swift Code Reviewer (Dual)",
      "pattern": "parallel",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Three specialists audit Swift code: bugs, style/idioms, and performance.",
      "steps": [
        {
          "id": "bugs",
          "model": "qwen2.5-coder:3b",
          "role": "Bug Hunter",
          "system": "List ONLY Swift syntax errors, logic flaws, likely bugs as short bullets. No praise, no rewrite.",
          "runner": "ollama"
        },
        {
          "id": "style",
          "model": "qwen_qwen3.5-2b",
          "role": "Idiom Checker",
          "system": "Point out non-idiomatic Swift — what a senior Swift dev would flag in review. Bullets only.",
          "runner": "localai"
        },
        {
          "id": "perf",
          "model": "llama3.2:3b",
          "role": "Performance",
          "system": "Report ONLY performance concerns for this Swift code — hot loops, allocations, complexity. Bullets.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "c-refactor-pass-73dfbb",
      "name": "C++ Refactor Pass (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Refactor C++ code for clarity, then verify nothing broke.",
      "steps": [
        {
          "id": "refactor",
          "model": "llama3.2:1b",
          "role": "Refactorer",
          "system": "Rewrite the given C++ code for clarity and idiom. Output only the revised code.",
          "runner": "ollama"
        },
        {
          "id": "verify",
          "model": "gemma-3-1b-it",
          "role": "Verifier",
          "system": "Sanity-check the refactored C++ code against the original — same behavior? List any risk in 3 bullets max.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "bash-test-generator-0913fc",
      "name": "Bash Test Generator (Dual)",
      "pattern": "parallel",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 3000,
      "desc": "Generate Bash unit tests: happy path, edge cases, and failure modes, in parallel.",
      "steps": [
        {
          "id": "happy",
          "model": "llama3.2:3b",
          "role": "Happy Path",
          "system": "Write Bash unit tests for the normal/expected inputs only.",
          "runner": "ollama"
        },
        {
          "id": "edge",
          "model": "gemma-3-4b-it",
          "role": "Edge Cases",
          "system": "Write Bash unit tests for boundary/edge-case inputs only.",
          "runner": "localai"
        },
        {
          "id": "fail",
          "model": "qwen2.5:1.5b",
          "role": "Failure Modes",
          "system": "Write Bash unit tests for invalid input / error conditions only.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "sql-docs-12dca7",
      "name": "SQL → Docs (Dual)",
      "pattern": "sequential",
      "category": "coding",
      "use_rag": "optional",
      "est_vram_mb": 2800,
      "desc": "Turn SQL code into a short README, then tighten it.",
      "steps": [
        {
          "id": "draft",
          "model": "gemma2:2b",
          "role": "Doc Writer",
          "system": "Write a concise Markdown README for this SQL code: what it does, how to use it.",
          "runner": "ollama"
        },
        {
          "id": "tighten",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Editor",
          "system": "Tighten the README — cut fluff, keep only what a new user actually needs.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "client-proposal-triage-255714",
      "name": "Client Proposal Triage (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy a client proposal text → 3-bullet summary + action items + tone read, in parallel.",
      "steps": [
        {
          "id": "summary",
          "model": "qwen2.5-coder:1.5b",
          "role": "Summarizer",
          "system": "Summarize this a client proposal in exactly 3 bullets.",
          "runner": "ollama"
        },
        {
          "id": "actions",
          "model": "gemma-3-4b-it",
          "role": "Action Extractor",
          "system": "List only concrete action items found in this a client proposal, as bullets.",
          "runner": "localai"
        },
        {
          "id": "tone",
          "model": "llama3.2:1b",
          "role": "Tone Reader",
          "system": "State the tone of this a client proposal in one sentence (e.g. urgent, neutral, frustrated).",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "status-report-composer-333f3b",
      "name": "Status Report Composer (Dual)",
      "pattern": "sequential",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Intent → draft a status report → tone polish → subject/TL;DR.",
      "steps": [
        {
          "id": "draft",
          "model": "qwen2.5-coder:3b",
          "role": "Drafter",
          "system": "Write a first draft of a status report given the stated intent.",
          "runner": "ollama"
        },
        {
          "id": "polish",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Polisher",
          "system": "Polish the tone of this a status report draft — professional, clear, no filler.",
          "runner": "localai"
        },
        {
          "id": "meta",
          "model": "llama3.2:3b",
          "role": "Summarizer",
          "system": "Write a one-line subject and a 2-sentence TL;DR for this a status report.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "support-ticket-reply-qa-24a342",
      "name": "Support Ticket Reply QA (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Long a support ticket reply → TL;DR + outline + key terms + open questions.",
      "steps": [
        {
          "id": "tldr",
          "model": "llama3.2:1b",
          "role": "TL;DR Writer",
          "system": "Write a 2-sentence TL;DR of this a support ticket reply.",
          "runner": "ollama"
        },
        {
          "id": "outline",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Outliner",
          "system": "Extract a section-by-section outline of this a support ticket reply.",
          "runner": "localai"
        },
        {
          "id": "terms",
          "model": "gemma2:2b",
          "role": "Term Extractor",
          "system": "List key terms/jargon used in this a support ticket reply, with one-line definitions.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "internal-memo-extractor-a4cf27",
      "name": "Internal Memo Extractor (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy an internal memo text → structured line items + totals/dates + anomalies.",
      "steps": [
        {
          "id": "items",
          "model": "llama3.2:3b",
          "role": "Extractor",
          "system": "Extract structured line items from this an internal memo as a table.",
          "runner": "ollama"
        },
        {
          "id": "dates",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Date Finder",
          "system": "List every date/deadline mentioned in this an internal memo.",
          "runner": "localai"
        },
        {
          "id": "anomalies",
          "model": "qwen2.5:1.5b",
          "role": "Anomaly Spotter",
          "system": "Flag anything in this an internal memo that looks inconsistent or wrong.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "press-release-rewriter-5b26f4",
      "name": "Press Release Rewriter (Dual)",
      "pattern": "sequential",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2400,
      "desc": "Rough a press release → polish → keyword pass.",
      "steps": [
        {
          "id": "polish",
          "model": "gemma2:2b",
          "role": "Polisher",
          "system": "Polish this rough a press release draft for grammar and flow.",
          "runner": "ollama"
        },
        {
          "id": "keywords",
          "model": "qwen_qwen3.5-2b",
          "role": "Keyword Pass",
          "system": "Add/verify relevant keywords a reader or search would expect in this a press release.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "job-posting-triage-ab1474",
      "name": "Job Posting Triage (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy a job posting text → 3-bullet summary + action items + tone read, in parallel.",
      "steps": [
        {
          "id": "summary",
          "model": "qwen2.5:1.5b",
          "role": "Summarizer",
          "system": "Summarize this a job posting in exactly 3 bullets.",
          "runner": "ollama"
        },
        {
          "id": "actions",
          "model": "gemma-3-1b-it",
          "role": "Action Extractor",
          "system": "List only concrete action items found in this a job posting, as bullets.",
          "runner": "localai"
        },
        {
          "id": "tone",
          "model": "deepseek-r1:1.5b",
          "role": "Tone Reader",
          "system": "State the tone of this a job posting in one sentence (e.g. urgent, neutral, frustrated).",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "performance-review-composer-07e50c",
      "name": "Performance Review Composer (Dual)",
      "pattern": "sequential",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Intent → draft a performance review → tone polish → subject/TL;DR.",
      "steps": [
        {
          "id": "draft",
          "model": "qwen2.5:3b",
          "role": "Drafter",
          "system": "Write a first draft of a performance review given the stated intent.",
          "runner": "ollama"
        },
        {
          "id": "polish",
          "model": "gemma-3-4b-it",
          "role": "Polisher",
          "system": "Polish the tone of this a performance review draft — professional, clear, no filler.",
          "runner": "localai"
        },
        {
          "id": "meta",
          "model": "smollm2:1.7b",
          "role": "Summarizer",
          "system": "Write a one-line subject and a 2-sentence TL;DR for this a performance review.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "policy-document-qa-a4cb9a",
      "name": "Policy Document QA (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Long a policy document → TL;DR + outline + key terms + open questions.",
      "steps": [
        {
          "id": "tldr",
          "model": "deepseek-r1:1.5b",
          "role": "TL;DR Writer",
          "system": "Write a 2-sentence TL;DR of this a policy document.",
          "runner": "ollama"
        },
        {
          "id": "outline",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Outliner",
          "system": "Extract a section-by-section outline of this a policy document.",
          "runner": "localai"
        },
        {
          "id": "terms",
          "model": "qwen2.5-coder:1.5b",
          "role": "Term Extractor",
          "system": "List key terms/jargon used in this a policy document, with one-line definitions.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "user-manual-section-extractor-ac4db5",
      "name": "User Manual Section Extractor (Dual)",
      "pattern": "parallel",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy a user manual section text → structured line items + totals/dates + anomalies.",
      "steps": [
        {
          "id": "items",
          "model": "smollm2:1.7b",
          "role": "Extractor",
          "system": "Extract structured line items from this a user manual section as a table.",
          "runner": "ollama"
        },
        {
          "id": "dates",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Date Finder",
          "system": "List every date/deadline mentioned in this a user manual section.",
          "runner": "localai"
        },
        {
          "id": "anomalies",
          "model": "qwen2.5-coder:3b",
          "role": "Anomaly Spotter",
          "system": "Flag anything in this a user manual section that looks inconsistent or wrong.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "partnership-agreement-summary-rewriter-33473e",
      "name": "Partnership Agreement Summary Rewriter (Dual)",
      "pattern": "sequential",
      "category": "office",
      "use_rag": "optional",
      "est_vram_mb": 2400,
      "desc": "Rough a partnership agreement summary → polish → keyword pass.",
      "steps": [
        {
          "id": "polish",
          "model": "qwen2.5-coder:1.5b",
          "role": "Polisher",
          "system": "Polish this rough a partnership agreement summary draft for grammar and flow.",
          "runner": "ollama"
        },
        {
          "id": "keywords",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Keyword Pass",
          "system": "Add/verify relevant keywords a reader or search would expect in this a partnership agreement summary.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "spanish-translator-pro-9ae3d1",
      "name": "Spanish Translator Pro (Dual)",
      "pattern": "sequential",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2400,
      "desc": "Translate to Spanish → back-translate to verify → fix drift.",
      "steps": [
        {
          "id": "fwd",
          "model": "qwen2.5-coder:1.5b",
          "role": "Translator",
          "system": "Translate the given text into Spanish. Natural, not literal.",
          "runner": "ollama"
        },
        {
          "id": "back",
          "model": "gemma-3-4b-it",
          "role": "Back-Translator",
          "system": "Translate the Spanish translation back into English.",
          "runner": "localai"
        },
        {
          "id": "fix",
          "model": "llama3.2:1b",
          "role": "Drift Fixer",
          "system": "Compare original vs back-translation; fix the Spanish version if meaning drifted.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "french-localization-d22aa8",
      "name": "French Localization (Dual)",
      "pattern": "parallel",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "UI text → French + tooltip variants, in parallel.",
      "steps": [
        {
          "id": "main",
          "model": "qwen2.5-coder:3b",
          "role": "Localizer",
          "system": "Translate this UI text into French, concise and natural for a UI label.",
          "runner": "ollama"
        },
        {
          "id": "tooltip",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Tooltip Writer",
          "system": "Write a short French tooltip/help text version of this UI text.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "german-tone-rewriter-fbbbff",
      "name": "German Tone Rewriter (Dual)",
      "pattern": "parallel",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Text → formal + casual German versions, in parallel.",
      "steps": [
        {
          "id": "formal",
          "model": "llama3.2:1b",
          "role": "Formal Voice",
          "system": "Translate/rewrite this text into formal, professional German.",
          "runner": "ollama"
        },
        {
          "id": "casual",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Casual Voice",
          "system": "Translate/rewrite this text into casual, everyday German.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "hebrew-subtitle-pass-1cd151",
      "name": "Hebrew Subtitle Pass (Dual)",
      "pattern": "sequential",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Transcript lines → Hebrew translation → keep timing/format.",
      "steps": [
        {
          "id": "translate",
          "model": "llama3.2:3b",
          "role": "Translator",
          "system": "Translate these subtitle lines into Hebrew, keeping line breaks intact.",
          "runner": "ollama"
        },
        {
          "id": "check",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Format Checker",
          "system": "Verify the Hebrew lines still match the original line count/timing markers.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "arabic-grammar-and-clarity-87de7b",
      "name": "Arabic Grammar & Clarity (Dual)",
      "pattern": "sequential",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Text in Arabic → grammar fix → clarity tighten.",
      "steps": [
        {
          "id": "grammar",
          "model": "gemma2:2b",
          "role": "Grammar Fixer",
          "system": "Fix grammar/spelling errors in this Arabic text. Output corrected text only.",
          "runner": "ollama"
        },
        {
          "id": "clarity",
          "model": "qwen_qwen3.5-2b",
          "role": "Clarity Editor",
          "system": "Tighten this Arabic text for clarity — cut redundancy, keep meaning.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "japanese-translator-pro-5bb16a",
      "name": "Japanese Translator Pro (Dual)",
      "pattern": "sequential",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2400,
      "desc": "Translate to Japanese → back-translate to verify → fix drift.",
      "steps": [
        {
          "id": "fwd",
          "model": "qwen2.5:1.5b",
          "role": "Translator",
          "system": "Translate the given text into Japanese. Natural, not literal.",
          "runner": "ollama"
        },
        {
          "id": "back",
          "model": "gemma-3-1b-it",
          "role": "Back-Translator",
          "system": "Translate the Japanese translation back into English.",
          "runner": "localai"
        },
        {
          "id": "fix",
          "model": "deepseek-r1:1.5b",
          "role": "Drift Fixer",
          "system": "Compare original vs back-translation; fix the Japanese version if meaning drifted.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "italian-localization-4f89e0",
      "name": "Italian Localization (Dual)",
      "pattern": "parallel",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "UI text → Italian + tooltip variants, in parallel.",
      "steps": [
        {
          "id": "main",
          "model": "qwen2.5:3b",
          "role": "Localizer",
          "system": "Translate this UI text into Italian, concise and natural for a UI label.",
          "runner": "ollama"
        },
        {
          "id": "tooltip",
          "model": "gemma-3-4b-it",
          "role": "Tooltip Writer",
          "system": "Write a short Italian tooltip/help text version of this UI text.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "portuguese-tone-rewriter-b02142",
      "name": "Portuguese Tone Rewriter (Dual)",
      "pattern": "parallel",
      "category": "language",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Text → formal + casual Portuguese versions, in parallel.",
      "steps": [
        {
          "id": "formal",
          "model": "deepseek-r1:1.5b",
          "role": "Formal Voice",
          "system": "Translate/rewrite this text into formal, professional Portuguese.",
          "runner": "ollama"
        },
        {
          "id": "casual",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Casual Voice",
          "system": "Translate/rewrite this text into casual, everyday Portuguese.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "photorealistic-prompt-studio-c46a43",
      "name": "Photorealistic Prompt Studio (Dual)",
      "pattern": "sequential",
      "category": "image",
      "use_rag": "never",
      "est_vram_mb": 2000,
      "desc": "Idea → detailed photorealistic image-generation prompt → negative prompt.",
      "steps": [
        {
          "id": "prompt",
          "model": "qwen2.5-coder:1.5b",
          "role": "Prompt Writer",
          "system": "Turn this idea into a detailed photorealistic-style image generation prompt.",
          "runner": "ollama"
        },
        {
          "id": "negative",
          "model": "gemma-3-4b-it",
          "role": "Negative Prompt Writer",
          "system": "Write a negative prompt to pair with the photorealistic prompt above — what to avoid.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "watercolor-painting-concepts-x3-60e0f6",
      "name": "Watercolor Painting Concepts x3 (Dual)",
      "pattern": "parallel",
      "category": "image",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Idea → 3 distinct watercolor painting prompt directions, in parallel.",
      "steps": [
        {
          "id": "a",
          "model": "qwen2.5-coder:3b",
          "role": "Concept A",
          "system": "Write a watercolor painting-style image prompt for this idea, direction A (bold/dramatic).",
          "runner": "ollama"
        },
        {
          "id": "b",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Concept B",
          "system": "Write a watercolor painting-style image prompt for this idea, direction B (subtle/minimal).",
          "runner": "localai"
        },
        {
          "id": "c",
          "model": "llama3.2:3b",
          "role": "Concept C",
          "system": "Write a watercolor painting-style image prompt for this idea, direction C (unexpected angle).",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "cyberpunk-neon-storyboard-484ee4",
      "name": "Cyberpunk Neon Storyboard (Dual)",
      "pattern": "sequential",
      "category": "image",
      "use_rag": "never",
      "est_vram_mb": 2000,
      "desc": "Concept → scenes → cyberpunk neon-style shot prompts.",
      "steps": [
        {
          "id": "scenes",
          "model": "llama3.2:1b",
          "role": "Scene Breakdown",
          "system": "Break this concept into 4-6 numbered scenes.",
          "runner": "ollama"
        },
        {
          "id": "prompts",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Prompt Writer",
          "system": "Write a cyberpunk neon-style image prompt for each scene above.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "flat-vector-illustration-prompt-studio-16df3d",
      "name": "Flat Vector Illustration Prompt Studio (Dual)",
      "pattern": "sequential",
      "category": "image",
      "use_rag": "never",
      "est_vram_mb": 2000,
      "desc": "Idea → detailed flat vector illustration image-generation prompt → negative prompt.",
      "steps": [
        {
          "id": "prompt",
          "model": "llama3.2:3b",
          "role": "Prompt Writer",
          "system": "Turn this idea into a detailed flat vector illustration-style image generation prompt.",
          "runner": "ollama"
        },
        {
          "id": "negative",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Negative Prompt Writer",
          "system": "Write a negative prompt to pair with the flat vector illustration prompt above — what to avoid.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "oil-painting-concepts-x3-351e33",
      "name": "Oil Painting Concepts x3 (Dual)",
      "pattern": "parallel",
      "category": "image",
      "use_rag": "never",
      "est_vram_mb": 2200,
      "desc": "Idea → 3 distinct oil painting prompt directions, in parallel.",
      "steps": [
        {
          "id": "a",
          "model": "gemma2:2b",
          "role": "Concept A",
          "system": "Write a oil painting-style image prompt for this idea, direction A (bold/dramatic).",
          "runner": "ollama"
        },
        {
          "id": "b",
          "model": "qwen_qwen3.5-2b",
          "role": "Concept B",
          "system": "Write a oil painting-style image prompt for this idea, direction B (subtle/minimal).",
          "runner": "localai"
        },
        {
          "id": "c",
          "model": "qwen2.5:3b",
          "role": "Concept C",
          "system": "Write a oil painting-style image prompt for this idea, direction C (unexpected angle).",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "photosynthesis-3-levels-1ae634",
      "name": "Photosynthesis — 3 Levels (Dual)",
      "pattern": "parallel",
      "category": "learning",
      "use_rag": "optional",
      "est_vram_mb": 2400,
      "desc": "Explain photosynthesis at ELI5 + intermediate + expert level, in parallel.",
      "steps": [
        {
          "id": "eli5",
          "model": "qwen2.5-coder:1.5b",
          "role": "ELI5 Teacher",
          "system": "Explain photosynthesis like the reader is 10 years old. No jargon.",
          "runner": "ollama"
        },
        {
          "id": "mid",
          "model": "gemma-3-4b-it",
          "role": "Intermediate Teacher",
          "system": "Explain photosynthesis for someone with basic background — some technical terms OK.",
          "runner": "localai"
        },
        {
          "id": "expert",
          "model": "llama3.2:1b",
          "role": "Expert",
          "system": "Explain photosynthesis at expert depth, precise terminology, no hand-holding.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "recursion-flashcards-06fe53",
      "name": "Recursion Flashcards (Dual)",
      "pattern": "sequential",
      "category": "learning",
      "use_rag": "optional",
      "est_vram_mb": 2200,
      "desc": "Text about recursion → key facts → Q/A flashcards.",
      "steps": [
        {
          "id": "facts",
          "model": "qwen2.5-coder:3b",
          "role": "Fact Extractor",
          "system": "Extract the key facts about recursion from the given text, as bullets.",
          "runner": "ollama"
        },
        {
          "id": "cards",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Flashcard Writer",
          "system": "Turn those facts into Q/A flashcards about recursion (JSON array of {q,a}).",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "compound-interest-debate-016ebf",
      "name": "Compound Interest Debate (Dual)",
      "pattern": "judge",
      "category": "learning",
      "use_rag": "optional",
      "est_vram_mb": 2200,
      "desc": "3 agents argue about compound interest; a judge synthesizes the strongest take.",
      "steps": [
        {
          "id": "a",
          "model": "llama3.2:1b",
          "role": "Advocate A",
          "system": "Give the strongest argument/explanation of compound interest, angle A.",
          "runner": "ollama"
        },
        {
          "id": "b",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Advocate B",
          "system": "Give the strongest argument/explanation of compound interest, angle B, different framing.",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "blockchain-consensus-3-levels-9fef60",
      "name": "Blockchain Consensus — 3 Levels (Dual)",
      "pattern": "parallel",
      "category": "learning",
      "use_rag": "optional",
      "est_vram_mb": 2400,
      "desc": "Explain blockchain consensus at ELI5 + intermediate + expert level, in parallel.",
      "steps": [
        {
          "id": "eli5",
          "model": "llama3.2:3b",
          "role": "ELI5 Teacher",
          "system": "Explain blockchain consensus like the reader is 10 years old. No jargon.",
          "runner": "ollama"
        },
        {
          "id": "mid",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Intermediate Teacher",
          "system": "Explain blockchain consensus for someone with basic background — some technical terms OK.",
          "runner": "localai"
        },
        {
          "id": "expert",
          "model": "qwen2.5:1.5b",
          "role": "Expert",
          "system": "Explain blockchain consensus at expert depth, precise terminology, no hand-holding.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "quantum-entanglement-flashcards-a82050",
      "name": "Quantum Entanglement Flashcards (Dual)",
      "pattern": "sequential",
      "category": "learning",
      "use_rag": "optional",
      "est_vram_mb": 2200,
      "desc": "Text about quantum entanglement → key facts → Q/A flashcards.",
      "steps": [
        {
          "id": "facts",
          "model": "gemma2:2b",
          "role": "Fact Extractor",
          "system": "Extract the key facts about quantum entanglement from the given text, as bullets.",
          "runner": "ollama"
        },
        {
          "id": "cards",
          "model": "qwen_qwen3.5-2b",
          "role": "Flashcard Writer",
          "system": "Turn those facts into Q/A flashcards about quantum entanglement (JSON array of {q,a}).",
          "runner": "localai"
        }
      ],
      "initial": true
    },
    {
      "id": "server-access-logs-extraction-bbf2c0",
      "name": "Server Access Logs Extraction (Dual)",
      "pattern": "parallel",
      "category": "data",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy server access logs → structured tokens + human summary + timestamps, in parallel.",
      "steps": [
        {
          "id": "structured",
          "model": "qwen2.5-coder:1.5b",
          "role": "Extractor",
          "system": "Pull structured fields out of this server access logs sample, as a table.",
          "runner": "ollama"
        },
        {
          "id": "summary",
          "model": "gemma-3-4b-it",
          "role": "Summarizer",
          "system": "Summarize what's happening in this server access logs sample, in plain English.",
          "runner": "localai"
        },
        {
          "id": "timestamps",
          "model": "llama3.2:1b",
          "role": "Timestamp Finder",
          "system": "List every timestamp/date found in this server access logs sample.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "e-commerce-order-exports-cleaner-dad179",
      "name": "E-Commerce Order Exports Cleaner (Dual)",
      "pattern": "parallel",
      "category": "data",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy e-commerce order exports → schema guess + cleaned rows + anomalies, in parallel.",
      "steps": [
        {
          "id": "schema",
          "model": "qwen2.5-coder:3b",
          "role": "Schema Guesser",
          "system": "Guess a reasonable schema (column names + types) for this e-commerce order exports sample.",
          "runner": "ollama"
        },
        {
          "id": "clean",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Cleaner",
          "system": "Reformat this e-commerce order exports sample into clean, consistent rows.",
          "runner": "localai"
        },
        {
          "id": "anomalies",
          "model": "llama3.2:3b",
          "role": "Anomaly Spotter",
          "system": "Flag rows/values in this e-commerce order exports sample that look wrong or inconsistent.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "customer-support-transcripts-digest-3e375d",
      "name": "Customer Support Transcripts Digest (Dual)",
      "pattern": "parallel",
      "category": "data",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "customer support transcripts → summary + notable claims + what to verify, in parallel.",
      "steps": [
        {
          "id": "summary",
          "model": "llama3.2:1b",
          "role": "Summarizer",
          "system": "Summarize the key findings visible in this customer support transcripts sample.",
          "runner": "ollama"
        },
        {
          "id": "claims",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Claim Spotter",
          "system": "List any strong/surprising claims implied by this customer support transcripts sample.",
          "runner": "localai"
        },
        {
          "id": "verify",
          "model": "gemma2:2b",
          "role": "Verifier",
          "system": "List what in this customer support transcripts sample would need independent verification before acting on it.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "sensor-telemetry-readings-extraction-930d22",
      "name": "Sensor Telemetry Readings Extraction (Dual)",
      "pattern": "parallel",
      "category": "data",
      "use_rag": "optional",
      "est_vram_mb": 2600,
      "desc": "Messy sensor telemetry readings → structured tokens + human summary + timestamps, in parallel.",
      "steps": [
        {
          "id": "structured",
          "model": "llama3.2:3b",
          "role": "Extractor",
          "system": "Pull structured fields out of this sensor telemetry readings sample, as a table.",
          "runner": "ollama"
        },
        {
          "id": "summary",
          "model": "qwen_qwen3.5-0.8b",
          "role": "Summarizer",
          "system": "Summarize what's happening in this sensor telemetry readings sample, in plain English.",
          "runner": "localai"
        },
        {
          "id": "timestamps",
          "model": "qwen2.5:1.5b",
          "role": "Timestamp Finder",
          "system": "List every timestamp/date found in this sensor telemetry readings sample.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "hard-sci-fi-worldbuilder-e52fc9",
      "name": "Hard Sci-Fi Worldbuilder (Dual)",
      "pattern": "parallel",
      "category": "creative",
      "use_rag": "never",
      "est_vram_mb": 2400,
      "desc": "One prompt → hard sci-fi setting + factions + tech/magic + NPCs, in parallel.",
      "steps": [
        {
          "id": "setting",
          "model": "qwen2.5-coder:1.5b",
          "role": "World Architect",
          "system": "Describe a hard sci-fi setting for this prompt — geography, mood, era.",
          "runner": "ollama"
        },
        {
          "id": "factions",
          "model": "gemma-3-4b-it",
          "role": "Faction Writer",
          "system": "Invent 2-3 factions/groups that fit this hard sci-fi setting.",
          "runner": "localai"
        },
        {
          "id": "npc",
          "model": "llama3.2:1b",
          "role": "NPC Writer",
          "system": "Invent 2 memorable NPCs that fit this hard sci-fi setting.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "high-fantasy-story-continuation-573781",
      "name": "High Fantasy Story Continuation (Dual)",
      "pattern": "sequential",
      "category": "creative",
      "use_rag": "never",
      "est_vram_mb": 2400,
      "desc": "Premise → high fantasy outline → next chapter → cliffhanger.",
      "steps": [
        {
          "id": "outline",
          "model": "qwen2.5-coder:3b",
          "role": "Outliner",
          "system": "Outline the next 3 beats of this high fantasy story premise.",
          "runner": "ollama"
        },
        {
          "id": "chapter",
          "model": "gemma-4-e2b-it-qat-mtp",
          "role": "Writer",
          "system": "Write the next chapter/scene in high fantasy style, following the outline.",
          "runner": "localai"
        },
        {
          "id": "hook",
          "model": "llama3.2:3b",
          "role": "Hook Writer",
          "system": "Write a one-paragraph cliffhanger ending for this high fantasy chapter.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "noir-detective-worldbuilder-5c97de",
      "name": "Noir Detective Worldbuilder (Dual)",
      "pattern": "parallel",
      "category": "creative",
      "use_rag": "never",
      "est_vram_mb": 2400,
      "desc": "One prompt → noir detective setting + factions + tech/magic + NPCs, in parallel.",
      "steps": [
        {
          "id": "setting",
          "model": "llama3.2:1b",
          "role": "World Architect",
          "system": "Describe a noir detective setting for this prompt — geography, mood, era.",
          "runner": "ollama"
        },
        {
          "id": "factions",
          "model": "lfm2.5-1.2b-instruct",
          "role": "Faction Writer",
          "system": "Invent 2-3 factions/groups that fit this noir detective setting.",
          "runner": "localai"
        },
        {
          "id": "npc",
          "model": "gemma2:2b",
          "role": "NPC Writer",
          "system": "Invent 2 memorable NPCs that fit this noir detective setting.",
          "runner": "ollama"
        }
      ],
      "initial": true
    },
    {
      "id": "keyboard-navigation-pass-6c2356",
      "name": "Keyboard Navigation Pass (Dual)",
      "pattern": "sequential",
      "category": "accessibility",
      "use_rag": "never",
      "est_vram_mb": 1800,
      "desc": "HTML/UI → keyboard navigation issues found + concrete fixes.",
      "steps": [
        {
          "id": "scan",
          "model": "qwen2.5-coder:1.5b",
          "role": "A11y Scanner",
          "system": "Scan this HTML/UI text ONLY for keyboard navigation issues. List concrete problems as bullets, cite the element.",
          "runner": "ollama"
        },
        {
          "id": "fix",
          "model": "gemma-3-1b-it",
          "role": "Fix Suggester",
          "system": "For each keyboard navigation issue found, suggest a concrete fix (markup/attribute/CSS change).",
          "runner": "localai"
        }
      ],
      "initial": true
    }
  ]
}