specification-system — Claude Code skill for OpenRig specs
Guides the design and review of OpenRig rig, agent, and workflow specs. Use it to catch portability problems and check that a declared setup can run.
npx skills add mvschwarz/openrig --skill specification-system -a claude-codeWhat specification-system does
This skill covers OpenRig specs for rigs, agents, workflows, startup context, and operating modes. It calls out common gaps: a spec may define roles without the workflow or mode, rely on paths tied to one machine, or lose reusable intent when an agent edits it as a one-off file. A valid YAML shape alone does not show that the rig will run.
The guidance separates specs, bundles, and extensions: specs declare intent, bundles package specs with supporting fragments, and extensions add runtime behavior. Its proof process moves from authoring and structural checks to adding the spec to the library and instantiating it in a clean OpenRig environment. Runtime realization matters too.
OpenRig’s spec-library lifecycle, cross-host sharing, and public registry are not yet shipped as first-class capabilities. That matters if your workflow depends on built-in publication or upgrade handling.
What it helps with
- define a rig’s topology, roles, and workflow
- spot machine-specific paths in a shared spec
- preserve reusable intent while agents edit specs
- verify a rig can run after structural validation
Example prompts for the agent
- Help me draft an OpenRig spec that declares the rig roles and workflow.
- Review this spec for machine-specific paths or hidden context fragments.
- Plan a check that validates the YAML and instantiates the spec in a clean OpenRig environment.
How to install specification-system
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill specification-system -a claude-code2Manually: put the files in place
~/.claude/skills/specification-system/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/specification-system/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill specification-system -a codex2Manually: put the files in place
.agents/skills/specification-system/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill specification-system -a cursor2Manually: put the files in place
.cursor/skills/specification-system/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install mvschwarz/openrig specification-system2Manually: put the files in place
.github/skills/specification-system/SKILL.md1Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill specification-system -a gemini-cli2Platform CLI
gemini skills install https://github.com/mvschwarz/openrig --path skills/_canonical/core/specification-systemManually: put the files in place
.devin/skills/specification-system/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add mvschwarz/openrig --skill specification-system -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about specification-system
How do I install specification-system in Claude Code?
Run npx skills add mvschwarz/openrig --skill specification-system -a claude-code. The skill file is placed at ~/.claude/skills/specification-system/SKILL.md.
What does specification-system do?
It guides work on OpenRig specs for rigs, agents, and workflows, including portability and runtime checks. It also clarifies how specs differ from bundles and extensions.
Does valid YAML prove that an OpenRig spec works?
No. The suggested proof includes structural validation, adding the spec to the library, and instantiating it in a clean OpenRig environment.
Source text
SKILL.md · Apache-2.0
---
name: specification-system
description: Use when authoring rig specs, agent specs, workflow specs, startup/context fragments, operating-mode declarations, or designing the user spec library. Covers the 4 failure modes (spec instantiates topology but not workflow/mode; spec depends on local paths and fails on another host; agents modify specs as one-off files instead of preserving reusable intent; validation proves YAML shape but not whether topology can run) and the validation-vs-runtime-realization distinction.
metadata:
cli_surfaces_referenced:
- agent
- bundle
- spec
- specs
openrig:
stage: factory-approved
sibling_skills:
- rig-lifecycle
- topology-mutation-and-seat-management
- seat-scaling-and-specialization
- cross-host-rig-commands
- sidecar-operator
- rig-bundles-and-shareable-artifacts
- extension-and-user-workspace
---
# Specification System
The declarative primitive family for OpenRig intent: **rig specs, agent
specs, workflow specs, startup/context fragments, operating-mode
declarations, and the user spec library that stores and reuses them.**
Specs are how humans and agents describe **repeatable topology and
behavior** without re-explaining it in chat. They are also shareable
artifacts: a user should be able to publish a spec or spec family so
another user can instantiate the same rig shape, role structure, or
workflow pattern.
**Without a dependable spec primitive, OpenRig depends on manual
startup prompts and tribal memory.** That blocks repeatability, product
demos, rig bundles, and autonomous rig construction.
## Use this when
- Authoring a RigSpec / AgentSpec / workflow spec
- Designing a startup/context fragment
- Reasoning about spec-library lifecycle (validation, sharing, upgrade semantics)
- Auditing a spec for portability (does it run on another host?)
- Distinguishing spec vs bundle vs extension cleanly
## Don't use this when
- The work is one-off and won't be reused. Manual rig assembly is fine for one-shot work.
- The intent is to package a topology + workflow as a shareable artifact. That's `rig-bundles-and-shareable-artifacts`.
- The intent is to add runtime behavior. That's `extension-and-user-workspace`.
## Failure modes (4)
1. **A spec can instantiate a topology but not the workflow or operating mode needed to use it.** Topology is necessary but not sufficient — workflow and operating mode must be declared too.
2. **A shared spec depends on local paths or hidden startup fragments and fails on another host.** Specs must be self-describing for portability.
3. **Agents modify specs as one-off files instead of preserving reusable user/library intent.** Specs are reusable; treating each instance as one-off destroys the primitive's value.
4. **Validation proves YAML shape but not whether the declared topology can actually run.** Structural validation is not enough; runtime realization is the real proof.
## Proof standard
Proof should:
1. Author a spec
2. Validate it (structural)
3. Install it (into spec library)
4. Instantiate it on a **clean OpenRig environment**
5. Show **both structural validation AND runtime realization**
Validation alone is insufficient.
## Spec / bundle / extension boundary
| Concept | Declares | Example |
|---|---|---|
| **Spec** | Topology / role / workflow shape (declarative intent) | `rig.yaml`, `agent.yaml`, `workflow.yaml` |
| **Bundle** | Spec(s) + supporting fragments packaged for shareable instantiation | A Velocity Team bundle |
| **Extension** | Runtime behavior added to user workspace | RigX command, custom view |
Don't conflate them. The contract should distinguish spec, bundle, and
extension cleanly.
## Currently shipped surfaces
OpenRig already has:
- RigSpec / AgentSpec authoring (`agent.yaml`, `rig.yaml` formats; see `openrig-architect` skill)
- Workflow specs (markdown/YAML files, daemon read-through cache via `workflow_specs` table; see `workflow-runtime` skill)
- Bundle/spec command surface (`rig bundle / spec / agent / specs ls/show/preview/add/sync/remove/rename`)
- Spec library (filesystem-backed at `packages/daemon/specs/` + `~/.openrig/specs/` per cli-reference.md)
Not yet shipped:
- Spec library lifecycle (validation, sharing, upgrade) treated as a first-class primitive
- Cross-host spec sharing
- Marketplace / public registry
## See also
- `openrig-architect` skill — RigSpec / AgentSpec authoring discipline
- `workflow-runtime` skill — workflow spec authoring + transactional-scribe contract
- `rig-bundles-and-shareable-artifacts` skill — bundle is the packaged form of specs
- `extension-and-user-workspace` skill — extensions add runtime behavior; specs declare intent
- `openrig/docs/reference/rig-spec.md` (product reference doc) — RigSpec format specification
- `openrig/docs/reference/agent-spec.md` (product reference doc) — AgentSpec format specification
© mvschwarz · Apache-2.0 · mvschwarz/openrig