Plan reader
The @orgdevkit/kit-plan-reader member surfaces — the overview a person arrives on, the chapter reader with its three-verb reaction grammar and the thread that opens under it, and the change log that is the only account of how the plan changed. Over one synthetic plan about a shared workspace: no engine, no model, nothing written anywhere.
Where you are, and what is true today
The kit navigates nothing — the address below is this page's, handed to each screen as the ways out it offers. The switches are the design's own honest-state switches, and they compose: a spent budget stands above the first-run wait and above the plan, because it is true in both.
The last two switches belong to the domains segment at the foot of the overview, and the thing to watch there is what does not move. Each domain says how many papers it holds and what may honestly be said about how the searching is going — and the three states never say finished, because the measurement behind them knows how often this research has asked about a domain, not whether the literature has run out. Turn on a research that has just started and every state changes while every count stays exactly where it was: the papers are counted from the library, and the state is a separate fact about the asking. One domain holds nothing at all, and it is the only row with no way through to the library — there is no filter to land on.
Above the segment sits the one block on this screen that asks rather than reports: a research direction that this person's own uploads and intake answers proposed, waiting for them to say yes or no. The owner chose that confirm step over steering the research automatically, and his reason is what the row is built around — automatic steering sends details drawn from somebody's medical documents out to external search services with nobody having agreed to it. So the sentence saying what was read, and where is in the row itself and never behind a why?, and the read model refuses to draw a proposal that cannot say. Answer one and watch two things happen: the question leaves and does not come back — a rejection is stored, not dismissed — and a confirmed one turns up at the bottom of the domains segment as a domain nothing has been searched for yet. Reload the page to be asked again.
home
Overview
So the two hours would be the same two every day, not moved about?
3 of 9 points carry your reaction · 2 questions are open. There is no target figure. This is only where you are.
- AI draft
- 5
- Checked
- 3
- Seen with an expert
- 1
Every point stands at one of these three. A point re-cut into the first chapter is still one point, counted where it lives.
While reading what you handed over, the research team came across a subject that is not in your research yet. Nothing is searched about it until you say so.
This comes fromThe team rota you uploaded on 2 June, which lists a start time an hour before your shift begins.
Leaving it out means it is not researched, and we do not ask you about it again.
This comes fromYour intake answer about your working week, where you wrote that you are on nights three weeks in four.
Leaving it out means it is not researched, and we do not ask you about it again.
This comes fromYour intake answers about when you sleep on your days off, read beside the rota you uploaded on 2 June.
Leaving it out means it is not researched, and we do not ask you about it again.
As long as a question is waiting here, no new ones are added. There is no hurry: the rest of your research carries on either way.
These are the domains the research team is searching in for you. The papers it finds in each one are in your source library.
Your data
The one chapter of the plan whose content is not the research team's words (§15). Every value here came out of a document somebody uploaded, or was typed in by them, and it is the only place in the whole product where a person may delete something: a blood value is not a claim anybody made, so it is theirs to take back. The schema says so rather than a component — this kit forbids delete on every other table it owns.
The four buttons are four row sets, not four renderings: the panel takes no state prop, so a single reading becomes a strip and a second one turns it into a chart with nobody deciding. Watch the November haemoglobin reading in the first state — it sits inside the shaded band and its row still says below the range, because the band is the newest report's and every reading is judged against the range of the report it came from. And the substance is spelled three ways across those documents, which is what the “one substance, one chart” note is made of: the spellings are read off the rows, so a card whose documents agreed says nothing.
Your data
8 readingsReadings to check
There is nothing to check. Every reading here was read clearly.
Measured more than once
Your documents call this Hb, haemoglobin and hemoglobin. One substance, one chart.
The shaded band is the range from your most recent report (7,5 to 10 mmol/L). Each reading is compared with the range of the report it came from, so a reading can sit inside the band and still say it was outside its own range.
11 November 2024 · 7,6 mmol/L · outside the range of the report it came from (7,8 to 10,5 mmol/L)
| Date | Value | Compared with its own report | From | Change a reading |
|---|---|---|---|---|
| 3 May 2024 | 8,1 mmol/L | within the range | [e2] | |
| 11 November 2024 | 7,6 mmol/L | below the range | [e2] | |
| 20 April 2025 | 8 mmol/L | within the range | [e2] | |
| 14 May 2026 | 8,3 mmol/L | within the range | [e2] |
The shaded band is the range from your most recent report (50 to 150 nmol/L). Each reading is compared with the range of the report it came from, so a reading can sit inside the band and still say it was outside its own range.
8 November 2024 · 41 nmol/L · outside the range of the report it came from (50 to 150 nmol/L)
| Date | Value | Compared with its own report | From | Change a reading |
|---|---|---|---|---|
| 8 November 2024 | 41 nmol/L | below the range | [e2] | |
| 14 May 2026 | 74 nmol/L | within the range | [e2] |
Measured once
CRP
inflammation marker in bloodOne reading, so there is no line: a line through a single point would draw a course nobody measured. A second reading turns this into a chart on its own.
ESR
sedimentation rate, a second measure of inflammationOne reading, so there is no line: a line through a single point would draw a course nobody measured. A second reading turns this into a chart on its own.
14 mm/h · 12 March 2026 · entered by you
What this research is for
The scope modal (§7e): the brief's own words, and the clauses that say what the research leaves out. Those clauses are written against who a study is about, what it set out to do and what kind of evidence it is — never against a subject, because the unexpected link is the point. The four buttons are the four states a scope can be in; the two empty ones are different facts and stay apart.
In the product this opens from the details button on the domains segment of the overview, and that button is live above — the segment landed with the per-tag yield measurement behind it. The button here opens the same modal, and it is the quick way to look at all four scope states without leaving this block.
The modal now carries its editing chat. There is no model behind it here: the answers are a four-step script, and the third step is the model doing the wrong thing — complying with a request to leave out a subject. Watch what happens to that clause. It is refused by the kit rather than by the model, said out loud, and there is nothing to save; a model that behaved well would never show you that. The fourth step comes back unreadable, which is the state that proves your own words were stored before anything was asked.
What the host was asked to do
Every verb the screens do not perform themselves leaves through a prop. Here they are accepted and recorded — nothing is written, nothing is sent, and no model reads along.
- Nothing asked of the host yet.