@antoneeo/agentic-sdlc-skill 1.4.0 → 1.5.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 +13 -0
- 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/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 +139 -99
- package/skills/agentic-sdlc-skill/scripts/sdlc_check.py +474 -0
- package/skills/agentic-sdlc-skill/templates.md +169 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Enforcement meccanico (opzionale, consigliato per i team)
|
|
2
|
+
|
|
3
|
+
Le regole a livello di prompt dipendono dalla disciplina del modello e degradano con contesti lunghi, compaction e istruzioni concorrenti. Tre livelli di garanzia crescente:
|
|
4
|
+
|
|
5
|
+
## 1. Validazione interattiva (default, nessun setup)
|
|
6
|
+
|
|
7
|
+
L'agente esegue alla chiusura (Fase 5) un solo gate:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
python "<dir_skill>/scripts/sdlc_check.py" check
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
(`check` = validate + stale in un comando.) Exit code ≠ 0 ⇒ la feature non si dichiara chiusa. È il livello minimo previsto dalla skill.
|
|
14
|
+
|
|
15
|
+
## 2. Check in CI (consigliato per i team)
|
|
16
|
+
|
|
17
|
+
Copia `scripts/sdlc_check.py` nel repository (es. `tools/sdlc_check.py`) e aggiungi alla pipeline:
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
python tools/sdlc_check.py validate
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Effetto: indice non rigenerato, frontmatter invalidi, sezione sicurezza mancante o stati incoerenti **bloccano la pipeline** invece di affidarsi alla memoria dell'agente. Funziona perché i documenti viaggiano nello stesso PR del codice (regola di Fase 5).
|
|
24
|
+
|
|
25
|
+
Nota: la copia nel repo è quella autoritativa per la CI; aggiornala quando aggiorni la skill.
|
|
26
|
+
|
|
27
|
+
## 3. Hook PreToolUse (gate sulle scritture)
|
|
28
|
+
|
|
29
|
+
Blocca Edit/Write su percorsi protetti quando nessuna `ANALYSIS_*.md` è `IN_PROGRESS`. In `.claude/settings.json` del progetto:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"hooks": {
|
|
34
|
+
"PreToolUse": [
|
|
35
|
+
{
|
|
36
|
+
"matcher": "Write|Edit",
|
|
37
|
+
"hooks": [
|
|
38
|
+
{
|
|
39
|
+
"type": "command",
|
|
40
|
+
"command": "python \"C:\\Users\\<utente>\\.claude\\skills\\agentic-sdlc\\scripts\\sdlc_check.py\" gate --hook --protected \"src/auth;src/crypto\""
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Semantica: exit code 2 + messaggio su stderr ⇒ la scrittura viene bloccata e il messaggio è mostrato all'agente, che deve creare l'ANALYSIS (Fase 3) prima di riprovare.
|
|
50
|
+
|
|
51
|
+
**Avvertenze d'uso:**
|
|
52
|
+
- Il gate è volutamente grossolano: applicato a tutto `src/` bloccherebbe anche i task L1/L2 legittimi previsti dal Triage. Usalo **solo su directory security-critical** (`--protected "src/auth;src/crypto"`), dove "mai senza analisi" è la policy desiderata.
|
|
53
|
+
- I percorsi in `--protected` sono prefissi relativi alla radice del progetto, separati da `;`.
|
|
54
|
+
- `ai_docs/`, `tests/` e `test/` sono sempre esclusi dal blocco.
|
|
55
|
+
- L'hook assume che la working directory sia la radice del progetto (comportamento standard degli hook di Claude Code).
|
|
@@ -1,101 +1,141 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: agentic-sdlc
|
|
3
|
-
description: Protocollo SDLC
|
|
4
|
-
author: Antonio Pinto (https://github.com/Antoneeo)
|
|
5
|
-
copyright:
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Agentic SDLC
|
|
9
|
-
|
|
10
|
-
Questa skill
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
- **
|
|
22
|
-
- **
|
|
23
|
-
- **
|
|
24
|
-
- **
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
1
|
+
---
|
|
2
|
+
name: agentic-sdlc
|
|
3
|
+
description: Protocollo SDLC Documentation-First con triage proporzionale, Vision come guida, modalita Standalone completa e simbiosi opzionale con devPNT. Usare per feature, bug significativi, refactor, audit e manutenzione documentata.
|
|
4
|
+
author: Antonio Pinto (https://github.com/Antoneeo)
|
|
5
|
+
copyright: (c) 2026 Antonio Pinto
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Agentic SDLC
|
|
9
|
+
|
|
10
|
+
Questa skill guida lo sviluppo software con un processo Documentation-First proporzionale al rischio. Deve funzionare pienamente anche senza devPNT. Quando devPNT e' disponibile e configurato per il progetto corrente, la skill lavora in simbiosi con la sua governance: M-VISION, Master Plan, Action Plan e artefatti versionati diventano il quadro autorevole per milestone e implementazione.
|
|
11
|
+
|
|
12
|
+
File di supporto nella directory della skill:
|
|
13
|
+
- `templates.md`: template per Vision, ANALYSIS, Spike, audit plan e handoff.
|
|
14
|
+
- `scripts/sdlc_check.py`: validatore meccanico per `ai_docs/` (`check`, `validate`, `index`, `stale`, `mark`, `gate`).
|
|
15
|
+
- `ENFORCEMENT.md`: setup opzionale per CI e hook.
|
|
16
|
+
|
|
17
|
+
Leggi questi file solo quando servono. `SKILL.md` e' il contratto operativo; i support file sono risorse progressive.
|
|
18
|
+
|
|
19
|
+
## Valori Tecnici
|
|
20
|
+
|
|
21
|
+
- **Comprendi prima di agire:** non modificare codice senza capire root cause, vincoli e forma attuale.
|
|
22
|
+
- **Mantieni coerenza architetturale:** rispetta layer, responsabilita, naming, pattern e convenzioni esistenti.
|
|
23
|
+
- **Applica DRY e semplicita:** non duplicare logica o conoscenza; astrai solo se riduce complessita reale.
|
|
24
|
+
- **Preserva qualita:** ogni modifica deve mantenere o migliorare stabilita, testabilita e manutenibilita.
|
|
25
|
+
- **Verifica tecnicamente:** chiudi lavoro implementativo con test, lint, smoke check o motivo esplicito.
|
|
26
|
+
- **Mantieni memoria utile:** documenta decisioni e stato operativo rilevanti, non testo riempitivo.
|
|
27
|
+
- **Proteggi la Vision:** ogni decisione deve restare allineata a benefici attesi, utenti, non-obiettivi e segnali di successo.
|
|
28
|
+
|
|
29
|
+
Se una patch sembra facile ma non capisci perche il codice attuale e' fatto cosi, indaga prima.
|
|
30
|
+
|
|
31
|
+
## Regola Zero: Triage
|
|
32
|
+
|
|
33
|
+
Classifica sempre la richiesta prima di scegliere il processo. Dichiara il livello scelto all'utente quando inizi il lavoro operativo.
|
|
34
|
+
|
|
35
|
+
| Livello | Criteri | Processo richiesto |
|
|
36
|
+
|---|---|---|
|
|
37
|
+
| **L1 - Triviale** | Circa 10 righe in 1-2 file; nessun cambio API, dipendenza o comportamento nuovo; refusi o fix che ripristinano comportamento gia atteso | Implementa. Esegui test pertinenti se esistono. Nessun nuovo documento. |
|
|
38
|
+
| **L2 - Piccolo** | Root cause chiara; massimo 3 file; nessuna nuova dipendenza o API pubblica; rischio basso | Mini-analisi nel messaggio: obiettivo, impatto, sicurezza, test. Test obbligatori. Nessun nuovo documento salvo aggiornare analisi/handoff esistenti se utile. |
|
|
39
|
+
| **L3 - Significativo** | Oltre 3 file, API/contratti, nuova dipendenza, comportamento visibile, area security-sensitive, cambio architetturale o design non ovvio | Workflow completo: Vision Gate, analisi, piano, implementazione, test, chiusura. |
|
|
40
|
+
| **Spike** | Esplorazione time-boxed per ridurre incertezza | Codice non mergiabile in main. Esito in `ai_docs/solutions/SPIKE_[tema].md`. Per produzione riclassifica come L2 o L3. |
|
|
41
|
+
|
|
42
|
+
Regole trasversali:
|
|
43
|
+
- Parsing input esterni, authN/authZ, crittografia, rete, dati personali e filesystem sono security-sensitive: mai L1.
|
|
44
|
+
- Se durante L1/L2 emerge impatto maggiore, fermati, riclassifica e dichiaralo.
|
|
45
|
+
- Nel dubbio scegli il livello piu alto.
|
|
46
|
+
- L'audit completo non parte per L1/L2 salvo richiesta esplicita.
|
|
47
|
+
|
|
48
|
+
## Modalita Operative
|
|
49
|
+
|
|
50
|
+
### Standalone completa
|
|
51
|
+
|
|
52
|
+
Usa questa modalita quando devPNT non e' disponibile, non e' configurato per il progetto corrente o l'utente chiede esplicitamente un workflow solo filesystem.
|
|
53
|
+
|
|
54
|
+
Fonte di verita:
|
|
55
|
+
- Vision: `ai_docs/vision/project_vision.md`, `roadmap.md`, `principles.md`.
|
|
56
|
+
- Feature/analisi: `ai_docs/solutions/ANALYSIS_[feature].md`.
|
|
57
|
+
- Audit/handoff: `ai_docs/audit/`.
|
|
58
|
+
- Storico feature: `ai_docs/strategic/features_history.md` manuale o generato dal validatore, in base alla struttura adottata dal progetto.
|
|
59
|
+
|
|
60
|
+
La modalita Standalone non e' ridotta: deve poter gestire audit, feature, bug significativi, test, handoff e chiusura senza devPNT.
|
|
61
|
+
|
|
62
|
+
### Hybrid in simbiosi con devPNT
|
|
63
|
+
|
|
64
|
+
Usa questa modalita quando i tool `devpnt_*` sono disponibili e puntano al progetto corrente.
|
|
65
|
+
|
|
66
|
+
Gerarchia autorevole:
|
|
67
|
+
1. **M-VISION devPNT**: faro strategico della milestone. Prima di design o codice, leggila e verifica benefici, success signals, scope-in e non-goals.
|
|
68
|
+
2. **Master Plan devPNT**: roadmap strategica e milestone.
|
|
69
|
+
3. **Action Plan devPNT**: lavoro tattico corrente per il goal attivo.
|
|
70
|
+
4. **Artefatti governati devPNT**: `D-UC`, `P-TM`, `E-ISP`, `E-TDD`, `E-TP`, ADR.
|
|
71
|
+
5. **`ai_docs/` locale**: contesto leggibile, fallback Standalone, handoff locale o shadow/mirror quando utile.
|
|
72
|
+
|
|
73
|
+
Regole Hybrid:
|
|
74
|
+
- devPNT e' la fonte governata per piani e artefatti; non creare una seconda verita in `ai_docs/`.
|
|
75
|
+
- La skill resta autonoma: se devPNT non c'e', passa a Standalone senza perdere capacita.
|
|
76
|
+
- Se richiesta utente, Vision locale e M-VISION divergono, fermati e rendi esplicito il conflitto.
|
|
77
|
+
- Non creare o modificare milestone senza rispettare la M-VISION.
|
|
78
|
+
- Non accettare automaticamente proposte devPNT: presenta la preview e attendi conferma esplicita.
|
|
79
|
+
- Se il protocollo devPNT locale impone bootstrap, piani o gate piu severi, seguili.
|
|
80
|
+
|
|
81
|
+
## Workflow L3
|
|
82
|
+
|
|
83
|
+
### 1. Audit e Allineamento
|
|
84
|
+
|
|
85
|
+
- Leggi `ai_docs/audit/handoff.md` se esiste; se ha Data/Branch non coerenti, trattalo come storico.
|
|
86
|
+
- Se `ai_docs/` manca o e' incompleta, crea struttura e documenti minimi analizzando il progetto a lotti.
|
|
87
|
+
- In Standalone usa `ai_docs/audit/audit_plan.md` per mappatura e stato.
|
|
88
|
+
- In Hybrid preferisci la mappatura devPNT/KL quando disponibile; non duplicare la governance dei piani.
|
|
89
|
+
- Per template dettagliati usa `templates.md`.
|
|
57
90
|
|
|
58
91
|
### 2. Vision Gate
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
- Se la richiesta
|
|
70
|
-
|
|
71
|
-
### 3.
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
### 4.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
-
|
|
96
|
-
-
|
|
97
|
-
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
92
|
+
|
|
93
|
+
Standalone:
|
|
94
|
+
- Leggi `project_vision.md`, `roadmap.md`, `principles.md`.
|
|
95
|
+
- Se un documento dichiara `Stato: DRAFT`, trattalo come ipotesi: segnala conflitti, ma non bloccare una richiesta esplicita dell'utente.
|
|
96
|
+
- Se dichiara `Stato: APPROVED`, e la richiesta confligge, fermati e chiedi scelta: aggiornare Vision o modificare/rifiutare la richiesta.
|
|
97
|
+
- Non promuovere mai una Vision a `APPROVED` senza conferma dell'utente.
|
|
98
|
+
|
|
99
|
+
Hybrid:
|
|
100
|
+
- Leggi la M-VISION della milestone o chiedi/crea il passaggio richiesto dal protocollo devPNT.
|
|
101
|
+
- Verifica che la richiesta serva un beneficio o success signal della M-VISION.
|
|
102
|
+
- Se la richiesta aggiunge scope non autorizzato, trattala come divergenza di Vision.
|
|
103
|
+
|
|
104
|
+
### 3. Analisi della Richiesta
|
|
105
|
+
|
|
106
|
+
Standalone L3:
|
|
107
|
+
- Crea o aggiorna `ai_docs/solutions/ANALYSIS_[feature].md`.
|
|
108
|
+
- Sezioni minime: Obiettivo, Vision della Feature o Allineamento alla Vision, Impatto, Sicurezza e Threat Model, Piano d'Azione, Strategia di Test, Diario/Stato Corrente.
|
|
109
|
+
- Per feature che attraversano piu milestone o piu analisi, crea anche `ai_docs/vision/features/VISION_[feature].md`.
|
|
110
|
+
|
|
111
|
+
Hybrid L3:
|
|
112
|
+
- Ripristina Master Plan, Action Plan e documenti collegati.
|
|
113
|
+
- Usa devPNT per piani e artefatti governati.
|
|
114
|
+
- Usa `ai_docs/solutions/SHADOW_[doc_key]_vX.Y.md` solo come shadow leggibile quando serve; in divergenza vince devPNT.
|
|
115
|
+
|
|
116
|
+
### 4. Sviluppo e Test
|
|
117
|
+
|
|
118
|
+
- Implementa solo dopo il gate documentale richiesto dal livello.
|
|
119
|
+
- Modifica in modo chirurgico, coerente con il piano.
|
|
120
|
+
- Scrivi o aggiorna test automatici pertinenti; usa AAA per unit test quando applicabile.
|
|
121
|
+
- Se l'ambiente non permette test automatici, dichiara verifica alternativa e motivo.
|
|
122
|
+
- Circuit breaker: dopo 3 esecuzioni consecutive senza progresso sui test, fermati e chiedi istruzioni.
|
|
123
|
+
- Aggiorna il Diario dell'ANALYSIS o l'Action Plan quando completi milestone, incontri blocchi o cambi decisione.
|
|
124
|
+
|
|
125
|
+
### 5. Chiusura
|
|
126
|
+
|
|
127
|
+
- Esegui test/lint/smoke check pertinenti.
|
|
128
|
+
- Verifica allineamento con Vision locale o M-VISION devPNT.
|
|
129
|
+
- Aggiorna solo i documenti effettivamente impattati.
|
|
130
|
+
- In Hybrid proponi ADR/KL quando ci sono decisioni architetturali.
|
|
131
|
+
- In Standalone, se il progetto adotta `sdlc_check.py`, esegui `python <skill_dir>/scripts/sdlc_check.py check --root <project_root>` o la copia locale equivalente.
|
|
132
|
+
- I documenti aggiornati devono viaggiare nello stesso commit/PR del codice che descrivono.
|
|
133
|
+
|
|
134
|
+
## Enforcement Meccanico
|
|
135
|
+
|
|
136
|
+
Il prompt non e' enforcement. Quando il progetto richiede garanzie ripetibili:
|
|
137
|
+
- leggi `ENFORCEMENT.md`;
|
|
138
|
+
- usa `scripts/sdlc_check.py validate` in CI;
|
|
139
|
+
- usa `scripts/sdlc_check.py gate` solo per directory security-critical, non per tutto il repository.
|
|
140
|
+
|
|
141
|
+
Il validatore e' un supporto, non un prerequisito universale: la skill deve restare usabile anche in ambienti senza Python o senza hook, dichiarando cosa non puo' verificare automaticamente.
|