AGENTS.md · git:20260920.0aff57a · 2026-09-20 · sha256 11181118a2f0b76e

AGENTS.md git:20260920.0aff57aA

Immutable. This exact content never changes and is served at /api/v1/blob/11181118a2f0b76e.

# AGENTS.md — read this before touching anything

## Repo

- **Name:** `coco`
- **Origin:** `https://github.com/coco-research/coco.git`
- **Stack:** node
- **SoT playbook:** `~/code/jev-use/docs/repo-playbook.html`

## 0. The documents, and when each is authoritative

| File | Answers | Update when |
| --- | --- | --- |
| `docs/prd.md` | What and why | Scope changes |
| `docs/architecture.md` | How the parts fit | Structure changes |
| `docs/rules.md` | The laws. Invariants | ONLY with owner approval |
| `docs/design.md` | What it looks and feels like | UI work |
| `docs/tasks.md` | What is worked on now | Every PR |
| `docs/memory.md` | Decisions and dead ends | Every PR that settles something |

If two documents disagree, the earlier one in that table wins. Never
silently pick one — fix the disagreement in the same PR.

## 1. The PR contract

- Every change is a small PR. No direct pushes to `main`.
- Gate green before review. Run `.githooks/pre-push` or `git push` and let it.
- Evidence, not assertions. Paste the command and its real output.
- One concern per PR. Two things touched means two PRs.
- Fill the PR template in honestly, including the Risk section.

## 2. Never commit

- Any API key, token, or secret. Not in code, not in docs, not in a fixture.
- Absolute personal paths in shipped code. Docs may name one as an example.
- Build output. `target/`, `dist/`, `node_modules/` are ignored and stay ignored.

## 3. When unsure

`docs/rules.md` holds the invariants, each with the measurement that justifies it.
If a task appears to require breaking one, stop and ask.

## 4. Recording what you learned

`docs/memory.md` is not a diary. It records decisions with reasons and
dead ends worth not repeating. If you spent an hour proving a
hypothesis wrong, that sentence saves the next agent the hour.