@antoneeo/agentic-sdlc-skill 1.1.0 → 1.2.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 +12 -0
- package/README.md +19 -3
- package/package.json +6 -3
- package/scripts/postinstall.js +43 -1
- package/scripts/preuninstall.js +16 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Tutte le modifiche significative a questa skill saranno documentate in questo file.
|
|
4
4
|
|
|
5
|
+
## [1.2.0] - 2026-05-10
|
|
6
|
+
### Added
|
|
7
|
+
- **Auto-installazione skill nativa Claude Code**: il `postinstall` ora copia `skills/agentic-sdlc-skill/` in `~/.claude/skills/agentic-sdlc/` quando rileva il CLI `claude`. La skill diventa disponibile come `agentic-sdlc` nel tool `Skill` di Claude Code dopo riavvio.
|
|
8
|
+
- Nuovo script `preuninstall.js` che rimuove la skill da `~/.claude/skills/agentic-sdlc/` durante `npm uninstall`.
|
|
9
|
+
- Fallback `copyRecursive` per Node < 16.7 (quando `fs.cpSync` non disponibile).
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- `package.json`: bump versione a 1.2.0, aggiunti keyword `claude-code` e `claude-skill`, descrizione aggiornata per riflettere supporto Claude Code nativo.
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- Risolto bug per cui il pacchetto npm non registrava la skill in Claude Code (la cartella `~/.claude/skills/` non veniva mai popolata).
|
|
16
|
+
|
|
5
17
|
## [1.1.0] - 2026-05-10
|
|
6
18
|
### Fixed
|
|
7
19
|
- Fixed path inconsistencies in the generated `CLAUDE.md`, `GEMINI.md`, and `.cursorrules` protocols. Added full paths (`ai_docs/strategic/`) to all document references to ensure AI agents (like Claude) can correctly find and update them.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# Agentic SDLC Skill for Gemini CLI
|
|
1
|
+
# Agentic SDLC Skill for Claude Code, Gemini CLI & Codex
|
|
2
2
|
|
|
3
|
-
Protocollo SDLC "Documentation-First" progettato per gestire in modo rigoroso il ciclo di vita dello sviluppo software
|
|
3
|
+
Protocollo SDLC "Documentation-First" progettato per gestire in modo rigoroso il ciclo di vita dello sviluppo software. Supporta nativamente **Claude Code** (skill auto-installata in `~/.claude/skills/`), **Gemini CLI** (extension) e **Codex AI** (hooks).
|
|
4
4
|
|
|
5
5
|
## Caratteristiche principali
|
|
6
6
|
- **Documentation-First**: Obbliga alla creazione/aggiornamento della documentazione (`docs/`) prima di scrivere codice.
|
|
@@ -8,7 +8,23 @@ Protocollo SDLC "Documentation-First" progettato per gestire in modo rigoroso il
|
|
|
8
8
|
- **Workflow Tracciabile**: Gestisce lo stato delle feature in `features_history.md`.
|
|
9
9
|
- **Qualità Garantita**: Integrazione nativa di analisi, sviluppo e test.
|
|
10
10
|
|
|
11
|
-
## Installazione
|
|
11
|
+
## Installazione
|
|
12
|
+
|
|
13
|
+
### Via npm (consigliato — installa per tutti i CLI rilevati)
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install -g @antoneeo/agentic-sdlc-skill
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Il `postinstall` rileva automaticamente i CLI installati e configura ciascuno:
|
|
20
|
+
|
|
21
|
+
- **Claude Code** → copia la skill in `~/.claude/skills/agentic-sdlc/`. Riavvia Claude Code; invocala via tool `Skill` come `agentic-sdlc`, o lasciala triggerare automaticamente da prompt SDLC/audit.
|
|
22
|
+
- **Gemini CLI** → suggerisce `gemini extensions install` (vedi sotto).
|
|
23
|
+
- **Codex AI** → configurabile via `npx agentic-sdlc-init` nel progetto.
|
|
24
|
+
|
|
25
|
+
`npm uninstall -g @antoneeo/agentic-sdlc-skill` rimuove anche la skill da `~/.claude/skills/agentic-sdlc/`.
|
|
26
|
+
|
|
27
|
+
### Via Gemini CLI (alternativa locale)
|
|
12
28
|
|
|
13
29
|
> **Consiglio:** Prima di installare, copia questa cartella dalla chiavetta USB sul disco fisso del tuo computer (es. in `C:\tools\agentic-sdlc-skill`). In questo modo la skill rimarrà sempre disponibile anche dopo aver rimosso la chiavetta.
|
|
14
30
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antoneeo/agentic-sdlc-skill",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Protocollo SDLC Documentation-First per Gemini CLI. Gestisce audit, analisi, sviluppo e chiusura feature con documentazione sincronizzata.",
|
|
3
|
+
"version": "1.2.0",
|
|
4
|
+
"description": "Protocollo SDLC Documentation-First per Claude Code, Gemini CLI e Codex. Auto-installa la skill nativa Claude Code in ~/.claude/skills/. Gestisce audit, analisi, sviluppo e chiusura feature con documentazione sincronizzata.",
|
|
5
5
|
"keywords": [
|
|
6
|
+
"claude-code",
|
|
7
|
+
"claude-skill",
|
|
6
8
|
"gemini-cli",
|
|
7
9
|
"skill",
|
|
8
10
|
"sdlc",
|
|
@@ -18,7 +20,8 @@
|
|
|
18
20
|
"agentic-sdlc-init": "scripts/init.js"
|
|
19
21
|
},
|
|
20
22
|
"scripts": {
|
|
21
|
-
"postinstall": "node scripts/postinstall.js"
|
|
23
|
+
"postinstall": "node scripts/postinstall.js",
|
|
24
|
+
"preuninstall": "node scripts/preuninstall.js"
|
|
22
25
|
},
|
|
23
26
|
"files": [
|
|
24
27
|
"skills",
|
package/scripts/postinstall.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const { execSync } = require('child_process');
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
const os = require('os');
|
|
7
|
+
|
|
8
|
+
const PACKAGE_ROOT = path.resolve(__dirname, '..');
|
|
9
|
+
const SKILL_SOURCE = path.join(PACKAGE_ROOT, 'skills', 'agentic-sdlc-skill');
|
|
10
|
+
const CLAUDE_SKILLS_DIR = path.join(os.homedir(), '.claude', 'skills');
|
|
11
|
+
const CLAUDE_SKILL_TARGET = path.join(CLAUDE_SKILLS_DIR, 'agentic-sdlc');
|
|
4
12
|
|
|
5
13
|
function checkCommand(cmd) {
|
|
6
14
|
try {
|
|
@@ -11,10 +19,43 @@ function checkCommand(cmd) {
|
|
|
11
19
|
}
|
|
12
20
|
}
|
|
13
21
|
|
|
22
|
+
function copyRecursive(src, dest) {
|
|
23
|
+
if (typeof fs.cpSync === 'function') {
|
|
24
|
+
fs.cpSync(src, dest, { recursive: true, force: true });
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
// Fallback for Node < 16.7
|
|
28
|
+
if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true });
|
|
29
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
30
|
+
const s = path.join(src, entry.name);
|
|
31
|
+
const d = path.join(dest, entry.name);
|
|
32
|
+
if (entry.isDirectory()) copyRecursive(s, d);
|
|
33
|
+
else fs.copyFileSync(s, d);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function installClaudeSkill() {
|
|
38
|
+
if (!fs.existsSync(SKILL_SOURCE)) {
|
|
39
|
+
console.log(`⚠️ Skill source not found at ${SKILL_SOURCE}; skipping Claude Code install.`);
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
try {
|
|
43
|
+
fs.mkdirSync(CLAUDE_SKILLS_DIR, { recursive: true });
|
|
44
|
+
copyRecursive(SKILL_SOURCE, CLAUDE_SKILL_TARGET);
|
|
45
|
+
console.log(`📦 Installed Claude Code skill at: ${CLAUDE_SKILL_TARGET}`);
|
|
46
|
+
console.log(' Restart Claude Code to load it. Invoke via Skill tool as "agentic-sdlc".');
|
|
47
|
+
return true;
|
|
48
|
+
} catch (err) {
|
|
49
|
+
console.log(`⚠️ Failed to install Claude Code skill: ${err.message}`);
|
|
50
|
+
console.log(` Manual install: copy "${SKILL_SOURCE}" to "${CLAUDE_SKILL_TARGET}".`);
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
14
55
|
console.log('\n--- Agentic SDLC Skill Discovery ---');
|
|
15
56
|
|
|
16
57
|
const agents = [
|
|
17
|
-
{ name: 'Claude Code', cmd: 'claude' },
|
|
58
|
+
{ name: 'Claude Code', cmd: 'claude', onDetect: installClaudeSkill },
|
|
18
59
|
{ name: 'Gemini CLI', cmd: 'gemini' },
|
|
19
60
|
{ name: 'Codex AI', cmd: 'codex' }
|
|
20
61
|
];
|
|
@@ -24,6 +65,7 @@ agents.forEach(agent => {
|
|
|
24
65
|
if (checkCommand(agent.cmd)) {
|
|
25
66
|
console.log(`✅ Detected: ${agent.name}`);
|
|
26
67
|
detected = true;
|
|
68
|
+
if (typeof agent.onDetect === 'function') agent.onDetect();
|
|
27
69
|
}
|
|
28
70
|
});
|
|
29
71
|
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const os = require('os');
|
|
6
|
+
|
|
7
|
+
const CLAUDE_SKILL_TARGET = path.join(os.homedir(), '.claude', 'skills', 'agentic-sdlc');
|
|
8
|
+
|
|
9
|
+
if (fs.existsSync(CLAUDE_SKILL_TARGET)) {
|
|
10
|
+
try {
|
|
11
|
+
fs.rmSync(CLAUDE_SKILL_TARGET, { recursive: true, force: true });
|
|
12
|
+
console.log(`🧹 Removed Claude Code skill at: ${CLAUDE_SKILL_TARGET}`);
|
|
13
|
+
} catch (err) {
|
|
14
|
+
console.log(`⚠️ Could not remove ${CLAUDE_SKILL_TARGET}: ${err.message}`);
|
|
15
|
+
}
|
|
16
|
+
}
|