From d2f66d4b432746059e4940bf16e41d2f9374343a Mon Sep 17 00:00:00 2001 From: Kawa Date: Mon, 13 Apr 2026 09:58:23 +0200 Subject: [PATCH] docs: create milestone v1.1 roadmap (4 phases) --- .planning/REQUIREMENTS.md | 36 +++++++++---------- .planning/ROADMAP.md | 76 +++++++++++++++++++++++++++++++-------- .planning/STATE.md | 53 +++++++++++++++++---------- 3 files changed, 114 insertions(+), 51 deletions(-) diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index 8fe2fcb..5284ecd 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -52,27 +52,27 @@ Carried forward from v1.0 Out of Scope — no change. | Requirement | Phase | Status | |-------------|-------|--------| -| RTVAL-01 | TBD | Pending | -| RTVAL-02 | TBD | Pending | -| RTVAL-03 | TBD | Pending | -| RTVAL-04 | TBD | Pending | -| RTVAL-05 | TBD | Pending | -| UX-01 | TBD | Pending | -| UX-02 | TBD | Pending | -| UX-03 | TBD | Pending | -| NYQ-01 | TBD | Pending | -| NYQ-02 | TBD | Pending | -| NYQ-03 | TBD | Pending | -| RWR-01 | TBD | Pending | -| RWR-02 | TBD | Pending | -| RWR-03 | TBD | Pending | -| RWR-04 | TBD | Pending | +| RTVAL-01 | Phase 10 | Pending | +| RTVAL-02 | Phase 10 | Pending | +| RTVAL-03 | Phase 10 | Pending | +| RTVAL-04 | Phase 10 | Pending | +| RTVAL-05 | Phase 10 | Pending | +| UX-01 | Phase 9 | Pending | +| UX-02 | Phase 9 | Pending | +| UX-03 | Phase 9 | Pending | +| NYQ-01 | Phase 8 | Pending | +| NYQ-02 | Phase 8 | Pending | +| NYQ-03 | Phase 8 | Pending | +| RWR-01 | Phase 11 | Pending | +| RWR-02 | Phase 11 | Pending | +| RWR-03 | Phase 11 | Pending | +| RWR-04 | Phase 11 | Pending | **Coverage:** - v1.1 requirements: 15 total -- Mapped to phases: 0 (roadmap pending) -- Unmapped: 15 ⚠️ +- Mapped to phases: 15 ✓ +- Unmapped: 0 --- *Requirements defined: 2026-04-13* -*Last updated: 2026-04-13 after initial definition* +*Last updated: 2026-04-13 after v1.1 roadmap creation (Phases 8–11)* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index dcca1c7..b0bd866 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -3,7 +3,7 @@ ## Milestones - ✅ **v1.0 MVP** — Phases 1–7, 13 plans, 27/27 requirements (shipped 2026-04-13) — see [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md) -- 📋 **v1.1** — not yet planned (`/gsd:new-milestone`) +- 🚧 **v1.1 Hardening & Validation** — Phases 8–11, 15 requirements (in progress, started 2026-04-13) ## Phases @@ -22,22 +22,70 @@ Full details: [`milestones/v1.0-ROADMAP.md`](milestones/v1.0-ROADMAP.md) -### 📋 v1.1 (not yet planned) +### 🚧 v1.1 Hardening & Validation (Phases 8–11) -Run `/gsd:new-milestone` to scope v1.1. Likely candidates from v1.0 carryover: -- Real-world Intune tenant runtime validation -- Driver dropdown refresh after upload -- UI links to individual script downloads -- Nyquist-compliant VALIDATION.md across phases +- [ ] **Phase 8: Nyquist Validation Track** — Retro-fit Nyquist-compliant VALIDATION.md across all 7 v1.0 phases with evidence-backed checks +- [ ] **Phase 9: UX Tech Debt Closure** — Fix the three carried-over UX gaps so the deployed build is the polished one technicians actually use +- [ ] **Phase 10: Real-World Runtime Validation** — Validate generated artifacts end-to-end against a live Intune tenant and a real managed endpoint +- [ ] **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**: TBD + +### 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**: TBD + +### 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 | +| 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 | v1.1 | 0/? | Not started | — | +| 10. Real-World Runtime Validation | v1.1 | 0/? | Not started | — | +| 11. Real-World Rollout & Feedback | v1.1 | 0/? | Not started | — | diff --git a/.planning/STATE.md b/.planning/STATE.md index 1608777..0c2dddc 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,15 +2,17 @@ gsd_state_version: 1.0 milestone: v1.1 milestone_name: Hardening & Validation -status: defining-requirements -last_updated: "2026-04-13T10:00:00Z" -last_activity: "2026-04-13 — Milestone v1.1 started" +status: pending +last_updated: "2026-04-13T12:00:00Z" +last_activity: "2026-04-13 — v1.1 roadmap created (Phases 8–11)" progress: - total_phases: 0 + total_phases: 4 completed_phases: 0 total_plans: 0 completed_plans: 0 percent: 0 +current_phase: 8 +current_phase_name: Nyquist Validation Track --- # Project State @@ -20,15 +22,15 @@ progress: See: .planning/PROJECT.md (updated 2026-04-13 after v1.0 milestone) **Core value:** Generate a complete, working printer deployment package (script + drivers + icon) in minutes instead of manually scripting each printer setup. -**Current focus:** v1.1 Hardening & Validation — defining requirements +**Current focus:** v1.1 Hardening & Validation — Phase 8 (Nyquist Validation Track) ## Current Position Milestone: v1.1 Hardening & Validation -Phase: Not started (defining requirements) +Phase: 8 — Nyquist Validation Track Plan: — -Status: Defining requirements -Last activity: 2026-04-13 — Milestone v1.1 started +Status: Pending (roadmap approved, plans not yet drafted) +Last activity: 2026-04-13 — v1.1 roadmap created, 15/15 requirements mapped across Phases 8–11 ## Milestone History @@ -36,25 +38,38 @@ Last activity: 2026-04-13 — Milestone v1.1 started ## Accumulated Context -### Open Concerns (carry into v1.1) +### v1.1 Phase Structure -- Real-world Intune tenant runtime validation for .intunewin byte-level compliance -- `pnputil` + `$PSScriptRoot` path resolution under SYSTEM context on a real Intune-managed device -- Printer form driver dropdown requires manual page reload after new driver upload (Phase 2 tech debt) -- PRNT-03 Alpine.js port auto-derivation — code verified, needs live browser test -- No UI links to individual script downloads (only via package export) -- Nyquist-compliant VALIDATION.md missing on all 7 phases (separate validation track) +- Phase 8: Nyquist Validation Track (NYQ-01..03) — parallelizable audit track +- Phase 9: UX Tech Debt Closure (UX-01..03) — must land before rollout +- Phase 10: Real-World Runtime Validation (RTVAL-01..05) — must pass before rollout +- Phase 11: Real-World Rollout & Feedback (RWR-01..04) — depends on Phases 9 + 10 + +### Open Concerns (now owned by v1.1 phases) + +- Real-world Intune tenant .intunewin acceptance → Phase 10 (RTVAL-01) +- `pnputil` + `$PSScriptRoot` under SYSTEM → Phase 10 (RTVAL-02..04) +- Driver dropdown refresh after upload → Phase 9 (UX-01) +- PRNT-03 Alpine.js port auto-derivation live verification → Phase 9 (UX-02) +- Individual script download links on printer detail page → Phase 9 (UX-03) +- Nyquist-compliant VALIDATION.md across v1.0 phases → Phase 8 (NYQ-01..03) ### Decisions +- **Phase ordering:** RTVAL before RWR (cannot deploy unvalidated runtime); UX before RWR (deployed build must be polished); NYQ parallel to all (pure audit, no code dependency) — placed first so v1.0 validation evidence is fresh before runtime work begins. +- **RTVAL grouping:** RTVAL-01..05 combined into single Phase 10 because they share setup (same tenant, same test endpoint, same RUNTIME-VALIDATION.md report). +- **NYQ as dedicated phase:** Kept standalone (not absorbed) because it audits all 7 v1.0 phases and its evidence feeds defect triage into Phases 9/10. + Full decision log in PROJECT.md Key Decisions table. Milestone v1.0 decisions archived in `milestones/v1.0-ROADMAP.md`. ### Pending Todos -None. +- Run `/gsd:plan-phase 8` to draft plans for Nyquist Validation Track +- Schedule real Intune tenant + test endpoint access for Phase 10 +- Identify target MSP environment for Phase 11 rollout ## Session Continuity -Last session: 2026-04-13 — v1.0 milestone completion -Stopped at: Milestone v1.0 shipped -Resume file: None +Last session: 2026-04-13 — v1.1 roadmap creation +Stopped at: Roadmap written, requirements traceability updated, awaiting `/gsd:plan-phase 8` +Resume file: `.planning/ROADMAP.md`