diff --git a/.pi/memory-vault/packs/paperclip-harness/20-context/paperclip-harness.md b/.pi/memory-vault/packs/paperclip-harness/20-context/paperclip-harness.md index d59a7bc..590486b 100644 --- a/.pi/memory-vault/packs/paperclip-harness/20-context/paperclip-harness.md +++ b/.pi/memory-vault/packs/paperclip-harness/20-context/paperclip-harness.md @@ -220,3 +220,80 @@ TUIOS plugin libraries called out: PLOT, LOOM, TML, GO (prefer Go for in-TUI pan - context: [[packs/paperclip-harness/20-context/tmp|tmp]] - runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|tmp deployment operations]] - observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|tmp repository structure and configuration patterns]] + + +--- + +## Update (2026-11-11 01:02:31) + +Repository: paperclip-harness (TUI workspace harness; Go terminal UI plus Python `bin/` tooling). + +Key paths discovered this turn: +- `bin/lib/harness.py` — shared harness library; now prepends `~/.local/bin`, `~/.nix-profile/bin`, system profile and per-user profile to PATH before tool lookup (fixes merge pane not finding `ocr`). +- `bin/board` — workspace launcher; compares each pane's real working directory with the project folder and recreates (replaces) the `Shell>shell` pane when they differ, announcing it. +- `bin/merge` — performs a task merge; uses `ocr` for review; takes a lock so a second concurrent merge is refused. +- Go TUI code with `workModel.View()` (min size 80×24), key handling `esc/q/o`, `up/k`, `o`, `t`, `m`, `r`, `R`, `g/G`, help overlay via `helpOverlay`. +- `docs/TEST-PLAN.md` — rewritten to be keys-only (nine steps, no terminal commands); `Shell>shell` appears once as escape hatch. + +Pane layout: tab bar `the work | runs | change | facts | review | merge`; workspace navigation uses `Work>work`, `Board>board`, `Shell>shell`, `Repair>cleanup`. Merge logs go to `/tmp/paperclip-harness-merge.log`. Worktrees live under `/.paperclip/worktrees/-` with branch `-` rebased onto `main`. Issue IDs look like `AUD-###`. + +## Detailed context from completed turn + +Both complaints are fair, and both are now fixed in the program rather than in the instructions. + +## Work>work selects its own task and merges + +- **`o`** in `Work>work` opens a list of the project's tasks. Choose one and the runs, change, facts, review and merge tabs all switch to it. You no longer start in `Board>board`. +- **`m`** runs the merge for the task you are looking at, and the new **merge** tab shows it live: + +``` +merge of AUD-168 started 12:01:39 + worktree …/worktrees/AUD-168-tidy-the-readme-introduction + rebased onto main + no verify command: this would pass on the agent's word + review saw nothing to review (0 files); recorded, not hidden + merged into main at 4a44473 +merge finished 12:01:43 +``` + +That is a real merge I ran from the pane a minute ago, with no shell. Starting it twice is safe — the merge takes a lock and the second is refused. + +## Why the Shell step failed you + +Two real bugs, not your memory: + +1. The pane that merges inherited the pane's small `PATH`, so `bin/merge` could not find `ocr` and refused with `ocr is not installed`. Fixed at the source: `bin/lib/harness.py` now adds `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile before looking for anything. +2. `Shell>shell` was created in one folder and later adopted without checking. `bin/board` now compares the pane's real working directory with the project folder and **replaces** the shell pane when they differ, saying so. + +## The principle you are pointing at + +The terminal was creeping in as the normal path. It should not be. From now on: + +- anything you do regularly is a key in a pane; +- `Shell>shell` exists for the things we deliberately do not wrap, and for emergencies; +- a test plan that needs me to write `git log` is a bad test plan. + +`docs/TEST-PLAN.md` is rewritten accordingly: step 4 is now "press `m` and wait", and the whole plan contains no terminal commands at all. `Shell>shell` appears once, as the escape hatch it is. + +## What I would do next, in your order + +1. You run the plan as written (nine steps, keys only) and tell me where the screen and Paperclip disagree. +2. `Repair>cleanup` — sessions listed with age and pane count, kill only what you select, and never touching the Pi session files. +3. The Pi session browser — `pi --resume` in a tool pane, or the folder in Yazi. + +Committed as `7198c34`; the eight workspaces are rebuilt and running. + +## Evidence + +- Confidence: 90% +- Reason: Concrete architecture and source-path details from the turn that a future agent needs to navigate the repo.; enriched with final-answer detail because persistence should be reusable + +## Related learned memories + +- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]] +- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Pane-first UX: repeated actions become keys, Shell only as escape hatch]] +- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Implemented task picker, in-pane merge, PATH and shell-folder fixes (commit 7198c34)]] +- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|Merging a paperclip-harness task from the TUI and diagnosing merge failures]] +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-bin-2026-11-11-01-02-31|Rich discovery: bin 2026-11-11 01:02:31]] +- context: [[packs/paperclip-harness/20-context/tmp|bin]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md b/.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md index 1586072..64e78cc 100644 --- a/.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md +++ b/.pi/memory-vault/packs/paperclip-harness/20-context/tmp.md @@ -768,3 +768,74 @@ Committed as `7b12b45`. Say go and I run that list end to end and report each re - context: [[packs/paperclip-harness/20-context/tmp|tmp]] - runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|tmp deployment operations]] - observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|tmp repository structure and configuration patterns]] + + +--- + +## Update (2026-11-11 01:02:31) + +## Rich discovery update (2026-11-11 01:02:31) + +Both complaints are fair, and both are now fixed in the program rather than in the instructions. + +## Work>work selects its own task and merges + +- **`o`** in `Work>work` opens a list of the project's tasks. Choose one and the runs, change, facts, review and merge tabs all switch to it. You no longer start in `Board>board`. +- **`m`** runs the merge for the task you are looking at, and the new **merge** tab shows it live: + +``` +merge of AUD-168 started 12:01:39 + worktree …/worktrees/AUD-168-tidy-the-readme-introduction + rebased onto main + no verify command: this would pass on the agent's word + review saw nothing to review (0 files); recorded, not hidden + merged into main at 4a44473 +merge finished 12:01:43 +``` + +That is a real merge I ran from the pane a minute ago, with no shell. Starting it twice is safe — the merge takes a lock and the second is refused. + +## Why the Shell step failed you + +Two real bugs, not your memory: + +1. The pane that merges inherited the pane's small `PATH`, so `bin/merge` could not find `ocr` and refused with `ocr is not installed`. Fixed at the source: `bin/lib/harness.py` now adds `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile before looking for anything. +2. `Shell>shell` was created in one folder and later adopted without checking. `bin/board` now compares the pane's real working directory with the project folder and **replaces** the shell pane when they differ, saying so. + +## The principle you are pointing at + +The terminal was creeping in as the normal path. It should not be. From now on: + +- anything you do regularly is a key in a pane; +- `Shell>shell` exists for the things we deliberately do not wrap, and for emergencies; +- a test plan that needs me to write `git log` is a bad test plan. + +`docs/TEST-PLAN.md` is rewritten accordingly: step 4 is now "press `m` and wait", and the whole plan contains no terminal commands at all. `Shell>shell` appears once, as the escape hatch it is. + +## What I would do next, in your order + +1. You run the plan as written (nine steps, keys only) and tell me where the screen and Paperclip disagree. +2. `Repair>cleanup` — sessions listed with age and pane count, kill only what you select, and never touching the Pi session files. +3. The Pi session browser — `pi --resume` in a tool pane, or the folder in Yazi. + +Committed as `7198c34`; the eight workspaces are rebuilt and running. + +## Source paths observed + +- `tmp/pc-sandbox-2026-11-10/.paperclip/worktrees/AUD-168-tidy-the-rea` +- `bin/lib/harness.py` + +## Evidence + +- Confidence: 84% +- Reason: Update component/repository context with detailed discovered structure and configuration + +## Related learned memories + +- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]] +- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Pane-first UX: repeated actions become keys, Shell only as escape hatch]] +- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Implemented task picker, in-pane merge, PATH and shell-folder fixes (commit 7198c34)]] +- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|Merging a paperclip-harness task from the TUI and diagnosing merge failures]] +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-bin-2026-11-11-01-02-31|Rich discovery: bin 2026-11-11 01:02:31]] +- context: [[packs/paperclip-harness/20-context/tmp|bin]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups.md b/.pi/memory-vault/packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups.md index 9438e61..d46fb42 100644 --- a/.pi/memory-vault/packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups.md +++ b/.pi/memory-vault/packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups.md @@ -552,3 +552,37 @@ Committed as `77014d0` — documentation only, nothing in the running layout cha - session: [[packs/paperclip-harness/80-sessions/rich-discovery-pi-2026-11-10-21-03-21|Rich discovery: .pi 2026-11-10 21:03:21]] - context: [[packs/paperclip-harness/20-context/home|.pi]] - runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|.pi deployment operations]] + + +--- + +## Update (2026-11-11 01:02:31) + +Completed work in paperclip-harness, committed as `7198c34` ("Work>work chooses its own task and merges from the interface; panes find their tools; shell follows the project folder"); eight workspaces rebuilt and running. + +Deliverables: +- `o` in `Work>work` opens "choose a task to look at" list; selecting a task retargets all five tabs (runs, change, facts, review, merge). +- `m` starts merge for the focused task; new merge tab streams live log. Verified real merge of AUD-168 into main at `4a44473` (log: rebased, no verify command warning, "review saw nothing to review (0 files); recorded, not hidden"). +- Merge is idempotent-safe: takes a lock; second start refused. +- `bin/lib/harness.py`: prepends `~/.local/bin`, `~/.nix-profile/bin`, system profile, per-user profile so `ocr` is found (fixes "refused: ocr is not installed", exit status 2). +- `bin/board`: replaces mismatched `Shell>shell` pane when its cwd differs from project folder, with a message. +- `docs/TEST-PLAN.md` rewritten: step 4 is now "press `m` and wait"; no terminal commands anywhere. + +Validation: `build=0`, `syntax ok`, real merge succeeded. + +Follow-ups proposed (in order): user runs nine-step keys-only plan and reports disagreements; `Repair>cleanup` (list sessions with age and pane count, kill only selected, never touch Pi session files); Pi session browser via `pi --resume` in a tool pane or the folder in Yazi. + +## Evidence + +- Confidence: 90% +- Reason: Completed implementation with concrete artifacts, validation and follow-ups. + +## Related learned memories + +- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]] +- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Pane-first UX: repeated actions become keys, Shell only as escape hatch]] +- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Implemented task picker, in-pane merge, PATH and shell-folder fixes (commit 7198c34)]] +- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|Merging a paperclip-harness task from the TUI and diagnosing merge failures]] +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-bin-2026-11-11-01-02-31|Rich discovery: bin 2026-11-11 01:02:31]] +- context: [[packs/paperclip-harness/20-context/tmp|bin]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li.md b/.pi/memory-vault/packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li.md index 731f3d5..8368b07 100644 --- a/.pi/memory-vault/packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li.md +++ b/.pi/memory-vault/packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li.md @@ -115,3 +115,80 @@ Consequences / review caveats: - session: [[packs/paperclip-harness/80-sessions/paperclip-harness-reverted-pane-split-interface-gap-discover|Paperclip-harness — reverted pane split, interface gap discovery, and PLAN-INTERFACE roadmap]] - session: [[packs/paperclip-harness/80-sessions/rich-discovery-home-2026-11-10-05-41-48|Rich discovery: home 2026-11-10 05:41:48]] - context: [[packs/paperclip-harness/20-context/home|home]] + + +--- + +## Update (2026-11-11 01:02:31) + +Decision (in paperclip-harness): the terminal must not be the normal path for routine work. + +Rules: +- Anything done regularly is a key inside a pane (e.g. `o` to pick a task, `m` to merge). +- `Shell>shell` exists only for deliberately-unwrapped actions and emergencies. +- A test plan that requires the user to type `git log` is considered a bad test plan. + +Context: users were falling back to the shell to pick tasks and merge, and the Shell step failed because of a small inherited `PATH` (missing `ocr`) and a stale shell pane created in a different folder. + +Consequences: `Work>work` gained `o` (task picker switches runs/change/facts/review/merge tabs) and `m` (merge with live merge tab); `docs/TEST-PLAN.md` rewritten keys-only; PATH and shell-folder bugs fixed in `bin/lib/harness.py` and `bin/board`. + +## Detailed decision context from completed turn + +Both complaints are fair, and both are now fixed in the program rather than in the instructions. + +## Work>work selects its own task and merges + +- **`o`** in `Work>work` opens a list of the project's tasks. Choose one and the runs, change, facts, review and merge tabs all switch to it. You no longer start in `Board>board`. +- **`m`** runs the merge for the task you are looking at, and the new **merge** tab shows it live: + +``` +merge of AUD-168 started 12:01:39 + worktree …/worktrees/AUD-168-tidy-the-readme-introduction + rebased onto main + no verify command: this would pass on the agent's word + review saw nothing to review (0 files); recorded, not hidden + merged into main at 4a44473 +merge finished 12:01:43 +``` + +That is a real merge I ran from the pane a minute ago, with no shell. Starting it twice is safe — the merge takes a lock and the second is refused. + +## Why the Shell step failed you + +Two real bugs, not your memory: + +1. The pane that merges inherited the pane's small `PATH`, so `bin/merge` could not find `ocr` and refused with `ocr is not installed`. Fixed at the source: `bin/lib/harness.py` now adds `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile before looking for anything. +2. `Shell>shell` was created in one folder and later adopted without checking. `bin/board` now compares the pane's real working directory with the project folder and **replaces** the shell pane when they differ, saying so. + +## The principle you are pointing at + +The terminal was creeping in as the normal path. It should not be. From now on: + +- anything you do regularly is a key in a pane; +- `Shell>shell` exists for the things we deliberately do not wrap, and for emergencies; +- a test plan that needs me to write `git log` is a bad test plan. + +`docs/TEST-PLAN.md` is rewritten accordingly: step 4 is now "press `m` and wait", and the whole plan contains no terminal commands at all. `Shell>shell` appears once, as the escape hatch it is. + +## What I would do next, in your order + +1. You run the plan as written (nine steps, keys only) and tell me where the screen and Paperclip disagree. +2. `Repair>cleanup` — sessions listed with age and pane count, kill only what you select, and never touching the Pi session files. +3. The Pi session browser — `pi --resume` in a tool pane, or the folder in Yazi. + +Committed as `7198c34`; the eight workspaces are rebuilt and running. + +## Evidence + +- Confidence: 90% +- Reason: Explicit durable product/UX convention chosen by the user/agent, with rationale and consequences.; enriched with final-answer detail because persistence should be reusable + +## Related learned memories + +- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]] +- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Pane-first UX: repeated actions become keys, Shell only as escape hatch]] +- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Implemented task picker, in-pane merge, PATH and shell-folder fixes (commit 7198c34)]] +- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|Merging a paperclip-harness task from the TUI and diagnosing merge failures]] +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-bin-2026-11-11-01-02-31|Rich discovery: bin 2026-11-11 01:02:31]] +- context: [[packs/paperclip-harness/20-context/tmp|bin]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md b/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md index b99b49a..c892753 100644 --- a/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md +++ b/.pi/memory-vault/packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns.md @@ -2223,3 +2223,74 @@ Committed as `678c497`. `AUD-168` is running now if you want to watch it in `Age - session: [[packs/paperclip-harness/80-sessions/rich-discovery-agents-2026-11-11-00-28-33|Rich discovery: agents 2026-11-11 00:28:33]] - context: [[packs/paperclip-harness/20-context/agents|agents]] - observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|agents repository structure and configuration patterns]] + + +--- + +## Update (2026-11-11 01:02:31) + +## Structural/configuration observations (2026-11-11 01:02:31) + +Both complaints are fair, and both are now fixed in the program rather than in the instructions. + +## Work>work selects its own task and merges + +- **`o`** in `Work>work` opens a list of the project's tasks. Choose one and the runs, change, facts, review and merge tabs all switch to it. You no longer start in `Board>board`. +- **`m`** runs the merge for the task you are looking at, and the new **merge** tab shows it live: + +``` +merge of AUD-168 started 12:01:39 + worktree …/worktrees/AUD-168-tidy-the-readme-introduction + rebased onto main + no verify command: this would pass on the agent's word + review saw nothing to review (0 files); recorded, not hidden + merged into main at 4a44473 +merge finished 12:01:43 +``` + +That is a real merge I ran from the pane a minute ago, with no shell. Starting it twice is safe — the merge takes a lock and the second is refused. + +## Why the Shell step failed you + +Two real bugs, not your memory: + +1. The pane that merges inherited the pane's small `PATH`, so `bin/merge` could not find `ocr` and refused with `ocr is not installed`. Fixed at the source: `bin/lib/harness.py` now adds `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile before looking for anything. +2. `Shell>shell` was created in one folder and later adopted without checking. `bin/board` now compares the pane's real working directory with the project folder and **replaces** the shell pane when they differ, saying so. + +## The principle you are pointing at + +The terminal was creeping in as the normal path. It should not be. From now on: + +- anything you do regularly is a key in a pane; +- `Shell>shell` exists for the things we deliberately do not wrap, and for emergencies; +- a test plan that needs me to write `git log` is a bad test plan. + +`docs/TEST-PLAN.md` is rewritten accordingly: step 4 is now "press `m` and wait", and the whole plan contains no terminal commands at all. `Shell>shell` appears once, as the escape hatch it is. + +## What I would do next, in your order + +1. You run the plan as written (nine steps, keys only) and tell me where the screen and Paperclip disagree. +2. `Repair>cleanup` — sessions listed with age and pane count, kill only what you select, and never touching the Pi session files. +3. The Pi session browser — `pi --resume` in a tool pane, or the folder in Yazi. + +Committed as `7198c34`; the eight workspaces are rebuilt and running. + +## Source paths observed + +- `tmp/pc-sandbox-2026-11-10/.paperclip/worktrees/AUD-168-tidy-the-rea` +- `bin/lib/harness.py` + +## Evidence + +- Confidence: 82% +- Reason: Captured factual repo structure/configuration patterns from rich discovery + +## Related learned memories + +- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]] +- decision: [[packs/paperclip-harness/50-decisions/paperclip-harness-ui-six-workspaces-spec-first-four-panel-li|Pane-first UX: repeated actions become keys, Shell only as escape hatch]] +- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|Implemented task picker, in-pane merge, PATH and shell-folder fixes (commit 7198c34)]] +- runbook: [[packs/paperclip-harness/70-runbooks/tmp-deployment-operations|Merging a paperclip-harness task from the TUI and diagnosing merge failures]] +- session: [[packs/paperclip-harness/80-sessions/rich-discovery-bin-2026-11-11-01-02-31|Rich discovery: bin 2026-11-11 01:02:31]] +- context: [[packs/paperclip-harness/20-context/tmp|bin]] +- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|bin repository structure and configuration patterns]] diff --git a/.pi/memory-vault/packs/paperclip-harness/70-runbooks/tmp-deployment-operations.md b/.pi/memory-vault/packs/paperclip-harness/70-runbooks/tmp-deployment-operations.md index d9e18a9..d50ac91 100644 --- a/.pi/memory-vault/packs/paperclip-harness/70-runbooks/tmp-deployment-operations.md +++ b/.pi/memory-vault/packs/paperclip-harness/70-runbooks/tmp-deployment-operations.md @@ -709,3 +709,86 @@ Committed as `e44b0df`, documentation only — the running layout is untouched. - session: [[packs/paperclip-harness/80-sessions/rich-discovery-paperclip-2026-11-10-21-58-38|Rich discovery: .paperclip 2026-11-10 21:58:38]] - context: [[packs/paperclip-harness/20-context/paperclipai|.paperclip]] - observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|.paperclip repository structure and configuration patterns]] + + +--- + +## Update (2026-11-11 01:02:31) + +Trigger: need to review or merge a completed task in paperclip-harness. + +Procedure: +1. In `Work>work` press `o` and choose the task from the list (IDs like `AUD-168`). All tabs switch to it. +2. Check the `review` and `change` tabs. +3. Press `m` to merge; watch the `merge` tab for live progress. Log file: `/tmp/paperclip-harness-merge.log`. +4. Success line looks like `merged into main at ` then `merge finished