The review, answered — walkthrough v12

Lejla (product owner) + Sr. Yasmine (TAs & curriculum) reviewed the flow map in two recorded sessions, Aug 5–6 2026. 119 distinct points extracted and reconciled across both transcripts; 71 built into v12 on Aug 9. Every item carries a register id (U-…) tracing to the verbatim quote.

Built · v12 Typecheck clean All 4 entrances verified in browser Not committed Not deployed — awaiting approval

Verdict in three lines

  • The arrival & explainer work survived — unqualified praise for S03, S07, S12's coach audio, S15 availability, S25's revoke window, S26's anchored feedback.
  • Two structural spines were rejected: the Year-2 onboarding chain ("it's giving me whiplash") and the Today/Learn architecture that buried submissions three taps deep.
  • The mood is engagement, not doubt — Lejla: "we are living the days we prayed for… it will be fire." Yasmine's one condition: no copy ships without her screen-by-screen pass.

1 · Today & Learn — "the most important part for us to get right"

"If I want to record a submission I have to log in, click learn, click the lesson, and then go to record — the feature is buried, three clicks away."

  • S17 Today — swipeable strip on top (this week's lesson · pending submission · fresh feedback; chess.com reference), peeking card edge + dots so the swipe signals itself; learning above live sessions; announcements filtered to the latest, only while fresh (U-064–067).
  • S42 Learn — the invented topic groups are gone ("we just have lessons 1 to 15"); 5×3 grid of week squares, done/overdue wordless; the hero is the next lesson you owe, not the calendar week (U-080–085).
  • New tab: Assignments (Year 1) — submissions + feedback in one destination, one tap from anywhere; S50 rebuilt as its hub (U-092). New tab: Appointments (Year 2) — S33 was unreachable before (U-106).
  • S21 player — the week's videos as a set with thumbnails and watched state; week squares open the player directly, S20's interstitial is cut (U-088/089); "Expand your learning" carries the notes (U-090).
  • S55 full-semester syllabus — new, behind a "View full semester syllabus" button (U-082).
Before
After
S17 Today — strip: lesson · submission · feedback
Before
After
S42 Learn — groups out, 15 week squares in
Before
After
S21 Player — video set, watched state
Before
After
S50 — archive → the Assignments hub (new tab root)

2 · Year 2 — rebuilt as the Year-1 mirror

"This onboarding for year two, I'm not feeling it because it's giving me whiplash… let's just replicate what we said about year one."

  • New order: welcome → course & curriculum (S30) → what changes: rhythm + one-to-ones (S31) → Appointments hub (S57, new) → booking → availability last (S15 reused — their rule: never ask availability before the student knows what it's for) (U-057–062).
  • S54 Welcome to Mastery — new arrival for direct-entry students; Year-2 electives will be sold outside the QuranFlow ecosystem. The graduates' congratulations (S29) is the only difference between the two paths (U-007/062).
  • S32 Today mirrors S17 — appointments in place of submissions, soonest first, teacher's notes as the third card (U-074/109).
  • Flow map rewired — the two wires that caused the whiplash (Y2 → Year-1 weekly loop) are gone; the coach node is visibly detached (U-061).
  • Program names per canon: Year 1 = Recitation Essentials · Year 2 = Mastery (core: Advanced Tajweed Rules · elective: Intro to Memorization) (U-058).
Before — flow map
Old chain: curriculum → availability → structure, wired into Year-1 screens
After — flow map
The Year-1 mirror, availability last, coach node detached
New · S54
New · S57
S54 direct-entry welcome · S57 Appointments hub
Before
After
S32 Today, Year 2 — the S17 mirror

3 · First assessment becomes placement-only

Lejla proposed, Yasmine agreed: the TA listens and places the level — no feedback response. The personal touch moves to a recorded welcome in the teacher's own voice.

  • S06 — CTA is now "Send for evaluation", and the Al-Fatiha card became four completion marks covering recorded and skipped stages (U-021/023).
  • S05 — four stage cards, one recording, visible progress; per-stage Skip so nobody has to say "I don't know" out loud; "Skip for now" exits to a later assessment (U-017/022/031).
  • S12 — the per-level teacher welcome audio (the session's strongest praise) plus a short bio: origin, credentials, one personal fact. Written neutrally so it serves new students and graduates (U-025/043/046).
  • S07 — full Level-0 live schedule, real resources, and a skipped-assessment variant (S59) routing back to S05 (U-029/032/033).
  • S03 already promised only "a teacher listens and places your level" — no change needed (U-026).
Before
After
S06 — send for evaluation, four marks
Before
After
S12 — per-level audio + teacher bio
Before
After
S05 — stages, skip, one recording
Before
After
S07 — the wait, with a real schedule
Before
After
S08 — absorbs the welcome, "Begin"

4 · Screens cut, screens added

  • S10 + S11 cut ("it's redundant") — S08 absorbs the welcome; new S53 level curriculum overview replaces both (U-042).
  • S20 cut ("S20 makes no sense") — a week square opens the player directly (U-088).
  • S27 + S28 cut — no corrected retakes; on S26 the student listens, and a feedback anchor can now span two joined words for tajweed rules that live between them (U-104/105).
  • S52 profile completion — hard gate after sign-in on name, age, gender; silently skipped when complete (U-039).
  • S56 pre-recording intro — names exactly what is being recorded this week. The shipped app has this; the redesign had lost it — a regression fix, not an invention (U-094).
  • Retired files are kept and headed RETIRED Aug 2026; their codes are never reused. Feedback citing them stays traceable.

Retired

S10
S11
S20
S27
S28

New in v12

S52 profile
S53 curriculum
S54 Y2 welcome
S55 syllabus
S56 pre-record
S57 appointments
Before
After
S26 Feedback — listen-only, anchors can join two words
On the flow map: retired frames stay for trace — dimmed, badged, connectors intact — with S53 in their spot

5 · Booking — wanted, policy open

"The previous version of this map showed the option to book the same appointment every week… I love that." — recurring booking is back in; the policy behind it is explicitly undecided.

  • S33 — filter by teacher, date, or time (two constituencies: teacher-loyal and time-locked — today students "click 500 things"); a coach picker that scales to 6–10 coaches; a recurring-weekly option with deliberately neutral copy (U-108/110/111).
  • S34/S35 — "even a minute before frees the slot" was simply wrong; copy now states the real 24-hour rule, and the booking button names the actual date (U-107/112/113).
  • C07 — the coach marks attendance; Zoom is third-party, presence can't be inferred from a join tap (U-115 — the only coach-lane decision in the whole review).
  • Hoarding limits, two-no-show release, 24h vs 48h cancellation — left undecided by the reviewers, parked (U-111/114).
Before
After
S33 Booking — filters, scalable picker, recurring
Before
After
S34 Confirm — honest cancellation copy

6 · Copy — direction moved, wording held for Yasmine

"Before, stuff would just happen without me knowing… the developers would make the decision on what goes on every page. And then that needs so many fixes."

  • S02 — "Signing up was the hardest step" is gone (Yasmine: "this is anxiety inducing"); the welcome now carries shoulder-to-shoulder energy, not reassurance (U-010).
  • S13 — the middle weekly step is the assignment, no longer "The ayah"; reframed as what completes the semester; "within two days" unified to the "48 hours" the other four screens already promised (U-048/049).
  • S15 — now asks about anything live (circles and one-to-ones) — a decision Lejla believed had already shipped; finer time blocks; timezone pre-filled but changeable (U-053–055).
  • Sweeps verified by grep: no "attempts" framing (the 2-per-week cap stays, the word goes), no "Hear back", no "you're behind" language anywhere, no Arabic diacritics in UI strings.
  • Every wording in v12 is directional. The walkthrough's opening note now says so; Yasmine's screen-by-screen pass is the gate to final copy (U-013).
Before
After
S02 — the hype screen, without the anxiety
Before
After
S13 — assignment, not "the ayah"
Before
After
S15 — availability for anything live

7 · The prototype itself — what blocked Yasmine's review

"I couldn't go back to evaluate anything else without closing the entire thing and starting all from scratch again."

  • The phone's back button now works — it steps the in-app stack instead of doing nothing. Getting there surfaced two nastier bugs: back could silently navigate away from the deliverable entirely, and rapid stepping could jam the history bookkeeping until the page bounced to a stale screen. All three fixed and stress-verified (150 rapid tour steps, zero bounces — DECISION-LOG F5).
  • 44×44pt touch targets on every back chevron (they were 36–38px — under Apple's minimum, part of why taps felt dead).
  • A way out — "All entrances" in the tour rail's picker, and an "All versions" row on the You screens (shown only when served from the site, hidden in the double-click file).
  • The Week-8 jump explained — the new-student entrance now free-explores into a pre-semester Today, and the opening placard says the later screens are shown mid-semester (U-087).
  • One link per scenario had already shipped the evening after session 1 — Yasmine reviewed those links in session 2 and called them "an easier presentation form" (U-004, no action).
  • The flow map's snake reading order briefly lost a reviewer at S06→S07→S08 — it now carries an explicit directional cue (U-027).
The arriving band's second row now says which way it reads

Codes ledger

  • Codes are now pinned properties, not positions — previously, cutting one chapter would have silently renumbered every screen after it, destroying the citation trail Lejla asked to preserve. Defused before anything moved.
  • S14 is still S14 everywhere. Retired codes are never reused; new screens only append.
S10S11S20 S27S28 S52 profileS53 curriculum S54 Y2 welcomeS55 syllabus S56 pre-recordS57 appointments S58 placement·returningS59 waiting·skipped

Decisions I made (all reversible, all logged)

  • Assignments as a tab — Lejla accepted either a tab or a Learn section; the tab is the stronger answer to "three clicks away". Say the word and it folds into Learn instead.
  • Y2 rhythm + live component folded into S31 — the mirror they asked for is the order of ideas, not screen count; S30 carries the course, S31 carries rhythm + one-to-ones. The flow map was reconciled to match.
  • Recurring booking promises nothing — UI built, policy copy neutral, because the reviewers explicitly left the policy open.
  • Behind-students stays parked — only their two adopted answers are in (hero shows the owed lesson; overdue is wordless). The rest waits for the dedicated session they asked for.
  • Coach lane untouched beyond attendance marking — it was never reviewed; changing it would outrun the evidence.
  • Deploy held — this page is the before/after gate. On approval: commit, push both remotes, redeploy the hub.

Open questions — theirs and ours

Product / policy

  • Passing criteria — students are never told; the "12 submissions" figure was an example, not policy (U-072).
  • Recurring-booking policy: hoarding, no-show release, 24h vs 48h (U-111/114).
  • Extra submissions: landed on a global switch to three, but the per-student case (surgery) stayed open (U-100).
  • Are brand-new Year-2 students assessed? "An academic decision needing its own meeting" (U-008).
  • How long does Level 0 actually last — a day, or up to three weeks? (U-030/041).

Design / process

  • The behind-student experience — the majority state; deferred to a Lejla + Yasmine + Kamran session (U-068).
  • Where does student↔TA communication live? Yasmine raised it twice, deferred twice; S45 was never reviewed (U-101).
  • "Need help signing in?" — reset + support message is Lejla's lean; check which failures actually occur (U-006).
  • When is Yasmine's copy pass? Every wording in v12 is blocked on it (U-013).
  • Yasmine expected an AI breakdown of coach feedback on S26 — future reviewers may too (U-102).
  • Year-2 still sees S50 (submissions archive) via the shared Learn act — a year with no submissions. Needs a call, not a patch.

Off-app — handoffs the review created

  • Enrollment email rewrite — "the upcoming semester" reads as next semester; Lejla owns it (U-001).
  • Per-level teacher welcome audios — Lejla scripts; one to four recordings per teacher (U-025).
  • S02 welcome video — pep talk, genuinely enthusiastic presenter; no script yet (U-012).
  • Locked-out student — duplicate-enrollment deletion cascaded and removed both records (U-034).
  • Telegram ownership handover — Hammad, Rania, Raga; students were already promised access (U-035).
  • Automations — TA-signed outreach after two missed weeks; a message when a 20-minute appointment is missed (U-071/116).
  • Two-week temporary live schedule re-cut from the availability data (U-056).

Next steps

  • Kamran: review this page + step the four entrances in handoff/walkthrough/QuranFlow-Walkthrough.html (double-click, offline). Approve → commit, push both remotes, redeploy the hub.
  • Then: re-shoot the 14 flow-map frames marked "re-shoot pending v12 approval"; sync TRACEABILITY.md to the new codes.
  • Chase: the session-3 transcript (resumes at S33 — booking, and everything from S34 on is unreviewed).
  • Schedule: Yasmine's copy pass; the behind-students working session.