Research notebooks

A notebook is one page per line of research, and each page is a table with one row for every result. Instead of a new folder and a new status entry for every pull request, the project now adds one row to the right notebook when a run produces a number. You can read a page top to bottom and see what was tried, what it measured, what bar it had to clear and what was concluded.

flowchart LR
  A["A run or check<br/>produces a number"] --> B["One new row at the<br/>bottom of its notebook"]
  B --> C{"Did the run seal<br/>artifacts?"}
  C -- yes --> D["Dated evidence folder<br/>linked from the row"]
  C -- no --> E["The row is the record"]
  D --> F["Older folders move to archive/"]

How a result becomes a row. Only a run that seals artifacts keeps its own dated folder.

The format

Each notebook lives at docs/research/notebook/<line>.md. A line is one sustained question, such as "how the discrete model reads context". The charter sets this format (CHARTER.md, section 5.6), and the owner chose it in answer to question 4 of the 19 October 2026 review.

Every result is one row with six columns:

ColumnWhat goes in it
DateThe ISO date the result was recorded (YYYY-MM-DD).
What ranOne or two plain sentences: the test or check, on what, with what budget.
NumberThe measured value, with its denominator and the baseline it is read against.
BarThe pass line that was fixed before the run, or "none registered" when the run was a diagnostic or a qualification check.
VerdictOne of the five words below, with a short qualifier.
ArtifactA link to the record or the sealed evidence folder that holds the proof.

Rules for keeping a notebook:

  • Append at the bottom. The newest row is last. Rows from one day appear in the order the work ran where the records show it.
  • One row per result. A repeat of an earlier run gets its own row. A change of plan, a review or a tooling step is not a result and gets no row.
  • A dated evidence folder only when a run seals artifacts (checkpoints, receipts, logs with checksums). The row links to it. A result with nothing to seal needs no folder.
  • Numbers are measurements from a recorded run, unless the row says proof or hypothesis, as defined in formal_vocabulary.md. A passing control is not a language result, and NOT_RUN is not a pass.
  • Rows are never edited to change a verdict. If a later run corrects an earlier one, add a new row that names the earlier one.

The five verdict words

VerdictMeaning
positiveThe run met the bar or passed the controls it registered, at the scope stated in the row.
negativeThe run missed a registered bar. It closes that exact configuration (recipe, dose, window, objective) and never the mechanism (D22).
inconclusiveThe run produced a number, but no bar was decided, or the evidence cannot separate the explanations.
diagnostic stopA registered stop rule or the owner ended the run early so the cause could be found. It is not a negative.
blockedA fault in the tooling, the machine or the source stopped the run before it could measure. It is not a negative, and it is not a result about the model.

The notebooks

LinePageWhat it asksResult rows
m1-discrete-attentionm1-discrete-attention.mdCan the integer model learn to read earlier text well enough to predict the next word?30
m1-prime-zetam1-prime-zeta.mdCan prime numbers and zeta-zero phases give every token a distinct starting vector?1
m3-durable-memorym3-durable-memory.mdCan conversation be stored and rebuilt exactly, so memory lasts across sessions?1
m4-servingm4-serving.mdCan the trained model be served with integers and tables only?0
data-tokenizerdata-tokenizer.mdWhich data and which tokenizer does the model train on?0
harness-governanceharness-governance.mdIs the research tooling and process worth its cost?0

Source of the counts: archive/catalog.jsonl, records dated 12 October 2026 or later whose outcome is positive, negative, inconclusive, diagnostic-stop or blocked, counted with jq. Pages with 0 rows have records on those dates, but all of them are tooling, planning or process records. The page says so.

The other fourteen lines in the audit catalog (for example m2-exact-memory and m1-float-rung0) have no notebook yet. Each gets one the next time it produces a result. The project is pre-alpha: 0 of 8 milestones are complete, and no row on any page is a language result.

Where the rows came from

The first rows were seeded from the audit catalog, which read every lab record in the repository. The seed covers 12 October 2026 to 19 October 2026. Earlier work is summarised in How the project got here and sits in archive/. Records dated before 18 October 2026 link to their archived path; records of 18 and 19 October stay in docs/labs/.

Go deeper