- SUMMARY.md created with TDD execution details and test results - STATE.md updated with decisions and session info - ROADMAP.md updated: Phase 12 now shows 1/2 summaries (In Progress)
9.6 KiB
Roadmap: ImpTune
Milestones
- ✅ v1.0 MVP — Phases 1–7, 13 plans, 27/27 requirements (shipped 2026-04-13) — see
milestones/v1.0-ROADMAP.md - 🚧 v1.1 Hardening & Validation — Phases 8–11, 15 requirements + UI enhancements (in progress, started 2026-04-13)
Phases
✅ v1.0 MVP (Phases 1–7) — SHIPPED 2026-04-13
- Phase 1: Foundation (3/3 plans) — 2026-04-10
- Phase 2: Driver Management (2/2 plans) — 2026-04-10
- Phase 3: Printer Configuration (2/2 plans) — 2026-04-10
- Phase 4: Script Generation (2/2 plans) — 2026-04-10
- Phase 5: Package Export (2/2 plans) — 2026-04-10
- Phase 6: Wire Icon into .intunewin (1/1 plan, gap closure) — 2026-04-10
- Phase 7: Dashboard & Navigation Polish (1/1 plan, gap closure) — 2026-04-13
Full details: milestones/v1.0-ROADMAP.md
🚧 v1.1 Hardening & Validation (Phases 8–11)
- Phase 8: Nyquist Validation Track — Retro-fit Nyquist-compliant VALIDATION.md across all 7 v1.0 phases with evidence-backed checks (completed 2026-04-13)
- 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)
- 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: UI Enhancements — Add printer edit, separate form from list, clickable client names, dark/light mode toggle, and French/English language switch (completed 2026-04-15)
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):
- An operator can open any of the 7 v1.0 phase folders and read a
VALIDATION.mdwhere every success criterion maps to exactly one observable check with cited evidence (commit, test name, file path, or screenshot) - An operator can open
.planning/milestones/v1.0-VALIDATION-INDEX.mdand see a single pass/fail roll-up across all 7 phases with links to each phase's validation file - 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: 8 plans
- 08-01-PLAN.md — Audit Phase 1 (Foundation) into Nyquist-compliant 01-VALIDATION.md (NYQ-01)
- 08-02-PLAN.md — Audit Phase 2 (Driver Management) + record POST /drivers/upload 500 gap (NYQ-01)
- 08-03-PLAN.md — Audit Phase 3 (Printer Configuration) into Nyquist Record (NYQ-01)
- 08-04-PLAN.md — Audit Phase 4 (Script Generation) with SYSTEM-context attestation notes (NYQ-01)
- 08-05-PLAN.md — Audit Phase 5 (Package Export) with RTVAL-01 byte-level evidence (NYQ-01)
- 08-06-PLAN.md — Audit Phase 6 (Wire Icon into .intunewin) into Nyquist Record (NYQ-01)
- 08-07-PLAN.md — Audit Phase 7 (Dashboard & Nav Polish) into Nyquist Record (NYQ-01)
- 08-08-PLAN.md — Compile v1.0-VALIDATION-INDEX.md, triage gaps, human sign-off (NYQ-02, NYQ-03)
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):
- A technician uploading a new driver on the printer form sees the new DriverDesc appear in the dropdown without manually reloading the page
- 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
- 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):
- A generated
.intunewinpackage is uploaded to a real Microsoft Intune tenant and accepted without format errors, with the tenant ingestion confirmation captured as evidence - A technician assigning the package to a real Intune-managed Windows endpoint observes the install script succeed under SYSTEM context, with
pnputildriver staging and$PSScriptRootpath resolution verified in the device log - After install, the Intune detection rule driven by the generated detect script reports "installed" for the endpoint
- A technician triggering uninstall from Intune sees the printer cleanly removed from the endpoint under SYSTEM context
- A reviewer can open
RUNTIME-VALIDATION.mdand 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: UI Enhancements
Goal: Improve the daily usability of ImpTune with printer editing, better form/list layout, client-scoped navigation, dark/light theme, and bilingual (FR/EN) support. Depends on: Phase 9 (polished base build), Phase 10 (runtime validation passed) Requirements: UIE-01, UIE-02, UIE-03, UIE-04, UIE-05 Success Criteria (what must be TRUE):
- Every printer in the list has an Edit button that opens a pre-filled form and saves changes in-place without losing other printer data
- The new-printer form is visually separated from the printer list (distinct section, card, or page) so adding a printer doesn't feel buried in the list
- Every client name in the interface is a clickable link that navigates to a filtered page showing only that client's printers
- A toggle lets the user switch between Dark mode, Light mode, and Follow system — the chosen preference persists across page reloads
- A toggle lets the user switch the UI language between French and English — all labels, buttons, and messages update immediately and the choice persists Plans: 4 plans
- 11-01-PLAN.md — Wave 0 test scaffolds + UIE-02: dedicated /printers/new page + POST redirect (UIE-02)
- 11-02-PLAN.md — Printer edit modal: PATCH /printers/{id} + native dialog + Edit button per row (UIE-01)
- 11-03-PLAN.md — Theme toggle + FR/EN language toggle in base.html via Alpine.js stores (UIE-04, UIE-05)
- 11-04-PLAN.md — Client detail page /clients/{id} + clickable client names everywhere (UIE-03)
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 | 8/8 | Complete | 2026-04-13 |
| 9. UX Tech Debt Closure | 3/3 | Complete | 2026-04-13 | 2026-04-13 |
| 10. Real-World Runtime Validation | v1.1 | 3/3 | Complete | 2026-04-13 |
| 11. UI Enhancements | 4/4 | Complete | 2026-04-15 |
Phase 12: i18n bugfixes — full translation coverage and browser language auto-detection
Goal: All hardcoded UI strings in every template respond to the FR/EN language toggle; browser language auto-detected from navigator.language on first visit; E2E suite fully green. Requirements: TBD Depends on: Phase 11 Plans: 1/2 plans executed
Plans:
- 12-01-PLAN.md — Browser language auto-detection (navigator.language fallback) + fix test_port_autofill E2E
- 12-02-PLAN.md — Full template i18n coverage: wire all hardcoded strings across 13 templates to Alpine i18n store