---
phase: 12-docs-cli
plan: 01
subsystem: docs
tags: [readme, cli, documentation]
track: quick-fix
scope: single-file

requires: []
provides:
  - README.md params table — all 15 CLI args with Italian descriptions
  - README.md codici errore section — all 10 error codes from VediErrore()
affects: [README.md]

estimated_duration: ~15min
---

# Phase 12 Plan 01: README complete CLI reference

**Goal:** Expand README.md params table from 6 to 15 entries. Add error codes section. All Italian, operator-facing. Source of truth: `MostraAiuto()` + `VediErrore()` in `Program.cs`.

## Scope

Single file: `README.md`

## Current State

Params table has 6 entries:
- `-manufacturer=`, `-azione=`, `-ip=`, `-porta=`, `-username=`, `-password=`

Missing 10 params:
- `-tipo=`, `-nodo=`, `-compatibility`, `-commento=`, `-path=`, `-pathprogramma=`, `-workzero=`, `-tooloffset=`, `-debug=`, `-help`

No error codes section.

## Tasks

| # | Task | File | AC |
|---|------|------|----|
| T1 | Expand params table — all 15 args | `README.md` | Table has 15 rows, matches MostraAiuto() exactly |
| T2 | Add codici errore section | `README.md` | All 10 error codes listed with Italian descriptions |

## Acceptance Criteria

| ID | Criterion | How to verify |
|----|-----------|---------------|
| AC-1 | Params table has exactly 15 entries | Count rows |
| AC-2 | Every arg in MostraAiuto() appears in table | Cross-check Program.cs line 305–336 |
| AC-3 | Error codes section lists all 10 codes | Cross-check Program.cs line 339–350 |
| AC-4 | All text Italian, operator-facing | Read-through |
| AC-5 | Existing content unchanged | Diff README |

## Reference — params from MostraAiuto() (Program.cs:305-336)

| Param | Note |
|-------|------|
| `-azione=` | azione da eseguire |
| `-manufacturer=` | fanuc (default), heidenhain, siemens, mitsubishi |
| `-tipo=` | tipo connessione: 3=ethernet, 2=HSSB (solo Fanuc legacy) |
| `-ip=` | indirizzo IP (ethernet) |
| `-porta=` | porta connessione (ethernet) |
| `-nodo=` | nodo HSSB (solo Fanuc) |
| `-username=` | autenticazione Heidenhain/Siemens/Mitsubishi |
| `-password=` | autenticazione Heidenhain/Siemens/Mitsubishi |
| `-compatibility` | flag — modalità compatibilità (no valore) |
| `-commento=` | commento da applicare al programma |
| `-path=` | path CNC programmi; default=1 → `//CNC_MEM/USER/PATH1/` |
| `-pathprogramma=` | path locale file da inviare (richiesto per Invia) |
| `-workzero=` | includi workzero offset in Invia/Scarica |
| `-tooloffset=` | includi tool offset in Invia/Scarica |
| `-debug=` | mantieni terminale aperto a fine operazione |
| `-help` | mostra aiuto e termina (no valore) |

## Reference — error codes from VediErrore() (Program.cs:278-289, 339-350)

| Codice | Descrizione |
|--------|-------------|
| -100 | Licenza errata/non valida |
| -101 | Impossibile parsare i parametri |
| -102 | Parametri mancanti |
| -103 | Codice connessione errato: 3→Ethernet, 2→HSSB |
| -201 | Macchina non connessa |
| -202 | Eccezione nell'esecuzione dell'azione |
| -203 | L'azione è fallita |
| -204 | Errore invio/ricezione programma CN |
| -205 | Errore invio/ricezione tool offset data |
| -206 | Errore invio/ricezione work zero offset data |
| -207 | CN non in MDI/EDIT — necessario per invio programma |
| -208 | Programma CN caricato ma non impostato come main |

---
*Plan created: 2026-05-18*
