docs(10-01): complete intro-section and step-descriptions plan

- SUMMARY.md with full execution record
- STATE.md: progress updated, 3 decisions added, session recorded
- ROADMAP.md: phase 10 progress updated (1/3 summaries)
- REQUIREMENTS.md: UX-01 and UX-03 marked complete
- deferred-items.md: pre-existing RemoteConfigStep test failures logged
This commit is contained in:
2026-04-01 12:56:16 +02:00
parent 489dfab896
commit be788a44b7
5 changed files with 165 additions and 13 deletions
@@ -0,0 +1,128 @@
---
phase: 10-content-clarity
plan: 01
subsystem: ui
tags: [react, tailwind, md3, wizard, intro-section, step-descriptions]
# Dependency graph
requires:
- phase: 09-md3-components
provides: MD3_BTN_FILLED constant, MD3 token system, TextFieldMD3 components
provides:
- IntroSection component with "Get Started" CTA in App.tsx
- showIntro local state gate controlling wizard visibility
- Step description paragraphs in all 4 wizard steps
- Updated App.test.tsx covering intro render + Get Started flow
affects:
- 10-content-clarity (plans 02, 03 build on step component structure)
# Tech tracking
tech-stack:
added: []
patterns:
- "Local showIntro state in WizardShell (not in WizardReducer) — ephemeral UI state pattern"
- "IntroSection as local inline component inside App.tsx — no extra file for small co-located UI"
- "Step descriptions use text-sm text-on-surface-variant mt-1 mb-4 — standard MD3 secondary text"
key-files:
created: []
modified:
- src/App.tsx
- src/App.test.tsx
- src/components/wizard/BackendSelectionStep.tsx
- src/components/wizard/RemoteConfigStep.tsx
- src/components/wizard/DeploymentStep.tsx
- src/components/wizard/ReviewStep.tsx
key-decisions:
- "showIntro is local useState in WizardShell — not persisted, resets on page reload by design"
- "IntroSection declared as a local component in App.tsx (not a separate file) — appropriate for small co-located UI"
- "ReviewStep had no h2 heading — added 'Step 4: Review & Download' before the description paragraph"
patterns-established:
- "Step description: <p className='text-sm text-on-surface-variant mt-1 mb-4'> immediately after <h2>"
requirements-completed:
- UX-01
- UX-03
# Metrics
duration: 7min
completed: 2026-04-01
---
# Phase 10 Plan 01: Content Clarity — Intro & Step Descriptions Summary
**Intro section with Get Started CTA gates the wizard on first load; all 4 wizard steps now display 1-2 sentence context descriptions below their headings**
## Performance
- **Duration:** ~7 min
- **Started:** 2026-04-01T10:48:20Z
- **Completed:** 2026-04-01T10:54:47Z
- **Tasks:** 2
- **Files modified:** 6
## Accomplishments
- Added IntroSection component to App.tsx with action-first copy, backend list mention, and rclone.conf/script generation explanation
- Get Started button (MD3_BTN_FILLED) toggles showIntro state — intro disappears, wizard appears; no persistence
- All 4 wizard steps now have a descriptive paragraph after the h2 using MD3 secondary text styling
- Updated App.test.tsx: new "shows intro section on initial render" test + updated existing test to click Get Started before asserting wizard content
## Task Commits
Each task was committed atomically:
1. **Task 1: Add IntroSection and showIntro gate to App.tsx** - `c1d1633` (feat)
2. **Task 2: Update App.test.tsx and add step descriptions** - `4b837b1` (feat)
**Plan metadata:** _(pending final commit)_
## Files Created/Modified
- `src/App.tsx` - Added useState import, showIntro local state, IntroSection component, conditional render
- `src/App.test.tsx` - New intro test, updated BackendSelectionStep test, added fireEvent import
- `src/components/wizard/BackendSelectionStep.tsx` - Description paragraph after h2
- `src/components/wizard/RemoteConfigStep.tsx` - Description paragraph after h2
- `src/components/wizard/DeploymentStep.tsx` - Description paragraph after h2
- `src/components/wizard/ReviewStep.tsx` - Added missing h2 heading + description paragraph
## Decisions Made
- `showIntro` stored in local `useState` inside WizardShell — not in the WizardReducer. The plan explicitly required "Do NOT add intro state to useReducer/WizardState". This is purely ephemeral UI state.
- IntroSection is a local inline component in App.tsx rather than a separate file — appropriate for its small size and tight coupling to WizardShell.
- ReviewStep had no h2 heading at all. Added "Step 4: Review & Download" before the description paragraph to be consistent with the other 3 steps and satisfy "Add a `<p>` element immediately after the `<h2>`".
## Deviations from Plan
### Auto-fixed Issues
**1. [Rule 1 - Bug] ReviewStep missing h2 heading**
- **Found during:** Task 2 (adding step descriptions)
- **Issue:** ReviewStep had no `<h2>` element. The plan said "Add a `<p>` element immediately after the `<h2>`" but there was no h2 to add after. All other 3 steps had their h2.
- **Fix:** Added `<h2>Step 4: Review &amp; Download</h2>` before the description paragraph.
- **Files modified:** `src/components/wizard/ReviewStep.tsx`
- **Verification:** Tests pass, consistent structure across all 4 steps.
- **Committed in:** `4b837b1` (Task 2 commit)
---
**Total deviations:** 1 auto-fixed (missing h2 in ReviewStep)
**Impact on plan:** Necessary to fulfill the requirement as written. No scope creep.
## Issues Encountered
**Pre-existing test failures (deferred, out of scope):** 8 tests in `RemoteConfigStep.test.tsx` occasionally timeout for GCS/B2 fields and S3/GCS validation. Root cause: uncommitted working-tree changes to `registry.ts` (tooltip texts added in a prior session) combined with the updated test selectors. These failures are unrelated to plan 10-01 and do not affect any of the 6 target files. Logged to `deferred-items.md`.
Final full test run: 202/202 passing.
## User Setup Required
None - no external service configuration required.
## Next Phase Readiness
- IntroSection is live, Get Started CTA works, wizard is hidden behind it on initial load
- All 4 steps have consistent h2 + description paragraph structure
- Plan 10-02 can proceed (next content clarity improvement)
---
*Phase: 10-content-clarity*
*Completed: 2026-04-01*