How it fits together

Help

← Back to index

Source of Truth

SOURCE OF TRUTH → reference/ntu_proposal_080526.md (NTU PhD proposal, "Towards Constraint-Compliant, Multi-Objective Aligned LLM Feedback for STEM Education") — all scope in PLAN.md and resources.md traces back to this. Progress shown on index.html and plan.html is tracked in this browser only (localStorage) — ticking a box in plan.html does not rewrite PLAN.md itself.

Deadline Countdown: Pace Assumptions & How to Change Them

The countdown clocks on index.html and plan.html aren't tied to a fixed calendar date. Each time they render, assets/study-state.js recomputes a deadline from two numbers defined at the top of assets/plan-data.js: hoursPerWeek (currently 13.5) and hoursPerItem (currently 4 — a rough per-checklist-item estimate). The formula: take the remaining unchecked items in the current phase, multiply by hoursPerItem, convert to days at hoursPerWeek / 7 hours per day, and add that to an anchor instant — "right now" by default, so ticking or unticking a box shifts the deadline immediately rather than drifting from some fixed date set once and forgotten.

settings.html now provides an in-browser control for this: enter hours/week and hours/item and save. The override is stored in this browser's own localStorage (same scope as checklist progress) — it does not touch assets/plan-data.js, so a different browser or machine keeps using the file's defaults until set there too. "Reset to default" on that page clears the override and falls back to assets/plan-data.js's hoursPerWeek (13.5) / hoursPerItem (4). Hand-editing those two constants directly is still the way to change the shared default for every browser at once.

The same page also has a study start date control. Left at its default, that anchor instant is always "today" — recomputed fresh on every load, which is what keeps deadlines from drifting. Setting a specific date instead fixes the anchor: the schedule (and planner.html's calendar) projects forward from that date rather than always sliding to today, so falling behind pace shows up as overdue instead of quietly re-basing. "Reset to default" drops the override and goes back to the always-today anchor.

PLAN.md Live Sync (Write-Back)

By default, ticking a box on plan.html only updates this browser's localStoragePLAN.md itself is untouched, and a different browser or machine starts from a blank checklist. The "Connect PLAN.md…" control at the top of plan.html turns on real write-back: once connected, every tick/untick rewrites the matching - [ ] / - [x] marker directly in the file on disk, leaving all surrounding text — headings, prose, wrapped continuation lines — untouched.

This uses the browser's File System Access API, which comes with two hard requirements:

Connecting: click "Connect PLAN.md…", pick PLAN.md in the file dialog, and grant read-write permission when asked. On connect, the browser reads the file's current checkbox states and adopts them — so if you've hand-edited PLAN.md since the last sync, the file wins and your browser's checklist updates to match. After that, the file follows the browser: every click rewrites the file within about a third of a second.

Reloading the page: the file stays remembered, but Chrome doesn't silently re-grant write permission after a full reload — expect the status line to read "click to reconnect" each time you reload or reopen plan.html. Click "Reconnect" once (it needs a real click, since granting file permission requires a user gesture); that re-pulls the file's current state, so if you or something else edited PLAN.md since the last sync, the browser's checklist updates to match rather than silently overwriting it.

Safety check: the browser matches checkboxes to assets/plan-data.js's phase/item list purely by position — the same pairing the checklist rendering already relies on. If you add or remove a checklist item in PLAN.md by hand without mirroring that change in plan-data.js, the item counts won't match and sync refuses to read or write rather than risk marking the wrong item — it surfaces an error instead.

Disconnecting: click "Disconnect" to forget the file and stop writing to it. The checklist keeps working from localStorage exactly as before.

The Study Procedure, End to End

  1. Pick the next open item in PLAN.md, top to bottom within the current phase. Phase order already encodes prerequisites — don't skip ahead speculatively.
  2. Find its materials in resources.md. Read using the method in study_methods.md §2 — cover worked examples, write definitions out by hand.
  3. Create a notes/ file only once actually mid-topic — never scaffolded in advance.
  4. Run the three-level benchmark test — mechanical, conceptual, application — from study_methods.md §3.
  5. Record the result in topic_coverage.md: tick the levels that passed, set status, date it.
  6. Add a few lines to log.md for the week.
  7. For foundational topics, run a spaced cold-check roughly a month after reaching benchmark. A fail isn't a setback — it goes back into PLAN.md as revisit.

Five Topic Sectors

1 · Discrete Math, Logic, Formal Grammars Serves VCD correctness — Strand 1
2 · Algorithms & Complexity Serves VCD complexity characterisation — Strand 1
3 · Probability & Statistics Comparative judgement (Bradley-Terry, Thurstone) — serves CJ-Bench, Strand 3
4 · Optimisation Constrained MDPs, Pareto efficiency, DPO/RLHF — serves MOA-Edu, Strand 2
5 · Linear Algebra & Calculus Instrumental — only as deep as needed to read the ML papers behind every strand

Out of scope unless a later strand demands it: pure/abstract algebra, topology, differential/algebraic geometry, number theory, PDE theory, complex analysis.