# Checklist for the next session Tick each line. Nothing after the first unchecked line should be started early. ## Before you start - [ ] Paperclip answers: `curl -s -H "Authorization: Bearer $PAPERCLIP_BOARD_KEY" http://127.0.0.1:3100/api/health` - [ ] Go is installed: `go version` - [ ] You are using the **user** key (`PAPERCLIP_BOARD_KEY`), not the agent key. ## Milestone 1 — one task, really run (no interface) - [ ] Read `docs/ENVIRONMENT-FACTS.md` for the company id, agent ids and toolchain facts. - [ ] Make a sandbox project (payload in `docs/PAPERCLIP-API-NOTES.md`) with two tasks, the second blocked by the first. - [ ] Assign the first task to `Builder` and force a wake with `POST /api/agents/{id}/heartbeat/invoke`. **Unproven** — if no run appears, record the response and stop. - [ ] Watch: the task goes `todo` → `in_progress` → `done`. - [ ] Confirm a comment written by Pi holds what it did. - [ ] Confirm the cost appears: `GET /api/issues/{id}/cost-summary`. - [ ] Confirm Paperclip made a git worktree for the task, and where it put it. Stop here if any line fails. Write down what you saw. Do not start the screens. ## Milestone 2 — task tree and reply box - [ ] Create the Go module in `tui/`. - [ ] Screen 1 reads tasks for one project; blockers read **per task** (`/api/issues/{id}/diagnostics/blockers`), never from the list. - [ ] Screen 4 shows the thread and posts a reply with the user key. - [ ] Pass: move a blocked task forward from the terminal, no browser, no shell. ## Milestone 3 — add a task, watch it work - [ ] Screen 2 creates a task with a blocker and the command that decides it is done. - [ ] Screen 3 shows the running log and the diff from the task's worktree. - [ ] Pass: a two-task plan is created, ordered and finished from the terminal alone. ## Milestone 4 — the project layer - [ ] Adopt a folder as a project; remember which host it is on. - [ ] Build the page layout; repair it; reset it. - [ ] Pass: a project on another machine can be opened and used from here. ## Milestone 5 — review and merge - [ ] `ocr` runs over the diff; a failing review refuses the task. - [ ] Merges are one at a time, re-checked after each. - [ ] Pass: the next task cannot merge until the first is settled. ## Interface rules that are not optional - Handle the window-size message; never hardcode sizes; show "too small" instead of a broken layout. - Run in the alternate screen. - In TUIOS window mode, `h j k l`, `z`, `n` belong to TUIOS: use Tab, Shift-Tab, arrows, Space, Enter inside the app, and keep a bare Esc free to close a box. - Create the click-zone manager once and wrap the whole view. - No network or git work inside update or view — use commands that return messages.