How it works
The human-led product loop, the agent-run factory, and the handoff between them.
Product development has two halves. The product loop is led by people: discover, decide, and write requirements. The factory is run by agents: it turns ready tickets into running software. Appli Studio hosts both, and the knowledge base connects them.
- Discover, decide, write requirements with the team, in the studio and the knowledge base.
- G0, ready: a person labels the ticket
ready. - Triage, plan, implement, review, QA, deploy: the factory's stations, each ending in a gate.
- Observe: what production shows flows back as bugs (to triage) and insights (to discovery).
The pieces
| Piece | What it does | Where it runs |
|---|---|---|
| Studio (app) | Projects, members, requirements, connections, the board of running tickets | Dokploy |
| Coordinator | Receives GitHub webhooks, runs each ticket as a durable workflow, evaluates gates, hands jobs to workers | Dokploy |
| Worker | Claims jobs and runs each as an agent thread in T3 Code | Your VPS |
| Project tools | Source control and tracker (GitHub), deploy target (Dokploy), knowledge base | Per project |
The studio and the coordinator never share a database. The studio holds people, projects, and configuration; the coordinator holds runs, jobs, and the workflow state. They talk through two small internal APIs.
What makes it deterministic
The coordinator has no model. Each ticket is a workflow with fixed steps: dispatch a job, wait for its result, read facts back from GitHub, decide by rule. Agents write their output where the team already looks (comments, labels, reviews, commit statuses, check runs), and the gates read those facts:
- Triage passes when the issue has a type and a size label and doesn't need splitting.
- Review passes when the review agent's
appli/reviewstatus is green on the head commit. - QA passes when the
appli/qacheck run on the head is green, tested on a preview of that exact commit. - Deploy passes when production runs the merge commit.
See stations and gates for every rule.