docs(07-13): plan v0.7.0 gap closure — 12 tasks / 8 waves / 3-iteration plan-checker PASS
Closes the v0.7.0 gap surfaced by design UX team's CONDITIONAL sign-off
(designer-delivery-4/UX-REVIEW.md). Phase 7 close gated on landing this
plan's 9 UX-letter items.
=== Plan structure (3239 lines) ===
Wave 1: Tasks 1+2+3 (§1 drop Home title / §2 splash 1.6s→800ms / §3 5 copy
rewrites in strings.dart) — trivial parallel-safe
Wave 2: Task 4 (B-2 empty-value suppression in connected-state Home meta row)
Wave 3: Task 5 (D-07-16 AP-4 EXCEPTION: 2-line lift on ProwlerVpnService.kt
+ D-07-17 Pigeon ConnectErrorCode.connectFailed + regen + Kotlin
synthesis) — split into Sub-task 5a (Kotlin lift + cross-UID gate
re-verify) + Sub-task 5b (Pigeon enum + .g regen + synthesis);
single atomic commit
Wave 4: Task 6 (B-3 Dart-side ErrorBanner mapping + ~20 LOC
errorLatchTransformer in connection_state.dart; Test case A behavioral
+ Test case B regression gate via _FakeConnStatusSeq.transform())
Wave 5: Task 7 (B-4 no-config nudge per D-07-18: SnackBar + context.go/settings)
Wave 6: Task 8 (§4a 3 a11y must-fixes: A-1 dial Semantics state-interpolated
/ A-2 IconButton tooltips on info+copy / A-3 ProwlInput 48dp at
widget level)
Wave 7: Task 9 (D-07-15 B-1 PING composition to design-system team for
redline-v3 amendment) + Task 10 (checkpoint:human-action handoff)
Wave 8a: Task 11 (tactical close — v0.7.0+11 multi-ABI APK + v4.1 re-shoot
bundle limited to screens affected by Waves 1-6 / UX-team confirms
7-of-8 closed; 02d capture has full config-restore teardown)
Wave 8b: Task 12 (full Phase 7 close — post-B-1 amendment + impl + v4.2
re-shoot + UX-team unconditional → 07-07-SUMMARY + ROADMAP flips
on 07-07/07-12/07-13 + STATE.md 36→40 / 95→100)
=== Decision compliance (locked) ===
D-07-15: B-1 amendment-first (Wave 7 PING composition + Wave 8b post-impl)
D-07-16: AP-4 EXCEPTION on prowler-client/android/app/.../ProwlerVpnService.kt
lines 281-303 (skip disconnected broadcast on start-failed); cited
in Task 5 commit subject + .planning/debug/AP4-EXCEPTION-D-07-16-
START-FAILED-DISCONNECTED-SUPPRESSION.md doc; cross-UID gate
re-verify via :route-test:connectedDebugAndroidTest in same task
D-07-17: ConnectErrorCode.connectFailed Pigeon enum (sequenced before
error_banner.dart consumer via Sub-task 5b → Task 6)
D-07-18: SnackBar + auto-tab-switch to Settings (Task 7)
=== Plan-checker iterations ===
rev-0 → rev-1: planner draft + self-validation
rev-1 → rev-2: BLOCKER B1 (Dart-side latch + Test case B regression gate)
+ BLOCKER B2 (cross-UID gate post-lift re-verify) + 5 WARNINGs
(Task 5 split, A-2 tests locked, STATE math convention locked,
splash hold script, test count +9 reframed)
rev-2 → rev-3: 2 new WARNINGs (STATE math reconciliation across 7 locations,
ROADMAP list-item flip prose split) + 2 INFOs (latch test
.transform plumbing, 02d config-restore teardown)
Both validators (verify.plan-structure + frontmatter.validate) PASS clean
at rev-3 with zero errors/warnings.
=== AP-4 exception precedent ===
Per 06-LEARNINGS.md: 5 AP-4 exceptions already granted in Phase 6
(Bug B fix, F-1/F-2/F-3 off-main-thread, READ_DIAGNOSTICS_DEBUG permission,
RECEIVER_EXPORTED fix). D-07-16 follows the same exception ceremony
(dedicated AP4-EXCEPTION-*.md doc + commit subject citation + cross-UID
gate re-verify).
=== Ready for execute-phase dispatch ===
Next step: /gsd-execute-phase 7 --gaps-only
STATE.md progress block intact at 9/6/39/36/95 (no gsd-sdk state.* helpers
called per memory project_gsd_sdk_state_helper_regression).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
3239
.planning/phases/07-design-system-polish/07-13-PLAN.md
Normal file
3239
.planning/phases/07-design-system-polish/07-13-PLAN.md
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user