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.
71
89%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Advisory
Suggest reviewing before use
Questo sistema mantiene tutta la memoria del progetto nella cartella .handoff/,
strutturata per permettere a qualsiasi agente AI (o operatore umano) di riprendere
il lavoro senza perdere contesto tra sessioni.
.handoff/.handoff/
├── HANDOFF-001.md ← prima sessione
├── HANDOFF-002.md ← seconda sessione (legge il precedente)
├── HANDOFF-NNN.md ← sessione corrente (sempre il numero più alto)
├── CLAUDE.md ← istruzioni persistenti per Claude Code
├── PROMPTS.md ← libreria prompt riutilizzabili
├── CLIENTS.md ← schede clienti attivi
└── WORKFLOW.md ← metodologia TheNewA(i)telierRegola fondamentale: gli HANDOFF-NNN.md sono append-only — non si modificano mai le sessioni passate. Si aggiorna solo creando un nuovo file numerato.
| Frase utente | Azione |
|---|---|
/handoff init | Inizializza .handoff/ nel progetto corrente |
/handoff save o "crea handoff" | Crea nuovo HANDOFF-NNN.md |
/handoff load o "riprendi" | Legge l'ultimo handoff + context docs |
/handoff update [doc] | Aggiorna CLAUDE.md / PROMPTS.md / CLIENTS.md / WORKFLOW.md |
/handoff status | Mostra lista handoff esistenti con date |
/handoff install-hook | Installa l'hook PreCompact (Workflow E, Claude Code) |
Eseguire quando .handoff/ non esiste ancora.
mkdir -p .handoffLeggere references/init-templates.md per i template di partenza di ciascun
file (CLAUDE.md, PROMPTS.md, CLIENTS.md, WORKFLOW.md). Creare tutti e 4 nella
cartella .handoff/ con il contenuto scaffold appropriato al progetto rilevato
dal contesto della conversazione.
Seguire il Workflow B (SAVE) per creare HANDOFF-001.md con le informazioni disponibili al momento dell'init.
.handoff/ al progettoSe esiste un .gitignore, suggerire all'utente se vuole committare .handoff/
o escluderlo. Raccomandazione: committarlo — è documentazione di progetto.
ls .handoff/HANDOFF-*.md 2>/dev/null | sort | tail -1Se non esiste nessun file → creare HANDOFF-001.md. Se esiste l'ultimo → incrementare di 1 (es. HANDOFF-007.md → HANDOFF-008.md).
Prima di scrivere, leggere l'ultimo HANDOFF-NNN.md per capire cosa era in sospeso e non contraddire la storia. I Next Steps dell'handoff precedente diventano la base della sezione Current Progress del nuovo.
Usare la struttura esatta in references/handoff-template.md. Le 5 sezioni
obbligatorie sono:
Regole di scrittura:
Prima di finalizzare:
Comunicare il path esatto del file creato e come riprendere:
✅ Salvato: .handoff/HANDOFF-003.md
Per riprendere in una nuova sessione Claude Code:
→ claude (apri una nuova sessione)
→ "Leggi .handoff/HANDOFF-003.md e riprendi da dove eravamo"ls .handoff/HANDOFF-*.md | sort | tail -1.handoff/CLAUDE.md — contiene istruzioni operative persistenti.Rispondi in 3-4 righe: obiettivo, punto di avanzamento, prossima azione. Non recitare il documento — dimostrare di aver capito.
Esegui subito il primo passo. Non re-interrogare l'utente su cose già documentate nell'handoff. Tratta What Didn't Work come vincoli rigidi: non riprovare approcci già falliti salvo istruzione esplicita dell'utente.
Quando l'utente vuole aggiornare uno dei documenti persistenti:
Leggere prima il file esistente, fare un update chirurgico (non riscrivere da zero), e confermare le righe modificate/aggiunte all'utente.
Esegui una sola volta per progetto, su richiesta dell'utente o durante spec-as-source-setup.
Installa un hook reale PreCompact che avvisa automaticamente prima che Claude Code
compatti il contesto (cioè quando il contesto si avvicina davvero al limite) —
il trigger deterministico più vicino a "contesto vicino a 300k" disponibile oggi
in Claude Code. Per ambienti/agenti diversi da Claude Code, vale solo la rule
soft handoff-suggestion (non richiede installazione).
.claude/settings.json esistentetest -f .claude/settings.json && cat .claude/settings.json || echo "(non esiste ancora)"Leggi templates/claude-settings-hooks.json in questa skill. Se .claude/settings.json
non esiste, crealo con esattamente quel contenuto. Se esiste già:
hooks.PreCompact, aggiungi l'intero blocco PreCompact da templates/claude-settings-hooks.json;hooks.PreCompact, appendi l'oggetto hook del template all'array esistente — non sostituire gli hook già presenti.Non scrivere mai un .claude/settings.json che cancelli configurazione preesistente (altri hook, permessi, ecc.).
cat .claude/settings.jsonRiporta all'utente: "Hook PreCompact installato — riceverai un avviso prima di ogni compattazione automatica del contesto."
.handoff/ direttamente nel filesystem del progetto..handoff/CLAUDE.md può essere aggiunto al contesto di Claude Code come file sempre caricato (con @.handoff/CLAUDE.md all'inizio della sessione).skills/handoff/); se installata anche globalmente in ~/.claude/skills/handoff/, le due copie sono indipendenti — aggiornarle separatamente..handoff/ non esiste e l'utente chiede di salvare, offrire di fare init prima./handoff save, anche senza che l'utente lo chieda — vedi la rule handoff-suggestion per il trigger automatico..tessl-plugin
skills
handoff
openspec-apply-change
openspec-archive-change
openspec-explore
openspec-propose
openspec-sync-specs
requirement-gathering
spec-as-source-setup
templates
openspec-schema
spec-as-source
templates
spec-ci-sync
spec-rebuild
spec-verify
spec-writer
work-review