# Output modes

## Modalita' A - umano (default)

Struttura minima:

1. Esito sintetico
2. Punti positivi
3. Findings (ordinati per severita')
4. Evidenze e impatto
5. Suggerimenti/fix mirati
6. Quick wins e test consigliati

Esempio breve (review-ready):

- **Esito sintetico**: buona base, ma ci sono 3 rischi concreti (1 high, 2 medium) prima del merge.
- **Punti positivi**: naming coerente col modulo; test unitari presenti per il caso nominale.
- **Findings principali**:
  1. `correctness` - **high** - `retryCount` puo' superare il limite per race nel ramo async (`src/services/paymentRetry.ts:88-104`).
  2. `risk_or_regression` - **medium** - manca copertura test su timeout + retry concorrenti (`tests/paymentRetry.spec.ts`).
  3. `project_rule` - **medium** - log error non include `requestId`, richiesto dalla guideline locale (`docs/observability.md`).
- **Evidenze/impatto**: il punto 1 puo' causare doppia richiesta verso gateway in picchi di carico.
- **Suggerimenti**: rendere atomico l'update del contatore retry e centralizzare guardia timeout nel service.
- **Quick wins / test consigliati**: aggiungere test con fake timer su timeout+retry e test concorrente a 2 worker.

## Modalita' B - strutturato per agente/fix

Struttura minima consigliata:

- `scope`
- `sources_consulted`
- `constraints`
- `findings[]` con: `category`, `severity`, `confidence`, `evidence`, `impact`, `suggested_fix`
- `fix_plan[]` (piccoli step reviewable)
- `required_validations[]`

Esempio breve (strutturato, pronto per handoff):

```yaml
scope: "Diff feature/payment-retry su src/services/paymentRetry.ts + tests correlati"
sources_consulted:
  - "AGENTS.md"
  - "docs/observability.md"
  - "git diff origin/main...HEAD"
constraints:
  - "Preservare API pubblica di PaymentRetryService"
  - "Nessun refactor cross-modulo"
findings:
  - category: correctness
    severity: high
    confidence: high
    evidence: "Incremento retry non atomico nel blocco async (linee 88-104)"
    impact: "Possibili doppie chiamate al gateway"
    suggested_fix: "Proteggere update retry con lock leggero o compare-and-swap"
  - category: test_gap
    severity: medium
    confidence: high
    evidence: "Assente test su timeout + retry concorrenti"
    impact: "Regressioni non intercettate in CI"
    suggested_fix: "Aggiungere test concorrente con fake timer"
fix_plan:
  - "Patch 1: rendere atomico update retry nel service"
  - "Patch 2: aggiungere test timeout+retry concorrente"
required_validations:
  - "npm test -- paymentRetry.spec.ts"
  - "Smoke su flusso retry in ambiente dev"
```

Se il prompt e' orientato all'azione, preferire Modalita' B salvo override utente.
