Home

Daily cycle: review and tasks

How parents give feedback and how the next task set appears.

The unit is a set, not a day

flowchart LR N[Set N] --> R[Parent: upload answer photos] R --> A[Service: check and feedback] A --> G[Next set] G --> N1[Set N+1 after link check]

There are no pre-built future sets. A working set becomes current for the child after generation and link check. No mandatory Review → Publish. Draft → Publish remains only for control work and diagnostics.

Who sees what

Role Screen
Child Current tasks — current set; Past work — archive with feedback
Parent Any issued set; generate and selective regenerate on the current set

Reviewing a set

Two paths per task

Path When Action
By photo Child needs feedback Photos → Check → feedback; compare in Recognized from photos
Myself Clear without feedback I verified it myself → verdict No errors / Had errors (errors require text) → Save

After a photo check, the myself path is unavailable — only reshoot or text edit. Details: Photo check § A.

After a photo check

Element Purpose
Feedback Verdict and explanation for the child
Recognized from photos Compare with the notebook
Photograph again New check

Parent text from “myself” and other manual notes are not shown to the child (AI feedback after a photo check is shown).

Past sets

The parent can open a previous set and fix marks. Generate next set is only on the latest.

Next set

flowchart TD B[Review of the latest set] --> C[Generate next set] C --> L[Link check] L -->|ok| D[Set is current] L -->|broken| AR[Auto-regen tasks with links ≤2] AR --> L L -->|limit hit| D2[Issue + parent banner] D2 --> D D --> S[Map summary if changes] D --> E{Need edits?} E -->|yes| F[Comment on task → Regenerate] F --> D E -->|no| G[Child does the tasks]
Rule
Incomplete review Does not block generation
Knowledge map Updates when generating the next set, not when checking a task
Map summary If mastery_update changed anything — show once at the top of Tasks (no dismiss). None on the first set
Issuing Child does not see the set until links are checked (or auto-retry is exhausted). No mandatory Review → Publish
Links before issue Broken URLs → auto-regenerate_tasks for those tasks only (≤2 tries, no quota charge). After limit — issue + soft parent banner
Manual regenerate Empty comment = keep; text = redo. Only marked tasks change; current check / parent_report reset
Child on manual regen Quiet text swap; old feedback gone. No “updated” banner in MVP
Attempts after regen Clear current; keep raw old attempts in DB (history UI is a separate backlog)
Already started Manual regenerate is not blocked — parent/child responsibility
Quota Manual regenerate_tasks counts like a set generation (when freemium is on); hint on the button. Link auto-regen is not billed
Control / diagnostic Still draft → Publish (+ link check with confirm)

Value points (funnel)

Three distinct “ahas”, not one metric:

# Point Role Meaning
1 Plan accepted Onboarding milestone “The system understood the path”
2 First set issued Stepper close / onboarding aha; trial billable “There is something to do today”
3 First task checked Activation (“the loop is alive”) “Feedback and the cycle work”

Onboarding and the stepper close on (2). (3) is the activation north-star, not “setup done”. Trial / billable sets count issued working sets. Manual regenerate right after issue is a generation-quality signal (observability), not a value point.

Past work (child)

After the second issued set — Past work link on Current tasks.

Shown Not shown
Task text, feedback Parent notes, photos, recognized text

The current set is not in the archive.

Decision: “Current tasks”

There is no mandatory “feedback first, then new tasks” gate.

  1. The child sees one current set on Current tasks.
  2. After review — feedback in context, or move on after the next set is generated.
  3. Past work is a reference archive, not a gate before a new set.

Decision: task list in a set (2026-08-05)

Rule
Parent Always the full list (current and past set, control work); no remaining/all toggle
Child (Current tasks) Default — only is_done=False; full list via “Show all” (?tasks=all)
Boundary (child) Strictly is_done: accepted with minor errors / tips is hidden in the default mode
Preference (child) No cookie/localStorage: without the param = remaining, ?tasks=all = all
After accept (child) On a full page load the card leaves “remaining”. While the page stays open, soft-update keeps the card: badge and feedback update in place so reading is not disrupted
Out of scope Draft; child Past work
All accepted (child) Empty list + “Show all”

Decision: default expanded card (2026-08-05)

Audience Rule
Parent (current/past set, control work) All cards collapsed; parent opens what they need
Child (Current tasks) Expand the first is_done=False among tasks visible in the current filter mode
Parent diagnostic Unchanged: still the first task without a filled part result
Out of scope Child Past work archive

For the child the criterion is is_done=False (including major_gaps, needs_parent). In “remaining” the first card in the list opens; in “all” — the first not-accepted in set order. No not-accepted tasks → nothing expanded.

Not doing: an inverted filter on child Past work (default “all”, click for “remaining”). Archive is reference, not a queue.