v2 Review — Stakeholder Answers (Apr 21)
Stakeholder Answers — 2026-04-21
From: Lejla Pehlivanovic | To: Kamran | Source: email reply to v2-review-package.html
See also:
STAKEHOLDER-ANSWERS-2026-04-22.md— the Apr 22 working session resolved the three topics deferred here (Reporting, Issue Queue state machine, Repeat Semester). Read both docs together for the complete resolution layer.
This document is the durable record of Lejla's response to the v2 review package. It supersedes all "Open Questions" and "Defaults I'm Making" rows in STAKEHOLDER-SUMMARY.md that are cited here. The original open questions are preserved in the ADRs (decisions/ADR-*.md) as historical context; this doc is the authoritative resolution layer.
The spec edits that apply these answers are tracked in IMPACT-MAP-2026-04-21.md. Apr 22 spec edits are tracked in _apr22-worklog.md.
Verbatim reply
Wa alaykum assalam br Kamran,
Thanks for pulling all of this together — here are my inputs.
END CHECKLIST
Here's how I see the 5 steps:
Step 1 — All Submissions Reviewed. After the submission close date passes, this step auto-completes when there are no more pending submissions. When clicked, it should show a list of all students with submissions still pending. Once that list is empty, it marks itself complete automatically.
Step 2 — Pass/Fail. Every Level 1–4 student needs to be marked as passing or failing the level. TAs set this for their own students based on their judgment; admins can set it too. When clicked, this step should show only the students who haven't been assigned a status yet. It auto-completes when 100% of Level 1–4 students have been assigned. Mastery students are excluded here — they're automatically passed at the end of the semester, no TA input needed.
Step 3 — Send Pass/Fail Emails. Once statuses are set, the appropriate email goes out to each student. Passing Level 1–4 students get a pass email. Failing Level 1–4 students get a fail email with a link to opt in to repeat — they are not automatically re-enrolled. Mastery students get automatically emailed with a prompt to sign up for the same or a different elective next semester. When clicked, this step should show all students who haven't been sent an email yet (either no status set or email failed), with each student's current status visible and a manual send button to trigger the appropriate email. Auto-completes when all students have been sent their email.
Step 4 — Set Up Automatic Payments. For Level 1–4 recitation students who passed, payment for the first day of the next semester is set up automatically. Mastery students are excluded — they self-enroll. When clicked, this step should show the full list of passing Level 1–4 students with their payment setup status (created or not), plus a manual button to set up payment per student in case automation didn't fire. Auto-completes when all eligible students have payments set up.
Step 5 — Semester Close. Fully automatic. The semester closes at midnight EST on the semester end date. No admin action needed.
On leavers — no checklist step needed. They handle their own enrollment and payment; they'll simply stay inactive going forward.
WORKING SESSIONS
I'm available from April 23rd onwards, any day including weekends, any time before 5 PM EST. The only blocked slots are Wednesdays 11 AM–12 PM EST (QF weekly call) and Thursdays 10–11 AM EST (Business Forces). Everything else is open.
Please propose timings based on what works best for you, and let me know how much time you think each discussion will need. Happy to work through all four topics — Reporting, Issue Queue, Auto-enrollment, and Repeat Semester — in whatever order makes sense to you.
ON THE DEFAULTS
I'm fine with all of them except two:
The Announcement Board should allow both admins and TAs to post, not admins only.
On the Level 0 bulk-promote target — it should be Level 2, not Level 1. Level 0 is a placeholder for students whose level hasn't been assessed yet, and our default has always been to place them at Level 2. The spec saying Level 1 is an error — please update accordingly.
On pre-drafting — understanding that this means an admin writes a message on behalf of a TA and the TA then sends it from their own account, I'm fine with all three suggested defaults: Private Messages and Blast Emails only, one TA per draft, and drafts persisting indefinitely.
Everything else you defaulted on is confirmed.
Jazakallah khayran, Lejla, Project Manager, Quran Flow
Parsed mapping
1. End Checklist — ALL 5 ADR-001 questions resolved
Lejla's 5 steps define the End Checklist flat structure. This replaces the TBD scaffold in 04-semester-management.md §3.8. Leaver-related items are removed entirely (Lejla: "no checklist step needed"). Promotion is folded into Step 2 Pass/Fail; there is no standalone "Promotions Computed" item.
| Step | Item | Scope | Type | Auto-complete trigger | On-click behavior |
|---|---|---|---|---|---|
| 1 | All Submissions Reviewed | All enrolled students | Automatic | Submission close date has passed AND zero pending submissions | Shows list of students with pending submissions |
| 2 | Pass/Fail | Level 1–4 only (Mastery auto-pass) | Semi-automatic: TA or admin sets status per student | 100% of Level 1–4 students have status assigned | Shows students without status assigned |
| 3 | Send Pass/Fail Emails | All students (three branches: L1-4 pass / L1-4 fail-with-opt-in / Mastery-elective) | Automatic send + manual fallback | All students have been sent their email | Shows unsent students with current status + manual send button per student |
| 4 | Set Up Automatic Payments | Level 1–4 passing only (Mastery excluded; failing students opt in via their own flow) | Automatic + manual fallback | All eligible students have payment setup complete | Shows passing L1-4 list with payment setup status + manual setup button per student |
| 5 | Semester Close | Semester-level | Fully automatic | Midnight EST on semester end date | — (no admin action) |
| ADR-001 Q | Resolution |
|---|---|
| Q1 (default items) | 5 items above |
| Q2 (what "complete" means + automatic vs manual per item) | Per step above |
| Q3 (trigger/deadline per automatic step) | Per step above |
| Q4 (custom items support) | Confirmed via "everything else you defaulted on is confirmed" — default was Yes (parallel to Setup Checklist) |
| Q5 (W4 risk mitigation if automation delayed) | Implicitly mitigated: Step 4 scope (passing L1-4) depends on Step 2 completion; manual per-student fallback buttons on Steps 3 and 4 cover automation gaps |
2. Defaults — 11 confirmed, 2 changed
Source: the "Defaults I'm Making" table in v2-review-package.html (13 rows).
| # | Area | Default sent to Lejla | Resolution |
|---|---|---|---|
| 1 | End Checklist custom items | Yes | ✓ Confirmed |
| 2 | Assignment Matrix — weighted distribution | Deterministic from capacity | ✓ Confirmed (ADR-002 Q6) |
| 3 | Assignment Matrix — conflict resolution | Flag unassignable students for manual placement | ✓ Confirmed (ADR-002 Q7) |
| 4 | Communication — template library | Unified across Automation + Blast | ✓ Confirmed (ADR-003 Q10 / OQ-C2) |
| 5 | Communication — Blast scheduling | Send-now only in mockup; scheduling deferred to production | ✓ Confirmed (ADR-003 Q11 / OQ-C3) |
| 6 | Communication — Announcement Board posters | Admin-only | CHANGED: admins AND TAs can post (ADR-003 Q12 / OQ-C6) |
| 7 | Communication — Private Messages delivery | In-app only (no email fallback) | ✓ Confirmed (ADR-003 Q13) |
| 8 | Pre-drafting — channels | Private Messages + Blast Emails | ✓ Confirmed (ADR-004 Q14 / OQ-C13) |
| 9 | Pre-drafting — multi-TA | Single TA per draft | ✓ Confirmed (ADR-004 Q15 / OQ-C12) |
| 10 | Pre-drafting — expiry | Indefinite persistence | ✓ Confirmed (ADR-004 Q16 / OQ-C11) |
| 11 | Registration preset scope | Both new + returning enrollees (with sub-filter for new L0) | ✓ Confirmed (ADR-005 Q17) |
| 12 | Registration — bulk-promote window | Always visible when Level 0 filter is active | ✓ Confirmed (ADR-005 Q18) |
| 13 | Level 0 promote target | Level 1 | CHANGED: Level 2 — Lejla: "Level 0 is a placeholder for students whose level hasn't been assessed yet, and our default has always been to place them at Level 2" |
3. ADR-002 Assignment Matrix Q8 — semester binding
Resolved via "everything else you defaulted on is confirmed." Semester Hub entry point is sufficient context; no explicit semester selector on the Assignment Criteria screen.
4. Framework v2 ambiguities
The STAKEHOLDER-SUMMARY.md "Ambiguities from Framework v2" list items are all resolved via "everything else you defaulted on is confirmed" except the Level 0 target level, which is explicitly Level 2 (not Level 1 as the v2 spec currently states).
5. Working sessions — not yet scheduled
Lejla is available Apr 23+ onward, any day/weekend, before 5 PM EST, except:
- Wednesdays 11 AM–12 PM EST (QF weekly call)
- Thursdays 10–11 AM EST (Business Forces)
Topics (all Category E / deferred; Kamran to propose timings):
| Topic | Rough estimate | Notes |
|---|---|---|
| Issue Queue | 30–45 min | State machine, Resolve vs Delete semantics |
| Reporting | 60–90 min | Financial reports (new), student reports, student composition — scope from scratch |
| Repeat Semester workflow | 30 min | Meeting ended before discussion |
| Auto-enrollment | — | Lejla previously said park until after app redesign; don't schedule yet |
What this unblocks for v2 build
All Cat A + Cat B items are buildable against the v2 spec. The End Checklist tab has a complete item list — the only remaining production-side work is backend trigger implementation (which was always production scope).
What still requires input
- The four working-session topics above
- Spec gaps surfaced by Lejla's End Checklist definition that the v2 spec doesn't yet have (Pass/Fail setter UI, three new automation email templates, Mastery-specific handling across workflows) — these require design decisions Kamran will make directly; see IMPACT-MAP-2026-04-21.md.