I run a small software shop and built this because the plan I approved never stayed binding once the agent started writing.
A plain-language task goes in. A planning agent clones the project's real repositories and drafts a specification from them. A human approves it. Only then does a coding agent OpenAI API, Anthropic API, Claude Code CLI or Copilot CLI, on your own key build exactly that and open a pull request.
The part I think is actually new: a Customer seat. Someone who does not read code can file tasks, drive planning and approve, but never touches settings, repositories, agents or skills.
What it does not do yet: it does not verify the finished PR against the approved spec automatically. That is a human comparing the two, and it is the next thing to build.
Every agent I use has some form of plan mode. I read the plan, say yes, and then somewhere in implementation it drifts a file it was not meant to touch, a step it decided was unnecessary, a "done" that covers half the plan. On one feature I asked it to check its own work against the plan roughly thirty times.
What I do now: write the spec first, from the actual repo, approve that, and give the agent only the approved document. Review becomes a comparison. It mostly holds, but the last check is still me.
What do you do tighter prompts, smaller tasks, a second agent as reviewer, or have you just accepted the drift?