Distill notes.html #159-#255 into categorized lessons.base.ts rows, one disposition per entry
The middle stretch of the backfill: notes.html entries #159 through #255, 97 entries.
This is a distillation, not an import. For each entry: read it, decide what a planner working a different product would need to know, and write that as a title + howToApply pair. Strip our repo names, our card keys and our dates — the shipped constant's own guard suites ban that vocabulary, and a lesson that only makes sense inside this project cannot help the customer whose plan it is injected into.
Every one of the 97 entries gets a disposition, recorded in the PR body: a new row, a merge into one of the rows already there, or a drop with its reason. Dropping silently is the specific failure the corpus-distillation gate exists to prevent, and the count of dispositions must equal 97.
Each new row carries its kind/type/phase axes and its sourceRef (the notes.html number), which is also the idempotency key the seed dedups on.
Dedup before writing: several entries in this range restate a lesson already in the store, and a second row means the ranker returns the same advice twice and crowds out something else. The set to dedup against is the 70 existing rows PLUS whatever the #112–#155 card added — its sibling "Distill notes.html #112–#155 … the 44 entries the seed never accounted for" is blocked_by-ahead of this one precisely so the older, more overlap-prone material is settled before this range is read.
Read MOTIR-1948's five comments before starting. That card was retired by the 2026-08-21 re-plan of this story, but its discussion carries per-entry routing decisions Yue already made — #180, #196 and #224 fall in THIS range, each with a suggested generic register and a dedup note. Those decisions stand; they are inputs, not work to redo.
Acceptance criteria
- Entries #159-#255 each have exactly one disposition in the PR body — new row, merge (naming the row), or drop (with the reason). The disposition count is 97.
- Every new row carries a
sourceRef, its kind/type/phase axes, and atitle+howToApplywritten generically. - No row contains
motir-core,motir-ai,motir-gateway,motir-meta, aMOTIR-<n>key, or a date. - No row is a verbatim paste of its source entry.
#180,#196and#224are dispositioned consistently with the routing already decided in MOTIR-1948's comments, or the PR body says why that decision was departed from.- The file parses and the existing seed tests pass.
Context refs
motir-metanotes.html— entries #159-#255.motir-aisrc/seed/lessons.base.ts— the existing rows, their shape, and thesourceRefconvention.motir-aitests/lessonsBaseSeed.test.ts— the suite that must stay green.- MOTIR-1948 — retired; its comments carry Yue's per-entry routing decisions for this range.
- MOTIR-3299 — the category columns these rows fill.