actorThe session's agents, their caps and the machine are always in view
spec:cc-agents.panePacks: none
Design: 4 design entries · 2 pinned declarations · no decisions
Findings: no errors, no warnings
specs/runner/pane.sdp.md
1 open question and no blocking questions; implementation binding present, verifier binding present, and expected-outcome oracle none.
The pane is plugin/hooks/pane.js, and the /harnesses text is built in plugin/hooks/harnesses.js. Both read the sidecar's status answer; neither calls a model.
Intent
- A user watching foreign agents run, in the terminal or the Desktop app.
problem- A foreign agent's progress, its waiting for a slot and the machine's load are invisible in Claude Code's own rows.
outcome- The user sees each agent by harness and cap key with its state, model, elapsed time, last activity and error, the cap's use across the machine, and the machine guard's state.
value- A wait or a failure is explained where the user is already looking.
Open questions
- non-blocking ·
question.untriedSurfacesline 25 · specs/runner/pane.sdp.md:25· The Desktop band, the VS Code extension and Linux were not tried in a real session; the pane is verified against scripted status answers and mod mounts only.Decider: ownerProvisional: Only the surfaces the tests mount are claimed.
Behavior
rule.lanesline 31 ·specs/runner/pane.sdp.md:31- The pane draws one lane per harness and cap key, with each agent's state, model, elapsed time, last activity and error, the cap's use across the machine, and the machine guard's state, those still at work first.
no example exercises it
rule.readsOnlyline 32 ·specs/runner/pane.sdp.md:32- The pane reads the sidecar's status over the session's socket with the caps option every two seconds, and never starts the sidecar.
no example exercises it
rule.keepsTheRecordline 33 ·specs/runner/pane.sdp.md:33- Once the sidecar has exited, the pane keeps the agents this session ran and says that no agent runs now.
no example exercises it
rule.desktopTooline 34 ·specs/runner/pane.sdp.md:34- The Desktop app's session, which is not interactive, gets the pane too, with a drawing of the lanes above the same rows, and a session that draws nothing is not polled.
no example exercises it
rule.waitingShownline 35 ·specs/runner/pane.sdp.md:35- A spawn still waiting for its slot or for the machine appears in its lane as waiting, not as other sessions' use.
no example exercises it
rule.criticalSaysWhyline 36 ·specs/runner/pane.sdp.md:36- A critical machine says why and that new agents wait while running ones go on.
no example exercises it
rule.bandInClassicline 37 ·specs/runner/pane.sdp.md:37- In the classic terminal a band above the prompt shows the lanes, the latest failure and a critical machine, says nothing while nothing runs and the machine is ok, and yields to the pane while the pane shows.
no example exercises it
rule.opensItselfline 38 ·specs/runner/pane.sdp.md:38- In the fullscreen terminal the pane opens by itself once, when the first agent starts, and the command
/agents-paneopens it anywhere without taking the keyboard.no example exercises it
rule.redrawsOnChangeline 39 ·specs/runner/pane.sdp.md:39- The pane redraws when what it shows changes and while an agent's clock runs, and not otherwise.
no example exercises it
rule.harnessesTextline 40 ·specs/runner/pane.sdp.md:40- The command
/harnessesanswers at once, without a Claude turn, with the machine's state, the model guide, each harness with its default model and caps, and this session's agents.no example exercises it
0 unkeyed rules.
Design
paneIdline 44 ·specs/runner/pane.sdp.md:44cc-agentsno citation recorded
commandsline 45 ·specs/runner/pane.sdp.md:45/agents-paneopens the pane and/harnessesprints the text.no citation recorded
pollMsline 46 ·specs/runner/pane.sdp.md:46- 2000
recentWindowline 47 ·specs/runner/pane.sdp.md:47- A finished agent stays in its lane for ten minutes after its last event, and is then only counted.
Verification
Verifier bindings
- test:cc-agents.mod-suite · the mod against a scripted sidecar · anchored · test anchor binding present ·
plugin/tests/mod.test.ts:4 - test:cc-agents.pane-suite · the pane against a scripted status · anchored · test anchor binding present ·
plugin/tests/pane.test.ts:4
Design view
Requirement drawing
- Declared verifying examples: no declared verifying example.
The diagram as text
- spec:cc-agents.pane: The session's agents, their caps and the machine are always in view · declared Spec
- spec:cc-agents.runner: Other model families run as real Claude Code agents · declared Spec
- impl:cc-agents.harness-options: reads the per-harness options, picks the model-guide template and builds the /harnesses text · anchored code ·
plugin/hooks/harnesses.js:5 - impl:cc-agents.pane: draws the lanes, the band and the pane from the sidecar's status · anchored code ·
plugin/hooks/pane.js:13 - test:cc-agents.mod-suite: the mod against a scripted sidecar · anchored test binding · binding present ·
plugin/tests/mod.test.ts:4 - test:cc-agents.pane-suite: the pane against a scripted status · anchored test binding · binding present ·
plugin/tests/pane.test.ts:4 - spec:cc-agents.pane refines spec:cc-agents.runner · declared
- impl:cc-agents.harness-options satisfies spec:cc-agents.pane · anchored
- impl:cc-agents.pane satisfies spec:cc-agents.pane · anchored
- test:cc-agents.mod-suite verifies spec:cc-agents.pane · anchored
- test:cc-agents.pane-suite verifies spec:cc-agents.pane · anchored
Mermaid source
Copyable source; the Studio draws static SVG.
Preferred and chosen syntax: requirementDiagram; exact refines, satisfies and verifies, with claim words in nodes and per-edge comments.
Decisions
No decision record named.
Runtime
impl:cc-agents.harness-options· reads the per-harness options, picks the model-guide template and builds the /harnesses text ·plugin/hooks/harnesses.js:5Uses
None.
impl:cc-agents.pane· draws the lanes, the band and the pane from the sidecar's status ·plugin/hooks/pane.js:13Uses
None.
Runtime observation: not tracked.
Evidence
Runtime observation: not tracked.
Build attestations: not tracked.
Deployments: not tracked.
Bills of materials: not tracked.
Impact
The diagram as text
- spec:cc-agents.pane: The session's agents, their caps and the machine are always in view
- spec:cc-agents.runner: Other model families run as real Claude Code agents
- spec:cc-agents.sidecar: One sidecar per Claude session owns the session's harness turns
- spec:cc-agents.pane dependsOn spec:cc-agents.sidecar · declared — the pane and the /harnesses text read the sidecar's status answer
- spec:cc-agents.pane refines spec:cc-agents.runner · declared
Mermaid source
Copyable source; the Studio draws static SVG.
Preferred syntax: flowchart. Chosen syntax: labelled flowchart, preserving exact relations, claims and folds.
Rests on
- refines · spec:cc-agents.runner · stated defined, floor ready
- dependsOn · spec:cc-agents.sidecar · stated ready, floor ready
Rested on by
No Spec rests on this Spec.
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| dependsOn · outgoing | One sidecar per Claude session owns the session's harness turnsspec:cc-agents.sidecar · resolves | declared | the pane and the /harnesses text read the sidecar's status answer | None |
| refines · outgoing | Other model families run as real Claude Code agentsspec:cc-agents.runner · resolves | declared | None | None |
Bindings
Implementation binding: present
impl:cc-agents.harness-options· reads the per-harness options, picks the model-guide template and builds the /harnesses text ·plugin/hooks/harnesses.js:5impl:cc-agents.pane· draws the lanes, the band and the pane from the sidecar's status ·plugin/hooks/pane.js:13
Design reference: none
Verifier binding: present
- test:cc-agents.mod-suite · the mod against a scripted sidecar · anchored ·
plugin/tests/mod.test.ts:4· test anchor - test:cc-agents.pane-suite · the pane against a scripted status · anchored ·
plugin/tests/pane.test.ts:4· test anchor
Expected-outcome oracle: none
Runtime observation: not tracked.
Run results: not recorded in the graph.
Findings
None.
Composing (0)
Composing needs the script.