outcomeA second session exists only across a boundary one session cannot cross
spec:cc-agents.coordination.boundary-onlyNext 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
- 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.
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
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
- refines · spec:cc-agents.coordination · stated defined, floor ready
Rested on by
Distance 1
- spec:cc-agents.coordination
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: None
- spec:cc-agents.coordination.chain
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:cc-agents-coordination
- spec:cc-agents.hq-links
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: None
Distance 2
- spec:cc-agents.coordination.adoption
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:cc-agents-coordination
- spec:cc-agents.coordination.record
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:cc-agents-coordination
- spec:cc-agents.coordination.session-scanning
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:cc-agents-coordination
- spec:cc-agents.coordination.view
Implementing units
None.
Referencing units
None.
Enabled verifiers: None
Packs: pack:cc-agents-coordination
Relations
| Relation and direction | Other end | Claim | Reason | Exercised keys |
|---|---|---|---|---|
| refines · outgoing | Sessions that must message each other leave a record and a place in a chainspec:cc-agents.coordination · resolves | declared | settles what a chain still has to be when agents and Workflows carry most work | None |
| decidedBy · incoming | Sessions that must message each other leave a record and a place in a chainspec:cc-agents.coordination · resolves | declared | settles when work needs a second session at all | None |
| decidedBy · incoming | A lead states its parent once, and the chain is read from what leads statedspec:cc-agents.coordination.chain · resolves | declared | fixes the roles to top and lead and the agents out of the chain | None |
| dependsOn · incoming | The one tie between this repository's Specs and HQ's designspec:cc-agents.hq-links · resolves | declared | narrows when sessions coordinate at all | None |
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.