Spec Studio

The session's agents, their caps and the machine are always in view

spec:cc-agents.paneUse Case / Behavior · featureready floor ready

Packs: 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
actor
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.untriedSurfaces line 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.lanes line 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.readsOnly line 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.keepsTheRecord line 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.desktopToo line 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.waitingShown line 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.criticalSaysWhy line 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.bandInClassic line 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.opensItself line 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-pane opens it anywhere without taking the keyboard.

no example exercises it

rule.redrawsOnChange line 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.harnessesText line 40 · specs/runner/pane.sdp.md:40
The command /harnesses answers 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
paneId line 44 · specs/runner/pane.sdp.md:44
cc-agents

no citation recorded

commands line 45 · specs/runner/pane.sdp.md:45
/agents-pane opens the pane and /harnesses prints the text.

no citation recorded

pollMs line 46 · specs/runner/pane.sdp.md:46
2000
recentWindow line 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.
Requirement drawing for spec:cc-agents.pane
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:5

    Uses

    None.

  • impl:cc-agents.pane · draws the lanes, the band and the pane from the sidecar's status · plugin/hooks/pane.js:13

    Uses

    None.

Runtime observation: not tracked.

Evidence

Runtime observation: not tracked.

Build attestations: not tracked.

Deployments: not tracked.

Bills of materials: not tracked.

Impact
Relations of spec:cc-agents.pane
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

Rested on by

No Spec rests on this Spec.

Relations

Relation and directionOther endClaimReasonExercised keys
dependsOn · outgoingOne sidecar per Claude session owns the session's harness turns
spec:cc-agents.sidecar · resolves
declaredthe pane and the /harnesses text read the sidecar's status answerNone
refines · outgoingOther model families run as real Claude Code agents
spec:cc-agents.runner · resolves
declaredNoneNone

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:5
  • impl: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.