Concrete guidance in New task>new instead of aphorisms; a test plan with every key

This commit is contained in:
Sam
2026-11-11 11:03:25 +11:00
parent 1f8731fd49
commit c9e027d0e3
9 changed files with 563 additions and 9 deletions

View File

@@ -180,3 +180,103 @@ 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-10 22:15:52)
## Rich discovery update (2026-11-10 22:15:52)
The picker is built and driven end to end.
## Skills picker — `Agents>agents`, fifth tab
It reads the same source `pi-config` reads (`~/.agents/skills`), plus Paperclip's company list and the chosen agent's own list, and marks every row:
```
Builder · space toggles the chosen skill
▸ archify not in Paperclip
caveman not in Paperclip
nixos-workflow in Paperclip
obsidian-cli in Paperclip
project-docs in Paperclip
```
Pressing space on a skill that Paperclip does not know copies it into the company managed folder, imports it, and assigns it **to this agent only**. Verified on `Builder`:
```
before desiredSkills: ['paperclipai/paperclip/paperclip']
space → 'local/556e0be78e/archify' added by Paperclip
space → removed again; back to the original list
```
That is the picker you asked for, and every step is a real call, not a plan.
## Extensions picker — sixth tab
Paperclip has no extension model, so the equivalent is the per-agent command. This tab lists `~/.agents/extensions`, and turning one on writes:
```
~/.local/share/paperclip-harness/wrappers/<agentId>.sh
#!/bin/sh
exec pi --extension /home/sam/.agents/extensions/ask-user-question/index.ts "$@"
```
and sets `adapterConfig.command` to that file — keeping the agent's model and folder untouched. Turning the last one off deletes the wrapper and puts the command back to plain `pi` (verified: `command: pi`, no wrapper file). A unit test pins write → read-back → remove, because a wrong wrapper would stop an agent from starting at all.
Two bugs found while testing: the wrapper reader mistook `…/ask-user-question/index.ts` for an extension called `index`, and the screen lagged a keystroke behind a reload. Both fixed.
## Junk TUIOS sessions — research and plan
`tuios ls --all-hosts` shows **37 sessions. 21 are from the closed project's tests**: `harness-demo-card-*` (18) and `office-test-1*` (3). The rest are yours and should stay — `office` (32 panes, attached), `paperclip-harness` (the layout), `factory`, and your personal ones.
**Nothing was killed.** That is destructive and the list is the evidence to decide on. Proposed, in `docs/SESSIONS.md`:
1. Kill the 21 by explicit pattern, with a `--dry-run` that only prints.
2. A `bin/prune` that shows sessions by age and pane count, and refuses any attached session.
3. A rule that every test script kills the session it creates — those 21 exist because creating was one command and cleaning up was not.
4. Never prune `paperclip-harness`: its panes are the layout, rebuilt by `R`.
## Where to find a Pi session
```
~/.pi/paperclips/<timestamp>-<agentId>.jsonl 178 files here
GET /api/agents/{id}/task-sessions → task → session file + folder
```
Open it with `pi --resume` (pick from Pi's list), or `pi --session <file>` for that exact conversation — the same flag Paperclip uses. Your instinct was right: the folder plus `--resume` is enough; a transcript tab is optional later.
## The test plan, as written earlier
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, runs, 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 dependent task and confirm it can now proceed.
6. Press `R` in `Repair>repair` and confirm all eight workspaces return.
7. Change an agent's model in `Agents>agents` settings and confirm it applies to the *next* run only.
All eight workspaces are running on the new build. Committed as `1f8731f`.
## Source paths observed
- `home/sam/.local/share/paperclip-harness/wrappers/403de1f7-645c-4d35-bc7e-19b01d77bacc.sh`
- `paperclip-harness/tui/paperclip`
- `home/sam/paseo/projects/paperclip-harness/docs/SESSIONS.md`
- `paperclipai/paperclip/paperclip`
- `local/556e0be78e/archify`
- `.local/share/paperclip-harness/wrappers`
- `home/sam/.agents/extensions/ask-user-question/index.ts`
## Evidence
- Confidence: 84%
- Reason: Update component/repository context with detailed discovered structure and configuration
## Related learned memories <!-- same-turn-2026-11-10 22:15:52 -->
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-skills-extension-pickers-built-junk-tuios-|Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-paperclipai-2026-11-10-22-15-52|Rich discovery: paperclipai 2026-11-10 22:15:52]]
- context: [[packs/paperclip-harness/20-context/paperclipai|paperclipai]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclipai repository structure and configuration patterns]]

View File

@@ -1971,3 +1971,103 @@ 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-10 22:15:52)
## Structural/configuration observations (2026-11-10 22:15:52)
The picker is built and driven end to end.
## Skills picker — `Agents>agents`, fifth tab
It reads the same source `pi-config` reads (`~/.agents/skills`), plus Paperclip's company list and the chosen agent's own list, and marks every row:
```
Builder · space toggles the chosen skill
▸ archify not in Paperclip
caveman not in Paperclip
nixos-workflow in Paperclip
obsidian-cli in Paperclip
project-docs in Paperclip
```
Pressing space on a skill that Paperclip does not know copies it into the company managed folder, imports it, and assigns it **to this agent only**. Verified on `Builder`:
```
before desiredSkills: ['paperclipai/paperclip/paperclip']
space → 'local/556e0be78e/archify' added by Paperclip
space → removed again; back to the original list
```
That is the picker you asked for, and every step is a real call, not a plan.
## Extensions picker — sixth tab
Paperclip has no extension model, so the equivalent is the per-agent command. This tab lists `~/.agents/extensions`, and turning one on writes:
```
~/.local/share/paperclip-harness/wrappers/<agentId>.sh
#!/bin/sh
exec pi --extension /home/sam/.agents/extensions/ask-user-question/index.ts "$@"
```
and sets `adapterConfig.command` to that file — keeping the agent's model and folder untouched. Turning the last one off deletes the wrapper and puts the command back to plain `pi` (verified: `command: pi`, no wrapper file). A unit test pins write → read-back → remove, because a wrong wrapper would stop an agent from starting at all.
Two bugs found while testing: the wrapper reader mistook `…/ask-user-question/index.ts` for an extension called `index`, and the screen lagged a keystroke behind a reload. Both fixed.
## Junk TUIOS sessions — research and plan
`tuios ls --all-hosts` shows **37 sessions. 21 are from the closed project's tests**: `harness-demo-card-*` (18) and `office-test-1*` (3). The rest are yours and should stay — `office` (32 panes, attached), `paperclip-harness` (the layout), `factory`, and your personal ones.
**Nothing was killed.** That is destructive and the list is the evidence to decide on. Proposed, in `docs/SESSIONS.md`:
1. Kill the 21 by explicit pattern, with a `--dry-run` that only prints.
2. A `bin/prune` that shows sessions by age and pane count, and refuses any attached session.
3. A rule that every test script kills the session it creates — those 21 exist because creating was one command and cleaning up was not.
4. Never prune `paperclip-harness`: its panes are the layout, rebuilt by `R`.
## Where to find a Pi session
```
~/.pi/paperclips/<timestamp>-<agentId>.jsonl 178 files here
GET /api/agents/{id}/task-sessions → task → session file + folder
```
Open it with `pi --resume` (pick from Pi's list), or `pi --session <file>` for that exact conversation — the same flag Paperclip uses. Your instinct was right: the folder plus `--resume` is enough; a transcript tab is optional later.
## The test plan, as written earlier
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, runs, 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 dependent task and confirm it can now proceed.
6. Press `R` in `Repair>repair` and confirm all eight workspaces return.
7. Change an agent's model in `Agents>agents` settings and confirm it applies to the *next* run only.
All eight workspaces are running on the new build. Committed as `1f8731f`.
## Source paths observed
- `home/sam/.local/share/paperclip-harness/wrappers/403de1f7-645c-4d35-bc7e-19b01d77bacc.sh`
- `paperclip-harness/tui/paperclip`
- `home/sam/paseo/projects/paperclip-harness/docs/SESSIONS.md`
- `paperclipai/paperclip/paperclip`
- `local/556e0be78e/archify`
- `.local/share/paperclip-harness/wrappers`
- `home/sam/.agents/extensions/ask-user-question/index.ts`
## Evidence
- Confidence: 82%
- Reason: Captured factual repo structure/configuration patterns from rich discovery
## Related learned memories <!-- same-turn-2026-11-10 22:15:52 -->
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-skills-extension-pickers-built-junk-tuios-|Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-paperclipai-2026-11-10-22-15-52|Rich discovery: paperclipai 2026-11-10 22:15:52]]
- context: [[packs/paperclip-harness/20-context/paperclipai|paperclipai]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclipai repository structure and configuration patterns]]

View File

@@ -0,0 +1,56 @@
---
type: session
id: session.paperclip-harness.paperclip-harness-skills-extension-pickers-built-junk-tuios-
title: Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/session
- paperclip-harness
- skills-picker
- extensions-picker
- tuios
- sessions
- pi
- test-plan
- docs/SESSIONS.md
---
# Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup
Rich discovery snapshot for paperclip-harness (repo at ~/paseo/projects/paperclip-harness, active pack 'paperclip-harness'). Committed as 1f8731f "Skill and extension picker for Paperclip agents; session notes and cleanup plan".
## Skills picker (Agents>agents, 5th tab)
Reads same source as pi-config (~/.agents/skills) plus Paperclip company list and the chosen agent's own list; marks each row (e.g. 'in Paperclip' / 'not in Paperclip').
Space on a skill Paperclip doesn't know: copies it into the company managed folder, imports it, assigns to THIS agent only (e.g. 'local/556e0be78e/archify'). Toggling off removes it, restoring original desiredSkills (verified on agent 'Builder').
## Extensions picker (Agents>agents, 6th tab)
Paperclip has no extension model, so equivalent = per-agent command. Lists ~/.agents/extensions. Turning one on writes wrapper ~/.local/share/paperclip-harness/wrappers/<agentId>.sh containing '#!/bin/sh' + 'exec pi --extension <ext path>/index.ts "$@"' and sets adapterConfig.command to that file (keeps model/folder untouched). Turning last one off deletes wrapper and restores command to plain 'pi'. Unit test pins write->read-back->remove. Two bugs fixed during testing: wrapper reader mistook '.../ask-user-question/index.ts' for extension named 'index'; screen lagged a keystroke behind reload.
## TUIOS sessions research (no destructive action taken)
'tuios ls --all-hosts' shows 37 sessions; 21 are from the closed project's tests ('harness-demo-card-*' x18, 'office-test-1*' x3). Keep: 'office' (32 panes, attached), 'paperclip-harness' (the layout), 'factory', personal ones. Plan written to docs/SESSIONS.md: (1) kill 21 by explicit pattern with --dry-run first; (2) bin/prune shows sessions by age+pane count, refuses attached sessions; (3) rule that every test script kills the session it creates; (4) never prune paperclip-harness (panes are the layout, rebuilt by R).
## Pi session lookup
Transcripts: ~/.pi/paperclips/<timestamp>-<agentId>.jsonl (178 files). 'GET /api/agents/{id}/task-sessions' maps task -> session file + folder. Open with 'pi --resume' (pick from list) or 'pi --session <file>' (same flag Paperclip uses).
## Manual test plan (7 steps) for end-to-end flow
1. Create task in New task>new with blocker + verify command; see in Board>board. 2. Assign in Board, watch in Agents (roster, runs, log). 3. Let finish; read diff in Work>work, verdict in Work>review. 4. Merge with bin/merge; confirm verify passes on main. 5. Open dependent task, confirm it proceeds. 6. Press R in Repair>repair, confirm all 8 workspaces return. 7. Change agent model in Agents settings, confirm applies to NEXT run only. All 8 workspaces running new build.
## Evidence
- Confidence: 90%
- Reason: Final answer contains many durable, evidence-backed discoveries (component behavior, file paths, counts, cleanup plan, test plan) worth one rich sanitized snapshot.
## Related
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
## Related learned memories <!-- same-turn-2026-11-10 22:15:52 -->
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-skills-extension-pickers-built-junk-tuios-|Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-paperclipai-2026-11-10-22-15-52|Rich discovery: paperclipai 2026-11-10 22:15:52]]
- context: [[packs/paperclip-harness/20-context/paperclipai|paperclipai]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclipai repository structure and configuration patterns]]

View File

@@ -0,0 +1,119 @@
---
type: session
id: session.paperclip-harness.rich-discovery-paperclipai-2026-11-10-22-15-52
title: Rich discovery: paperclipai 2026-11-10 22:15:52
status: active
source_of_truth: false
freshness: current
last_reviewed: 2026-11-10
tags:
- pack/paperclip-harness
- agent-memory/session
- autolearn
- rich-discovery
- repo/paperclipai
---
# Rich discovery: paperclipai 2026-11-10 22:15:52
Sanitized rich discovery snapshot captured automatically from the completed turn.
## Source paths observed
- `home/sam/.local/share/paperclip-harness/wrappers/403de1f7-645c-4d35-bc7e-19b01d77bacc.sh`
- `paperclip-harness/tui/paperclip`
- `home/sam/paseo/projects/paperclip-harness/docs/SESSIONS.md`
- `paperclipai/paperclip/paperclip`
- `local/556e0be78e/archify`
- `.local/share/paperclip-harness/wrappers`
- `home/sam/.agents/extensions/ask-user-question/index.ts`
## Final answer snapshot
The picker is built and driven end to end.
## Skills picker — `Agents>agents`, fifth tab
It reads the same source `pi-config` reads (`~/.agents/skills`), plus Paperclip's company list and the chosen agent's own list, and marks every row:
```
Builder · space toggles the chosen skill
▸ archify not in Paperclip
caveman not in Paperclip
nixos-workflow in Paperclip
obsidian-cli in Paperclip
project-docs in Paperclip
```
Pressing space on a skill that Paperclip does not know copies it into the company managed folder, imports it, and assigns it **to this agent only**. Verified on `Builder`:
```
before desiredSkills: ['paperclipai/paperclip/paperclip']
space → 'local/556e0be78e/archify' added by Paperclip
space → removed again; back to the original list
```
That is the picker you asked for, and every step is a real call, not a plan.
## Extensions picker — sixth tab
Paperclip has no extension model, so the equivalent is the per-agent command. This tab lists `~/.agents/extensions`, and turning one on writes:
```
~/.local/share/paperclip-harness/wrappers/<agentId>.sh
#!/bin/sh
exec pi --extension /home/sam/.agents/extensions/ask-user-question/index.ts "$@"
```
and sets `adapterConfig.command` to that file — keeping the agent's model and folder untouched. Turning the last one off deletes the wrapper and puts the command back to plain `pi` (verified: `command: pi`, no wrapper file). A unit test pins write → read-back → remove, because a wrong wrapper would stop an agent from starting at all.
Two bugs found while testing: the wrapper reader mistook `…/ask-user-question/index.ts` for an extension called `index`, and the screen lagged a keystroke behind a reload. Both fixed.
## Junk TUIOS sessions — research and plan
`tuios ls --all-hosts` shows **37 sessions. 21 are from the closed project's tests**: `harness-demo-card-*` (18) and `office-test-1*` (3). The rest are yours and should stay — `office` (32 panes, attached), `paperclip-harness` (the layout), `factory`, and your personal ones.
**Nothing was killed.** That is destructive and the list is the evidence to decide on. Proposed, in `docs/SESSIONS.md`:
1. Kill the 21 by explicit pattern, with a `--dry-run` that only prints.
2. A `bin/prune` that shows sessions by age and pane count, and refuses any attached session.
3. A rule that every test script kills the session it creates — those 21 exist because creating was one command and cleaning up was not.
4. Never prune `paperclip-harness`: its panes are the layout, rebuilt by `R`.
## Where to find a Pi session
```
~/.pi/paperclips/<timestamp>-<agentId>.jsonl 178 files here
GET /api/agents/{id}/task-sessions → task → session file + folder
```
Open it with `pi --resume` (pick from Pi's list), or `pi --session <file>` for that exact conversation — the same flag Paperclip uses. Your instinct was right: the folder plus `--resume` is enough; a transcript tab is optional later.
## The test plan, as written earlier
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, runs, 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 dependent task and confirm it can now proceed.
6. Press `R` in `Repair>repair` and confirm all eight workspaces return.
7. Change an agent's model in `Agents>agents` settings and confirm it applies to the *next* run only.
All eight workspaces are running on the new build. Committed as `1f8731f`.
## Evidence
- Confidence: 86%
- Reason: Preserve full sanitized discovery detail from a rich investigation turn
## Related
- [[packs/paperclip-harness/00-system/pi-agent/memory-manifest|Memory Manifest]]
## Related learned memories <!-- same-turn-2026-11-10 22:15:52 -->
- session: [[packs/paperclip-harness/80-sessions/paperclip-harness-skills-extension-pickers-built-junk-tuios-|Paperclip harness: skills/extension pickers built, junk TUIOS session research, Pi session lookup]]
- session: [[packs/paperclip-harness/80-sessions/rich-discovery-paperclipai-2026-11-10-22-15-52|Rich discovery: paperclipai 2026-11-10 22:15:52]]
- context: [[packs/paperclip-harness/20-context/paperclipai|paperclipai]]
- observation: [[packs/paperclip-harness/60-observations/tmp-repository-structure-and-configuration-patterns|paperclipai repository structure and configuration patterns]]