diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..8fe2fcb --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,78 @@ +# Requirements: ImpTune v1.1 — Hardening & Validation + +**Defined:** 2026-04-13 +**Core Value:** Generate a complete, working printer deployment package (script + drivers + icon) in minutes instead of manually scripting each printer setup. +**Milestone goal:** Close every open concern from v1.0 — real-world runtime validation, UX tech debt, and Nyquist-compliant validation track — to ship a confidence release. + +> No new product features. Pure quality, validation, and rollout milestone. REQ-IDs continue numbering from v1.0 categories. + +## v1.1 Requirements + +### Real-World Runtime Validation (RTVAL) + +- [ ] **RTVAL-01**: A generated `.intunewin` package is uploaded to a real Microsoft Intune tenant and accepted (no format errors), with byte-level conformance confirmed against tenant ingestion +- [ ] **RTVAL-02**: A generated install script runs successfully under SYSTEM context on a real Intune-managed Windows endpoint, with `pnputil` driver staging and `$PSScriptRoot` path resolution verified +- [ ] **RTVAL-03**: Generated detect script returns the expected exit code on a real endpoint after install (Intune detection rule succeeds) +- [ ] **RTVAL-04**: Uninstall script removes the printer cleanly under SYSTEM context on a real endpoint +- [ ] **RTVAL-05**: A signed-off RUNTIME-VALIDATION.md report records tenant, device, OS build, driver vendor(s) tested, screenshots/logs, and any issues found + +### UX Tech Debt (UX) + +- [ ] **UX-01**: After a new driver is uploaded on the printer form, the DriverDesc dropdown refreshes automatically (no manual page reload) — verified live in browser +- [ ] **UX-02**: PRNT-03 Alpine.js IP→port auto-derivation is verified live in a real browser session, with the verification recorded in VALIDATION.md +- [ ] **UX-03**: The printer detail page exposes direct download links for each generated script (install / uninstall / detect) in addition to the package export buttons + +### Nyquist Validation Track (NYQ) + +- [ ] **NYQ-01**: All 7 v1.0 phases have a Nyquist-compliant `VALIDATION.md` (one observable check per success criterion, evidence cited, no hand-wavy "code looks right" entries) +- [ ] **NYQ-02**: A `.planning/milestones/v1.0-VALIDATION-INDEX.md` aggregates per-phase validation status with pass/fail and links to evidence +- [ ] **NYQ-03**: Any validation gaps surfaced during the Nyquist pass that block real usage are tracked as defects and either fixed in v1.1 or explicitly deferred with rationale + +### Real-World Rollout (RWR) + +- [ ] **RWR-01**: ImpTune is deployed in its single Docker container to at least one real MSP environment serving real printers +- [ ] **RWR-02**: At least one real printer deployment package generated by the deployed instance is pushed to endpoints (via Intune or NinjaRMM) end-to-end +- [ ] **RWR-03**: Structured user feedback is captured from the deploying technician (what worked, what blocked, what's missing) in a `.planning/feedback/v1.1-rollout.md` document +- [ ] **RWR-04**: Feedback items are triaged into: fix-in-v1.1, defer-to-v1.2, won't-do (with reasoning) — recorded in the same feedback document + +## Future Requirements + +Carried forward from v1.0 Out of Scope — no change. + +## Out of Scope + +| Feature | Reason | +|---------|--------| +| New product features (auth, monitoring, API push, mobile UI, i18n, audit log) | v1.1 is hardening-only; new capability work waits for v1.2+ | +| Refactoring storage / DB schema | v1.0 schema stable, no migration churn warranted | +| Performance optimization | No reported bottleneck; premature | +| Rewriting v1.0 phases that already pass real-world validation | Only fix what real-world validation breaks | + +## Traceability + +| 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 | + +**Coverage:** +- v1.1 requirements: 15 total +- Mapped to phases: 0 (roadmap pending) +- Unmapped: 15 ⚠️ + +--- +*Requirements defined: 2026-04-13* +*Last updated: 2026-04-13 after initial definition*