@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 CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  Tutte le modifiche significative a questa skill saranno documentate in questo file.
4
4
 
5
+ ## [1.5.0] - 2026-06-13
6
+ ### Added
7
+ - Introdotta la Regola Zero di triage (`L1`, `L2`, `L3`, `Spike`) per rendere il processo proporzionale al rischio.
8
+ - Aggiunta simbiosi esplicita con devPNT: in Hybrid la `M-VISION` guida la milestone, il Master Plan resta roadmap strategica e l'Action Plan governa l'esecuzione tattica.
9
+ - Aggiunti support file dentro la skill runtime: `templates.md`, `ENFORCEMENT.md`, `scripts/sdlc_check.py`.
10
+ - `agentic-sdlc-install-skill` ora installa la skill nativa anche in `~/.gemini/skills/agentic-sdlc/`.
11
+ - Aggiunto validatore meccanico opzionale per frontmatter ANALYSIS, Vision state, indice feature e audit stale.
12
+
13
+ ### Changed
14
+ - Il nome pubblico resta `agentic-sdlc`; la proposta v2 e' stata integrata come evoluzione, non come skill parallela.
15
+ - Aggiornati `agentic-sdlc-init`, template, protocolli generati, README e metadata.
16
+ - La modalita Standalone resta completa; devPNT e' un livello di governance superiore, non un prerequisito.
17
+
5
18
  ## [1.4.0] - 2026-06-07
6
19
  ### Added
7
20
  - Introdotta la governance della **Vision** con nuova struttura `ai_docs/vision/` (`project_vision.md`, `roadmap.md`, `principles.md`, `features/`).
package/README.md CHANGED
@@ -1,86 +1,81 @@
1
- # Agentic SDLC Skill for Claude Code, Gemini CLI & Codex
2
-
3
- A "Documentation-First" SDLC protocol designed to manage the software development lifecycle rigorously. It natively supports **Claude Code** (skill auto-installed in `~/.claude/skills/`), **Gemini CLI** (extension), and **Codex AI** (skill auto-installed in `~/.codex/skills/`).
4
-
1
+ # Agentic SDLC Skill for Claude Code, Gemini CLI & Codex
2
+
3
+ `agentic-sdlc` is a Documentation-First SDLC protocol for AI coding agents. It supports Claude Code, Codex, Gemini CLI, Cursor/Windsurf-style project instructions, and optional devPNT governance.
4
+
5
5
  ## Key Features
6
- - **Documentation-First**: Requires documentation (`ai_docs/`) to be created or updated before writing code.
7
- - **Vision-Guided Governance**: Adds `ai_docs/vision/` and a Vision Gate so features stay aligned with goals, non-goals, and expected benefits.
8
- - **Automatic Audit**: Analyzes the existing architecture and features.
9
- - **Traceable Workflow**: Tracks feature status in `features_history.md`.
10
- - **Built-In Quality**: Native integration of analysis, development, and testing.
11
-
12
- ## Installation
13
-
14
- ### Via npm (recommended - installs for all detected CLIs)
15
-
16
- ```bash
17
- npm install -g @antoneeo/agentic-sdlc-skill
18
- ```
19
-
20
- The `postinstall` script automatically detects installed CLIs and configures each one:
21
-
22
- - **Claude Code**: copies the skill to `~/.claude/skills/agentic-sdlc/`. Restart Claude Code; invoke it through the `Skill` tool as `agentic-sdlc`, or let it trigger automatically from SDLC/audit prompts.
23
- - **Gemini CLI**: suggests `gemini extensions install` (see below).
24
- - **Codex AI**: copies the skill to `$CODEX_HOME/skills/agentic-sdlc/` or `~/.codex/skills/agentic-sdlc/`. Restart Codex to load it.
25
-
26
- `npm uninstall -g @antoneeo/agentic-sdlc-skill` also removes the skills from `~/.claude/skills/agentic-sdlc/` and `~/.codex/skills/agentic-sdlc/`.
27
-
28
- #### Troubleshooting — skill not visible in Claude Code after install
29
-
30
- If after `npm install -g` you do **not** see the line `--- Agentic SDLC Skill Discovery ---` in the npm output, and `~/.claude/skills/agentic-sdlc/` does not exist, the `postinstall` hook was skipped by npm. The most common cause is `ignore-scripts=true` in your npm config (set by some Node installers, corporate IT policies, or security tools).
31
-
32
- The package ships an explicit `agentic-sdlc-install-skill` command that does the same work but does **not** depend on the `postinstall` hook. After `npm install -g`, the bin shim is created regardless of `ignore-scripts`, so you can simply run:
33
-
34
- ```bash
35
- npm install -g @antoneeo/agentic-sdlc-skill@latest
36
- agentic-sdlc-install-skill
37
- ```
38
-
39
- You should see the `--- Agentic SDLC Skill Discovery ---` banner and `📦 Installed Claude Code skill at: ...`. Then restart Claude Code (or Codex) and the skill will be available.
40
-
41
- > **Note on `npx`**: because the package exposes two bin commands, the shorthand `npx @antoneeo/agentic-sdlc-skill agentic-sdlc-install-skill` does not work — npx cannot disambiguate. If you prefer npx, use the explicit `-p` form: `npx -p @antoneeo/agentic-sdlc-skill agentic-sdlc-install-skill`.
42
-
43
- Alternatively, fix the npm config and reinstall (the `postinstall` hook will then run automatically):
44
-
45
- ```bash
46
- npm config set ignore-scripts false
47
- npm uninstall -g @antoneeo/agentic-sdlc-skill
48
- npm install -g @antoneeo/agentic-sdlc-skill@latest
49
- ```
50
-
51
- ### Via Gemini CLI (local alternative)
52
-
53
- > **Tip:** Before installing, copy this folder from the USB drive to your computer's hard drive (for example, `C:\tools\agentic-sdlc-skill`). This keeps the skill available even after the USB drive is removed.
54
-
55
- To install this extension, open a terminal in the folder that contains this README and run:
56
-
57
- ```bash
58
- gemini extensions install .
59
- ```
60
-
61
- *Note: If you are in a different folder, replace `.` with the full path to the skill folder.*
62
-
63
- ## Global Availability
64
- Once installation is complete, the skill is **globally available**. You can close this folder and move to **any other project** on your PC: Gemini CLI will automatically recognize the commands and workflow of the `agentic-sdlc` skill.
65
-
66
- ## Getting Started
67
-
68
- After installation, start Gemini CLI and verify that the skill is available:
69
-
70
- 1. **List available skills:**
71
- ```bash
72
- /skills list all
73
- ```
74
- 2. **Activate the skill:**
75
- The skill activates automatically when it detects requests related to development, audits, or feature management. You can also invoke it explicitly:
76
- > "Use the agentic-sdlc skill to analyze this project"
77
-
78
- ## Project Structure
79
- - `skills/`: Contains the skill logic (`SKILL.md`).
80
- - `references/`: Markdown templates for Vision, architecture, analysis, and feature history.
81
- - `ai_docs/vision/`: Project and feature Vision documents created by the SDLC workflow.
82
- - `gemini-extension.json`: Extension manifest.
83
-
84
- ---
85
- Created by **Antonio Pinto** ([GitHub](https://github.com/Antoneeo))
86
- (c) 2026 Antonio Pinto. All rights reserved.
6
+
7
+ - **Risk-proportional workflow**: L1/L2/L3/Spike triage avoids heavyweight process for trivial work.
8
+ - **Vision-guided governance**: Standalone projects use `ai_docs/vision/`; Hybrid projects use devPNT `M-VISION` as the milestone north star.
9
+ - **Standalone complete**: works fully with local `ai_docs/` without requiring devPNT.
10
+ - **devPNT symbiosis**: when devPNT is available, Master Plan, Action Plan, M-VISION, and governed artifacts become the authoritative planning layer.
11
+ - **Installed support files**: Claude, Codex, and Gemini receive the full skill folder, including `templates.md`, `ENFORCEMENT.md`, and `scripts/sdlc_check.py`.
12
+ - **Mechanical checks**: optional validator for document structure, generated feature history, stale audit areas, and protected-path gates.
13
+
14
+ ## Installation
15
+
16
+ ### Via npm
17
+
18
+ ```bash
19
+ npm install -g @antoneeo/agentic-sdlc-skill@latest
20
+ agentic-sdlc-install-skill
21
+ ```
22
+
23
+ The installer copies `skills/agentic-sdlc-skill/` recursively into native skill locations:
24
+
25
+ - Claude Code: `~/.claude/skills/agentic-sdlc/`
26
+ - Codex: `~/.codex/skills/agentic-sdlc/`
27
+ - Gemini CLI: `~/.gemini/skills/agentic-sdlc/`
28
+
29
+ Restart the relevant agent, or reload skills where the CLI supports it.
30
+
31
+ The global package also exposes:
32
+
33
+ ```bash
34
+ agentic-sdlc-init
35
+ ```
36
+
37
+ Run it inside a project to create `ai_docs/`, Vision documents, strategic docs, audit plan, and agent protocol files (`AGENTS.md`, `CLAUDE.md`, `GEMINI.md`, `.cursorrules`).
38
+
39
+ ## Runtime Shape
40
+
41
+ The actual runtime skill is the folder:
42
+
43
+ ```text
44
+ skills/agentic-sdlc-skill/
45
+ ├── SKILL.md
46
+ ├── templates.md
47
+ ├── ENFORCEMENT.md
48
+ └── scripts/
49
+ └── sdlc_check.py
50
+ ```
51
+
52
+ `SKILL.md` is the entrypoint. Supporting files are loaded or executed only when the agent needs them.
53
+
54
+ ## Standalone vs Hybrid
55
+
56
+ Standalone:
57
+
58
+ - `ai_docs/` is the source of truth.
59
+ - Vision, analysis, audit, handoff, test strategy, and feature history are maintained locally.
60
+
61
+ Hybrid/devPNT:
62
+
63
+ - devPNT governs `M-VISION`, Master Plan, Action Plan, and versioned artifacts.
64
+ - `ai_docs/` remains useful as readable context, fallback, handoff, or shadow copy.
65
+ - Divergence between user request, local Vision, and devPNT `M-VISION` must be surfaced before implementation.
66
+
67
+ ## Gemini Extension Alternative
68
+
69
+ You can still install this folder as a Gemini extension:
70
+
71
+ ```bash
72
+ gemini extensions install .
73
+ ```
74
+
75
+ For native Gemini Agent Skills, the npm installer now copies the skill folder into `~/.gemini/skills/agentic-sdlc/`.
76
+
77
+ ## Created By
78
+
79
+ Created by **Antonio Pinto** ([GitHub](https://github.com/Antoneeo)).
80
+
81
+ (c) 2026 Antonio Pinto. All rights reserved.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-sdlc-skill",
3
- "version": "1.4.0",
4
- "description": "Protocollo SDLC Documentation-First per Gemini CLI.",
3
+ "version": "1.5.0",
4
+ "description": "Protocollo SDLC Documentation-First con triage, Vision governance e integrazione opzionale devPNT.",
5
5
  "author": "Antonio Pinto (https://github.com/Antoneeo)"
6
6
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@antoneeo/agentic-sdlc-skill",
3
- "version": "1.4.0",
4
- "description": "Protocollo SDLC Documentation-First per Claude Code, Gemini CLI e Codex. Auto-installa le skill native in ~/.claude/skills/ e ~/.codex/skills/. Gestisce audit, analisi, sviluppo e chiusura feature con documentazione sincronizzata.",
3
+ "version": "1.5.0",
4
+ "description": "Protocollo SDLC Documentation-First per Claude Code, Gemini CLI e Codex con triage, Vision governance, support file installati e integrazione opzionale devPNT.",
5
5
  "keywords": [
6
6
  "claude-code",
7
7
  "claude-skill",
@@ -25,7 +25,10 @@
25
25
  "preuninstall": "node scripts/preuninstall.js"
26
26
  },
27
27
  "files": [
28
- "skills",
28
+ "skills/agentic-sdlc-skill/SKILL.md",
29
+ "skills/agentic-sdlc-skill/templates.md",
30
+ "skills/agentic-sdlc-skill/ENFORCEMENT.md",
31
+ "skills/agentic-sdlc-skill/scripts/sdlc_check.py",
29
32
  "gemini-extension.json",
30
33
  "references",
31
34
  "README.md",
@@ -1,25 +1,44 @@
1
- # Analisi della Feature: [Nome Feature]
2
-
1
+ ---
2
+ id: F-XXX
3
+ feature: [Nome Feature]
4
+ stato: PLANNED
5
+ livello: L3
6
+ data_inizio: YYYY-MM-DD
7
+ data_fine:
8
+ ---
9
+ # Analisi della Feature: [Nome Feature]
10
+
3
11
  ## Obiettivo
4
12
  - Cosa si vuole ottenere?
5
- - Quali problemi risolve?
13
+ - Quale problema risolve?
6
14
 
7
- ## Allineamento alla Vision
8
- - Quale documento di Vision guida questa feature? (`ai_docs/vision/project_vision.md` o `ai_docs/vision/features/VISION_[nome_feature].md`)
9
- - Quale beneficio atteso realizza?
10
- - Quali non-obiettivi o vincoli di Vision devono essere rispettati?
11
- - Quali segnali di successo dimostreranno che la feature è coerente con la Vision?
15
+ ## Vision della Feature
16
+ - Documento guida: `ai_docs/vision/project_vision.md` o `ai_docs/vision/features/VISION_[nome_feature].md`.
17
+ - Stato della Vision guida: DRAFT oppure APPROVED.
18
+ - Beneficio atteso.
19
+ - Non-obiettivi / fuori scope.
20
+ - Segnali di successo.
12
21
 
13
22
  ## Impatto
14
- - Modifiche ai file esistenti?
15
- - Impatti sulle performance?
16
- - Nuove dipendenze?
17
-
18
- ## Piano d'Azione
19
- 1. [ ] Sviluppo...
20
- 2. [ ] Test...
21
-
22
- ## Strategia di Test
23
- - Test unitari (AAA Pattern)
24
- - Test d'integrazione
25
- - Esempi di input e output attesi
23
+ - File o moduli coinvolti.
24
+ - API, contratti o formati dati impattati.
25
+ - Performance, migrazioni o nuove dipendenze.
26
+
27
+ ## Sicurezza e Threat Model
28
+ - Superfici toccate: input esterni, authN/authZ, crittografia, rete, dati personali, filesystem.
29
+ - Minacce principali.
30
+ - Mitigazioni.
31
+ - Se non c'e' impatto di sicurezza, motivare perche.
32
+
33
+ ## Piano d'Azione
34
+ - [ ] Sviluppo
35
+ - [ ] Test
36
+ - [ ] Chiusura documentale
37
+
38
+ ## Strategia di Test
39
+ - Unit test AAA.
40
+ - Test di integrazione o smoke check.
41
+ - Verifica alternativa se i test automatici non sono eseguibili.
42
+
43
+ ## Diario / Stato Corrente
44
+ - YYYY-MM-DD: Stato iniziale e prossimo passo.
@@ -1,5 +1,7 @@
1
1
  # Vision della Feature: [Nome Feature]
2
2
 
3
+ Usare un file separato solo quando la feature attraversa piu ANALYSIS o piu milestone. Altrimenti tenere la Vision della Feature dentro `ANALYSIS_[feature].md`.
4
+
3
5
  ## Problema
4
6
  - Quale problema specifico risolve questa feature?
5
7
 
@@ -1,6 +1,5 @@
1
- # Storico delle Feature
2
-
3
- | ID | Nome Feature | Stato | Data Inizio | Data Fine | Doc. Analisi | Note |
4
- |:---|:-------------|:------|:------------|:----------|:-------------|:-----|
5
- | [ID] | Nome | [PLANNED] | YYYY-MM-DD | - | [ANALYSIS_nome.md] | In attesa |
6
- | [ID] | Altra | [COMPLETED] | YYYY-MM-DD | YYYY-MM-DD | [ANALYSIS_altra.md] | Conclusa |
1
+ <!-- GENERATED by agentic-sdlc - update manually only if the project does not use sdlc_check.py index. -->
2
+ # Feature History
3
+
4
+ | ID | Feature Name | Level | Status | Start Date | End Date | Analysis Doc |
5
+ |:---|:---|:---|:---|:---|:---|:---|
@@ -1,6 +1,7 @@
1
1
  # Principi di Vision
2
+ Stato: DRAFT
2
3
 
3
- I principi in questo file guidano trade-off, scope e decisioni tecniche quando più soluzioni sono possibili.
4
+ I principi in questo file guidano trade-off, scope e decisioni tecniche quando piu soluzioni sono possibili.
4
5
 
5
6
  ## Principi
6
7
  - **[Principio]**: [Descrizione pratica del criterio decisionale].
@@ -9,4 +10,4 @@ I principi in questo file guidano trade-off, scope e decisioni tecniche quando p
9
10
  - Preferire [A] rispetto a [B] quando [condizione].
10
11
 
11
12
  ## Anti-Pattern Strategici
12
- - [Comportamento o direzione da evitare perché devia dalla Vision].
13
+ - [Comportamento o direzione da evitare perche devia dalla Vision].
@@ -1,13 +1,14 @@
1
1
  # Vision del Progetto
2
+ Stato: DRAFT
2
3
 
3
4
  ## North Star
4
- - Qual è l'obiettivo finale che il progetto deve preservare nel tempo?
5
+ - Qual e' l'obiettivo finale che il progetto deve preservare nel tempo?
5
6
 
6
7
  ## Problema Centrale
7
8
  - Quale problema reale risolve il progetto?
8
9
 
9
10
  ## Utenti Target
10
- - Chi sono gli utenti o stakeholder principali?
11
+ - Chi sono utenti o stakeholder principali?
11
12
 
12
13
  ## Valore Atteso
13
14
  - Quale beneficio misurabile o osservabile deve produrre il progetto?
@@ -18,7 +19,7 @@
18
19
 
19
20
  ## Non-Obiettivi
20
21
  - [Cosa il progetto non vuole diventare]
21
- - [Cosa è esplicitamente fuori scope]
22
+ - [Cosa e' esplicitamente fuori scope]
22
23
 
23
24
  ## Segnali di Successo
24
25
  - [Indicatore qualitativo o quantitativo]
@@ -1,8 +1,9 @@
1
1
  # Roadmap della Vision
2
+ Stato: DRAFT
2
3
 
3
- | Milestone | Beneficio Atteso | Priorità | Segnali di Successo | Stato |
4
+ | Milestone | Beneficio Atteso | Priorita | Segnali di Successo | Stato |
4
5
  |:---|:---|:---|:---|:---|
5
6
  | M1 | [Beneficio] | Alta | [Segnale] | [PLANNED] |
6
7
 
7
8
  ## Note di Direzione
8
- - Decisioni strategiche o cambi di priorità rilevanti.
9
+ - Decisioni strategiche o cambi di priorita rilevanti.
package/scripts/init.js CHANGED
@@ -44,49 +44,65 @@ const files = {
44
44
  // 2. Operational Protocol (System Prompt)
45
45
  const protocolContent = `# "Agentic SDLC" Operational Protocol
46
46
 
47
- You are a senior software engineer strictly following a "Documentation-First" and "Vision-Guided" process. NEVER implement code without completing the preceding documentation steps. Use your tools (file read/write, shell execution) to adhere to the following phases.
48
-
49
- ## 1. Audit and Alignment Phase
50
- Before responding to any operational request:
51
- - Check for the existence of the \`ai_docs/\` and \`ai_docs/vision/\` folders.
52
- - If \`ai_docs/\` is missing or essential documents are absent, create them by analyzing the source code:
53
- 1. \`ai_docs/vision/project_vision.md\`: North Star, target users, goals, non-goals, success signals.
54
- 2. \`ai_docs/vision/roadmap.md\`: Milestones, expected benefits, priorities, success signals.
55
- 3. \`ai_docs/vision/principles.md\`: Stable decision principles and strategic anti-patterns.
56
- 4. \`ai_docs/strategic/architecture.md\`: Tech Stack, Directory Structure, Architecture Patterns.
57
- 5. \`ai_docs/strategic/existing_features.md\`: List of current features.
58
- 6. \`ai_docs/strategic/features_history.md\`: Feature history table (ID, Name, Status, Dates).
59
- 7. \`ai_docs/audit/audit_plan.md\`: Codebase analysis plan in batches.
47
+ You are a senior software engineer following a Documentation-First and Vision-Guided process. The process is proportional to risk: do not apply heavyweight governance to trivial work, but never bypass Vision, security, or design gates for significant changes.
48
+
49
+ ## 0. Triage First
50
+ Classify every operational request:
51
+ - L1 Trivial: small local fix, no API/dependency/behavior expansion. Implement with relevant tests; no new docs.
52
+ - L2 Small: clear root cause, up to 3 files, low risk. Provide mini-analysis in the response; test.
53
+ - L3 Significant: public contract, user-visible behavior, security-sensitive area, new dependency, architectural impact, or more than 3 files. Use the full workflow below.
54
+ - Spike: time-boxed exploration; document result in \`ai_docs/solutions/SPIKE_[topic].md\`; production work must be reclassified.
55
+
56
+ Security-sensitive areas are never L1.
57
+
58
+ ## 1. Mode Selection
59
+ - Standalone: if devPNT is unavailable, use \`ai_docs/\` as the complete source of truth.
60
+ - Hybrid/devPNT: if devPNT is available and configured for this project, use it for governed state. The devPNT M-VISION is the milestone north star, Master Plan is strategic roadmap, Action Plan is tactical execution, and governed artifacts live in devPNT.
61
+ - Do not create silent double truth. In Hybrid, \`ai_docs/\` is human-readable context, fallback, handoff, or shadow; devPNT governs plans and versioned artifacts.
62
+
63
+ ## 2. Audit and Alignment
64
+ For L3 or explicit audit requests:
65
+ - Check \`ai_docs/\`, \`ai_docs/vision/\`, \`ai_docs/strategic/\`, \`ai_docs/audit/\`, and \`ai_docs/solutions/\`.
66
+ - If missing, create them by analyzing the codebase in batches.
60
67
  - Never treat architecture or feature history as a substitute for Vision.
61
68
 
62
- ## 2. Vision Gate
63
- For every new feature request or significant behavior change:
64
- - Read \`ai_docs/vision/project_vision.md\`, \`ai_docs/vision/roadmap.md\`, and \`ai_docs/vision/principles.md\`.
65
- - If Vision documents are missing, empty, or ambiguous, create or update them before technical analysis.
66
- - For significant features, create \`ai_docs/vision/features/VISION_[feature_name].md\` covering Problem, Expected Benefit, Users/Stakeholders, Success Signals, Non-Goals, and linked principles.
67
- - If the request conflicts with Vision, stop and surface the conflict instead of implementing silently.
68
-
69
- ## 3. Request Analysis Phase
70
- For every new feature request:
71
- - Create \`ai_docs/solutions/ANALYSIS_[feature_name].md\` (Objective, Vision Alignment, Impact, Action Plan, Test Strategy).
72
- - Add an entry in \`ai_docs/strategic/features_history.md\` with status \`[PLANNED]\`.
73
-
74
- ## 4. Development and Testing Phase
75
- Only after Phases 2 and 3 are complete:
76
- 1. Update feature status to \`[IN_PROGRESS]\` in \`ai_docs/strategic/features_history.md\`.
77
- 2. Implement code surgically following the plan.
78
- 3. **Mandatory:** Write automated tests following the **AAA (Arrange, Act, Assert)** pattern.
79
- 4. Execute tests. If they fail, fix and re-run until Exit Code is 0.
80
-
81
- ## 5. Closing Phase
82
- Upon feature completion:
83
- - Verify the delivered result against \`ai_docs/vision/project_vision.md\` and the feature Vision document, including non-goals.
84
- - Update \`ai_docs/strategic/architecture.md\` and \`ai_docs/strategic/existing_features.md\` if necessary.
85
- - Update \`ai_docs/vision/\` documents if goals, non-goals, roadmap, expected benefits, or success signals changed.
86
- - Update \`ai_docs/strategic/features_history.md\` setting status to \`[COMPLETED]\`.
69
+ ## 3. Vision Gate
70
+ Standalone:
71
+ - Read \`ai_docs/vision/project_vision.md\`, \`roadmap.md\`, and \`principles.md\`.
72
+ - Vision documents start as \`Stato: DRAFT\`; DRAFT informs but does not block an explicit user request.
73
+ - \`Stato: APPROVED\` is binding: surface conflicts before implementation.
74
+
75
+ Hybrid/devPNT:
76
+ - Read the active M-VISION before design or code.
77
+ - Verify the request advances a stated benefit or success signal.
78
+ - If request, local Vision, and M-VISION diverge, stop and surface the conflict.
79
+
80
+ ## 4. Request Analysis
81
+ For L3 in Standalone:
82
+ - Create or update \`ai_docs/solutions/ANALYSIS_[feature].md\`.
83
+ - Include Objective, Feature Vision, Impact, Security and Threat Model, Action Plan, Test Strategy, and Diary/Current State.
84
+
85
+ For L3 in Hybrid:
86
+ - Restore Master Plan, Action Plan, and related devPNT artifacts.
87
+ - Use devPNT for D-UC, P-TM, E-ISP, E-TDD, E-TP, ADR, and plan updates.
88
+ - Use Markdown shadows only as readable mirrors, never as the authoritative source over devPNT.
89
+
90
+ ## 5. Development and Testing
91
+ Only after the required gate for the triage level:
92
+ 1. Implement surgically following the plan.
93
+ 2. Write or update automated tests where possible, using AAA for unit tests.
94
+ 3. Run tests/lint/smoke checks. If the environment cannot run them, document the alternative verification.
95
+ 4. After 3 consecutive test runs without progress, stop and ask for guidance.
96
+
97
+ ## 6. Closing
98
+ - Verify the result against local Vision or devPNT M-VISION.
99
+ - Update only documents actually impacted.
100
+ - In Hybrid, propose ADR/KL updates when architectural facts changed.
101
+ - Keep docs and code in the same commit/PR.
87
102
  `;
88
103
 
89
104
  const projectVisionBoilerplate = `# Project Vision
105
+ Stato: DRAFT
90
106
 
91
107
  ## North Star
92
108
  - TBD
@@ -105,6 +121,7 @@ const projectVisionBoilerplate = `# Project Vision
105
121
  `;
106
122
 
107
123
  const roadmapBoilerplate = `# Vision Roadmap
124
+ Stato: DRAFT
108
125
 
109
126
  | Milestone | Expected Benefit | Priority | Success Signal | Status |
110
127
  |:---|:---|:---|:---|:---|
@@ -112,6 +129,7 @@ const roadmapBoilerplate = `# Vision Roadmap
112
129
  `;
113
130
 
114
131
  const principlesBoilerplate = `# Vision Principles
132
+ Stato: DRAFT
115
133
 
116
134
  ## Principles
117
135
  - TBD
@@ -120,12 +138,12 @@ const principlesBoilerplate = `# Vision Principles
120
138
  - TBD
121
139
  `;
122
140
 
123
- const historyBoilerplate = `# Feature History
124
-
125
- | ID | Feature Name | Status | Start Date | End Date | Analysis Doc | Notes |
126
- |:---|:---|:---|:---|:---|:---|:---|
127
- | 000 | Project Init | [COMPLETED] | - | - | - | Automatic initialization |
128
- `;
141
+ const historyBoilerplate = `<!-- GENERATED by agentic-sdlc - update manually only if the project does not use sdlc_check.py index. -->
142
+ # Feature History
143
+
144
+ | ID | Feature Name | Level | Status | Start Date | End Date | Analysis Doc |
145
+ |:---|:---|:---|:---|:---|:---|:---|
146
+ `;
129
147
 
130
148
  console.log('🚀 Initializing Agentic SDLC workflow (Discovery Mode)...');
131
149
 
@@ -155,7 +173,7 @@ writeIfNotExists(files.principles, principlesBoilerplate, 'Vision Principles Boi
155
173
  writeIfNotExists(files.architecture, '# Project Architecture\n\n- Stack:\n- Patterns:\n', 'Architecture Boilerplate');
156
174
  writeIfNotExists(files.existingFeatures, '# Existing Features\n\n- \n', 'Features Boilerplate');
157
175
  writeIfNotExists(files.featuresHistory, historyBoilerplate, 'History Table');
158
- writeIfNotExists(files.auditPlan, '# Audit Plan\n\n| Directory/File | Status | Notes |\n|:---|:---|:---|\n| / | [PENDING] | Initial analysis |\n', 'Audit Plan');
176
+ writeIfNotExists(files.auditPlan, '# Audit Plan\n\nStates: PENDING | ANALYZED | SKIPPED.\n\n| Percorso | Stato | Riferimento | Note |\n|---|---|---|---|\n| / | PENDING | - | Initial analysis |\n', 'Audit Plan');
159
177
 
160
178
  // 5. Client Discovery and Configuration
161
179
  console.log('\n--- Environment Analysis ---');
@@ -10,9 +10,12 @@ const SKILL_SOURCE = path.join(PACKAGE_ROOT, 'skills', 'agentic-sdlc-skill');
10
10
  const CLAUDE_HOME = process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), '.claude');
11
11
  const CLAUDE_SKILLS_DIR = path.join(CLAUDE_HOME, 'skills');
12
12
  const CLAUDE_SKILL_TARGET = path.join(CLAUDE_SKILLS_DIR, 'agentic-sdlc');
13
- const CODEX_HOME = process.env.CODEX_HOME || path.join(os.homedir(), '.codex');
14
- const CODEX_SKILLS_DIR = path.join(CODEX_HOME, 'skills');
15
- const CODEX_SKILL_TARGET = path.join(CODEX_SKILLS_DIR, 'agentic-sdlc');
13
+ const CODEX_HOME = process.env.CODEX_HOME || path.join(os.homedir(), '.codex');
14
+ const CODEX_SKILLS_DIR = path.join(CODEX_HOME, 'skills');
15
+ const CODEX_SKILL_TARGET = path.join(CODEX_SKILLS_DIR, 'agentic-sdlc');
16
+ const GEMINI_HOME = process.env.GEMINI_HOME || path.join(os.homedir(), '.gemini');
17
+ const GEMINI_SKILLS_DIR = path.join(GEMINI_HOME, 'skills');
18
+ const GEMINI_SKILL_TARGET = path.join(GEMINI_SKILLS_DIR, 'agentic-sdlc');
16
19
 
17
20
  function checkCommand(cmd) {
18
21
  try {
@@ -56,7 +59,7 @@ function installClaudeSkill() {
56
59
  }
57
60
  }
58
61
 
59
- function installCodexSkill() {
62
+ function installCodexSkill() {
60
63
  if (!fs.existsSync(SKILL_SOURCE)) {
61
64
  console.log(`⚠️ Skill source not found at ${SKILL_SOURCE}; skipping Codex install.`);
62
65
  return false;
@@ -72,15 +75,37 @@ function installCodexSkill() {
72
75
  console.log(` Manual install: copy "${SKILL_SOURCE}" to "${CODEX_SKILL_TARGET}".`);
73
76
  return false;
74
77
  }
75
- }
78
+ }
79
+
80
+ function installGeminiSkill() {
81
+ if (!fs.existsSync(SKILL_SOURCE)) {
82
+ console.log(`⚠️ Skill source not found at ${SKILL_SOURCE}; skipping Gemini install.`);
83
+ return false;
84
+ }
85
+ try {
86
+ fs.mkdirSync(GEMINI_SKILLS_DIR, { recursive: true });
87
+ copyRecursive(SKILL_SOURCE, GEMINI_SKILL_TARGET);
88
+ console.log(`📦 Installed Gemini skill at: ${GEMINI_SKILL_TARGET}`);
89
+ console.log(' Run "gemini skills reload" or restart Gemini CLI to load it.');
90
+ return true;
91
+ } catch (err) {
92
+ console.log(`⚠️ Failed to install Gemini skill: ${err.message}`);
93
+ console.log(` Manual install: copy "${SKILL_SOURCE}" to "${GEMINI_SKILL_TARGET}".`);
94
+ return false;
95
+ }
96
+ }
76
97
 
77
98
  function hasCodexHome() {
78
99
  return Boolean(process.env.CODEX_HOME) || fs.existsSync(CODEX_HOME);
79
100
  }
80
101
 
81
- function hasClaudeHome() {
82
- return Boolean(process.env.CLAUDE_CONFIG_DIR) || fs.existsSync(CLAUDE_HOME);
83
- }
102
+ function hasClaudeHome() {
103
+ return Boolean(process.env.CLAUDE_CONFIG_DIR) || fs.existsSync(CLAUDE_HOME);
104
+ }
105
+
106
+ function hasGeminiHome() {
107
+ return Boolean(process.env.GEMINI_HOME) || fs.existsSync(GEMINI_HOME);
108
+ }
84
109
 
85
110
  console.log('\n--- Agentic SDLC Skill Discovery ---');
86
111
 
@@ -92,10 +117,11 @@ if (checkCommand('claude') || hasClaudeHome()) {
92
117
  installClaudeSkill();
93
118
  }
94
119
 
95
- if (checkCommand('gemini')) {
96
- console.log(`✅ Detected: Gemini CLI`);
97
- detected = true;
98
- }
120
+ if (checkCommand('gemini') || hasGeminiHome()) {
121
+ console.log(`✅ Detected: Gemini CLI`);
122
+ detected = true;
123
+ installGeminiSkill();
124
+ }
99
125
 
100
126
  if (checkCommand('codex') || hasCodexHome()) {
101
127
  console.log(`✅ Detected: Codex AI`);
@@ -6,8 +6,10 @@ const os = require('os');
6
6
 
7
7
  const CLAUDE_HOME = process.env.CLAUDE_CONFIG_DIR || path.join(os.homedir(), '.claude');
8
8
  const CLAUDE_SKILL_TARGET = path.join(CLAUDE_HOME, 'skills', 'agentic-sdlc');
9
- const CODEX_HOME = process.env.CODEX_HOME || path.join(os.homedir(), '.codex');
10
- const CODEX_SKILL_TARGET = path.join(CODEX_HOME, 'skills', 'agentic-sdlc');
9
+ const CODEX_HOME = process.env.CODEX_HOME || path.join(os.homedir(), '.codex');
10
+ const CODEX_SKILL_TARGET = path.join(CODEX_HOME, 'skills', 'agentic-sdlc');
11
+ const GEMINI_HOME = process.env.GEMINI_HOME || path.join(os.homedir(), '.gemini');
12
+ const GEMINI_SKILL_TARGET = path.join(GEMINI_HOME, 'skills', 'agentic-sdlc');
11
13
 
12
14
  function removeSkill(target, label) {
13
15
  if (!fs.existsSync(target)) return;
@@ -19,5 +21,6 @@ function removeSkill(target, label) {
19
21
  }
20
22
  }
21
23
 
22
- removeSkill(CLAUDE_SKILL_TARGET, 'Claude Code');
23
- removeSkill(CODEX_SKILL_TARGET, 'Codex');
24
+ removeSkill(CLAUDE_SKILL_TARGET, 'Claude Code');
25
+ removeSkill(CODEX_SKILL_TARGET, 'Codex');
26
+ removeSkill(GEMINI_SKILL_TARGET, 'Gemini');