Archive 5 phases (36 plans) to milestones/v1.0-phases/. Archive roadmap, requirements, and audit to milestones/. Evolve PROJECT.md with shipped state and validated requirements. Collapse ROADMAP.md to one-line milestone summary. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
164 lines
6.6 KiB
Markdown
164 lines
6.6 KiB
Markdown
---
|
|
phase: 01-foundation
|
|
plan: 08
|
|
type: execute
|
|
wave: 7
|
|
depends_on:
|
|
- 01-07
|
|
files_modified: []
|
|
autonomous: false
|
|
requirements:
|
|
- FOUND-01
|
|
- FOUND-02
|
|
- FOUND-03
|
|
- FOUND-04
|
|
- FOUND-05
|
|
- FOUND-06
|
|
- FOUND-07
|
|
- FOUND-08
|
|
- FOUND-09
|
|
- FOUND-10
|
|
- FOUND-12
|
|
must_haves:
|
|
truths:
|
|
- "Application launches without crashing from dotnet run"
|
|
- "All 8 tabs visible with correct localized headers"
|
|
- "Language switch from Settings tab changes tab headers immediately without restart"
|
|
- "Profile management dialog opens, allows adding/renaming/deleting profiles"
|
|
- "Log panel at bottom shows timestamped messages with color coding"
|
|
- "Status bar shows tenant name and connection status"
|
|
- "All unit tests pass (zero failures)"
|
|
artifacts:
|
|
- path: "SharepointToolbox/App.xaml.cs"
|
|
provides: "Running application entry point"
|
|
- path: "SharepointToolbox/Views/MainWindow.xaml"
|
|
provides: "Visible shell with all required regions"
|
|
key_links:
|
|
- from: "Visual inspection"
|
|
to: "Phase 1 success criteria (ROADMAP.md)"
|
|
via: "Manual verification checklist"
|
|
pattern: "checkpoint"
|
|
---
|
|
|
|
<objective>
|
|
Run the full test suite, launch the application, and perform visual/functional verification of all Phase 1 success criteria before marking the phase complete.
|
|
|
|
Purpose: Automated tests validate logic, but WPF UI can fail visually in ways tests cannot catch (layout wrong, bindings silently failing, log panel invisible, crash on startup).
|
|
Output: Confirmed working foundation. Green light for Phase 2.
|
|
</objective>
|
|
|
|
<execution_context>
|
|
@C:/Users/SebastienQUEROL/.claude/get-shit-done/workflows/execute-plan.md
|
|
@C:/Users/SebastienQUEROL/.claude/get-shit-done/templates/summary.md
|
|
</execution_context>
|
|
|
|
<context>
|
|
@.planning/ROADMAP.md
|
|
@.planning/phases/01-foundation/01-CONTEXT.md
|
|
@.planning/phases/01-foundation/01-07-SUMMARY.md
|
|
</context>
|
|
|
|
<tasks>
|
|
|
|
<task type="auto">
|
|
<name>Task 1: Run full test suite and verify zero failures</name>
|
|
<files><!-- no files created or modified — test-execution-only task --></files>
|
|
<action>
|
|
Run the complete test suite:
|
|
```
|
|
dotnet test SharepointToolbox.Tests/SharepointToolbox.Tests.csproj --no-build -v normal
|
|
```
|
|
|
|
Expected result: All Unit and Integration tests pass. The following tests may remain as `Skip`:
|
|
- `SessionManagerTests.GetOrCreateContextAsync_CreatesContext` (requires interactive MSAL)
|
|
|
|
If any tests fail:
|
|
1. Read the failure message carefully
|
|
2. Fix the underlying code (do NOT delete or skip a failing test)
|
|
3. Re-run until all non-interactive tests pass
|
|
|
|
Also run a build to confirm zero warnings (treat warnings as potential future failures):
|
|
```
|
|
dotnet build SharepointToolbox.sln -warnaserror
|
|
```
|
|
If warnings-as-errors produces failures from NuGet or generated code, switch back to `dotnet build SharepointToolbox.sln` and list remaining warnings in the SUMMARY.
|
|
</action>
|
|
<verify>
|
|
<automated>cd "C:\Users\dev\Documents\projets\Sharepoint" && dotnet test SharepointToolbox.Tests/SharepointToolbox.Tests.csproj 2>&1 | tail -15</automated>
|
|
</verify>
|
|
<done>Test output shows 0 failed. All non-interactive tests pass. Build produces 0 errors.</done>
|
|
</task>
|
|
|
|
<task type="checkpoint:human-verify" gate="blocking">
|
|
<what-built>
|
|
Complete Phase 1 Foundation:
|
|
- WPF shell with 8-tab layout, log panel (150px, black background, green text), StatusBar
|
|
- Toolbar: tenant ComboBox (220px), Connect, Manage Profiles, separator, Clear Session
|
|
- Profile management dialog (modal) — add, rename, delete tenant profiles
|
|
- Settings tab: language switcher (EN/FR) + data folder picker
|
|
- Dynamic language switching — changes tab headers without restart
|
|
- Serilog rolling file log + LogPanelSink writing to in-app RichTextBox
|
|
- Global exception handlers wired
|
|
- All infrastructure patterns in place (pagination helper, retry helper, FeatureViewModelBase)
|
|
- Per-tab FeatureTabBase UserControl with ProgressBar + Cancel strip (shown only when IsRunning)
|
|
- StatusBar middle field shows live operation status text (ProgressStatus)
|
|
</what-built>
|
|
<how-to-verify>
|
|
Run the application: `dotnet run --project SharepointToolbox/SharepointToolbox.csproj`
|
|
|
|
Check each item:
|
|
|
|
1. **Shell layout**: Window shows toolbar at top, TabControl in center with 8 tabs (Permissions, Storage, File Search, Duplicates, Templates, Bulk Operations, Folder Structure, Settings), log panel at bottom (black, 150px), status bar below log.
|
|
|
|
2. **Tab headers**: All 8 tabs have their English localized text (not "[tab.xxx]" — which would mean missing resx key).
|
|
|
|
3. **Language switch**:
|
|
- Open Settings tab
|
|
- Change language to French
|
|
- Verify tab headers change immediately (no restart)
|
|
- Change back to English to reset
|
|
|
|
4. **Profile management**:
|
|
- Click "Manage Profiles..."
|
|
- Modal dialog appears
|
|
- Add a test profile: Name="Test", URL="https://test.sharepoint.com", ClientId="test-id"
|
|
- Profile appears in the toolbar ComboBox after dialog closes
|
|
- Rename the profile in the dialog — new name shows in ComboBox
|
|
- Delete the profile — removed from ComboBox
|
|
|
|
5. **Log panel**:
|
|
- Verify log entries appear (at least startup messages) in `HH:mm:ss [XXXX] message` format
|
|
- Verify green color for info entries
|
|
|
|
6. **Data folder**:
|
|
- Open Settings tab
|
|
- Click Browse, select a folder
|
|
- Verify folder path appears in the TextBox
|
|
|
|
7. **Error handler** (optional — skip if risky):
|
|
- Confirm `%AppData%\SharepointToolbox\logs\` directory exists and contains today's log file
|
|
|
|
Report any visual issues, missing strings, or crashes.
|
|
</how-to-verify>
|
|
<resume-signal>Type "approved" if all checks pass, or describe specific issues found</resume-signal>
|
|
</task>
|
|
|
|
</tasks>
|
|
|
|
<verification>
|
|
All Phase 1 ROADMAP success criteria met:
|
|
1. User can create, rename, delete, and switch between tenant profiles via the UI
|
|
2. MSAL token cache infrastructure ready (interactive login requires a real Azure AD tenant — not testable in this checkpoint)
|
|
3. Per-tab progress bar + cancel button infrastructure built (FeatureTabBase UserControl wired in all 7 stub tabs; FeatureViewModelBase tests prove the pattern)
|
|
4. Log panel surfaces errors in red; global exception handlers registered
|
|
5. Language switches between EN and FR dynamically without restart
|
|
</verification>
|
|
|
|
<success_criteria>
|
|
Human approves visual checkpoint. All unit tests green. Phase 1 complete — ready to begin Phase 2 (Permissions).
|
|
</success_criteria>
|
|
|
|
<output>
|
|
After completion, create `.planning/phases/01-foundation/01-08-SUMMARY.md`
|
|
</output>
|