CtrlK
BlogDocsLog inGet started
Tessl Logo

spec-driven-development/spec-as-source

Spec-driven development on OpenSpec, with mechanical spec-as-source enforcement: a custom 'spec-as-source' OpenSpec schema adds file-ownership (targets) and test-verification ([@test]) metadata to every capability spec, three scripts (link check, ownership check, manifest build) keep code and specs from drifting apart, plus requirement-gathering, spec-writer, work-review, and a session-handoff skill with a proactive context-warning hook.

68

Quality

85%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

routing-table.mdskills/skill-router/

Routing table

1. Index

#namephasemodeprecondition checked on disk
01spec-as-source-setup0-setupsubagentscripts/verify.sh or openspec/schemas/ missing
02plan-mode1-planinlineopenspec/PLAN.md missing, or the plan gate exits non-zero
03plan-judgeselfdelegated only by plan-mode for a fully draft plan
04prompt-loop2-intakeinlineapplicability gate passed AND the work is non-trivial
05requirement-gathering2-intakeinlinerequest still vague after the loop, or the loop was skipped
06openspec-explore3-exploreinlineno active change for this idea yet
07openspec-propose4-proposesubagentcheck-plan-gate.sh --change <n> exits 0 AND no active change of that name
08spec-writer5-specinlineopenspec/specs/<cap>/spec.md missing or malformed
09openspec-apply-change6-applysubagentthe active change has tasks.md with at least one unchecked - [ ]
10spec-loop6-applysubagentas above, AND the user asked for unattended execution
11spec-verify7-verifysubagentscripts/verify.sh exists and is executable
12work-review8-reviewinlineverification green AND zero unchecked tasks
13openspec-sync-specs9-closesubagentthe change has delta specs not yet in openspec/specs/
14openspec-archive-change9-closesubagentzero unchecked tasks AND deltas synced
15spec-ci-syncmaintsubagentthe [@test] set differs from the CI workflow
16spec-rebuildmaintsubagentdestructive — ROUTER.md requires explicit confirmation first
17handoffanyinlineinput is the current conversation — subagent impossible
18handoff-skillanyinlineinput is the current conversation — subagent impossible
19skill-routerselfnot a routing destination

Skills with mode: inline take the current conversation as input and MUST NOT be delegated to a fresh-context subagent. mode: self is not a destination.

2. Divergences — reported, never reconciled

None: disk and plugin.json agree, and no shadow copies were found.

3. Dangling references — never destinations

namereferenced inverdict
openspec-continue-changeopenspec-apply-changenot on disk → never a destination

4. Descriptions — verbatim and complete (the routing contract)

Match is computed on these, and only among candidates admissible in the current phase.

handoff — phase any — mode inline

  • path: skills/handoff

Gestisce il sistema di passaggio di consegne tra sessioni AI per qualsiasi progetto. Crea, aggiorna e legge file HANDOFF-N.md nella cartella .handoff/ del progetto, mantenendo una knowledge base persistente con documentazione (CLAUDE.md, PROMPTS.md, CLIENTS.md, WORKFLOW.md). Usa questa skill ogni volta che l'utente vuole: - Salvare lo stato ("crea handoff", "salva lo stato", "facciamo il punto", "chiudiamo la sessione", "riprendiamo domani", "passaggio di consegne", "freeze the context", "save state")

  • Riprendere da una sessione precedente ("riprendi da dove eravamo", "carica handoff", "resume", "continua da HANDOFF", "cosa avevamo fatto")
  • Inizializzare la knowledge base di un nuovo progetto ("/handoff init") - Aggiornare la documentazione persistente (CLAUDE.md, PROMPTS.md, CLIENTS.md, WORKFLOW.md) Suggerisci proattivamente la creazione di un handoff dopo sessioni lunghe con modifiche importanti, debugging complessi, o decisioni architetturali significative.

handoff-skill — phase any — mode inline

  • path: skills/handoff-skill

Traccia bug emersi testando una skill o un plugin, per guidarne l'upgrade. Controparte di handoff orientata al ciclo test → bug → fix di una skill specifica: crea/legge file BUG-N.md in .handoffskill/<nome-skill>/ con uno STATUS.md aggregato. Usa quando l'utente segnala che una skill non funziona ("questo non funziona", "bug nella skill X"), vuole testarla sistematicamente ("testiamo la skill X"), o riprendere uno stato di test precedente ("riprendi i bug di X"). Invoca anche con "/handoff-skill".

openspec-apply-change — phase 6-apply — mode subagent

  • path: skills/openspec-apply-change

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.

openspec-archive-change — phase 9-close — mode subagent

  • path: skills/openspec-archive-change

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

openspec-explore — phase 3-explore — mode inline

  • path: skills/openspec-explore

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.

openspec-propose — phase 4-propose — mode subagent

  • path: skills/openspec-propose

Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

openspec-sync-specs — phase 9-close — mode subagent

  • path: skills/openspec-sync-specs

Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.

plan-judge — phase — — mode self

  • path: skills/plan-judge

Reviews the entire PLAN.md of a new project through fixed, file-only provider rounds. Triggered by plan-mode when every plan entry is draft; Round 1 alternates Codex and Claude, then returns control to a human checkpoint.

plan-mode — phase 1-plan — mode inline

  • path: skills/plan-mode

Builds and maintains openspec/PLAN.md, the human-approved plan that sequences OpenSpec changes toward a stated goal — the tier above tasks.md. Explore read-only, draft entries, then stop and ask for approval; a change cannot start until its entry is approved. Trigger — make a plan, what should we build first, plan the work, roadmap, add this to the plan, approve the plan, why is the plan gate failing, NO-ENTRY, HASH-MISMATCH.

prompt-loop — phase 2-intake — mode inline

  • path: skills/prompt-loop

Refines an incoming prompt through a bounded score → interview → lock → rewrite loop until it is mechanically good enough (rubric score ≥ 9/10) to feed the SDD workflow. Trigger — automatically before openspec-propose when the request is non-trivial development work; explicitly on: refine this prompt, prompt loop, score my prompt, is this prompt ready.

requirement-gathering — phase 2-intake — mode inline

  • path: skills/requirement-gathering

Structured interview process that turns a vague stakeholder request into clear, actionable requirements before any spec or code is written. Trigger — new feature request, unclear requirements, vague task, clarify scope, before proposing a change.

skill-router — phase — — mode self

  • path: skills/skill-router

Single entry point to the spec-as-source workflow: given a request, decides which of the plugin's skills to activate — excluding trivial work first, deriving the current phase from the state of the repo second, and matching descriptions last — then runs the chosen skill inline or in a subagent. Use when you do not know which skill applies, or want the workflow driven for you. Trigger — which skill should I use, what do I do next, route this, start working on X, implement X, propose a change, continue the implementation, I want to build X, help me with this project, non so da dove partire.

spec-as-source-setup — phase 0-setup — mode subagent

  • path: skills/spec-as-source-setup

Installs the spec-as-source OpenSpec schema, enforcement scripts, CI workflow, and pre-commit hooks into a project. Trigger — setup spec enforcement, add spec checks, configure spec-as-source, install spec scripts, add spec CI, install openspec schema.

spec-ci-sync — phase maint — mode subagent

  • path: skills/spec-ci-sync

Syncs .github/workflows/spec-verification.yml with the test runner and test files declared in specs. Trigger — update CI workflow, sync spec CI, regenerate workflow, CI out of sync with specs, add spec test to CI.

spec-loop — phase 6-apply — mode subagent

  • path: skills/spec-loop

Runs an autonomous Ralph-style loop over the tasks of an active OpenSpec change: one task per fresh-context agent invocation, mechanically gated by scripts/verify.sh, with runaway guardrails. Trigger — run the loop, ralph loop, autonomous apply, loop the tasks, implement the change unattended.

spec-rebuild — phase maint — mode subagent

  • path: skills/spec-rebuild

Deletes all files declared as targets in openspec/specs/**/spec.md and rebuilds them from the specs to verify spec-as-source integrity. Trigger — clean rebuild, verify source of truth, spec drift check, regenerate from specifications, rebuild from spec.

spec-verify — phase 7-verify — mode subagent

  • path: skills/spec-verify

Runs all spec consistency checks (link integrity, target ownership, manifest build), the test suite, and a semantic drift spot-check, then reports results. Trigger — verify specs, spec check, run spec suite, check spec consistency, validate spec links, spec integrity, spec drift.

spec-writer — phase 5-spec — mode inline

  • path: skills/spec-writer

Creates and maintains capability spec.md files under openspec/specs/: requirements, scenarios, targets frontmatter, and Verified by test links. Trigger — write a spec, update a spec, document requirements, create capability spec, spec drift in frontmatter or links.

work-review — phase 8-review — mode inline

  • path: skills/work-review

Reviews completed implementation requirement-by-requirement against its capability spec, with file:line evidence, before declaring work done. Trigger — review my work, is this done, verify completeness, check against spec before merging, final review.

skills

README.md

tile.json