Architecture

Early Literacy Reading Progression

PK through Grade 2 — click any node for details

PK — Letter Sounds
flowchart TD LSC["LSC Screener
26 letter sounds"] PASS{"Pass?
≥ 20/26"} ENROLL["Enroll in GK
Lalilo + AlphaFluency"] RETAKE["Anton Gap-Fill
Missed letter skills"] LSC --> PASS PASS -->|Yes| ENROLL PASS -->|No| RETAKE RETAKE --> LSC2["Retake LSC"] LSC2 --> PASS2{"Pass?"} PASS2 -->|Yes| ENROLL PASS2 -->|No| RETAKE2["Anton Again
2nd attempt"] RETAKE2 --> LSC3["Retake LSC"] LSC3 --> PASS3{"Pass?"} PASS3 -->|Yes| ENROLL PASS3 -->|No| FLAG["Flag
Manual intervention"] click LSC call showDetail("screener") click PASS call showDetail("lsc_decision") click ENROLL call showDetail("enroll_k") click RETAKE call showDetail("retake") click RETAKE2 call showDetail("retake") click FLAG call showDetail("retake") style LSC fill:#cffafe,stroke:#0891b2,color:#111 style PASS fill:#fef3c7,stroke:#d97706,color:#111 style ENROLL fill:#dcfce7,stroke:#16a34a,color:#111 style RETAKE fill:#fef3c7,stroke:#d97706,color:#111 style LSC2 fill:#cffafe,stroke:#0891b2,color:#111 style PASS2 fill:#fef3c7,stroke:#d97706,color:#111 style RETAKE2 fill:#fef3c7,stroke:#d97706,color:#111 style LSC3 fill:#cffafe,stroke:#0891b2,color:#111 style PASS3 fill:#fef3c7,stroke:#d97706,color:#111 style FLAG fill:#fee2e2,stroke:#dc2626,color:#111
K through G2 — Reading Fluency
flowchart TD ORF["ORF Screener
WCPM + Accuracy"] BENCH{"Pass
benchmark?"} ORF --> BENCH BENCH -->|"No · GK"| MANUAL["Manual Review
AlphaFluency soon"] BENCH -->|"No · G1/G2"| CF["ClearFluency
~30 stories · 15 XP ea"] BENCH -->|Yes| CHK1{"CF HF
active?"} CHK1 -->|"Yes"| RMCF["Remove CF HF
Student passed ORF"] RMCF --> CHK1B CHK1 -->|"No"| CHK1B{"MobyMax HF
active?"} CHK1B -->|"Yes"| WAIT["Wait
Finish MobyMax first"] WAIT -->|"Done"| ASSIGN CHK1B -->|"No"| CHK2{"Mastery
passed?"} style RMCF fill:#dcfce7,stroke:#16a34a,color:#111 style CHK1B fill:#fef3c7,stroke:#d97706,color:#111 CHK2 -->|Yes| ADV["Advance
Re-roster next grade"] CHK2 -->|No| ASSIGN["Assign AlphaTest
Mastery assessment"] TESTOUT["Student Request
Test-out (1x/grade/semester)"] -->|"test out"| ASSIGN ASSIGN --> TEST["Student Takes Test
Reading comprehension"] TEST --> RESULT{"Pass?"} RESULT -->|Yes| ADV RESULT -->|No| MMHF["MobyMax HF
Built by BeyondAI"] MMHF -->|"Done"| TEST style MMHF fill:#fef3c7,stroke:#d97706,color:#111 style TESTOUT fill:#ede9fe,stroke:#7c3aed,color:#111 CF --> DONE{"XP target
reached?"} DONE -->|Yes| ORF DONE -->|No| CF ADV -->|"New grade"| ORF click ORF call showDetail("screener_orf") click BENCH call showDetail("decision") click MANUAL call showDetail("k_fail") click CF call showDetail("clearfluency") click CHK1 call showDetail("check1") click WAIT call showDetail("wait") click CHK2 call showDetail("check2") click ADV call showDetail("advance") click ASSIGN call showDetail("check3") click TEST call showDetail("alphatest") click RESULT call showDetail("alphatest") click DONE call showDetail("clearfluency") click RMCF call showDetail("check1") click CHK1B call showDetail("wait") click MMHF call showDetail("mmhf") click TESTOUT call showDetail("testout") style ORF fill:#cffafe,stroke:#0891b2,color:#111 style BENCH fill:#fef3c7,stroke:#d97706,color:#111 style MANUAL fill:#fef3c7,stroke:#d97706,color:#111 style CF fill:#fee2e2,stroke:#dc2626,color:#111 style CHK1 fill:#fef3c7,stroke:#d97706,color:#111 style WAIT fill:#f5f5f5,stroke:#999,color:#555 style CHK2 fill:#dcfce7,stroke:#16a34a,color:#111 style ADV fill:#dcfce7,stroke:#16a34a,color:#111 style ASSIGN fill:#ede9fe,stroke:#7c3aed,color:#111 style TEST fill:#ede9fe,stroke:#7c3aed,color:#111 style RESULT fill:#fef3c7,stroke:#d97706,color:#111 style DONE fill:#fef3c7,stroke:#d97706,color:#111
Systems

Supabase

Literably results, progression log, pctComplete events

Edubridge

Enroll / unenroll, check enrollments, highestGradeMastered

AlphaTest

Assign mastery tests. Auto-picks untaken by subject + grade

Hole-filling API

/createCourse for ClearFluency + Literably test assignment

PowerPath

Course sequence. Stage IDs per grade. Read-only

ClearFluency Adapter

Scrapes pctComplete. WCPM per story. 15 XP/story. Library auto-advance live (2026-03-18)

Google Chat Webhook

Notifications for: LSC 3rd fail, exhausted ORF passages, near-benchmark scores, test-out requests

Literably

Roster new students with email as first name. Match existing by name. Can't edit old accounts but can create new ones

Open Questions 2 Clarity 5 Us 20 Done

Needs Clarity

Which specific ClearFluency HF libraries to use (awaiting refined list)
XP target sanity checks — awaiting refined spec for edge cases

Verify Ourselves

Does AlphaTest /assign auto-create dashboard entry?
Stop sending pctComplete for ClearFluency HF courses (use XP-based progress)
How to assign Literably retest via hole-filling API
Set up Google Chat Space webhook for flag notifications (LSC 3rd fail, exhausted passages, near-benchmark, test-out requests)
Implement Literably rostering with email-as-first-name for new students (match existing by name)

Resolved (20)

LSC 20/26 · ORF accuracy 95% · AlphaTest 90% pass · AlphaTest API verified · LSC fail → Anton gap-fill (2 attempts) · Mastery test before ORF (normal sequence) · HF types: ClearFluency (ORF) vs MobyMax (mastery) · CF HF removed on ORF pass · XP target per-student (125/250 XP) · 2.5 WCPM/week median · 125 XP/week · AlphaFluency: Lalilo only until rollout · Test type: end of course vs test out based on library completion · AlphaTest fail → MobyMax HF (BeyondAI handles) · Flag within 4 WCPM of benchmark · CF courses exist · pctComplete accurate but use XP for HF · Student-requested test-out (1x/grade/semester) · Google Chat webhook as notification mechanism · CF library auto-advance live (2026-03-18)
Reading Progression · March 2026