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
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
| # | name | phase | mode | precondition checked on disk |
|---|---|---|---|---|
| 01 | spec-as-source-setup | 0-setup | subagent | scripts/verify.sh or openspec/schemas/ missing |
| 02 | plan-mode | 1-plan | inline | openspec/PLAN.md missing, or the plan gate exits non-zero |
| 03 | plan-judge | — | self | delegated only by plan-mode for a fully draft plan |
| 04 | prompt-loop | 2-intake | inline | applicability gate passed AND the work is non-trivial |
| 05 | requirement-gathering | 2-intake | inline | request still vague after the loop, or the loop was skipped |
| 06 | openspec-explore | 3-explore | inline | no active change for this idea yet |
| 07 | openspec-propose | 4-propose | subagent | check-plan-gate.sh --change <n> exits 0 AND no active change of that name |
| 08 | spec-writer | 5-spec | inline | openspec/specs/<cap>/spec.md missing or malformed |
| 09 | openspec-apply-change | 6-apply | subagent | the active change has tasks.md with at least one unchecked - [ ] |
| 10 | spec-loop | 6-apply | subagent | as above, AND the user asked for unattended execution |
| 11 | spec-verify | 7-verify | subagent | scripts/verify.sh exists and is executable |
| 12 | work-review | 8-review | inline | verification green AND zero unchecked tasks |
| 13 | openspec-sync-specs | 9-close | subagent | the change has delta specs not yet in openspec/specs/ |
| 14 | openspec-archive-change | 9-close | subagent | zero unchecked tasks AND deltas synced |
| 15 | spec-ci-sync | maint | subagent | the [@test] set differs from the CI workflow |
| 16 | spec-rebuild | maint | subagent | destructive — ROUTER.md requires explicit confirmation first |
| 17 | handoff | any | inline | input is the current conversation — subagent impossible |
| 18 | handoff-skill | any | inline | input is the current conversation — subagent impossible |
| 19 | skill-router | — | self | not 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.
None: disk and plugin.json agree, and no shadow copies were found.
| name | referenced in | verdict |
|---|---|---|
openspec-continue-change | openspec-apply-change | not on disk → never a destination |
Match is computed on these, and only among candidates admissible in the current phase.
skills/handoffGestisce 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.
skills/handoff-skillTraccia 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".
skills/openspec-apply-changeImplement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.
skills/openspec-archive-changeArchive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
skills/openspec-exploreEnter 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.
skills/openspec-proposePropose 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.
skills/openspec-sync-specsSync 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.
skills/plan-judgeReviews 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.
skills/plan-modeBuilds 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.
skills/prompt-loopRefines 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.
skills/requirement-gatheringStructured 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.
skills/skill-routerSingle 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.
skills/spec-as-source-setupInstalls 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.
skills/spec-ci-syncSyncs .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.
skills/spec-loopRuns 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.
skills/spec-rebuildDeletes 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.
skills/spec-verifyRuns 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.
skills/spec-writerCreates 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.
skills/work-reviewReviews 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.
.tessl-plugin
rules
skills
handoff
handoff-skill
openspec-apply-change
openspec-archive-change
openspec-explore
openspec-propose
openspec-sync-specs
plan-judge
plan-mode
prompt-loop
requirement-gathering
spec-as-source-setup
templates
openspec-schema
spec-as-source
templates
spec-ci-sync
spec-loop
spec-rebuild
spec-verify
spec-writer
work-review