CtrlK
BlogDocsLog inGet started
Tessl Logo

vibe-ai/spec-as-source

Adds spec-as-source enforcement to any project using spec-driven development

87

2.34x
Quality

91%

Does it follow best practices?

Impact

82%

2.34x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

vibe-ai/spec-as-source

Enforcement meccanico per lo spec-as-source sopra il plugin tessl-labs/spec-driven-development.

Il plugin spec-driven porta un progetto a spec-anchored (la spec prima del codice), ma non verifica nulla. Questo plugin aggiunge gli strumenti che rendono la spec un vincolo strutturale: script di verifica, ownership dei file, workflow CI e le skill che li orchestrano.


Installazione

# nel tuo progetto (dopo tessl init)
tessl install tessl-labs/spec-driven-development   # il processo
tessl install vibe-ai/spec-as-source               # l'enforcement

Richiede: progetto inizializzato con tessl init, git, e un test runner (pytest / vitest / jest / cargo / go).


Cosa installa

Rule (sempre attive)

RuleComportamento imposto
spec-as-sourceL'implementazione non è completa finché tutti i [@test] esistono; un targets non cambia senza la sua spec
generated-file-headerOgni file targets inizia con # GENERATED FROM SPEC

Skill (on-demand)

SkillQuando usarlaComando
spec-as-source-setupuna volta, per creare script + CI + pre-commitUse spec-as-source-setup.
spec-verifya ogni giro, per verificare spec/test/codiceUse spec-verify.
spec-ci-syncdopo aver aggiunto una spec o cambiato stackUse spec-ci-sync.
spec-rebuildper dimostrare che le spec sono la sorgenteUse spec-rebuild.

Docs

policy.md — la policy in chiaro: ruoli, livelli di enforcement, cosa significa spec-as-source qui.


Uso tipico

# 1. una tantum: genera l'infrastruttura di enforcement
Use spec-as-source-setup.

# 2. allinea la CI al tuo stack
Use spec-ci-sync.

# 3. a ogni ciclo di lavoro, dopo aver implementato
Use spec-verify.

Cosa crea spec-as-source-setup nel progetto:

scripts/check-spec-links.sh          # ogni [@test] punta a un file esistente
scripts/check-target-ownership.sh    # un target non cambia senza la sua spec
scripts/build-spec-manifest.py       # mappa spec → requisiti → target → test
scripts/verify.sh                    # esegue i tre script + test suite
.pre-commit-config.yaml              # gli stessi check in locale
.github/workflows/spec-verification.yml  # gli stessi check in CI

I 4 controlli di spec-verify

Eseguiti in sequenza, sono gli stessi che girano in CI:

#ControlloSe fallisceRecupero
1check-spec-linksun [@test] punta a un file inesistentecrea il file di test mancante
2check-target-ownershipun targets è cambiato senza la sua specannulla la modifica → aggiorna la spec → rigenera dalla spec
3build-spec-manifestuna spec non è parsabilecorreggi frontmatter / header dei requisiti
4test suiteil comportamento contraddice la specallinea il codice, o cambia prima la spec

Il controllo #2 è il cuore dello spec-as-source: è ciò che un progetto "normale" non ha.


Aggiornamento

tessl update vibe-ai/spec-as-source
# poi RIAVVIA Claude Code: le skill si caricano all'avvio della sessione

Se tessl update non vede il plugin, non è registrato in tessl.json: installalo prima con tessl install vibe-ai/spec-as-source.


Convenzioni delle spec

Perché gli script funzionino, ogni .spec.md deve avere:

---
name: <nome>
description: <una riga>
targets:
  - ../src/percorso/file.py      # i file che questa spec possiede
---

## REQ-AREA-001 — Titolo del requisito
Descrizione. `[@test] ../tests/percorso/test_file.py`
  • frontmatter con targets (dichiarazione di proprietà);
  • requisiti con ID stabile REQ-<AREA>-<NNN> (header ## o ###);
  • ogni requisito con almeno un [@test] verso un file di test.

Autore

Workspace vibe-ai.

Workspace
vibe-ai
Visibility
Public
Created
Last updated
Publish Source
CLI
Badge
vibe-ai/spec-as-source badge