@antoneeo/agentic-sdlc-skill 1.4.0 → 1.6.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/CHANGELOG.md +47 -12
- package/README.md +80 -85
- package/gemini-extension.json +2 -2
- package/package.json +6 -3
- package/references/analysis_template.md +39 -20
- package/references/architecture_template.md +11 -7
- package/references/existing_features_template.md +4 -0
- package/references/feature_vision_template.md +2 -0
- package/references/features_history_template.md +5 -6
- package/references/principles_template.md +3 -2
- package/references/project_vision_template.md +4 -3
- package/references/roadmap_template.md +3 -2
- package/scripts/init.js +63 -45
- package/scripts/postinstall.js +38 -12
- package/scripts/preuninstall.js +7 -4
- package/skills/agentic-sdlc-skill/ENFORCEMENT.md +55 -0
- package/skills/agentic-sdlc-skill/SKILL.md +170 -99
- package/skills/agentic-sdlc-skill/scripts/sdlc_check.py +621 -0
- package/skills/agentic-sdlc-skill/templates.md +192 -0
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
# Template dei documenti — Agentic SDLC
|
|
2
|
+
|
|
3
|
+
Regole generali:
|
|
4
|
+
- Documenti concisi: ≤ ~80 righe ciascuno (handoff ≤ 20). Se un documento cresce oltre, va diviso, non gonfiato.
|
|
5
|
+
- La conformità al template non è l'obiettivo: se una sezione non ha contenuto reale, scrivi esplicitamente perché non si applica. Mai testo riempitivo.
|
|
6
|
+
- Date sempre assolute, in UTC dove indicato.
|
|
7
|
+
|
|
8
|
+
## Header dei documenti canonici (vision/ reference/ architecture/ functional/ strategic/)
|
|
9
|
+
|
|
10
|
+
Ogni documento canonico durevole apre con questo frontmatter: alimenta il manifest generato `ai_docs/INDEX.md` e dà a un agente il segnale di freschezza prima che si fidi del contenuto.
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
---
|
|
14
|
+
description: Una riga — cos'è il documento e quando leggerlo.
|
|
15
|
+
status: CURRENT # CURRENT | SUPERSEDED | DRAFT | DEPRECATED
|
|
16
|
+
supersedes: vecchio_doc.md # solo se rimpiazza un altro doc canonico
|
|
17
|
+
---
|
|
18
|
+
# Titolo del Documento
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Quando un doc ne sostituisce un altro: il nuovo dichiara `supersedes:`, il vecchio passa a `status: SUPERSEDED` (resta come storico, non si cancella). `sdlc_check.py validate` avvisa se `status` manca o se un doc superseduto è ancora `CURRENT`.
|
|
22
|
+
|
|
23
|
+
## ai_docs/vision/project_vision.md
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
# Vision del Progetto
|
|
27
|
+
Stato: DRAFT
|
|
28
|
+
<!-- Stato: DRAFT (ricostruita dall'agente, NON è autorità di gating)
|
|
29
|
+
oppure APPROVED (da <chi>, <data>) — solo dopo conferma esplicita dell'utente -->
|
|
30
|
+
|
|
31
|
+
## North Star
|
|
32
|
+
## Utenti Target
|
|
33
|
+
## Problema Centrale
|
|
34
|
+
## Obiettivi
|
|
35
|
+
## Non-Obiettivi
|
|
36
|
+
## Segnali di Successo
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## ai_docs/vision/roadmap.md
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
# Roadmap
|
|
43
|
+
Stato: DRAFT
|
|
44
|
+
|
|
45
|
+
## Milestone
|
|
46
|
+
<!-- per ciascuna: beneficio atteso, priorità, indicatore di avanzamento -->
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## ai_docs/vision/principles.md
|
|
50
|
+
|
|
51
|
+
```markdown
|
|
52
|
+
# Principi Decisionali
|
|
53
|
+
Stato: DRAFT
|
|
54
|
+
|
|
55
|
+
<!-- elenco puntato dei principi stabili che guidano trade-off e scope, dal più critico -->
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## ai_docs/vision/features/VISION_[nome_feature].md
|
|
59
|
+
|
|
60
|
+
Solo per feature che attraversano più ANALYSIS o più milestone: negli altri casi la vision di feature vive nella sezione `## Vision della Feature` dell'ANALYSIS.
|
|
61
|
+
|
|
62
|
+
```markdown
|
|
63
|
+
# Vision Feature: [Nome]
|
|
64
|
+
|
|
65
|
+
## Problema
|
|
66
|
+
## Beneficio Atteso
|
|
67
|
+
## Utenti o Stakeholder
|
|
68
|
+
## Segnali di Successo
|
|
69
|
+
## Non-Obiettivi / Fuori Scope
|
|
70
|
+
## Vincoli e Principi Collegati
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## ai_docs/solutions/ANALYSIS_[nome_feature].md
|
|
74
|
+
|
|
75
|
+
Il frontmatter è la fonte di verità dello stato della feature (l'indice `features_history.md` si genera da qui).
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
---
|
|
79
|
+
id: F-001
|
|
80
|
+
feature: Nome Feature
|
|
81
|
+
stato: PLANNED
|
|
82
|
+
livello: L3
|
|
83
|
+
data_inizio: 2026-06-11
|
|
84
|
+
data_fine:
|
|
85
|
+
---
|
|
86
|
+
# Analisi della Feature: [Nome]
|
|
87
|
+
|
|
88
|
+
## Obiettivo
|
|
89
|
+
<!-- cosa si vuole ottenere e quali problemi risolve -->
|
|
90
|
+
|
|
91
|
+
## Vision della Feature
|
|
92
|
+
<!-- beneficio atteso e problema risolto; allineamento alla vision di progetto
|
|
93
|
+
(citare il documento e il suo stato DRAFT/APPROVED); non-obiettivi/fuori scope
|
|
94
|
+
di questa feature; segnali di successo; stakeholder solo se non ovvi.
|
|
95
|
+
È l'unico posto della vision di feature: il file separato VISION_[feature].md
|
|
96
|
+
si crea solo se la feature attraversa più ANALYSIS o più milestone. -->
|
|
97
|
+
|
|
98
|
+
## Impatto
|
|
99
|
+
<!-- file esistenti toccati, API/contratti, performance, nuove dipendenze -->
|
|
100
|
+
|
|
101
|
+
## Sicurezza e Threat Model
|
|
102
|
+
<!-- SEMPRE obbligatoria, anche in standalone.
|
|
103
|
+
Superfici toccate: input esterni, authN/authZ, crittografia, rete, dati personali, filesystem.
|
|
104
|
+
Minacce principali e mitigazioni. "Nessun impatto di sicurezza" va motivato, non dichiarato. -->
|
|
105
|
+
|
|
106
|
+
## Piano d'Azione
|
|
107
|
+
- [ ] ...
|
|
108
|
+
|
|
109
|
+
## Strategia di Test
|
|
110
|
+
<!-- unit AAA, integrazione, esempi. Se l'ambiente non è eseguibile (firmware/HIL):
|
|
111
|
+
verifica alternativa esplicita e motivo. -->
|
|
112
|
+
|
|
113
|
+
## Diario / Stato Corrente
|
|
114
|
+
<!-- aggiornato a ogni milestone: dove sono, ultimo problema, prossimo passo.
|
|
115
|
+
È la fonte dell'handoff per questa feature. -->
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Stati ammessi nel frontmatter: `PLANNED` | `IN_PROGRESS` | `COMPLETED` | `CANCELLED`. `COMPLETED` richiede `data_fine`.
|
|
119
|
+
|
|
120
|
+
## ai_docs/solutions/SPIKE_[tema].md
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
# Spike: [tema]
|
|
124
|
+
|
|
125
|
+
## Domanda da rispondere
|
|
126
|
+
## Time-box
|
|
127
|
+
## Cosa è stato provato
|
|
128
|
+
## Risposta / Esito
|
|
129
|
+
## Conseguenze
|
|
130
|
+
<!-- max 1 pagina. Il codice dello spike NON è mergiabile: per produzione riclassificare L2/L3. -->
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## ai_docs/audit/audit_plan.md (solo modalità Standalone)
|
|
134
|
+
|
|
135
|
+
Il campo `Riferimento` (hash git o timestamp ISO UTC) è gestito da `sdlc_check.py mark` — non compilarlo a mano. La freschezza si verifica con `sdlc_check.py stale`.
|
|
136
|
+
|
|
137
|
+
```markdown
|
|
138
|
+
# Piano di Audit
|
|
139
|
+
|
|
140
|
+
Stati: PENDING (da analizzare) | ANALYZED (analizzato, con riferimento) | SKIPPED (con motivo).
|
|
141
|
+
|
|
142
|
+
| Percorso | Stato | Riferimento | Note |
|
|
143
|
+
|---|---|---|---|
|
|
144
|
+
| src/core/ | PENDING | - | |
|
|
145
|
+
| vendor/ | SKIPPED | - | codice vendored |
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## ai_docs/audit/handoff.md
|
|
149
|
+
|
|
150
|
+
Solo un puntatore, ≤ 20 righe. Il dettaglio vive nel Diario di ciascuna ANALYSIS.
|
|
151
|
+
|
|
152
|
+
```markdown
|
|
153
|
+
# Handoff
|
|
154
|
+
Data: 2026-06-11 (UTC)
|
|
155
|
+
Branch: feature/sso-login
|
|
156
|
+
Agente: Claude
|
|
157
|
+
|
|
158
|
+
## Feature attive
|
|
159
|
+
- F-001 — vedi solutions/ANALYSIS_login_sso.md (sezione Diario)
|
|
160
|
+
|
|
161
|
+
## Prossimo passo
|
|
162
|
+
<!-- una riga -->
|
|
163
|
+
|
|
164
|
+
## Note di sessione
|
|
165
|
+
<!-- vision lette in questa sessione? draft da far validare? -->
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
## ai_docs/strategic/architecture.md e existing_features.md
|
|
169
|
+
|
|
170
|
+
Doc canonici: aprono con l'header (`description:`/`status:`) cosi' entrano puliti nel manifest `INDEX.md`.
|
|
171
|
+
|
|
172
|
+
```markdown
|
|
173
|
+
---
|
|
174
|
+
description: Stack, struttura directory e pattern architetturali del progetto.
|
|
175
|
+
status: CURRENT
|
|
176
|
+
---
|
|
177
|
+
# Architettura del Progetto
|
|
178
|
+
## Stack Tecnologico
|
|
179
|
+
## Struttura delle Directory
|
|
180
|
+
## Pattern Architetturali
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```markdown
|
|
184
|
+
---
|
|
185
|
+
description: Catalogo sintetico delle funzionalità esistenti del progetto.
|
|
186
|
+
status: CURRENT
|
|
187
|
+
---
|
|
188
|
+
# Funzionalità Esistenti
|
|
189
|
+
- [ID] **Nome Feature**: Descrizione
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
`ai_docs/strategic/features_history.md` e `ai_docs/INDEX.md` NON hanno template: sono generati da `sdlc_check.py index`.
|