Skill: write-like-james @ efd8fba · the build: write-lesson, write-mcqs, write-video-script, review-lesson (two blind reads and a re-read), review-figures, review-questions, review-accuracy @ efd8fba
Topic 21 "How rock layers tell the time" — your read (2 October 2026)
Skim first
The lessons in teaching order, each with its one rule sentence; then the intro script; then the question types. The review page follows.
The lessons and their rules
| Lesson | Atom | Rule sentence |
|---|---|---|
| L01 Deeper is older: the bottom layer formed first | EAR4-035 | Layers that still lie flat. The bottom layer formed first. Each new layer landed on top. A deeper layer is older. |
| L02 Put the layers in time order: count up from the bottom | EAR4-036 | Start at the bottom layer. Count up: 1, 2, 3. The bottom formed first, the top formed last. |
| L03 A fossil is as old as its layer | EAR4-037 | A fossil is as old as its layer. Its layer's pieces buried it. A deeper fossil is older. |
| L04 Read the landscape's story from its layers | EAR4-038 | Read each layer from the bottom up. Say what the place was like then. The changes in order are the story. |
The intro script (114 words, about 57 s)
Here's Jordan at the Grand Canyon with his dad. The walls drop down and down, striped with flat layers of rock. Near the top, his dad shows him a rock with a sea shell pressed in it, high above any sea. Jordan wonders which stripe came first, and how a sea shell got up here. Rock layers can't tell you the time of day. But they can tell you which came first, and which came later. To find out, we will look at which layer formed first, how old a fossil is, and how the layers tell a place's story. Okay, so are you ready to find out how rock layers tell the time?
The question types (from TYPES_G4T21.md)
- Type 1 (easy · MCQ; three drawn · EAR4-035): which layer formed first / last, or is the oldest / youngest, in a drawn or described cliff — layers by letter (J K L M N P), or the fixed position set SAME4 (top / second from top / second from bottom / bottom), with "formed at the same time" as the fourth where letters run short
- Type 2 (easy, medium · MCQ · EAR4-035): where a new layer lands; how long one layer takes; why the bottom layer is the oldest (four reasons) — four places / four spans of time / four single-statement reasons
- Type 3 (medium, hard · MCQ · EAR4-035): which sentence is true when two layers lie one on the other, when a thick layer lies under a thin one, when a claim of one afternoon is made; the oldest of three layers given two relations — four single statements, or letters
- Type 4 (easy, medium, hard · MCQ; two drawn · EAR4-036): which layer gets number 1 / number 3; which is the youngest / oldest by number; which number the top layer gets; which layers a numbered layer formed after; what a top-down count means — letters, or numbers 1–6 ascending, or four single statements
- Type 5 (medium · reorder, drawn · EAR4-036): tap the layers from first formed to last (both items; the key is stored first → last, bottom → top) — the layers' letters in the authored order
- Type 6 (medium, hard · typed numeric, drawn · EAR4-036): the number a lettered layer gets counting from the bottom; how many layers formed after a lettered layer — the bare number and its word (4 / four; 2 / two)
- Type 7 (easy, medium, hard · MCQ; four drawn (v2: PP-32's cliff is fresh — a bone above a footprint) · EAR4-037): which fossil is older / younger given its layers; about how old a fossil is; two positions counted from opposite ends — the two fossils + "both the same age" + a fourth, or four single statements
- Type 8 (medium · MCQ · EAR4-037): why a fossil is deep; which pieces buried a fossil (v2) — four single-statement reasons / four sets of pieces
- Type 9 (medium, hard · MCQ · EAR4-037): which sentence is true of a claim about fossil age (top = oldest; same layer, far apart; how a bottom fossil got there) — four single statements
- Type 10 (easy, medium · MCQ; one drawn · EAR4-038): what the place was like when a described layer formed; which layer tells the first part; which layer tells the last part (v2) — four places (under the sea / a forest / a sandy shore / a desert or frozen place), or letters
- Type 11 (medium, hard · MCQ; three drawn · EAR4-038): how the place changed (two layers); which sentence tells the story (three to five layers, one reading repeated, one return to the sea) — four whole-sentence stories
- Type 12 (hard · MCQ · EAR4-038): judge a story read in the wrong direction; the middle of a sea–sand–sea story; two cliffs' stories compared — four single statements
Four lessons: in rock layers that still lie flat, the bottom layer formed first, because each new layer of pieces landed on top of the layers already there; to put layers in time order, start at the bottom and count up; a fossil is about as old as its layer, because that layer's pieces buried it, and a heavy shell does not sink through solid rock; and the layers, read from the bottom up, tell how a place changed (sea, then sandy shore, then forest). Every key agreed by two cold readers and a third on the re-read; the figure review and the guidance-and-accuracy review are applied. Pictures are placeholders until you answer.
The questions the author put to you (built as recommended)
1. Does this topic coin no new word, and stay with "layer", "fossil" and "oldest"?
Grade 3 coined "fossil", Topic 18 coined "sedimentary rock" and Topic 20 coined "deposition"; this topic recalls each in one line and one item.
The grown-up names for layered rock and for the bottom-is-oldest rule belong to grades 6 to 8.
Built: no new word; the one typed-word item (Topic 18's "layer") is cut, and the hard tier is typed numbers read off a drawing.
Recommendation: no new word.
No new word / coin one
2. Is "hundreds or even thousands of years" the right size to give for one layer?
Children think a layer forms in days, and the atom gives no number.
A flood can lay a layer in a day; most layers take far longer, so the article gives one honest size and nothing in years for a whole cliff.
Built: said once in L01 and tested once (Karl's claim, yes).
Recommendation: keep.
Keep / "a very, very long time" only
3. Do L01 and L04 stay as one article each, at about 350 words?
The Grade 4 ceiling is 300 words; L01 is 353 and L04 is 349.
In both, a subtitle or a figure sits every three lines or fewer: L01 carries two recalled sentences, the landing strip and two beliefs put right; L04 carries Grade 3's two sentences, the worked case, its table and the reverse case.
Built: one article each.
Recommendation: keep whole.
Keep whole / split at a check
The lessons
4. L01 Deeper is older: the bottom layer formed first — Miss Ruiz's class stops at a road cut in Texas with four flat stripes; Karl asks whether they all formed at once. A sea floor long ago: one layer lands, the next can only land on top, so the deeper layer is older. page
5. L02 Put the layers in time order: count up from the bottom — Julia draws the road cut with the soil on top, five stripes; 1 on the bottom, then 2, 3, 4, 5, so formed first is oldest and formed last is youngest. page
6. L03 A fossil is as old as its layer — Karl's shell from the bottom stripe against Jordan's leaf print from the top; a shell on the sea floor is buried as its layer's pieces settle on it, and rock is solid, so nothing sinks through it. page
7. L04 Read the landscape's story from its layers — a river-cut hillside near the school: shells at the bottom, sand, then soil with tree roots; read each layer from the bottom up, and the changes in that order are the story. page
Applied without asking
Ten item drawings had been lettered upside down against their stems (both cold readers caught it; the stems and keys were right and the drawings were wrong), so every lettered item is now built from one list that feeds the stem, the options, the key and the drawing, and a guard script reads 34 of 34 items against their drawings; one order item had asked last to first against the widget's "tap the first one first" and now asks first to last like the other three; the road cut is one cliff across L01, L02 and L03, with the leaf prints in its top red-brown band; the typed "layer" item is cut (bank 50), because it tested Topic 18's word and printed two of its own answers; two summary questions and one claim item have fresh scenes; the landing strip shows each new layer's pieces settling, and the no-sinking card has a layer under the shell; the intro says "Rock layers can't tell you the time of day. But they can tell you which came first, and which came later."; and from the re-read, L04's story item sits on its own cliff so its options no longer restate the two items before it, the glacier in one practice item is recalled in Topic 20's words, L03's article says the shell was buried when its own layer's pieces settled on it, and one L01 drawing's colours are no longer the road cut's.
Also on the site
Topic intro and poll · summary and three questions · mixed practice · the PP100 bank · the type sheet
After you answer
Nothing on the page changes if you keep all three; coining a word or splitting an article is a short text pass. Either way the picture pass starts, and the six-video batch goes on your read of the scripts.
The records, whole
The build record (v1, v2 and the v3 polish)
Skill: course-build → write-lesson, write-video-script, write-mcqs, design-check-sequence, sentence-atomise, write-explanation, review-figures @ b0fa825
Skills in full: course-build → write-lesson (L01 a fact with its mechanism — deeper is older because each new layer lands on top; L02 a routine — count up from the bottom; L03 a fact — a fossil is as old as its layer, the sinking belief confronted by name; L04 the capstone routine — read each layer from the bottom up, then say the changes in order) → write-example-sequence (considered; no categorical concept, so no example run), design-check-sequence, sentence-atomise, write-explanation, write-mcqs; write-video-script (the intro, four lesson scripts, the summary; the elementary micro-lesson anatomy); review-figures (author self-check on sixteen renders; a non-author pass is owed) @ b0fa825
Grade 4 Topic 21 — How rock layers tell the time — build record (v1, 2 October 2026)
What this is, in plain words
Four short lessons, one per atom, in one class: Miss Ruiz's, with Jordan, Julia and Karl, on a trip that stops at a striped road cut in Texas and later at a hillside a river has cut into near their school. First the child learns why the bottom stripe formed first: each new layer of pieces can only land on top of the layers already there, so in layers that still lie flat, deeper is older. Then the routine: to put layers in time order, start at the bottom and count up, 1 for the layer that formed first. Then a fossil: it was buried as its layer's pieces settled on it, so it is about as old as its layer, and a fossil in a deeper layer is older than one above — and no, a heavy shell did not sink down through solid rock. Last, the capstone: read each layer from the bottom up with Grade 3's fossil rule (what the layer holds → where that living thing lives today → what the place was like), and the changes, in that order, are the place's story: sea, then sandy shore, then forest. Built with no blueprint, under the Grade 4 standing brief; the structural decisions are below. Nothing is sent and nothing is committed.
Structural decisions (in place of a blueprint) — one line each, with the reason
- Four lessons, one atom each, in the register's order (035 → 036 → 037 → 038): every prerequisite edge points backwards; 038 is the capstone.
- One running scene, the Texas road cut, for L01–L03; a second cut (a river-cut hillside near the school) for L04: the road cut's four stripes carry the fact, the count and the two fossils, but a sea → shore → forest story needs shells, sand and a soil with roots, which the road cut does not have; a second place is more honest than re-drawing the first.
- L01 is the FACT form with its mechanism inside it (the register's JM-P6 exception): "deeper is older" is unusable at this grade without "because each new layer lands on top", so the landing strip (one layer, then a second on top, then a third, then the dry cliff) IS the lesson; no example run, because the only non-example (tipped or broken layers) is the sibling case grades 6-8 own.
- The jar from Topic 18 and the river-at-the-sea from Topic 20 are recalled, not re-taught: each by one line (Topic 18's and Topic 20's lexicon sentences word for word) and one recall item; the jar is Topic 18's own drawing, imported.
- "Layers that still lie flat" is said in the rule and shown in every diagram: the simplification is named ("Tipped or broken layers wait for a later grade" was cut for length; the article keeps "This rule is for layers that still lie flat, the way they landed"), and no diagram in the topic draws a tilted band.
- Deep time stays Grade 3's "a very, very long time", with one number: "hundreds or even thousands of years" for one layer: the brief's misconception (layers form in days) needs a number a child can hold; a flood layer can form faster, so the article says "one layer takes a very, very long time to form: hundreds or even thousands of years" and the record names the simplification here.
- L02 is a ROUTINE worked on five layers then run on three, with the number chips appearing one by one from the bottom: Julia's drawing adds a thin soil stripe on top so the count reaches five; the time words (formed first = oldest = bottom; formed last = youngest = top) are tied together in their own short section because the items use both.
- L03's mechanism is the burial strip (shell on the sea floor → pieces settle → buried in its layer → more layers on top), and the register's sinking belief gets its own card ("Does a heavy shell sink down through solid rock?" — NO: ROCK IS SOLID): a verdict mark names its question.
- L04 quotes Grade 3's two sentences word for word and then says the sameness out loud ("read one layer" → "read every layer, from the bottom up"): the register's cross note asks for it; the story table (LAYER | WHAT IT HOLDS | WHAT THE PLACE WAS LIKE) is the routine's record, filled from the bottom row up; the second cliff is the first's reverse (forest → shore → sea) so the same readings in the other order give the other story.
- No term is coined: "layer", "fossil", "sedimentary rock" and "deposition" are earlier topics' words; "oldest / youngest" are everyday; strata, superposition and relative age are grades 6-8. So there are no term-recall items; the hard tier is typed where typing produces (a position number counted from a drawing, the count of layers above a lettered layer, the word "layer") and chained MCQs elsewhere. Question for James below.
- Every layer diagram is drawn by code (
cliff()), with one drawing register: five layer colours (tan sand, gray mud, cream shell rock, red-brown sand, dark brown soil), Grade 3 Topic 27's fossil icons imported and drawn small in a band's darker tone, number chips on the left (1 at the bottom), FORMED FIRST / FORMED LAST chips on teaching figures only, letters J–P on item figures; the headache figure is the teaching figure with the number layer off. - Real cliffs and fossils are photo placeholders, the class is a cartoon placeholder: two photos of real striped rock (a road cut; the Grand Canyon for the intro), four fossil photos imported from Grade 3 Topic 27, four cartoons.
- All four lessons are "video and article": each carries a drawing that moves (layers landing; chips appearing; a shell being buried; a table filling), which the video shows and the article shows as a strip; none could do without.
- The intro is Jordan at the Grand Canyon rim with his dad, a sea shell in a rock high above any sea: one scene, one felt question ("which stripe came first, and how a sea shell got up here"), one question mark in the narration, the map line, the ready line and the poll.
Questions for James (the build does not wait)
- Should this topic coin a term, or stay term-free as built? Context: the four atoms name no term; Grade 3 coined "fossil", Topic 18 "sedimentary rock" and "sediment", Topic 20 "deposition". Candidates would be "rock layer" (everyday already) or "time order" (a phrase, not a term). Recommendation: stay term-free; the bank's hard tier is typed numbers and a chained MCQ, which test the skill. Built term-free;
RECALL_BY_MCQis not needed. - Is "hundreds or even thousands of years" for one layer the right number to say, or should deep time stay as "a very, very long time" only? Context: the brief names "children think layers form in days"; the atom gives no number. Recommendation: keep the one number, said once in L01 and tested once (Karl's claim, Yes). Built with it.
- Should L01 and L04 be split at a check, at 344 and 349 article words? Context: the brief's ceiling is 300, with WARN above it acceptable when a subtitle or figure sits every ≤ 8 lines (true here: 5 subtitles and 6–7 figures each, never more than 4 idea lines without one) and a reason is recorded. Reason: L01 carries the recall of two earlier topics (two lines), the landing strip, the two beliefs confronted by name and the scope line; L04 carries Grade 3's two quoted sentences, the worked case, its table and the reverse case. Recommendation: keep each as one article. Built as one each.
Counts
4 lessons · scripts 150 / 149 / 150 / 150 spoken words by the checker's count (146 / 145 / 146 / 146 by the batch tool's; cap 150) · intro 104 words, 1 question mark · summary 150 words (cap 175) · article student text (idea + rule + subtitle lines) 344 / 256 / 281 / 349 (Grade 3 median 308; brief's ceiling 300 — L01 and L04 answered above) · idea lines 19 / 14 / 16 / 20 (longest 22 / 21 / 22 / 22 words) · subtitles 5 / 4 / 5 / 5, figures 6 / 6 / 7 / 7 per article (never more than 4 idea lines without one) · quizzes 10 / 10 / 10 / 11 items (one reorder in L02) · attached questions 4 + 3 (summary), key string in video order C C A B A B A (A 3 of 7) · practice 12 (9 MCQ, 1 reorder, 1 typed number, 1 written; 4 retrievals: Topic 18, Topic 20, Grade 3 Topic 27 ×2 — the fourth folded into a drawn story item) · PP100 bank 51 items: 46 four-option MCQs, 2 reorder, 2 typed numbers, 1 typed word; EAR4-035 13 (8 easy, 4 medium, 1 hard) · EAR4-036 13 (6 / 5 / 2) · EAR4-037 12 (3 / 6 / 3) · EAR4-038 13 (2 / 5 / 6); keys on the four-option MCQs A 9 · B 13 · C 13 · D 11 · figures 63 (53 SVG, 6 photo_ph (4 imported from Grade 3 Topic 27), 4 cartoon_ph).
The per-lesson table
| Lesson | Coins | Lexicon sentences (word for word in the rule step and the script) | Recall items | Misconception items | Term items |
|---|---|---|---|---|---|
| L01 | — | "In rock layers that still lie flat, the bottom layer formed first." / "Each new layer of pieces landed on top of the layers already there, so a deeper layer is older." | q1 sedimentary rock (EAR4-010, Topic 18 L04); q2 deposition (EAR4-024, Topic 20 L05) | q7 all the stripes formed at the same time (register SD-3) — No; q8 the top is oldest because you see it first (brief) — No; q9 a layer takes thousands of years (brief: "form in days") — Yes | — |
| L02 | — | "To put rock layers in time order, start at the bottom layer and count up." / "The bottom layer formed first, and the top layer formed last." | q1 which layer formed first (L01) | q9 Karl numbers from the top (brief: "first seen") — No | — |
| L03 | — | "A fossil is about as old as the rock layer it sits in, because that layer's pieces buried it as they settled." / "So a fossil in a deeper layer is older than a fossil in a layer above it." | q1 what a fossil is (EAR3-030, Grade 3 Topic 27 L02) | q6 heavy fossils sink through rock (register SD-3) — No; q7 buried before the layers above formed — Yes; q8 the fish died a few years ago (EAR3 register: fresh bones) — No | — |
| L04 | — | "To read a landscape's story, read each layer from the bottom up, and say what the place was like when that layer formed." / "Those changes, in that order, tell how the place changed." | q1 a fish fossil on a dry hill (EAR3-033, Grade 3 Topic 27 L05) | q9 the sea came before the forest — Yes; q10 Julia reads from the top — No; q11 the fish and the ferns lived here at the same time (register SD-3, capstone form) — No | — |
design-check-sequence records
`
Skill: design-check-sequence @ b0fa825
Part: L01 (one part)
Type: (a) — the student reads a drawn or described cliff for the layer that formed first or last: one step, one label; plus the claim items.
Plan: 10 items; 2 recall (3 options) → 2 drawn fluency (letters; 3 and 4 options) → 2 fluency (3 options) → 3 claims yes / no (n n y) → 1 apply (3 options). Stems ≤ 25 words.
Belongs in practice/test instead: the reason items (PP type 2), the two-relation chain (PP-40), thickness-is-not-age (PP-22).
Part: L02 (one part)
Type: (b) — a routine (start at the bottom, count up) whose steps each have a right answer; the student can be right on number 1 and wrong on the next.
Plan: 10 items; 1 recall (2 options) → 3 scaffolded on a SECOND drawn case J K L M (number 1; right after the bottom; last) → 1 reorder on a THIRD drawn case (K L M N P, letters out of order) → 1 drawn youngest (J L N) → 2 bare, no drawing (the top layer's number; the oldest) → 1 claim yes / no → 1 apply. Four-option keys 3 2 0; three-option 1 2 0 0; two-option 0 1.
Belongs in practice/test instead: typed position numbers (PP type 6), the count-down item (PP-27), two cliffs of different sizes (PP-28).
Part: L03 (one part)
Type: (a) — the student places a fossil's age by its layer: one step; plus the claim items.
Plan: 10 items; 1 recall (3 options) → 1 when-buried (2 options) → 2 drawn older / younger (2 options; cliffs J K L M and K N P) → 1 same-layer (3 options) → 3 claims yes / no (n y n) → 1 apply (2 options) → 1 transfer (3 options). Two-option key string 0 0 1 1 0 1 1 (no four alternate).
Belongs in practice/test instead: the reason items (PP type 8), the opposite-ends chain (PP-43), the typed "layer" (PP-45).
Part: L04 (one part)
Type: (b) — a routine (read each layer from the bottom up, then say the changes in order) with a right answer at every step.
Plan: 11 items; 1 recall (3 options) → 4 scaffolded on a SECOND drawn case J K L (what the place was like when J formed; when L formed; which layer tells the first part; which sentence tells the story) → 2 bare drawn on a THIRD and FOURTH case (M N: how did it change; M N P: which story) → 1 bare, no drawing (2 options) → 3 claims yes / no (y n n). Three-option keys 0 1 1 0 2 1 2; two-option 0 0 1 1.
Belongs in practice/test instead: the return-to-the-sea stories (PP-47, PP-50), two cliffs compared (PP-51), the written explanation (PR-12).
`
The key strings
- Attached questions, video order: C C A B A B A (A 3 of 7, under 60 %).
- L01 quiz: 3-option 1 1 2 0 0 0; 4-option 0; 2-option 1 1 0. L02 quiz: 2-option 0 1; 4-option 3 2 0; 3-option 1 2 0 0. L03 quiz: 3-option 0 2 1; 2-option 0 0 1 1 0 1 1. L04 quiz: 3-option 0 1 1 0 2 1 2; 2-option 0 0 1 1.
- Practice: 3-option 1 2 2 1 0 2 1; 2-option 0 1.
- Bank four-option MCQs: A 9 · B 13 · C 13 · D 11 (46 items); reorder keys N J P K and J N L; typed 4, 2, layer.
The example sequences and worked cases, written out
- L01 (fact form, examples only): the road cut's four stripes → each stripe is sedimentary rock (Topic 18's sentence; the jar) → a sea floor: a river drops sand and mud in one layer → a second layer can only land on top → a third on top of that → hundreds or thousands of years each → today, rock in a cliff, numbered 1–4 from the bottom → Julia's top-is-oldest (No) and the all-at-once belief (No) → the scope line → rule. Non-example considered and rejected: tipped or broken layers (the sibling case, grades 6-8).
- L02 (routine, worked then second case): Julia's five stripes → 1 on the bottom → 2, 3, 4 up → 5 on the soil → a three-layer cliff: tan 1, gray 2, cream 3 → formed first = oldest = bottom; formed last = youngest = top → rule.
- L03 (fact form): the shell at the bottom and the leaf at the top → Grade 3's fossil sentence → a shell on the sea floor is buried by settling pieces that become its layer → as old as its layer; later layers younger → Jordan's sinking (No: rock is solid) → shells in layer 1, leaf prints in layer 4 → the shell is older → rule.
- L04 (routine, worked then its reverse): shells / sand / soil with roots → Grade 3's two sentences → read layer 1 (under the sea), 2 (a sandy shore), 3 (a forest) into the table → the story: sea, then shore, then forest → the reverse cliff (fern prints / sand / shells): forest, then shore, then the sea came in → rule.
The rules applied
| Rule (vault note / brief) | Where it bites here |
|---|---|
| A Grade 3 or Grade 4 idea is recalled by one line and one item, its wording reused word for word (the brief) | Topic 18's "Sedimentary rock forms when small pieces settle in layers…" (L01 article and q1); Topic 20's "Deposition is the dropping of the carried pieces…" (L01 q2 fb / why); Grade 3's "A fossil is a part of a living thing from long ago…" (L03 article, forest and q1); Grade 3's two place sentences (L04 article, forest, q1) — all as RECALL_* constants |
| Lesson text states the fact, never the topic that taught it | no "in Topic 18" / "in Grade 3" anywhere; the recalled sentences stand as facts |
| Re-enter Grade 3's single-snapshot reading with change over time, sameness said out loud (EAR4-038 cross note) | L04 "Read one layer" → "Read every layer, from the bottom up"; "Each layer formed at a different time, so each layer shows the place at a different time." |
| No figurative verb a young reader takes literally (CLAUDE.md) | the sea "moved away" / "came in", never "pulled back"; "the shell sank" appears only as Jordan's belief, called wrong |
| "Stuff" beside "matter" / plain word beside the term | "pieces" everywhere "sediment" would be; "small pieces of rock, sand, mud or shell" is Topic 18's; no "sediment" in student text |
| A headache scene could really happen; the question from a person who would ask it | a class trip stopping at a road cut; Karl's question; Miss Ruiz's "which formed first, which second…"; Jordan's "which fossil is older" |
| The headache figure is the teaching figure with the answer's layer off | cliff_headache, cliff_five_headache, cliff_fossils_headache, cliff_story_headache are the numbered cliffs with the number chips off; story_table_headache is the filled table with its third column blank; landing_strip_headache has no title |
| A verdict mark names its question | the no-sinking card ("Does a heavy shell sink down through solid rock?" → NO chip); the cliff titles ("Which stripe formed first?") |
| One depiction per thing, reused everywhere; import, never redraw | Grade 3 Topic 27's six fossil icons and four fossil photo placeholders; Topic 18's jar, table, rule card, placeholders and colours; Topic 20's deposition strip (guarded import); the cliff() drawer is the topic's one layer diagram, used by every teaching, item, practice and bank figure |
| Code draws what must be exact; David's pack renders what must look real (2 Oct) | 53 SVG diagrams, strips, tables and cards; 6 photo_ph (real striped rock, real fossils), 4 cartoon_ph (the class); IMAGE_BRIEFS for all 10 |
| An item figure's blind text is DATA, never the verdict (the brief) | blind_of() prints the bands TOP TO BOTTOM with colour and contents; grep of the bundle's [Drawing: lines for oldest / youngest / older / younger / first / last / order → 0 |
| A lettered check render's letters lie outside the option-label alphabet | every item cliff uses J, K, L, M, N, P; never A–D |
| Every sentence has a subject and a verb (S38 0) | PP-48's story options rewritten as sentences; the intro's "A sea shell, high above any sea" folded into its sentence |
| Idea lines ≤ 22 words, one sentence (S1 0) | three 23-word lines split or trimmed |
| Connectives carry cause; the positive word; whole compound names | "so" / "because" / "But" through every article; "road cut", "sea floor", "tree roots" whole |
| A question in an article is answered in the next sentence, verdict first | "Julia says the top stripe must be the oldest…" → "No, Julia is not right, because…"; "Jordan thinks the shell sank…" → "No, Jordan is not right, because rock is solid…" |
| A new scenario opens with Now consider | "Now consider a sea floor long ago."; "Now consider a shell lying on the sea floor long ago."; "Now consider a cliff with three layers…" |
| Hard means more of the skill; a three-sentence stem is hard (S23 0) | nine easy / medium stems shortened to two sentences; every hard item carries a "hard because" |
| A typed answer only where the question is closed (S30 0) | three typed numbers produced from a drawing or a count, one typed word the stem describes; the typed "sea" was re-authored as the Alabama / Nevada MCQ when S30 refused it |
| Recognition before recall; a typed item never in a quiz's first third (S32 / S33 clean) | the only lesson-side typed item is PR-7, after six MCQs |
| A quiz stem never names the lesson's own scene object (S10 0) | no quiz item names a road cut, a notebook, Texas, the jar, the Grand Canyon or the river-cut hillside |
| A test item is a fresh instance; freshness judged on the scene, re-performed (the brief) | the noun grep below; four shared scenes found on the first pass (a school, a hillside, a stream, a quarry / lake pair) were re-scened |
| One atom per bank item; coverage even; difficulty rises with atom order (S11, S31 clean) | 13 / 13 / 12 / 13; EAR4-035 one hard, EAR4-038 six hard |
| A claim-maker once per topic in the bank; names from the topic's row only | Jordan (PP-23), Karl (PP-33), Julia (PP-49); the names run below |
| The intro coins nothing, ≤ 120 words, ≤ 3 question marks, ends on a ready line and a poll (S15 / S20 / S21) | 104 words, 1 question mark; "To find out, we will look at which layer formed first, how to put the layers in time order, how old a fossil is, and how the layers tell a place's story." |
| A summary opens "Here's everything we found out about…", recaps rules not examples, ≤ 175 words, three attached questions | 150 words; every lexicon sentence spoken word for word |
| A rule is spoken in natural speech, never announced | L01 and L03 (facts) "So, <rule>"; L02 and L04 (routines) "So, to put… / So, to read…" |
| Every lesson video opens on its scene and people; "Okay, now your turn."; closing bullets a few words each (R79) | "Here's Miss Ruiz's class at a road cut in Texas…"; check_brief.py: L01–L04 and the summary clean; the intro's "no closing bullets" hit is the standing accepted one |
| Students never see the word strand (S37 0); US spelling (S14 0); units as words (S29 0); biggest / smallest only for size (S39 0) | clean |
| Grade-level words questioned (S36) | 5 words, each answered below |
Misconception rows (the catalogue is silent on rocks; the register's SD-3 rows and the brief's three beliefs, with the literature named)
| Belief | Source | Where the lesson confronts it | Items |
|---|---|---|---|
| All the layers in a cliff formed at the same time | EAR4 register SD-3 (pre-existing); Ault 1982, Time in geological explanations as perceived by elementary-school students; Trend 1998 on children's deep time | L01's landing strip and "one layer must finish before the next lands on it"; L04's "each layer shows the place at a different time" | L01 q7 (No); L04 q11 (No); PP-21, PP-23; the fourth option "formed at the same time" on PP-1, PP-2, PP-3, PP-40 |
| The top layer is the oldest because it is the one you see first | the coordinator's brief; Dodick & Orion 2003 (students order strata by salience) | L01's Julia paragraph: "No, Julia is not right, because the top stripe landed last" | L01 q8 (No); L02 q9 (Karl numbers from the top — No); L04 q10 (Julia reads from the top — No); PP-27, PP-33, PP-49 |
| Layers form in days | the coordinator's brief; Ault 1982 | L01: "One layer takes a very, very long time to form: hundreds or even thousands of years." | L01 q9 (Yes, the true form); PP-8; PP-23 |
| Old fossils are deep because heavy things sink down through rock | EAR4 register SD-3 (pre-existing) | L03's section "A heavy shell does not sink through rock" and the no-sinking card | L03 q6 (No); PR-10 (No); PP-29, PP-44; the "sank" distractors on PP-20 |
| A fossil is the fresh bones of an animal that died recently | EAR3 register (Grade 3 Topic 27's row), recalled here | L03's recall line and "the layers above … took a very, very long time" | L03 q8 (No); PP-17's "a few years old" distractor |
| Thickness tells age (a thicker layer is older) | Dodick & Orion 2003 (students read thickness as duration or age) | not taught — avoided by wording (every lesson diagram draws equal bands) and tested once | PP-22 |
Checker: 0 FAIL, 8 WARN (python3 build_tools_check_topic.py grade4/topic21_build/content/G4T21.py)
Three S13 WARNs and five S36 WARNs. Answered one by one:
| WARN | Answer |
|---|---|
| S13 L03 q3, q4, q9: the stem contains the key text ("the fish fossil", "the footprint", "the tooth") | kept — the item asks which of the TWO named fossils is older, so both options must be named in the stem; the stem names both, and the drawing or the layer numbers decide, not the wording |
| S36 'stripe' ×27 | kept — the everyday word for what a child sees on the rock face; "layer" is used beside it from L01's "What a stripe is" on |
| S36 'fern' ×23, 'ferns' ×7 | kept — Grade 3 Topic 27's fossil (the fern leaf print) and the course's one drawing of it; introduced as "a fern print" and "ferns grow in damp, shady forests" before it is read |
| S36 'geologist' ×7 | kept — defined in Topic 17 ("A geologist is a scientist who studies rocks."), the Earth and Space topics' working word; each use is a geologist doing the routine |
| S36 'quarry' ×2 | kept — PP-1 and PP-34's scene; a US child knows a quarry; swapped to "stone pit" if James prefers |
python3 grade4/check_g4_articles.py grade4/topic21_build/content/G4T21.py → 0 FAIL (articles 344 / 256 / 281 / 349 with the two WARNs answered above; scripts 150 / 149 / 150 / 150; intro 104; summary 150, opener ok).
Names run (python3 build_tools_names.py Ruiz Jordan Julia Karl → exit 0, all four free)
Miss Ruiz; Jordan, Julia, Karl — the Topic 21 row of grade4/NAMES_POOL.md. No other name appears in a student string ("dad" in the intro is unnamed).
Bank freshness (re-performed; the scene-noun grep)
Scene nouns of every lesson, quiz, attached and summary item: road cut, highway, Texas, the four stripes, notebook, Julia's drawing, the jar, the sea floor and the river, the Grand Canyon and Jordan's dad (intro), the river-cut hillside near the school, the shell and the leaf at the road cut, a canyon wall in Arizona (L01 q10), a stream and a pond (L01 q2), a geologist digging through five layers (L03 q9), a dry hill (L04 q1). Grep of the bank's stems and options (comments excluded): road cut 0 · highway 0 · Texas 0 · notebook 0 · jar 0 · canyon 0 · dad 0 · school 0 · river 0 · hillside 0 · stream 0 · pond 0 · hill 0 (the Georgia item says "a hill behind a new store" — its scene is the cut, not a hill; kept). Re-scened on the first pass: "a hill behind a school in Georgia" → "behind a new store" (the school is L04's scene); "a hillside in Utah" → "a mountainside"; "a stream bank in Missouri" → "a cut beside a railroad"; L01 q1's "bottom of a lake" → "the sea floor" and L01 q10's "quarry wall in Indiana" → "canyon wall in Arizona" so that lake and quarry are bank-only. The fossil kinds (shell, fish, fern, leaf, footprint, bone, roots) and the three readings (sea, shore, forest) are the topic's drawing register, not scenes, and appear on both sides by design. Bank scenes: a quarry in Indiana, a sea cliff in California, a swimming-pool hole in Florida, a lakeside cliff in Michigan, a mine wall in Colorado, a cut behind a new store in Georgia, a railroad cut in Missouri, a cave wall in Kentucky, an island cliff in Maine, a ditch in Kansas, a mountainside in Utah, cliffs in Alabama and Nevada, a lake floor in a flood, two cliffs side by side.
Blind bundle
grade4/topic21_build/blind/2026-10-02/BLIND_BUNDLE_G4T21.md (102 MCQ, 4 typed (3 numeric), 1 written, 4 reorder; keys sequestered in KEYS_SEQUESTERED_G4T21.json). Every [Drawing: …] line is data ("cliff with 4 flat layers, top to bottom: J tan sand; K cream shell rock; L gray mud; M red-brown sand"); grep for oldest / youngest / older / younger / first / last / order → 0.
Video batch (built, checked, NOT sent)
python3 build_tools_video_batch.py grade4/topic21_build/content/G4T21.py → handoff/G4T21/videos/batch_G4T21.json (6 videos: intro 104 words, L01–L04 146 / 145 / 146 / 146, summary 146) and READY.md; check_brief.py: L01–L04 and the summary ✓, the intro's one standing hit (no closing bullets — an intro has no rule slide). grep -ci strand → 0. Nothing has been sent; James's word is needed for a Grade 4 batch.
Sentence-atomise self-check (one row per lesson; every paragraph read; S1 / S38 clean)
| Lesson | Ideas counted | Fixes applied |
|---|---|---|
| L01 | 19 idea lines, one idea each; longest 22 words | "A river reaches the sea and slows down, so it drops its sand and mud in one flat layer on the sea floor." (23) → "…drops its sand and mud there in one flat layer." (21); "And the stripes did not all form at the same time, because one layer must finish…" (23) → colon form with the verb before the colon (20); "In the jar, the first pieces to settle sit at the bottom…" cut as a restatement of the caption; the scope paragraph cut to one line |
| L02 | 14 idea lines; longest 21 words | "Then 3, then 4, each one landing on the layer before it." (no finite verb) → "Julia writes 3 on the next layer up, and 4 on the layer above that."; the three-layer case line trimmed from 23 to 20 words |
| L03 | 16 idea lines; longest 22 words | "The bottom layer is cream rock full of sea shells. Above it is tan sand." split into two lines (L04 likewise); "No, Jordan is not right…" opens on the verdict |
| L04 | 20 idea lines; longest 22 words | "This story runs the other way: the place was a forest, then a shore, and then the sea came in and covered it." (23) → "…: forest, then shore, then the sea came in and covered the place." (18); "The place changed from sea, to shore, to forest, over a very, very long time." cut as a restatement; the second cliff's sand line cut (the table shows it) |
| Scripts | every beat one or two sentences (S8 0) | four three- or four-sentence beats split or merged in L01, L03 and L04; the Grade 3 fossil sentence left to the article in L03 for the word budget (the quiz's recall item carries it) |
| fb / why | ≤ 30 / ≤ 60 words (S5 0); one causal link per <br> line | claim items' two fb differ (confirming fact / correction) |
Figures (63; author's review-figures self-check on sixteen renders, a non-author's pass owed)
Rendered with headless Chrome at 1000 px and opened: cliff_numbered, cliff_five_headache, cliff_five_numbered, cliff_five_step1, cliff_story_headache, landing_strip, burial_strip, no_sinking_card, story_table_filled, story_table_two, q_cliff_fossils_a, q_cliff_five_b, q_cliff_story_b, pp_cliff_8, pp_cliff_14, pp_cliff_16, plus jar_recall, deposition_recall and class_roadcut_cartoon (placeholder). Fixed on the render: the burial strip's chip words overflowed their panels (shortened to ON THE SEA FLOOR · PIECES SETTLE · BURIED IN ITS LAYER · MORE LAYERS, number chips moved clear) and its sea floor was the same cream as the shell's layer (now tan under cream, so the shell's own layer stands out); the root icon read as an upward arrow (now a stem from the band's top forking into three tapering roots). Every band is the same width and never tilted; number chips sit 1 at the bottom; item cliffs carry letters J–P and no chips; the table drawer's guard asserts every cell fits its column. Photo and cartoon placeholders render as the pale box with grey text; IMAGE_BRIEFS carry the 10 picture briefs (David's pack, after James's sign-off on the questions above).
Judgement calls, recorded
- No term coined. Question for James above.
- One number for deep time ("hundreds or even thousands of years" for one layer), the simplification named here: a flood or a landslide can lay a layer in a day; most layers take far longer; the child needs one honest order of size against "a few days". Question for James above.
- The sea "moves away" and "comes in", never "pulls back" (the atom's own example wording), because a young reader takes "pulled back" literally.
- Grade 3's fossil sentence is spoken in L03's article but not its script, for the 150-word budget; the recall item carries it after either.
- L02's rule is two sentences and L04's is two sentences; the lexicon lists eight sentences, two per lesson, and the summary speaks all eight (150 words).
- The typed "sea" item was re-authored when S30 refused "sea" as an open key: it became the Alabama / Nevada comparison (PP-51), hard because two stories are compared.
- Roots as a fossil kind. Tree roots in a soil band stand for a buried forest floor (the atom's own example: "forest-soil layers"); they are drawn from the band's top edge downward so they read as roots, not an arrow.
- L04's second scene is a river-cut hillside near the school, not the road cut, because the road cut's stripes (shells, mud, sand, red sand, soil) do not tell a sea → shore → forest story without inventing fossils in them.
- Written to the topic folder and the tools' own output paths only: the page to
/tmp/g4t21.html, the figures to/tmp/g4t21_figs/, the batch tohandoff/G4T21/videos/(the tool's path; NOT sent), the bundle tograde4/topic21_build/blind/2026-10-02/. Nothing committed.
Owed
- A non-author review-figures pass and review-questions pass; the blind read of the bundle (keys unverified until a cold reader agrees).
- The picture pass (10 placeholders) after James answers the questions above.
- James's word before the batch is sent (Grade 4's batch rule).
- Topic 20's content is not yet written (only its figures.py exists); the deposition sentence recalled here is Topic 20's
rule_depositioncard word for word — if Topic 20's lexicon changes, L01 q2's fb / why andRECALL_DEPfollow it. - The S36 additions list: if James accepts "stripe", "fern", "geologist" and "quarry", they go to
reference/grade3_word_additions.txt(not written here — outside this topic's folder).
v2 — reviews applied (2 October 2026)
Skill: course-build → write-lesson (article lines), write-video-script (the intro beat), write-mcqs (every item change), write-explanation (fb / why), sentence-atomise (every new sentence), review-figures (the non-author review applied) @ efd8fba
In plain words. Every key held; the drawings did not. cliff() stacks its layers bottom → top, and ten item drawers had been handed their letters top → bottom, so a stem said "fish in J" and the picture put leaf prints in J. The fix is not ten flipped lists but one list per lettered item: figures.ITEM_CLIFFS holds each item cliff once, top → bottom, as (letter, colour, fossil) triples, and words() hands that same entry to the stem, the options, the key (derived: the bottom letter's option index, the bottom-up order, the lower fossil), the fb, the why and the drawing. A guard (check_lettered_items.py) parses every stem, option, fb and why for letter claims and checks them against the figure data: 34 lettered items, 34 match. Around it: the road cut is now one cliff across L01–L03; the typed "layer" item is cut; two summary questions, L04 q9 and eleven bank items have fresh scenes or cleaner options; the FORMED FIRST / LAST chips sit inside their frames; the no-sinking card has a layer under the shell; the landing strip's forming layers show their pieces settling; the intro unpacks "tell the time". Nothing is sent; nothing is committed.
The direction convention. cliff(layers, letters) reads BOTH lists BOTTOM → TOP (layers[0] is the ground band). ITEM_CLIFFS entries are written TOP → BOTTOM, as the eye reads a cliff and as the blind text lists it. item_cliff() is the one place that reverses. An order item's items key is stored FIRST → LAST (bottom → top), the direction every reorder stem asks; both bank reorders (PP-24, PP-25) and the two lesson-side ones (L02 q5, PR-5) ask first to last.
Finding → change
| Source | Finding | Change |
|---|---|---|
| Guidance review, blind read (correction), figure review 1 | ten item cliffs lettered upside down (q_cliff_five_b, q_cliff_fossils_b, q_cliff_story_a/b/c, pp_cliff_4/5/7/9/10) | ITEM_CLIFFS + words() + item_cliff(); every lettered stem / option / fb / why built from the entry; keys derived; check_lettered_items.py guard; keys unchanged (89 of 89 unchanged key texts match v1's sequestered keys; the 14 differences are the rewrites listed below) |
| Figure review 2 | the road cut was three cliffs (L01 / L02 / L03) | FIVE = ROADCUT + soil; FOSSILS = ROADCUT with the leaf prints in the top red-brown band; L03's headache and article say "red-brown stripe at the top"; karl_fossils_cartoon brief says red-brown, cream rock, fan shell; alts follow |
| Figure review 3 | FORMED FIRST / LAST chips clipped | cliff() sizes its right margin from chip_w("FORMED FIRST") and widens to 420 when word_chips; opened on the render |
| Figure review 4 | no_sinking_card drew the state the belief predicts | gray / cream-with-shell / tan, top to bottom |
| Figure review, unplaced | cliff_plain, landing_strip_headache, deposition_recall, story_table_headache, fern_fossil_photo, fish_fossil_photo, shells_slab_photo | deleted (also jar_recall, unplaced once L01's jar step went); 63 → 55 figures; the Topic 20 guarded import went with deposition_recall |
| Figure review, minor | pr_cliff_1 = pp_cliff_3 relettered; alphabetical top → bottom lettering a shortcut; hairline between same-colour bands; empty frame width; root glyph low-contrast; "thin dark stripe" vs a full band | pr_cliff_1 new colours (red / cream / tan / gray); lettering shuffled on 15 of 28 item cliffs; a 2.4 px dark rule parts touching same-colour bands (pp_cliff_8, q_cliff_story_c, pp_cliff_16); x0 30 when numbers are off; roots drawn in a pale tan (ROOT_TONE); "thin" cut from L02's headache, article and script. Not taken: Topic 18's brown-mud bridging word (the jar figure is gone) |
| Guidance review | PP-45 typed "layer" | cut; bank 50; EAR4-037 keeps 11 |
| Guidance review | Summary Q3 = L04 q6; Summary Q2 = L03's headache | Q3: tree roots below fish fossils, "Water covered a forest."; Q2: a bone below a fern print, "the bone"; key string unchanged C C A B A B A |
| Guidance review | L01 jar_recall is the picture of "all at once" | step deleted |
| Guidance review | landing strip panels 2–3 show finished sheets | _sea_panel(settling=True) draws the forming layer's pieces settling through the water on LATER and LATER STILL |
| Guidance review | "tell the time" never unpacked | intro beat 4: "Rock layers can't tell you the time of day. But they can tell you which came first, and which came later." (also the blurb); the map line names three things so the intro stays at 114 words |
| Guidance review | L01 scope line dangles | "Long after layers form, some get tipped or bent." before it |
| Guidance review | PP-8 key three times the length; PP-23 key alone two clauses; PP-50 "Fish walked"; PP-19 stem says "damp, shady" | PP-8 four two-or-three-word spans ("thousands of years" keyed); PP-23 key "Each layer took a very, very long time to form."; PP-49 (was 50) option B "The place stayed under the sea the whole time."; PP-19 stem "A layer of rock holds fern prints.", key "a damp forest" |
| Guidance review | L04 q9 is q8's key as a claim | Jordan's TRUE claim on a fresh cliff: ferns below fish, "ferns grew here before fish swam here" — Yes |
| Guidance review, blind read | PP-25 asked last → first against the widget's helper line | first → last; key L, N, J; ⟂ PP-24 kept |
| Guidance review | PP-14 "Look again at the cut…" | self-contained: "The cut behind a new store in Georgia shows layers…" |
| Guidance review | L03 q6 and PR-10 fb pairs identical | yes-fb "The fossil was buried first, and the layers above landed later. It did not sink." (PR-10: the bone, the three layers); no-fb "Rock is solid, so nothing sinks down through it." |
| Guidance review | PP-27 option C arguable | "Her top layer formed first." |
| Blind read | PP-07, 12, 13, 30, 39 lesson checks with a fourth option; PP-32 L04's cliff inverted; PP-10's railroad cut near the road cut | PP-7 a lake floor with four layers and pebbles after a storm; PP-12 the layer right under the top of nine (8); PP-13 the youngest of five numbered layers (layer 5); PP-30 which pieces buried a leaf print (its own layer's); PP-39 which layer tells the LAST part (the top); PP-32 a fresh cliff (K bone over P over J footprint; the bone is younger); PP-10 a rock wall above a parking lot in Missouri |
| Blind read | PP-28 D and L04 q7 options spottable by length | PP-28 "the middle layer of each cliff"; L04 q7 "An animal walked here first, and then the sea came in." / "The sea was here a long time, and then an animal walked here." |
| Blind read | igneous / metamorphic / geologist recall lines | confirmed word for word against Topic 18 ("Igneous rock forms when melted rock cools and hardens."), Topic 19 ("Metamorphic rock forms when heat and squeezing … change a rock … without melting it.") and Topic 17 ("A geologist is a scientist who studies rocks."); no change |
| Blind read | PP-45 accept "stripe" | moot — the item is cut |
Questions for James — built as recommended
- Term-free — yes: strata and superposition are grades 6–8's; the one typed word item (Topic 18's "layer") is cut.
- "Hundreds or even thousands of years" for one layer — kept, said once in L01 and tested once (L01 q9, Yes; PP-8's options now one span each).
- L01 and L04 whole — yes: a subtitle or figure every ≤ 3 idea lines; L01 is 351 article words (the scope line grew it by one sentence; the jar was a figure, not words), L04 349 — both WARNs answered here as before.
Counts and key strings (v2)
4 lessons · scripts 150 / 148 / 150 / 150 (batch tool 146 / 145 / 146 / 146) · intro 114 words, 1 question mark · summary 150 · articles 351 / 255 / 281 / 349 (idea lines 20 / 14 / 16 / 20; figures 5 / 6 / 7 / 7) · quizzes 10 / 10 / 10 / 11 · attached questions C C A B A B A (A 3 of 7) · practice 12 · bank 50: 46 four-option MCQs, 2 reorder, 2 typed numbers; EAR4-035 13 (8 / 4 / 1) · EAR4-036 13 (6 / 5 / 2) · EAR4-037 11 (3 / 6 / 2) · EAR4-038 13 (2 / 5 / 6); MCQ keys A 9 · B 14 · C 12 · D 11; reorder keys N J P K and L N J; typed 4, 2 · figures 55 (48 SVG, 3 photo, 4 cartoon).
Quiz key strings — L01 3-option 1 1 2 0 0 0, 4-option 0, 2-option 1 1 0 · L02 2-option 0 1, 4-option 3 2 0, 3-option 1 2 0 0 · L03 3-option 0 2 1, 2-option 0 0 1 1 0 1 1 · L04 3-option 0 1 1 0 2 1 2, 2-option 0 0 1 1 · practice 3-option 1 2 2 1 0 2 1, 2-option 0 1. Unchanged from v1 throughout.
Checker results
build_tools_check_topic.py→ 0 FAIL, 8 WARN (the same three S13 lines — both named fossils must be in the stem — and five S36 words, answered in v1).grade4/check_g4_articles.py→ 0 FAIL (L01 351 and L04 349 WARN, answered above).build_tools_names.py Ruiz Jordan Julia Karl→ exit 0, all free.check_svg_ids.py content/figures.py→ PASS (55 figures, 0 ids, 0 shared).build_tools_build_topic_site.py→/tmp/g4t21_v2.html; screenshotted at 900 px and read: L01–L04 article routes, L02 and L04 quiz routes, the PP100 route (/tmp/g4t21_v2_*.png). Every item cliff's letters sit beside the bands the stem names; the road cut's leaf prints are in the top red-brown band on L03; the no-sinking card has tan under the cream.- Every figure rendered (
python3 content/figures.py /tmp/g4t21_figs_v2), laid out as two contact sheets (/tmp/g4t21_items_v2.png,/tmp/g4t21_teach_v2.png) and read band by band against the stems: all 28 item cliffs agree; the chips are inside their frames on the three numbered cliffs; LATER and LATER STILL show settling dots. check_lettered_items.py content/G4T21.py→SUMMARY: 34 lettered items checked, 34 match their drawing, 0 mismatch(it prints each stem's letter → contents pairs beside the blind text's).build_tools_video_batch.py→ 6 videos;check_brief.py→ L01–L04 and the summary ✓, the intro's one standing hit (no closing bullets);grep -ci strand→ 0. Not sent.- Blind bundle
blind/2026-10-02-v2/(102 MCQ, 3 numeric, 1 FRQ, 4 order; 110 items); its 34[Drawing:lines grepped for oldest | youngest | older | younger | first | last | order → 0. The four order keys stored bottom → top: L02-05 M K P L N · PR-05 K N J M · PP-24 N J P K · PP-25 L N J. - v1 → v2 key comparison (key text by item id, PP-46..51 → 45..50): 89 unchanged; 14 changed, all deliberate (L04-07 options trimmed; PP-7, 8, 12, 13, 19, 23, 25, 30, 32, 39 rewrites; PR-7, PP-26, PP-41 numeric, same values).
Items whose stem, options, key, model, figure, blind text or accept list changed
- Lessons: L01 q3, q4 (stems from the list; same letters) · L02 q2, q3, q4, q5, q6 (from the list; q5's figure and blind text righted) · L03 q3, q4 (from the list; q4's figure and blind text righted), q6 (fb pair) · L04 q2, q3, q4, q5, q6, q7 (from the list; figures and blind texts righted; q7 options trimmed), q9 (new claim and scene).
- Attached: Summary Q2, Q3 (new scenes).
- Practice: PR-5 (from the list;
pr_cliff_1new colours, blind text changed), PR-10 (fb pair), PR-11 (from the list). - Bank: PP-1, 2, 9, 14, 15, 16, 24, 26, 31, 35, 36, 41, 45 (was 46), 47 (was 48) built from the list (figures
pp_cliff_1/2/3/4/5/6/9/10/12/14/15/8/16— letter order shuffled on 1, 2 and 7; the inverted ones righted); PP-7, 8, 10, 12, 13, 19, 23, 25, 27, 28, 30, 32, 39 rewritten as above; PP-49 (was 50) option B; PP-45 (v1) cut, so v1's PP-46..51 are PP-45..50. - Figures: every
ITEM_CLIFFSkey (28);cliff_five_headache,cliff_five_numbered,cliff_five_step1,cliff_fossils_headache,cliff_fossils_numbered(the one road cut);cliff_numbered,cliff_three_numbered(chips);no_sinking_card;landing_strip;karl_fossils_cartoon,julia_drawing_cartoon,roadcut_photo(briefs); eight keys deleted.
Sentence-atomise, the new sentences (one row each)
| Where | Sentence(s) | Ideas | Check |
|---|---|---|---|
| Intro beat 4 / blurb | "Rock layers can't tell you the time of day." / "But they can tell you which came first, and which came later." | 2, one each | named actor (rock layers), contrast opens with But, second everyday reading of the title closed |
| L01 scope | "Long after layers form, some get tipped or bent." | 1 | cause (long after) before effect; "some" has its noun in the sentence (layers) |
| L03 q6 / PR-10 fb | "The fossil was buried first, and the layers above landed later. It did not sink." / "Rock is solid, so nothing sinks down through it." | 2 + 1 | cause before effect; "It" has its noun in the sentence before; the key's fb confirms, the wrong verdict's corrects |
| L04 q9 | "Jordan says ferns grew here before fish swam here." | 1 | two named actors, one verb each, the order stated |
| L04 q7 options | "The sea was here a long time, and then an animal walked here." | 1 story in two steps | parallel in shape with the distractor "An animal walked here first, and then the sea came in." |
| PP-7 | "Four flat layers already lie on the floor of a lake, and a storm washes in pebbles that settle." | 2 (scene + event) | one scene sentence, then the ask; two sentences in all (S23) |
| PP-12, 13, 30, 39 | one-sentence scenes | 1 each | subject and verb; the ask names what the options are (a number; a layer; the pieces; a layer) |
| PP-23 key | "Each layer took a very, very long time to form." | 1 | one clause like its three distractors |
| Summary Q2, Q3 | "A bone sits in a deep layer of a cliff, and a fern print sits in a layer above it." / "A cliff holds tree roots in its bottom layer and fish fossils in its top layer." | 2 / 2 | parallel frames; "it" has its noun (the bone's layer) in the sentence |
Judgement calls, v2
- Lettering shuffled on about half the item cliffs, not all — the first drawn items of L01 and L02 keep alphabetical order top → bottom (a nine-year-old's first lettered cliffs read easiest that way); the bank's and L03 / L04's are shuffled so "bottom = last letter" earns nothing.
- L01 grew by one sentence (351 words) for the scope line's contrast; the reviewer's "cutting the jar shortens L01" was a figure, so the article did not shrink. Kept whole, as recommended.
- PP-32's new cliff puts a bone (tan sand) above a footprint (red-brown sand) with gray mud between — a dry-land story throughout, so the item tests the age read alone, not a reading of the place.
- Topic 18's jar and the deposition card are no longer drawn here: L01 recalls both by sentence and item only (the figure review found both figures unplaced or misleading).
Owed
- A second non-author figure pass on the v2 renders is the coordinator's call (the v1 figure review's rows are all applied above).
- The blind read of
blind/2026-10-02-v2/(keys unverified until two cold readers agree; the thirteen righted items first). - The picture pass (7 placeholders) after James's sign-off; James's word before the batch is sent.
v3 — polish (2 October 2026, after the v2 re-read)
Skill: course-build → write-mcqs (L04 q5, PR-2, L01 q3), write-explanation (the new fb and why lines), write-lesson (two L03 article lines), sentence-atomise (every new sentence) @ efd8fba
In plain words. The v2 re-read agreed every key (110 of 110) and left four soft flags. All four are applied. L04's story item has its own cliff, so its options no longer spell out the two items before it. The glacier in PR-2 is recalled in one line, in Topic 20's words. L03's article now says, at the burial strip, exactly what its quiz item and the bank's PP-30 rest on: the shell was buried when its own layer's pieces settled on it. L01 q3's cliff is cream, gray and red-brown, not the road cut's top three bands in the road cut's order. Every lettered item is still built from figures.ITEM_CLIFFS; the guard reads 34 of 34. Nothing is sent; nothing is committed.
Finding → change
| Flag (Reader C, v2 re-read) | Change |
|---|---|
| L04-05's option A spells out L04-02 and L04-03's answers on the same quiz page | its own entry q_cliff_story_d (K red-brown sand with a footprint; N dark brown soil with tree roots; J cream shell rock with sea shells, top to bottom): sea, then forest, then land where an animal walked. Stem, options, fb and why built from the entry; key position 2 unchanged, so the L04 three-option key string holds (0 1 1 0 2 1 2). The scaffold chain q2 → q3 → q4 stays on q_cliff_story_a; q5 is the scaffold's last step on a fresh cliff |
| PR-02 "glacier" is Topic 20's word | stem "A glacier, a river of ice, carries stones down a valley and melts at the bottom. What happens to the stones?"; the why opens with Topic 20 L04's coin line word for word, "A river of ice that slides downhill very slowly is called a glacier."; options and key unchanged |
| PP-30 option A tempts; confirm L03-02's sentence is on the lesson page | it was close ("The shell was buried when its layer formed, so…"). Now two idea lines under the burial strip: "The shell was buried when its own layer's pieces settled on it." / "So the shell fossil is about as old as its layer." L03 article 281 → 286 words; PP-30 unchanged |
| L01-03's colour run is three of the road cut's four bands | q_cliff_jkl is now cream / gray / red-brown (top to bottom); letters and key unchanged (L is the bottom layer) |
| the bundle prints an item numbered PP-45 after the cut | the renumbered item (v1's PP-46); no change |
Items whose stem, options, fb, why, figure or blind text changed
- L01 q3 (figure and blind text only; key unchanged) · L04 q5 (new cliff, stem, options, fb, why; key position unchanged) · PR-2 (stem and why; options and key unchanged) · L03 article (two idea lines at the burial strip).
- v2 → v3 key comparison on the sequestered keys: 109 unchanged, 1 changed (L04-05's key text, the new story). The type sheet's exemplars are untouched;
TYPES_G4T21.mdis unchanged.
Sentence-atomise, the new sentences
| Where | Sentence(s) | Ideas | Check |
|---|---|---|---|
| L04 q5 stem | "Sea shells sit in layer J, tree roots sit in layer N, and a footprint pressed in sand sits in layer K." | 3 facts, one list | each fact names its thing and its layer; the guard parses all three |
| L04 q5 key / distractor | "First it was under the sea, then a forest grew here, then an animal walked here." / "First an animal walked here, then a forest grew here, then it was under the sea." | 1 story in three steps each | the same three steps, the distractor read from the top |
| L04 q5 fb | "Layer J holds sea shells, layer N holds tree roots, and layer K holds a footprint, so the story is sea, then forest, then land." | 3 readings, one conclusion | 24 words; "so" carries the cause |
| L03 article | "The shell was buried when its own layer's pieces settled on it." / "So the shell fossil is about as old as its layer." | 1 + 1 | cause (the pieces settled) before effect (buried); the second opens on "So" |
| PR-2 stem and why | "A glacier, a river of ice, carries stones down a valley and melts at the bottom." / "A river of ice that slides downhill very slowly is called a glacier." | 1 scene with the recall as an aside / Topic 20's coin line | two sentences in the stem (S23 clean); the why's first line is the recall |
Checker results (v3)
build_tools_check_topic.py→ 0 FAIL, 8 WARN (the same three S13 lines and five S36 words, answered in v1).grade4/check_g4_articles.py→ 0 FAIL (L01 353 and L04 349 WARN, answered in v1 and v2).check_svg_ids.py content/figures.py→ PASS (56 figures, 0 ids, 0 shared).check_lettered_items.py→SUMMARY: 34 lettered items checked, 34 match their drawing, 0 mismatch.build_tools_build_topic_site.py→/tmp/g4t21_v3.html(4 lessons, 12 practice, 50 bank items, 56 figures).q_cliff_jklandq_cliff_story_drendered with headless Chrome and opened: the letters sit beside their bands; the footprint is in the top band, the roots in the soil, the shells at the bottom.- Blind bundle
blind/2026-10-02-v3/(102 MCQ, 3 numeric, 1 FRQ, 4 order; 110 items). Its[Drawing:lines are colour and contents only.
Owed
- A cold re-read of L04-05 and PR-2 (the two items whose text changed) before the keys are called verified for v3; the other 108 stand on the v2 re-read.
- The picture pass (7 placeholders) after James's sign-off; the video batch on his review of the scripts.
The guidance, questions and accuracy review
Skill: course-build → review-lesson (Roles B, B2) → review-questions → review-accuracy (non-author pass; filed by the coordinator from the reviewer's hand-back) @ 3a2c39d
Topic 21 — guidance, questions and accuracy review, 2 October 2026
The teaching is right and the writing is clean, but the topic cannot ship as it stands, because ten item drawings letter their bands upside down. cliff() reads its letters list bottom → top; on ten figures the author wrote the letters top → bottom. The rendered drawing and the blind text agree with each other and disagree with the stems: four keys look wrong by the drawing (L02 q5 reorder; L04 q4; PP-32; PP-36) and nine more items name fossils in letters the drawing puts elsewhere (L03 q4; L04 q2, q3, q5, q6, q7; PP-15, PP-16, PP-35). The fix is one line per drawer — reverse those ten letters lists (pp_cliff_7 also its layer list) — and every stem and key then stands. The science is honest at Grade 4 depth; the quotes from Topic 18, Topic 20 and Grade 3 match word for word. Re-performed: scripts 150 / 149 / 150 / 150; intro 104; summary 150; articles 341 / 255 / 280 / 348 with a subtitle or figure every ≤3 idea lines; bank 51 → 13 / 13 / 12 / 13, keys A 9 B 13 C 13 D 11; blind lines colour and contents only; names clean.
The author's three questions, the reviewer's view: (1) stay term-free — yes (strata and superposition are grades 6–8's; cut PP-45, the one typed word item, which tests Topic 18's word); (2) keep "hundreds or even thousands of years" for one layer — yes (one honest order of size against "days"; fix PP-8's length tell); (3) keep L01 and L04 whole — yes (a figure or subtitle every three lines; cutting the jar shortens L01 at no cost).
| where | finding | rule broken | severity | the rewrite |
|---|---|---|---|---|
| figures.py, ten drawers | letters bottom → top in the drawer, top → bottom in the calls | figures tell the truth about what a label points at | Essential | reverse letters on q_cliff_five_b, q_cliff_fossils_b, q_cliff_story_a/b/c, pp_cliff_4/5/7/9/10; pp_cliff_7 also PP7 = [fish, tan, leaf]; keys unchanged; state the drawer's direction convention in the record |
| PP-45 (typed "layer") | accepts "band" and "stripe" (the stem's own words), rejects "sedimentary rock" (true); tests Topic 18's word | every correct answer accepted; the atom tested | Essential | cut (bank 50; EAR4-037 keeps 11) |
| Summary Q3; Summary Q2 | = L04 q6 word for word; L03's own headache | fresh instance | Essential | "A cliff holds tree roots in its bottom layer and fish fossils in its top layer. How did this place change?" (water covered a forest); "A bone sits in a deep layer of a cliff, and a fern print sits in a layer above it. Which fossil is older?" (the bone) |
L01 jar_recall | Topic 18's one-pour jar is the picture of "all at once" and "heavy sinks" | confront the misconception; headache figure rule | Worth fixing | delete the step |
| landing strip panels 2–3 | layers appear as finished sheets | figures tell the truth about shape | Worth fixing | settling dots above the forming band |
| intro beat 4 | "tell the time" never unpacked | second everyday reading | Worth fixing | "Rock layers can't tell you the time of day. But they can tell you which came first, and which came later." |
| L01 scope line | "This rule is for layers that still lie flat" dangles | name the simplification | Worth fixing | "Long after layers form, some get tipped or bent. This rule is for layers that still lie flat, the way they landed." |
| PP-8; PP-23; PP-50; PP-19 | key three times the length; key alone two clauses; "Fish walked"; stem hands over "damp, shady" | key tells; real distractors; stem never names its answer | Worth fixing | as the reviewer wrote |
| L04 q9 | q8's key is q9's claim | no give-away | Worth fixing | Jordan's TRUE claim on a fresh cliff (ferns below fish) |
| PP-25 | last → first against the widget's "Tap the first one first." | complete task | Worth fixing | first to last; key L, N, J; ⟂ PP-24 |
| PP-14 | "Look again at the cut…" leans on PP-9 | checks independent | Worth fixing | the Georgia store cut, self-contained |
| L03 q6, PR-10 fb | both fb identical | claim pair fb differ | Worth fixing | yes-fb "The fossil was buried first, and the layers above landed later. It did not sink."; no-fb "Rock is solid, so nothing sinks down through it." |
| PP-27 option C | "in time order" arguable | one true option | Worth fixing | "Her top layer formed first." |
| sand = shore (hedged "like the sand of a beach"); L03 q9 / PP-43 share a move with a different count | — | — | Leave | — |
The figure review
Skill: course-build → review-figures (non-author pass; filed by the coordinator from the reviewer's hand-back) @ 3a2c39d — figures at g3-5-science commit 093047d
Topic 21 — figure review, 2 October 2026
The cliffs are clean, flat and in the stated order; shells, ferns, leaves, fish, footprint and bone read at a glance; the landing strip plainly shows each new layer landing on top. Then, on the L04 quiz, the stem says "Layer J holds fish fossils" and J in the picture holds leaves. Page pass: every figure renders on the built page as alone; check_svg_ids.py PASS. Verdict PASS once items 1–4 land.
- Ten item cliffs are lettered upside down (
cliff()readslettersbottom → top; these were written top → bottom):q_cliff_five_b,q_cliff_fossils_b,q_cliff_story_a/b/c,pp_cliff_4/5/7/9/10. Fix: one list feeds stem and figure (the brief's rule); add a guard that parses every "in layer X / Layer X holds" and bottom / top claim in stems, why and fb against the figure data. - The road cut is three different cliffs. L01
ROADCUTtop → bottom red-brown, tan, gray, cream; L02FIVE("the same face") swaps gray and cream and adds a footprint; L03FOSSILSputs gray with leaves on top while the text says "the gray stripe at the top" (L01 said red-brown). Fix:FIVE = ROADCUT + soil;FOSSILS = ROADCUTwith the leaf in the top red-brown band; L03's line andkarl_fossils_cartoon's brief say red-brown (one depiction per thing). - FORMED FIRST / FORMED LAST chips clip at the frame edge on
cliff_numbered,cliff_five_numbered,cliff_three_numbered. Widen to ~430 or move the chips left. no_sinking_cardshows the state the misconception predicts (shell in the bottom band, nothing beneath). Tan floor, cream-with-shell, gray on top, so "stays in its layer" has a layer below it.
Unplaced (7): cliff_plain, landing_strip_headache, deposition_recall, story_table_headache, fern_fossil_photo, fish_fossil_photo, shells_slab_photo — delete all. cliff_headache and canyon_photo are video stills (keep).
Minor: pr_cliff_1 is pp_cliff_3 relettered (new colours); lettering runs alphabetically top → bottom on most fossil items ("bottom = last letter" is a learnable shortcut — shuffle a share); item frames ~33 % empty (tighten x0 when numbers are off); L02 "a thin dark stripe of soil" vs a full-thickness band; Topic 18's brown mud beside this topic's gray mud (a bridging caption word); adjacent same-colour bands on pp_cliff_8, q_cliff_story_c, pp_cliff_16 rely on a hairline; root glyph low-contrast; karl_fossils_cartoon brief colour and shell shape.
| key | kind | used by | verdict | what is wrong | the fix |
|---|---|---|---|---|---|
| cliff_headache, landing_strip, jar_recall, rule_deeper, q_cliff_jkl, q_cliff_mnp, rule_order, q_cliff_four_a, q_cliff_three_c, burial_strip, rule_fossil_age, q_cliff_fossils_a, cliff_story_headache, cliff_story_numbered, story_table_filled, cliff_story_two, story_table_two, rule_story, pr_cliff_2 | svg | L01–L04 | PASS | — | — |
| cliff_numbered, cliff_five_numbered, cliff_three_numbered | svg | L01 / L02, summary | FAIL | chips clipped (and FIVE's order) | widen; (2) |
| cliff_five_headache, cliff_five_step1 | svg | L02 | FAIL | not the road cut | FIVE = ROADCUT + soil |
| cliff_fossils_headache, cliff_fossils_numbered | svg | L03, summary | FAIL | top band gray not red-brown | FOSSILS = ROADCUT + leaf |
| no_sinking_card | svg | L03 | FIX | shell at the bottom | tan below cream |
| q_cliff_five_b, q_cliff_fossils_b, q_cliff_story_a / b / c, pp_cliff_4 / 5 / 7 / 9 / 10 | svg item | quizzes / bank | FAIL | letters inverted | (1) |
| pp_cliff_1, 2, 3, 6, 8, 11–16 | svg item | bank | PASS | hairline bands on 8 / 16 | thicker rule |
| pr_cliff_1 | svg item | PR q5 | FIX | twin of pp_cliff_3 | new colours |
| cliff_plain, landing_strip_headache, deposition_recall, story_table_headache | svg | none | DELETE | unplaced | — |
| roadcut_photo, canyon_photo, shell_fossil_photo | photo | L01 / intro / L03 | PASS | — | — |
| fern_fossil_photo, fish_fossil_photo, shells_slab_photo | photo | none | DELETE | unplaced | — |
| class_roadcut_cartoon, julia_drawing_cartoon, class_story_cartoon | cartoon | L01 / L02 / L04 | PASS | — | — |
| karl_fossils_cartoon | cartoon | L03 | FIX | "top gray stripe"; "gray rock, curly shell" | red-brown; cream rock, fan shell |
Three best: landing_strip, burial_strip, cliff_story_two with story_table_two. Three weakest: q_cliff_five_b, q_cliff_story_a, no_sinking_card.
The blind read and the v2 re-read
Skill: course-build → review-lesson (Role A blind key read, two readers; Role C adjudication by the coordinator) @ 3a2c39d
Topic 21 — How rock layers tell the time — blind read, 2 October 2026
Keys did not survive. Both readers (111 items each) disagree with the key on the same set: one reorder key is stored in the wrong direction, and ten fossil items have stems whose layer letters contradict their drawings. Everything else agreed (Reader A 96 of 111 rows, Reader B 99 of 111; the three typed answers on the lists; the FRQ model in the key's words; the rule "lower is older; a fossil is as old as its layer" lands cleanly on every text-only item). The intro poll is not bundled by design.
The failed keys
| Item | What is wrong | Evidence | Ruling |
|---|---|---|---|
| L02-05 (reorder) | the stem asks "from the layer that formed first to the layer that formed last"; the drawing's bottom-up order is N, L, P, K, M (both readers); the sequestered key is M, K, P, L, N — top-down | key reversed | re-key bottom-up; check every reorder key against its drawing (PR-05 K, N, J, M and PP-24 N, J, P, K are right; PP-25 J, N, L matches its last-to-first stem) |
| L03-04, L04-02, L04-03, L04-04, L04-05, L04-06, L04-07, PP-15, PP-16, PP-32, PP-35, PP-36 | the stem puts a fossil in one lettered band and the drawing puts it in another (e.g. L04-05: drawing "J gray mud with leaf prints … L gray mud with a fish fossil"; stem "fish fossils in J, sand in K, leaf prints in L"); the keys follow the drawings, the readers followed the stems, so stem and drawing give different answers | 10 MCQ disagreements for Reader A, 7 for Reader B, all in this set | make every stem's letters match its drawing (the drawings tell the natural sea → shore → forest story, so the stems' letters are the slip); then re-read every one of these items cold |
| PP-25 (reorder) | the stem asks LAST to FIRST; the response widget's helper line (the shared bundler's / site's) says "first to last" | direction conflict a nine-year-old cannot resolve | ask first to last like the other three reorders; key bottom-up |
Flags carried into the fix pass
| Item | Who | Flag | Ruling |
|---|---|---|---|
| PP-07, 12, 13, 30, 39 | B | lesson checks reused with an extra option; PP-32 is L04's cliff inverted; PP-10's railroad cut is close to the road cut | re-scene |
| PP-45 typed "layer" | A, B | the lessons also say "stripes" | accept "stripe" / "stripes", "layer of rock", "layr" / "lair" |
| PP-28 D, L04-07 options | A | spottable by length | trim |
| igneous, metamorphic, geologist, glacier, quarry | A, B | used in items, taught in Topics 17–20 | confirm the recall lines; fine |
Readers' files: blind/2026-10-02/READER_A.md, READER_B.md.
Correction after the guidance review (same day)
The guidance reviewer opened the rendered figures and found the root cause: cliff() reads its letters list bottom → top, and on ten drawers the author wrote the letters top → bottom (q_cliff_five_b, q_cliff_fossils_b, q_cliff_story_a/b/c, pp_cliff_4/5/7/9/10). The drawings and their blind text agree with each other and disagree with the stems; the stems and the sequestered keys stand (including L02-05's order, which is "first to last" against the drawing once its letters are righted). So the ruling above ("the stems' letters are the slip; re-key L02-05") is withdrawn: the fix is to reverse the ten letters lists (and pp_cliff_7's layer list), leave every key, and re-read the thirteen affected items cold against the corrected drawings. The vault rule still holds (one list feeds stem and figure), and the drawer's direction convention goes in the build record.
v2 re-read, 2 October 2026 (Reader C on blind/2026-10-02-v2, the whole bundle)
Every key agreed (110 items; MCQ disagreements 0; the four order items MATCH by check_order_keys.py — L02-05 M, K, P, L, N; PR-05 K, N, J, M; PP-24 N, J, P, K; PP-25 L, N, J; the three typed numbers on the lists; the FRQ model in the key's words). The lettered-item verdict: in all 34 items the stem's letter → contents pairs match the drawing and the letter sets are equal; the upside-down fault is gone. Soft flags to the polish pass: L04-05's option A spells out L04-02 and L04-03's answers on the same quiz page (move or re-cliff); PR-02's "glacier" is Topic 20's word (recall line); PP-30 option A is a strong tempter — confirm L03-02's sentence is on the lesson page; L01-03's colour run is three of the road cut's four bands (vary it); the bundle still prints an item numbered PP-45 after the cut (renumbered, fine). Reader's file: READER_C.md.