Spec Studio

The plugin installs from a marketplace, updates by version and changes nothing global

spec:cc-agents.installationUse Case / Behavior · featuredefined floor ready

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

Packs: none

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

Findings: no errors, no warnings

specs/runner/installation.sdp.md

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

The marketplace is .claude-plugin/marketplace.json, which points at plugin/; the plugin's manifest and its user options are plugin/.claude-plugin/plugin.json. Both are JSON, and the install flow is checked by tests/install/install.sh, a shell script. The graph reads neither, so this Spec is described and cannot yet be called implemented or verified.

Intent
actor
A user installing the plugin on a machine that already has Claude Code, and Codex or OpenCode.
problem
A plugin that rewrites settings or signs in again would disturb the setup it extends, and an update that reaches nobody is invisible.
outcome
The plugin installs through the marketplace commands, uses the sign-ins and configuration already on the machine, and reaches an update only when its version rises.
value
Installing and updating is two commands and touches no harness.

Open questions

  • non-blocking · question.invisibleToTheGraph line 22 · specs/runner/installation.sdp.md:22 · The marketplace, the manifest and the install script are JSON and shell, so no anchor binds them and the graph derives neither implemented nor has-verifier here; the install test run is npm run test:install.Decider: ownerProvisional: The Spec stays at defined until a node test asserts the manifest and options, which would carry a test anchor and the documented realization.
  • non-blocking · question.linuxClaim line 25 · specs/runner/installation.sdp.md:25 · The README says Linux was not tried live, while a smoke run proved basic execution there; the sentence is broader than the evidence.Decider: ownerProvisional: Basic execution on Linux is evidenced, and the pane and the machine guard under load there are not.
Behavior
rule.marketplaceInstall line 31 · specs/runner/installation.sdp.md:31
The plugin installs from the marketplace entry whose source is the plugin/ folder, with the commands /plugin marketplace add and /plugin install.

no example exercises it

rule.updateByVersion line 32 · specs/runner/installation.sdp.md:32
An update reaches users only when the version in the plugin manifest rises, and a commit that does not change it reaches nobody.

no example exercises it

rule.nothingGlobal line 33 · specs/runner/installation.sdp.md:33
Installing writes no setting of any harness and no credential; the plugin uses the sign-ins and configuration already on the machine.

no example exercises it

rule.needsHost line 34 · specs/runner/installation.sdp.md:34
It needs Claude Code with mods on, Node 24 on the path, and Codex or OpenCode installed and signed in.

no example exercises it

rule.optionsAreDeclared line 35 · specs/runner/installation.sdp.md:35
The options the user sets are declared in the manifest with their defaults, and no other configuration is read.

no example exercises it

0 unkeyed rules.

Design
optionCodexModel line 39 · specs/runner/installation.sdp.md:39
codexModel, a string, empty by default: the model a Codex agent runs when its header names none.

no citation recorded

optionOpencodeModel line 40 · specs/runner/installation.sdp.md:40
opencodeModel, a string, empty by default, with no default model when empty.

no citation recorded

optionModelGuide line 41 · specs/runner/installation.sdp.md:41
modelGuide, a string, quality by default: quality, cost, or a path.

no citation recorded

optionCodexWritableRoots line 42 · specs/runner/installation.sdp.md:42
codexWritableRoots, a string, empty by default: extra folders a Codex agent in write mode may write.

no citation recorded

optionCaps line 43 · specs/runner/installation.sdp.md:43
caps, a string, empty by default, as in codex=2, opencode:xai=1.

no citation recorded

optionStepSeconds line 44 · specs/runner/installation.sdp.md:44
stepSeconds, a number from 5 to 600, 20 by default.

no citation recorded

statePath line 45 · specs/runner/installation.sdp.md:45
~/.claude/plugins/data/cc-agents, or the directory in CC_AGENTS_STATE.

no citation recorded

Verification

Verifier bindings

No verifier binding recorded.

Design view

Requirement drawing

  • Declared verifying examples: no declared verifying example.
  • Test or oracle bindings: no recorded binding.
Requirement drawing for spec:cc-agents.installation
The diagram as text
  • spec:cc-agents.installation: The plugin installs from a marketplace, updates by version and changes nothing global · declared Spec · no satisfying binding
  • 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
  • spec:cc-agents.installation refines spec:cc-agents.runner · declared
  • impl:cc-agents.harness-options references spec:cc-agents.installation · anchored
Mermaid source

Copyable source; the Studio draws static SVG.

Preferred syntax: requirementDiagram. Chosen syntax: flowchart TB because references require exact labels unavailable in requirement syntax.

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.installation
The diagram as text
  • spec:cc-agents.installation: The plugin installs from a marketplace, updates by version and changes nothing global
  • spec:cc-agents.model-templates: Claude reads a model guide that fits the harnesses installed here
  • spec:cc-agents.runner: Other model families run as real Claude Code agents
  • spec:cc-agents.installation refines spec:cc-agents.runner · declared
  • spec:cc-agents.model-templates dependsOn spec:cc-agents.installation · declared — the guide is one of the plugin's declared options
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

  • spec:cc-agents.model-templates

    Implementing units

    • impl:cc-agents.harness-options · plugin/hooks/harnesses.js:5
    • impl:cc-agents.mod · plugin/hooks/register.js:9

    Referencing units

    • impl:cc-agents.sync-templates · scripts/sync-templates.mjs:10

    Enabled verifiers: test:cc-agents.mod-suite

    Packs: None

Distance 2

Relations

Relation and directionOther endClaimReasonExercised keys
refines · outgoingOther model families run as real Claude Code agents
spec:cc-agents.runner · resolves
declaredNoneNone
dependsOn · incomingClaude reads a model guide that fits the harnesses installed here
spec:cc-agents.model-templates · resolves
declaredthe guide is one of the plugin's declared optionsNone

Bindings

Implementation binding: none

Design reference: 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

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.