docs(phase-11): create rollout phase plan (deploy, push, feedback triage)

This commit is contained in:
2026-04-13 14:42:20 +02:00
parent cd2df1e163
commit 43081c6828
4 changed files with 614 additions and 97 deletions
+101 -97
View File
@@ -1,97 +1,101 @@
# Roadmap: ImpTune
## Milestones
-**v1.0 MVP** — Phases 17, 13 plans, 27/27 requirements (shipped 2026-04-13) — see [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
- 🚧 **v1.1 Hardening & Validation** — Phases 811, 15 requirements (in progress, started 2026-04-13)
## Phases
<details>
<summary>✅ v1.0 MVP (Phases 17) — SHIPPED 2026-04-13</summary>
- [x] Phase 1: Foundation (3/3 plans) — 2026-04-10
- [x] Phase 2: Driver Management (2/2 plans) — 2026-04-10
- [x] Phase 3: Printer Configuration (2/2 plans) — 2026-04-10
- [x] Phase 4: Script Generation (2/2 plans) — 2026-04-10
- [x] Phase 5: Package Export (2/2 plans) — 2026-04-10
- [x] Phase 6: Wire Icon into .intunewin (1/1 plan, gap closure) — 2026-04-10
- [x] Phase 7: Dashboard & Navigation Polish (1/1 plan, gap closure) — 2026-04-13
Full details: [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
</details>
### 🚧 v1.1 Hardening & Validation (Phases 811)
- [ ] **Phase 8: Nyquist Validation Track** — Retro-fit Nyquist-compliant VALIDATION.md across all 7 v1.0 phases with evidence-backed checks
- [x] **Phase 9: UX Tech Debt Closure** — Fix the three carried-over UX gaps so the deployed build is the polished one technicians actually use␍ (completed 2026-04-13)
- [x] **Phase 10: Real-World Runtime Validation** — Validate generated artifacts end-to-end against a live Intune tenant and a real managed endpoint (completed 2026-04-13)
- [ ] **Phase 11: Real-World Rollout & Feedback** — Deploy the container to a real MSP environment, push a real package, and capture structured technician feedback
## Phase Details
### Phase 8: Nyquist Validation Track
**Goal**: Every v1.0 phase has a signed-off Nyquist-compliant validation record with cited evidence, and any blocking gaps are tracked.
**Depends on**: Nothing (parallelizable — pure audit of shipped code, no runtime dependency)
**Requirements**: NYQ-01, NYQ-02, NYQ-03
**Success Criteria** (what must be TRUE):
1. An operator can open any of the 7 v1.0 phase folders and read a `VALIDATION.md` where every success criterion maps to exactly one observable check with cited evidence (commit, test name, file path, or screenshot)
2. An operator can open `.planning/milestones/v1.0-VALIDATION-INDEX.md` and see a single pass/fail roll-up across all 7 phases with links to each phase's validation file
3. Any validation gap surfaced during the Nyquist pass appears in the index as either a v1.1 defect ticket (linked to the fixing phase) or an explicitly deferred item with written rationale
**Plans**: TBD
### Phase 9: UX Tech Debt Closure
**Goal**: The three carried-over UX defects are fixed and live-verified in a real browser so the rolled-out build is the polished one.
**Depends on**: Nothing (independent of validation and rollout — but must complete before Phase 11)
**Requirements**: UX-01, UX-02, UX-03
**Success Criteria** (what must be TRUE):
1. A technician uploading a new driver on the printer form sees the new DriverDesc appear in the dropdown without manually reloading the page
2. A technician typing an IP address into the printer form sees the port field auto-populate via the PRNT-03 Alpine.js handler, observed live in a real browser and recorded in VALIDATION.md
3. A technician on the printer detail page can click direct download links for the install, uninstall, and detect scripts individually, in addition to the existing package export buttons
**Plans**: 3 plans
- [ ] 09-01-driver-upload-fix-and-inline-oob-PLAN.md — Fix POST /drivers/upload 500 + add inline upload to printer form with HTMX OOB refresh (UX-01)
- [ ] 09-02-playwright-port-autofill-PLAN.md — Add Playwright dev dep + headless test for PRNT-03 IP->port auto-fill (UX-02)
- [ ] 09-03-script-download-links-PLAN.md — Add .ps1 route aliases + printer_detail.html script download links (UX-03)
### Phase 10: Real-World Runtime Validation
**Goal**: Generated .intunewin, install, detect, and uninstall artifacts are proven to work end-to-end on a real Intune tenant against a real Windows endpoint, with evidence recorded.
**Depends on**: Phase 9 (rollout uses the validated-AND-polished build; validation itself only strictly needs v1.0, but running it on the polished build avoids re-doing the pass)
**Requirements**: RTVAL-01, RTVAL-02, RTVAL-03, RTVAL-04, RTVAL-05
**Success Criteria** (what must be TRUE):
1. A generated `.intunewin` package is uploaded to a real Microsoft Intune tenant and accepted without format errors, with the tenant ingestion confirmation captured as evidence
2. A technician assigning the package to a real Intune-managed Windows endpoint observes the install script succeed under SYSTEM context, with `pnputil` driver staging and `$PSScriptRoot` path resolution verified in the device log
3. After install, the Intune detection rule driven by the generated detect script reports "installed" for the endpoint
4. A technician triggering uninstall from Intune sees the printer cleanly removed from the endpoint under SYSTEM context
5. A reviewer can open `RUNTIME-VALIDATION.md` and read a signed-off report listing tenant, device, OS build, driver vendor(s), screenshots/logs, and any issues found
**Plans**: 3 plans
- [ ] 10-01-preflight-package-and-scaffold-PLAN.md — Generate real .intunewin from current commit and scaffold RUNTIME-VALIDATION.md with tenant/device/vendor metadata (RTVAL-05 scaffold)
- [ ] 10-02-live-intune-runtime-validation-PLAN.md — Drive RTVAL-01..04 manual checkpoints against a live Intune tenant + real Windows endpoint, capturing screenshots and device logs as evidence
- [ ] 10-03-report-signoff-PLAN.md — Finalize RUNTIME-VALIDATION.md, human sign-off, tick RTVAL-01..05 and mark Phase 10 complete
### Phase 11: Real-World Rollout & Feedback
**Goal**: ImpTune is running in a real MSP environment, has produced a package that actually reached endpoints, and technician feedback has been captured and triaged.
**Depends on**: Phase 9 (UX tech debt), Phase 10 (runtime validation passed)
**Requirements**: RWR-01, RWR-02, RWR-03, RWR-04
**Success Criteria** (what must be TRUE):
1. ImpTune is running in its single Docker container inside at least one real MSP environment serving real printers, with the host/URL recorded in the feedback document
2. At least one printer deployment package generated by the deployed instance has been pushed to real endpoints via Intune or NinjaRMM end-to-end
3. A reviewer can open `.planning/feedback/v1.1-rollout.md` and read structured feedback from the deploying technician covering what worked, what blocked, and what's missing
4. Every feedback item in that document is tagged fix-in-v1.1, defer-to-v1.2, or won't-do with written rationale
**Plans**: TBD
## Progress
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|----------|------------|
| 1. Foundation | v1.0 | 3/3 | Complete | 2026-04-10 |
| 2. Driver Management | v1.0 | 2/2 | Complete | 2026-04-10 |
| 3. Printer Configuration | v1.0 | 2/2 | Complete | 2026-04-10 |
| 4. Script Generation | v1.0 | 2/2 | Complete | 2026-04-10 |
| 5. Package Export | v1.0 | 2/2 | Complete | 2026-04-10 |
| 6. Wire Icon into .intunewin | v1.0 | 1/1 | Complete | 2026-04-10 |
| 7. Dashboard & Nav Polish | v1.0 | 1/1 | Complete | 2026-04-13 |
| 8. Nyquist Validation Track | v1.1 | 0/? | Not started | — |
| 9. UX Tech Debt Closure | 3/3 | Complete | 2026-04-13 | — |
| 10. Real-World Runtime Validation | v1.1 | 3/3 | Complete | 2026-04-13 |
| 11. Real-World Rollout & Feedback | v1.1 | 0/? | Not started | — |
# Roadmap: ImpTune
## Milestones
-**v1.0 MVP** — Phases 17, 13 plans, 27/27 requirements (shipped 2026-04-13) — see [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
- 🚧 **v1.1 Hardening & Validation** — Phases 811, 15 requirements (in progress, started 2026-04-13)
## Phases
<details>
<summary>✅ v1.0 MVP (Phases 17) — SHIPPED 2026-04-13</summary>
- [x] Phase 1: Foundation (3/3 plans) — 2026-04-10
- [x] Phase 2: Driver Management (2/2 plans) — 2026-04-10
- [x] Phase 3: Printer Configuration (2/2 plans) — 2026-04-10
- [x] Phase 4: Script Generation (2/2 plans) — 2026-04-10
- [x] Phase 5: Package Export (2/2 plans) — 2026-04-10
- [x] Phase 6: Wire Icon into .intunewin (1/1 plan, gap closure) — 2026-04-10
- [x] Phase 7: Dashboard & Navigation Polish (1/1 plan, gap closure) — 2026-04-13
Full details: [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md)
</details>
### 🚧 v1.1 Hardening & Validation (Phases 811)
- [ ] **Phase 8: Nyquist Validation Track** — Retro-fit Nyquist-compliant VALIDATION.md across all 7 v1.0 phases with evidence-backed checks
- [x] **Phase 9: UX Tech Debt Closure** — Fix the three carried-over UX gaps so the deployed build is the polished one technicians actually use
(completed 2026-04-13)
- [x] **Phase 10: Real-World Runtime Validation** — Validate generated artifacts end-to-end against a live Intune tenant and a real managed endpoint (completed 2026-04-13)
- [ ] **Phase 11: Real-World Rollout & Feedback** — Deploy the container to a real MSP environment, push a real package, and capture structured technician feedback
## Phase Details
### Phase 8: Nyquist Validation Track
**Goal**: Every v1.0 phase has a signed-off Nyquist-compliant validation record with cited evidence, and any blocking gaps are tracked.
**Depends on**: Nothing (parallelizable — pure audit of shipped code, no runtime dependency)
**Requirements**: NYQ-01, NYQ-02, NYQ-03
**Success Criteria** (what must be TRUE):
1. An operator can open any of the 7 v1.0 phase folders and read a `VALIDATION.md` where every success criterion maps to exactly one observable check with cited evidence (commit, test name, file path, or screenshot)
2. An operator can open `.planning/milestones/v1.0-VALIDATION-INDEX.md` and see a single pass/fail roll-up across all 7 phases with links to each phase's validation file
3. Any validation gap surfaced during the Nyquist pass appears in the index as either a v1.1 defect ticket (linked to the fixing phase) or an explicitly deferred item with written rationale
**Plans**: TBD
### Phase 9: UX Tech Debt Closure
**Goal**: The three carried-over UX defects are fixed and live-verified in a real browser so the rolled-out build is the polished one.
**Depends on**: Nothing (independent of validation and rollout — but must complete before Phase 11)
**Requirements**: UX-01, UX-02, UX-03
**Success Criteria** (what must be TRUE):
1. A technician uploading a new driver on the printer form sees the new DriverDesc appear in the dropdown without manually reloading the page
2. A technician typing an IP address into the printer form sees the port field auto-populate via the PRNT-03 Alpine.js handler, observed live in a real browser and recorded in VALIDATION.md
3. A technician on the printer detail page can click direct download links for the install, uninstall, and detect scripts individually, in addition to the existing package export buttons
**Plans**: 3 plans
- [ ] 09-01-driver-upload-fix-and-inline-oob-PLAN.md — Fix POST /drivers/upload 500 + add inline upload to printer form with HTMX OOB refresh (UX-01)
- [ ] 09-02-playwright-port-autofill-PLAN.md — Add Playwright dev dep + headless test for PRNT-03 IP->port auto-fill (UX-02)
- [ ] 09-03-script-download-links-PLAN.md — Add .ps1 route aliases + printer_detail.html script download links (UX-03)
### Phase 10: Real-World Runtime Validation
**Goal**: Generated .intunewin, install, detect, and uninstall artifacts are proven to work end-to-end on a real Intune tenant against a real Windows endpoint, with evidence recorded.
**Depends on**: Phase 9 (rollout uses the validated-AND-polished build; validation itself only strictly needs v1.0, but running it on the polished build avoids re-doing the pass)
**Requirements**: RTVAL-01, RTVAL-02, RTVAL-03, RTVAL-04, RTVAL-05
**Success Criteria** (what must be TRUE):
1. A generated `.intunewin` package is uploaded to a real Microsoft Intune tenant and accepted without format errors, with the tenant ingestion confirmation captured as evidence
2. A technician assigning the package to a real Intune-managed Windows endpoint observes the install script succeed under SYSTEM context, with `pnputil` driver staging and `$PSScriptRoot` path resolution verified in the device log
3. After install, the Intune detection rule driven by the generated detect script reports "installed" for the endpoint
4. A technician triggering uninstall from Intune sees the printer cleanly removed from the endpoint under SYSTEM context
5. A reviewer can open `RUNTIME-VALIDATION.md` and read a signed-off report listing tenant, device, OS build, driver vendor(s), screenshots/logs, and any issues found
**Plans**: 3 plans
- [ ] 10-01-preflight-package-and-scaffold-PLAN.md — Generate real .intunewin from current commit and scaffold RUNTIME-VALIDATION.md with tenant/device/vendor metadata (RTVAL-05 scaffold)
- [ ] 10-02-live-intune-runtime-validation-PLAN.md — Drive RTVAL-01..04 manual checkpoints against a live Intune tenant + real Windows endpoint, capturing screenshots and device logs as evidence
- [ ] 10-03-report-signoff-PLAN.md — Finalize RUNTIME-VALIDATION.md, human sign-off, tick RTVAL-01..05 and mark Phase 10 complete
### Phase 11: Real-World Rollout & Feedback
**Goal**: ImpTune is running in a real MSP environment, has produced a package that actually reached endpoints, and technician feedback has been captured and triaged.
**Depends on**: Phase 9 (UX tech debt), Phase 10 (runtime validation passed)
**Requirements**: RWR-01, RWR-02, RWR-03, RWR-04
**Success Criteria** (what must be TRUE):
1. ImpTune is running in its single Docker container inside at least one real MSP environment serving real printers, with the host/URL recorded in the feedback document
2. At least one printer deployment package generated by the deployed instance has been pushed to real endpoints via Intune or NinjaRMM end-to-end
3. A reviewer can open `.planning/feedback/v1.1-rollout.md` and read structured feedback from the deploying technician covering what worked, what blocked, and what's missing
4. Every feedback item in that document is tagged fix-in-v1.1, defer-to-v1.2, or won't-do with written rationale
**Plans**: 3 plans
- [ ] 11-01-deploy-container-to-msp-PLAN.md — Build + deploy ImpTune container into real MSP environment and record host/URL/commit (RWR-01)
- [ ] 11-02-push-real-package-PLAN.md — Generate a real package via the deployed instance and push to a real endpoint via Intune/NinjaRMM (RWR-02)
- [ ] 11-03-capture-and-triage-feedback-PLAN.md — Capture structured technician feedback in .planning/feedback/v1.1-rollout.md and triage every item (RWR-03, RWR-04)
## Progress
| Phase | Milestone | Plans Complete | Status | Completed |
|-------|-----------|----------------|----------|------------|
| 1. Foundation | v1.0 | 3/3 | Complete | 2026-04-10 |
| 2. Driver Management | v1.0 | 2/2 | Complete | 2026-04-10 |
| 3. Printer Configuration | v1.0 | 2/2 | Complete | 2026-04-10 |
| 4. Script Generation | v1.0 | 2/2 | Complete | 2026-04-10 |
| 5. Package Export | v1.0 | 2/2 | Complete | 2026-04-10 |
| 6. Wire Icon into .intunewin | v1.0 | 1/1 | Complete | 2026-04-10 |
| 7. Dashboard & Nav Polish | v1.0 | 1/1 | Complete | 2026-04-13 |
| 8. Nyquist Validation Track | v1.1 | 0/? | Not started | — |
| 9. UX Tech Debt Closure | 3/3 | Complete | 2026-04-13 | — |
| 10. Real-World Runtime Validation | v1.1 | 3/3 | Complete | 2026-04-13 |
| 11. Real-World Rollout & Feedback | v1.1 | 0/3 | Not started | — |