Purpose
Use this checklist to create and maintain a todowrite TODO list and to execute Builder work in a predictable, traceable order.
Required behavior
- Immediately create a TODO list with
todowritethat mirrors the checklist items. - Keep the TODO list updated as you work (mark items
in_progress/completed/cancelled). - Keep exactly one item
in_progressat a time. - The TODO list is for determinism/traceability only; it does NOT replace required on-disk artifacts.
Implementation checklist (follow in order when possible)
- [ ] (MANDATORY) Initialize the todo list with
todowrite(mirror this checklist) - [ ] (MANDATORY) Read
AGENTS.mdand, if present,REVIEW_RULEBOOK.mdto refresh requirements and constraints - [ ] (MANDATORY) Read the assigned task and restate it briefly
- [ ] (MANDATORY) Identify the files and modules likely involved in the change
- [ ] (MANDATORY) Implement the required changes with minimal, focused diffs
- [ ] (MANDATORY) Update or add tests for any new or changed behavior (Vitest/Playwright as appropriate)
- [ ] (MANDATORY) Run
pnpm install(components/) if dependencies are missing- If
pnpm installcannot run (for example due to network restrictions), treat it as a hard failure:- write
builder_result.jsonwithrun.status = "failed",run.failed_step = "pnpm install",run.errorset to the exact error output, andwork = null - then proceed to the
builder-signoffskill so Foreman can stop safely.
- write
- If
- [ ] (MANDATORY) Run
pnpm lint(components/) and record pass/fail- If it fails due to formatting (Prettier), you MAY run
pnpm format(components/) and then re-runpnpm lint. - If lint still fails, still proceed; record the failure in your handoff.
- If it fails due to formatting (Prettier), you MAY run
- [ ] (MANDATORY) Run
pnpm check(components/) and record pass/fail- If it fails, still proceed; record the failure in your handoff.
- [ ] (MANDATORY) Run
pnpm test:unit(or broaderpnpm testwhen appropriate) (components/) and record pass/fail- If it fails, still proceed; record the failure in your handoff.
- [ ] (OPTIONAL) Run
pnpm prepack(components/) when packaging changes are involved and record pass/fail- If you are unsure whether packaging is involved, run it.
- [ ] (MANDATORY) Prepare the Git state: stage all relevant files with
git addso thatgit diff main...HEADreflects the full change - [ ] (MANDATORY) Create a local commit with a clear, concise message
- If
git commitfails for any reason, treat it as a hard failure (Foreman depends on the commit forgit diff HEAD...main):- write
builder_result.jsonwithrun.status = "failed",run.failed_step = "git commit",run.errorset to the exact error output, andwork = null - then proceed to the
builder-signoffskill so Foreman can stop safely.
- write
- If
- [ ] (CRITICAL) (MANDATORY) Execute the
builder-signoffskill (writesbuilder_result.json+ validates + prints Public Handoff)
Result JSON requirement (always)
No matter what happens ALWAYS write builder_result.json and validate it with validate_builder_result (in-process tool).
- If the validator reports issues: fix the JSON and re-run until it passes.
- If the validator tool itself cannot be executed (tool missing/unavailable): treat it as a hard failure and write
builder_result.jsonwithrun.status = "failed",run.failed_step = "validate_builder_result",run.errorset to the exact error output, andwork = null, then proceed to thebuilder-signoffskill so Foreman can stop safely.