Garantire che la CLI, su un risultato vuoto, comunichi lo stesso messaggio esplicativo del server MCP: l'hint dinamico se presente, altrimenti l'emptyHint statico del tool. Evita che l'utente CLI riceva un output vuoto senza spiegazione (es. gap noto del dataset) e mantiene allineati i due path (CLI e MCP).
Quando l'esecuzione di un comando produce un risultato senza righe, la CLI SHALL scrivere su stderr un messaggio esplicativo, senza alterare l'output su stdout né l'exit code. La sorgente del messaggio SHALL seguire la precedenza: l'hint dinamico del risultato (result.hint) se presente, altrimenti l'emptyHint statico definito dal tool. Se nessuno dei due è disponibile, la CLI SHALL non scrivere alcun messaggio. Questo comportamento SHALL coincidere con quello del server MCP (result.hint ?? emptyHint).
- WHEN un comando la cui definizione tool espone un
emptyHintstatico restituisce zero righe e nessunresult.hint - THEN la CLI scrive l'
emptyHintstatico del tool su stderr - AND stdout contiene solo l'output vuoto formattato (CSV/JSONL), senza il messaggio
- AND l'exit code resta invariato
- WHEN un comando restituisce zero righe e un
result.hintdinamico valorizzato, e il tool espone anche unemptyHintstatico - THEN la CLI scrive su stderr l'hint dinamico
- AND non scrive l'
emptyHintstatico
- WHEN un comando restituisce almeno una riga
- THEN la CLI non scrive alcun hint su stderr, indipendentemente dalla presenza di
emptyHintstatico oresult.hint
- WHEN un comando restituisce zero righe, senza
result.hintdinamico e senzaemptyHintstatico definito dal tool - THEN la CLI non scrive alcun messaggio su stderr
- WHEN lo stesso tool con
emptyHintstatico produce un risultato vuoto senza hint dinamico - THEN il messaggio comunicato dalla CLI su stderr coincide con quello restituito dal server MCP