# Shared working context — the parallel-agent handoff This folder lets a **backend agent** and a **frontend agent** work **at the same time** without ever editing the same file. It is the running, append-only record of what each side has done and what it needs from the other. (Stable API shapes live in [`../contracts/`](../contracts/README.md); this folder is the *running coordination* on top of them.) ## Lane ownership — the one rule that keeps it safe > **Each lane writes only its own files. Neither lane edits the other's.** | Lane | Writes (only) | Reads | | --- | --- | --- | | **Backend** | `backend/STATUS.md`, `backend/handoff/after-backend-phase-N.md` (new file per phase), `reports/backend-phase-N-report.md`, `reports/mocks-registry.md` | `frontend/requests/for-backend.md`, prior backend handoffs | | **Frontend** | `frontend/STATUS.md`, `frontend/requests/for-backend.md` (append), `reports/frontend-phase-N-report.md` | `backend/handoff/*`, `../contracts/*`, prior frontend reports | Because each handoff is a **new file per phase** and each STATUS/requests file is **append-only**, two agents can run concurrently and only ever *append* — no merge conflicts, no clobbering. ## Layout ``` shared-working-context/ ├── backend/ │ ├── STATUS.md # append: one block per backend phase (what shipped, gate status) │ └── handoff/ │ └── after-backend-phase-N.md # "context for frontend after backend phase N" (one per phase) ├── frontend/ │ ├── STATUS.md # append: one block per frontend phase │ └── requests/ │ └── for-backend.md # append: contract gaps / shape requests the backend should fulfil └── reports/ ├── README.md # the per-phase report template ├── mocks-registry.md # master list of every mock/seam + how to make it real (backend-owned) ├── backend-phase-N-report.md # what was built / testable / mocked (one per backend phase) └── frontend-phase-N-report.md # one per frontend phase ``` ## The handoff note (backend → frontend), per phase `backend/handoff/after-backend-phase-N.md` should answer, for the frontend agent: - Which endpoints/contracts are now **live** (link the `contracts/domains/*` doc + the swagger snapshot). - What the frontend can now build because of this phase. - What is **mocked** server-side (so the frontend knows responses are fake-but-shaped) and what's real. - Any auth/enum/format detail the frontend must mirror. - Open questions / things the frontend should *not* assume yet. ## The request note (frontend → backend) `frontend/requests/for-backend.md` is where the frontend appends: missing endpoints, fields it needs, shape mismatches, pagination/filter needs — anything that should land in a later backend change. The backend agent reads this at the start of each phase. The frontend never edits backend code to "fix" it.