The project's ubiquitous language. Use these terms consistently in code, docs, and discussion.
Core Entities
Coordinator
The orchestrator. Routes the user's request, builds a plan, dispatches roles, and enforces the quality gate. Never writes code.
Role
A specialized function in the team. Current roles: PM, Architect, Frontend, Backend, QA, Security, DevOps. Each role is a separate container.
Task
A unit of work passed from one role to another. Has a typed input, expected output, and verdict.
Verdict
The outcome of a task. One of: pass, fail, park. The quality gate inspects every verdict; a pass is required for the overall run to succeed.
Reviewer
A role whose task is to critique another role's output. Runs in parallel with other reviewers.
Writer
A role whose task is to mutate project state. Runs serially under a single-writer lock to prevent concurrent edits.
Communication
A2A (Agent-to-Agent)
The only channel between roles. Schema defined in docs/spec/a2a-protocol.md. Validated by CI.
Bus
The transport. InProc for development, Redis (Pub/Sub) for containerized. The schema is identical; only the transport differs.
Knowledge Layer
Knowledge
BM25-retrieved context. Built by aicodingagentteam knowledge index <dir>. Retrieved at every role invocation.
Memory
Three kinds, persisted across runs:
- facts — verified truths about the project
- pitfalls — known failure modes to avoid
- lessons — learned from past runs, surfaced as hints
Quality Layer
Quality Gate
A fixed set of machine checks. The gate is not a model; it is golangci-lint, go vet, go test. The gate is allowed to fail; the run then fails.
Proof Pack
A zip artifact containing plan.json, verify.jsonl, scorecard.md, delivery-summary.md. Produced by every successful run.
External Surface
gRPC
The TUI's transport.
MCP (Model Context Protocol)
External tool integration.
ACP (Agent Client Protocol)
Standard Agent client endpoint.
A2A HTTP
Cross-instance mesh endpoint.
Principles
- Orchestration and execution are separate. A role cannot decide and execute at the same time.
- Containers are roles. No role shares memory with another.
- Protocols are contracts. Changing the wire format requires an ADR.
- Artifacts are communication. Roles exchange files, not free-form chat.
- Determinism wins. Quality gates are machine-run, not model-graded.
- Local first. Code does not leave the container by default.
- No keys held. Authentication is delegated to the underlying host CLI.
- Scale adaptive. Small tasks get a lightweight flow; big projects get the full team.