Setting this kit up in this repo? If you are an AI agent helping configure the kit, read
prompts/setup-interview.mdfirst — it tells you how to interview the user and fill this file in for their project. The contents below are a generic template until that interview is done.
This file is the source of truth for who can edit what.
Every coding agent must obey path ownership, journal updates, proposal rules, approval gates, and PR discipline.
| Term | Meaning |
|---|---|
| Coding agent | A Cursor / Claude / Codex session with a codename, worktree, owned paths, branch prefix, and kickoff prompt |
| Runtime agent | An app-level process in your product, e.g. an agent that subscribes to events, calls APIs, or executes user workflows |
This file is about coding agents.
- One coding agent per worktree.
- One worktree per Cursor / Claude / Codex window.
- Every path has exactly one owner.
- No coding agent commits outside owned paths.
- Cross-boundary changes require a proposal or approval request.
- Shared contracts are frozen and operator-owned.
- Agents coordinate through journals, task briefs, approvals, and proposals.
- Agents never coordinate through private chat if the information affects build state.
- All implementation work happens on
<codename>/<slug>branches. - All meaningful work ends with tests, journal update, and PR.
| Field | Value |
|---|---|
| Codename | operator |
| Human | Project Lead / repo owner |
| Owns | Product decisions, contracts, specs, runbook, rules, final approval |
| Branch | main unless intentionally editing |
| Commit prefix | operator: |
Project Lead / operator owns:
AGENTS.mdOPERATING_GUIDE.mdPROTOCOL.mdRUNBOOK.mdLOOP_RADAR.mdfinal objectiveLOOP_MEMORY.mdfinal decisions- shared contracts/types/schemas
.cursor/rules/**agents-status/proposals/**decisionsagents-status/approvals/**decisions
The Project Lead / operator is the only approval authority for:
- Product direction
- Schema / contract changes
- New dependencies
- Architecture shifts
- Cross-agent tasks
- Feature cuts
- Demo flow changes
- Risky refactors
| Field | Value |
|---|---|
| Codename | beacon |
| Role | Loop radar, build-factor updates, task briefs, approval queue |
| Owns | Loop docs and coordination files |
| Branch prefix | beacon/<slug> |
| Commit prefix | beacon: |
Beacon owns:
LOOP_RADAR.mdLOOP_MEMORY.mdagents-status/beacon.mdagents-status/task-briefs/**agents-status/approvals/**creation only, not decisionstools/loop/**
Beacon does not code product features.
Beacon must never directly edit:
apps/**packages/**- product code
- shared contracts
- migration files
- security-sensitive code
Beacon can:
- Read repo state.
- Read journals.
- Read proposals.
- Read approvals.
- Read open PR summaries if available.
- Create or update task briefs.
- Create approval requests.
- Rank build factors in
LOOP_RADAR.md. - Update
agents-status/beacon.md.
Beacon cannot:
- Approve work.
- Merge work.
- Change contracts.
- Assign work as binding.
- Override ownership.
Replace these examples with your repo’s actual agents.
| Codename | Owns | Role | Branch prefix | Commit prefix |
|---|---|---|---|---|
frontend |
apps/web/**, components/** |
Web UI | frontend/<slug> |
frontend: |
backend |
apps/api/**, server/** |
API/backend | backend/<slug> |
backend: |
agentkit |
packages/agent-kit/**, packages/mocks/** |
Agent SDK/mocks | agentkit/<slug> |
agentkit: |
ops |
.github/**, infra/**, scripts/** |
CI/devops | ops/<slug> |
ops: |
Every repo must fill this table before parallel work starts.
| Path | Owner | Notes |
|---|---|---|
apps/web/** |
frontend |
UI only |
apps/api/** |
backend |
API only |
packages/types/** |
operator |
Frozen contract package |
packages/mocks/** |
agentkit |
Mocks for all agents |
.github/** |
ops |
CI workflows |
.cursor/rules/** |
operator |
Persistent agent memory |
agents-status/** |
shared by protocol | Each agent edits only its own journal; approvals/proposals follow rules |
If an agent needs a change outside owned paths, it must choose one:
- Create a task for the owning agent in its journal.
- Create an approval request if the change is known and bounded.
- Create a proposal if the change is architectural, product-level, or contract-level.
- Ask the operator if ownership is unclear.
Agents must not “just quickly edit” another owner’s file.
Each agent has:
agents-status/<codename>.mdEvery journal must use the fixed schema from agents-status/JOURNAL_TEMPLATE.md.
Agents update journals:
- session start
- before stopping
- when blocked
- after shipping
- when creating approval/proposal
- when taking or rejecting a Beacon task
Use proposal when the operator must decide direction.
Examples:
- Schema change
- Stack change
- Feature cut
- Product behavior change
- New dependency
- Security model
- Major refactor
Use approval request when work is already understood but needs permission.
Examples:
- “Build demo replay in cockpit”
- “Add scoped mock fixtures”
- “Refactor this owned module”
- “Wire UI to existing endpoint”
- Branch:
<codename>/<slug> - Commit:
<codename>: <imperative message> - PR title:
<Codename>: <Title> - Never push directly to
mainunless you are the operator and intentionally doing a solo merge. - PR body must include:
- What changed
- Why now
- Owned paths touched
- Tests run
- Coordination impact
- Approval/proposal link if relevant
Add a new agent only when:
- The new owned path set is disjoint.
- A kickoff prompt exists.
- A journal exists.
- Cursor ownership rules are updated.
- Worktree spawn script supports the codename.
- Operator approves the new agent.
If two agents would edit the same directory, split the directory first or merge the roles.