/dev-guard — Watchdog File Critici
Watchdog automatico che monitora le modifiche a file universalmente critici. A differenza di /dev-freeze (che blocca directory scelte dall'utente), /dev-guard protegge una lista predefinita di file sensibili con avviso e conferma.
Attivazione
/dev-guard # Attiva con lista default
/dev-guard --show # Mostra file monitorati
/dev-guard --add "*.secret" # Aggiungi pattern custom
/dev-guard --off # Disattiva
Quando attivato:
GUARD attivo — Watchdog file critici
Monitoro modifiche a file sensibili in 6 categorie:
[SECRETS] .env, *.key, *.pem, credentials.*
[DATABASE] migrations/, schema.prisma, *.sql (DDL)
[CI/CD] .github/workflows/, Dockerfile, docker-compose*
[DEPS] package.json (solo dependencies), requirements.txt, Gemfile
[CONFIG] tsconfig.json, vite.config.*, next.config.*, webpack.*
[SECURITY] auth/, middleware/auth*, *.crt, *.p12, cors config
Ogni modifica a questi file richiede conferma con spiegazione del rischio.
Lista file monitorati
SECRETS — Rischio CRITICO
| Pattern |
Motivo |
.env, .env.* |
Variabili ambiente, API keys, connection string |
*.key, *.pem, *.p12, *.crt |
Certificati e chiavi private |
credentials.*, secrets.* |
File credenziali espliciti |
**/service-account*.json |
Google Cloud service account |
.npmrc, .pypirc |
Token registry pacchetti |
DATABASE — Rischio ALTO
| Pattern |
Motivo |
migrations/** |
Schema change irreversibili in produzione |
prisma/schema.prisma |
Modello dati — change cascade su tutto il codice |
**/schema.sql, **/seed.sql |
DDL e dati iniziali |
alembic/versions/** |
Migration Python |
knex/migrations/** |
Migration Knex.js |
CI/CD — Rischio ALTO
| Pattern |
Motivo |
.github/workflows/*.yml |
Pipeline CI — errore = deploy rotto |
Dockerfile, docker-compose* |
Container build — errore = ambiente rotto |
.gitlab-ci.yml, Jenkinsfile |
Pipeline altri CI |
vercel.json, netlify.toml |
Config deployment |
fly.toml, render.yaml |
Config hosting |
DEPS — Rischio MEDIO
| Pattern |
Motivo |
package.json (campo dependencies) |
Dipendenze runtime — supply chain risk |
package-lock.json |
Lockfile — modifica manuale rischiosa |
requirements.txt, pyproject.toml |
Dipendenze Python |
Gemfile, Gemfile.lock |
Dipendenze Ruby |
CONFIG — Rischio MEDIO
| Pattern |
Motivo |
tsconfig.json, tsconfig.*.json |
Config TypeScript — errore = build rotto |
vite.config.*, next.config.* |
Config bundler/framework |
webpack.config.*, rollup.config.* |
Config build |
jest.config.*, vitest.config.* |
Config test — errore = test falsi positivi |
.eslintrc*, .prettierrc* |
Config linting |
SECURITY — Rischio ALTO
| Pattern |
Motivo |
**/auth/**, **/middleware/auth* |
Logica autenticazione |
**/cors* |
Configurazione CORS |
**/helmet*, **/csp* |
Security headers |
**/rbac*, **/permissions* |
Controllo accessi |
Formato avviso
Quando un'operazione tocca un file monitorato:
GUARD: File critico in fase di modifica
File: .github/workflows/deploy.yml
Categoria: CI/CD
Rischio: ALTO
Motivo: Modifica alla pipeline di deploy. Un errore puo bloccare i rilasci.
Modifiche rilevate:
- Riga 15: aggiunta step "npm run build"
- Riga 22: rimossa condizione "if: github.ref == 'refs/heads/main'"
Procedere con la modifica? (si/no)
Differenze con /dev-careful e /dev-freeze
| Aspetto |
/dev-careful |
/dev-freeze |
/dev-guard |
| Scope |
Tutte le operazioni distruttive |
Directory scelte dall'utente |
File critici predefiniti |
| Azione |
Conferma |
Blocco assoluto |
Conferma con contesto |
| Personalizzabile |
No |
Si (path utente) |
Si (--add pattern) |
| Default attivo |
No |
No |
No (attivare con /dev-guard) |
Tutti e 3 si sommano quando attivi contemporaneamente.
Pattern custom
L'utente puo aggiungere pattern personalizzati:
/dev-guard --add "src/billing/**" # Aggiungi directory billing
/dev-guard --add "*.config.mjs" # Aggiungi pattern glob
/dev-guard --remove "*.prettierrc*" # Rimuovi pattern (troppo rumore)
Regole
- Avviso, non blocco — a differenza di
/dev-freeze, /dev-guard chiede conferma ma non impedisce
- Contesto nel messaggio — spiega sempre PERCHE il file e critico, non solo "attenzione"
- Mostra diff — quando possibile, mostra cosa sta per cambiare nel file
- Log — registra ogni avviso in
specs/_changelog.md con esito (approvato/rifiutato)
- Non persiste — si resetta a fine sessione
- Bassa frizione — un solo "si" basta per procedere (non doppia conferma)
1---2name: dev-guard3description: Watchdog automatico per file critici: avvisa prima di modificare .env, migrations, CI, secrets. Usa questa skill quando l'utente vuole protezione automatica, o dice guard, watchdog, proteggi file, guardia, sentinel, file critici.4---5
6# /dev-guard — Watchdog File Critici
7
8Watchdog automatico che monitora le modifiche a file universalmente critici. A differenza di `/dev-freeze` (che blocca directory scelte dall'utente), `/dev-guard` protegge una lista predefinita di file sensibili con avviso e conferma.
9
10## Attivazione
11
12```
13/dev-guard # Attiva con lista default
14/dev-guard --show # Mostra file monitorati
15/dev-guard --add "*.secret" # Aggiungi pattern custom
16/dev-guard --off # Disattiva
17```
18
19Quando attivato:
20```
21GUARD attivo — Watchdog file critici
22
23Monitoro modifiche a file sensibili in 6 categorie:
24 [SECRETS] .env, *.key, *.pem, credentials.*
25 [DATABASE] migrations/, schema.prisma, *.sql (DDL)
26 [CI/CD] .github/workflows/, Dockerfile, docker-compose*
27 [DEPS] package.json (solo dependencies), requirements.txt, Gemfile
28 [CONFIG] tsconfig.json, vite.config.*, next.config.*, webpack.*
29 [SECURITY] auth/, middleware/auth*, *.crt, *.p12, cors config
30
31Ogni modifica a questi file richiede conferma con spiegazione del rischio.
32```
33
34## Lista file monitorati
35
36### SECRETS — Rischio CRITICO
37| Pattern | Motivo |
38|---------|--------|
39| `.env`, `.env.*` | Variabili ambiente, API keys, connection string |
40| `*.key`, `*.pem`, `*.p12`, `*.crt` | Certificati e chiavi private |
41| `credentials.*`, `secrets.*` | File credenziali espliciti |
42| `**/service-account*.json` | Google Cloud service account |
43| `.npmrc`, `.pypirc` | Token registry pacchetti |
44
45### DATABASE — Rischio ALTO
46| Pattern | Motivo |
47|---------|--------|
48| `migrations/**` | Schema change irreversibili in produzione |
49| `prisma/schema.prisma` | Modello dati — change cascade su tutto il codice |
50| `**/schema.sql`, `**/seed.sql` | DDL e dati iniziali |
51| `alembic/versions/**` | Migration Python |
52| `knex/migrations/**` | Migration Knex.js |
53
54### CI/CD — Rischio ALTO
55| Pattern | Motivo |
56|---------|--------|
57| `.github/workflows/*.yml` | Pipeline CI — errore = deploy rotto |
58| `Dockerfile`, `docker-compose*` | Container build — errore = ambiente rotto |
59| `.gitlab-ci.yml`, `Jenkinsfile` | Pipeline altri CI |
60| `vercel.json`, `netlify.toml` | Config deployment |
61| `fly.toml`, `render.yaml` | Config hosting |
62
63### DEPS — Rischio MEDIO
64| Pattern | Motivo |
65|---------|--------|
66| `package.json` (campo `dependencies`) | Dipendenze runtime — supply chain risk |
67| `package-lock.json` | Lockfile — modifica manuale rischiosa |
68| `requirements.txt`, `pyproject.toml` | Dipendenze Python |
69| `Gemfile`, `Gemfile.lock` | Dipendenze Ruby |
70
71### CONFIG — Rischio MEDIO
72| Pattern | Motivo |
73|---------|--------|
74| `tsconfig.json`, `tsconfig.*.json` | Config TypeScript — errore = build rotto |
75| `vite.config.*`, `next.config.*` | Config bundler/framework |
76| `webpack.config.*`, `rollup.config.*` | Config build |
77| `jest.config.*`, `vitest.config.*` | Config test — errore = test falsi positivi |
78| `.eslintrc*`, `.prettierrc*` | Config linting |
79
80### SECURITY — Rischio ALTO
81| Pattern | Motivo |
82|---------|--------|
83| `**/auth/**`, `**/middleware/auth*` | Logica autenticazione |
84| `**/cors*` | Configurazione CORS |
85| `**/helmet*`, `**/csp*` | Security headers |
86| `**/rbac*`, `**/permissions*` | Controllo accessi |
87
88## Formato avviso
89
90Quando un'operazione tocca un file monitorato:
91
92```
93GUARD: File critico in fase di modifica
94
95 File: .github/workflows/deploy.yml
96 Categoria: CI/CD
97 Rischio: ALTO
98 Motivo: Modifica alla pipeline di deploy. Un errore puo bloccare i rilasci.
99
100 Modifiche rilevate:
101 - Riga 15: aggiunta step "npm run build"
102 - Riga 22: rimossa condizione "if: github.ref == 'refs/heads/main'"
103
104Procedere con la modifica? (si/no)
105```
106
107## Differenze con /dev-careful e /dev-freeze
108
109| Aspetto | /dev-careful | /dev-freeze | /dev-guard |
110|---------|-------------|-------------|------------|
111| **Scope** | Tutte le operazioni distruttive | Directory scelte dall'utente | File critici predefiniti |
112| **Azione** | Conferma | Blocco assoluto | Conferma con contesto |
113| **Personalizzabile** | No | Si (path utente) | Si (--add pattern) |
114| **Default attivo** | No | No | No (attivare con /dev-guard) |
115
116Tutti e 3 si sommano quando attivi contemporaneamente.
117
118## Pattern custom
119
120L'utente puo aggiungere pattern personalizzati:
121
122```
123/dev-guard --add "src/billing/**" # Aggiungi directory billing
124/dev-guard --add "*.config.mjs" # Aggiungi pattern glob
125/dev-guard --remove "*.prettierrc*" # Rimuovi pattern (troppo rumore)
126```
127
128## Regole
129
1301. **Avviso, non blocco** — a differenza di `/dev-freeze`, `/dev-guard` chiede conferma ma non impedisce
1312. **Contesto nel messaggio** — spiega sempre PERCHE il file e critico, non solo "attenzione"
1323. **Mostra diff** — quando possibile, mostra cosa sta per cambiare nel file
1334. **Log** — registra ogni avviso in `specs/_changelog.md` con esito (approvato/rifiutato)
1345. **Non persiste** — si resetta a fine sessione
1356. **Bassa frizione** — un solo "si" basta per procedere (non doppia conferma)