# SVG skill eval/smoke - esecuzione minima

Questa cartella adotta lo stesso pattern delle altre skill del repository:

- file dichiarativo `evals/evals.json` con `skill_name`, `eval_focus`, `evals[]`;
- per ogni eval: `id`, `prompt`, `expected_output`, `expectations[]` sintetiche e verificabili.

## 1) Check strutturale JSON (obbligatorio)

Dalla root repo (`/workspace/mcp-servers`):

```bash
node scripts/check-skill-evals-json.js
```

Il comando deve mostrare una riga `✅ skills/svg/evals/evals.json` e chiudere senza errori.

## 1.1) Fixture locali consigliate

Per rendere gli smoke manuali piu' ripetibili, usare queste fixture locali:

- `skills/svg/evals/fixtures/valid-minimal.svg`
- `skills/svg/evals/fixtures/invalid-malformed.svg`
- `skills/svg/evals/fixtures/valid-currentcolor.svg`

Le fixture correnti coprono i casi minimi richiesti dai workflow base:
- SVG formalmente valido e parseabile;
- SVG malformato con parsing fallito.
- SVG valido con `currentColor` da preservare nei workflow colore.

Per i workflow `color-palette`, `brand-kit` e `to-component` e' possibile
riusare `valid-minimal.svg` come baseline documentale di smoke.

## 2) Smoke/eval rapido della skill SVG (manuale guidato)

Nel contesto attuale gli eval skill sono fixture testuali per verifica di routing e output atteso.
Eseguire almeno questi smoke manuali su agente/host che usa la skill:

1. prompt di tipo **optimize** -> verificare routing verso `skills/svg/references/workflows/optimize.md`;
2. prompt di tipo **validate** -> verificare routing verso `skills/svg/references/workflows/validate.md`;
3. prompt di tipo **color-palette** -> verificare routing verso `skills/svg/references/workflows/color-palette.md`;
4. prompt di tipo **brand-kit** -> verificare routing verso `skills/svg/references/workflows/brand-kit.md`;
5. prompt di tipo **to-component** -> verificare routing verso `skills/svg/references/workflows/to-component.md`;
6. `validate` su `fixtures/valid-minimal.svg` -> output con stato `valid` oppure `warnings` leggeri e motivati;
7. `validate` su `fixtures/invalid-malformed.svg` -> output con stato `invalid` + almeno un `error` bloccante.

Usare come baseline i casi definiti in `evals.json`.

Nota pratica:

- il caso `valid-minimal.svg` serve come baseline per validazione e optimize conservativo;
- il caso `invalid-malformed.svg` serve a verificare interruzione del flusso normale, classificazione `error` e chiusura con stato `invalid`.

## 3) Smoke repository-level consigliato

Per una verifica automatica locale, eseguire:

```bash
node scripts/check-svg-skill-smoke.js --profile phase2
```

Esito atteso:

- JSON finale con `svg_smoke: "ok"` e `profile: "phase2"`;
- check `color_palette_mapping`, `currentColor_preserved`, `brand_kit_basics`, `to_component_props` tutti `ok`.

Nota compatibilita':

- `node scripts/smoke-svg-phase2.js` resta disponibile come alias backward-compatible del profilo `phase2`.

Se la modifica tocca anche server MCP o integrazioni runtime, eseguire inoltre gli smoke repository-level:

```bash
node tests/smoke/run-all.mjs
```

Per questa modifica (skill/evals) la baseline minima e':

1. `node scripts/check-skill-evals-json.js`
2. `node scripts/check-svg-skill-smoke.js --profile phase2`
