Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/mvschwarz/openrig/specification-systemnpx skills add mvschwarz/openrig --skill specification-systemgit clone --depth 1 https://github.com/mvschwarz/openrigWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00094 | $0.01081 |
| Opus 5 | $0.00047 | $0.00541 |
| Sonnet 5 | $0.00019 | $0.00216 |
| Haiku 4.5 | $0.00009 | $0.00108 |
Grade A, and why
specification-system scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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)
- 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.
- A shared spec depends on local paths or hidden startup fragments and fails on another host. Specs must be self-describing for portability.
- 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.
- Validation proves YAML shape but not whether the declared topology can actually run. Structural validation is not enough; runtime realization is the real proof.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 104 lines · 94 tokens per session scan A 5226d6e8b136
specification-system is a skill published in the GitHub repository mvschwarz/openrig (64 stars, last pushed 2d ago), licensed Apache-2.0. It adds 94 tokens to every session and 1,081 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
autoprompt
Explicit-only useful-first orchestration. Invoke only when the user names autoprompt - typed as /autoprompt or in plain language such as "act in autoprompt mode" - to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Do not infer invocation from…
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
ap-implementer
L3 executor - G4 IMPLEMENT. Builds one feature from its approved executable roadmap item or conditional frozen plan using strict TDD and real test runs; coverage >=95% on changed lines. Reports PLAN-CONFLICT rather than improvising.
ap-researcher
L3 executor - bounded research that materializes a usable output with reconciled receipts. Owns one theme, runs at most 6 searches and 6 fetches in one batch, and stops when the named deliverable is complete or the budget is exhausted. Does not spawn.
ap-arbiter
L4 terminal leaf - ARBITER. Independent decision-maker for forks the loop cannot resolve on its own. Under UNATTENDED mode it ALWAYS rules and continues, NEVER escalates to the user. Output is a binding ruling logged to the ledger.