docs: TODO after the overnight run

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqXevQJhxFrM7jJg82cgZN
This commit is contained in:
Daniel 2026-09-11 13:00:19 +02:00
parent 765a477d4b
commit 85ccdadc9b

View file

@ -3,7 +3,7 @@
Everything requested and not yet delivered. Ordered roughly by dependency, not Everything requested and not yet delivered. Ordered roughly by dependency, not
priority — say which to take and I'll reorder. priority — say which to take and I'll reorder.
Updated 2026-09-11 (evening). Updated 2026-09-11 (overnight).
--- ---
@ -37,31 +37,46 @@ Captured so nothing is lost while the article writing runs.
anything authored, AI conversations); reports the counts afterwards. anything authored, AI conversations); reports the counts afterwards.
### Articles — prose and links ### Articles — prose and links
- [ ] **Rewrite article prose in the third person, impersonal** — "diagnosis is - [~] **Third person, impersonal** — 819 imperatives across 348 sections. Nine
made by", "response to treatment is assessed by". One agent pass per of ten batches applied (740 imperatives cleared, 79 left in 43 sections);
article: keep every fact and reference, keep the `[[id|Title]]` markers. one batch outstanding. `scripts/prose_pass.py` exports, takes rewrites
back, and refuses any that lost a cross-reference, changed a number or
landed outside 0.7-1.4x length. First and second person were measured at
zero and sixteen (sample boilerplate) — neither needed work.
- [x] **Smart cross-linking** — done 2026-09-11. First mention per view, lists
as jump lists, the 23 titles in more than 5% of articles link from lists
only. 3,560 links to 2,191, and the tail with it: Seizures 119 to 48.
Re-runnable — it strips its own work and reapplies the rule.
- [x] **37 nested cross-references repaired**`[[363|[[245|reflux]] disease]]`
from the first linker pass, which rendered as literal brackets.
- [ ] **Clinical view in MDM order** — presentation → differential → diagnosis → - [ ] **Clinical view in MDM order** — presentation → differential → diagnosis →
management → prognosis/outcome where it adds something. management → prognosis/outcome where it adds something.
- [ ] **Smart cross-linking** — decide the rule for which mentions become links
(see the note under "From the 11 Sep recordings").
### Reading and study ### Reading and study
- [ ] **Study recommendations by Articles / Disciplines / Systems** — currently - [x] **Recommendations by Articles / Disciplines / Systems** — done
one list by category. Should be three tabs, each linking onward. 2026-09-11. Three groupings over the same answers; Articles is the
- [ ] **Adaptive session** — questions ordered by what would help most, with an default. Systems rolls up through the symptom keyword's parent and states
explanation of how it decides. its own coverage (1,502 of 2,948 questions). "Practise this topic" works
on whichever axis the row came from.
- [ ] **Adaptive session** — the design and its weaknesses are written up in
`docs/study-recommendations.md`; two defects fixed (a 2,000-row cap that
hid a third of the bank, and an O(n·m) category lookup). Still open:
ordering uses raw accuracy rather than shrunk readiness, and difficulty
is a filter rather than something the session moves along.
### Settings and access ### Settings and access
- [ ] **Revamp the settings page** — called out as the worst screen in the app. - [x] **Settings revamp** — done 2026-09-11. A section list beside one panel,
Work out what belongs there at all before restyling it: account, theme, the section in the URL so it can be linked to. The exam objective moved
exam objective, voice, integrations, data. Several of those have drifted in; the notifications panel went, its one control having switched a
in because there was nowhere else to put them. reminder scheduler that no longer exists.
- [ ] **Access as a tree** — grant a person articles, an image library, a - [x] **Access as a tree** — done 2026-09-11. `/access`: a person on the left,
question folder, or a category branch, at any depth, with "everything" as everything they hold on the right. A granted branch shows its children as
one option rather than a checkbox per row. Three grant tables already covered rather than separately tickable. "Everything" is the moderator
exist (`category_grants`, `media_library_grants`, question folders); they role and says so, rather than a wildcard grant nobody could audit. A
need one way in rather than three screens, and inheritance down the tree branch now also covers the articles filed under it — an educator could
so granting a branch grants what is under it. previously edit a branch's questions but not its reading.
- [ ] **Question folders** — collect questions into folders for assignment, the
one grantable thing the access tree does not yet cover.
### Media ### Media
- [x] **Audio and video** — a murmur cannot be shown as a picture. Uploads take - [x] **Audio and video** — a murmur cannot be shown as a picture. Uploads take
@ -88,10 +103,12 @@ Captured so nothing is lost while the article writing runs.
label the prose can refer to ("Figure 1") and an order. The 346 existing label the prose can refer to ("Figure 1") and an order. The 346 existing
single paths were backfilled and retitled; the filename stays in the single paths were backfilled and retitled; the filename stays in the
caption as provenance. caption as provenance.
- [ ] **Explanation figures as labelled thumbnails** that open a preview, so the - [x] **Explanation figures as labelled thumbnails** — done 2026-09-11. They
prose can say "refer to Figure 2". open full size and page between each other; a stem figure stays full
- [ ] **Figure management in the question editor** — add, label, caption, width. Withheld until answers are revealed, like the explanation itself.
reorder, remove, using the image picker. - [x] **Figure management in the question editor** — done 2026-09-11. Add from
the bank, name, caption, reorder, remove, per role. An uncaptioned figure
is called out as one nobody will find.
### Dashboard ### Dashboard
- [x] **Stats are about questions, not quizzes** — questions seen out of the - [x] **Stats are about questions, not quizzes** — questions seen out of the
@ -314,5 +331,7 @@ exam-scoped disciplines.
## From the 11 Sep recordings — still open ## From the 11 Sep recordings — still open
- **Quiz player, "let it not be showing when you're taking the quiz"** — the recording does not say what "it" is. Most likely reading: in exam mode the right-hand question rail must not reveal right/wrong as you go (study mode may). Confirm before changing. - **Quiz player, "let it not be showing when you're taking the quiz"** — the recording does not say what "it" is. Most likely reading: in exam mode the right-hand question rail must not reveal right/wrong as you go (study mode may). Confirm before changing.
- **Study plan overview cards** — AMBOSS shows per-block progress bars ("0/6 articles · 0/40 questions"); ours shows a status word. Polish once the block page has been used. - **Study plan overview cards** — AMBOSS shows per-block progress bars ("0/6 articles · 0/40 questions"); ours shows a status word. Polish once the block page has been used.
- **ArticleSplitView.test.jsx** — passes alone, occasionally fails one test under the full parallel run. Timing-sensitive; look at its waits. - [x] **ArticleSplitView flake** — fixed. It hovered a link, which starts a
350ms timer before the preview card appears; it now focuses instead, which
reveals at once. The failures were it losing CPU to the backend suite.
- **Third analysis tab "Session analysis"** — AMBOSS lists sessions as a tab; ours are the sidebar, which is what was asked for. Leave unless it comes up. - **Third analysis tab "Session analysis"** — AMBOSS lists sessions as a tab; ours are the sidebar, which is what was asked for. Leave unless it comes up.