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.
73
92%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Variante di handoff orientata non al passaggio di consegne tra sessioni di
progetto, ma al tracciamento dei bug/malfunzionamenti emersi testando una
skill o un plugin, in modo che l'upgrade successivo parta da una lista di bug
concreta invece che da "qualcosa non andava, non ricordo cosa".
Vive in parallelo a .handoff/ (continuità di progetto) senza mischiarsi:
.handoff/ racconta la storia del progetto, .handoffskill/ racconta i bug
di una skill specifica sotto test.
.handoffskill/.handoffskill/
└── <nome-skill-testata>/
├── BUG-001.md ← prima sessione di test
├── BUG-NNN.md ← sessione corrente (sempre il numero più alto)
└── STATUS.md ← stato aggregato bug aperti/chiusi (rigenerato ad ogni save)Regola fondamentale: i BUG-NNN.md sono append-only — non si modificano
mai le sessioni di test passate. Si aggiorna solo creando un nuovo file
numerato. STATUS.md invece si rigenera ad ogni save, perché è una vista
derivata (non una sessione).
Una cartella <nome-skill-testata>/ per ogni skill/plugin testato, così i bug
di skill diverse non si mescolano.
| Frase utente | Azione |
|---|---|
/handoff-skill test <skill> | Avvia o continua una sessione di test per <skill> |
/handoff-skill save | Crea nuovo BUG-NNN.md con i bug trovati nella sessione corrente, rigenera STATUS.md |
/handoff-skill load <skill> | Legge l'ultimo BUG-NNN.md + STATUS.md di <skill> |
/handoff-skill status [skill] | Mostra i bug aperti (tutte le skill, o una sola se specificata) |
| "questo non funziona" / segnalazione bug durante il lavoro | Registra il bug nella sessione di test corrente (non serve aprire subito un file: si accumula e si salva con save) |
Eseguire quando .handoffskill/<nome-skill>/ non esiste ancora.
mkdir -p .handoffskill/<nome-skill>Prima di iniziare, accertati di sapere (chiedi se manca):
ls .handoffskill/<nome-skill>/BUG-*.md 2>/dev/null | sort | tail -1Se non esiste nessun file → creare BUG-001.md.
Se esiste l'ultimo → incrementare di 1.
Per non riaprire bug già chiusi e per capire quali scenari erano già stati coperti. I bug ancora "Open" nell'ultimo file diventano il punto di partenza del Bug Tracker del nuovo file.
Usare la struttura esatta in references/bug-template.md. Le sezioni
obbligatorie sono:
Regole di scrittura:
BUG-<NNN>-<seq>, es. BUG-002-01) che non cambia se il bug viene riportato in sessioni successive — permette di citarlo nei commit di fix.Usare references/status-template.md. Aggrega tutti i bug ancora "Open" o
"In Progress" da tutti i BUG-NNN.md di quella skill, ordinati per
severità. È una vista, non una sessione: si riscrive sempre da zero leggendo
tutti i BUG-NNN.md, non si appende.
✅ Salvato: .handoffskill/<nome-skill>/BUG-00N.md
✅ Aggiornato: .handoffskill/<nome-skill>/STATUS.md (X bug open, Y fixed)
Per riprendere il test in una nuova sessione:
→ "Leggi .handoffskill/<nome-skill>/STATUS.md e riprendi il test"ls .handoffskill/<nome-skill>/BUG-*.md | sort | tail -1STATUS.md della skill — vista rapida di cosa è ancora aperto.BUG-NNN.md completo — contesto degli scenari testati e perché.BUG-NNN.md che lo ha introdotto (citato in STATUS.md).Rispondi in 3-4 righe: quale skill, quanti bug open/fixed, qual è il prossimo fix o scenario da testare.
Non rifare scenari già in "Confirmed Behaviors" salvo regressione sospetta. Non richiudere un bug come "Fixed" senza aver rieseguito lo scenario che lo aveva fatto emergere.
handoffhandoff racconta la storia di un progetto nel tempo; handoffskill
racconta i bug di una skill sotto test. Possono coesistere nello stesso
progetto senza sovrapporsi..handoff/HANDOFF-NNN.md → "What Worked"
o "What Didn't Work" (il bug fix concettuale), mentre il dettaglio
scenario-per-scenario resta in .handoffskill/.BUG-NNN.md
vadano committati nel repo del plugin (utile per traccia storica) o
esclusi via .gitignore se contengono dettagli troppo interni..handoffskill/ direttamente nel filesystem del progetto.~/.claude/skills/handoff-skill/) sia, quando bundlata in un plugin, in skills/handoff-skill/ del plugin stesso — le due copie sono indipendenti, aggiornarle separatamente..handoffskill/<nome-skill>/ non esiste e l'utente segnala un bug, offrire di fare init prima (Workflow A), poi registrare subito il bug..tessl-plugin
skills
handoff
handoff-skill
openspec-apply-change
openspec-archive-change
openspec-explore
openspec-propose
openspec-sync-specs
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