Files
paperclip-harness/CHECKLIST.md

2.5 KiB

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 the sandbox from docs/PAPERCLIP-API-NOTES.md; it has two tasks, the second blocked by the first.
  • Give the first task to the Pi agent on the task (assign it) and let a heartbeat run it.
  • 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.