diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md index eb28072..f63f6b1 100644 --- a/.planning/REQUIREMENTS.md +++ b/.planning/REQUIREMENTS.md @@ -45,21 +45,21 @@ None deferred — all active requirements scoped to v1.1. | Requirement | Phase | Status | |-------------|-------|--------| -| SITE-01 | — | Pending | -| SITE-02 | — | Pending | -| UACC-01 | — | Pending | -| UACC-02 | — | Pending | -| SIMP-01 | — | Pending | -| SIMP-02 | — | Pending | -| SIMP-03 | — | Pending | -| VIZZ-01 | — | Pending | -| VIZZ-02 | — | Pending | -| VIZZ-03 | — | Pending | +| SITE-01 | Phase 6 | Pending | +| SITE-02 | Phase 6 | Pending | +| UACC-01 | Phase 7 | Pending | +| UACC-02 | Phase 7 | Pending | +| SIMP-01 | Phase 8 | Pending | +| SIMP-02 | Phase 8 | Pending | +| SIMP-03 | Phase 8 | Pending | +| VIZZ-01 | Phase 9 | Pending | +| VIZZ-02 | Phase 9 | Pending | +| VIZZ-03 | Phase 9 | Pending | **Coverage:** - v1.1 requirements: 10 total -- Mapped to phases: 0 (pending roadmap) -- Unmapped: 10 +- Mapped to phases: 10 +- Unmapped: 0 --- -*Requirements defined: 2026-04-07* +*Requirements defined: 2026-04-07 | Traceability updated: 2026-04-07* diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index e68d264..47a0ebd 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -3,6 +3,7 @@ ## Milestones - ✅ **v1.0 MVP** — Phases 1-5 (shipped 2026-04-07) — [archive](milestones/v1.0-ROADMAP.md) +- 🔄 **v1.1 Enhanced Reports** — Phases 6-9 (in progress) ## Phases @@ -17,6 +18,59 @@ +**v1.1 Enhanced Reports** + +- [ ] **Phase 6: Global Site Selection** — Toolbar-level multi-site picker that all feature tabs consume as their default target +- [ ] **Phase 7: User Access Audit** — New feature tab: export every SharePoint/Teams access a specific user holds across selected sites +- [ ] **Phase 8: Simplified Permissions** — Plain-language labels, summary counts, color coding, and detail-level toggle on the permissions report +- [ ] **Phase 9: Storage Visualization** — Charting dependency + pie/donut and bar chart views of storage by file type in the Storage Metrics tab + +## Phase Details + +### Phase 6: Global Site Selection +**Goal**: Administrators can select one or more target sites once from the toolbar and have every feature tab use that selection by default +**Depends on**: Phase 5 (v1.0 foundation — toolbar and tab architecture in place) +**Requirements**: SITE-01, SITE-02 +**Success Criteria** (what must be TRUE): + 1. A multi-site picker control is visible in the main toolbar at all times, regardless of which tab is active + 2. Selecting sites in the toolbar causes all feature tabs to default to those sites when an operation is run + 3. A user can override the global selection on any individual tab without clearing the global state + 4. The global site selection persists across tab switches within the same session +**Plans**: TBD + +### Phase 7: User Access Audit +**Goal**: Administrators can audit every permission a specific user holds across selected sites and export the results +**Depends on**: Phase 6 +**Requirements**: UACC-01, UACC-02 +**Success Criteria** (what must be TRUE): + 1. A User Access Audit tab (or panel) is accessible and accepts a user identifier and site selection as inputs + 2. Running the audit returns a list of all access entries the user holds across the selected sites + 3. Results distinguish between direct role assignments, SharePoint group memberships, and inherited access + 4. Results can be exported to CSV or HTML in the same format established by v1.0 export patterns +**Plans**: TBD + +### Phase 8: Simplified Permissions +**Goal**: Permissions reports are readable by non-technical users through plain-language labels, color coding, and a configurable detail level +**Depends on**: Phase 6 +**Requirements**: SIMP-01, SIMP-02, SIMP-03 +**Success Criteria** (what must be TRUE): + 1. The permissions report displays human-readable labels (e.g., "Can edit files") alongside or instead of raw SharePoint role names (e.g., "Contribute") when the simplified mode toggle is on + 2. The report shows summary counts per permission level with color indicators distinguishing high, medium, and low access levels + 3. A detail-level selector (simple / detailed) controls whether individual item-level rows are shown or collapsed into summary rows + 4. Toggling modes and detail level does not require re-running the scan — it re-renders from the already-fetched data +**Plans**: TBD + +### Phase 9: Storage Visualization +**Goal**: The Storage Metrics tab displays an interactive chart of space consumption by file type, togglable between pie/donut and bar chart views +**Depends on**: Phase 6 +**Requirements**: VIZZ-01, VIZZ-02, VIZZ-03 +**Success Criteria** (what must be TRUE): + 1. A WPF charting library (LiveCharts2 or OxyPlot) is integrated as a NuGet dependency and renders correctly in the self-contained EXE build + 2. After a storage scan completes, a chart appears in the Storage Metrics tab showing space broken down by file type + 3. A toggle control switches the chart between pie/donut and bar chart representations without re-running the scan + 4. The chart updates automatically whenever a new storage scan finishes, without requiring manual refresh +**Plans**: TBD + ## Progress | Phase | Milestone | Plans Complete | Status | Completed | @@ -26,3 +80,7 @@ | 3. Storage and File Operations | v1.0 | 8/8 | Complete | 2026-04-02 | | 4. Bulk Operations and Provisioning | v1.0 | 10/10 | Complete | 2026-04-03 | | 5. Distribution and Hardening | v1.0 | 3/3 | Complete | 2026-04-03 | +| 6. Global Site Selection | v1.1 | 0/? | Not started | - | +| 7. User Access Audit | v1.1 | 0/? | Not started | - | +| 8. Simplified Permissions | v1.1 | 0/? | Not started | - | +| 9. Storage Visualization | v1.1 | 0/? | Not started | - | diff --git a/.planning/STATE.md b/.planning/STATE.md index bca79cb..e845ed1 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -2,12 +2,12 @@ gsd_state_version: 1.0 milestone: v1.1 milestone_name: Enhanced Reports -status: planning -stopped_at: Defining requirements for v1.1 +status: roadmap_complete +stopped_at: Phase 6 not started — roadmap approved, ready for plan-phase last_updated: "2026-04-07T10:00:00.000Z" -last_activity: 2026-04-07 — Milestone v1.1 started +last_activity: 2026-04-07 — Roadmap created for v1.1 (Phases 6-9) progress: - total_phases: 0 + total_phases: 4 completed_phases: 0 total_plans: 0 completed_plans: 0 @@ -21,14 +21,28 @@ progress: See: .planning/PROJECT.md (updated 2026-04-07) **Core value:** Administrators can audit and manage SharePoint/Teams permissions and storage across multiple client tenants from a single, reliable desktop application. -**Current focus:** v1.1 Enhanced Reports — user access audit, simplified permissions, storage graphs, global site selection +**Current focus:** v1.1 Enhanced Reports — global site selection, user access audit, simplified permissions, storage visualization ## Current Position -Phase: Not started (defining requirements) +Phase: 6 — Global Site Selection (not started) Plan: — -Status: Defining requirements -Last activity: 2026-04-07 — Milestone v1.1 started +Status: Roadmap complete, awaiting first plan +Last activity: 2026-04-07 — Roadmap created (Phases 6-9), 10/10 requirements mapped + +``` +v1.1 Progress: [ ] 0% +Phase 6 [ ] → Phase 7 [ ] → Phase 8 [ ] → Phase 9 [ ] +``` + +## Performance Metrics + +| Metric | v1.0 | v1.1 (running) | +|--------|------|----------------| +| Phases | 5 | 4 planned | +| Plans | 36 | TBD | +| Commits | 164 | 0 | +| Tests | 134 pass / 22 skip | — | ## Accumulated Context @@ -36,9 +50,15 @@ Last activity: 2026-04-07 — Milestone v1.1 started Decisions are logged in PROJECT.md Key Decisions table. +**v1.1 architectural notes:** +- Global site selection (Phase 6) changes the toolbar; all tabs must bind to a shared `GlobalSiteSelectionViewModel` or equivalent. Use `WeakReferenceMessenger` for cross-tab site-changed notifications, consistent with v1.0 messenger usage. +- Per-tab override (SITE-02) means each `FeatureViewModelBase` subclass stores a nullable local site override; null means "use global". +- Storage Visualization (Phase 9) requires a WPF charting NuGet (LiveCharts2 recommended — actively maintained, WPF-native, self-contained friendly). Wire chart data binding to the existing storage scan result model. +- Self-contained EXE constraint: charting library must not require runtime DLLs outside the publish output. + ### Pending Todos -1. Add global multi-site selection option (ui) — `todos/pending/2026-04-07-add-global-multi-site-selection-option.md` — **included in v1.1 scope** +1. Add global multi-site selection option (ui) — `todos/pending/2026-04-07-add-global-multi-site-selection-option.md` — **addressed by Phase 6** ### Blockers/Concerns @@ -47,5 +67,5 @@ None. ## Session Continuity Last session: 2026-04-07T10:00:00.000Z -Stopped at: Defining requirements for v1.1 +Stopped at: Roadmap complete — run `/gsd:plan-phase 6` to begin Resume file: None