AGENTS.md@starter-kit · git:20260929.0bff4b4 · 2026-09-29 · sha256 7d8124c038affbfd
AGENTS.md@starter-kit git:20260929.0bff4b4A
Immutable. This exact content never changes and is served at /api/v1/blob/7d8124c038affbfd.
# @PROJECT@: rules for every agent These rules are binding for every seat. The rig culture (CULTURE.md) adds team rules; where they conflict, this file wins. ## What we are building - The plan: `docs/PLAN.md` (written by the owner). - The feature list: `features.json` (produced by the architect, approved by the owner). A feature is done only when its locked acceptance journeys pass and the QA seat has used it by hand; then the lead sets `passes: true`. - A wave with user-facing changes (and so a mission) is done only when its W witness slice records `agent-witnessed (YYYY-MM-DD, by <agent>, <model>)`: a fresh agent used the deployed app end to end through the real UI, with evidence. Tests, merges and deploys are not witnesses. Only a docs/infra-only wave may skip it, with `no-witness: <reason>` on the wave in mission.yaml. - Progress log: `PROGRESS.md` (one line per merged feature). Daily summaries: `docs/summary/`. ## How to run it - Install: `npm ci` - Start for tests: `npm run start:test` (must serve the app on `$PORT` with test data; Playwright sets PORT to your seat's own `E2E_PORT`, so parallel seats never share a server) - Unit tests (optional, never proof of done): `npm test` - Acceptance journeys: `npx playwright test` (desktop and phone) - Held-out journeys (merge owner only): `E2E_TEST_DIR=@HELDOUT@ npx playwright test` ## Testing from a person's perspective - Proof of done is a person using the app: see `tests/acceptance/README.md`. CI checks this (`scripts/guards/check-human-perspective.sh`) and blocks implementation PRs that touch `tests/acceptance/` (`scripts/guards/check-protected-paths.sh`). - Before handing off, implementers run their feature's journeys and walk the main journey once in the browser. - The QA seat always does a hands-on pass and attaches screenshots before review. ## Working rules - Search with `rg` / `rg --files` / `fd`. Put tables you pass to other seats in TOON (`... | toon`). - Branches: implementers `agent/<seat>`, test authors `tests/<feature-id>`. PRs are ready, never drafts. - Commit identity: @COMMIT_IDENTITY@ - Secrets live only in local env files and the hosting provider. Never in code, tests, logs or PRs. - Changes to `scripts/guards/`, `playwright.config.ts` or `.github/` need the owner's `owner-approved` label.