docs: Windows host compat is a categorical constraint (B8 cancelled)

User requirement (non-negotiable): the project must stay
first-class compatible with a Windows host permanently — Phase B
adds Linux *alongside* Windows, never replacing/degrading it.
- implementation-plan-A-B §2: categorical-constraint banner; B8
  decommissioning cancelled (kept only as historical record);
  master checklist B8 row updated.
- PhaseB-user-checklist: Passo 9 (B8) cancelled -> dual-host kept;
  Passo 8 no longer a decommission gate; tracking table + closing
  note updated.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Simone
2026-05-17 23:45:31 +02:00
parent 6c4e5c2e0e
commit 573d11691d
2 changed files with 49 additions and 35 deletions
+24 -23
View File
@@ -418,10 +418,11 @@ baseline Windows (entro ±20%).
---
## Passo 8 — Stabilità ≥1 settimana (gate per B8)
## Passo 8 — Stabilità ≥1 settimana
**Obiettivo**: verificare ≥1 settimana di esercizio Linux senza
incidenti critici prima di dismettere l'host Windows.
incidenti critici. (NB: non è più gate per una dismissione Windows
vedi Passo 9: host Windows mantenuto in permanenza.)
- [ ] Esercizio normale per ≥7 giorni con runner Linux primario.
- [ ] Verifica giornaliera (bastano 2 minuti):
@@ -436,12 +437,16 @@ incidenti critici prima di dismettere l'host Windows.
---
## Passo 9 — Decommissioning host Windows (B8, opzionale)
## Passo 9 — ~~Decommissioning host Windows~~ — ANNULLATO
> ⚠️ Procedere solo dopo Passo 8 `[x]`. L'host Windows va lasciato
> spento ma intatto per ≥1 mese come rollback.
> 🚫 **VINCOLO CATEGORICO: l'host Windows NON va dismesso.** Resta un
> target supportato di prima classe in permanenza (run dual-host
> Win+Linux), non solo rollback. Niente `shutdown` definitivo, niente
> riallocazione hardware che tolga la capacità Windows. Questo step è
> mantenuto solo come record storico.
- [ ] Backup finale di `F:\CI\` su archivio esterno:
- [ ] (Facoltativo, igiene) Backup periodico di `F:\CI\` su archivio
esterno:
```powershell
$stamp = Get-Date -Format 'yyyyMMdd'
@@ -450,18 +455,10 @@ incidenti critici prima di dismettere l'host Windows.
Get-FileHash $archive -Algorithm SHA256 | Tee-Object "$archive.sha256"
```
- [ ] Verifica integrità (estrazione di prova in tmp):
```powershell
$test = "$env:TEMP\ci-restore-test"
& 'C:\Program Files\Git\usr\bin\tar.exe' -tf $archive | Select-Object -First 20
```
- [ ] Spegnere host Windows (`shutdown /s /t 0`).
- [ ] Lasciare hardware integro e spento per ≥1 mese.
- [ ] Aggiornare `docs/RUNBOOK.md` con la procedura di riaccensione +
ri-registrazione scheduled task come rollback.
- [ ] Dopo 1 mese senza rollback: riallocare hardware.
- [ ] Host Windows **resta installato e operativo** (uso dual-host).
- [ ] Aggiornare `docs/RUNBOOK.md` documentando l'uso di **entrambi**
gli host (Windows + Linux), non una procedura di dismissione.
- [ ] ~~Spegnere/riallocare host Windows~~ — NON applicabile.
---
@@ -474,11 +471,15 @@ incidenti critici prima di dismettere l'host Windows.
| 3 | B3 | Chiavi SSH + keyring (PoC headless) | [ ] |
| 4 | B4 | act_runner systemd service registrato | [ ] |
| 5 | B5 | Timer systemd installati e attivi | [ ] |
| 6 | B6 | Cutover (stop Windows, runner Linux primario) | [ ] |
| 6 | B6 | Cutover (Linux primario, Windows resta operativo) | [ ] |
| 7 | B7 | Capacity burn-in 4 × 10 (Win + Linux) | [ ] |
| 8 | — | ≥1 settimana di stabilità senza rollback | [ ] |
| 9 | B8 | Decommissioning host Windows (opzionale) | [ ] |
| 8 | — | ≥1 settimana di stabilità | [ ] |
| 9 | B8 | ~~Decommissioning Windows~~ ANNULLATO (dual-host) | [x] |
Quando tutti i passi sono `[x]`, la **Fase B è chiusa** e si può
valutare l'apertura della Fase C (backend ESXi, vedi
> **Vincolo categorico**: host Windows supportato in permanenza
> (dual-host), mai dismesso. Fase B = Linux **in aggiunta**, non al
> posto di Windows.
Quando i passi 1-8 sono `[x]`, la **Fase B è chiusa** (B8 annullato per
vincolo) e si può valutare l'apertura della Fase C (backend ESXi, vedi
`plans/idea-3-esxi-support.md`).