@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.
@@ -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 "Documentation-First" con integrazione opzionale devPNT. Utilizzare per gestire lo sviluppo di nuove feature, eseguire l'audit di progetti esistenti e mantenere rigorosamente aggiornata la documentazione tecnica prima, durante e dopo l'implementazione del codice.
4
- author: Antonio Pinto (https://github.com/Antoneeo)
5
- copyright: © 2026 Antonio Pinto
6
- ---
7
-
8
- # Agentic SDLC (Hybrid Edition)
9
-
10
- Questa skill implementa un workflow rigoroso per lo sviluppo software, assicurando che la documentazione preceda sempre l'implementazione (Documentation-First). Se rileva la presenza del server MCP **devPNT**, potenzia il workflow utilizzando il database per la governance e i piani gerarchici.
11
-
12
- Realizzata da **Antonio Pinto** (https://github.com/Antoneeo).
13
-
14
- ## Valori Tecnici
15
-
16
- Privilegia qualità e comprensione rispetto alla velocità apparente.
17
-
18
- - **Comprendi prima di agire:** non modificare codice senza aver capito il motivo; nei bug cerca la root cause, non workaround.
19
- - **Mantieni coerenza architetturale:** rispetta layer, responsabilità, naming, pattern e convenzioni esistenti.
20
- - **Applica DRY e semplicità:** non duplicare logica o conoscenza; crea astrazioni solo se riducono complessità reale.
21
- - **Preserva la qualità:** ogni modifica deve mantenere o migliorare stabilità, testabilità e manutenibilità.
22
- - **Verifica tecnicamente:** chiudi ogni task implementativo con test/lint/smoke test, o spiega perché non eseguiti.
23
- - **Mantieni memoria utile:** documenta decisioni e stato operativo rilevanti, non rumore.
24
- - **Proteggi la Vision:** ogni decisione deve restare allineata a obiettivo finale, benefici attesi, utenti target e non-obiettivi dichiarati.
25
-
26
- Se una patch sembra facile ma non capisci perché il codice attuale è fatto così, indaga prima di modificarlo.
27
-
28
- ## Workflow Operativo
29
-
30
- ### 0. Fase di Discovery (Ambiente)
31
- Prima di rispondere a qualsiasi richiesta operativa, verifica la disponibilità dei tool `devpnt_*`.
32
- - **MODALITÀ HYBRID (devPNT presente):** Delega la gestione dei piani (Master/Action) e del versionamento degli artefatti (`D-UC`, `P-TM`, `E-ISP`, `E-TDD`) a devPNT. Usa la cartella `ai_docs/` per salvare le versioni Markdown ("shadow-copy") dei documenti per garantire visibilità e compatibilità. Mantieni sempre la Vision leggibile in `ai_docs/vision/`.
33
- - **MODALITÀ STANDALONE (devPNT assente):** Gestisci tutto via filesystem in `ai_docs/`. In caso di progetti complessi, suggerisci l'adozione di devPNT per una governance avanzata.
34
-
35
- ### 1. Fase di Audit e Allineamento
36
- Verifica lo stato della documentazione del progetto.
37
- - Controlla la presenza di `ai_docs/audit/handoff.md`. Se esiste, leggilo per riprendere il contesto dell'ultima sessione.
38
- - Controlla l'esistenza della cartella `ai_docs/`.
39
- - Se `ai_docs/` non esiste o mancano i documenti fondamentali, non procedere con un'analisi dell'intero progetto in un solo colpo. Esegui invece un'analisi strutturata in step:
40
- 1. **Mappatura:** Crea un file di tracciamento (es. `ai_docs/audit/audit_plan.md`) elencando le macro-directory e i file chiave da analizzare. Se in modalità **Hybrid**, puoi usare `devpnt_kl_init_scope` per generare la mappatura iniziale.
41
- 2. **Stato dell'Analisi:** Accanto a ogni elemento nel piano, indica lo stato: `[PENDING]`, `[ANALYZED]`, oppure `[SKIPPED]` (con relativa motivazione, es. "file generato", "asset statico").
42
- 3. **Esecuzione a Lotti (Batching):** Analizza la codebase seguendo l'ordine del file di piano, aggiornando lo stato man mano. Se il progetto è grande, esegui l'analisi a blocchi per evitare di saturare la memoria contestuale, chiedendo conferma all'utente tra un blocco e l'altro se necessario.
43
- 4. **Creazione Documenti:** Sulla base dei risultati dell'audit, compila i documenti fondamentali rispettando i seguenti formati:
44
- - `ai_docs/vision/project_vision.md`: Deve descrivere North Star, utenti target, problema centrale, obiettivi, non-obiettivi e segnali di successo.
45
- - `ai_docs/vision/roadmap.md`: Deve descrivere milestone, benefici attesi, priorità e indicatori di avanzamento.
46
- - `ai_docs/vision/principles.md`: Deve elencare i principi decisionali stabili che guidano trade-off e scope.
47
- - `ai_docs/vision/features/`: Deve contenere una mini-vision per ogni feature significativa.
48
- - `ai_docs/strategic/architecture.md`: Deve seguire questa struttura:
49
- - `# Architettura del Progetto`
50
- - `## Stack Tecnologico`
51
- - `## Struttura delle Directory`
52
- - `## Pattern Architetturali`
53
- - `ai_docs/strategic/existing_features.md`: Deve seguire questa struttura:
54
- - `# Funzionalità Esistenti`
55
- - Elenco puntato nel formato: `- [ID] **Nome Feature**: Descrizione`
56
- - `ai_docs/strategic/features_history.md`: Deve essere una tabella Markdown con le seguenti colonne: `| ID | Nome Feature | Stato | Data Inizio | Data Fine | Doc. Analisi | Note |`. Gli stati ammessi sono `[PLANNED]`, `[IN_PROGRESS]`, `[COMPLETED]`.
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
- Prima di analizzare tecnicamente una nuova feature, modifica comportamentale o refactor significativo, ripristina il contesto di Vision:
60
- - Leggi `ai_docs/vision/project_vision.md`, `ai_docs/vision/roadmap.md` e `ai_docs/vision/principles.md`.
61
- - Se uno di questi documenti manca, è vuoto o non chiarisce l'obiettivo finale, crealo o aggiornalo prima di procedere.
62
- - Per ogni feature significativa, crea o aggiorna `ai_docs/vision/features/VISION_[nome_feature].md` con:
63
- - `## Problema`
64
- - `## Beneficio Atteso`
65
- - `## Utenti o Stakeholder`
66
- - `## Segnali di Successo`
67
- - `## Non-Obiettivi / Fuori Scope`
68
- - `## Vincoli e Principi Collegati`
69
- - Se la richiesta dell'utente confligge con Vision, non implementare in silenzio: esplicita il conflitto e proponi una scelta (aggiornare la Vision oppure modificare/rifiutare la richiesta).
70
-
71
- ### 3. Fase di Analisi della Richiesta
72
- Per ogni nuova feature richiesta dall'utente:
73
- - **Hybrid:** Crea un nodo nel Master Plan e definisci l'Action Plan tramite devPNT. Salva i documenti di design (`D-UC`, `P-TM`, `E-ISP`, `E-TDD`) nel Database e crea contemporaneamente il file Markdown in `ai_docs/solutions/ANALYSIS_[nome_feature].md`.
74
- - **Standalone:** Crea `ai_docs/solutions/ANALYSIS_[nome_feature].md`. Il documento deve obbligatoriamente seguire questa struttura:
75
- - `# Analisi della Feature: [Nome Feature]`
76
- - `## Obiettivo` (Cosa si vuole ottenere e quali problemi risolve)
77
- - `## Allineamento alla Vision` (Quale Vision documenta il beneficio, quali non-obiettivi rispettare)
78
- - `## Impatto` (Modifiche ai file esistenti, performance, nuove dipendenze)
79
- - `## Piano d'Azione` (Elenco di task con checkbox `[ ]`)
80
- - `## Strategia di Test` (Test unitari AAA, test d'integrazione, esempi)
81
- - In entrambe le modalità, aggiungi la nuova feature in `ai_docs/strategic/features_history.md` con stato `[PLANNED]`.
82
-
83
- ### 4. Fase di Sviluppo e Test
84
- Solo dopo aver completato le Fasi 2 e 3:
85
- 1. Aggiorna lo stato della feature in `features_history.md` a `[IN_PROGRESS]`.
86
- 2. Implementa il codice in modo chirurgico seguendo il piano definito. **Importante:** Per ogni file o macro-directory modificata o creata durante lo sviluppo, aggiorna `ai_docs/audit/audit_plan.md` reimpostando (o aggiungendo) il suo stato a `[PENDING]`.
87
- 3. **Obbligatorio:** Scrivi i test automatici seguendo il pattern **AAA (Arrange, Act, Assert)**.
88
- 4. Esegui i test. Se falliscono, correggi il codice e riesegui. **Se i test falliscono per più di 3 volte consecutive, fermati e chiedi istruzioni all'utente.**
89
-
90
- ### 5. Fase di Chiusura
91
- A completamento della feature (test passati con Exit Code 0):
92
- - Verifica che il risultato consegnato rispetti `project_vision.md`, l'eventuale `VISION_[nome_feature].md` e i non-obiettivi dichiarati.
93
- - **Hybrid:** Se la feature ha implicazioni di design, proponi un **ADR** tramite devPNT e aggiorna il Knowledge Layer (KL).
94
- - **Standalone:** Rivedi gli elementi contrassegnati come `[PENDING]` in `ai_docs/audit/audit_plan.md` per estrarre eventuali novità strutturali. Aggiorna `architecture.md` e `existing_features.md` in `ai_docs/strategic/` se necessario.
95
- - Aggiorna i documenti in `ai_docs/vision/` se l'implementazione ha modificato obiettivi, non-obiettivi, milestone, benefici attesi o segnali di successo.
96
- - Riporta lo stato dei file appena rivisti in `ai_docs/audit/audit_plan.md` a `[ANALYZED]`.
97
- - Aggiorna `features_history.md` impostando lo stato a `[COMPLETED]`.
98
-
99
- ### 6. Gestione delle Sessioni (Handoff)
100
- Quando viene richiesto di mettere in pausa il lavoro o di chiudere la sessione:
101
- - Aggiorna (o crea) il file `ai_docs/audit/handoff.md` descrivendo esattamente a che punto ti trovi (es. "Sto lavorando al file X", "L'ultimo test fallito è Y", "Il prossimo passo è Z"). Questo file serve per preservare il tuo contesto di ragionamento.
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.