Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
akillness avatar

Spec Stack

  • 17 installs
  • 40 repo stars
  • Updated August 4, 2026
  • akillness/oh-my-skills

spec-stack is a Claude Code skill that composes spec-kit, Ouroboros, and CLI-Anything into one spec-driven delivery stack (write, freeze, run) that loops until verification passes.

About

spec-stack composes GitHub spec-kit, Ouroboros (ooo), and HKUDS CLI-Anything into a single spec-driven delivery stack that goes from a written spec to a verified artifact. A developer uses it when spec authoring, an immutable verified loop, and real software harnesses all need to work together without fighting over the same job. It matters because it hands a concrete artifact between layers (spec feeds the seed, the seed names the harnesses, harness JSON output is evaluate evidence).

  • Composes spec-kit, Ouroboros, and CLI-Anything into one Write -> Freeze -> Run stack
  • Assigns each layer a job: spec-kit writes, ooo freezes and loops, cli-anything is the hands
  • Routes three patterns (full-stack, loop-only, docs-only) with explicit anti-patterns

Spec Stack by the numbers

  • 17 all-time installs (skills.sh)
  • Ranked #2,076 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
At a glance

spec-stack capabilities & compatibility

Free; installs open-source specify-cli, cli-anything-hub, and ouroboros

Capabilities
spec authoring · spec freeze · verify loop · harness generation
Works with
github
Use cases
planning · orchestration · testing
Pricing
Free
From the docs

What spec-stack says it does

The stack's one rule: **spec-kit writes, ooo freezes and loops, cli-anything is the hands.**
SKILL.md
Compose GitHub spec-kit, Ouroboros (ooo), and HKUDS CLI-Anything into one
SKILL.md
npx skills add https://github.com/akillness/oh-my-skills --skill spec-stack

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs17
repo stars40
Last updatedAugust 4, 2026
Repositoryakillness/oh-my-skills

What it does

Drive a written spec through an immutable verified loop with agent-native CLI harnesses to a verified artifact.

Who is it for?

The full path from a written spec to a verified artifact using all three composed tools

Skip if: Using only one layer (spec-kit docs, ooo loop, or cli-anything harness) alone

When should I use this skill?

The user wants spec-to-verified-artifact delivery or wants spec-kit and ooo to work together

What you get

A verified artifact produced by handing concrete artifacts between the write, freeze, and run layers

  • Immutable seed with machine-checkable criteria
  • Verified artifact

By the numbers

  • composes 3 upstream tools
  • 3 routing patterns (full-stack, loop-only, docs-only)

Files

SKILL.mdMarkdownGitHub ↗

spec-stack — Write → Freeze → Run, Verified

spec-stack composes three skills that own different layers of spec-driven delivery and keeps them from fighting over the same job:

LayerSkillOwns
Spec (what)`spec-kit`Human-readable SDD artifacts via /speckit.constitutionspecifyplantasks; shareable across 30+ agents
Loop (until done)`ooo`Socratic interview to ambiguity ≤ 0.2, immutable seed, drift measurement, persistent verify-before-done loop (ralph)
Tools (with what)`cli-anything`Agent-native CLIs for real software — CLI-Hub registry, --json output, artifact-level verification

The stack's one rule: spec-kit writes, ooo freezes and loops, cli-anything is the hands. Each layer hands a concrete artifact to the next — spec.md/plan.md feed the seed interview, the seed names the harnesses the loop may use, and harness --json output is the evidence the evaluate step accepts.

When to use this skill

  • The user wants the **full path from a written spec to a verified

artifact**, not just one of the three tools

  • The user asks how spec-kit and ooo should work together (which owns

the spec, which owns completion) or how to avoid duplicating the spec

  • The implementation must drive real software (image/video/office/3D/

GIS/game tooling) inside a verified loop instead of one-shot codegen

  • The user says "spec-stack", "write freeze run", or names two or more of

spec-kit, ooo, cli-anything in one workflow

When not to use this skill

  • Only authoring SDD documents for one or more agents → use spec-kit
  • Only a verify-until-done loop with no document artifacts → use ooo
  • Only installing or generating a CLI harness → use cli-anything
  • Deciding which planning artifact comes next (brief, PRD,

architecture) → use bmad

  • Human review/approval of an existing plan or diff → use plannotator

Prerequisites

RequirementNotes
Python 3.11+specify-cli requires 3.11+; CLI-Hub needs 3.10+
uv (recommended) or pipx/pipUsed by scripts/install.sh for all three tools
One supported AI agentClaude Code, Codex, Gemini, Cursor, opencode, …
Target software (pattern A)Harnesses call the real backend — install the upstream app too

Instructions

Step 0 — Choose the composition pattern

PatternWhenLayers
A — full-stackMedium+ work that touches real software and needs both shared docs and a verified loopspec-kit → ooo → cli-anything
B — loop-onlySingle-session "keep going until verified" with no document deliverableooo (+ cli-anything if software is involved)
C — docs-onlyMulti-agent/team needs the .specify/ artifacts; completion is enforced elsewherespec-kit

If the user has not stated a pattern, default to A when external software or acceptance evidence is involved, B for code-only persistence, C for documentation handoffs.

Step 1 — Install the stack

bash scripts/install.sh                      # specify-cli + cli-anything-hub
SPEC_STACK_OOO=1 bash scripts/install.sh     # also pip-install ouroboros-ai

On Claude Code, prefer the ooo plugin instead of pip: claude plugin marketplace add Q00/ouroboros. Verify with specify --version, cli-hub list, and ouroboros --help (or the ouroboros_* MCP tools).

Step 2 — Write the spec (spec-kit)

specify init . --integration claude

Then inside the agent: /speckit.constitution/speckit.specify/speckit.clarify (only if open questions remain). Stop before /speckit.implement — implementation belongs to the loop layer in pattern A. Write success criteria as machine-checkable statements ("output PNG is 1024×1024, verified by pixel inspection"), not vibes ("image looks right") — Step 3 and Step 5 depend on this.

Step 3 — Freeze the contract (ooo)

Feed spec.md/plan.md into the ooo interview (brownfield weighting), drive ambiguity ≤ 0.2, then generate the immutable seed:

ouroboros interview --context .specify/   # or MCP: ouroboros_interview
ouroboros seed generate                   # or MCP: ouroboros_generate_seed

Two seed rules that make the stack work:

1. Success criteria mirror the spec's acceptance criteria in machine-checkable form — the evaluate step will demand evidence. 2. Constraints name the tools: e.g. "image operations go through the cli-anything-gimp harness; GUI automation is out of contract." This turns tool drift into measurable spec drift.

The seed is the execution SSOT from here on; spec.md stays the document SSOT. Direction is one-way: spec-kit → seed. If requirements change, update the spec first, then re-freeze.

Step 4 — Arm the tools (cli-anything)

Before writing integration code, search the registry:

cli-hub search <keyword>     # 40+ harnesses exist — seconds, not a session
cli-hub install <name>       # install the harness + the upstream app

Only when the registry has no match, generate: /cli-anything <path-or-repo> (7-phase pipeline), then /cli-anything:refine as needed. Generation is the fallback, never the default.

Step 5 — Run the loop

ouroboros run        # or MCP: ouroboros_execute_seed; ralph for persistence
ouroboros evaluate   # or MCP: ouroboros_evaluate

In the evaluate step, verify artifacts, not exit codes: use the harness --json output, magic bytes, document structure, or pixel/audio checks as evidence — the same discipline cli-anything's own test suite uses. On failure the loop continues; on repeated failure use ooo's unstuck step instead of blind retries. Pattern A users who want the spec-kit task list can run /speckit.implement per task inside the loop — the seed still gates completion.

Step 6 — Plugin-style installation alongside jeo-skills

# Project install (writes into .agents/skills/spec-stack/)
npx skills add https://github.com/akillness/jeo-skills --skill spec-stack

# Global install for every detected agent
npx skills add -g https://github.com/akillness/jeo-skills --skill spec-stack

# Target specific agents
npx skills add -g https://github.com/akillness/jeo-skills --skill spec-stack -a claude-code -a codex -y

Installing spec-stack does not auto-install the three layer skills; install whichever you lack the same way (--skill spec-kit, --skill ooo, --skill cli-anything).

Output format

When the user asks spec-stack for help, return a compact brief:

# spec-stack Routing Brief

## Scope
- Pattern: full-stack | loop-only | docs-only
- Target software: <name> | none | undecided
- Stack state: nothing-installed | spec-written | seed-frozen | tools-armed | loop-running

## Recommended next move
- install-stack | specify-init | write-spec | freeze-seed | hub-search | run-loop | evaluate

## Why
- 2-3 bullets grounded in the user's packet

## Route-outs
- `spec-kit` / `ooo` / `cli-anything` for single-layer work
- `bmad` for choosing the next planning artifact
- `plannotator` for human plan approval before implement

Examples

Example 1 — Pattern A end to end (image pipeline against real software)

bash scripts/install.sh                      # specify-cli + cli-anything-hub
specify init . --integration claude          # spec layer
# in the agent: /speckit.constitution → /speckit.specify → /speckit.clarify
ouroboros interview --context .specify/      # loop layer: drive ambiguity ≤ 0.2
ouroboros seed generate                      #   freeze; criteria mirror spec.md
cli-hub search image && cli-hub install gimp # tool layer: registry first
ouroboros run                                # implement against the seed
ouroboros evaluate                           # verify --json artifacts, loop on fail

Example 2 — Routing a vague combined request

User: "spec-kit이랑 ooo 같이 쓰고 싶은데 어디서부터?" → Return the Routing Brief with Pattern: full-stack, Stack state: nothing-installed, Recommended next move: install-stack, and route-outs left intact. Do not start /speckit.implement — in pattern A completion belongs to the ooo loop.

Example 3 — Near-miss that should route out

User: "GIMP용 CLI 하니스만 만들어줘" → single-layer work; hand off to cli-anything (registry search first), no seed or spec ceremony.

Best practices

1. One SSOT per concern — spec.md is the document SSOT, seed.yaml the execution SSOT, flowing one way. Running both pipelines fully in parallel creates two competing specs. 2. Registry before generationcli-hub search costs seconds; a 7-phase harness build costs a session. 3. Machine-checkable acceptance criteria — write them in /speckit.specify, mirror them in the seed, demand them in evaluate. 4. Name tools in seed constraints — uncontracted tool choice is invisible drift. 5. No ralph without a seed — a persistent loop without verification criteria runs "until tired", not "until done". Seed first, loop second. 6. Hand the plan to `plannotator` before implement on level 2+ work; the approval gate sits between Step 3 and Step 5.

References

  • Layer skills: `../spec-kit/SKILL.md`,

`../ooo/SKILL.md`, `../cli-anything/SKILL.md`

  • Upstream: <https://github.com/github/spec-kit>,

<https://github.com/Q00/ouroboros>, <https://github.com/HKUDS/CLI-Anything>

  • Installer script: `scripts/install.sh`
  • Command crosswalk + handoff map: `references/commands.md`
  • Adjacent skills: ../bmad/SKILL.md, ../plannotator/SKILL.md
  • License: MIT (this wrapper); upstream licenses apply to each tool

Related skills

FAQ

What is the stack's one rule?

spec-kit writes, ooo freezes and loops, and cli-anything is the hands.

What are the three composition patterns?

Full-stack (spec-kit to ooo to cli-anything), loop-only (ooo), and docs-only (spec-kit).

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.