How I built a gated multi-agent modernization loop in Cursor (and am I over-engineering it?)

Hey everyone,

I’d like to share a Cursor workflow I’ve been building — not as a finished product, but as an in-progress setup. Feedback from people who also run multi-agent loops would be great (highs, lows, dead ends).

Origin

I discovered Cursor, started with small projects, then found an old MIT-licensed CMS and decided (mostly as a hobby) to modernize it.

  • ~10 ROADMAP step IDs at the start → now 80+
  • first everything was manual (no “vibe coding”); autonomy grew step by step
  • V1: mostly one Cloud Agent → context explosion, painful token use
  • V2: thinner orchestration, specialized subagents, gated phases → tokens and context overflow dropped a lot

V2 also keeps state on disk (tickets/checkboxes/ROADMAP) and starts a fresh Cloud Agent per phase/batch, so the loop doesn’t live in one rotting chat thread.

It’s past “hobby” now — more a project I can’t stop working on.

What I’m sharing (and what I’m not)

I’m sharing the agent workflow, not asking anyone to fork the CMS. Forks are secondary.

Main ask: am I over-engineering this — too many roles/gates, or automating too much at once? Where would you simplify?

Happy to answer questions.

The loop

Cursor as a pipeline, not just a chat box:

  1. Conductor (GitHub Actions, no LLM) — outer loop / batching / chaining
  2. Orchestrator (Cloud Agent) — thin coordinator, delegates, short reports
  3. Subagents — architect, plan-reviewer, refactorer, verifier, tester, test-writer, doc-writer

(Forum doesn’t render Mermaid.)

PLAN

PLAN: architect → plan-reviewer → doc-writer → commit

EXECUTE (per checklist step, batched by Conductor)

FINALIZE

FINALIZE: PR → CI → Codecov → Bugbot → version → docs → ROADMAP

Repo (active modernization, not a polished agent framework):

Useful paths: .cursor/WORKFLOW_SUBAGENTS.md, .cursor/agents/, .cursor/rules/orchestrator-v2-*.mdc, .cursor/ROADMAP.md

Metrics

Public run metrics (duration, tokens, cache, conductor vs not):

Raw data / wiring: .github/conductor/metrics/, .github/workflows/, .github/conductor/

Measuring runs helped a lot when deciding what to keep vs cut.

Model note

I’ve been using Grok 4.5 a lot as orchestrator / doc-writer / test-writer — tight diffs, low “yapping,” cache-read-heavy in long refactor sessions. Happy to compare notes if you mix models across roles.

Feedback I’d love

  1. Over-engineering? Too many specialized agents vs fewer stronger ones?
  2. Gates: plan-reviewer + verifier + tester — overkill, or necessary at this scale?
  3. Conductor outside the LLM: outer loop in GHA vs everything in-agent — what worked for you?
  4. Failure modes: where do your loops break (context, branch/PR autonomy, flaky checks, human bottleneck)?
  5. What would you delete first if you inherited this tomorrow?

Thanks — a “don’t do it this way” reply is also a win.