C.W.K.
Stream
Lesson 02 of 05 · published

Seven Readings From One Sentence

~10 min · reading-types, multi-type, extraction, standing-facts

Level 0Cold Iron
0 XP0/36 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"'Slept badly and the knee was stiff' is not one thing to file. It is a measurement and a symptom, from one breath."

The Reading Types

The typed layer draws from a small vocabulary of reading types: symptom, workout, intake, medication, measurement, medical-record, meal — plus note as the honest catch-all when the prose is real but fits none of the others. This is not a menu Dad picks from; it is the shape Pippa maps his words onto, after the fact. The vocabulary is deliberately small and stable, because a controlled set is what makes months of crumbs comparable — but it lives in interpretation, not in a capture form.

One Crumb, Several Readings

Prose does not respect one-topic-per-sentence, so a single crumb can carry several readings. "Slept badly and the knee was stiff" yields a measurement/sleep reading and a symptom reading at once; "took the new supplement, felt a bit nauseous after lunch" can yield intake, meal, and symptom. The reading names only what the prose actually supports — a site and quality for a symptom, a value and unit for a measurement, a substance statement for a medication — and never invents a field the words did not earn.

Types are derived server-side; the model returns readings, not types. Asking the model to also assign the type is one more thing it can get inconsistent about. Instead it emits the readings and their fields, and the server derives the type set from them — one less consistency burden carried in the fragile place.

The Rubric Knows Dad

The reading rubric is not generic; it carries a few standing facts about Dad so it never contradicts them. He does not drink alcohol — absolute, not a preference — so there is no intake sub-field for it and no correlation branch that assumes otherwise; there is nothing to reduce. He has a mild rheumatic tendency, so joint and inflammation symptoms are the expected primary class, not an edge case. Those facts live in the vault and are embedded in the rubric, so the typed layer reads his body the way someone who knows him would — which is, again, the whole point.

Code

One sentence, two readings·text
crumb.text = "slept badly, maybe 5 hours, and the knee was stiff"

readings:
  - type: measurement          # sleep
    field: sleep_hours ~ 5
    evidence: "maybe 5 hours"
  - type: symptom
    site: knee
    quality: stiff
    evidence: "the knee was stiff"

# Two readings, one crumb, one immutable ULID beneath both.
# The server derives types:{measurement,symptom} from the readings.

External links

Exercise

Write one honest, run-on sentence about your own day that mixes topics — for example, 'skipped breakfast, walked half an hour, left shoulder tight by evening.' Now list which reading types Forge would derive from it, and the one field each reading could honestly extract.
Hint
That example carries meal (skipped breakfast), workout (30-min walk), and symptom (shoulder tight) — three readings from one sentence, each extracting only what the words support.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.