Findings: per-agent skills API, memory stack, MOUSE-1 policy, the old office scaffold, the dashboard endpoint

This commit is contained in:
Sam
2026-11-10 21:00:42 +11:00
parent 7b12b45064
commit 3d31243317
10 changed files with 731 additions and 1 deletions

View File

@@ -0,0 +1,107 @@
---
type: runbook
id: runbook.paperclip-harness.paperclip-harness-functional-smoke-test-end-to-end
title: Paperclip-harness functional smoke test (end-to-end)
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/runbook
- paperclip-harness
- runbook
- testing
- tuios
- troubleshooting
---
# Paperclip-harness functional smoke test (end-to-end)
Trigger: after changes to paperclip-harness, run the agreed end-to-end functional test list before shipping.
Procedure:
1. Create a task in New task>new with a blocker and a verify command; confirm it appears in Board>board.
2. Assign it in Board>board, then watch it in Agents>agents — roster, then runs, then its log.
3. Let it finish; read the diff in Work>work, and the verdict in Work>review.
4. Merge with `bin/merge`; confirm the verify command passes on `main`.
5. Open the blocker's dependent task and confirm it can now proceed.
6. Press `R` in Repair>repair and confirm the eight workspaces come back.
7. Set an agent's model in Agents>agents and confirm it applies to the *next* run only.
Prereqs: a running paperclip-harness TUIOS session (session name `paperclip-harness`), tools check all green on Repair>repair, ocr and other tools on PATH.
Troubleshooting (learned this turn): a tool pane may launch with a smaller PATH than the user's shell, so tools appear "command not found" (ocr); and some tools exit immediately when they have nothing to do — a "press enter to close" trailer keeps the pane open. `tuios list-windows -s paperclip-harness` enumerates pane names when capture-pane fails.
## Detailed procedure from completed turn
Both bugs fixed, and here are direct answers.
## Fixed
**Repair>repair** — the icon sample row is gone.
**ocr closed instantly.** Two causes, both real: a tool pane is started with a smaller PATH than your shell, so `ocr` was "command not found", and even when it ran, a review with nothing to look at exits in a second. Tool panes now get `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile on PATH, and the ocr entry ends with a "press enter to close" line. It now runs and stays:
```
[ocr] 1 file(s) changed, reviewing 1 in /tmp/pc-sandbox-2026-11-10
[ocr] ▶ code_search search_text=harness …
```
The chooser also gained `g` and `G`, which is what led me to open a second shell pane while testing.
## Where settings are
**`Agents>agents`, fourth tab, settings.** Role, job title, model, monthly budget, heartbeat. `enter` edits a field in place, `esc` cancels, `p`/`P`/`w` pause, resume, wake. Each save is one PATCH merged into that agent's existing config, so changing the model does not wipe its folder or instructions — I verified that by reading the record back.
**Spend** is shown, not set, in `Project>costs`, `Board>board` and `Work>work`. The budget lives on the agent, so it is edited per agent on that settings tab. There is no company-level spend control on any screen yet.
## Your questions, answered plainly
**Skills.** Not in the interface. Paperclip has `GET /api/agents/{id}/skills` and `POST …/skills/sync` with `add`, `remove`, `replace` — so a read-only skills row is cheap, a full editor is a later step. Your rule (sub-agents get only what their job needs) maps exactly onto `replace`.
**Where to add work.** `New task>new`. And my answer on Tuxedo is **no** for tasks: a second place that writes tasks is a second owner for the same fact, which is the fault that sank the last attempt. If you want notes, put them in the project's own `.harness/NOTES.md` and let Tuxedo read it per project — notes are not tasks, and nothing else should claim they are.
**`office --host` from another machine.** Not implemented, and it should not be faked. Sessions are created by you: `tuios new --host nixos-desktop "new test project"`, then `bin/office <folder>` inside it on the machine that owns the folder. Driving `.27` from `.13` needs ssh plus a remote `bin/board` — a deliberate step, not an accident.
**Switching projects.** Not built. Proposal: a small local registry of adopted projects (id, folder, host, session) filled by `bin/office`, and a `Project>projects` tab that lists them and switches by rewriting the current folder's `.harness/harness.toml`. A project on another machine shows as `on .27` rather than pretending it can be opened from here.
**Artifacts** are Paperclip work products attached to a task — an uploaded file, a pull request, a preview URL, a commit, a branch. Nothing shows them yet; their home is a `Work>artifacts` tab.
**"Workspaces" in Paperclip** do not exist. Paperclip has companies → projects → tasks → agents → runs. What Paperclip calls a workspace is a project's code folder, the git worktree a task runs in. Our *workspace* is TUIOS's word for a page.
**Charts.** Use Go, not TML: the panels are already Go and the data is in memory. `tuios.dev/plot` gives a spend-by-day chart in `Project>costs` for a few dozen lines.
**Mouse-1/Switch** are still not installed on this machine.
## Functional tests — the list I propose
1. Create a task in `New task>new` with a blocker and a verify command; see it in `Board>board`.
2. Assign it in `Board>board`, then watch it in `Agents>agents` — roster, then runs, then its log.
3. Let it finish; read the diff in `Work>work`, the verdict in `Work>review`.
4. Merge with `bin/merge`, confirm the verify command passes on `main`.
5. Open the blocker's dependent task and confirm it can now proceed.
6. `R` from `Repair>repair` and confirm the eight workspaces come back.
7. Set an agent's model in `Agents>agents` and confirm it applies to the *next* run only.
Committed as `7b12b45`. Say go and I run that list end to end and report each result.
## Evidence
- Confidence: 85%
- Reason: Repeatable test checklist and the PATH/instant-exit troubleshooting are durable and reusable.; enriched with final-answer detail because persistence should be reusable
## Related
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
## Related learned memories <!-- same-turn-2026-11-10 07:35:38 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- runbook: [[packs/paperclip-harness/70-runbooks/paperclip-harness-functional-smoke-test-end-to-end|Paperclip-harness functional smoke test (end-to-end)]]
- decision: [[packs/paperclip-harness/50-decisions/task-entry-dedup-and-per-project-notes-skills-via-replace-no|Task entry/dedup and per-project notes; skills via replace; no fake remote office]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|paperclip-harness commit 7b12b45: fixed repair icon row + ocr pane closing; answered settings/skills/projects questions]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-tmp-2026-11-10-07-35-38|Rich discovery: tmp 2026-11-10 07:35:38]]
- 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]]

View File

@@ -0,0 +1,103 @@
---
type: runbook
id: runbook.paperclip-harness.tmp-deployment-operations
title: tmp deployment operations
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/runbook
- autolearn
- rich-discovery
- deployment-runbook
---
# tmp deployment operations
## Deployment/runbook details discovered (2026-11-10 07:35:38)
Both bugs fixed, and here are direct answers.
## Fixed
**Repair>repair** — the icon sample row is gone.
**ocr closed instantly.** Two causes, both real: a tool pane is started with a smaller PATH than your shell, so `ocr` was "command not found", and even when it ran, a review with nothing to look at exits in a second. Tool panes now get `~/.local/bin`, `~/.nix-profile/bin`, the system profile and your per-user profile on PATH, and the ocr entry ends with a "press enter to close" line. It now runs and stays:
```
[ocr] 1 file(s) changed, reviewing 1 in /tmp/pc-sandbox-2026-11-10
[ocr] ▶ code_search search_text=harness …
```
The chooser also gained `g` and `G`, which is what led me to open a second shell pane while testing.
## Where settings are
**`Agents>agents`, fourth tab, settings.** Role, job title, model, monthly budget, heartbeat. `enter` edits a field in place, `esc` cancels, `p`/`P`/`w` pause, resume, wake. Each save is one PATCH merged into that agent's existing config, so changing the model does not wipe its folder or instructions — I verified that by reading the record back.
**Spend** is shown, not set, in `Project>costs`, `Board>board` and `Work>work`. The budget lives on the agent, so it is edited per agent on that settings tab. There is no company-level spend control on any screen yet.
## Your questions, answered plainly
**Skills.** Not in the interface. Paperclip has `GET /api/agents/{id}/skills` and `POST …/skills/sync` with `add`, `remove`, `replace` — so a read-only skills row is cheap, a full editor is a later step. Your rule (sub-agents get only what their job needs) maps exactly onto `replace`.
**Where to add work.** `New task>new`. And my answer on Tuxedo is **no** for tasks: a second place that writes tasks is a second owner for the same fact, which is the fault that sank the last attempt. If you want notes, put them in the project's own `.harness/NOTES.md` and let Tuxedo read it per project — notes are not tasks, and nothing else should claim they are.
**`office --host` from another machine.** Not implemented, and it should not be faked. Sessions are created by you: `tuios new --host nixos-desktop "new test project"`, then `bin/office <folder>` inside it on the machine that owns the folder. Driving `.27` from `.13` needs ssh plus a remote `bin/board` — a deliberate step, not an accident.
**Switching projects.** Not built. Proposal: a small local registry of adopted projects (id, folder, host, session) filled by `bin/office`, and a `Project>projects` tab that lists them and switches by rewriting the current folder's `.harness/harness.toml`. A project on another machine shows as `on .27` rather than pretending it can be opened from here.
**Artifacts** are Paperclip work products attached to a task — an uploaded file, a pull request, a preview URL, a commit, a branch. Nothing shows them yet; their home is a `Work>artifacts` tab.
**"Workspaces" in Paperclip** do not exist. Paperclip has companies → projects → tasks → agents → runs. What Paperclip calls a workspace is a project's code folder, the git worktree a task runs in. Our *workspace* is TUIOS's word for a page.
**Charts.** Use Go, not TML: the panels are already Go and the data is in memory. `tuios.dev/plot` gives a spend-by-day chart in `Project>costs` for a few dozen lines.
**Mouse-1/Switch** are still not installed on this machine.
## Functional tests — the list I propose
1. Create a task in `New task>new` with a blocker and a verify command; see it in `Board>board`.
2. Assign it in `Board>board`, then watch it in `Agents>agents` — roster, then runs, then its log.
3. Let it finish; read the diff in `Work>work`, the verdict in `Work>review`.
4. Merge with `bin/merge`, confirm the verify command passes on `main`.
5. Open the blocker's dependent task and confirm it can now proceed.
6. `R` from `Repair>repair` and confirm the eight workspaces come back.
7. Set an agent's model in `Agents>agents` and confirm it applies to the *next* run only.
Committed as `7b12b45`. Say go and I run that list end to end and report each result.
## Source paths observed
- `paseo/projects/new_test_projects`
- `tuios.dev/docs/libraries/plot`
- `home/sam/paseo/projects/paperclip-harness/bin/harness`
- `run/current-system/sw/bin/git`
- `home/sam/.nix-profile/bin/go`
- `home/sam/.local/bin/ocr`
- `etc/profiles/per-user/sam/bin/tuios`
- `run/current-system/sw/bin/lazygit`
- `etc/profiles/per-user/sam/bin/hunk`
- `tmp/pc-sandbox-2026-11-10/.gitignore`
## Evidence
- Confidence: 83%
- Reason: Extracted repeatable deploy/configuration procedure from rich discovery
## Related
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
## Related learned memories <!-- same-turn-2026-11-10 07:35:38 -->
- context: [[packs/paperclip-harness/20-context/paperclip-harness|paperclip-harness]]
- runbook: [[packs/paperclip-harness/70-runbooks/paperclip-harness-functional-smoke-test-end-to-end|Paperclip-harness functional smoke test (end-to-end)]]
- decision: [[packs/paperclip-harness/50-decisions/task-entry-dedup-and-per-project-notes-skills-via-replace-no|Task entry/dedup and per-project notes; skills via replace; no fake remote office]]
- action: [[packs/paperclip-harness/40-actions/2026-11-10-wrote-docs-ui-layout-md-and-three-live-layout-mockups|paperclip-harness commit 7b12b45: fixed repair icon row + ocr pane closing; answered settings/skills/projects questions]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-tmp-2026-11-10-07-35-38|Rich discovery: tmp 2026-11-10 07:35:38]]
- 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]]