This file is the contract for any coding agent operating in this repository.
Humans:
STATUS.mdTASKS.md- optional
WORKLOG.md
Automation:
.agent/runs/*.json.agent/index.json
- Choose a task from
TASKS.mdthat has a stable ID likeT-001. - If the task is not in Doing, move it to Doing and set status to
[doing]. - Implement changes.
- Run
make ci(or document why it cannot be run). - Update state:
- Update
TASKS.md(status, completion stamp, and link to run record). - Update
STATUS.md(Now, Active, Blockers, Last update). - Append a short note in
WORKLOG.mdif the change is user-facing.
- Update
- Write a run record:
.agent/runs/YYYY-MM-DDThh-mm-ssZ_<task_id>.json. - Update
.agent/index.json(or runpython scripts/update_agent_index.py).
A task is done only when:
make cipasses, OR the run record clearly explains why it could not be run- the run record exists in
.agent/runs/ TASKS.mdreferences that run record and includes a completion dateSTATUS.mdreflects the new repo state
Prefer Make targets over raw commands.
Required targets:
make helpmake setupmake fmtmake lintmake testmake ci
If targets are missing, create them as part of your work.
- Keep
STATUS.mdshort, it should fit on one screen. - Keep tasks small and specific.
- Never mark a task done without a run record link.
- If you changed behavior, update docs in
README.mdorexamples/.