Spec Studio

The one tie between this repository's Specs and HQ's design

spec:cc-agents.hq-linksUse Case / Behavior · featuredefined floor defined

Next rung ready waits on 1 unmet clause:

Packs: none

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

Findings: no errors, no warnings

design/links.sdp.md

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

This is the only file in the repository that names an HQ Spec. The public cut of the repository drops design/, and with it every link below, so nothing under specs/, plugin/ or tests/ refers here. Read each rule as: HQ states this, and these Specs answer it.

Intent
actor
A reviewer who approves this repository's coordination design against HQ's delivered design.
problem
HQ's design is locked and private, this repository's design must read without it, and a reviewer needs to see which of HQ's rules each Spec answers and where it narrows them.
outcome
Every rule of HQ's orchestration that concerns coordination has its answering Spec named in one place, and every difference is stated.
Behavior
rule.inPlugin line 57 · design/links.sdp.md:57
spec:hq.orchestration#rule.genericInPlugin is answered by spec:cc-agents.coordination as a whole, and spec:architecture.cc-agents is the component that carries it.

no example exercises it

rule.nativeMessaging line 58 · design/links.sdp.md:58
spec:hq.orchestration#rule.nativeMessaging is answered by spec:cc-agents.coordination.record, which adds the lasting record, and spec:cc-agents.coordination.chain, which adds each session's parent. The plugin delivers nothing itself.

no example exercises it

rule.switchesAlone line 59 · design/links.sdp.md:59
spec:hq.orchestration#rule.coordinationSwitchesAlone and spec:hq.orchestration#rule.relayUntilTrusted are answered by spec:cc-agents.coordination.adoption: coordination is on while the job runner is off.

no example exercises it

rule.boundaryCrossing line 60 · design/links.sdp.md:60
spec:hq.orchestration#rule.boundaryCrossing, which specifies delivery over the T3 bridge, is not answered: spec:decisions.coordination-native-first leaves that boundary unmeasured, and this design scopes its tree to records on the local machine and shows an external parent as an unresolved boundary. spec:cc-agents.coordination#question.bridge keeps the question open for the owner.

no example exercises it

rule.roleAndParent line 61 · design/links.sdp.md:61
spec:architecture.inbox, which says cc-agents keeps each session's role and parent, is narrowed by spec:cc-agents.coordination.boundary-only: the only roles are top and lead, and both follow from the parent.

no example exercises it

rule.acceptInbound line 62 · design/links.sdp.md:62
spec:decisions.coordination-native-first makes every session accept inbound messages a fleet setting that infra owns. spec:cc-agents.coordination.adoption reads that setting and reports which state holds, accept, hold, refuse or the host default, and never writes it.

no example exercises it

rule.boundaryOnly line 63 · design/links.sdp.md:63
spec:decisions.coordination-native-first says most work stays in one session and needs no messaging, and spec:cc-agents.coordination.boundary-only states when a second session is needed.

no example exercises it

rule.scanNeeds line 64 · design/links.sdp.md:64
spec:cc-agents.coordination.record carries what the vault's session scan needs to tell a peer's message from the owner's words: its own full session id, the peer as the host named it, UTC time, verbatim text, the sender's own id as authority on its own entry, the queue result and the receive outcome, and the working directory that assigns an entry to a project.

no example exercises it

rule.complementaryModels line 65 · design/links.sdp.md:65
spec:hq.orchestration#rule.complementaryModels is answered by spec:cc-agents.runner: GPT through spec:cc-agents.codex-adapter and every other family through spec:cc-agents.opencode-adapter occupy agent and Workflow roles beside Claude, with no Claude model working on their tasks.

no example exercises it

rule.runnerMovesRelayScripts line 66 · design/links.sdp.md:66
spec:hq.orchestration#rule.relayUntilTrusted names the job runner as the successor that must earn trust. spec:cc-agents.relay-job-type is the part that lets Relay's Workflow scripts move over by changing only the agent type, and whether the runner is on or off is a deployment matter that no Spec here states.

no example exercises it

rule.templatesForEndUsers line 67 · design/links.sdp.md:67
spec:hq.orchestration#rule.templates is answered for end users by spec:cc-agents.model-templates, and a user's own guide is a path in an option. Private and project-specific templates are not answered here.

no example exercises it

rule.contextForPeersUnanswered line 68 · design/links.sdp.md:68
spec:hq.orchestration#rule.contextForPeers is not answered: the job runner passes a lane its task only, and each harness loads its own skills and instructions as the user configured it.

no example exercises it

rule.sessionScanning line 69 · design/links.sdp.md:69
spec:hq.orchestration#rule.sessionScanning and spec:hq.orchestration#rule.scanFilters are answered by spec:cc-agents.coordination.session-scanning. The port takes the vault's whole skill scan-sessions, and from its skill catch-up what extraction needs: owner-extract.py, codex_reader.py, t3_reader.py, generated-text.json, t3-dump.py, and test_extract.py, test_readers.py and fixtures/. feed.mjs and compact.mjs stay out. The vault must not be deleted before this entry is delivered.

no example exercises it

rule.notHere line 70 · design/links.sdp.md:70
The inventory of the earlier orchestration found other generic capabilities that this design does not take up: restart and resume, pull request watching, insight capture, orphan job recovery, transcript digests and model templates. Each needs its own Spec, and none of them is coordination.

no example exercises it

0 unkeyed rules.

Verification · reviewed
criteria
  • A reviewer reads each rule against the HQ Spec it names and confirms the answering Spec states it.
  • A search of specs/, plugin/ and tests/ finds no HQ Spec id, organisation, machine, client or person.
mode
reviewed
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.hq-links

Arrows: refines (declared).

The diagram as text
  • spec:cc-agents.hq-links: The one tie between this repository's Specs and HQ's design · declared Spec · no satisfying binding
  • spec:architecture.cc-agents: cc-agents · declared Spec
  • spec:hq.orchestration: Orchestration lives in one plugin, apart from infra and HQ · declared Spec
  • spec:cc-agents.hq-links refines spec:architecture.cc-agents · declared — the job runner and the coordination design are the parts of this component that exist in this repository
  • spec:cc-agents.hq-links refines spec:hq.orchestration · declared — this repository's coordination design answers the rules that HQ's orchestration states
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

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.hq-links
The diagram as text
  • spec:architecture.cc-agents: cc-agents
  • spec:architecture.inbox: The inbox
  • spec:cc-agents.codex-adapter: GPT runs through the user's Codex, one app-server per turn
  • spec:cc-agents.coordination: Sessions that must message each other leave a record and a place in a chain
  • spec:cc-agents.coordination.adoption: Coordination switches on alone, and a project takes it up with one setting and its own boundaries
  • 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.coordination.record: Messages between sessions this session saw are kept whole, with what is known of who sent them and what came of them
  • spec:cc-agents.coordination.session-scanning: A scan reads a project's sessions and traces each direction to its outcome
  • spec:cc-agents.hq-links: The one tie between this repository's Specs and HQ's design
  • spec:cc-agents.model-templates: Claude reads a model guide that fits the harnesses installed here
  • spec:cc-agents.opencode-adapter: Every other family runs through the user's OpenCode service
  • spec:cc-agents.relay-job-type: The job agent takes Relay's header and returns Relay's state block
  • spec:cc-agents.runner: Other model families run as real Claude Code agents
  • spec:decisions.coordination-native-first: Coordination is built on Claude Code's own messaging, and cc-agents adds only what that lacks
  • spec:decisions.orchestration-leaves-infra: Generic orchestration moves from infra to cc-agents, and Relay runs jobs until cc-agents earns trust
  • spec:hq.orchestration: Orchestration lives in one plugin, apart from infra and HQ
  • spec:cc-agents.hq-links decidedBy spec:decisions.coordination-native-first · declared — fixes native messaging and the two things cc-agents adds
  • spec:cc-agents.hq-links decidedBy spec:decisions.orchestration-leaves-infra · declared — places the inbox and the chain in cc-agents and keeps the runner off
  • spec:cc-agents.hq-links dependsOn spec:architecture.cc-agents · declared — the component that carries the coordination answered here
  • spec:cc-agents.hq-links dependsOn spec:architecture.inbox · declared — the component design that the record and the chain fill in
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.codex-adapter · declared — GPT occupies a lane beside Claude
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination · declared — the tie holds only while the coordination design states what it answers
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.adoption · declared — answers the switch and the job runner's staying off
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.boundary-only · declared — narrows when sessions coordinate at all
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.chain · declared — answers each session's role and parent
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.record · declared — answers native messaging and the lasting record
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.coordination.session-scanning · declared — answers the move of session scanning
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.model-templates · declared — the end-user templates the runner ships
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.opencode-adapter · declared — every other family occupies a lane beside Claude
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.relay-job-type · declared — Relay's Workflow scripts move to the job runner by changing the agent type
  • spec:cc-agents.hq-links dependsOn spec:cc-agents.runner · declared — the job runner, which answers the provider and template rules below
  • spec:cc-agents.hq-links refines spec:architecture.cc-agents · declared — the job runner and the coordination design are the parts of this component that exist in this repository
  • spec:cc-agents.hq-links refines spec:hq.orchestration · declared — this repository's coordination design answers the rules that HQ's orchestration states
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
decidedBy · outgoingCoordination is built on Claude Code's own messaging, and cc-agents adds only what that lacks
spec:decisions.coordination-native-first · resolves
declaredfixes native messaging and the two things cc-agents addsNone
decidedBy · outgoingGeneric orchestration moves from infra to cc-agents, and Relay runs jobs until cc-agents earns trust
spec:decisions.orchestration-leaves-infra · resolves
declaredplaces the inbox and the chain in cc-agents and keeps the runner offNone
dependsOn · outgoingcc-agents
spec:architecture.cc-agents · resolves
declaredthe component that carries the coordination answered hereNone
dependsOn · outgoingThe inbox
spec:architecture.inbox · resolves
declaredthe component design that the record and the chain fill inNone
dependsOn · outgoingGPT runs through the user's Codex, one app-server per turn
spec:cc-agents.codex-adapter · resolves
declaredGPT occupies a lane beside ClaudeNone
dependsOn · outgoingSessions that must message each other leave a record and a place in a chain
spec:cc-agents.coordination · resolves
declaredthe tie holds only while the coordination design states what it answersNone
dependsOn · outgoingCoordination switches on alone, and a project takes it up with one setting and its own boundaries
spec:cc-agents.coordination.adoption · resolves
declaredanswers the switch and the job runner's staying offNone
dependsOn · outgoingA second session exists only across a boundary one session cannot cross
spec:cc-agents.coordination.boundary-only · resolves
declarednarrows when sessions coordinate at allNone
dependsOn · outgoingA lead states its parent once, and the chain is read from what leads stated
spec:cc-agents.coordination.chain · resolves
declaredanswers each session's role and parentNone
dependsOn · outgoingMessages between sessions this session saw are kept whole, with what is known of who sent them and what came of them
spec:cc-agents.coordination.record · resolves
declaredanswers native messaging and the lasting recordNone
dependsOn · outgoingA scan reads a project's sessions and traces each direction to its outcome
spec:cc-agents.coordination.session-scanning · resolves
declaredanswers the move of session scanningNone
dependsOn · outgoingClaude reads a model guide that fits the harnesses installed here
spec:cc-agents.model-templates · resolves
declaredthe end-user templates the runner shipsNone
dependsOn · outgoingEvery other family runs through the user's OpenCode service
spec:cc-agents.opencode-adapter · resolves
declaredevery other family occupies a lane beside ClaudeNone
dependsOn · outgoingThe job agent takes Relay's header and returns Relay's state block
spec:cc-agents.relay-job-type · resolves
declaredRelay's Workflow scripts move to the job runner by changing the agent typeNone
dependsOn · outgoingOther model families run as real Claude Code agents
spec:cc-agents.runner · resolves
declaredthe job runner, which answers the provider and template rules belowNone
refines · outgoingcc-agents
spec:architecture.cc-agents · resolves
declaredthe job runner and the coordination design are the parts of this component that exist in this repositoryNone
refines · outgoingOrchestration lives in one plugin, apart from infra and HQ
spec:hq.orchestration · resolves
declaredthis repository's coordination design answers the rules that HQ's orchestration statesNone

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.