Who fills this in: Process Coordinator at project onboarding. Where it goes: Copy to
docs/agent-context/SHARED-CONTEXT.mdin your project's requirements branch. This template has placeholder values — replace ALL of them. Delete this header block when done.
Last updated: [DATE] Purpose: Shared context file that ALL agents must read at session start. Each agent's individual context file builds on top of this.
- Product: [Product name and one-line description]
- Owner: [Name] ([email])
- Company: [Company name] (Apple Team ID: [TEAM_ID] if applicable)
- GitHub Org: [org name]
- Current Phase: [e.g. Beta, v1, v2]
| Surface | Source of Truth | What Lives Here |
|---|---|---|
| Intent | Asana (project GID [ASANA_PROJECT_GID]) | Task definitions, specs, decisions, status tags |
| Build | Git (origin/main) | Code, branches, PRs, release tags |
| Reality | [Published artifact URL / location] | What users actually install and experience |
Never let these drift. If a task is status-released in Asana but the artifact
doesn't contain it, that's a critical inconsistency.
- MARKETING_VERSION: Check
[path to version file in repo]— do NOT hardcode - Next build: Determined by Build Manager at release time
- Release notes:
[path to release notes in repo] - Release process:
[path to release checklist]
| Channel | Who uses it | Purpose |
|---|---|---|
| [PLATFORM]: #[project]-build (ID: [CHANNEL_ID]) | Build Manager (cron [CRON_ID]) | Autonomous build alerts |
| [PLATFORM]: #[project]-buildprocess (ID: [CHANNEL_ID]) | Process Coordinator + [Owner] | Interactive oversight |
| [PLATFORM]: #[project]-requirements (ID: [CHANNEL_ID]) | Requirements agent | Requirements updates |
| [PLATFORM]: #[project]-drift (ID: [CHANNEL_ID]) | Drift Audit cron | Daily drift alerts |
Communication rules:
- Delta-only: Never report "no changes." Silence = healthy.
- Asana notes are the contract: If it's not in Asana task notes, it didn't happen.
- Branch names go in Asana notes before tagging
status-ready-to-build.
| Checkout | Path | Branch | Who Works Here |
|---|---|---|---|
| Monorepo | [LOCAL_PATH] |
main | Build Manager + Process Coordinator ONLY |
| Requirements | [LOCAL_PATH]-requirements |
requirements | Requirements agent + [Owner] |
| Dev | [LOCAL_PATH]-dev |
dev | Interactive sessions, one-off fixes |
| Site | [LOCAL_PATH]-site |
main | Site agent |
Nobody commits directly to main except the Build Manager merging feature PRs.
status-ready-to-planGID: [GID] → Requirements agent picks upstatus-ready-to-buildGID: [GID] → Build Manager picks upstatus-in-progressGID: [GID] → Active buildstatus-ready-for-qaGID: [GID] → QA agent picks upstatus-qa-passedGID: [GID] → Reviewer picks upstatus-docs-pendingGID: [GID] → Docs agent picks upstatus-docs-doneGID: [GID] → Ready for releasestatus-shippedGID: [GID] → On main, NOT in artifact yetstatus-releasedGID: [GID] → In published artifact (FINAL)status-blockedGID: [GID] → Stuck, needs attention
phase-v1GID: [GID]phase-v2GID: [GID]
agent-claudeGID: [GID]agent-codexGID: [GID]agent-hermesGID: [GID]agent-opencodeGID: [GID]
Tag GIDs stored at: /tmp/[project]_asana_meta.json — regenerate if missing.
| Role | CLI Tool | Primary Model | Fallback |
|---|---|---|---|
| Build Manager (cron [CRON_ID]) | Hermes (cron) | [MODEL] | [FALLBACK_MODEL] |
| Process Coordinator (interactive) | Hermes (this session) | [MODEL] | [FALLBACK_MODEL] |
| Requirements (cron [CRON_ID]) | Hermes (cron) | [MODEL] | [FALLBACK_MODEL] |
| Coder | claude CLI |
[MODEL] | [FALLBACK_MODEL] |
| QA | opencode CLI |
[MODEL] | [FALLBACK_MODEL] |
| Reviewer (security) | codex CLI |
[MODEL] | [FALLBACK_MODEL] |
| Reviewer (performance) | codex CLI |
[MODEL] | [FALLBACK_MODEL] |
| Docs/Site | claude CLI |
[MODEL] | [FALLBACK_MODEL] |
LiteLLM proxy: [PROXY_URL]
Fallback chain: If primary fails → fallback → alert Process Coordinator if fallback also fails.
Model verification: Run models/MODEL_VERIFICATION.md before first build.
status-ready-to-build → status-in-progress → status-ready-for-qa → status-qa-passed
→ status-docs-pending → status-docs-done → [RELEASE GATE]
→ [project-specific release steps: version bump, build, sign, publish]
→ SMOKE TEST: launch artifact, verify no crash (10s). If crash → STOP.
→ [Platform-specific distribution: DMG / TestFlight / npm / PyPI / etc.]
→ verify all artifacts → status-shipped → Human Testing
→ status-released (FINAL — requires human confirmation)
Mandatory smoke test: Every release must verify the artifact runs without crashing BEFORE distribution. If it crashes: STOP. File bug, fix, rebuild.
Mandatory multi-platform rule: [List all platforms this project ships to — skip none.]
Build Manager serializes builds. Only one status-in-progress task at a time.
All builds happen in /tmp/[project]-build-{slug} worktrees. Never in the main checkout.
- Branch protection:
mainrequires PR review — no direct pushes (enforced in GitHub). - In-flight detection: Before starting a build, check
git fetchfor commits on the feature branch since the Requirements agent last pushed. If found: a human touched the branch — read changes before proceeding. - Yield protocol: If a human has an open PR to the same branch, hold the automated build and alert Process Coordinator.
When passing work to another agent, write to COORDINATION.md:
- Who is receiving the baton
- What task + branch + commit SHA
- What state it's in
status-in-progress is a lease. If no COORDINATION.md heartbeat for 30 minutes, Build Manager reverts to status-ready-to-build and posts a stall alert.
[Fill in as the project accumulates known issues. Example format:]
- [Issue name]: [Description]. Fix deferred to [milestone]. Asana: [task GID].
- Read it at session start (before your role-specific context file)
- Check the
Last updateddate — if more than 3 days old, check COORDINATION.md for unrecorded events before proceeding - Update it when shared state changes
- Do NOT put role-specific instructions here — those go in your
<role>.md
| Role | Cannot do |
|---|---|
| Process Coordinator | Edit source files; run build commands; push directly to main; merge PRs; fix bugs during testing |
| Build Manager | Edit source files; write feature specs; create feature branches; run more than 1 build at a time |
| Coder | Merge PRs to main; change Asana tags beyond status-ready-for-qa; modify shared files without coordinator awareness |
| QA | Accept coder self-reported audit results without independent verification; mark qa-passed without running the build |
| Requirements Agent | Pick up status-in-progress tasks; work in the main monorepo checkout |
| ALL agents | Skip context file updates after significant events; declare audits complete without independent verification |
Before status-released on any task requiring human validation (device launch, UX approval, etc.):
- Artifact distributed to test target ✅
- Human installs and tests ✅
- Human explicitly confirms: "[confirmation phrase for this project] v[X.Y.Z]" ✅
Build Manager cannot self-apply the final confirmation — it requires the project owner.