Spec Studio

A second session exists only across a boundary one session cannot cross

spec:cc-agents.coordination.boundary-onlyDecision Record · featuredefined floor ready

Next rung ready: nothing blocks; it waits only for the author's statement.

Packs: none

Design: no design entries · no pinned declarations · no decisions

Findings: no errors, no warnings

specs/coordination/boundary-only.sdp.md

No open questions and no blocking questions; implementation binding none, verifier binding none, and expected-outcome oracle none.

Intent
outcome
Decide when work uses a second session, what a chain is then, and which messages between sessions are the exception.
Decision
context
An agent or a Workflow role returns its result into its parent's turn, runs on any provider's model through the plugin's lanes, and needs no address, message or record. A session is heavier: it holds a context of its own, re-reads it at every turn, and can be reached only by a message. Earlier practice ran most work as chains of sessions with a messaging network and built glue for it, much of it to work around a terminal and a delivery that waited for a turn to end. The person who approves this design ruled that, with agents and Workflows that mix providers, most work does not need that. A session started by another application on the same operating system is a native peer; a container and its host are not.
decision
A second session is started only for one of three boundaries: another operating system, another repository or permission profile, or a part large or long enough to need a context of its own. The sessions started for one piece of work form a chain, in which the top has no parent and every other session is a lead with exactly one parent. A chain has no roles beyond top and lead. Inside a chain a message is a brief down, a report up or a correction down. A message between two sessions of no common chain is allowed, rare and recorded, and it gives neither side a role.
rationale
  • Hard to reverse because every project's guidance will teach when to start a session. Surprising without context because the plugin ships coordination while its own guidance tells sessions not to use it for most work. A real trade-off: a lead's own context and reach against a layer that re-reads its context at every turn, with a message as its only way back.
alternatives
  • Port the earlier practice whole, with coordinators, stewards, single-use sessions, a roster, wait loops and forwarded queues. It answers terminal and queue problems that native messaging removes, and each layer re-reads large contexts.
  • A record without a chain. It shows what was said but not who started whom, so nothing says where a lead reports or who owns what it left running.
  • Free peer addressing through a roster. With no parent, nobody owns what a session was asked to do.
consequences
  • Agents and Workflow roles never join a chain and are never recorded as sessions.
  • A chain is shallow by design: the top and one level of leads. A deeper chain is recorded and shown with a notice, and nothing refuses it.
  • A project's guidance names its own boundaries, and it does not carry a general rule to start sessions.
  • A coordinator, a steward and a single-use session are practices of a top and of short leads, and they are not roles.
Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Satisfying or referencing units: no recorded binding.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:cc-agents.coordination.boundary-only

Arrows: refines (declared).

The diagram as text
  • spec:cc-agents.coordination.boundary-only: A second session exists only across a boundary one session cannot cross · declared Spec
  • spec:cc-agents.coordination: Sessions that must message each other leave a record and a place in a chain · declared Spec
  • spec:cc-agents.coordination.boundary-only refines spec:cc-agents.coordination · declared — settles what a chain still has to be when agents and Workflows carry most work
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

No implementation neighborhood recorded.

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.coordination.boundary-only
The diagram as text
  • spec:cc-agents.coordination: Sessions that must message each other leave a record and a place in a chain
  • spec:cc-agents.coordination.boundary-only: A second session exists only across a boundary one session cannot cross
  • spec:cc-agents.coordination.chain: A lead states its parent once, and the chain is read from what leads stated
  • spec:cc-agents.hq-links: The one tie between this repository's Specs and HQ's design
  • spec:cc-agents.coordination.boundary-only refines spec:cc-agents.coordination · declared — settles what a chain still has to be when agents and Workflows carry most work
  • spec:cc-agents.coordination decidedBy spec:cc-agents.coordination.boundary-only · declared — settles when work needs a second session at all
  • spec:cc-agents.coordination.chain decidedBy spec:cc-agents.coordination.boundary-only · declared — fixes the roles to top and lead and the agents out of the chain
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.boundary-only · declared — narrows when sessions coordinate at all
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

Distance 1

Distance 2

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingSessions that must message each other leave a record and a place in a chain
spec:cc-agents.coordination · resolves
declaredsettles what a chain still has to be when agents and Workflows carry most workNone
decidedBy · incomingSessions that must message each other leave a record and a place in a chain
spec:cc-agents.coordination · resolves
declaredsettles when work needs a second session at allNone
decidedBy · incomingA lead states its parent once, and the chain is read from what leads stated
spec:cc-agents.coordination.chain · resolves
declaredfixes the roles to top and lead and the agents out of the chainNone
dependsOn · incomingThe one tie between this repository's Specs and HQ's design
spec:cc-agents.hq-links · resolves
declarednarrows when sessions coordinate at allNone

Bindings

Implementation binding: none

Design reference: none

Verifier binding: none

Expected-outcome oracle: none

Runtime observation: not tracked.

Run results: not recorded in the graph.

Findings

None.

Composing (0)

Composing needs the script.