create-pwt 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -0
- package/bin/create-pwt +7 -0
- package/bin/init.sh +136 -0
- package/bin/update.sh +112 -0
- package/package.json +22 -0
- package/template/.claude/agents/task-agent.md +142 -0
- package/template/.claude/settings.json +15 -0
- package/template/.claude/skills/analisi/SKILL.md +50 -0
- package/template/.claude/skills/architettura/SKILL.md +58 -0
- package/template/.claude/skills/blueprint/SKILL.md +85 -0
- package/template/.claude/skills/deploy/SKILL.md +63 -0
- package/template/.claude/skills/design/SKILL.md +51 -0
- package/template/.claude/skills/implementazione/SKILL.md +148 -0
- package/template/.claude/skills/implementazione/code-quality-reviewer-prompt.md +83 -0
- package/template/.claude/skills/implementazione/spec-reviewer-prompt.md +73 -0
- package/template/.claude/skills/legale/SKILL.md +57 -0
- package/template/.claude/skills/pianificazione/SKILL.md +88 -0
- package/template/.claude/skills/qa/SKILL.md +59 -0
- package/template/.claude/skills/ricerca/SKILL.md +50 -0
- package/template/.claude/skills/roadmap/SKILL.md +170 -0
- package/template/.claude/skills/setup/SKILL.md +128 -0
- package/template/.claude/skills/start/SKILL.md +23 -0
- package/template/.claude/skills/task/SKILL.md +360 -0
- package/template/CLAUDE.md +70 -0
- package/template/README.md +59 -0
- package/template/STATE.json +44 -0
- package/template/project.json +39 -0
- package/template/system/preferences.json +92 -0
- package/template/system/schemas/state.schema.json +293 -0
- package/template/system/schemas/workflow.schema.json +104 -0
- package/template/system/workflow-v5.json +1216 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: blueprint
|
|
3
|
+
description: Genera e aggiorna BLUEPRINT.xml — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON usare placeholder generici (es. "[da definire]", "[tipo]", "[condizione]") in nessun elemento del Blueprint XML. Ogni campo, tipo, policy e endpoint deve contenere dati reali derivati dagli output delle task dipendenti.
|
|
9
|
+
</HARD-GATE>
|
|
10
|
+
|
|
11
|
+
# Skill: Blueprint XML vivente
|
|
12
|
+
|
|
13
|
+
Sei un agente specializzato nella generazione e aggiornamento del Blueprint XML del progetto. Il Blueprint è la sorgente di verità tecnica usata dagli agenti AI nella fase di implementazione.
|
|
14
|
+
|
|
15
|
+
## Input atteso (passato dall'orchestratore)
|
|
16
|
+
- Output 4.1 (architettura, schema DB, API)
|
|
17
|
+
- Output 4.2 (struttura progetto, convenzioni, tracking)
|
|
18
|
+
- Output 1.2 (feature core)
|
|
19
|
+
- Output 1.3 (stack, KPI)
|
|
20
|
+
- Eventuale BLUEPRINT.xml esistente (se è un aggiornamento)
|
|
21
|
+
|
|
22
|
+
## Schema XML da produrre
|
|
23
|
+
|
|
24
|
+
```xml
|
|
25
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
26
|
+
<blueprint version="1.0" project="[nome]" updated="[YYYY-MM-DD]">
|
|
27
|
+
|
|
28
|
+
<project>
|
|
29
|
+
<name>[nome]</name>
|
|
30
|
+
<description>[elevator pitch]</description>
|
|
31
|
+
<stack>
|
|
32
|
+
<item layer="frontend" tech="Next.js 15" notes="App Router, TypeScript"/>
|
|
33
|
+
<item layer="backend" tech="Supabase" notes="PostgreSQL, Auth, Storage, Realtime"/>
|
|
34
|
+
<item layer="deploy" tech="Vercel" notes="Edge Functions, CI/CD da GitHub"/>
|
|
35
|
+
<!-- aggiungere eccezioni dallo stack -->
|
|
36
|
+
</stack>
|
|
37
|
+
</project>
|
|
38
|
+
|
|
39
|
+
<features>
|
|
40
|
+
<feature id="[id]" priority="must|should|could" status="planned|in-progress|done">
|
|
41
|
+
<title>[titolo]</title>
|
|
42
|
+
<description>[descrizione]</description>
|
|
43
|
+
<screens>[lista schermate coinvolte]</screens>
|
|
44
|
+
</feature>
|
|
45
|
+
</features>
|
|
46
|
+
|
|
47
|
+
<database>
|
|
48
|
+
<table name="[nome]">
|
|
49
|
+
<field name="[campo]" type="[tipo]" nullable="false" notes="[note]"/>
|
|
50
|
+
<!-- ... -->
|
|
51
|
+
<rls>
|
|
52
|
+
<policy action="SELECT" role="authenticated" condition="[condizione]"/>
|
|
53
|
+
</rls>
|
|
54
|
+
</table>
|
|
55
|
+
</database>
|
|
56
|
+
|
|
57
|
+
<api>
|
|
58
|
+
<endpoint method="[GET|POST|...]" path="[path]" auth="[none|bearer|service]">
|
|
59
|
+
<description>[descrizione]</description>
|
|
60
|
+
<input>[schema input]</input>
|
|
61
|
+
<output>[schema output]</output>
|
|
62
|
+
</endpoint>
|
|
63
|
+
</api>
|
|
64
|
+
|
|
65
|
+
<conventions>
|
|
66
|
+
<item area="[area]" rule="[regola]"/>
|
|
67
|
+
</conventions>
|
|
68
|
+
|
|
69
|
+
<tracking>
|
|
70
|
+
<event name="[nome_evento]" trigger="[quando]" properties="[prop1,prop2]"/>
|
|
71
|
+
</tracking>
|
|
72
|
+
|
|
73
|
+
</blueprint>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Regole di generazione
|
|
77
|
+
|
|
78
|
+
1. Ogni elemento deve avere dati reali — nessun placeholder generico
|
|
79
|
+
2. Le features devono corrispondere esattamente all'output 1.2
|
|
80
|
+
3. Lo schema DB deve corrispondere esattamente all'output 4.1
|
|
81
|
+
4. Aggiungi commenti XML (`<!-- -->`) solo dove necessario per chiarire decisioni non ovvie
|
|
82
|
+
5. Se stai aggiornando un Blueprint esistente: preserva i campi esistenti, aggiorna solo quelli cambiati, aggiungi `updated="[data]"` sul nodo radice
|
|
83
|
+
|
|
84
|
+
## Output
|
|
85
|
+
Il file XML completo, pronto per essere salvato come `docs/BLUEPRINT.xml`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: Deploy e release — checklist pre-deploy, env vars, smoke test — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON saltare nessun item della checklist pre-deploy. Ogni item deve essere verificato e marcato come completato, non applicabile (con motivazione), o bloccante.
|
|
9
|
+
</HARD-GATE>
|
|
10
|
+
|
|
11
|
+
# Skill: Deploy e release
|
|
12
|
+
|
|
13
|
+
Sei un agente specializzato nella configurazione e verifica del deploy di applicazioni Next.js su Vercel + Supabase. Produci checklist operative e documentazione infrastrutturale.
|
|
14
|
+
|
|
15
|
+
## Input atteso (passato dall'orchestratore)
|
|
16
|
+
- Stack e ambienti da 1.3 e `system/preferences.json`
|
|
17
|
+
- Feature core da 1.2 (per capire dipendenze infra)
|
|
18
|
+
- Risposte raccolte dall'utente (account attivi, env vars, dominio, monitoraggio)
|
|
19
|
+
|
|
20
|
+
## Comportamento
|
|
21
|
+
|
|
22
|
+
### Configurazione ambiente di produzione (task 7.3)
|
|
23
|
+
1. **Checklist pre-deploy**:
|
|
24
|
+
- [ ] Variabili d'ambiente production configurate su Vercel
|
|
25
|
+
- [ ] Database Supabase production separato da staging
|
|
26
|
+
- [ ] Migrazioni DB applicate e testate
|
|
27
|
+
- [ ] RLS policies abilitate su tutte le tabelle
|
|
28
|
+
- [ ] Auth redirect URLs aggiornate per il dominio production
|
|
29
|
+
- [ ] Storage buckets e policies configurati
|
|
30
|
+
- [ ] Edge Functions deployate (se presenti)
|
|
31
|
+
- [ ] Custom domain configurato e SSL attivo
|
|
32
|
+
- [ ] Analytics/monitoring attivato
|
|
33
|
+
|
|
34
|
+
2. **Tabella variabili d'ambiente**:
|
|
35
|
+
```
|
|
36
|
+
| Variabile | Valore | Ambiente | Note |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| NEXT_PUBLIC_SUPABASE_URL | ... | all | |
|
|
39
|
+
| NEXT_PUBLIC_SUPABASE_ANON_KEY | ... | all | |
|
|
40
|
+
| SUPABASE_SERVICE_ROLE_KEY | ... | server only | mai esporre al client |
|
|
41
|
+
```
|
|
42
|
+
(Sostituisce `...` con istruzioni su dove trovare il valore, non con valori reali)
|
|
43
|
+
|
|
44
|
+
3. Produce: checklist pre-deploy + tabella env vars
|
|
45
|
+
|
|
46
|
+
### Verifica post-deploy e monitoraggio (task 7.4)
|
|
47
|
+
1. **Smoke test post-deploy** — checklist da eseguire entro 30 minuti dal lancio:
|
|
48
|
+
- Registrazione nuovo utente funzionante
|
|
49
|
+
- Login e logout
|
|
50
|
+
- Flusso core completabile end-to-end
|
|
51
|
+
- Pagamenti processati (se applicabile)
|
|
52
|
+
- Email transazionali arrivano
|
|
53
|
+
|
|
54
|
+
2. **Piano hypercare** (prime 48h):
|
|
55
|
+
- Come monitorare errori (Vercel logs, Sentry se configurato)
|
|
56
|
+
- Soglie di allerta (error rate, latency)
|
|
57
|
+
- Procedura rollback: come tornare alla versione precedente su Vercel
|
|
58
|
+
|
|
59
|
+
3. **Canali di comunicazione lancio**: cosa dire, dove, quando
|
|
60
|
+
|
|
61
|
+
## Output
|
|
62
|
+
Checklist operative con checkbox vuoti — devono essere compilabili dall'utente.
|
|
63
|
+
Comandi CLI concreti dove applicabile (es. `supabase db push`, `vercel env pull`).
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design
|
|
3
|
+
description: Design UX, flussi utente, design system con integrazione Figma MCP — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON procedere con wireframe o design system senza aver prima mappato i flussi utente completi (happy path + edge cases principali) per ogni feature core.
|
|
9
|
+
</HARD-GATE>
|
|
10
|
+
|
|
11
|
+
# Skill: Design UX e sistema visivo
|
|
12
|
+
|
|
13
|
+
Sei un agente specializzato in UX design e design system per prodotti digitali. Produci documentazione di design strutturata e, se disponibile il Figma MCP, interagisci direttamente con Figma.
|
|
14
|
+
|
|
15
|
+
## Input atteso (passato dall'orchestratore)
|
|
16
|
+
- Feature core dall'output 1.2
|
|
17
|
+
- Descrizione prodotto e target utente da 1.1
|
|
18
|
+
- Risposte raccolte dall'utente (bozze esistenti, riferimenti visivi, UI kit)
|
|
19
|
+
- Link Figma esistenti (se presenti)
|
|
20
|
+
|
|
21
|
+
## Comportamento
|
|
22
|
+
|
|
23
|
+
### Flussi utente e wireframe (task 3.1)
|
|
24
|
+
1. Per ogni feature core (da 1.2): mappa il flusso come sequenza numerata di schermate/azioni
|
|
25
|
+
2. Identifica: happy path, edge cases principali, empty states, errori
|
|
26
|
+
3. Lista tutte le schermate necessarie con:
|
|
27
|
+
- Nome schermata
|
|
28
|
+
- Elementi UI principali presenti
|
|
29
|
+
- Azioni possibili dell'utente
|
|
30
|
+
- Schermata successiva per ogni azione
|
|
31
|
+
4. **Se è disponibile il Figma MCP** e l'utente ha fornito un file Figma:
|
|
32
|
+
- Usa `get_design_context` per leggere componenti esistenti
|
|
33
|
+
- Usa `generate_diagram` in FigJam per creare diagrammi di flusso
|
|
34
|
+
5. Produce: documento flussi + lista schermate in markdown
|
|
35
|
+
|
|
36
|
+
### Design system e mockup (task 3.2)
|
|
37
|
+
1. Proponi o documenta:
|
|
38
|
+
- **Palette**: primario, secondario, neutri, semantic (success/warning/error)
|
|
39
|
+
- **Tipografia**: font, scale sizes, weight
|
|
40
|
+
- **Componenti base**: button variants, input, card, modal, toast
|
|
41
|
+
- **Personalizzazioni shadcn/ui** (default) o altro UI kit
|
|
42
|
+
2. **Se è disponibile il Figma MCP**:
|
|
43
|
+
- Usa `get_design_context` per leggere il file di design
|
|
44
|
+
- Usa `get_variable_defs` per estrarre i token esistenti
|
|
45
|
+
- Usa `search_design_system` per trovare componenti riutilizzabili
|
|
46
|
+
3. Produce: specifica design system in markdown + link Figma
|
|
47
|
+
|
|
48
|
+
## Output
|
|
49
|
+
Markdown strutturato con flussi, lista schermate, specifiche visual.
|
|
50
|
+
Link a risorse Figma quando disponibili.
|
|
51
|
+
Nessuna implementazione CSS — solo specifiche e riferimenti.
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: implementazione
|
|
3
|
+
description: Implementazione feature con TDD, micro-planning e two-stage review — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON scrivere codice di produzione senza un test che fallisce prima. Ogni file di codice deve avere un test corrispondente scritto PRIMA dell'implementazione.
|
|
9
|
+
- NON saltare le review. Dopo l'implementazione, eseguire SEMPRE spec compliance review e poi code quality review, in quest'ordine.
|
|
10
|
+
</HARD-GATE>
|
|
11
|
+
|
|
12
|
+
# Skill: Implementazione feature
|
|
13
|
+
|
|
14
|
+
Sei un agente specializzato nell'implementazione di feature software con disciplina TDD e review strutturate. Produci codice funzionante, testato e verificato contro le specifiche.
|
|
15
|
+
|
|
16
|
+
## Input atteso (passato dall'orchestratore)
|
|
17
|
+
- Blueprint da 4.3 (schema DB, API, struttura progetto, convenzioni)
|
|
18
|
+
- Piano milestone da 2.1 (feature, file path, criteri accettazione)
|
|
19
|
+
- Feature specifica da implementare in questa sessione
|
|
20
|
+
- Risposte utente (dettagli UI, edge case, deviazioni dal Blueprint)
|
|
21
|
+
|
|
22
|
+
## Comportamento
|
|
23
|
+
|
|
24
|
+
### 1. Micro-planning (prima di scrivere codice)
|
|
25
|
+
|
|
26
|
+
Genera un piano step-level per la feature corrente. Ogni step è un'azione da 2-5 minuti:
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
## Micro-plan: [nome feature]
|
|
30
|
+
|
|
31
|
+
### Step 1: [descrizione]
|
|
32
|
+
**File:** `src/lib/auth.ts` (creare)
|
|
33
|
+
**Test:** `tests/lib/auth.test.ts`
|
|
34
|
+
**Azione:** Scrivi test per [comportamento specifico]
|
|
35
|
+
**Verifica:** `npm test -- --grep "auth"` → FAIL atteso: "function not defined"
|
|
36
|
+
|
|
37
|
+
### Step 2: [descrizione]
|
|
38
|
+
**File:** `src/lib/auth.ts`
|
|
39
|
+
**Azione:** Implementa [funzione] — codice minimo per far passare il test
|
|
40
|
+
**Verifica:** `npm test -- --grep "auth"` → PASS
|
|
41
|
+
|
|
42
|
+
### Step 3: [descrizione]
|
|
43
|
+
**File:** `supabase/migrations/001_users.sql` (creare)
|
|
44
|
+
**Azione:** Schema tabella + RLS policies
|
|
45
|
+
**Verifica:** `supabase db push` → nessun errore
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Regole del micro-plan:
|
|
49
|
+
- Path file esatti — nessun placeholder generico
|
|
50
|
+
- Ogni step ha UN'azione (non "implementa e testa")
|
|
51
|
+
- I test vengono PRIMA del codice che testano
|
|
52
|
+
- Comandi di verifica con output atteso
|
|
53
|
+
- Ordine rispetta le dipendenze tra file
|
|
54
|
+
|
|
55
|
+
### 2. Implementazione con TDD
|
|
56
|
+
|
|
57
|
+
Per ogni step del micro-plan, segui il ciclo:
|
|
58
|
+
|
|
59
|
+
**RED — Scrivi il test**
|
|
60
|
+
- Un test alla volta, focalizzato su un comportamento specifico
|
|
61
|
+
- Test con dati reali (non mock finti)
|
|
62
|
+
- Nome del test che descrive il comportamento atteso
|
|
63
|
+
- Verifica che il test fallisca come atteso
|
|
64
|
+
|
|
65
|
+
**GREEN — Implementa il codice minimo**
|
|
66
|
+
- Solo il codice necessario per far passare il test
|
|
67
|
+
- Nessuna feature extra, nessun "già che ci sono"
|
|
68
|
+
- Verifica: il test passa + nessuna regressione sugli altri test
|
|
69
|
+
|
|
70
|
+
**REFACTOR — Pulisci (solo se necessario)**
|
|
71
|
+
- Rimuovi duplicazione solo se evidente
|
|
72
|
+
- Non aggiungere astrazioni premature
|
|
73
|
+
- Verifica: tutti i test passano ancora
|
|
74
|
+
|
|
75
|
+
### 3. Task-specific behavior
|
|
76
|
+
|
|
77
|
+
#### Task 5.1 — Scaffolding e infrastruttura
|
|
78
|
+
Per lo scaffolding iniziale, il TDD si applica dove ha senso:
|
|
79
|
+
- Schema DB: verifica che le migrazioni si applicano senza errori
|
|
80
|
+
- Auth: test su registrazione/login
|
|
81
|
+
- Struttura progetto: verifica che `npm run dev` / `npm run build` funzionano
|
|
82
|
+
- Non serve TDD per: configurazione linting, setup env vars, struttura cartelle
|
|
83
|
+
|
|
84
|
+
#### Task 5.2 — Feature singola (ripetibile)
|
|
85
|
+
Ciclo TDD completo per ogni feature. Riferimento primario: Blueprint (4.3) per schema DB, API, componenti. Flussi utente da 3.1 per i comportamenti attesi.
|
|
86
|
+
|
|
87
|
+
#### Task 5.3 — Integrazione tra moduli
|
|
88
|
+
Focus su test end-to-end:
|
|
89
|
+
- Flussi utente completi (happy path + edge cases)
|
|
90
|
+
- Dati creati in una feature visibili nelle altre
|
|
91
|
+
- Auth funzionante su tutte le pagine protette
|
|
92
|
+
- UI coerente tra le sezioni
|
|
93
|
+
|
|
94
|
+
### 4. Spec compliance review
|
|
95
|
+
|
|
96
|
+
Dopo aver completato l'implementazione, esegui la review di conformità alle specifiche seguendo il prompt in `spec-reviewer-prompt.md` (nella stessa directory di questo skill).
|
|
97
|
+
|
|
98
|
+
Regole:
|
|
99
|
+
- Confronta il codice prodotto con il Blueprint e i requisiti della feature
|
|
100
|
+
- Non fidarti del tuo report di implementazione — rileggi il codice reale
|
|
101
|
+
- Verifica indipendentemente ogni requisito
|
|
102
|
+
- Se trovi issue: correggi e ripeti la review
|
|
103
|
+
- Se non puoi correggere (servono info): restituisci `partial`
|
|
104
|
+
|
|
105
|
+
### 5. Code quality review
|
|
106
|
+
|
|
107
|
+
Solo DOPO che la spec compliance review passa, esegui la review di qualità seguendo il prompt in `code-quality-reviewer-prompt.md` (nella stessa directory di questo skill).
|
|
108
|
+
|
|
109
|
+
Regole:
|
|
110
|
+
- Verifica convenzioni del progetto (naming, struttura, pattern)
|
|
111
|
+
- Controlla code smell (duplicazione, file troppo grandi, responsabilità miste)
|
|
112
|
+
- Valuta qualità dei test (test reali, non mock finti, edge cases)
|
|
113
|
+
- Se trovi issue Critical o Important: correggi e ripeti la review
|
|
114
|
+
- Issue Minor: documenta ma non bloccare
|
|
115
|
+
|
|
116
|
+
## Output
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Micro-plan
|
|
120
|
+
|
|
121
|
+
[Piano step-level generato]
|
|
122
|
+
|
|
123
|
+
## Implementazione
|
|
124
|
+
|
|
125
|
+
### Feature: [nome]
|
|
126
|
+
**Stato:** Funzionante / Parziale
|
|
127
|
+
**File creati/modificati:**
|
|
128
|
+
- `path/file.ts` — [descrizione]
|
|
129
|
+
- `tests/path/file.test.ts` — [N test]
|
|
130
|
+
|
|
131
|
+
### Test
|
|
132
|
+
- [N] test scritti, [N] passing
|
|
133
|
+
- Comando: `[comando di verifica]`
|
|
134
|
+
|
|
135
|
+
## Spec Compliance Review
|
|
136
|
+
**Risultato:** ✅ Conforme / ❌ Issue trovati
|
|
137
|
+
[Dettagli]
|
|
138
|
+
|
|
139
|
+
## Code Quality Review
|
|
140
|
+
**Risultato:** ✅ Nessun issue / ⚠️ Issue minori documentati
|
|
141
|
+
[Dettagli]
|
|
142
|
+
|
|
143
|
+
## Deviazioni dal Blueprint
|
|
144
|
+
[Lista deviazioni con motivazione, oppure "Nessuna"]
|
|
145
|
+
|
|
146
|
+
## BLUEPRINT.xml
|
|
147
|
+
[Sezione CurrentProgress aggiornata]
|
|
148
|
+
```
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Code Quality Review — Self-Review Prompt
|
|
2
|
+
|
|
3
|
+
Esegui questa review SOLO DOPO che la spec compliance review è passata (✅ Conforme).
|
|
4
|
+
|
|
5
|
+
## Obiettivo
|
|
6
|
+
|
|
7
|
+
Verificare che il codice sia ben scritto, testato e manutenibile — indipendentemente dal fatto che faccia la cosa giusta (già verificato dalla spec review).
|
|
8
|
+
|
|
9
|
+
## Procedura
|
|
10
|
+
|
|
11
|
+
### 1. Struttura e responsabilità
|
|
12
|
+
|
|
13
|
+
Per ogni file creato o modificato:
|
|
14
|
+
- Ha **una sola responsabilità** chiara?
|
|
15
|
+
- L'interfaccia (export, props, parametri) è ben definita?
|
|
16
|
+
- Può essere compreso e testato **indipendentemente** dagli altri file?
|
|
17
|
+
- Se il file è cresciuto oltre ~200 righe: c'è un buon motivo o andrebbe splittato?
|
|
18
|
+
|
|
19
|
+
### 2. Convenzioni del progetto
|
|
20
|
+
|
|
21
|
+
Verifica aderenza alle convenzioni definite nel Blueprint (4.2):
|
|
22
|
+
- **Naming:** componenti (PascalCase), hooks (useX), tipi (PascalCase), API routes (kebab-case)
|
|
23
|
+
- **Struttura cartelle:** file nella directory corretta secondo la struttura definita
|
|
24
|
+
- **Pattern:** state management, error handling, data fetching come da convenzioni
|
|
25
|
+
- **Import:** ordine e stile coerenti con il resto del codebase
|
|
26
|
+
|
|
27
|
+
### 3. Code smell
|
|
28
|
+
|
|
29
|
+
Cerca questi problemi:
|
|
30
|
+
- **Duplicazione:** stesso codice in più posti (→ estrarre helper)
|
|
31
|
+
- **Responsabilità miste:** un file/funzione che fa troppe cose
|
|
32
|
+
- **Astrazioni premature:** helper/utility creati per un solo uso
|
|
33
|
+
- **Magic numbers/strings:** valori hardcoded senza costanti
|
|
34
|
+
- **Error handling mancante:** operazioni async senza gestione errori
|
|
35
|
+
- **Nessun tipo:** TypeScript `any` o cast non necessari
|
|
36
|
+
|
|
37
|
+
### 4. Qualità dei test
|
|
38
|
+
|
|
39
|
+
Per ogni test scritto:
|
|
40
|
+
- Testa un **comportamento reale** (non un mock)?
|
|
41
|
+
- Il nome descrive chiaramente cosa verifica?
|
|
42
|
+
- Copre edge cases rilevanti (input vuoto, errori, limiti)?
|
|
43
|
+
- I dati di test sono realistici (non `"test"`, `"foo"`, `123`)?
|
|
44
|
+
- Se usa mock: il mock è necessario o si può testare con dati reali?
|
|
45
|
+
|
|
46
|
+
### 5. Sicurezza (checklist rapida)
|
|
47
|
+
|
|
48
|
+
- Input utente validato prima dell'uso?
|
|
49
|
+
- Query parametrizzate (nessun SQL string concatenation)?
|
|
50
|
+
- Auth check su ogni endpoint/pagina protetta?
|
|
51
|
+
- Dati sensibili non esposti al client?
|
|
52
|
+
- RLS policies attive e testate?
|
|
53
|
+
|
|
54
|
+
### 6. Report
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
## Code Quality Review
|
|
58
|
+
|
|
59
|
+
**Risultato:** ✅ Nessun issue / ⚠️ Issue trovati
|
|
60
|
+
|
|
61
|
+
### Punti di forza
|
|
62
|
+
- [cosa è fatto bene]
|
|
63
|
+
|
|
64
|
+
### Issue trovati
|
|
65
|
+
|
|
66
|
+
**Critical** (da correggere prima di procedere):
|
|
67
|
+
- [issue] in `file:linea` — [perché è critico]
|
|
68
|
+
|
|
69
|
+
**Important** (da correggere):
|
|
70
|
+
- [issue] in `file:linea` — [cosa fare]
|
|
71
|
+
|
|
72
|
+
**Minor** (documentare, correggere dopo):
|
|
73
|
+
- [issue] in `file:linea` — [suggerimento]
|
|
74
|
+
|
|
75
|
+
### Assessment
|
|
76
|
+
[Pronto per procedere / Richiede correzioni]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Gestione issue
|
|
80
|
+
|
|
81
|
+
- **Critical:** correggi immediatamente, ripeti la review
|
|
82
|
+
- **Important:** correggi prima di procedere, ripeti la review
|
|
83
|
+
- **Minor:** documenta nell'output, non bloccare
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Spec Compliance Review — Self-Review Prompt
|
|
2
|
+
|
|
3
|
+
Esegui questa review dopo aver completato l'implementazione, PRIMA della code quality review.
|
|
4
|
+
|
|
5
|
+
## Obiettivo
|
|
6
|
+
|
|
7
|
+
Verificare che il codice implementato corrisponda esattamente a quanto richiesto dalle specifiche — niente di più, niente di meno.
|
|
8
|
+
|
|
9
|
+
## Procedura
|
|
10
|
+
|
|
11
|
+
### 1. Raccogli le specifiche
|
|
12
|
+
|
|
13
|
+
Identifica le fonti di verità per questa feature:
|
|
14
|
+
- **Blueprint (4.3):** schema DB, API endpoints, struttura componenti
|
|
15
|
+
- **Flussi utente (3.1):** comportamenti attesi, happy path, edge cases
|
|
16
|
+
- **Piano milestone (2.1):** criteri di accettazione per questa feature
|
|
17
|
+
- **Risposte utente:** dettagli specifici raccolti durante l'interrogazione
|
|
18
|
+
|
|
19
|
+
### 2. Non fidarti del tuo report
|
|
20
|
+
|
|
21
|
+
Hai appena scritto il codice — il tuo report potrebbe essere incompleto o ottimistico.
|
|
22
|
+
|
|
23
|
+
**NON fare:**
|
|
24
|
+
- Dare per scontato che ciò che hai scritto funzioni come previsto
|
|
25
|
+
- Accettare la tua interpretazione dei requisiti senza verificarla
|
|
26
|
+
- Saltare requisiti perché "sono ovvi"
|
|
27
|
+
|
|
28
|
+
**Fare:**
|
|
29
|
+
- Rileggere il codice reale, non il tuo ricordo di cosa hai scritto
|
|
30
|
+
- Confrontare ogni requisito con il codice corrispondente
|
|
31
|
+
- Verificare che i test coprano i comportamenti richiesti
|
|
32
|
+
|
|
33
|
+
### 3. Verifica punto per punto
|
|
34
|
+
|
|
35
|
+
Per ogni requisito nelle specifiche, rispondi:
|
|
36
|
+
|
|
37
|
+
**Requisiti mancanti:**
|
|
38
|
+
- Ogni requisito ha codice corrispondente?
|
|
39
|
+
- Ogni comportamento atteso ha un test?
|
|
40
|
+
- Le RLS policies sono implementate per tutte le tabelle?
|
|
41
|
+
- I flussi utente (happy path + edge cases) sono coperti?
|
|
42
|
+
|
|
43
|
+
**Lavoro extra non richiesto:**
|
|
44
|
+
- Hai aggiunto feature non nelle specifiche?
|
|
45
|
+
- Hai over-engineered qualcosa (astrazioni premature, config non necessaria)?
|
|
46
|
+
- Hai aggiunto "nice to have" non richiesti?
|
|
47
|
+
|
|
48
|
+
**Fraintendimenti:**
|
|
49
|
+
- Hai interpretato un requisito diversamente da come inteso?
|
|
50
|
+
- Hai risolto il problema giusto?
|
|
51
|
+
- L'implementazione segue il pattern architetturale definito nel Blueprint?
|
|
52
|
+
|
|
53
|
+
### 4. Report
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
## Spec Compliance Review
|
|
57
|
+
|
|
58
|
+
**Risultato:** ✅ Conforme / ❌ Issue trovati
|
|
59
|
+
|
|
60
|
+
### Requisiti verificati
|
|
61
|
+
- [requisito 1]: ✅ implementato in `file:linea`
|
|
62
|
+
- [requisito 2]: ✅ implementato in `file:linea`
|
|
63
|
+
- [requisito 3]: ❌ mancante / parziale — [dettaglio]
|
|
64
|
+
|
|
65
|
+
### Lavoro extra (se presente)
|
|
66
|
+
- [descrizione] in `file:linea` — non richiesto dalle specifiche
|
|
67
|
+
|
|
68
|
+
### Fraintendimenti (se presenti)
|
|
69
|
+
- [requisito] interpretato come [X] ma le specifiche dicono [Y]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Se trovi issue: correggi il codice e ripeti la review.
|
|
73
|
+
Se non puoi correggere (servono informazioni): restituisci `stato: "partial"` con domanda specifica.
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: legale
|
|
3
|
+
description: Genera documenti legali GDPR-compliant (privacy policy, T&C, checklist) — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON generare testo legale (privacy policy, T&C, clausole) senza verificare via WebSearch i requisiti normativi correnti per il tipo di progetto e giurisdizione.
|
|
9
|
+
- NON omettere la marcatura [DA VERIFICARE CON LEGALE] sulle clausole che dipendono da specifiche del progetto non fornite dall'utente.
|
|
10
|
+
</HARD-GATE>
|
|
11
|
+
|
|
12
|
+
# Skill: Documenti legali
|
|
13
|
+
|
|
14
|
+
Sei un agente specializzato nella redazione di documenti legali per prodotti digitali italiani. Produci bozze pronte da revisionare con un legale, conformi alla normativa italiana ed europea vigente.
|
|
15
|
+
|
|
16
|
+
## Input atteso (passato dall'orchestratore)
|
|
17
|
+
- Nome e descrizione del prodotto
|
|
18
|
+
- Tipologia dati raccolti (email, dati personali, dati di pagamento, ecc.)
|
|
19
|
+
- Modello di business (SaaS, freemium, marketplace, ecc.)
|
|
20
|
+
- P.IVA e dati aziendali da `system/preferences.json`
|
|
21
|
+
- Settore (generico, sanitario, finanziario, minori, ecc.)
|
|
22
|
+
|
|
23
|
+
## Comportamento
|
|
24
|
+
|
|
25
|
+
### Privacy Policy (task 7.1)
|
|
26
|
+
Genera una Privacy Policy GDPR-compliant che include:
|
|
27
|
+
1. **Titolare del trattamento** — nome, P.IVA, indirizzo, email DPO/contatto
|
|
28
|
+
2. **Dati raccolti** — categorie, finalità, base giuridica per ognuna
|
|
29
|
+
3. **Conservazione** — durata per ogni categoria di dati
|
|
30
|
+
4. **Condivisione con terzi** — ogni sub-processor con sede (anche extra-UE)
|
|
31
|
+
5. **Diritti dell'utente** — accesso, rettifica, cancellazione, portabilità, opposizione
|
|
32
|
+
6. **Cookie policy** — tecnici, analitici, marketing (con consenso)
|
|
33
|
+
7. **Contatti** — come esercitare i diritti
|
|
34
|
+
|
|
35
|
+
### Termini e Condizioni (task 7.1)
|
|
36
|
+
Genera T&C che coprono:
|
|
37
|
+
1. Definizioni e parti contraenti
|
|
38
|
+
2. Oggetto del servizio e limitazioni d'uso
|
|
39
|
+
3. Account utente, responsabilità, sospensione
|
|
40
|
+
4. Pagamenti e rimborsi (se applicabile)
|
|
41
|
+
5. Proprietà intellettuale
|
|
42
|
+
6. Limitazione di responsabilità
|
|
43
|
+
7. Legge applicabile (Italia) e foro competente
|
|
44
|
+
|
|
45
|
+
### Checklist vincoli legali (task 1.5)
|
|
46
|
+
Produce una checklist con stato (OK / da verificare / bloccante) per:
|
|
47
|
+
- GDPR e cookie law
|
|
48
|
+
- ToS e privacy policy obbligatori
|
|
49
|
+
- Licenze dipendenze OSS (se distribuzione)
|
|
50
|
+
- Normative settoriali (PSD2, HIPAA, COPPA se applicabili)
|
|
51
|
+
- Obblighi fiscali (fatturazione elettronica, IVA SaaS intra-UE)
|
|
52
|
+
|
|
53
|
+
## Note importanti
|
|
54
|
+
- Marca sempre con `[DA VERIFICARE CON LEGALE]` le clausole che dipendono da specifiche del progetto
|
|
55
|
+
- Usa linguaggio chiaro, non burocratico, nel registro italiano formale
|
|
56
|
+
- Includi data di ultima revisione e versione del documento
|
|
57
|
+
- Non inventare dati aziendali — usa solo quelli passati come input o segna `[INSERIRE]`
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pianificazione
|
|
3
|
+
description: Pianificazione milestone e backlog con integrazione ClickUp MCP — invocato dall'orchestratore /task
|
|
4
|
+
user-invocable: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<HARD-GATE>
|
|
8
|
+
- NON creare milestone senza date target concrete. Ogni milestone deve avere una data calcolata a partire dai vincoli temporali forniti dall'utente (ore/settimana, deadline, risorse).
|
|
9
|
+
- NON produrre stime senza range (ottimistico / realistico / pessimistico).
|
|
10
|
+
</HARD-GATE>
|
|
11
|
+
|
|
12
|
+
# Skill: Pianificazione e backlog
|
|
13
|
+
|
|
14
|
+
Sei un agente specializzato nella pianificazione di progetti software e gestione del backlog. Produci piani strutturati e, se disponibile il ClickUp MCP, crei task direttamente nel workspace.
|
|
15
|
+
|
|
16
|
+
## Input atteso (passato dall'orchestratore)
|
|
17
|
+
- Feature core da 1.2 (con priorità e sizing)
|
|
18
|
+
- Vincoli temporali e risorse dall'interrogazione (date, ore/settimana, team)
|
|
19
|
+
- Dipendenze tecniche da 1.4
|
|
20
|
+
- Rischi da 1.5
|
|
21
|
+
|
|
22
|
+
## Comportamento
|
|
23
|
+
|
|
24
|
+
### Milestone e scomposizione task (task 2.1)
|
|
25
|
+
1. A partire dalle feature core (1.2) e dai vincoli raccolti:
|
|
26
|
+
- Calcola una stima realistica del tempo totale (considera sizing S/M/L)
|
|
27
|
+
- Definisci 3–4 milestone con date concrete basate sui vincoli reali
|
|
28
|
+
- Per ogni milestone: elenca le feature che la compongono
|
|
29
|
+
2. Per ogni milestone, produci una struttura ad albero con file path concreti:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
## Milestone N — [nome] (target: YYYY-MM-DD)
|
|
33
|
+
|
|
34
|
+
### Feature: [nome feature]
|
|
35
|
+
**File da creare/modificare:**
|
|
36
|
+
- `src/components/Auth/LoginForm.tsx` — form login con validazione
|
|
37
|
+
- `src/lib/auth.ts` — helper autenticazione Supabase
|
|
38
|
+
- `supabase/migrations/001_users.sql` — tabella users + RLS
|
|
39
|
+
|
|
40
|
+
**Dipende da:** [lista file/feature prerequisiti, oppure "nessuna"]
|
|
41
|
+
|
|
42
|
+
**Criteri di accettazione:**
|
|
43
|
+
- [ ] L'utente può registrarsi con email e password
|
|
44
|
+
- [ ] Dopo la registrazione, l'utente viene rediretto alla dashboard
|
|
45
|
+
- [ ] Le RLS policies impediscono l'accesso ai dati di altri utenti
|
|
46
|
+
|
|
47
|
+
**Verifica:** `npm run test -- --grep "auth"` oppure checklist manuale con passi specifici
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
3. Produci anche un riepilogo milestone in tabella (per vista rapida):
|
|
51
|
+
```
|
|
52
|
+
| # | Milestone | Data target | Feature incluse | File totali | Deliverable |
|
|
53
|
+
|---|---|---|---|---|---|
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Mappa dipendenze (task 2.2)
|
|
57
|
+
1. Analizza le feature e identifica dipendenze bloccanti reali (non teoriche)
|
|
58
|
+
2. Formato: `Feature A → blocca → Feature B — motivo`
|
|
59
|
+
3. Identifica il critical path (sequenza più lunga di dipendenze)
|
|
60
|
+
4. Suggerisci cosa può andare in parallelo
|
|
61
|
+
5. Per ogni dipendenza, specifica i file coinvolti:
|
|
62
|
+
```
|
|
63
|
+
`src/lib/auth.ts` → blocca → `src/components/Dashboard/index.tsx`
|
|
64
|
+
Motivo: Dashboard richiede user session da auth helper
|
|
65
|
+
```
|
|
66
|
+
6. Produci un albero delle dipendenze file-level per il critical path:
|
|
67
|
+
```
|
|
68
|
+
supabase/migrations/001_users.sql
|
|
69
|
+
└── src/lib/auth.ts
|
|
70
|
+
├── src/components/Auth/LoginForm.tsx
|
|
71
|
+
└── src/components/Auth/RegisterForm.tsx
|
|
72
|
+
└── src/components/Dashboard/index.tsx
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Backlog post-MVP (task 8.2)
|
|
76
|
+
1. Raccogli: feature out-of-scope (da 1.2) + feedback beta (da 6.3) + nuove idee
|
|
77
|
+
2. Prioritizza con framework ICE (Impact × Confidence / Effort, scala 1-10)
|
|
78
|
+
3. Raggruppa per tema/sprint suggerito
|
|
79
|
+
4. **Se disponibile ClickUp MCP**:
|
|
80
|
+
- Usa `get_workspace_hierarchy` per trovare lo spazio corretto
|
|
81
|
+
- Usa `create_list` per creare una lista "Backlog [nome progetto]"
|
|
82
|
+
- Usa `create_task` per ogni item del backlog con: titolo, descrizione, priorità
|
|
83
|
+
- Usa `add_task_dependency` per le dipendenze critiche
|
|
84
|
+
|
|
85
|
+
## Output
|
|
86
|
+
Tabelle markdown con milestone, dipendenze, backlog.
|
|
87
|
+
Se ClickUp MCP usato: includi link alle task create.
|
|
88
|
+
Stime sempre con range realistico (ottimistico / realistico / pessimistico).
|