A change, end to end
Example: "Add invoices with lines, totals rounded to 3 decimals, visible only to users of the invoice's provincia."
Ground
The agent searches knowledge (agent-kit knowledge find invoices), lists the living specs (agent-kit specs list) and reads the code the change touches. Nothing is written yet.
Proposal and delta specs
npx @razcue/agent-kit work new change invoices --title "Invoices module"
The agent fills proposal.md (why, in / out, capabilities, open questions) and one delta per capability, e.g. specs/invoices.md:
## ADDED Requirements
### invoices.R2 — Rounded totals
When an invoice is saved, the BFF shall store each line amount and the total rounded half-up to 3 decimals.
#### invoices.R2.S3 — Rounding edge @boundary
- Given a line of quantity 1 at unit price 0.0005
- When the invoice is saved
- Then the line amount is 0.001
agent-kit specs lint 001 must report no errors.
You approve
The agent shows the requirements with their scenarios and the open questions, and stops. Your answers go into the proposal; it becomes status: approved.
Plan and tasks
plan.md lists files, schema / RPC changes and risks. tasks.md tags every task with the scenario ids it covers; in SDD + TDD each scenario's test task comes before its implementation. On Supabase projects with test data on, a task extends seed and purge for the new scenarios.
Implement
One task at a time, test first (tdd skill). A task is ticked only with evidence under it — the command and its result.
Verify
Project checks and tests, the scenario → evidence table, agent-kit work trace 001 with nothing uncovered, agent-kit preflight, and the reviewer agent for non-trivial diffs.
Merge and close
npx @razcue/agent-kit specs merge 001
The deltas land in work/specs/invoices/spec.md, the QA checklist refreshes, the proposal is marked status: done. You commit under your git flow.