---
name: "kb-recall"
description: "Consultazione Knowledge Base MUCC. Cerca decisioni, pattern, errori, concept per query, stack, tipo o progetto. Usa quando vuoi cercare nella KB, consultare conoscenza, trovare decisioni passate, o dici kb recall, cerca nella kb, cosa sappiamo su, decisioni su."
---

# /kb-recall — Consultazione Knowledge Base

Cerca nella Knowledge Base MUCC conoscenza accumulata da progetti precedenti: decisioni architetturali, pattern confermati, errori noti, concept validati, componenti riutilizzabili.

## Input

L'utente puo invocare in diversi modi:

```
/kb-recall "come gestire autenticazione con FastAPI"
/kb-recall --stack react-native,fastapi
/kb-recall --tipo errore --stack langchain
/kb-recall --progetto app-cliente-x
/kb-recall --tags auth,jwt
```

Se l'utente fornisce solo un testo libero, usalo come query di ricerca.

## Workflow

### Step 1: Determina path KB

Cerca il file `_config.md` in `~/mucc-knowledge-base/`. Se non esiste:
- Suggerisci di eseguire `npx tsx dev-methodology/scripts/init-kb.ts` per inizializzare la KB
- Non procedere senza KB

### Step 2: Esegui ricerca

Usa lo script `kb-core.ts` per cercare:

```bash
npx tsx "${PLUGIN_DIR}/scripts/kb-core.ts" search "QUERY" [--tipo T] [--stack S] [--progetto P] [--limit N]
```

Oppure leggi direttamente i file dalla KB usando:
1. **Ricerca per titolo file**: Glob `~/mucc-knowledge-base/**/*.md` e filtra per nome
2. **Ricerca per frontmatter**: Leggi i file e filtra per `tipo`, `stack`, `tags`, `confidenza`
3. **Ricerca per contenuto**: Grep full-text nei file

### Step 3: Presenta risultati

Per ogni nota trovata, mostra:

```markdown
### 🟢 [Titolo nota] (confidenza: alta, 3 conferme)
**Tipo**: decisione | **Stack**: react-native, fastapi | **Progetto**: app-cliente-x
**Tags**: auth, jwt, middleware

> [Prime 3-5 righe del contenuto]

📄 Path: ~/mucc-knowledge-base/decisioni/stack/fastapi-batte-flask-per-api-async.md
```

Icone confidenza: 🟢 alta, 🟡 media, 🔴 bassa

### Step 4: Azioni possibili

Dopo aver mostrato i risultati, chiedi:
- **Leggi nota completa**: l'utente puo chiedere di leggere una nota specifica
- **Filtra ulteriormente**: aggiungere filtri per restringere
- **Applica al progetto**: usare la conoscenza nel contesto corrente

## Filtri disponibili

| Filtro | Valori | Esempio |
|--------|--------|---------|
| `--tipo` | decisione, pattern, errore, concept, componente, meeting | `--tipo errore` |
| `--stack` | Qualsiasi stack (comma-separated) | `--stack react,fastapi` |
| `--progetto` | Nome progetto | `--progetto app-fitness` |
| `--tags` | Tag liberi (comma-separated) | `--tags auth,jwt` |
| `--confidenza` | alta, media, bassa | `--confidenza alta` |
| `--limit` | Numero max risultati | `--limit 10` |

## Multi-Query Reformulation (NEW v0.25.0)

Flag opzionale `--iterative` (max **3 passi**: `search → open → reformulate`).

Quando attivare:
- Prima query ritorna `0` o `1` risultato rilevante e l'utente non è soddisfatto
- L'utente cerca un concept ambiguo che potrebbe avere più sinonimi nella KB

Loop di reformulation:

1. **Search iniziale** con query utente.
2. **Open top-K** (default K=3) → estrai dal frontmatter `tags`, `stack`, `tipo` come keyword candidate.
3. **Reformula**: combina la query originale con keyword nuove (es. `"autenticazione JWT" + tags:[middleware,fastapi]`).
4. **Re-search** con query reformulata. Stop se:
   - `total_found >= 3` con relevance score ≥ 0.75
   - `passi >= 3`
   - L'utente conferma "trovato"

Esempio:

```
/kb-recall "auth con session-cookie" --iterative

Passo 1: search "auth con session-cookie" → 0 hit
Passo 2: open top-3 simili (auth/jwt, auth/oauth, auth/middleware)
         → keyword nuove: ["session", "cookie", "express", "middleware"]
         reformula → "session cookie middleware express"
Passo 3: search reformulata → 4 hit, mostro top-3
Stop: trovato.
```

**Razionale**: il pattern multi-query è dimostrato ridurre il *recall gap* della ricerca semantica fino a +20pp in scenari ambigui (cluster proposte AI-Radar #29, #45). Per query specifiche e precise, lasciare il flag spento (1-shot).

## Note

- Se la KB e vuota, suggerisci `/kb-ingest` per importare progetti esistenti
- Se non trova risultati, allarga la ricerca (rimuovi filtri) e avvisa
- Ordina sempre per rilevanza (score) e confidenza
