@antoneeo/agentic-sdlc-skill 1.0.4 → 1.0.6

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 ADDED
@@ -0,0 +1,33 @@
1
+ # Changelog - Agentic SDLC Skill
2
+
3
+ Tutte le modifiche significative a questa skill saranno documentate in questo file.
4
+
5
+ ## [1.0.6] - 2026-05-10
6
+ ### Aggiunto
7
+ - Sincronizzazione completa dei file del progetto nel repository.
8
+ - Supporto per il tracciamento delle feature e audit plan.
9
+
10
+ ## [1.0.5] - 2026-04-17
11
+ ### Aggiunto
12
+ - File `CHANGELOG.md` per il tracciamento delle versioni.
13
+
14
+ ## [1.0.4] - 2026-04-17
15
+ ### Modificato
16
+ - `README.md`: Aggiunte istruzioni specifiche per l'installazione da chiavetta USB e chiarimenti sulla disponibilità globale della skill.
17
+
18
+ ## [1.0.3] - 2026-04-17
19
+ ### Aggiunto
20
+ - Primo `README.md` con istruzioni di installazione e attivazione.
21
+
22
+ ## [1.0.2] - 2026-04-17
23
+ ### Corretto
24
+ - Riorganizzata la struttura delle cartelle secondo gli standard di Gemini CLI (`skills/agentic-sdlc-skill/SKILL.md`).
25
+ - Aggiunto frontmatter YAML a `SKILL.md` per la scoperta automatica.
26
+
27
+ ## [1.0.1] - 2026-04-17
28
+ ### Corretto
29
+ - Aggiunto `gemini-extension.json` (manifest dell'estensione) mancante nella versione iniziale.
30
+
31
+ ## [1.0.0] - 2026-04-17
32
+ ### Iniziale
33
+ - Prima pubblicazione della skill (Protocollo SDLC Documentation-First).
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-sdlc-skill",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Protocollo SDLC Documentation-First per Gemini CLI.",
5
5
  "author": "antoneeo"
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antoneeo/agentic-sdlc-skill",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "Protocollo SDLC Documentation-First per Gemini CLI. Gestisce audit, analisi, sviluppo e chiusura feature con documentazione sincronizzata.",
5
5
  "keywords": [
6
6
  "gemini-cli",
@@ -19,6 +19,7 @@
19
19
  "gemini-extension.json",
20
20
  "references",
21
21
  "README.md",
22
+ "CHANGELOG.md",
22
23
  "assets",
23
24
  "scripts"
24
25
  ]
@@ -0,0 +1,93 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ const cwd = process.cwd();
7
+
8
+ // 1. Definizione dei percorsi
9
+ const directories = [
10
+ path.join(cwd, 'docs'),
11
+ path.join(cwd, 'docs', 'solutions')
12
+ ];
13
+
14
+ const files = {
15
+ architecture: path.join(cwd, 'docs', 'architecture.md'),
16
+ existingFeatures: path.join(cwd, 'docs', 'existing_features.md'),
17
+ featuresHistory: path.join(cwd, 'docs', 'features_history.md'),
18
+ claudeConfig: path.join(cwd, 'CLAUDE.md'),
19
+ geminiConfig: path.join(cwd, 'GEMINI.md')
20
+ };
21
+
22
+ // 2. Il contenuto del Protocollo (System Prompt)
23
+ const protocolContent = `# Protocollo Operativo "Agentic SDLC"
24
+
25
+ Sei un ingegnere del software senior che segue rigorosamente un processo "Documentation-First". Non implementare MAI codice senza aver completato i passaggi documentali precedenti. Utilizza i tool a tua disposizione (lettura file, scrittura file, esecuzione comandi) per rispettare le seguenti fasi.
26
+
27
+ ## 1. Fase di Audit e Allineamento
28
+ Prima di rispondere a qualsiasi richiesta operativa:
29
+ - Controlla l'esistenza della cartella \`/docs\`.
30
+ - Se \`/docs\` non esiste o mancano i documenti fondamentali, creali analizzando il codice sorgente:
31
+ 1. \`docs/architecture.md\`: Deve contenere Stack Tecnologico, Struttura delle Directory e Pattern architetturali principali.
32
+ 2. \`docs/existing_features.md\`: Elenco puntato delle funzionalità già presenti.
33
+ 3. \`docs/features_history.md\`: Deve essere aggiornato rigorosamente con questo schema:
34
+ | ID | Nome Feature | Stato | Data Inizio | Data Fine | Doc. Analisi | Note |
35
+
36
+ ## 2. Fase di Analisi della Richiesta
37
+ Per ogni nuova feature:
38
+ - Crea \`docs/solutions/ANALYSIS_[nome_feature].md\` (Obiettivo, Impatto, Piano, Strategia Test).
39
+ - Aggiungi una riga in \`docs/features_history.md\` con stato \`[PLANNED]\`.
40
+
41
+ ## 3. Fase di Sviluppo e Test
42
+ Solo dopo la Fase 2:
43
+ 1. Aggiorna lo stato a \`[IN_PROGRESS]\`.
44
+ 2. Implementa il codice.
45
+ 3. **Obbligatorio:** Scrivi i test automatici (pattern AAA).
46
+ 4. Esegui i test. Se falliscono, correggi e riesegui finché Exit Code non è 0.
47
+
48
+ ## 4. Fase di Chiusura
49
+ A completamento:
50
+ - Aggiorna \`architecture.md\` e \`existing_features.md\` se necessario.
51
+ - Aggiorna \`docs/features_history.md\` impostando lo stato a \`[COMPLETED]\`.
52
+ `;
53
+
54
+ // Contenuto per l'inizializzazione della tabella
55
+ const historyBoilerplate = `# Storico Features
56
+
57
+ | ID | Nome Feature | Stato | Data Inizio | Data Fine | Doc. Analisi | Note |
58
+ |:---|:---|:---|:---|:---|:---|:---|
59
+ | 000 | Init Progetto | [COMPLETED] | - | - | - | Inizializzazione automatica |
60
+ `;
61
+
62
+ console.log('🚀 Inizializzazione del workflow Agentic SDLC...');
63
+
64
+ // 3. Creazione delle cartelle
65
+ directories.forEach(dir => {
66
+ if (!fs.existsSync(dir)) {
67
+ fs.mkdirSync(dir, { recursive: true });
68
+ console.log(`📁 Creata directory: ${path.relative(cwd, dir)}`);
69
+ }
70
+ });
71
+
72
+ // 4. Scrittura dei file di base se non esistono
73
+ const writeIfNotExists = (filePath, content, description) => {
74
+ if (!fs.existsSync(filePath)) {
75
+ fs.writeFileSync(filePath, content, 'utf8');
76
+ console.log(`📄 Creato file: ${path.relative(cwd, filePath)} (${description})`);
77
+ } else {
78
+ console.log(`⏭️ Ignorato: ${path.relative(cwd, filePath)} esiste già.`);
79
+ }
80
+ };
81
+
82
+ writeIfNotExists(files.architecture, '# Architettura del Progetto\n\n- Stack:\n- Pattern:\n', 'Boilerplate Architettura');
83
+ writeIfNotExists(files.existingFeatures, '# Funzionalità Esistenti\n\n- \n', 'Boilerplate Funzionalità');
84
+ writeIfNotExists(files.featuresHistory, historyBoilerplate, 'Tabella Storico');
85
+
86
+ // 5. Scrittura delle configurazioni per le CLI (Claude e Gemini)
87
+ writeIfNotExists(files.claudeConfig, protocolContent, 'Regole per Claude Code');
88
+ writeIfNotExists(files.geminiConfig, protocolContent, 'Regole per Gemini CLI');
89
+
90
+ console.log('\n✅ Setup completato con successo!');
91
+ console.log('💡 Istruzioni d\'uso:');
92
+ console.log(' - Claude Code rileverà automaticamente CLAUDE.md al prossimo avvio.');
93
+ console.log(' - Per Gemini CLI, usa il file GEMINI.md come system prompt passandolo col flag appropriato (es: --system-prompt-file GEMINI.md).');
@@ -11,33 +11,49 @@ Questa skill implementa un workflow rigoroso per lo sviluppo software, assicuran
11
11
 
12
12
  ### 1. Fase di Audit e Allineamento
13
13
  Prima di rispondere a qualsiasi richiesta operativa, verifica lo stato della documentazione del progetto.
14
- - Controlla l'esistenza della cartella `/docs`.
15
- - Se `/docs` non esiste o mancano i documenti fondamentali, creali analizzando il codice sorgente utilizzando i seguenti template:
16
- 1. `docs/architecture.md`: Usa `references/architecture_template.md`. Deve contenere Stack Tecnologico, Struttura delle Directory e Pattern architetturali principali.
17
- 2. `docs/existing_features.md`: Usa `references/existing_features_template.md`. Elenco puntato delle funzionalità già presenti.
18
- 3. `docs/features_history.md`: Usa `references/features_history_template.md`. Aggiorna rigorosamente lo stato delle feature.
14
+ - Controlla la presenza di `ai_docs/handoff.md`. Se esiste, leggilo per riprendere il contesto dell'ultima sessione.
15
+ - Controlla l'esistenza della cartella `/ai_docs`.
16
+ - 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:
17
+ 1. **Mappatura:** Crea un file di tracciamento (es. `ai_docs/audit_plan.md`) elencando le macro-directory e i file chiave da analizzare.
18
+ 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").
19
+ 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.
20
+ 4. **Creazione Documenti:** Sulla base dei risultati dell'audit, compila i documenti fondamentali rispettando i seguenti formati:
21
+ - `ai_docs/architecture.md`: Deve seguire questa struttura:
22
+ - `# Architettura del Progetto`
23
+ - `## Stack Tecnologico`
24
+ - `## Struttura delle Directory`
25
+ - `## Pattern Architetturali`
26
+ - `ai_docs/existing_features.md`: Deve seguire questa struttura:
27
+ - `# Funzionalità Esistenti`
28
+ - Elenco puntato nel formato: `- [ID] **Nome Feature**: Descrizione`
29
+ - `ai_docs/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]`.
19
30
 
20
31
  ### 2. Fase di Analisi della Richiesta
21
32
  Per ogni nuova feature richiesta dall'utente:
22
- - Crea `docs/solutions/ANALYSIS_[nome_feature].md` usando `references/analysis_template.md` (Obiettivo, Impatto, Piano, Strategia Test).
23
- - Aggiungi una riga in `docs/features_history.md` con stato `[PLANNED]`.
33
+ - Crea `ai_docs/solutions/ANALYSIS_[nome_feature].md`. Il documento deve obbligatoriamente seguire questa struttura:
34
+ - `# Analisi della Feature: [Nome Feature]`
35
+ - `## Obiettivo` (Cosa si vuole ottenere e quali problemi risolve)
36
+ - `## Impatto` (Modifiche ai file esistenti, performance, nuove dipendenze)
37
+ - `## Piano d'Azione` (Elenco di task con checkbox `[ ]`)
38
+ - `## Strategia di Test` (Test unitari AAA, test d'integrazione, esempi)
39
+ - Aggiungi la nuova feature in `ai_docs/features_history.md` con stato `[PLANNED]`.
24
40
 
25
41
  ### 3. Fase di Sviluppo e Test
26
42
  Solo dopo aver completato la Fase 2:
27
- 1. Aggiorna lo stato della feature in `docs/features_history.md` a `[IN_PROGRESS]`.
28
- 2. Implementa il codice in modo chirurgico.
43
+ 1. Aggiorna lo stato della feature in `ai_docs/features_history.md` a `[IN_PROGRESS]`.
44
+ 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_plan.md` reimpostando (o aggiungendo) il suo stato a `[PENDING]`.
29
45
  3. **Obbligatorio:** Scrivi i test automatici seguendo il pattern AAA (Arrange, Act, Assert).
30
- 4. Esegui i test. Se falliscono, correggi e riesegui finché l'Exit Code non è 0.
46
+ 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.**
31
47
 
32
48
  ### 4. Fase di Chiusura
33
- A completamento della feature:
34
- - Aggiorna `architecture.md` e `existing_features.md` se necessario (es. nuove dipendenze o nuove capacità di sistema).
35
- - Aggiorna `docs/features_history.md` impostando lo stato a `[COMPLETED]` e aggiungendo la data di fine.
49
+ A completamento della feature (test passati con Exit Code 0):
50
+ - Rivedi gli elementi contrassegnati come `[PENDING]` in `ai_docs/audit_plan.md` per estrarre eventuali novità strutturali.
51
+ - Aggiorna `architecture.md` e `existing_features.md` sulla base di questa revisione se la feature ha introdotto nuove dipendenze, pattern o capacità.
52
+ - Riporta lo stato dei file appena rivisti in `ai_docs/audit_plan.md` a `[ANALYZED]`.
53
+ - Aggiorna `ai_docs/features_history.md` impostando lo stato a `[COMPLETED]`.
36
54
 
37
- ## Risorse Disponibili
55
+ ### 5. Gestione delle Sessioni (Handoff)
56
+ Quando viene richiesto di mettere in pausa il lavoro o di chiudere la sessione:
57
+ - Aggiorna (o crea) il file `ai_docs/handoff.md` descrivendo esattamente a che punto ti trovi (es. "Sto lavorando al file X", "L'ultimo test fallito è Y", "Il prossimo passo è Z").
58
+ - Questo file serve per preservare il tuo contesto di ragionamento. Quando avvierai una nuova sessione, la Fase 1 ti chiederà di leggerlo per riprendere il lavoro in modo fluido.
38
59
 
39
- ### References
40
- - `architecture_template.md`: Struttura per il documento di architettura.
41
- - `existing_features_template.md`: Formato per l'elenco delle feature esistenti.
42
- - `features_history_template.md`: Schema per la tabella dello storico delle feature.
43
- - `analysis_template.md`: Guida per la creazione del documento di analisi di una nuova feature.