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,1216 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_version": "5.0",
|
|
3
|
+
"_description": "Template workflow completo per progetti software. 38 task in 9 fasi. Ogni task include domande di interrogazione per il loop AI-PM.",
|
|
4
|
+
"_usage": "Caricare SOLO la task corrente (filtrare per id), non l'intero file.",
|
|
5
|
+
"phases": [
|
|
6
|
+
{
|
|
7
|
+
"id": 0,
|
|
8
|
+
"name": "Ideazione e Validazione",
|
|
9
|
+
"goal": "Catturare e validare l'idea prima di investire tempo",
|
|
10
|
+
"tasks": [
|
|
11
|
+
{
|
|
12
|
+
"id": "0.1",
|
|
13
|
+
"title": "Documentare e strutturare l'idea",
|
|
14
|
+
"is_gate": false,
|
|
15
|
+
"model": "claude-sonnet-4-6",
|
|
16
|
+
"skill": null,
|
|
17
|
+
"session_hint": "continue",
|
|
18
|
+
"depends_on": [],
|
|
19
|
+
"context": "Prima task del progetto: si cattura l'idea e la si organizza in una scheda strutturata.",
|
|
20
|
+
"questions": [
|
|
21
|
+
"Qual è il nome del progetto (anche provvisorio)?",
|
|
22
|
+
"In massimo 2 frasi: cosa fa il prodotto e per chi?",
|
|
23
|
+
"Qual è il problema specifico che risolve? Per chi è un problema?",
|
|
24
|
+
"Come lo risolve il tuo prodotto?",
|
|
25
|
+
"Chi è l'utente target primario? C'è un utente secondario?",
|
|
26
|
+
"Su quale piattaforma gira? (web, mobile, desktop, API...)",
|
|
27
|
+
"Che modello di business hai in mente? (freemium, SaaS, one-shot, no-profit...)",
|
|
28
|
+
"Hai vincoli noti? (tempo, budget, competenze mancanti, vincoli legali)"
|
|
29
|
+
],
|
|
30
|
+
"output_schema": {
|
|
31
|
+
"sections": [
|
|
32
|
+
"Nome progetto",
|
|
33
|
+
"Elevator pitch",
|
|
34
|
+
"Problema",
|
|
35
|
+
"Soluzione proposta",
|
|
36
|
+
"Target utente",
|
|
37
|
+
"Piattaforma",
|
|
38
|
+
"Modello di business",
|
|
39
|
+
"Vincoli noti"
|
|
40
|
+
],
|
|
41
|
+
"format": "markdown",
|
|
42
|
+
"length": "1-2 pagine"
|
|
43
|
+
},
|
|
44
|
+
"dod": "Problema, soluzione, target e vincoli documentati. Una persona esterna può capire l'idea leggendo solo questa pagina."
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "0.2",
|
|
48
|
+
"title": "Analizzare alternative esistenti e differenziante",
|
|
49
|
+
"is_gate": false,
|
|
50
|
+
"model": "claude-sonnet-4-6",
|
|
51
|
+
"skill": "ricerca",
|
|
52
|
+
"session_hint": "compact",
|
|
53
|
+
"depends_on": [
|
|
54
|
+
"0.1"
|
|
55
|
+
],
|
|
56
|
+
"context": "Verifica cosa esiste già sul mercato e individua il differenziante.",
|
|
57
|
+
"questions": [
|
|
58
|
+
"Conosci già dei competitor diretti o indiretti? Elencali.",
|
|
59
|
+
"Cosa fanno bene i competitor che hai in mente?",
|
|
60
|
+
"Cosa manca a queste soluzioni esistenti?",
|
|
61
|
+
"Cosa offri tu che gli altri non offrono, o cosa fai diversamente?",
|
|
62
|
+
"Il tuo differenziante è difendibile nel tempo o facilmente replicabile?"
|
|
63
|
+
],
|
|
64
|
+
"output_schema": {
|
|
65
|
+
"sections": [
|
|
66
|
+
"Tabella comparative alternative (nome, URL, cosa fa bene, cosa manca)",
|
|
67
|
+
"Differenziante",
|
|
68
|
+
"Valutazione difendibilità"
|
|
69
|
+
],
|
|
70
|
+
"format": "markdown con tabella",
|
|
71
|
+
"length": "1 pagina"
|
|
72
|
+
},
|
|
73
|
+
"dod": "Almeno 3 alternative analizzate. Differenziante esplicitato e motivato."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "0.3",
|
|
77
|
+
"title": "Stimare complessità tecnica e decidere GO / NO-GO",
|
|
78
|
+
"is_gate": false,
|
|
79
|
+
"model": "claude-sonnet-4-6",
|
|
80
|
+
"skill": "analisi",
|
|
81
|
+
"session_hint": "continue",
|
|
82
|
+
"depends_on": [
|
|
83
|
+
"0.1",
|
|
84
|
+
"0.2"
|
|
85
|
+
],
|
|
86
|
+
"context": "Stima ad alto livello della complessità per decidere se procedere.",
|
|
87
|
+
"questions": [
|
|
88
|
+
"Hai già costruito qualcosa di simile tecnicamente?",
|
|
89
|
+
"Ci sono integrazioni esterne critiche (pagamenti, API terze parti, hardware)?",
|
|
90
|
+
"Hai già le competenze per costruirlo o ci sono gap da colmare?",
|
|
91
|
+
"Quanto tempo puoi dedicarci? (ore/settimana)",
|
|
92
|
+
"Hai un budget per servizi esterni o collaboratori?",
|
|
93
|
+
"Qual è la tua decisione istintiva: GO, PAUSA o NO-GO? Perché?"
|
|
94
|
+
],
|
|
95
|
+
"output_schema": {
|
|
96
|
+
"sections": [
|
|
97
|
+
"Complessità stimata (bassa/media/alta) + motivazione",
|
|
98
|
+
"Principali sfide tecniche",
|
|
99
|
+
"Tempo approssimativo MVP",
|
|
100
|
+
"Decisione GO/PAUSA/NO-GO + motivazione"
|
|
101
|
+
],
|
|
102
|
+
"format": "markdown",
|
|
103
|
+
"length": "mezza pagina"
|
|
104
|
+
},
|
|
105
|
+
"dod": "Decisione presa e motivata. Se GO → fase 1. Se PAUSA → documentare cosa manca. Se NO-GO → motivo documentato."
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"id": "0.4",
|
|
109
|
+
"title": "Gate: validare fase Ideazione e Validazione",
|
|
110
|
+
"is_gate": true,
|
|
111
|
+
"model": "claude-haiku-4-5-20251001",
|
|
112
|
+
"skill": null,
|
|
113
|
+
"session_hint": "continue",
|
|
114
|
+
"depends_on": [
|
|
115
|
+
"0.1",
|
|
116
|
+
"0.2",
|
|
117
|
+
"0.3"
|
|
118
|
+
],
|
|
119
|
+
"context": "Checklist di chiusura fase 0. Verifica coerenza e completezza prima di procedere.",
|
|
120
|
+
"questions": [],
|
|
121
|
+
"checklist": [
|
|
122
|
+
"L'idea è documentata e strutturata (problema, soluzione, target, vincoli)?",
|
|
123
|
+
"L'analisi alternative è stata fatta con almeno 3 competitor?",
|
|
124
|
+
"C'è una decisione GO/NO-GO esplicita e motivata?",
|
|
125
|
+
"Coerenza tra i documenti verificata?"
|
|
126
|
+
],
|
|
127
|
+
"output_schema": {
|
|
128
|
+
"sections": [
|
|
129
|
+
"Checklist compilata",
|
|
130
|
+
"Note eventuali",
|
|
131
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
132
|
+
],
|
|
133
|
+
"format": "markdown con checklist",
|
|
134
|
+
"length": "mezza pagina"
|
|
135
|
+
},
|
|
136
|
+
"dod": "Fase 0 completata. Si può procedere alla definizione dettagliata."
|
|
137
|
+
}
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": 1,
|
|
142
|
+
"name": "Definizione e Fattibilità",
|
|
143
|
+
"goal": "Definire il progetto in modo completo e prendere la decisione GO definitiva",
|
|
144
|
+
"tasks": [
|
|
145
|
+
{
|
|
146
|
+
"id": "1.1",
|
|
147
|
+
"title": "Scrivere descrizione completa del progetto",
|
|
148
|
+
"is_gate": false,
|
|
149
|
+
"model": "claude-sonnet-4-6",
|
|
150
|
+
"skill": null,
|
|
151
|
+
"session_hint": "continue",
|
|
152
|
+
"depends_on": [
|
|
153
|
+
"0.1"
|
|
154
|
+
],
|
|
155
|
+
"context": "Si espande la scheda della fase 0 in una descrizione completa e definitiva del progetto.",
|
|
156
|
+
"questions": [
|
|
157
|
+
"Confermi il nome del progetto o vuoi cambiarlo?",
|
|
158
|
+
"Dove vuoi arrivare con questo prodotto a lungo termine? (vision a 1-2 anni)",
|
|
159
|
+
"Descrivimi il flusso tipico dell'utente: cosa fa dal momento in cui apre l'app?",
|
|
160
|
+
"In che contesto della giornata l'utente usa il prodotto?",
|
|
161
|
+
"Quali sono i 3 benefici principali per cui un utente dovrebbe sceglierlo rispetto alle alternative?"
|
|
162
|
+
],
|
|
163
|
+
"output_schema": {
|
|
164
|
+
"sections": [
|
|
165
|
+
"Nome definitivo",
|
|
166
|
+
"Vision",
|
|
167
|
+
"Descrizione funzionale",
|
|
168
|
+
"Contesto di utilizzo",
|
|
169
|
+
"Benefici principali"
|
|
170
|
+
],
|
|
171
|
+
"format": "markdown",
|
|
172
|
+
"length": "1-2 pagine"
|
|
173
|
+
},
|
|
174
|
+
"dod": "Una persona esterna può capire cosa fa, per chi e perché leggendo solo questa pagina."
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"id": "1.2",
|
|
178
|
+
"title": "Definire scope MVP: feature core e out-of-scope",
|
|
179
|
+
"is_gate": false,
|
|
180
|
+
"model": "claude-sonnet-4-6",
|
|
181
|
+
"skill": null,
|
|
182
|
+
"session_hint": "continue",
|
|
183
|
+
"depends_on": [
|
|
184
|
+
"1.1",
|
|
185
|
+
"0.1"
|
|
186
|
+
],
|
|
187
|
+
"context": "Definizione del perimetro MVP: cosa entra nel primo rilascio e cosa no.",
|
|
188
|
+
"questions": [
|
|
189
|
+
"Se dovessi descrivere il prodotto con una sola funzionalità, quale sarebbe?",
|
|
190
|
+
"Elenca tutte le feature che hai in mente, anche quelle future — le selezioniamo insieme.",
|
|
191
|
+
"Ci sono feature che desideri ma che sai già essere 'nice to have'?",
|
|
192
|
+
"Quale è la funzionalità più rischiosa da implementare tecnicamente?"
|
|
193
|
+
],
|
|
194
|
+
"output_schema": {
|
|
195
|
+
"sections": [
|
|
196
|
+
"Feature core (tabella: titolo | descrizione | priorità must/should | sizing S/M/L)",
|
|
197
|
+
"Out-of-scope esplicito (tabella: titolo | motivo esclusione | fase futura prevista)"
|
|
198
|
+
],
|
|
199
|
+
"format": "markdown con tabelle",
|
|
200
|
+
"length": "1 pagina"
|
|
201
|
+
},
|
|
202
|
+
"dod": "Feature core verificate come minimo necessario. Nessuna feature ambigua senza classificazione."
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "1.3",
|
|
206
|
+
"title": "Scegliere stack tecnologico e definire criteri di successo",
|
|
207
|
+
"is_gate": false,
|
|
208
|
+
"model": "claude-sonnet-4-6",
|
|
209
|
+
"skill": null,
|
|
210
|
+
"session_hint": "continue",
|
|
211
|
+
"depends_on": [
|
|
212
|
+
"1.1",
|
|
213
|
+
"1.2"
|
|
214
|
+
],
|
|
215
|
+
"context": "Conferma dello stack e definizione di metriche concrete di successo.",
|
|
216
|
+
"questions": [
|
|
217
|
+
"Lo stack default (Next.js 15 + Supabase + Vercel) è adeguato per questo progetto o servono eccezioni?",
|
|
218
|
+
"Ci sono servizi esterni obbligatori non nello stack default? (es. pagamenti, SMS, mappe)",
|
|
219
|
+
"Come misuri il successo di questo prodotto a 3 mesi dal lancio?",
|
|
220
|
+
"Hai target numerici in mente? (es. utenti registrati, revenue, conversioni)",
|
|
221
|
+
"Come raccoglierai queste metriche? (analytics esistente, survey, CRM)"
|
|
222
|
+
],
|
|
223
|
+
"output_schema": {
|
|
224
|
+
"sections": [
|
|
225
|
+
"Stack tecnologico (tabella: layer | tecnologia | note/eccezioni)",
|
|
226
|
+
"KPI di successo (tabella: metrica | target | metodo di raccolta | scadenza)"
|
|
227
|
+
],
|
|
228
|
+
"format": "markdown con tabelle",
|
|
229
|
+
"length": "1 pagina"
|
|
230
|
+
},
|
|
231
|
+
"dod": "Stack confermato con motivazioni. Almeno 3 KPI con target numerico e metodo di raccolta."
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "1.4",
|
|
235
|
+
"title": "Validare dipendenze tecniche e stimare costi operativi",
|
|
236
|
+
"is_gate": false,
|
|
237
|
+
"model": "claude-sonnet-4-6",
|
|
238
|
+
"skill": "ricerca",
|
|
239
|
+
"session_hint": "compact",
|
|
240
|
+
"depends_on": [
|
|
241
|
+
"1.3"
|
|
242
|
+
],
|
|
243
|
+
"context": "Verifica che le tecnologie scelte funzionino e stima il costo di gestione.",
|
|
244
|
+
"questions": [
|
|
245
|
+
"Hai già account attivi sui servizi nello stack (Supabase, Vercel, Stripe...)?",
|
|
246
|
+
"Ci sono API di terze parti che richiedono approvazione o contratto?",
|
|
247
|
+
"Hai già verificato i limiti dei piani free/base dei servizi principali?",
|
|
248
|
+
"Hai un budget mensile massimo per i costi operativi dell'MVP?"
|
|
249
|
+
],
|
|
250
|
+
"output_schema": {
|
|
251
|
+
"sections": [
|
|
252
|
+
"Checklist dipendenze (servizio | stato: OK/da verificare/bloccante | note)",
|
|
253
|
+
"Stima costi MVP/mese",
|
|
254
|
+
"Stima costi a regime (con crescita utenti)"
|
|
255
|
+
],
|
|
256
|
+
"format": "markdown con tabelle",
|
|
257
|
+
"length": "1 pagina"
|
|
258
|
+
},
|
|
259
|
+
"dod": "Nessuna dipendenza critica non validata. Costi stimati e sostenibili."
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"id": "1.5",
|
|
263
|
+
"title": "Analizzare rischi, competenze necessarie e vincoli legali",
|
|
264
|
+
"is_gate": false,
|
|
265
|
+
"model": "claude-sonnet-4-6",
|
|
266
|
+
"skill": "analisi",
|
|
267
|
+
"session_hint": "compact",
|
|
268
|
+
"depends_on": [
|
|
269
|
+
"1.2",
|
|
270
|
+
"1.3",
|
|
271
|
+
"1.4"
|
|
272
|
+
],
|
|
273
|
+
"context": "Assessment di fattibilità: rischi, competenze necessarie e vincoli legali.",
|
|
274
|
+
"questions": [
|
|
275
|
+
"Qual è il rischio che ti preoccupa di più per questo progetto?",
|
|
276
|
+
"Ci sono competenze tecniche che ti mancano? (es. mobile, ML, infra)",
|
|
277
|
+
"Il prodotto raccoglie dati personali degli utenti?",
|
|
278
|
+
"Prevedi pagamenti o gestione di dati finanziari?",
|
|
279
|
+
"Ci sono vincoli normativi specifici del settore? (sanitario, finanziario, minori)"
|
|
280
|
+
],
|
|
281
|
+
"output_schema": {
|
|
282
|
+
"sections": [
|
|
283
|
+
"Matrice rischi (rischio | probabilità A/M/B | impatto A/M/B | mitigazione)",
|
|
284
|
+
"Tabella competenze (competenza | stato: ho/imparo/esternalizzo)",
|
|
285
|
+
"Checklist vincoli legali (privacy policy, cookie, ToS, GDPR, licenze)"
|
|
286
|
+
],
|
|
287
|
+
"format": "markdown con tabelle",
|
|
288
|
+
"length": "1-2 pagine"
|
|
289
|
+
},
|
|
290
|
+
"dod": "Rischi con mitigazione. Gap competenze con piano d'azione. Vincoli legali mappati."
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "1.6",
|
|
294
|
+
"title": "Gate: GO / NO-GO definitivo",
|
|
295
|
+
"is_gate": true,
|
|
296
|
+
"model": "claude-haiku-4-5-20251001",
|
|
297
|
+
"skill": null,
|
|
298
|
+
"session_hint": "continue",
|
|
299
|
+
"depends_on": [
|
|
300
|
+
"0.1",
|
|
301
|
+
"0.2",
|
|
302
|
+
"0.3",
|
|
303
|
+
"1.1",
|
|
304
|
+
"1.2",
|
|
305
|
+
"1.3",
|
|
306
|
+
"1.4",
|
|
307
|
+
"1.5"
|
|
308
|
+
],
|
|
309
|
+
"context": "Gate finale prima di investire in pianificazione, design e sviluppo.",
|
|
310
|
+
"questions": [],
|
|
311
|
+
"checklist": [
|
|
312
|
+
"Progetto descritto in modo completo e chiaro?",
|
|
313
|
+
"Scope MVP definito e realistico?",
|
|
314
|
+
"Stack confermato e dipendenze validate?",
|
|
315
|
+
"Costi sostenibili?",
|
|
316
|
+
"Rischi accettabili e mitigabili?",
|
|
317
|
+
"Competenze disponibili (o acquisibili)?",
|
|
318
|
+
"Vincoli legali gestibili?",
|
|
319
|
+
"KPI di successo definiti?"
|
|
320
|
+
],
|
|
321
|
+
"output_schema": {
|
|
322
|
+
"sections": [
|
|
323
|
+
"Checklist compilata",
|
|
324
|
+
"Decisione GO/PAUSA/NO-GO",
|
|
325
|
+
"Motivazione"
|
|
326
|
+
],
|
|
327
|
+
"format": "markdown",
|
|
328
|
+
"length": "mezza pagina"
|
|
329
|
+
},
|
|
330
|
+
"dod": "Decisione documentata. Se GO → pianificazione. Se PAUSA → documentare lacune. Se NO-GO → archiviare con motivazione."
|
|
331
|
+
}
|
|
332
|
+
]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"id": 2,
|
|
336
|
+
"name": "Pianificazione",
|
|
337
|
+
"goal": "Tradurre il GO in un piano di lavoro concreto con milestone e dipendenze",
|
|
338
|
+
"tasks": [
|
|
339
|
+
{
|
|
340
|
+
"id": "2.1",
|
|
341
|
+
"title": "Definire milestone e scomporre il lavoro in task",
|
|
342
|
+
"is_gate": false,
|
|
343
|
+
"model": "claude-sonnet-4-6",
|
|
344
|
+
"skill": "pianificazione",
|
|
345
|
+
"session_hint": "compact",
|
|
346
|
+
"depends_on": [
|
|
347
|
+
"1.2",
|
|
348
|
+
"1.6"
|
|
349
|
+
],
|
|
350
|
+
"context": "Si passa da 'cosa fare' a 'come e quando': milestone, scomposizione in task, piano di lavoro.",
|
|
351
|
+
"questions": [
|
|
352
|
+
"Quando vuoi avere il primo demo funzionante (anche grezzo)?",
|
|
353
|
+
"Quando vuoi rilasciare la beta a utenti reali?",
|
|
354
|
+
"Hai una data target per il lancio pubblico?",
|
|
355
|
+
"Stai lavorando da solo o hai collaboratori?",
|
|
356
|
+
"Quante ore/settimana puoi dedicare allo sviluppo?"
|
|
357
|
+
],
|
|
358
|
+
"output_schema": {
|
|
359
|
+
"sections": [
|
|
360
|
+
"Milestone (riepilogo: titolo | data target | feature incluse | file totali | deliverable)",
|
|
361
|
+
"Per ogni milestone: albero con feature, file path completi, dipendenze file-level, criteri di accettazione verificabili",
|
|
362
|
+
"Note su complessità e rischi per le feature più impegnative"
|
|
363
|
+
],
|
|
364
|
+
"format": "markdown con tabelle e alberi",
|
|
365
|
+
"length": "2-3 pagine"
|
|
366
|
+
},
|
|
367
|
+
"dod": "Milestone con date. Ogni feature ha file path completi e criteri di accettazione verificabili. Albero dipendenze file-level per il critical path. Piano realistico per 1-2 persone."
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
"id": "2.2",
|
|
371
|
+
"title": "Mappare dipendenze critiche tra task",
|
|
372
|
+
"is_gate": false,
|
|
373
|
+
"model": "claude-sonnet-4-6",
|
|
374
|
+
"skill": "pianificazione",
|
|
375
|
+
"session_hint": "continue",
|
|
376
|
+
"depends_on": [
|
|
377
|
+
"2.1",
|
|
378
|
+
"1.2"
|
|
379
|
+
],
|
|
380
|
+
"context": "Documentare le dipendenze bloccanti per evitare blocchi e falsi start.",
|
|
381
|
+
"questions": [
|
|
382
|
+
"C'è qualcosa che non puoi iniziare senza un'approvazione esterna o un accesso da richiedere?",
|
|
383
|
+
"Ci sono decisioni di design o architettura che bloccano più feature in parallelo?",
|
|
384
|
+
"Ci sono task che potresti fare in parallelo se avessi più risorse?"
|
|
385
|
+
],
|
|
386
|
+
"output_schema": {
|
|
387
|
+
"sections": [
|
|
388
|
+
"Dipendenze bloccanti con file coinvolti (formato: file A → blocca → file B — motivo)",
|
|
389
|
+
"Albero dipendenze file-level per il critical path",
|
|
390
|
+
"Percorsi paralleli (feature e file lavorabili in contemporanea)",
|
|
391
|
+
"Dipendenze esterne (approvazioni, accessi, terzi)"
|
|
392
|
+
],
|
|
393
|
+
"format": "markdown con alberi dipendenze",
|
|
394
|
+
"length": "1 pagina"
|
|
395
|
+
},
|
|
396
|
+
"dod": "Dipendenze critiche documentate a livello file. Albero dipendenze del critical path. Nessuna dipendenza bloccante nascosta."
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"id": "2.3",
|
|
400
|
+
"title": "Gate: validare fase Pianificazione",
|
|
401
|
+
"is_gate": true,
|
|
402
|
+
"model": "claude-haiku-4-5-20251001",
|
|
403
|
+
"skill": null,
|
|
404
|
+
"session_hint": "continue",
|
|
405
|
+
"depends_on": [
|
|
406
|
+
"2.1",
|
|
407
|
+
"2.2"
|
|
408
|
+
],
|
|
409
|
+
"context": "Checklist di chiusura fase 2.",
|
|
410
|
+
"questions": [],
|
|
411
|
+
"checklist": [
|
|
412
|
+
"Milestone definite con date target?",
|
|
413
|
+
"Lavoro scomposto in task gestibili?",
|
|
414
|
+
"Dipendenze critiche mappate?",
|
|
415
|
+
"Piano realistico per 1-2 persone?",
|
|
416
|
+
"Nessun blocco esterno non risolto?"
|
|
417
|
+
],
|
|
418
|
+
"output_schema": {
|
|
419
|
+
"sections": [
|
|
420
|
+
"Checklist compilata",
|
|
421
|
+
"Note",
|
|
422
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
423
|
+
],
|
|
424
|
+
"format": "markdown",
|
|
425
|
+
"length": "mezza pagina"
|
|
426
|
+
},
|
|
427
|
+
"dod": "Piano validato. Si può iniziare il design."
|
|
428
|
+
}
|
|
429
|
+
]
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
"id": 3,
|
|
433
|
+
"name": "Design",
|
|
434
|
+
"goal": "Tradurre le feature in flussi utente e interfacce concrete",
|
|
435
|
+
"tasks": [
|
|
436
|
+
{
|
|
437
|
+
"id": "3.1",
|
|
438
|
+
"title": "Definire flussi utente e wireframe principali",
|
|
439
|
+
"is_gate": false,
|
|
440
|
+
"model": "claude-sonnet-4-6",
|
|
441
|
+
"skill": "design",
|
|
442
|
+
"session_hint": "compact",
|
|
443
|
+
"depends_on": [
|
|
444
|
+
"1.2",
|
|
445
|
+
"1.1"
|
|
446
|
+
],
|
|
447
|
+
"context": "Si traduce 'cosa deve fare il prodotto' in 'come lo usa l'utente'.",
|
|
448
|
+
"questions": [
|
|
449
|
+
"Hai già uno sketch o bozza di come immagini l'interfaccia? (anche carta e foto)",
|
|
450
|
+
"Qual è la prima cosa che un nuovo utente vede aprendo l'app?",
|
|
451
|
+
"Descrivimi il flusso per completare l'azione più importante del prodotto.",
|
|
452
|
+
"Ci sono schermate di impostazioni o profilo previste?",
|
|
453
|
+
"Come gestisci l'onboarding? (registrazione, tutorial, empty state)"
|
|
454
|
+
],
|
|
455
|
+
"output_schema": {
|
|
456
|
+
"sections": [
|
|
457
|
+
"Flussi utente per ogni feature core (sequenza schermate/azioni)",
|
|
458
|
+
"Lista schermate principali da wireframare",
|
|
459
|
+
"Link/embed wireframe (Figma, Excalidraw, foto)"
|
|
460
|
+
],
|
|
461
|
+
"format": "markdown + link esterni",
|
|
462
|
+
"length": "1-2 pagine"
|
|
463
|
+
},
|
|
464
|
+
"dod": "Ogni feature core ha un flusso utente. Schermate principali wireframate. Un dev può capire la navigazione."
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"id": "3.2",
|
|
468
|
+
"title": "Definire design system e produrre mockup/prototipo",
|
|
469
|
+
"is_gate": false,
|
|
470
|
+
"model": "claude-sonnet-4-6",
|
|
471
|
+
"skill": "design",
|
|
472
|
+
"session_hint": "compact",
|
|
473
|
+
"depends_on": [
|
|
474
|
+
"3.1"
|
|
475
|
+
],
|
|
476
|
+
"context": "Identità visiva del prodotto e mockup hi-fi per guidare l'implementazione.",
|
|
477
|
+
"questions": [
|
|
478
|
+
"Hai un riferimento visivo o brand esistente a cui ispirarsi?",
|
|
479
|
+
"Colori: hai già in mente una palette o vuoi che la proponga?",
|
|
480
|
+
"Usi un UI kit predefinito? (shadcn/ui è il default, confermi?)",
|
|
481
|
+
"Hai già un logo o serve crearlo?",
|
|
482
|
+
"Preferisci un look minimal/clean o più ricco/branded?"
|
|
483
|
+
],
|
|
484
|
+
"output_schema": {
|
|
485
|
+
"sections": [
|
|
486
|
+
"Design system (palette, tipografia, componenti base, personalizzazioni UI kit)",
|
|
487
|
+
"Link mockup hi-fi (Figma)",
|
|
488
|
+
"Link prototipo cliccabile (se disponibile)"
|
|
489
|
+
],
|
|
490
|
+
"format": "markdown + link Figma",
|
|
491
|
+
"length": "1 pagina"
|
|
492
|
+
},
|
|
493
|
+
"dod": "Design system definito e applicato. Mockup coerenti coi flussi utente. Un dev può implementare l'UI dai mockup."
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
"id": "3.3",
|
|
497
|
+
"title": "Gate: validare fase Design",
|
|
498
|
+
"is_gate": true,
|
|
499
|
+
"model": "claude-haiku-4-5-20251001",
|
|
500
|
+
"skill": null,
|
|
501
|
+
"session_hint": "continue",
|
|
502
|
+
"depends_on": [
|
|
503
|
+
"3.1",
|
|
504
|
+
"3.2"
|
|
505
|
+
],
|
|
506
|
+
"context": "Checklist di chiusura fase 3.",
|
|
507
|
+
"questions": [],
|
|
508
|
+
"checklist": [
|
|
509
|
+
"Ogni feature core ha un flusso utente documentato?",
|
|
510
|
+
"Schermate principali wireframate/mockuppate?",
|
|
511
|
+
"Design system definito (colori, tipografia, componenti)?",
|
|
512
|
+
"Mockup coerenti con lo scope MVP (1.2)?",
|
|
513
|
+
"Un dev potrebbe implementare l'UI da questi artefatti?"
|
|
514
|
+
],
|
|
515
|
+
"output_schema": {
|
|
516
|
+
"sections": [
|
|
517
|
+
"Checklist compilata",
|
|
518
|
+
"Note",
|
|
519
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
520
|
+
],
|
|
521
|
+
"format": "markdown",
|
|
522
|
+
"length": "mezza pagina"
|
|
523
|
+
},
|
|
524
|
+
"dod": "Design validato. Pronto per architettura e implementazione."
|
|
525
|
+
}
|
|
526
|
+
]
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"id": 4,
|
|
530
|
+
"name": "Architettura",
|
|
531
|
+
"goal": "Definire come è fatto il sistema tecnicamente e produrre il Blueprint vivente",
|
|
532
|
+
"tasks": [
|
|
533
|
+
{
|
|
534
|
+
"id": "4.1",
|
|
535
|
+
"title": "Definire architettura sistema, modello dati e API",
|
|
536
|
+
"is_gate": false,
|
|
537
|
+
"model": "claude-opus-4-6",
|
|
538
|
+
"skill": "architettura",
|
|
539
|
+
"session_hint": "new_session",
|
|
540
|
+
"depends_on": [
|
|
541
|
+
"1.2",
|
|
542
|
+
"1.3",
|
|
543
|
+
"3.1"
|
|
544
|
+
],
|
|
545
|
+
"context": "Task tecnica centrale: architettura sistema, modello dati, endpoint API.",
|
|
546
|
+
"questions": [
|
|
547
|
+
"L'architettura standard (Next.js + Supabase + Vercel) è sufficiente o serve qualcosa di diverso?",
|
|
548
|
+
"Ci sono operazioni background/async previste? (job, webhook, cron)",
|
|
549
|
+
"Quante entità principali ha il database? Elencale con una riga di descrizione.",
|
|
550
|
+
"Ci sono relazioni molti-a-molti tra entità?",
|
|
551
|
+
"Serve multi-tenancy? (più organizzazioni/team isolati)",
|
|
552
|
+
"Quali endpoint API sono necessari oltre alle Server Actions di Next.js?",
|
|
553
|
+
"Ci sono ruoli utente diversi con permessi differenti?"
|
|
554
|
+
],
|
|
555
|
+
"output_schema": {
|
|
556
|
+
"sections": [
|
|
557
|
+
"Architettura ad alto livello (diagramma testuale o Mermaid)",
|
|
558
|
+
"Pattern architetturale scelto + motivazione",
|
|
559
|
+
"Schema DB: tabelle (nome | campi | relazioni | RLS policy)",
|
|
560
|
+
"Endpoint API (metodo | path | input | output | auth)"
|
|
561
|
+
],
|
|
562
|
+
"format": "markdown con tabelle e diagrammi",
|
|
563
|
+
"length": "2-3 pagine"
|
|
564
|
+
},
|
|
565
|
+
"dod": "Un dev (o agente AI) può capire come è fatto il sistema leggendo questa pagina. Nessuna decisione architetturale ambigua."
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"id": "4.2",
|
|
569
|
+
"title": "Definire struttura progetto, convenzioni, permessi e tracking plan",
|
|
570
|
+
"is_gate": false,
|
|
571
|
+
"model": "claude-sonnet-4-6",
|
|
572
|
+
"skill": "architettura",
|
|
573
|
+
"session_hint": "compact",
|
|
574
|
+
"depends_on": [
|
|
575
|
+
"4.1",
|
|
576
|
+
"1.3"
|
|
577
|
+
],
|
|
578
|
+
"context": "Regole operative per lo sviluppo: struttura cartelle, convenzioni, permessi, tracking.",
|
|
579
|
+
"questions": [
|
|
580
|
+
"La struttura cartelle standard (src/app, src/components, src/lib, src/hooks, src/types) va bene?",
|
|
581
|
+
"Ci sono pattern custom di state management o fetch dati?",
|
|
582
|
+
"Quali eventi analytics sono critici da tracciare dal giorno 1?",
|
|
583
|
+
"Hai ruoli utente oltre al default (admin/user)?"
|
|
584
|
+
],
|
|
585
|
+
"output_schema": {
|
|
586
|
+
"sections": [
|
|
587
|
+
"Albero cartelle progetto",
|
|
588
|
+
"Convenzioni (naming, patterns, linting)",
|
|
589
|
+
"Matrice ruoli e permessi",
|
|
590
|
+
"Tracking plan (evento | proprietà | trigger)"
|
|
591
|
+
],
|
|
592
|
+
"format": "markdown",
|
|
593
|
+
"length": "1-2 pagine"
|
|
594
|
+
},
|
|
595
|
+
"dod": "Un dev sa dove mettere ogni file, come nominarlo, quali permessi applicare e quali eventi tracciare."
|
|
596
|
+
},
|
|
597
|
+
{
|
|
598
|
+
"id": "4.3",
|
|
599
|
+
"title": "Redigere il Blueprint vivente (XML)",
|
|
600
|
+
"is_gate": false,
|
|
601
|
+
"model": "claude-opus-4-6",
|
|
602
|
+
"skill": "blueprint",
|
|
603
|
+
"session_hint": "new_session",
|
|
604
|
+
"depends_on": [
|
|
605
|
+
"4.1",
|
|
606
|
+
"4.2",
|
|
607
|
+
"1.1",
|
|
608
|
+
"1.3",
|
|
609
|
+
"3.1"
|
|
610
|
+
],
|
|
611
|
+
"context": "Si assembla il Blueprint XML a partire dagli output di 4.1 e 4.2. Verrà usato in ogni sessione AI della fase 5.",
|
|
612
|
+
"questions": [],
|
|
613
|
+
"output_schema": {
|
|
614
|
+
"sections": [
|
|
615
|
+
"ProjectContext",
|
|
616
|
+
"FolderStructure",
|
|
617
|
+
"DatabaseSchema",
|
|
618
|
+
"StateManagement",
|
|
619
|
+
"ComponentMap",
|
|
620
|
+
"APIContracts",
|
|
621
|
+
"Conventions",
|
|
622
|
+
"CurrentProgress"
|
|
623
|
+
],
|
|
624
|
+
"format": "xml",
|
|
625
|
+
"file": "docs/BLUEPRINT.xml"
|
|
626
|
+
},
|
|
627
|
+
"dod": "Tutte le sezioni compilate. Nessun placeholder generico. Coerenza con 4.1 e 4.2 verificata."
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"id": "4.4",
|
|
631
|
+
"title": "Gate: validare fase Architettura",
|
|
632
|
+
"is_gate": true,
|
|
633
|
+
"model": "claude-haiku-4-5-20251001",
|
|
634
|
+
"skill": null,
|
|
635
|
+
"session_hint": "continue",
|
|
636
|
+
"depends_on": [
|
|
637
|
+
"4.1",
|
|
638
|
+
"4.2",
|
|
639
|
+
"4.3"
|
|
640
|
+
],
|
|
641
|
+
"context": "Checklist di chiusura fase 4.",
|
|
642
|
+
"questions": [],
|
|
643
|
+
"checklist": [
|
|
644
|
+
"Architettura sistema chiara (diagramma + pattern)?",
|
|
645
|
+
"Modello dati completo (tabelle, relazioni, RLS)?",
|
|
646
|
+
"Endpoint API definiti con input/output?",
|
|
647
|
+
"Struttura cartelle e convenzioni documentate?",
|
|
648
|
+
"Ruoli/permessi definiti?",
|
|
649
|
+
"Tracking plan pronto?",
|
|
650
|
+
"Blueprint XML compilato senza placeholder generici?",
|
|
651
|
+
"Coerenza Blueprint ↔ documentazione fasi precedenti?"
|
|
652
|
+
],
|
|
653
|
+
"output_schema": {
|
|
654
|
+
"sections": [
|
|
655
|
+
"Checklist compilata",
|
|
656
|
+
"Note",
|
|
657
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
658
|
+
],
|
|
659
|
+
"format": "markdown",
|
|
660
|
+
"length": "mezza pagina"
|
|
661
|
+
},
|
|
662
|
+
"dod": "Architettura e Blueprint validati. Un agente AI può iniziare l'implementazione."
|
|
663
|
+
}
|
|
664
|
+
]
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"id": 5,
|
|
668
|
+
"name": "Implementazione MVP",
|
|
669
|
+
"goal": "Costruire il prodotto feature by feature con sessioni AI autonome",
|
|
670
|
+
"tasks": [
|
|
671
|
+
{
|
|
672
|
+
"id": "5.1",
|
|
673
|
+
"title": "Inizializzare repo, ambiente e scaffolding dal Blueprint",
|
|
674
|
+
"is_gate": false,
|
|
675
|
+
"model": "claude-sonnet-4-6",
|
|
676
|
+
"skill": "implementazione",
|
|
677
|
+
"session_hint": "new_session",
|
|
678
|
+
"depends_on": [
|
|
679
|
+
"4.3"
|
|
680
|
+
],
|
|
681
|
+
"context": "Prima sessione operativa: si crea il progetto dal Blueprint. Nessuna feature ancora, solo infrastruttura.",
|
|
682
|
+
"questions": [
|
|
683
|
+
"Il nome del repo GitHub è confermato?",
|
|
684
|
+
"Repository pubblico o privato?",
|
|
685
|
+
"Inizializziamo anche il progetto Supabase adesso?",
|
|
686
|
+
"Usi Vercel con deploy automatico da main branch?"
|
|
687
|
+
],
|
|
688
|
+
"output_schema": {
|
|
689
|
+
"sections": [
|
|
690
|
+
"Micro-plan scaffolding",
|
|
691
|
+
"Link repo GitHub",
|
|
692
|
+
"Checklist scaffolding (struttura cartelle, dipendenze, linting, DB schema, auth base)",
|
|
693
|
+
"Test base funzionanti (auth, DB schema)",
|
|
694
|
+
"Risultati spec compliance review",
|
|
695
|
+
"Risultati code quality review",
|
|
696
|
+
"Conferma: app gira in locale"
|
|
697
|
+
],
|
|
698
|
+
"format": "markdown",
|
|
699
|
+
"length": "1 pagina"
|
|
700
|
+
},
|
|
701
|
+
"dod": "npm run dev funziona. Struttura conforme al Blueprint. DB schema applicato. Test base passano. Spec compliance e code quality review superate."
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
"id": "5.2",
|
|
705
|
+
"title": "Implementare feature core — sessione AI (una per feature)",
|
|
706
|
+
"is_gate": false,
|
|
707
|
+
"model": "claude-sonnet-4-6",
|
|
708
|
+
"skill": "implementazione",
|
|
709
|
+
"session_hint": "new_session",
|
|
710
|
+
"depends_on": [
|
|
711
|
+
"5.1",
|
|
712
|
+
"4.3"
|
|
713
|
+
],
|
|
714
|
+
"context": "Task ripetibile: una sessione AI per ogni feature core. Duplicare per ogni feature da 1.2.",
|
|
715
|
+
"_note": "Questa task va duplicata per ogni feature. Il titolo diventa '5.2a — [nome feature]', '5.2b — [nome feature]', ecc.",
|
|
716
|
+
"questions": [
|
|
717
|
+
"Quale feature stiamo implementando in questa sessione?",
|
|
718
|
+
"Il Blueprint è aggiornato con tutte le modifiche delle sessioni precedenti?",
|
|
719
|
+
"Ci sono dettagli di UI non presenti nel mockup che devo chiarire?",
|
|
720
|
+
"Ci sono edge case o gestioni errore particolari da considerare?"
|
|
721
|
+
],
|
|
722
|
+
"output_schema": {
|
|
723
|
+
"sections": [
|
|
724
|
+
"Micro-plan generato (file, test, step)",
|
|
725
|
+
"Conferma: feature funzionante con test",
|
|
726
|
+
"Lista file creati/modificati",
|
|
727
|
+
"Risultati spec compliance review",
|
|
728
|
+
"Risultati code quality review",
|
|
729
|
+
"Note su deviazioni dal Blueprint",
|
|
730
|
+
"BLUEPRINT.xml aggiornato (sezione CurrentProgress)"
|
|
731
|
+
],
|
|
732
|
+
"format": "markdown",
|
|
733
|
+
"length": "1-2 pagine"
|
|
734
|
+
},
|
|
735
|
+
"dod": "Feature funziona come da Blueprint. Test scritti prima del codice. Spec compliance review superata. Code quality review superata. Blueprint aggiornato."
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"id": "5.3",
|
|
739
|
+
"title": "Integrare e verificare coerenza tra i moduli",
|
|
740
|
+
"is_gate": false,
|
|
741
|
+
"model": "claude-sonnet-4-6",
|
|
742
|
+
"skill": "implementazione",
|
|
743
|
+
"session_hint": "new_session",
|
|
744
|
+
"depends_on": [
|
|
745
|
+
"5.2"
|
|
746
|
+
],
|
|
747
|
+
"context": "Dopo le feature singole, si verifica che funzionino insieme.",
|
|
748
|
+
"questions": [
|
|
749
|
+
"Hai testato tutti i flussi utente end-to-end almeno una volta?",
|
|
750
|
+
"Ci sono inconsistenze di UI tra le varie sezioni?",
|
|
751
|
+
"I dati creati in una feature sono visibili correttamente nelle altre?",
|
|
752
|
+
"L'autenticazione funziona correttamente su tutte le pagine protette?"
|
|
753
|
+
],
|
|
754
|
+
"output_schema": {
|
|
755
|
+
"sections": [
|
|
756
|
+
"Micro-plan integrazione (test e2e da scrivere/eseguire)",
|
|
757
|
+
"Report integrazione: problemi trovati",
|
|
758
|
+
"Problemi risolti con test di regressione",
|
|
759
|
+
"Risultati spec compliance review (copertura flussi utente)",
|
|
760
|
+
"Risultati code quality review",
|
|
761
|
+
"Conferma flussi end-to-end funzionanti"
|
|
762
|
+
],
|
|
763
|
+
"format": "markdown",
|
|
764
|
+
"length": "1-2 pagine"
|
|
765
|
+
},
|
|
766
|
+
"dod": "Tutti i flussi end-to-end funzionano con test. Nessun errore di integrazione aperto. UI coerente. Spec compliance e code quality review superate."
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"id": "5.4",
|
|
770
|
+
"title": "Gate: validare fase Implementazione MVP",
|
|
771
|
+
"is_gate": true,
|
|
772
|
+
"model": "claude-haiku-4-5-20251001",
|
|
773
|
+
"skill": null,
|
|
774
|
+
"session_hint": "continue",
|
|
775
|
+
"depends_on": [
|
|
776
|
+
"5.1",
|
|
777
|
+
"5.2",
|
|
778
|
+
"5.3"
|
|
779
|
+
],
|
|
780
|
+
"context": "Checklist di chiusura fase 5.",
|
|
781
|
+
"questions": [],
|
|
782
|
+
"checklist": [
|
|
783
|
+
"Tutte le feature core (da 1.2) implementate?",
|
|
784
|
+
"Blueprint aggiornato con stato finale?",
|
|
785
|
+
"Flussi utente funzionanti end-to-end?",
|
|
786
|
+
"Integrazione tra moduli verificata?",
|
|
787
|
+
"Codice rispetta le convenzioni?",
|
|
788
|
+
"App gira senza errori critici in locale?"
|
|
789
|
+
],
|
|
790
|
+
"output_schema": {
|
|
791
|
+
"sections": [
|
|
792
|
+
"Checklist compilata",
|
|
793
|
+
"Note",
|
|
794
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
795
|
+
],
|
|
796
|
+
"format": "markdown",
|
|
797
|
+
"length": "mezza pagina"
|
|
798
|
+
},
|
|
799
|
+
"dod": "MVP funzionante in locale. Pronto per testing formale."
|
|
800
|
+
}
|
|
801
|
+
]
|
|
802
|
+
},
|
|
803
|
+
{
|
|
804
|
+
"id": 6,
|
|
805
|
+
"name": "QA e Testing",
|
|
806
|
+
"goal": "Verificare qualità, compatibilità e sicurezza prima del rilascio",
|
|
807
|
+
"tasks": [
|
|
808
|
+
{
|
|
809
|
+
"id": "6.1",
|
|
810
|
+
"title": "Definire strategia di test ed eseguire test funzionali",
|
|
811
|
+
"is_gate": false,
|
|
812
|
+
"model": "claude-sonnet-4-6",
|
|
813
|
+
"skill": "qa",
|
|
814
|
+
"session_hint": "compact",
|
|
815
|
+
"depends_on": [
|
|
816
|
+
"5.4",
|
|
817
|
+
"1.2"
|
|
818
|
+
],
|
|
819
|
+
"context": "Si definisce cosa testare e come, poi si eseguono i test funzionali sulle feature core.",
|
|
820
|
+
"questions": [
|
|
821
|
+
"Hai già test automatici scritti durante lo sviluppo?",
|
|
822
|
+
"Ci sono flussi critici che richiedono E2E testing (Playwright)?",
|
|
823
|
+
"Qual è il livello di testing adeguato al rischio del prodotto?",
|
|
824
|
+
"Hai testato tutti gli happy path manualmente?"
|
|
825
|
+
],
|
|
826
|
+
"output_schema": {
|
|
827
|
+
"sections": [
|
|
828
|
+
"Strategia di test scelta + motivazione",
|
|
829
|
+
"Checklist test funzionali per feature (happy path | edge case | errore) con risultati ✅/❌"
|
|
830
|
+
],
|
|
831
|
+
"format": "markdown con tabelle",
|
|
832
|
+
"length": "1-2 pagine"
|
|
833
|
+
},
|
|
834
|
+
"dod": "Strategia definita. Happy path testati e passati. Bug documentati."
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"id": "6.2",
|
|
838
|
+
"title": "Eseguire test cross-browser/device e verificare sicurezza",
|
|
839
|
+
"is_gate": false,
|
|
840
|
+
"model": "claude-sonnet-4-6",
|
|
841
|
+
"skill": "qa",
|
|
842
|
+
"session_hint": "compact",
|
|
843
|
+
"depends_on": [
|
|
844
|
+
"6.1"
|
|
845
|
+
],
|
|
846
|
+
"context": "Compatibilità browser/device e verifica di sicurezza base.",
|
|
847
|
+
"questions": [
|
|
848
|
+
"Su quali browser e dispositivi vuoi garantire il supporto?",
|
|
849
|
+
"Hai testato su mobile (iOS Safari in particolare)?",
|
|
850
|
+
"La RLS di Supabase è attiva su tutte le tabelle che contengono dati utente?",
|
|
851
|
+
"Ci sono API key o token esposti nel codice frontend?"
|
|
852
|
+
],
|
|
853
|
+
"output_schema": {
|
|
854
|
+
"sections": [
|
|
855
|
+
"Matrice compatibilità (browser x schermata: OK/problema/non funziona)",
|
|
856
|
+
"Checklist sicurezza (RLS, auth, dati sensibili, gestione errori, HTTPS)"
|
|
857
|
+
],
|
|
858
|
+
"format": "markdown con tabelle",
|
|
859
|
+
"length": "1 pagina"
|
|
860
|
+
},
|
|
861
|
+
"dod": "App funzionante sui target. Nessuna vulnerabilità critica aperta."
|
|
862
|
+
},
|
|
863
|
+
{
|
|
864
|
+
"id": "6.3",
|
|
865
|
+
"title": "Correggere bug critici ed eseguire beta test",
|
|
866
|
+
"is_gate": false,
|
|
867
|
+
"model": "claude-sonnet-4-6",
|
|
868
|
+
"skill": "qa",
|
|
869
|
+
"session_hint": "compact",
|
|
870
|
+
"depends_on": [
|
|
871
|
+
"6.1",
|
|
872
|
+
"6.2"
|
|
873
|
+
],
|
|
874
|
+
"context": "Si correggono i problemi emersi e si fa testare a utenti reali se possibile.",
|
|
875
|
+
"questions": [
|
|
876
|
+
"Hai beta tester disponibili (anche 2-3 persone di fiducia)?",
|
|
877
|
+
"Quali bug critici o importanti sono emersi dai test?",
|
|
878
|
+
"Quali feedback hai già ricevuto informalmente sul prodotto?"
|
|
879
|
+
],
|
|
880
|
+
"output_schema": {
|
|
881
|
+
"sections": [
|
|
882
|
+
"Lista bug per priorità (🔴 critico | 🟡 importante | 🟢 cosmetico) + stato",
|
|
883
|
+
"Feedback beta tester",
|
|
884
|
+
"Decisioni pre-lancio"
|
|
885
|
+
],
|
|
886
|
+
"format": "markdown",
|
|
887
|
+
"length": "1 pagina"
|
|
888
|
+
},
|
|
889
|
+
"dod": "Zero bug critici aperti. Feedback beta raccolto e valutato. Prodotto pronto per rilascio."
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"id": "6.4",
|
|
893
|
+
"title": "Gate: validare fase QA",
|
|
894
|
+
"is_gate": true,
|
|
895
|
+
"model": "claude-haiku-4-5-20251001",
|
|
896
|
+
"skill": null,
|
|
897
|
+
"session_hint": "continue",
|
|
898
|
+
"depends_on": [
|
|
899
|
+
"6.1",
|
|
900
|
+
"6.2",
|
|
901
|
+
"6.3"
|
|
902
|
+
],
|
|
903
|
+
"context": "Checklist di chiusura fase 6.",
|
|
904
|
+
"questions": [],
|
|
905
|
+
"checklist": [
|
|
906
|
+
"Happy path delle feature core testati e funzionanti?",
|
|
907
|
+
"App funziona sui browser/dispositivi target?",
|
|
908
|
+
"Nessuna vulnerabilità critica aperta?",
|
|
909
|
+
"Bug critici corretti?",
|
|
910
|
+
"Beta test fatto (o motivatamente saltato)?",
|
|
911
|
+
"Prodotto pronto per utenti reali?"
|
|
912
|
+
],
|
|
913
|
+
"output_schema": {
|
|
914
|
+
"sections": [
|
|
915
|
+
"Checklist compilata",
|
|
916
|
+
"Note",
|
|
917
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
918
|
+
],
|
|
919
|
+
"format": "markdown",
|
|
920
|
+
"length": "mezza pagina"
|
|
921
|
+
},
|
|
922
|
+
"dod": "QA superata. Prodotto pronto per rilascio."
|
|
923
|
+
}
|
|
924
|
+
]
|
|
925
|
+
},
|
|
926
|
+
{
|
|
927
|
+
"id": 7,
|
|
928
|
+
"name": "Release e Lancio",
|
|
929
|
+
"goal": "Portare il prodotto in produzione e comunicarne l'esistenza",
|
|
930
|
+
"tasks": [
|
|
931
|
+
{
|
|
932
|
+
"id": "7.1",
|
|
933
|
+
"title": "Redigere Privacy Policy e documentazione utente",
|
|
934
|
+
"is_gate": false,
|
|
935
|
+
"model": "claude-sonnet-4-6",
|
|
936
|
+
"skill": "legale",
|
|
937
|
+
"session_hint": "compact",
|
|
938
|
+
"depends_on": [
|
|
939
|
+
"1.5",
|
|
940
|
+
"1.2"
|
|
941
|
+
],
|
|
942
|
+
"context": "Prima di andare live: privacy policy e documentazione minima per l'utente.",
|
|
943
|
+
"questions": [
|
|
944
|
+
"Quali dati personali raccoglie il prodotto? (email, nome, comportamento, pagamenti...)",
|
|
945
|
+
"Usi cookie di terze parti o analytics?",
|
|
946
|
+
"Hai già un account Iubenda per generare la Privacy Policy?",
|
|
947
|
+
"Il prodotto ha bisogno di Terms of Service?",
|
|
948
|
+
"Come vuoi gestire l'onboarding? (tour, email, tooltip inline)"
|
|
949
|
+
],
|
|
950
|
+
"output_schema": {
|
|
951
|
+
"sections": [
|
|
952
|
+
"Privacy Policy (link a pagina pubblica)",
|
|
953
|
+
"Cookie Policy (se applicabile)",
|
|
954
|
+
"ToS (se applicabile)",
|
|
955
|
+
"Guida rapida utente / onboarding (3-5 passi)"
|
|
956
|
+
],
|
|
957
|
+
"format": "markdown + link",
|
|
958
|
+
"length": "1 pagina"
|
|
959
|
+
},
|
|
960
|
+
"dod": "Privacy Policy pubblicata e accessibile. Documentazione sufficiente per primo utilizzo autonomo."
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"id": "7.2",
|
|
964
|
+
"title": "Creare landing page e configurare account social",
|
|
965
|
+
"is_gate": false,
|
|
966
|
+
"model": "claude-sonnet-4-6",
|
|
967
|
+
"skill": null,
|
|
968
|
+
"session_hint": "compact",
|
|
969
|
+
"depends_on": [
|
|
970
|
+
"1.1",
|
|
971
|
+
"3.2"
|
|
972
|
+
],
|
|
973
|
+
"context": "Presenza pubblica: landing page e canali social per comunicare.",
|
|
974
|
+
"questions": [
|
|
975
|
+
"La landing page è una pagina separata o è integrata nell'app?",
|
|
976
|
+
"Hai già un dominio o ne serve uno nuovo?",
|
|
977
|
+
"Su quali piattaforme social vuoi essere presente? (X, LinkedIn, Instagram, Product Hunt)",
|
|
978
|
+
"Hai screenshot o mockup da usare nella landing?",
|
|
979
|
+
"Hai già scritto una bozza di copy per la landing o partiamo da zero?"
|
|
980
|
+
],
|
|
981
|
+
"output_schema": {
|
|
982
|
+
"sections": [
|
|
983
|
+
"URL landing page live",
|
|
984
|
+
"Account social configurati (lista piattaforme + link)",
|
|
985
|
+
"Bozze post di lancio (2-3)"
|
|
986
|
+
],
|
|
987
|
+
"format": "markdown",
|
|
988
|
+
"length": "mezza pagina"
|
|
989
|
+
},
|
|
990
|
+
"dod": "Landing page con URL definitivo. Almeno 1 account social. Post lancio pronti."
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"id": "7.3",
|
|
994
|
+
"title": "Configurare ambiente di produzione ed eseguire deploy",
|
|
995
|
+
"is_gate": false,
|
|
996
|
+
"model": "claude-sonnet-4-6",
|
|
997
|
+
"skill": "deploy",
|
|
998
|
+
"session_hint": "new_session",
|
|
999
|
+
"depends_on": [
|
|
1000
|
+
"5.4",
|
|
1001
|
+
"6.4"
|
|
1002
|
+
],
|
|
1003
|
+
"context": "Da 'funziona in locale' a 'funziona per tutti'.",
|
|
1004
|
+
"questions": [
|
|
1005
|
+
"Il progetto Vercel è già configurato?",
|
|
1006
|
+
"Le variabili d'ambiente di produzione sono state impostate su Vercel?",
|
|
1007
|
+
"Il database Supabase di produzione è separato da quello di sviluppo?",
|
|
1008
|
+
"Hai configurato un dominio custom o usi il default Vercel?",
|
|
1009
|
+
"Vuoi attivare Sentry per il tracking degli errori?"
|
|
1010
|
+
],
|
|
1011
|
+
"output_schema": {
|
|
1012
|
+
"sections": [
|
|
1013
|
+
"URL produzione",
|
|
1014
|
+
"Checklist deploy (hosting, env vars, DB prod, dominio, SSL, monitoring, CI/CD)",
|
|
1015
|
+
"Conferma: feature core funzionanti in produzione"
|
|
1016
|
+
],
|
|
1017
|
+
"format": "markdown",
|
|
1018
|
+
"length": "1 pagina"
|
|
1019
|
+
},
|
|
1020
|
+
"dod": "App live all'URL di produzione. Feature core funzionanti. Monitoring attivo."
|
|
1021
|
+
},
|
|
1022
|
+
{
|
|
1023
|
+
"id": "7.4",
|
|
1024
|
+
"title": "Verificare post-deploy, comunicare lancio e monitorare hypercare",
|
|
1025
|
+
"is_gate": false,
|
|
1026
|
+
"model": "claude-sonnet-4-6",
|
|
1027
|
+
"skill": "deploy",
|
|
1028
|
+
"session_hint": "compact",
|
|
1029
|
+
"depends_on": [
|
|
1030
|
+
"7.3",
|
|
1031
|
+
"7.2"
|
|
1032
|
+
],
|
|
1033
|
+
"context": "Le prime 48-72h post-lancio: smoke test, comunicazione, monitoraggio attivo.",
|
|
1034
|
+
"questions": [
|
|
1035
|
+
"Hai fatto uno smoke test completo in produzione?",
|
|
1036
|
+
"I post di lancio sono stati pubblicati?",
|
|
1037
|
+
"Stai monitorando gli errori in tempo reale (Sentry)?",
|
|
1038
|
+
"Ci sono stati problemi nelle prime ore?"
|
|
1039
|
+
],
|
|
1040
|
+
"output_schema": {
|
|
1041
|
+
"sections": [
|
|
1042
|
+
"Report smoke test",
|
|
1043
|
+
"Conferma: lancio comunicato su [canali]",
|
|
1044
|
+
"Log hypercare 48-72h (problemi + risoluzioni)"
|
|
1045
|
+
],
|
|
1046
|
+
"format": "markdown",
|
|
1047
|
+
"length": "1 pagina"
|
|
1048
|
+
},
|
|
1049
|
+
"dod": "Smoke test superato. Lancio comunicato su almeno 1 canale. Nessun problema critico irrisolto dopo 48h."
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
"id": "7.5",
|
|
1053
|
+
"title": "Gate: validare fase Release e Lancio",
|
|
1054
|
+
"is_gate": true,
|
|
1055
|
+
"model": "claude-haiku-4-5-20251001",
|
|
1056
|
+
"skill": null,
|
|
1057
|
+
"session_hint": "continue",
|
|
1058
|
+
"depends_on": [
|
|
1059
|
+
"7.1",
|
|
1060
|
+
"7.2",
|
|
1061
|
+
"7.3",
|
|
1062
|
+
"7.4"
|
|
1063
|
+
],
|
|
1064
|
+
"context": "Checklist di chiusura fase 7.",
|
|
1065
|
+
"questions": [],
|
|
1066
|
+
"checklist": [
|
|
1067
|
+
"Privacy Policy pubblicata e accessibile?",
|
|
1068
|
+
"Documentazione utente disponibile?",
|
|
1069
|
+
"Landing page live?",
|
|
1070
|
+
"Account social configurati?",
|
|
1071
|
+
"App deployata e funzionante in produzione?",
|
|
1072
|
+
"Lancio comunicato?",
|
|
1073
|
+
"Hypercare completato senza problemi critici?"
|
|
1074
|
+
],
|
|
1075
|
+
"output_schema": {
|
|
1076
|
+
"sections": [
|
|
1077
|
+
"Checklist compilata",
|
|
1078
|
+
"Note",
|
|
1079
|
+
"Decisione: PROCEDI / BLOCCA"
|
|
1080
|
+
],
|
|
1081
|
+
"format": "markdown",
|
|
1082
|
+
"length": "mezza pagina"
|
|
1083
|
+
},
|
|
1084
|
+
"dod": "Prodotto live, comunicato, stabile. Si entra in fase operativa."
|
|
1085
|
+
}
|
|
1086
|
+
]
|
|
1087
|
+
},
|
|
1088
|
+
{
|
|
1089
|
+
"id": 8,
|
|
1090
|
+
"name": "Operazioni e Crescita",
|
|
1091
|
+
"goal": "Misurare, imparare e decidere la direzione futura",
|
|
1092
|
+
"tasks": [
|
|
1093
|
+
{
|
|
1094
|
+
"id": "8.1",
|
|
1095
|
+
"title": "Raccogliere feedback e analizzare KPI",
|
|
1096
|
+
"is_gate": false,
|
|
1097
|
+
"model": "claude-sonnet-4-6",
|
|
1098
|
+
"skill": "analisi",
|
|
1099
|
+
"session_hint": "compact",
|
|
1100
|
+
"depends_on": [
|
|
1101
|
+
"7.5",
|
|
1102
|
+
"1.3"
|
|
1103
|
+
],
|
|
1104
|
+
"context": "Il prodotto è live: si raccolgono dati reali confrontandoli con i KPI di 1.3.",
|
|
1105
|
+
"questions": [
|
|
1106
|
+
"Quanti utenti attivi hai dopo il lancio?",
|
|
1107
|
+
"Hai ricevuto feedback diretti (email, social, in-app)?",
|
|
1108
|
+
"I KPI definiti in 1.3 come stanno andando rispetto ai target?",
|
|
1109
|
+
"Ci sono comportamenti utente inattesi nei dati analytics?"
|
|
1110
|
+
],
|
|
1111
|
+
"output_schema": {
|
|
1112
|
+
"sections": [
|
|
1113
|
+
"Feedback categorizzato (bug | UX | feature richieste | apprezzamenti)",
|
|
1114
|
+
"KPI dashboard (metrica | target | attuale | trend)",
|
|
1115
|
+
"Analisi cause gap KPI"
|
|
1116
|
+
],
|
|
1117
|
+
"format": "markdown con tabelle",
|
|
1118
|
+
"length": "1-2 pagine"
|
|
1119
|
+
},
|
|
1120
|
+
"dod": "Feedback raccolto e organizzato. KPI misurati e confrontati. Cause dei gap identificate."
|
|
1121
|
+
},
|
|
1122
|
+
{
|
|
1123
|
+
"id": "8.2",
|
|
1124
|
+
"title": "Pianificare iterazioni post-MVP (backlog prioritizzato)",
|
|
1125
|
+
"is_gate": false,
|
|
1126
|
+
"model": "claude-sonnet-4-6",
|
|
1127
|
+
"skill": "pianificazione",
|
|
1128
|
+
"session_hint": "compact",
|
|
1129
|
+
"depends_on": [
|
|
1130
|
+
"8.1",
|
|
1131
|
+
"6.3",
|
|
1132
|
+
"1.2"
|
|
1133
|
+
],
|
|
1134
|
+
"context": "Sulla base di feedback e KPI, si definisce il backlog prioritizzato per le iterazioni successive.",
|
|
1135
|
+
"questions": [
|
|
1136
|
+
"Quale feedback ti ha sorpreso di più?",
|
|
1137
|
+
"C'è una feature out-of-scope (da 1.2) che sta diventando urgente?",
|
|
1138
|
+
"C'è debito tecnico accumulato durante lo sviluppo?",
|
|
1139
|
+
"Qual è la prossima cosa più importante da costruire?"
|
|
1140
|
+
],
|
|
1141
|
+
"output_schema": {
|
|
1142
|
+
"sections": [
|
|
1143
|
+
"Backlog (tabella: titolo | origine | priorità must/should/could | sizing S/M/L)",
|
|
1144
|
+
"Piano prossima iterazione (prime 3-5 attività)"
|
|
1145
|
+
],
|
|
1146
|
+
"format": "markdown con tabelle",
|
|
1147
|
+
"length": "1 pagina"
|
|
1148
|
+
},
|
|
1149
|
+
"dod": "Backlog completo con priorità e sizing. Prossima iterazione definita. Nessuna attività orfana."
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
"id": "8.3",
|
|
1153
|
+
"title": "Decidere strategia (crescita/pivot/sunset) e redigere lessons learned",
|
|
1154
|
+
"is_gate": false,
|
|
1155
|
+
"model": "claude-opus-4-6",
|
|
1156
|
+
"skill": "analisi",
|
|
1157
|
+
"session_hint": "new_session",
|
|
1158
|
+
"depends_on": [
|
|
1159
|
+
"8.1",
|
|
1160
|
+
"8.2"
|
|
1161
|
+
],
|
|
1162
|
+
"context": "Riflessione strategica sulla direzione futura + documentazione lezioni apprese.",
|
|
1163
|
+
"questions": [
|
|
1164
|
+
"I numeri supportano la crescita o stai valutando un pivot?",
|
|
1165
|
+
"C'è qualcosa nel mercato o nel prodotto che ha sorpreso le tue aspettative?",
|
|
1166
|
+
"Cosa cambieresti nel processo se ripartissi da zero?",
|
|
1167
|
+
"Ci sono aggiornamenti al template di workflow che emergono da questa esperienza?"
|
|
1168
|
+
],
|
|
1169
|
+
"output_schema": {
|
|
1170
|
+
"sections": [
|
|
1171
|
+
"Decisione strategica (crescita/pivot/sunset) + motivazione con dati",
|
|
1172
|
+
"Visione a 3-6 mesi (se crescita) o nuova direzione (se pivot)",
|
|
1173
|
+
"Lessons learned (cosa ha funzionato | cosa no | cosa si è imparato)"
|
|
1174
|
+
],
|
|
1175
|
+
"format": "markdown",
|
|
1176
|
+
"length": "1-2 pagine"
|
|
1177
|
+
},
|
|
1178
|
+
"dod": "Decisione con evidenze. Lessons learned documentate. Miglioramenti al processo annotati."
|
|
1179
|
+
},
|
|
1180
|
+
{
|
|
1181
|
+
"id": "8.4",
|
|
1182
|
+
"title": "Gate: chiusura formale del ciclo",
|
|
1183
|
+
"is_gate": true,
|
|
1184
|
+
"model": "claude-haiku-4-5-20251001",
|
|
1185
|
+
"skill": null,
|
|
1186
|
+
"session_hint": "continue",
|
|
1187
|
+
"depends_on": [
|
|
1188
|
+
"8.1",
|
|
1189
|
+
"8.2",
|
|
1190
|
+
"8.3"
|
|
1191
|
+
],
|
|
1192
|
+
"context": "Checklist di chiusura del primo ciclo completo.",
|
|
1193
|
+
"questions": [],
|
|
1194
|
+
"checklist": [
|
|
1195
|
+
"Feedback raccolto e analizzato?",
|
|
1196
|
+
"KPI misurati e confrontati con i target?",
|
|
1197
|
+
"Backlog post-MVP prioritizzato?",
|
|
1198
|
+
"Decisione strategica presa e motivata?",
|
|
1199
|
+
"Lessons learned documentate?",
|
|
1200
|
+
"Template/processo aggiornato se necessario?"
|
|
1201
|
+
],
|
|
1202
|
+
"output_schema": {
|
|
1203
|
+
"sections": [
|
|
1204
|
+
"Checklist compilata",
|
|
1205
|
+
"Decisione finale",
|
|
1206
|
+
"Prossimi passi"
|
|
1207
|
+
],
|
|
1208
|
+
"format": "markdown",
|
|
1209
|
+
"length": "mezza pagina"
|
|
1210
|
+
},
|
|
1211
|
+
"dod": "Primo ciclo completato. Se crescita: backlog guida le iterazioni. Se sunset: progetto archiviato con documentazione completa."
|
|
1212
|
+
}
|
|
1213
|
+
]
|
|
1214
|
+
}
|
|
1215
|
+
]
|
|
1216
|
+
}
|