Phase 5 — Validation

Phase 5 -- Architecture Validation Report

Version: 1.0 Date: February 25, 2026 Input: Phase 4 Architecture Specification v1.0 Validator role: Independent review against Phase 2 quality bar, WWDC25 Field Guide tests, User Capability Map [Core] tasks, and P0 issues from Phase 1 Verdict: CONDITIONAL PASS -- architecture is sound; 4 findings require resolution before implementation


How This Validation Was Conducted

Each test was evaluated by checking the specific claim against the specific evidence in the Phase 4 document. Where the architecture makes a tap-count claim, the actual flow table was traced step by step and the count was verified independently. Where the architecture claims a feature is discoverable, the path was reconstructed from the screen specifications and navigation hierarchy. Failures and borderline cases are noted explicitly. The architecture's own self-assessment (Section 4's "Quality Bar Validation") was treated as a claim to be verified, not as evidence.


Validation Checklist

The following tests are drawn from the WWDC25 Field Guide and Phase 2 design principles. Each is evaluated against the Phase 4 architecture specification.

Test Result Evidence
Orientation test PASS Today screen Week Header: "Week 8 of 15 -- Level 2 -- Reading with Fluency" is the dominant visual element, Large Title size, first thing rendered. No scrolling needed. This directly answers "what week am I on?"
First task test PARTIAL PASS Onboarding (Flow 1) + Flow 3 together cover the first submission path. Onboarding handles font, coach intro, and semester overview before first use. The recording flow itself is fully specified. However, the flow table for Flow 3 claims "4 taps from app launch to recording start" but the actual count is 3 pre-recording taps (Open > "Record Submission" on Today > Submission segment > "Record Submission" button) -- the discrepancy is examined in the Tap Count Audit below. The path is clear and functional.
Return test PASS The status triptych (Lesson / Submission / Feedback cards) plus the primary action card are both above the fold on Today, no scrolling required. A returning student who has submitted sees "Submitted [date]" on the Submission card immediately. Phase 2 test N4 is satisfied.
Recovery test PASS Profile tab is 1 tap from any screen (tab bar). Help Center is 2 taps (Profile tab > Help Center row). Coach messaging is 2 taps (Profile tab > Message Coach button). The architecture specifies this explicitly in Section 4.5 ("Support: 2 taps, Profile > Help Center") and in the L4 lifecycle test evidence.
Tab bar test PASS Four tabs: Today (destination -- the weekly dashboard), Learn (destination -- learning content library), Schedule (destination -- calendar and sessions), Profile (destination -- identity and settings). Each passes the Tab Worthiness Test: each is a place, each is visited at least weekly during an active semester, each represents a coherent information space. No action is on the tab bar.
3 Questions test PASS "Where am I?" -- Week header on Today is the dominant element: "Week 8 of 15 -- Level 2." "What can I do?" -- Primary action card changes based on state; status triptych shows all three statuses. "Where can I go?" -- 4-tab bar at the bottom, labeled with single nouns (Today, Learn, Schedule, Profile). All three answers are visible on the Today screen without scrolling.
Lifecycle test PASS WITH NOTE Pre-semester: handled (countdown header, level/coach/start-date cards, orientation video, housewarming sessions). Active semester: the core design. End-of-semester: EOC state is specified on both Today and Learn. Year 2 transition: specified in Section 4.9. Note: the architecture does not specify what a student sees if they open the app BEFORE their assessment has been reviewed (post-submission, pre-placement). Section 4.8 mentions a waiting state ("We're reviewing your assessment") but does not specify which tab they land on or what the tab content shows. This gap is documented in the Gaps section below.
Behind test PASS Amber banner between Week Header and Primary Action Card: "You have [X] submissions to catch up on. You can submit up to 2 this week." "Catch Up" button navigates in 1 tap to the oldest incomplete week. Language is neutral (catch-up framing, not shame framing). Calendar week always shown honestly ("Week 8 of 15" even when behind). L2 lifecycle test criteria are all met.

[Core] Task Coverage

The following table traces every [Core]-tagged task from the User Capability Map (Sections 2-6) through the Phase 4 architecture. The tap count is measured from the tab bar -- meaning the student is already in the app, on a tab. "0 taps" means visible on the current screen. "1 tap" means one interaction from the tab bar or current screen. All counts assume the student is starting from the app launch state (Today screen visible).

Task Screen Taps to Reach Status
2A.2 -- Complete initial assessment Assessment screen (pre-onboarding flow) 0 -- shown on first launch before level placement COVERED. Specified in Onboarding section 4.8: waiting state exists if assessment submitted but placement not yet received.
2A.3 -- Receive level placement Onboarding Step 2 (first launch after placement) + Today pre-semester state 0 -- presented during onboarding; then visible on Today and Profile COVERED. Placement shown in onboarding and persisted on Today (pre-semester cards) and Profile card.
2B.2 -- Know when semester starts Today screen (pre-semester state) 0 -- dominant header on Today when pre-semester COVERED. "Semester Starts in [X] Days" replaces the Week Header in pre-semester state. Date is explicit. Also shown in Onboarding Step 5.
2B.3 -- Understand my weekly schedule Schedule tab 1 -- tap Schedule tab COVERED. Schedule is a dedicated tab. Section 4.5 confirms "Was hidden 5 clicks deep. It is used weekly." Now 1 tap. Timezone is always displayed.
3A.1 -- Know which week I'm on Today screen 0 -- Week Header is the dominant visual element COVERED. "Week 8 of 15 -- Level 2" is the first thing the student sees on any launch.
3A.2 -- Access this week's lesson Today > Learn tab (current week, Lesson segment) 1 -- tap "Start Lesson" on Today's primary action card (goes to Learn) COVERED. Primary action card on Today surfaces this as the dominant CTA when lesson is not complete. Alternative: 1 tap to Learn tab, then the current week is expanded by default.
3A.3 -- Watch instruction videos Video Player (Level 2 within Learn) 2 -- Learn tab > tap video row COVERED. Video Player spec addresses P0 (adaptive bitrate, native controls, single-tap full-screen, full-width display). Section 4.3 Video Player screen is fully specified.
3B.1 -- Know what to submit Learn tab, Week card, Submission segment 2 -- Learn tab > current week > Submission segment (or 1 tap via Today's primary action card "Record Submission") COVERED. Submission segment shows the Quranic text, passage reference, and attempts counter. Also surfaced directly on Today when lesson is done.
3B.2 -- View Quranic text to recite Learn tab, Submission segment AND Recording Screen 2 from Learn tab; also visible in Submission segment before navigating to Recording Screen COVERED. Quranic text shown in Submission segment and again on Recording Screen. Mushaf font (Amiri Quran) is the default, set during onboarding. P0 fix confirmed.
3B.3 -- Record my recitation Recording Screen (Level 2 within Learn) 3 -- Learn tab > current week > Submission segment > "Record Submission" button COVERED. Recording Screen spec includes: waveform visualization, elapsed time counter, clear Record/Stop/Play/Submit states, attempt counter display.
3B.4 -- Review recording before submitting Recording Screen (review state) 3 then automatic -- same as above; review state is reached after stopping COVERED. After stopping, playback controls appear automatically. Play and Submit are visually separated (left/right, different colors and sizes).
3B.5 -- Submit to Quran Coach Recording Screen > Confirmation Dialog 4 to reach confirmation -- Learn > Submission segment > Record Submission > Record > Stop > Submit (then confirm) COVERED. Confirmation dialog is mandatory ("prevents accidental submissions -- P0 fix"). Turnaround time is consistent: "48 hours" throughout.
3C.1 -- Know when feedback is ready Today screen (feedback state) and Notification Sheet 0 -- Today primary action card changes to "Feedback from [Coach Name]" state; push notification deep-links directly COVERED. Push notification content is specified (V2 test). Deep link goes to Learn > Week > Feedback. Feedback status card on Today shows badge.
3C.2 -- Listen to TA audio feedback Learn tab, Week card, Feedback segment 2 -- Learn tab > relevant week > Feedback segment (or 1 tap from Today's "Listen to Feedback" primary action) COVERED. Label is "Listen to Feedback" not just "Feedback" -- addresses the mislabeling P0. Audio player with play/pause, scrubber, and duration is specified.
3D.1 -- See my weekly schedule Schedule tab 1 -- tap Schedule tab COVERED. Dedicated tab with calendar day strip, week navigator, session cards. Timezone always displayed.
3D.3 -- Know timezone/timing Schedule tab (all session displays) 1 -- visible on Schedule tab header and all session cards COVERED. Phase 2 test C4 requires every time display to include timezone. Architecture specifies "7:00 PM EST" format on session cards, Schedule tab header shows current timezone, and timezone selector is accessible.
3D.4 -- Join a live session Schedule tab > Session Detail (modal) 2 -- Today > session card (navigates to Schedule), then "Join Zoom" button; or Schedule tab > session card COVERED. "Join Zoom" button is active when session is within 15 minutes of start or live. Status states specified (Upcoming / Live Now / Ended).
4A.1 -- Complete end-of-course assessment Learn tab, EOC card (top of week list) 2 -- Today "Begin Assessment" > Learn tab EOC card; or Learn tab directly COVERED. EOC card has distinct styling, eligibility indicator, passage display, and "Record EOC Submission" button. Section 4.9 specifies the full flow.
4A.2 -- View final results Today (results state) and Learn (EOC card) 1 from notification; 2 from Today > "View Results" > Learn EOC card COVERED. Results communication specified: pass state (celebration), fail state (retake path), coach audio feedback linked.
4B.1 -- Graduate to next level Today (transition card) and Profile (updated level) 0 -- surfaced automatically on Today after results COVERED. Transition card on Today shows next level name, semester start date, and coach continuity. Profile updates to show completed level.
5A.1 -- View available appointment slots (Year 2) Schedule tab (Year 2 mode, Appointments section) 1 -- Schedule tab (which gains an Appointments section in Year 2 mode) PARTIALLY COVERED. Section 4.9 states "Schedule tab: Includes appointment booking alongside live sessions (new 'Appointments' section)" but the Appointments section is not specified in any screen spec. No detail on how slots are displayed, what the appointment type taxonomy looks like, or how timezone handling works for 1:1 appointments.
5A.2 -- Book an appointment (Year 2) Schedule tab, Appointments section 2 estimated UNDERSPECIFIED. Referenced in Section 4.9 but no screen spec provided. Flagged as a gap.
6A.1 -- View/edit profile information Profile tab > Personal Details 2 -- Profile tab > Personal Details row COVERED. Profile card shows photo (tappable to change, gallery AND camera -- fixing the camera-only bug), name, level, semester. Personal Details sub-screen covers name, email, phone. Billing via Subscription & Billing. Learning History sub-screen covers past levels.
6B.1 -- Set Quranic text font Onboarding Step 3 (mandatory) and Profile > Settings > Quranic Font, and inline on Recording Screen 0 (set during onboarding), 2 (Profile > Quranic Font), or 1 (inline font picker on Recording Screen) COVERED. This is the P0 fix. Font is set to mushaf by default in onboarding. Cannot be skipped during onboarding. Accessible later via Profile and inline on Recording Screen.
6B.2 -- Manage notifications Profile tab > Notifications 2 -- Profile tab > Notifications row COVERED. Notification types specified: Feedback, Sessions, Announcements, Deadlines. Push toggle and email preferences included.
6C.1 -- Access support/help Profile tab > Help Center 2 -- Profile tab > Help Center row COVERED. Help Center within Support section of Profile. FAQ by topic, Contact Support with category selection. Phase 2 L4 test verified: within 2 taps from any screen.
6E.1 -- Understand app structure Tab bar (persistent) and Onboarding 0 -- tab bar always visible; onboarding explains the weekly rhythm COVERED. Standard iOS bottom tab bar with 4 clearly labeled destination tabs. Onboarding Step 5 explains the weekly rhythm. No hamburger menu.
6E.2 -- Receive and act on notifications Notification Sheet (modal from Today) and push notifications 1 -- tap bell icon on Today; or 0 -- push notification arrives on device COVERED. Notification Sheet specifies: type icon, title, subtitle, relative timestamp, unread indicator, and deep-link behavior for each notification type. V1 and V2 tests addressed.

[Core] Task Coverage Summary

Total [Core] tasks in User Capability Map: 27 Fully covered: 24 Partially covered or underspecified: 3 (Year 2 appointment tasks 5A.1 and 5A.2, and the pre-assessment waiting state for 2A.2) Not covered: 0

Note: Tasks 5A.1, 5A.2, and 5A.3 (Year 2 appointment management) are referenced in the architecture but have no corresponding screen specifications. The architecture explicitly defers this to a Year 2 design phase, which is a reasonable decision but should be documented as out-of-scope rather than counted as covered.


P0 Issue Resolution

The six P0 issues from the original audit, plus "feedback hard to find" from the PM Discussion (treated as P0 in the Capability Map):

P0 Issue How Architecture Addresses It Verdict
Video playback failure Video Player screen spec: "Adaptive bitrate streaming (not locked to 1080p -- this fixes the P0 video playback failure)." Native iOS player. Single-tap full-screen with large touch target. Full-width display. These are requirements passed to engineering, not design constraints. ADDRESSED -- requirement is explicit. Requires engineering validation.
Missing submission history Submission history is in each week card's Submission segment (Learn tab). "All Weeks" view shows all 15 weeks with submission status badges. No separate archive with month/year filters. Any past submission is 2 taps away: Learn tab > expand that week > Submission segment. ADDRESSED -- fundamentally better than the current state. History is co-located with the lesson and feedback it belongs to.
Broken notifications Notification Sheet specifies: type icon, title with context ("Feedback Ready -- Week 7"), subtitle with coach name, relative timestamp, unread indicator. Deep links are defined for each notification type. Phase 2 tests V1 (deep links) and V2 (content completeness) both addressed. Sections 4.6 and 4.8 are explicit. ADDRESSED -- content and deep-link requirements are fully specified. Fixing the underlying delivery system is an engineering concern separate from design architecture.
Non-standard Quranic font Onboarding Step 3 is mandatory -- cannot be skipped -- and pre-selects Amiri Quran (mushaf) with a live preview. Font is set before the student ever encounters Quranic text. Also accessible via Profile > Settings > Quranic Font and via inline font picker on the Recording Screen. Phase 2 test C5 is met. ADDRESSED -- this is the strongest P0 fix in the architecture. The mandatory onboarding step eliminates the root cause (users never finding the setting).
Inadequate profile Profile tab is a full screen specification: profile card (photo via gallery OR camera -- fixing the camera-only bug), name, level, semester status. Sub-screens for: Personal Details, Subscription & Billing, Learning History, Notifications, Font Settings, Display, Help Center, Resources. Coach section is prominently featured with photo, bio, and Message button. ADDRESSED -- the scope of the Profile tab in this architecture is dramatically larger than the current implementation. Every gap from the audit is covered.
No timezone on live sessions Schedule tab always shows timezone in the header and on every session card (format: "7:00 PM EST"). Timezone selector in the Schedule tab header. Today screen session previews also include timezone. Phase 2 test C4 is explicit: "Every time display carries explicit timezone information." ADDRESSED -- timezone is a first-class display requirement throughout the architecture.
Feedback hard to find Feedback is inside each week card's Feedback segment in Learn. It is also surfaced on Today the moment it arrives ("Feedback from Coach [Name]" primary action card with badge). Push notification deep-links directly to the relevant week's Feedback segment. Label is "Listen to Feedback" not the ambiguous "Feedback." Section 4.5 explains feedback archive access: "No complex month/year filters. Feedback is always adjacent to its submission." ADDRESSED -- feedback discoverability is fundamentally improved. The labeling fix ("Listen to Feedback") addresses the misinterpretation problem directly.

P0 Resolution verdict: All 7 P0 issues are addressed at the architecture/design level. Two items (video playback and notification delivery) have engineering dependencies that the architecture cannot guarantee but correctly specifies.


Tap Count Audit

The following audits the claimed tap counts against the actual flow steps in the Phase 4 document. A "tap" is defined as one deliberate user interaction (press, tap). Opening the app does not count as a tap. Navigating to a tab counts as 1 tap.

Claimed: All [Core] tasks reachable in 2 taps (Phase 2 test S3)

The architecture's self-assessment in Section 4 claims all [Core] tasks satisfy the 2-tap rule. Let us verify the ones most likely to be tight:

Action Architecture's Claim Actual Count (traced from flow tables and screen specs) Pass?
Know what week I'm on 0 taps (visible on Today) 0 -- Week Header is the first element on Today. PASS
Know when semester starts 0 taps (Today, pre-semester) 0 -- Week Header replaced with countdown in pre-semester state. PASS
Access this week's lesson 1 tap ("Start Lesson" on Today CTA) 1 -- tap "Start Lesson" on primary action card navigates to Learn, current week, Lesson segment. OR: tap Learn tab (1 tap; current week is expanded by default). PASS
Watch instruction videos 2 taps (Learn > video row) 2 -- tap Learn tab (1), tap video row in Lesson segment (2). Note: if coming from Today's "Start Lesson" CTA, Learn tab loads with week already expanded, so tapping a video is tap 2 overall. PASS
View Quranic text 2 taps (Learn > Submission segment) 2 -- tap Learn tab (1), tap Submission segment within the current expanded week card (2). Quranic text is visible in Submission segment directly; Recording Screen shows it again. PASS
Record my recitation 3 taps to reach Recording Screen Trace: tap Learn tab (1), Submission segment is visible in expanded current week -- tap "Record Submission" button in Submission segment (2), this opens Recording Screen. The Record button itself is tap 3. So: 2 taps to reach the Recording Screen; 3 taps to actually begin recording. The S3 test says "reachable from the tab bar in 2 taps or fewer" meaning "the student arrives at the screen where the task begins." The Recording Screen is the screen where recording begins, reached in 2 taps. PASS (2 taps to reach Recording Screen)
Submit to Quran Coach Architecture claims "2 taps to reach recording screen" Recording Screen is 2 taps from Learn tab (Learn tab > "Record Submission" in Submission segment). After that: tap Record (3), tap Stop (4), tap Submit (5), tap confirm (6). The S3 test asks for "the screen where the task begins" -- the Recording Screen is reached in 2. Submission itself is a 6-step flow from the tab bar but that is inherent to the task. PASS (2 taps to reach screen; 6 total to complete)
Know when feedback is ready 0 taps (Today screen shows badge and primary action card changes) 0 -- primary action card on Today transitions automatically to "Feedback from [Coach Name]" state when feedback arrives. Feedback status card also updates. PASS
Listen to TA feedback 1 tap from Today ("Listen to Feedback" on primary action card) 1 -- tap "Listen to Feedback" navigates to Learn > relevant week > Feedback segment. Audio player is immediately visible. PASS
See weekly schedule 1 tap (Schedule tab) 1 -- tap Schedule tab. PASS
Know timezone/timing 1 tap (Schedule tab shows timezone in header) 1 -- tap Schedule tab. Timezone is displayed in the navigation bar area. It is also visible on Today's session cards (0 taps if sessions are visible today). PASS
Join a live session 2 taps (Today > session card > Join Zoom) Flow 5 table: Open app (Today), tap session card (1 -- this navigates to Schedule with session highlighted), then tap "Join Zoom" (2). BUT: this is 2 taps to join, which satisfies S3. Note: "Join Zoom" is only active within 15 minutes of start. Before that, the Join button is not available -- see FINDING 1 below. PASS (with caveat on timing)
Understand app structure 0 taps (tab bar is always visible) 0 -- bottom tab bar with 4 labeled destinations is permanently visible. Onboarding explains the rhythm. PASS
Receive and act on notifications 1 tap (bell icon on Today) 1 -- tap notification bell opens Notification Sheet modal with deep-link tap targets. PASS
Find support 2 taps (Profile tab > Help Center) 2 -- tap Profile tab (1), tap Help Center row (2). PASS
Find schedule 1 tap (Schedule tab) 1 -- tab bar. PASS
Submit recording (screen to screen) Architecture says 4 taps from launch Flow 3 table says: Open app (Today with "Record Submission" CTA), tap "Record Submission" (1 -- opens Learn, Submission segment), tap "Record Submission" button in Submission segment (2 -- opens Recording Screen), tap Record (3), tap Stop (4), tap Submit (5), tap Confirm (6). The architecture's own summary says "Taps from app launch to recording start: 4" -- let's trace that: Open app (Today) > tap "Record Submission" on primary action card (1 -- goes to Learn, Week 8, Submission segment) > tap "Record Submission" button (2 -- goes to Recording Screen) > tap Record button (3). That is 3 taps to start recording, not 4. The architecture claims 4 but the actual flow gives 3. DISCREPANCY -- see FINDING 2
Check feedback Architecture claims "2 taps (Learn > Feedback segment)" From Today: tap "Listen to Feedback" on primary action card (1 -- goes to Learn, relevant week, Feedback segment already open). That is 1 tap, not 2. From Learn tab directly: tap Learn tab (1), expand relevant week or it may already be expanded (if current week has feedback, it shows the badge), tap Feedback segment (2). So it is 1 tap from Today or 2 taps from Learn tab. The claim of "≤3 taps" is easily met. PASS (1 tap from Today, 2 from Learn tab)

Findings and Recommendations

The following findings were identified during validation. They are numbered in order of severity.


FINDING 1 -- Join Session Tap Count is Misleading (Medium Severity)

What the architecture claims: "Total taps on critical path: 2 (Open > session card > Join Zoom)" for Flow 5.

What actually happens: The "Join Zoom" button is only active "when session is within 15 minutes of start or currently live." If a student taps a session card outside that window, they reach the Session Detail modal -- but the Join button is inactive. They cannot join from there. To join, they must wait until the button activates. This is not a design flaw (the session cannot be joined before it starts), but the tap-count claim conflates two different moments in time. The claim is technically true only at the exact moment the student is joining a live or imminent session. For any other use of the 2-tap path (checking session details, adding to calendar, RSVPing), the count is accurate but the "Join" action is not available.

Impact: The 2-tap-to-join claim is correct for the live-session scenario. It is potentially confusing in documentation when the student follows the same 2-tap path and finds the Join button grayed out.

Recommendation: In the Session Detail modal spec, explicitly state what the student sees when "Join Zoom" is inactive: a countdown ("Join available in [X] hours [Y] minutes") so the modal is useful and not confusing at any time of day. The Architecture section 4.3 Schedule screen addresses "Not yet available" as a P1 fix but does not specify what inactive Join looks like in the modal. This needs to be specified.


FINDING 2 -- Tap Count Discrepancy in Flow 3 Summary (Low Severity)

What the architecture claims: "Taps from app launch to recording start: 4" (Flow 3 summary line).

What the actual flow table shows:

The recording starts at tap 3, not tap 4. The flow table itself has 9 steps but only 7 are actual taps -- steps 1 and 6 are passive events (opening app, listening to recording). The "4" figure appears to be an error in the summary line. The actual count (3 taps to recording start) is better than claimed, not worse.

Impact: The architecture passes its own targets -- this is a documentation inconsistency, not a design failure. However, it signals that the tap counts in the summary lines were not cross-checked against the actual flow tables. Other summary claims may have similar drift.

Recommendation: Before finalizing the document for handoff to engineering, reconcile every tap-count summary line against its corresponding flow table. Specifically check Flow 2's "5 taps on critical path" (tracing: Today > Start Lesson (1) > Learn tab with Lesson segment > video tap (2) > back (3) > Video 2 tap (4) -- that's 4 taps to complete two videos, not 5 including "Mark Complete" which would be 5 -- this appears correct), and Flow 5's "2 taps" claim which is correct only at join time.


FINDING 3 -- Pre-Assessment Waiting State is Underspecified (Medium Severity)

The gap: Section 4.8 (Onboarding) notes: "If the student opens the app before placement (assessment submitted but not yet reviewed), they see a waiting state: 'We're reviewing your assessment. You'll be placed in a level within 48 hours.'" Section 4.3 Today screen mentions it: "Empty / First Use (post-assessment) -- Waiting for level placement."

What is missing: No specification of what the other tabs show in this state. If a student taps Learn, Schedule, or Profile before receiving placement, what do they see? The current architecture specifies Today's waiting state but leaves the other three tabs undefined. This matters because:

  1. Students will explore the app while waiting 48 hours for placement
  2. An empty or broken tab during this waiting period creates the exact disorientation the architecture is designed to prevent
  3. Phase 2 Principle 5 ("No dead ends") requires that every state provides a clear next action

Impact: Medium. This is a transition state that every student passes through. If the other tabs show errors or empty screens, it undermines the onboarding experience at the most critical moment (first impressions).

Recommendation: Add a "Pre-Placement" state to the Learn, Schedule, and Profile tab specifications. Minimum viable:


FINDING 4 -- Year 2 Appointment Flow Has No Screen Specification (Low-to-Medium Severity, Scope-Dependent)

The gap: The architecture correctly identifies Year 2 as a different learning model and describes how the tab bar adapts. Section 4.9 states: "Schedule tab: Includes appointment booking alongside live sessions (new 'Appointments' section)." But no screen specification exists for:

Why this matters: The architecture document covers Year 1 Year-2 transition at the graduation level (Section 4.9) and at the tab-adaptation level ("Today screen: Shows upcoming appointments instead of weekly lesson/submission/feedback") but the actual interaction model for Year 2 is unspecified. Three [Core] tasks for Year 2 students (5A.1, 5A.2, 5A.3) have no home in the architecture's screen specs.

Scope judgment: If Year 2 is explicitly out of scope for this design phase, this should be stated clearly in the document as a known gap rather than left implied. The Capability Map Coverage table in Section 4 says "75%" for Year 2 but the reality is closer to 25% (only the transition experience is designed; the actual Year 2 interaction model is not).

Recommendation: Either (a) add a note to Section 4.9 explicitly stating "Year 2 interaction design is deferred to a separate design phase; this architecture covers only the Year 1-to-Year 2 transition experience" and remove Year 2 tasks from the coverage count, or (b) add a basic Year 2 screen specification for the Schedule tab's Appointments section and the Learn tab's elective content view. Option (a) is faster and honest.


FINDING 5 -- C1 (7-Item Rule) Needs Verification for Live Session Edge Cases (Low Severity)

The concern: Phase 2 test C1 states "No default list view shows more than 7 items without a progressive disclosure mechanism." The architecture claims PASS.

The edge case: The Schedule tab's session list is filtered by day by default (the calendar day strip highlights the current day). This is an effective progressive disclosure mechanism -- it reduces a potential 20-session week to the 3-5 sessions on a given day. However, the architecture does not specify a maximum number of sessions per day before a further disclosure mechanism is triggered. On a day with, say, 8 sessions (multiple QRC time slots across different gender/level groupings), the list would exceed 7 items.

Evidence from Phase 1: "Up to 20 sessions per week" is documented. While 8+ sessions in a single day is unlikely, it is not impossible during peak weeks.

Impact: Low. The day-level filtering already provides strong scannability. The failure mode (8+ sessions on one day) is rare and still preferable to the current "wall of unstructured text" described in the audit.

Recommendation: Add a soft cap to the Schedule tab spec: "If more than 7 sessions are displayed for a single day, group them by session type (Level Classes, QRCs, Office Hours) with collapsed sections, each expandable. Show count in collapsed header: 'QRCs (5)' -- tap to expand." This would satisfy C1 formally and improve scannability on dense days.


Summary Assessment

What the Architecture Gets Right

The architecture's core design decisions are well-reasoned and directly address the problems identified in the audit. The weekly rhythm organizing principle is correct for this user population. The four-tab structure is correct -- it passes the Tab Worthiness Test at every position. The Today screen design is the strongest part of the document: the week header as the dominant visual element, the context-dependent primary action card, and the status triptych together solve the disorientation problem completely.

The P0 issues are resolved in the right places. Font is addressed in onboarding (not just settings). Feedback is co-located with submissions (not in a separate archive). Notifications are specified with content and deep links. The schedule is a tab (not 5 clicks deep). The profile is a full information hub (not a minimal screen).

The progressive disclosure approach throughout (day-filtered sessions, "This Week" default on Learn, collapsed week cards, "See Full Schedule" from Today) is correct and consistent with the WWDC25 Field Guide principles.

The lifecycle state machine is thorough: pre-semester, active (default, submission pending, feedback ready, all done, behind), EOC phase, graduation, Year 2 transition. Each state is specified for the Today and Learn screens. This is production-ready thinking.

What Needs Resolution Before Implementation

Finding Severity Action Required
F1: Join button inactive state not specified Medium Add countdown/status copy to Session Detail modal for non-live sessions
F2: Tap count discrepancy in Flow 3 Low Reconcile all flow summary tap counts against flow tables
F3: Pre-placement waiting state incomplete Medium Specify Learn, Schedule, and Profile tab content in pre-placement state
F4: Year 2 appointment flow unspecified Low-Medium Explicitly scope out Year 2 design or add basic spec
F5: C1 edge case on dense schedule days Low Add session-type grouping with collapse on days with 7+ sessions

Overall Verdict

CONDITIONAL PASS. The architecture satisfies all mandatory Phase 2 quality bar criteria for Year 1 design. The four open findings are gaps rather than design failures -- they do not invalidate the core structure or require revisiting the fundamental decisions. Findings F1 and F3 should be resolved before the document is handed to engineering, as they affect states that every student will encounter. Findings F2, F4, and F5 can be addressed in a targeted revision or carried forward into the detailed design phase with explicit documentation.

The architecture is ready to proceed to detailed design (wireframes/mockups) for Year 1, with the understanding that the five findings above are resolved either in a document revision or in the wireframe phase.


End of Phase 5 Validation Report