# Sviluppo guidato dalle specifiche con Claude Code e Cursor

Canonical: https://specscore.md/it/articles/claude-code-specs/

Ultimo aggiornamento: 6 novembre 2026

[Claude Code](https://code.claude.com/docs/en/overview) è uno strumento di programmazione agentico che legge una base di codice, modifica file ed esegue comandi. [Cursor](https://cursor.com/docs/rules) è l’editor le cui regole di progetto stanno in `.cursor/rules` come file `.mdc`. [Sviluppo guidato dalle specifiche](https://specscore.md/it/spec-driven-development/) (SDD) è la pratica di scrivere la specifica prima del codice e di trattare la specifica come fonte di verità. Un documento dei requisiti di prodotto (PRD) è la prosa che enuncia il problema e l’ambito prima che il lavoro sia spezzato in attività. In [SpecScore](https://specscore.md/), una [specifica di funzionalità](https://specscore.md/feature-specification) è il file di una capacità di prodotto, un [requisito](https://specscore.md/requirement-specification) (REQ) è una regola con nome dentro quella funzionalità, e un [criterio di accettazione](https://specscore.md/acceptance-criteria-specification) (AC) è una condizione astratta facoltativa che punta a una o più di quelle regole. L’[integrazione continua](https://specscore.md/it/validators/) (CI) è un controllo automatico su ogni modifica proposta. Il controllo è un comando dell’[interfaccia a riga di comando](https://specscore.md/it/cli/) (CLI), `specscore spec lint`, della CLI in [specscore/specscore-cli](https://github.com/specscore/specscore-cli). In questa pagina, le specifiche di Cursor sono quel file di funzionalità insieme alla regola di progetto di Cursor che dice all’agente di eseguirne il lint.

## Che cosa va nella funzionalità e che cosa va nel file dell’agente

Il file della funzionalità contiene l’obbligo. Un README di funzionalità sotto `spec/features/` porta le regole `#### REQ:` e i criteri `### AC:`. La forma compilata, il piano e l’attività sono il [modello di PRD in Markdown](https://specscore.md/it/articles/feature-spec-template/). `specscore spec lint` controlla quella forma: titoli, sezioni obbligatorie, righe dell’indice e riferimenti. Non decide se l’idea di prodotto sia buona. [Fare il lint delle specifiche in CI](https://specscore.md/it/articles/lint-specs-in-ci/) è il resoconto più lungo del comando.

Il file dell’agente contiene le istruzioni per uno strumento. La panoramica di Anthropic dice che `CLAUDE.md` è un file Markdown alla radice del progetto che Claude Code legge all’inizio di ogni sessione. La documentazione delle regole di Cursor dice che una regola di progetto è un file `.mdc` in `.cursor/rules` e che un file `.md` semplice in quella directory viene ignorato perché non ha frontmatter. Quei file dicono all’agente come lavorare nel repository. Non sono la specifica che il linter controlla. Un requisito che esiste solo in `CLAUDE.md` o solo in `.cursor/rules/specscore.mdc` è invisibile a `specscore spec lint`.

## Che cosa scrive specscore agent setup

Il [README della CLI](https://github.com/specscore/specscore-cli/blob/main/README.md) dice che `specscore agent setup` scrive il file di istruzioni di ciascun agente e, dove quell’agente ha una directory delle skill, vi copia i bundle di skill SpecScore. Il comando salta un file esistente, a meno che non si passi `--force`. Il contratto è la [funzionalità agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md) in [specscore/specscore-cli](https://github.com/specscore/specscore-cli).

Quel contratto associa l’id caller `claude` a `CLAUDE.md` e `.claude/skills/`, e l’id caller `cursor` a `.cursor/rules/specscore.mdc` e `.cursor/skills/`. Esegui il comando dentro un progetto che ha già `specscore.yaml`. Se quel file manca, il comando esce con codice 6 e il messaggio suggerisce `specscore init`. Un’invocazione che nomina entrambi gli agenti è `specscore agent setup claude,cursor`. La funzionalità dice che un elenco separato da virgole equivale ad argomenti separati. Le directory genitore vengono create. Ogni percorso è segnalato come aggiunto, modificato o saltato.

Il `CLAUDE.md` generato include il titolo del progetto, esempi di CLI che passano `--caller claude` e la riga di installazione `/plugin install specscore@specscore`. Il file di Cursor è Markdown con frontmatter YAML. Il frontmatter contiene `description` e `alwaysApply: true`. La tabella delle regole di Cursor dice che `alwaysApply: true` significa che la regola è inclusa in ogni chat. `--no-skills` scrive i file di istruzioni e non copia i bundle di skill. La stessa tabella del contratto nomina anche `codex`, `copilot`, `antigravity.google`, `pi.dev`, `opencode` e `deepseek`. Questa pagina segue i due agenti del titolo.

### Scrive i file di Claude Code e di Cursor. Eseguilo da un progetto che ha specscore.yaml.

```text
specscore agent setup claude,cursor
```

### Percorsi che il contratto assegna a claude e a cursor. Le directory delle skill non vengono create quando si passa --no-skills. Un file esistente resta com’è, a meno che non si passi --force.

```text
CLAUDE.md
.claude/skills/
.cursor/rules/specscore.mdc
.cursor/skills/
```

Il file di istruzioni punta all’albero delle funzionalità. Non lo sostituisce. Dopo il setup, Claude Code deve ancora leggere `spec/features/`, e la regola di Cursor deve ancora puntare allo stesso albero. La [specifica di funzionalità](https://specscore.md/feature-specification) resta il documento che `specscore spec lint` accetta o rifiuta.

## Eseguire specscore spec lint nel ciclo

Installa prima la CLI. I metodi di installazione sono nella [pagina di installazione](https://specscore.md/it/cli/install/). Poi tieni la funzionalità e il linter nello stesso ciclo dell’agente.

### Scrivi la funzionalità prima del prompt

Aggiungi il README della funzionalità, la riga dell’indice delle funzionalità e `specscore.yaml` usando il [modello di PRD](https://specscore.md/it/articles/feature-spec-template/). Metti ogni obbligo sotto `## Behavior` come `#### REQ: {slug}`. Punta i criteri di accettazione a quegli id con `**Requirements:**`. Lascia `CLAUDE.md` e `.cursor/rules/` al passo successivo.

### Esegui il lint prima che l’agente modifichi il codice

Esegui `specscore spec lint` nel repository. Un albero pulito stampa `0 violations found` ed esce con codice 0. Il report di fallimento — file, riga, gravità, regola, messaggio — è in [Fare il lint delle specifiche in CI](https://specscore.md/it/articles/lint-specs-in-ci/). Correggi la funzionalità finché quel comando è pulito. Un agente che parte da una funzionalità che il linter già rifiuta copierà la forma rotta.

### Punta Claude Code e Cursor all’albero

Esegui `specscore agent setup claude,cursor`. Leggi i file aggiunti `CLAUDE.md` e `.cursor/rules/specscore.mdc` e conferma che nominano l’albero delle specifiche e la CLI, incluso `--caller`. Se uno dei due file esisteva già, il comando lo salta. Passa `--force` solo quando intendi sostituire quel file.

### Chiedi un’attività che nomina un criterio

Nella sessione dell’agente, nomina la funzionalità e il criterio di accettazione che il lavoro deve soddisfare. Un’attività del piano lo fa con `**Verifies:**` e un id di criterio di accettazione. Chiedi all’agente di eseguire di nuovo `specscore spec lint` prima di finire e di modificare il file della funzionalità quando il comportamento cambia. Il file di istruzioni dice all’agente di eseguire il comando. Il file della funzionalità è ciò che il comando controlla.

## Skill che espongono lint, feature e task

Le righe di installazione nel README della CLI per il plugin wrapper sono `/plugin marketplace add specscore/ai-marketplace` e `/plugin install specscore@specscore`. Il repository del plugin è [specscore/ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore), sotto la [licenza MIT](https://github.com/specscore/ai-plugin-specscore/blob/main/LICENSE). Il suo [README delle skill](https://github.com/specscore/ai-plugin-specscore/blob/main/skills/README.md) dice che gli utenti invocano `/specscore:<skill-name>`. I wrapper distribuiti includono `/specscore:spec`, che avvolge `specscore spec lint`; `/specscore:feature`, che avvolge `specscore feature` (`list`, `info`, `tree`, `deps`, `refs`, `new` e `change-status`); e `/specscore:task`, che avvolge `specscore task`. `/specscore:change-status` copre i cambi di stato di funzionalità e di idea. La pagina [CLI Skills](https://specscore.md/it/ai/cli-skills/) di questo sito è quel wrapper. `specscore agent setup` copia quei bundle di skill in `.claude/skills/` e `.cursor/skills/`, a meno che non si passi `--no-skills`.

Il README del plugin dice che Cursor non ha un comando di installazione remota e carica le skill da `.cursor/skills/` nel progetto o da `~/.cursor/skills/`. La copia manuale che mostra è `git clone` di [ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore/blob/main/README.md) e `cp -R` di `skills/*` in `.cursor/skills/`. `specscore agent setup cursor` è il comando che fa quella copia per te, dal marketplace che la specifica di funzionalità nomina.

[SpecStudio Skills](https://specscore.md/it/ai/specstudio-skills/) è il flusso di lavoro guidato. Il repository è [specscore/specstudio-skills](https://github.com/specscore/specstudio-skills), sotto la [licenza MIT](https://github.com/specscore/specstudio-skills/blob/main/LICENSE). La riga di installazione per Claude Code nel suo README è `/plugin install specstudio@specscore`, e dice che Claude Code installa il plugin `specscore` come dipendenza. La sezione dello stato nomina la versione 0.0.7 e dice che le skill `ideate`, `specify`, `plan`, `implement`, `verify` e `recap` sono abbastanza attive per il dogfood. La tabella di inventario dello stesso README documenta `specstudio:ideate` e `specstudio:specify` nel dettaglio. Quelle skill scrivono artefatti SpecScore. Non sostituiscono `specscore spec lint`.

## Lo stesso comando in CI

[dogfood.yml](https://github.com/specscore/specscore/blob/main/.github/workflows/dogfood.yml) in [specscore/specscore](https://github.com/specscore/specscore) imposta `SPECSCORE_VERSION` su `v0.39.1` ed esegue `specscore spec lint` sulle pull request e sui push verso main. L’estratto del workflow e il report testuale sono in [Fare il lint delle specifiche in CI](https://specscore.md/it/articles/lint-specs-in-ci/). Una funzionalità che rompe un titolo fa fallire quel job, sia che il file l’abbia scritto Claude Code sia Cursor. Il ciclo dell’agente e la CI chiamano lo stesso comando.

La licenza del formato è [CC BY 4.0](https://github.com/specscore/specscore/blob/main/LICENSE) in [specscore/specscore](https://github.com/specscore/specscore). La licenza della CLI è [Apache-2.0](https://github.com/specscore/specscore-cli/blob/main/LICENSE) in [specscore/specscore-cli](https://github.com/specscore/specscore-cli).

Altri strumenti di sviluppo guidato dalle specifiche pubblicano controlli diversi. Le frasi sotto usano solo ciò che dicono le pagine stesse di quei progetti. La [rassegna degli strumenti](https://specscore.md/it/spec-driven-development/tools/) registra le stesse pagine come lette il 30 ottobre 2026, tranne la home della documentazione di Spec Kit, che stampa il 28 settembre 2026.

[OpenSpec](https://github.com/Fission-AI/OpenSpec) documenta `openspec validate` nel suo [riferimento della CLI](https://openspec.dev/docs/cli). Quel comando controlla la struttura di change e di spec di OpenSpec. Non controlla un titolo SpecScore `### AC:`.

Il README di [Task Master](https://github.com/eyaltoledano/claude-task-master) descrive la scomposizione di un PRD in attività con `task-master parse-prd`. Non descrive un linter per quel PRD.

[GitHub Spec Kit](https://github.github.io/spec-kit/) descrive un flusso di lavoro dell’agente le cui fasi scrivono artefatti Markdown. Quella home della documentazione non descrive un comando che esegue il lint di un README di funzionalità SpecScore in CI.

## Domande frequenti

### Che cos’è Claude Code spec-driven development?

È scrivere la funzionalità SpecScore prima che Claude Code scriva il codice, e poi tenere `CLAUDE.md` come file di istruzioni che punta a quella funzionalità. La funzionalità contiene i requisiti (REQ) e i criteri di accettazione (AC). `specscore spec lint` controlla la funzionalità. `specscore agent setup claude` scrive `CLAUDE.md` in un progetto che ha già `specscore.yaml`.

### Dove vanno le specifiche di Cursor?

L’obbligo di prodotto va nel README della funzionalità sotto `spec/features/`. La regola di progetto di Cursor va in `.cursor/rules/specscore.mdc`. I file delle skill vanno in `.cursor/skills/`. `specscore agent setup cursor` scrive la regola e, a meno che non si passi `--no-skills`, copia i bundle di skill. La documentazione stessa di Cursor è la fonte per come si applicano le regole `.mdc`.

### CLAUDE.md sostituisce la specifica di funzionalità?

No. `CLAUDE.md` è ciò che Claude Code legge come istruzioni. Il README della funzionalità è ciò che `specscore spec lint` controlla. La [funzionalità agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md) dice che il file generato insegna all’agente l’albero delle specifiche e i comandi della CLI. Non dice che il file di istruzioni sia la specifica.

### Che cosa succede se CLAUDE.md o la regola di Cursor esiste già?

Il comando salta il file esistente e stampa una riga di salto che menziona `--force`. I byte esistenti restano. Passa `--force` solo quando la sostituzione è ciò che vuoi. La stessa regola di salto vale per un file di skill già presente.

### Quale skill esegue il linter?

Nel README delle skill del plugin, `/specscore:spec` avvolge `specscore spec lint`. Puoi anche eseguire tu quel comando della CLI, nella sessione dell’agente o in CI. `/specscore:feature` e `/specscore:task` avvolgono i comandi di funzionalità e di attività. Non eseguono il lint da soli.

### Il linter valuta la prosa?

No. `specscore spec lint` controlla la struttura. [Fare il lint delle specifiche in CI](https://specscore.md/it/articles/lint-specs-in-ci/) mostra il report. Un controllo strutturale pulito non è una revisione di prodotto.

## Fonti

Il comportamento di agent-setup è il contratto in specscore-cli spec/features/cli/agent/setup/README.md su main, letto il 6 novembre 2026. I nomi delle skill provengono da ai-plugin-specscore skills/README.md su main, letto lo stesso giorno. La riga di installazione di SpecStudio e l’elenco di stato della versione 0.0.7 provengono da specstudio-skills README.md su main, letto lo stesso giorno. La descrizione di Claude Code e la frase su CLAUDE.md provengono da code.claude.com/docs/en/overview. I percorsi delle regole di progetto di Cursor provengono da cursor.com/docs/rules. dogfood.yml in questo repository fissa SPECSCORE_VERSION a v0.39.1. Le pagine dei concorrenti sono quelle collegate sotto; la rassegna degli strumenti le registra come lette il 30 ottobre 2026, tranne la home della documentazione di Spec Kit, che stampa il 28 settembre 2026.

- [Claude Code — panoramica (CLAUDE.md)](https://code.claude.com/docs/en/overview)
- [Cursor — Regole (le regole di progetto sono file .mdc)](https://cursor.com/docs/rules)
- [specscore-cli — funzionalità agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md)
- [specscore-cli — README (agent setup e installazione del plugin)](https://github.com/specscore/specscore-cli/blob/main/README.md)
- [specscore/specscore-cli](https://github.com/specscore/specscore-cli)
- [specscore-cli — licenza Apache-2.0](https://github.com/specscore/specscore-cli/blob/main/LICENSE)
- [specscore/specscore](https://github.com/specscore/specscore)
- [specscore/specscore — licenza CC BY 4.0](https://github.com/specscore/specscore/blob/main/LICENSE)
- [specscore/specscore — dogfood.yml (CLI v0.39.1)](https://github.com/specscore/specscore/blob/main/.github/workflows/dogfood.yml)
- [specscore/ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore)
- [ai-plugin-specscore — licenza MIT](https://github.com/specscore/ai-plugin-specscore/blob/main/LICENSE)
- [ai-plugin-specscore — README delle skill](https://github.com/specscore/ai-plugin-specscore/blob/main/skills/README.md)
- [ai-plugin-specscore — README (copia per Cursor)](https://github.com/specscore/ai-plugin-specscore/blob/main/README.md)
- [specscore/specstudio-skills](https://github.com/specscore/specstudio-skills)
- [specstudio-skills — licenza MIT](https://github.com/specscore/specstudio-skills/blob/main/LICENSE)
- [specstudio-skills — README (versione 0.0.7)](https://github.com/specscore/specstudio-skills/blob/main/README.md)
- [CLI Skills](https://specscore.md/it/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/it/ai/specstudio-skills/)
- [Modello di PRD in Markdown per programmare con l’IA](https://specscore.md/it/articles/feature-spec-template/)
- [Fare il lint delle specifiche in CI con un linter di specifiche](https://specscore.md/it/articles/lint-specs-in-ci/)
- [Specifica di funzionalità](https://specscore.md/feature-specification)
- [Specifica dei criteri di accettazione](https://specscore.md/acceptance-criteria-specification)
- [Riferimento della CLI OpenSpec — openspec validate](https://openspec.dev/docs/cli)
- [Fission-AI/OpenSpec](https://github.com/Fission-AI/OpenSpec)
- [eyaltoledano/claude-task-master](https://github.com/eyaltoledano/claude-task-master)
- [Documentazione di GitHub Spec Kit (data della pagina 28 settembre 2026)](https://github.github.io/spec-kit/)
- [Strumenti di sviluppo guidato dalle specifiche](https://specscore.md/it/spec-driven-development/tools/)

## Correlati

- [Modello di PRD in Markdown per programmare con l’IA](https://specscore.md/it/articles/feature-spec-template/)
- [Fare il lint delle specifiche in CI con un linter di specifiche](https://specscore.md/it/articles/lint-specs-in-ci/)
- [Come scrivere criteri di accettazione che un agente IA possa verificare](https://specscore.md/it/articles/acceptance-criteria/)
- [Sintassi dei requisiti EARS spiegata, con esempi](https://specscore.md/it/articles/ears-requirements/)
- [Sviluppo guidato dalle specifiche](https://specscore.md/it/spec-driven-development/)
- [Strumenti di sviluppo guidato dalle specifiche](https://specscore.md/it/spec-driven-development/tools/)
- [CLI Skills](https://specscore.md/it/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/it/ai/specstudio-skills/)
- [CLI](https://specscore.md/it/cli/)
- [Specifica di funzionalità](https://specscore.md/feature-specification)
