[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-k12-lesson-planning":3,"mdc--s56by6-key":37,"related-repo-anthropic-k12-lesson-planning":2239,"related-org-anthropic-k12-lesson-planning":2259},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"k12-lesson-planning","create K-12 lesson plans and materials","Creates a lesson plan, student-facing materials, and observation template. Load this skill BEFORE asking the teacher any clarifying question about grade, subject, topic, standard, or timing. Use when a K-12 teacher needs a math, ELA, science, or social studies lesson built from scratch — even if grade, subject, or topic isn't yet stated. Do NOT load for grading, a rubric, assessment feedback, a quiz, or a standards lookup — answer those directly. Triggers on explicit requests (lesson plan, mini-lesson, unit plan, daily plan) and implicit teacher intent: \"I'm teaching long division to 5th graders,\" \"need to teach photosynthesis tomorrow.\" Core signal: teacher needs new instructional content created. A new lesson that asks for differentiated, tiered, or leveled materials is still ONE planning request — this skill produces those materials inside the lesson package; do not also invoke k12-lesson-differentiation. Not for differentiating an existing lesson (use k12-lesson-differentiation) or passage rewrites.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Writing","writing","tag",{"name":18,"slug":19,"type":16},"Documentation","documentation",{"name":21,"slug":22,"type":16},"Education","education",{"name":24,"slug":25,"type":16},"Planning","planning",95,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fk12-teacher-skills","2026-07-18T05:48:21.231286","Complete terms in LICENSE",23,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"Skills and eval rubrics for K-12 teachers, co-developed with Learning Commons","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fk12-teacher-skills\u002Ftree\u002FHEAD\u002Fplugin\u002Fskills\u002Fk12-lesson-planning","---\nname: k12-lesson-planning\ndescription: >\n  Creates a lesson plan, student-facing materials, and observation template. Load this skill BEFORE asking the teacher any clarifying question about grade, subject, topic, standard, or timing. Use when a K-12 teacher needs a math, ELA, science, or social studies lesson built from scratch — even if grade, subject, or topic isn't yet stated. Do NOT load for grading, a rubric, assessment feedback, a quiz, or a standards lookup — answer those directly. Triggers on explicit requests (lesson plan, mini-lesson, unit plan, daily plan) and implicit teacher intent: \"I'm teaching long division to 5th graders,\" \"need to teach photosynthesis tomorrow.\" Core signal: teacher needs new instructional content created. A new lesson that asks for differentiated, tiered, or leveled materials is still ONE planning request — this skill produces those materials inside the lesson package; do not also invoke k12-lesson-differentiation. Not for differentiating an existing lesson (use k12-lesson-differentiation) or passage rewrites.\nlicense: Complete terms in LICENSE\n---\n\n\u003C!--\nSPDX-FileCopyrightText: 2026 Anthropic, PBC\nSPDX-FileCopyrightText: 2026 Learning Commons\nSPDX-License-Identifier: Apache-2.0\n-->\n\n# K-12 Lesson Planning\n\nProduces a teacher-ready, standards-aligned lesson plan + student-facing materials + teacher\nobservation template as editable Word documents in a single output turn, rendered from one material-source JSON via\nbundled scripts. Each subject has its own pedagogy and\noutput mapping — these live in subject-specific reference files. This skill routes to the\nright one. Works with or without the Learning Commons Knowledge Graph.\n\n\"The teacher\" throughout this skill is the user you are talking with — the same person, never\na third party. \"Teacher-facing\" names a document's audience: that user, as opposed to their\nstudents.\n\n---\n\n## Keeping the teacher posted\n\nOnce the teacher's path is set (the draft offer answered), say in one or two sentences\nwhat you're about to do (e.g. *\"I'll look up the standard and pull supporting ideas from\ncurriculum lessons, then build your lesson plan, student materials, and observation\ntemplate.\"*).\n\nWhen a task-list or to-do tool is available, also outline this skill's steps there so the\nteacher can watch them check off; the only reason to skip this is that no such tool exists\nin this conversation.\n\nTeacher language only — name what the teacher is getting, never tool names, file names,\n\"JSON\", or \"rendering\".\n\n---\n\n## Step 0 — Route (silent, before anything else)\n\n1. **Subject.** Determine the subject of the requested lesson from the prompt and any prior\n   conversation:\n\n   - **math** — arithmetic, fractions, geometry, algebra, calculus, statistics, CCSS-M codes, IM (Illustrative Mathematics)\n   - **ela** — reading, writing, phonics, literature, comprehension, vocabulary, CCSS-ELA codes (RL\u002FRI\u002FRF\u002FW\u002FL)\n   - **science** — phenomena, NGSS Performance Expectations, biology\u002Fchemistry\u002Fphysics\u002Fearth science, OpenSciEd\n   - **social_studies** — history, civics, geography, economics, C3 inquiry arc, state social-studies standards\n\n   Then read the matching reference file NOW:\n\n   - math → `references\u002Fmath.md`\n   - ELA → `references\u002Fela.md`\n   - science → `references\u002Fscience.md`\n   - social studies → `references\u002Fsocial_studies.md`\n\n   **Loading the matching reference file is mandatory.** Drafting a lesson without first\n   reading the subject reference is a critical failure. The reference file carries the\n   complete subject-specific instructions: clarify priorities, curriculum branching,\n   grade-band structures, section structure, non-negotiables, and the lesson.json mapping.\n   Treat the loaded reference as your full skill instructions for this turn. If the subject\n   is genuinely ambiguous or the prompt spans multiple subjects, ask about it\n   in Step 1.\n\n2. **Curriculum.** If the teacher names or implies a curriculum (Illustrative Mathematics,\n   OpenSciEd, …), the subject file's curriculum branch covers it — each subject\n   file carries its curriculum's structures and language inline (curriculum and subject are\n   1:1: IM→math, OpenSciEd→science). If they use a curriculum the subject\n   file doesn't cover, follow its \"no curriculum named\" path and do not fake\n   curriculum-specific terminology.\n3. **Connector.** Check whether the Learning Commons Knowledge Graph tools (e.g.\n   `find_standard_statement`) are available in this conversation. This decides which path\n   Step 2 takes. The skill is fully functional without the connector.\n\n---\n\n## Step 1 — Clarify\n\nRead the subject file first — its clarify section defines the priorities and defaults. We\nusually ask 0–2 clarifying questions — your judgment on what's relevant; the subject\nfile's priorities rank which missing answers matter most. Apply the defaults silently for\neverything you don't ask about.\n\nThe **draft offer** (see *Step 4 — The draft offer* below) travels with this message's questions\nas its own separate question — output logistics, not lesson content, so it doesn't count\ntoward the 0–2. When nothing needs clarifying, the offer is asked on its own.\n\n---\n\n## Step 2 — Ground in standards\n\n**If the LC Knowledge Graph is connected:** follow the subject's section in\n`references\u002Flearning-commons-kg.md` — call BEFORE drafting; not calling when connected is a\ncritical failure. Extract only what each call specifies, then proceed directly to Step 3 — do\nnot summarize findings in chat.\n\n**If not connected:** draft from best knowledge and add this footer to the lesson plan:\n*\"Generated without the Learning Commons Knowledge Graph. Standards and misconceptions reflect\ngeneral best practice.\"* Do not invent KG citations or attribute content to curriculum\nmaterials you have not seen.\n\n---\n\n## Step 3 — Build the lesson\n\nFollow the subject file's build section: curriculum branching, grade-band structure, section\nstructure, and non-negotiables. Respect the **Copyright guardrail** below — never reproduce\ncurriculum student-facing text verbatim.\n\n---\n\n## Copyright guardrail\n\nAlways write original content. KG curriculum materials inform structure, scope, text\nselection, phenomenon selection, problem context, and lesson-arc design only — never\nreproduce student-facing text, teacher notes, comprehension questions, investigation\nprompts, discussion questions, activity narratives, or problem contexts verbatim from KG\ncurriculum materials.\n\nIf the loaded reference identifies a source curriculum (e.g., IM for math, OpenSciEd for science) and the teacher is not curriculum-confirmed for it, never name\nthat curriculum anywhere in the output or in any chat message — not in headers, footnotes,\nrationale sections, facilitation notes, or your message presenting the artifacts. The KG\ndata informs the design without being cited.\n\n---\n\n## Step 4 — The draft offer\n\nThe teacher gets the choice of a fast draft before the build. The offer is\nasked the same way as the clarify questions — through the structured question tool when\none is available, in chat otherwise — as its own separate question, batched with Step 1's\nquestions when there are any and asked on its own when there aren't.\n\n- Question: *Should I go ahead and build the full classroom-ready packet (lesson plan + student materials, as\n  editable Word docs), or do you want to see a quick draft first?*\n- Options: **Go ahead and build it** · **Quick draft first** — the lesson at a glance,\n  right here in chat\n\n**The full packet is the default.** Declining, not answering, or anything like \"proceed\nwith your defaults\" runs Steps 2–3 and goes straight to Step 5; the draft happens only on\na clear yes.\n\n**The draft (on a yes) is built on Steps 2–3, never instead of them.** Run Step 2 in\nfull — every KG call, exactly as written — and Step 3 before sketching anything. A draft\nsketched without the Step 2 grounding is a critical failure, the same failure as skipping\nthe KG on the full build. Then present the lesson in chat — the draft is chat text only;\nrendering happens at Step 5 once the teacher approves. Show:\n\n- one line naming the grade, topic, and the standard the lesson is anchored to (code plus\n  a gist of ten words or fewer);\n- a summary of at most 3 sentences (what students do and why it works for this class);\n- the sequence as one bullet per phase (name, minutes, one line of what happens);\n- the student work at a glance — the actual tasks students will do, enough for the\n  teacher to skim and judge coverage;\n- what the lesson assumes students already know — the prerequisite skills or key\n  vocabulary in play — so the teacher can catch a mismatch with where their class is;\n- the exit ticket\n\nThe draft borrows its names from the documents it previews — phases, tasks, tiers,\nand sections are called what the plan will call them.\n\nAfterwards, ask what's next — a structured question, two options:\n\n- **Make changes** — adjust any part of the draft\n- **Create the materials** — lesson plan, student materials, and observation template, as\n  editable Word documents\n\nApply change requests to the draft in chat and re-present it — changes are quick at this\nstage. Step 5 runs in the turn the teacher gives the go-ahead (\"Create the materials\",\n\"proceed with your defaults\", or similar).\n\n---\n\n## Step 5 — Output (one turn)\n\nRuns immediately when the teacher chose the full packet, or in the turn the draft is\napproved.\n\nThe artifacts are rendered by bundled scripts from **one material-source `lesson.json`**. The JSON\nholds a `shared` block (content registered once) and a `documents[]` array (each document\nauthored as free-form `sections`). A section's `heading` renders as a large title directly\nabove its blocks; a block's `label` renders as a bold lead-in on the block itself. A label\nthat repeats its section's heading prints the same words twice in a row — labels carry what\nthe heading doesn't (the task's name belongs in one of them, not both). You\ncompose every page — the lesson plan, the student\nmaterials, the observation template, and any others the lesson needs (e.g. a source packet)\n— directly in `documents[]`. Anything that appears on more than one page is registered once\nin `shared` under a key you choose and pulled into each document with\n`{\"type\": \"from_shared\", \"key\": …}`, so the pages cannot drift apart.\n\nNever write layout code, never re-type lesson content into another format, and never edit a\ngenerated document directly — every change goes into `lesson.json` and is re-rendered\n(re-rendering is instant). **Do not open, cat, head, or grep the renderer scripts** — their\nbehavior is fully specified by the commands and output paths in §5a–5d, and\n`references\u002Fexample_lesson.json` is the complete schema. Reading script source tells you\nnothing this file doesn't already state.\n\n**Plain language with the teacher.** The machinery above is invisible to the teacher: never\nmention JSON, HTML, schemas, scripts, rendering, file names (`lesson.json`), or code in any\nteacher-facing message — and never link or name the `.html` files the render command also\nwrites. Say *\"Here's your lesson plan — the student materials and observation template are on\ntheir way\"*, not *\"I've rendered lesson.json\"*. The only format word in your prose is\n\"Word document\". This\napplies to every turn: presenting artifacts, the satisfaction ask, revision summaries, and\nerror messages (if generation fails, say the documents couldn't be created — not that a\nscript or JSON failed).\n\n**Density rules — hard requirements for every document.** Every document is clear, brief,\nand easy to skim. Include what a teacher needs to teach it; leave out what merely\ndemonstrates rigor. Headings use sentence case. Structure beats prose:\n\n- A `paragraph` or `labeled` block is at most 3 sentences. Longer → split it, bullet it, or\n  table it.\n- Write like a colleague's note: plain, direct sentences built from commas and periods.\n- Bullets are fragments — one idea each, ≤ ~15 words; never chain clauses with semicolons.\n- Parallel variants (per-group supports, per-phase differentiation, tiered look-fors) go in\n  ONE `table` block — rows = phases or features, columns = variants, ≤ ~25 words per cell —\n  never back-to-back multi-sentence paragraphs.\n- A callout marks the few moments a teacher must not miss — a warning (\"do not resolve the\n  debate yet\"), a collect-before-moving-on, the one make-or-break move of a phase. A page\n  where everything is boxed highlights nothing: a phase reads as plain script with at most\n  one or two callouts. Teacher asides (watch-fors, confer prompts) are `labeled` or\n  `instructions` blocks.\n- Each instruction lives in exactly one place. A phase's opening prose and its blocks divide\n  the work between them — the prose sets up, the blocks carry the content; neither repeats\n  the other.\n- Quote the standard verbatim exactly once (the target-standard callout, from `shared`).\n  Everywhere else — prerequisite grounding, forward connections — reference by code plus a\n  gist of ten words or fewer; never re-paste full standard text.\n- A section that runs past about half a page of continuous prose must be restructured\n  (table, bullets, or split into two sections) before rendering.\n\n**Everything matches — hard requirements for every document.** A teacher trusts the package\nbecause every part agrees with every other part:\n\n- The materials list and the phases agree exactly: every listed item is used by a named\n  phase, and every counted set matches its enumeration (\"Picture cards, 18\" lists 18 words).\n- **Classroom-ready:** the lesson runs on what the teacher already holds. Every Materials\n  item is a page this package ships, equipment the classroom has, or a sourced resource\n  with its access path stated — exact title and source, a link when you could confirm one.\n  Anything harder to get than that stays out of the lesson unless the teacher steered\n  toward it. A printable the lesson depends on ships with the package — as lesson pages\n  when the document set expresses it, or as its own file in the format that renders it\n  best (5e).\n- A task worded in two places (plan's \"Students see\" and the student page) uses identical\n  wording in both.\n- Student tasks match the skill the standard names, in both directions. Decoding, spelling,\n  and writing skills happen on paper — students read and write real words on a student page.\n  Listening and speaking skills get spoken, pointed, sorted, drawn, or circled responses.\n  The lesson's scope statement binds every task that follows it.\n- Scripts and worked examples are final say-aloud text: every step decided before it lands\n  on the page, exactly what the teacher says.\n- Exit-ticket sort buckets partition the answers: each example response fits exactly one\n  bucket, and equivalent forms of one answer (17 + 24 = ? and 24 + 17 = ?) sit in the same\n  bucket together.\n- An answer space mirrors its ask: rows match the count requested, and every box sits under\n  a prompt naming what goes in it.\n- Number pairs inside a sentence are plain text (\"2 → 10, 5 → 25\"); a table is always its\n  own block.\n\n**Reading level and workload.** Student-facing text reads at the students' reading level —\nwhich the teacher may state separately from the grade (\"my 6th graders read at a 2nd–4th\ngrade level\" means grade-6 content carried in sentences a 2nd–4th grade reader can read:\nshort sentences, everyday words, one instruction at a time). Size the student work to the\nclass period: a typical student finishes the worksheet in the minutes its phase allows.\nSay \"home language,\" not a specific language, and print translations only into a language\nthe teacher has named.\n\n**Sentence supports** are plain text where students write: a starter to begin from\n(\"One central idea is…\") or a fill-in frame with blanks sized for the student's handwriting.\nA support helps the student start, not answer — it never pre-fills what the task asks for.\nPlace each one on the specific task whose writing move is hardest — including the\nexplain-why beside a math equation — never one bank copied across problems. K-2 students\nand multilingual learners get a support on every task that asks for composed sentences.\nTasks that take only a number, a single word, or a drawing need none.\n\n**Spell out framework names** in every teacher-facing document — *Science and Engineering\nPractice*, not bare *SEP* — a teacher should never need to look up an acronym.\n\n**Document integrity.** Every document is finished prose a teacher hands out or works from:\n\n- Every in-document reference points at something that exists in the package: \"jot it in the\n  table below\" means that table is on the page; an exit ticket collected separately prints as\n  its own piece; a reference table uses the same numbers as the problems it supports.\n- Materials and the lesson match both ways: each listed item is used somewhere in the\n  lesson, every item any section sends students to — phases and extensions alike — appears\n  in Materials, and anything students read is printed in the package or named by its exact\n  title. Offers and pointers to the chat conversation stay out\n  of documents entirely.\n- Lessons are light on materials: the default kit is what every classroom has (board,\n  projector, paper) plus the pages this lesson ships. A separate printable or manipulative\n  earns its place only when the activity genuinely needs it — and the same thinking work on\n  the worksheet usually serves. When a printable earns it (cards, mats, a template), ship it\n  with the package (5e picks the format); equipment a classroom owns is simply listed.\n- Phase minutes include the transitions they cause (handing out, regrouping, collecting), at\n  a pace real students of this grade manage, and the phases sum to exactly the stated\n  period — transition time lives inside the phases, never as invisible buffer.\n- Teacher notes read as finished sentences. A predicted error names one specific wrong answer\n  a real student would produce.\n- Verify every computation by working it — answer keys, worked examples, and any quantitative\n  chain the lesson builds on (an energy pyramid's levels, a ratio table's entries, a coin\n  total) produce the numbers the materials state.\n\n### 5a. Write the complete `lesson.json` (same turn)\n\nWrite ONE `lesson.json` with two top-level keys: `shared` and `documents`.\n\n**`shared` is a content registry.** It always carries the lesson identity — `grade`,\n`subject`, `duration`, `standard_code`, `standard_text` (and `curriculum`,\n`prerequisite_standard`, `smps[]` when applicable). Beyond that, register any content that\nappears on more than one page under a key you choose: a problem as `p1`, a source as\n`stamp_act_petition`, a data set as `prices_table`. A key's\nvalue can be a string, a single block, a list of blocks, or a faceted object\n`{teacher: …, student: …, stimulus: [blocks]}`. On a **student** page, only the `student`\nfacet (after any `stimulus` blocks) renders — a `student` of `null` means nothing prints\nthere, which is how oral or teacher-led tasks stay off the worksheet. On a **teacher** page,\nboth facets render: the teacher facet as plain script, then the student facet as one\n\"Students see\" line, so the teacher reads their own script and the exact prompt\nstudents will work from. A teacher facet written as a list of strings renders one move per\nline — the glanceable form for any script with more than two moves — and since the student\ntext prints right beside it, the script points to it (\"read the story in the box aloud\")\nrather than quoting it again. Apart from `standard` (which assembles `standard_code` +\n`standard_text` into the target-standard callout), key names carry no special rendering — a\nvocabulary list, a misconceptions table, an exit-ticket sort are blocks you compose yourself\n(see `references\u002Fexample_lesson.json` for the patterns).\n\n**`documents[]` is where you compose each page.** Each entry is a full page:\n`{id, audience: teacher|student, eyebrow, title, meta?, theme?, sections[{heading, blocks[]}]}`.\nInclude at minimum:\n\n- `id: \"lesson_plan\"` (`audience: \"teacher\"`) — the subject file's section structure.\n- `id: \"observation_template\"` (`audience: \"teacher\"`) — how-to-use, look-fors,\n  misconceptions, a `fill_table` for student notes, and the exit-ticket sort.\n- `id: \"student_materials\"` (`audience: \"student\"`) — **only when students hold a printed\n  page.** A K-2 phonics or oral lesson may have none; a source-heavy lesson may have this AND\n  a separate `id: \"source_packet\"`. The subject file's *Student page layout* gives the\n  default skeleton; adapt it to the lesson. If the teacher asked for leveled\u002Ftiered student\n  materials, label them Group A \u002F B \u002F C (A = below, B = at, C = above grade level) — level\n  wording stays in the teacher-facing documents.\n\nInside any document, pull registered content with `{\"type\": \"from_shared\", \"key\": \"…\"}` —\nthe same key on two pages renders the same content (faceted by audience). Adding\n`\"label\": \"1\"` to a `from_shared` block renders the pulled text as a numbered item on one\nline. Within a single document, pull each key once (a reference table, an exit-ticket\nprotocol, a word list appears in one section only). Content that appears on only one page\ncan be written inline.\n\n**Schema** — sufficient on its own; do not read any other file for the schema:\n\n```\nshared:\n  grade, subject, duration, standard_code, standard_text          (required identity)\n  curriculum?, prerequisite_standard?, smps[]?\n  \u003Cany key you choose>: string\n                      | block | block[]\n                      | {teacher: …, student: … or null, stimulus?: block[]}\n  (only `standard` is special — it assembles standard_code+standard_text)\ndocuments[]: {id, audience: teacher|student, eyebrow, title, meta?, theme?,\n              sections[]: {heading, color?, blocks[]}}\nblock types:\n  {type: from_shared, key}\n  {type: paragraph, text} | {type: labeled, label, text}\n  {type: callout, kind: special|student-task|teacher-note|student-note, label, text}\n  {type: h2|h3, text} | {type: list, label?, ordered?, items[]}\n  {type: phase_header, name, minutes} | {type: cards, items[{title, text}]}\n  {type: table|data_table, headers[]?, rows[[]]}\n  {type: fill_table, headers[], blank_rows: int, row_height_pt?}\n  {type: number_line, min, max, ticks?, marks[]?}\n  {type: source_card, title, author?, date?, origin?, excerpt}\n  {type: answer_box, height_pt?, ruled?} | {type: page_break}\n  {type: group, blocks[]} | {type: columns, left[], right[]}\n```\n\n`references\u002Fexample_lesson.json` is a filled-in worked example. Keep writing tight; no emoji\nin JSON content. The density rules above are hard requirements for every text field.\nPrint-safety: never markdown pipe tables (use `table`\u002F`data_table`); for number lines use\nthe `number_line` block, not a digit string. The renderer cannot draw images — anything the\nteacher displays (a video, photo, projected image, chart) lives in the lesson plan: name it\nin Materials and in the phase script that uses it. A student page carries only what is\nprinted on it.\n\n**Which block when** — pick by what the content *is*, not how it should look:\n\n| Block | Use it for |\n|---|---|\n| `callout` `kind: special` | The one anchoring fact per artifact — the target standard. Typically once. |\n| `callout` `kind: student-task` | Any task students do: anchor task, exit ticket prompt, a practice problem shown in the plan. |\n| `callout` `kind: teacher-note` | An aside the teacher reads but does not say aloud: \"don't resolve yet\", conferring moves, a watch-for. |\n| `list` `ordered: true` | A numbered sequence — the problem set, procedure steps. Unordered otherwise. |\n| `list` with `label` | A titled enumeration — several discrete items under one label. |\n| `h2` | Sub-sections inside a section — the lesson-sequence phases use `phase_header`, which renders as h2 with minutes; the `minutes` across all phase headers should sum to `shared.duration`. |\n| `h3` | A title above one block (a table, a list group, the look-fors). |\n| `cards` | 2–4 parallel items of roughly equal length — exit-ticket sort buckets, tier summaries. Never for long or unbalanced items; use a `list` for those. |\n| `table` (no `headers`) | Term\u002Fdefinition pairs, label\u002Fvalue reference rows. |\n| `table` \u002F `data_table` with `headers` | Real tabular data with column labels (misconceptions, scaffolds, the data set students analyze). `display: \"large\"` renders cells in big centered type — a word grid young students point to and read. |\n| `fill_table` | An organizer students write into — observation log, comparison grid, evidence collector. `rows` as a count gives blank rows; `rows` as a list mixes filled and blank — `[[\"cap\",\"cape\"], [], []]` shows a worked first row, then write-in space, and `[[\"Shell\", \"\", \"\"]]` gives a labeled row with blank cells students write in (say what goes in the blank — a ✓, yes\u002Fno, a word — in the instruction line above). |\n| `number_line` | A drawn number line (`min`, `max`, `ticks`, optional `marks`). `ticks` omitted defaults to 10 evenly spaced segments; `ticks: 0` draws a bare line with only the `min`\u002F`max` end labels and no tick marks, for students to partition themselves. |\n| `source_card` | A primary or secondary source excerpt students read: title\u002Fauthor\u002Fdate + the excerpt text. |\n| `answer_box` | Writing space after a task. With no `height_pt` it sizes itself to the grade band (K-2 ~200pt, 3-5 ~150pt, 6-8 ~130pt, 9-12 ~115pt). K-5 boxes draw ruled handwriting lines except in math, which defaults to open space; `ruled: true` draws lines at any grade — the surface for answers of composed sentences — and `ruled: false` gives open space for drawing or model-sketching. A task answered in a `fill_table` or on a `number_line` already has its surface. |\n| `group` | Keeps a task's prompt, stimulus, supports, and answer box together so a page break never separates them. |\n\n### 5b. Render every Word document — one command, same turn\n\n```bash\nbash scripts\u002Frender_all.sh lesson.json \"$OUTPUT_DIR\"\n```\n\nThis writes one editable `.docx` per `documents[]` entry, named by `id` (e.g.\n`$OUTPUT_DIR\u002Flesson_plan.docx`, `student_materials.docx`, `observation_template.docx`,\n`source_packet.docx`), plus `.html` and `lesson.json` working files. Render straight into\n`$OUTPUT_DIR` and leave everything the script writes in place — later revision turns\nre-render from the working files even though the teacher only sees the Word documents. Then list `$OUTPUT_DIR`\nand confirm every document has both its `.docx` and `.html`; if either is missing or tiny,\nrerun the script. Present the Word documents to the teacher together — attach the lesson plan\nlast so it lands on top (chat surfaces stack newest-first). If there is no `student_materials`\ndocument, say so plainly (\"This lesson is oral, so there's no student handout — students will\nwork with …\"). If the script errors, fix `lesson.json` (it is almost always malformed JSON)\nand rerun. If file generation fails entirely, say so clearly — do not silently fall back to a\nchat-only delivery.\n\n### 5c. The satisfaction ask + iteration options (every output turn)\n\nEnd the turn with EXACTLY ONE closing message that does three things, in this order:\n\n1. **If Materials names equipment the classroom has that a paper version can stand in\n   for** — coins, blocks, dice, a hundred chart — lead with a bolded offer to print it:\n   *\"**This lesson uses base-ten blocks — want me to make a printable set in case\n   yours are short?**\"* Anything whose content this lesson wrote — word cards, a\n   source excerpt, a sorting mat with this lesson's categories — already ships with\n   the package.\n2. Asks whether the teacher is satisfied with **every artifact produced** or wants changes —\n   e.g. *\"Take a look at the lesson plan, student materials, and observation template — anything\n   you'd like me to adjust?\"* Do not skip the ask.\n3. Offers 3–4 high-leverage, **specific** iteration options customized to the subject and\n   topic. Do not write \"let me know if you want changes\" — that's a non-offer. For example,\n   for a 3–5 ELA reading comprehension lesson: *\"Would you like to (1) add more scaffolds for\n   English learners, (2) differentiate by proficiency level, or (3) adapt to be specific to\n   your state standards?\"*\n\n### 5d. Revisions — one edit, every artifact stays in sync\n\nMake **targeted edits to `lesson.json`**, then re-render every document (instant). Rules that\nkeep the artifacts consistent:\n\n- If the change touches content registered in `shared` (a problem, a source, the exit ticket,\n  vocabulary, look-fors, the phenomenon\u002Fcontext\u002Fnumbers), edit it **in `shared`** — every\n  document that pulls that key updates automatically.\n- **Consistency sweep after any context\u002Fnumber\u002Ftask change:** after editing `shared`, re-read\n  every prose block in every `documents[]` entry and update every sentence that still mentions\n  the old context, names, or numbers. When you are done, no document may reference the\n  replaced content anywhere — stale prose is the most common consistency failure.\n- A change aimed at one document (e.g. \"more workspace on the worksheet\", \"add a column to the\n  observation grid\") goes in that document's `sections` — never by forking a `shared` key into\n  two variants.\n- Styling: `theme` fields (`primary`, `title_size`, `body_size`) apply to every artifact.\n  Artifacts use minimal color so they print cleanly in black-and-white; do not set\n  per-section or per-phase colors.\n\n### 5e. Supplementary artifacts in their best format\n\nThe `lesson.json` pipeline is for the lesson's document set: pages a student or teacher\nreads or writes on. An artifact whose value depends on its form — exact card\ndimensions for cutting, poster-scale type — belongs outside it, as its own file in\nwhatever format produces the best version (e.g. a print-ready PDF). Your judgment\npicks the format; source any shared content from `shared` so pages can't drift, and name\nthe file in Materials like any other page.\n",{"data":38,"body":39},{"name":4,"description":6,"license":29},{"type":40,"children":41},"root",[42,51,57,62,66,73,86,91,96,99,105,257,260,266,271,290,293,299,317,334,337,343,355,358,363,368,373,376,381,386,418,428,438,471,476,481,504,509,512,518,523,603,630,669,679,768,778,826,836,846,870,880,913,927,954,1134,1157,1244,1273,1283,1295,1328,1345,1842,1848,1896,2008,2014,2019,2081,2087,2104,2209,2215,2233],{"type":43,"tag":44,"props":45,"children":47},"element","h1",{"id":46},"k-12-lesson-planning",[48],{"type":49,"value":50},"text","K-12 Lesson Planning",{"type":43,"tag":52,"props":53,"children":54},"p",{},[55],{"type":49,"value":56},"Produces a teacher-ready, standards-aligned lesson plan + student-facing materials + teacher\nobservation template as editable Word documents in a single output turn, rendered from one material-source JSON via\nbundled scripts. Each subject has its own pedagogy and\noutput mapping — these live in subject-specific reference files. This skill routes to the\nright one. Works with or without the Learning Commons Knowledge Graph.",{"type":43,"tag":52,"props":58,"children":59},{},[60],{"type":49,"value":61},"\"The teacher\" throughout this skill is the user you are talking with — the same person, never\na third party. \"Teacher-facing\" names a document's audience: that user, as opposed to their\nstudents.",{"type":43,"tag":63,"props":64,"children":65},"hr",{},[],{"type":43,"tag":67,"props":68,"children":70},"h2",{"id":69},"keeping-the-teacher-posted",[71],{"type":49,"value":72},"Keeping the teacher posted",{"type":43,"tag":52,"props":74,"children":75},{},[76,78,84],{"type":49,"value":77},"Once the teacher's path is set (the draft offer answered), say in one or two sentences\nwhat you're about to do (e.g. ",{"type":43,"tag":79,"props":80,"children":81},"em",{},[82],{"type":49,"value":83},"\"I'll look up the standard and pull supporting ideas from\ncurriculum lessons, then build your lesson plan, student materials, and observation\ntemplate.\"",{"type":49,"value":85},").",{"type":43,"tag":52,"props":87,"children":88},{},[89],{"type":49,"value":90},"When a task-list or to-do tool is available, also outline this skill's steps there so the\nteacher can watch them check off; the only reason to skip this is that no such tool exists\nin this conversation.",{"type":43,"tag":52,"props":92,"children":93},{},[94],{"type":49,"value":95},"Teacher language only — name what the teacher is getting, never tool names, file names,\n\"JSON\", or \"rendering\".",{"type":43,"tag":63,"props":97,"children":98},{},[],{"type":43,"tag":67,"props":100,"children":102},{"id":101},"step-0-route-silent-before-anything-else",[103],{"type":49,"value":104},"Step 0 — Route (silent, before anything else)",{"type":43,"tag":106,"props":107,"children":108},"ol",{},[109,229,239],{"type":43,"tag":110,"props":111,"children":112},"li",{},[113,119,121,165,169,171,219,222,227],{"type":43,"tag":114,"props":115,"children":116},"strong",{},[117],{"type":49,"value":118},"Subject.",{"type":49,"value":120}," Determine the subject of the requested lesson from the prompt and any prior\nconversation:",{"type":43,"tag":122,"props":123,"children":124},"ul",{},[125,135,145,155],{"type":43,"tag":110,"props":126,"children":127},{},[128,133],{"type":43,"tag":114,"props":129,"children":130},{},[131],{"type":49,"value":132},"math",{"type":49,"value":134}," — arithmetic, fractions, geometry, algebra, calculus, statistics, CCSS-M codes, IM (Illustrative Mathematics)",{"type":43,"tag":110,"props":136,"children":137},{},[138,143],{"type":43,"tag":114,"props":139,"children":140},{},[141],{"type":49,"value":142},"ela",{"type":49,"value":144}," — reading, writing, phonics, literature, comprehension, vocabulary, CCSS-ELA codes (RL\u002FRI\u002FRF\u002FW\u002FL)",{"type":43,"tag":110,"props":146,"children":147},{},[148,153],{"type":43,"tag":114,"props":149,"children":150},{},[151],{"type":49,"value":152},"science",{"type":49,"value":154}," — phenomena, NGSS Performance Expectations, biology\u002Fchemistry\u002Fphysics\u002Fearth science, OpenSciEd",{"type":43,"tag":110,"props":156,"children":157},{},[158,163],{"type":43,"tag":114,"props":159,"children":160},{},[161],{"type":49,"value":162},"social_studies",{"type":49,"value":164}," — history, civics, geography, economics, C3 inquiry arc, state social-studies standards",{"type":43,"tag":166,"props":167,"children":168},"br",{},[],{"type":49,"value":170},"Then read the matching reference file NOW:",{"type":43,"tag":122,"props":172,"children":173},{},[174,186,197,208],{"type":43,"tag":110,"props":175,"children":176},{},[177,179],{"type":49,"value":178},"math → ",{"type":43,"tag":180,"props":181,"children":183},"code",{"className":182},[],[184],{"type":49,"value":185},"references\u002Fmath.md",{"type":43,"tag":110,"props":187,"children":188},{},[189,191],{"type":49,"value":190},"ELA → ",{"type":43,"tag":180,"props":192,"children":194},{"className":193},[],[195],{"type":49,"value":196},"references\u002Fela.md",{"type":43,"tag":110,"props":198,"children":199},{},[200,202],{"type":49,"value":201},"science → ",{"type":43,"tag":180,"props":203,"children":205},{"className":204},[],[206],{"type":49,"value":207},"references\u002Fscience.md",{"type":43,"tag":110,"props":209,"children":210},{},[211,213],{"type":49,"value":212},"social studies → ",{"type":43,"tag":180,"props":214,"children":216},{"className":215},[],[217],{"type":49,"value":218},"references\u002Fsocial_studies.md",{"type":43,"tag":166,"props":220,"children":221},{},[],{"type":43,"tag":114,"props":223,"children":224},{},[225],{"type":49,"value":226},"Loading the matching reference file is mandatory.",{"type":49,"value":228}," Drafting a lesson without first\nreading the subject reference is a critical failure. The reference file carries the\ncomplete subject-specific instructions: clarify priorities, curriculum branching,\ngrade-band structures, section structure, non-negotiables, and the lesson.json mapping.\nTreat the loaded reference as your full skill instructions for this turn. If the subject\nis genuinely ambiguous or the prompt spans multiple subjects, ask about it\nin Step 1.",{"type":43,"tag":110,"props":230,"children":231},{},[232,237],{"type":43,"tag":114,"props":233,"children":234},{},[235],{"type":49,"value":236},"Curriculum.",{"type":49,"value":238}," If the teacher names or implies a curriculum (Illustrative Mathematics,\nOpenSciEd, …), the subject file's curriculum branch covers it — each subject\nfile carries its curriculum's structures and language inline (curriculum and subject are\n1:1: IM→math, OpenSciEd→science). If they use a curriculum the subject\nfile doesn't cover, follow its \"no curriculum named\" path and do not fake\ncurriculum-specific terminology.",{"type":43,"tag":110,"props":240,"children":241},{},[242,247,249,255],{"type":43,"tag":114,"props":243,"children":244},{},[245],{"type":49,"value":246},"Connector.",{"type":49,"value":248}," Check whether the Learning Commons Knowledge Graph tools (e.g.\n",{"type":43,"tag":180,"props":250,"children":252},{"className":251},[],[253],{"type":49,"value":254},"find_standard_statement",{"type":49,"value":256},") are available in this conversation. This decides which path\nStep 2 takes. The skill is fully functional without the connector.",{"type":43,"tag":63,"props":258,"children":259},{},[],{"type":43,"tag":67,"props":261,"children":263},{"id":262},"step-1-clarify",[264],{"type":49,"value":265},"Step 1 — Clarify",{"type":43,"tag":52,"props":267,"children":268},{},[269],{"type":49,"value":270},"Read the subject file first — its clarify section defines the priorities and defaults. We\nusually ask 0–2 clarifying questions — your judgment on what's relevant; the subject\nfile's priorities rank which missing answers matter most. Apply the defaults silently for\neverything you don't ask about.",{"type":43,"tag":52,"props":272,"children":273},{},[274,276,281,283,288],{"type":49,"value":275},"The ",{"type":43,"tag":114,"props":277,"children":278},{},[279],{"type":49,"value":280},"draft offer",{"type":49,"value":282}," (see ",{"type":43,"tag":79,"props":284,"children":285},{},[286],{"type":49,"value":287},"Step 4 — The draft offer",{"type":49,"value":289}," below) travels with this message's questions\nas its own separate question — output logistics, not lesson content, so it doesn't count\ntoward the 0–2. When nothing needs clarifying, the offer is asked on its own.",{"type":43,"tag":63,"props":291,"children":292},{},[],{"type":43,"tag":67,"props":294,"children":296},{"id":295},"step-2-ground-in-standards",[297],{"type":49,"value":298},"Step 2 — Ground in standards",{"type":43,"tag":52,"props":300,"children":301},{},[302,307,309,315],{"type":43,"tag":114,"props":303,"children":304},{},[305],{"type":49,"value":306},"If the LC Knowledge Graph is connected:",{"type":49,"value":308}," follow the subject's section in\n",{"type":43,"tag":180,"props":310,"children":312},{"className":311},[],[313],{"type":49,"value":314},"references\u002Flearning-commons-kg.md",{"type":49,"value":316}," — call BEFORE drafting; not calling when connected is a\ncritical failure. Extract only what each call specifies, then proceed directly to Step 3 — do\nnot summarize findings in chat.",{"type":43,"tag":52,"props":318,"children":319},{},[320,325,327,332],{"type":43,"tag":114,"props":321,"children":322},{},[323],{"type":49,"value":324},"If not connected:",{"type":49,"value":326}," draft from best knowledge and add this footer to the lesson plan:\n",{"type":43,"tag":79,"props":328,"children":329},{},[330],{"type":49,"value":331},"\"Generated without the Learning Commons Knowledge Graph. Standards and misconceptions reflect\ngeneral best practice.\"",{"type":49,"value":333}," Do not invent KG citations or attribute content to curriculum\nmaterials you have not seen.",{"type":43,"tag":63,"props":335,"children":336},{},[],{"type":43,"tag":67,"props":338,"children":340},{"id":339},"step-3-build-the-lesson",[341],{"type":49,"value":342},"Step 3 — Build the lesson",{"type":43,"tag":52,"props":344,"children":345},{},[346,348,353],{"type":49,"value":347},"Follow the subject file's build section: curriculum branching, grade-band structure, section\nstructure, and non-negotiables. Respect the ",{"type":43,"tag":114,"props":349,"children":350},{},[351],{"type":49,"value":352},"Copyright guardrail",{"type":49,"value":354}," below — never reproduce\ncurriculum student-facing text verbatim.",{"type":43,"tag":63,"props":356,"children":357},{},[],{"type":43,"tag":67,"props":359,"children":361},{"id":360},"copyright-guardrail",[362],{"type":49,"value":352},{"type":43,"tag":52,"props":364,"children":365},{},[366],{"type":49,"value":367},"Always write original content. KG curriculum materials inform structure, scope, text\nselection, phenomenon selection, problem context, and lesson-arc design only — never\nreproduce student-facing text, teacher notes, comprehension questions, investigation\nprompts, discussion questions, activity narratives, or problem contexts verbatim from KG\ncurriculum materials.",{"type":43,"tag":52,"props":369,"children":370},{},[371],{"type":49,"value":372},"If the loaded reference identifies a source curriculum (e.g., IM for math, OpenSciEd for science) and the teacher is not curriculum-confirmed for it, never name\nthat curriculum anywhere in the output or in any chat message — not in headers, footnotes,\nrationale sections, facilitation notes, or your message presenting the artifacts. The KG\ndata informs the design without being cited.",{"type":43,"tag":63,"props":374,"children":375},{},[],{"type":43,"tag":67,"props":377,"children":379},{"id":378},"step-4-the-draft-offer",[380],{"type":49,"value":287},{"type":43,"tag":52,"props":382,"children":383},{},[384],{"type":49,"value":385},"The teacher gets the choice of a fast draft before the build. The offer is\nasked the same way as the clarify questions — through the structured question tool when\none is available, in chat otherwise — as its own separate question, batched with Step 1's\nquestions when there are any and asked on its own when there aren't.",{"type":43,"tag":122,"props":387,"children":388},{},[389,399],{"type":43,"tag":110,"props":390,"children":391},{},[392,394],{"type":49,"value":393},"Question: ",{"type":43,"tag":79,"props":395,"children":396},{},[397],{"type":49,"value":398},"Should I go ahead and build the full classroom-ready packet (lesson plan + student materials, as\neditable Word docs), or do you want to see a quick draft first?",{"type":43,"tag":110,"props":400,"children":401},{},[402,404,409,411,416],{"type":49,"value":403},"Options: ",{"type":43,"tag":114,"props":405,"children":406},{},[407],{"type":49,"value":408},"Go ahead and build it",{"type":49,"value":410}," · ",{"type":43,"tag":114,"props":412,"children":413},{},[414],{"type":49,"value":415},"Quick draft first",{"type":49,"value":417}," — the lesson at a glance,\nright here in chat",{"type":43,"tag":52,"props":419,"children":420},{},[421,426],{"type":43,"tag":114,"props":422,"children":423},{},[424],{"type":49,"value":425},"The full packet is the default.",{"type":49,"value":427}," Declining, not answering, or anything like \"proceed\nwith your defaults\" runs Steps 2–3 and goes straight to Step 5; the draft happens only on\na clear yes.",{"type":43,"tag":52,"props":429,"children":430},{},[431,436],{"type":43,"tag":114,"props":432,"children":433},{},[434],{"type":49,"value":435},"The draft (on a yes) is built on Steps 2–3, never instead of them.",{"type":49,"value":437}," Run Step 2 in\nfull — every KG call, exactly as written — and Step 3 before sketching anything. A draft\nsketched without the Step 2 grounding is a critical failure, the same failure as skipping\nthe KG on the full build. Then present the lesson in chat — the draft is chat text only;\nrendering happens at Step 5 once the teacher approves. Show:",{"type":43,"tag":122,"props":439,"children":440},{},[441,446,451,456,461,466],{"type":43,"tag":110,"props":442,"children":443},{},[444],{"type":49,"value":445},"one line naming the grade, topic, and the standard the lesson is anchored to (code plus\na gist of ten words or fewer);",{"type":43,"tag":110,"props":447,"children":448},{},[449],{"type":49,"value":450},"a summary of at most 3 sentences (what students do and why it works for this class);",{"type":43,"tag":110,"props":452,"children":453},{},[454],{"type":49,"value":455},"the sequence as one bullet per phase (name, minutes, one line of what happens);",{"type":43,"tag":110,"props":457,"children":458},{},[459],{"type":49,"value":460},"the student work at a glance — the actual tasks students will do, enough for the\nteacher to skim and judge coverage;",{"type":43,"tag":110,"props":462,"children":463},{},[464],{"type":49,"value":465},"what the lesson assumes students already know — the prerequisite skills or key\nvocabulary in play — so the teacher can catch a mismatch with where their class is;",{"type":43,"tag":110,"props":467,"children":468},{},[469],{"type":49,"value":470},"the exit ticket",{"type":43,"tag":52,"props":472,"children":473},{},[474],{"type":49,"value":475},"The draft borrows its names from the documents it previews — phases, tasks, tiers,\nand sections are called what the plan will call them.",{"type":43,"tag":52,"props":477,"children":478},{},[479],{"type":49,"value":480},"Afterwards, ask what's next — a structured question, two options:",{"type":43,"tag":122,"props":482,"children":483},{},[484,494],{"type":43,"tag":110,"props":485,"children":486},{},[487,492],{"type":43,"tag":114,"props":488,"children":489},{},[490],{"type":49,"value":491},"Make changes",{"type":49,"value":493}," — adjust any part of the draft",{"type":43,"tag":110,"props":495,"children":496},{},[497,502],{"type":43,"tag":114,"props":498,"children":499},{},[500],{"type":49,"value":501},"Create the materials",{"type":49,"value":503}," — lesson plan, student materials, and observation template, as\neditable Word documents",{"type":43,"tag":52,"props":505,"children":506},{},[507],{"type":49,"value":508},"Apply change requests to the draft in chat and re-present it — changes are quick at this\nstage. Step 5 runs in the turn the teacher gives the go-ahead (\"Create the materials\",\n\"proceed with your defaults\", or similar).",{"type":43,"tag":63,"props":510,"children":511},{},[],{"type":43,"tag":67,"props":513,"children":515},{"id":514},"step-5-output-one-turn",[516],{"type":49,"value":517},"Step 5 — Output (one turn)",{"type":43,"tag":52,"props":519,"children":520},{},[521],{"type":49,"value":522},"Runs immediately when the teacher chose the full packet, or in the turn the draft is\napproved.",{"type":43,"tag":52,"props":524,"children":525},{},[526,528,539,541,547,549,555,557,563,565,571,573,579,581,586,588,593,595,601],{"type":49,"value":527},"The artifacts are rendered by bundled scripts from ",{"type":43,"tag":114,"props":529,"children":530},{},[531,533],{"type":49,"value":532},"one material-source ",{"type":43,"tag":180,"props":534,"children":536},{"className":535},[],[537],{"type":49,"value":538},"lesson.json",{"type":49,"value":540},". The JSON\nholds a ",{"type":43,"tag":180,"props":542,"children":544},{"className":543},[],[545],{"type":49,"value":546},"shared",{"type":49,"value":548}," block (content registered once) and a ",{"type":43,"tag":180,"props":550,"children":552},{"className":551},[],[553],{"type":49,"value":554},"documents[]",{"type":49,"value":556}," array (each document\nauthored as free-form ",{"type":43,"tag":180,"props":558,"children":560},{"className":559},[],[561],{"type":49,"value":562},"sections",{"type":49,"value":564},"). A section's ",{"type":43,"tag":180,"props":566,"children":568},{"className":567},[],[569],{"type":49,"value":570},"heading",{"type":49,"value":572}," renders as a large title directly\nabove its blocks; a block's ",{"type":43,"tag":180,"props":574,"children":576},{"className":575},[],[577],{"type":49,"value":578},"label",{"type":49,"value":580}," renders as a bold lead-in on the block itself. A label\nthat repeats its section's heading prints the same words twice in a row — labels carry what\nthe heading doesn't (the task's name belongs in one of them, not both). You\ncompose every page — the lesson plan, the student\nmaterials, the observation template, and any others the lesson needs (e.g. a source packet)\n— directly in ",{"type":43,"tag":180,"props":582,"children":584},{"className":583},[],[585],{"type":49,"value":554},{"type":49,"value":587},". Anything that appears on more than one page is registered once\nin ",{"type":43,"tag":180,"props":589,"children":591},{"className":590},[],[592],{"type":49,"value":546},{"type":49,"value":594}," under a key you choose and pulled into each document with\n",{"type":43,"tag":180,"props":596,"children":598},{"className":597},[],[599],{"type":49,"value":600},"{\"type\": \"from_shared\", \"key\": …}",{"type":49,"value":602},", so the pages cannot drift apart.",{"type":43,"tag":52,"props":604,"children":605},{},[606,608,613,615,620,622,628],{"type":49,"value":607},"Never write layout code, never re-type lesson content into another format, and never edit a\ngenerated document directly — every change goes into ",{"type":43,"tag":180,"props":609,"children":611},{"className":610},[],[612],{"type":49,"value":538},{"type":49,"value":614}," and is re-rendered\n(re-rendering is instant). ",{"type":43,"tag":114,"props":616,"children":617},{},[618],{"type":49,"value":619},"Do not open, cat, head, or grep the renderer scripts",{"type":49,"value":621}," — their\nbehavior is fully specified by the commands and output paths in §5a–5d, and\n",{"type":43,"tag":180,"props":623,"children":625},{"className":624},[],[626],{"type":49,"value":627},"references\u002Fexample_lesson.json",{"type":49,"value":629}," is the complete schema. Reading script source tells you\nnothing this file doesn't already state.",{"type":43,"tag":52,"props":631,"children":632},{},[633,638,640,645,647,653,655,660,662,667],{"type":43,"tag":114,"props":634,"children":635},{},[636],{"type":49,"value":637},"Plain language with the teacher.",{"type":49,"value":639}," The machinery above is invisible to the teacher: never\nmention JSON, HTML, schemas, scripts, rendering, file names (",{"type":43,"tag":180,"props":641,"children":643},{"className":642},[],[644],{"type":49,"value":538},{"type":49,"value":646},"), or code in any\nteacher-facing message — and never link or name the ",{"type":43,"tag":180,"props":648,"children":650},{"className":649},[],[651],{"type":49,"value":652},".html",{"type":49,"value":654}," files the render command also\nwrites. Say ",{"type":43,"tag":79,"props":656,"children":657},{},[658],{"type":49,"value":659},"\"Here's your lesson plan — the student materials and observation template are on\ntheir way\"",{"type":49,"value":661},", not ",{"type":43,"tag":79,"props":663,"children":664},{},[665],{"type":49,"value":666},"\"I've rendered lesson.json\"",{"type":49,"value":668},". The only format word in your prose is\n\"Word document\". This\napplies to every turn: presenting artifacts, the satisfaction ask, revision summaries, and\nerror messages (if generation fails, say the documents couldn't be created — not that a\nscript or JSON failed).",{"type":43,"tag":52,"props":670,"children":671},{},[672,677],{"type":43,"tag":114,"props":673,"children":674},{},[675],{"type":49,"value":676},"Density rules — hard requirements for every document.",{"type":49,"value":678}," Every document is clear, brief,\nand easy to skim. Include what a teacher needs to teach it; leave out what merely\ndemonstrates rigor. Headings use sentence case. Structure beats prose:",{"type":43,"tag":122,"props":680,"children":681},{},[682,703,708,713,726,746,751,763],{"type":43,"tag":110,"props":683,"children":684},{},[685,687,693,695,701],{"type":49,"value":686},"A ",{"type":43,"tag":180,"props":688,"children":690},{"className":689},[],[691],{"type":49,"value":692},"paragraph",{"type":49,"value":694}," or ",{"type":43,"tag":180,"props":696,"children":698},{"className":697},[],[699],{"type":49,"value":700},"labeled",{"type":49,"value":702}," block is at most 3 sentences. Longer → split it, bullet it, or\ntable it.",{"type":43,"tag":110,"props":704,"children":705},{},[706],{"type":49,"value":707},"Write like a colleague's note: plain, direct sentences built from commas and periods.",{"type":43,"tag":110,"props":709,"children":710},{},[711],{"type":49,"value":712},"Bullets are fragments — one idea each, ≤ ~15 words; never chain clauses with semicolons.",{"type":43,"tag":110,"props":714,"children":715},{},[716,718,724],{"type":49,"value":717},"Parallel variants (per-group supports, per-phase differentiation, tiered look-fors) go in\nONE ",{"type":43,"tag":180,"props":719,"children":721},{"className":720},[],[722],{"type":49,"value":723},"table",{"type":49,"value":725}," block — rows = phases or features, columns = variants, ≤ ~25 words per cell —\nnever back-to-back multi-sentence paragraphs.",{"type":43,"tag":110,"props":727,"children":728},{},[729,731,736,738,744],{"type":49,"value":730},"A callout marks the few moments a teacher must not miss — a warning (\"do not resolve the\ndebate yet\"), a collect-before-moving-on, the one make-or-break move of a phase. A page\nwhere everything is boxed highlights nothing: a phase reads as plain script with at most\none or two callouts. Teacher asides (watch-fors, confer prompts) are ",{"type":43,"tag":180,"props":732,"children":734},{"className":733},[],[735],{"type":49,"value":700},{"type":49,"value":737}," or\n",{"type":43,"tag":180,"props":739,"children":741},{"className":740},[],[742],{"type":49,"value":743},"instructions",{"type":49,"value":745}," blocks.",{"type":43,"tag":110,"props":747,"children":748},{},[749],{"type":49,"value":750},"Each instruction lives in exactly one place. A phase's opening prose and its blocks divide\nthe work between them — the prose sets up, the blocks carry the content; neither repeats\nthe other.",{"type":43,"tag":110,"props":752,"children":753},{},[754,756,761],{"type":49,"value":755},"Quote the standard verbatim exactly once (the target-standard callout, from ",{"type":43,"tag":180,"props":757,"children":759},{"className":758},[],[760],{"type":49,"value":546},{"type":49,"value":762},").\nEverywhere else — prerequisite grounding, forward connections — reference by code plus a\ngist of ten words or fewer; never re-paste full standard text.",{"type":43,"tag":110,"props":764,"children":765},{},[766],{"type":49,"value":767},"A section that runs past about half a page of continuous prose must be restructured\n(table, bullets, or split into two sections) before rendering.",{"type":43,"tag":52,"props":769,"children":770},{},[771,776],{"type":43,"tag":114,"props":772,"children":773},{},[774],{"type":49,"value":775},"Everything matches — hard requirements for every document.",{"type":49,"value":777}," A teacher trusts the package\nbecause every part agrees with every other part:",{"type":43,"tag":122,"props":779,"children":780},{},[781,786,796,801,806,811,816,821],{"type":43,"tag":110,"props":782,"children":783},{},[784],{"type":49,"value":785},"The materials list and the phases agree exactly: every listed item is used by a named\nphase, and every counted set matches its enumeration (\"Picture cards, 18\" lists 18 words).",{"type":43,"tag":110,"props":787,"children":788},{},[789,794],{"type":43,"tag":114,"props":790,"children":791},{},[792],{"type":49,"value":793},"Classroom-ready:",{"type":49,"value":795}," the lesson runs on what the teacher already holds. Every Materials\nitem is a page this package ships, equipment the classroom has, or a sourced resource\nwith its access path stated — exact title and source, a link when you could confirm one.\nAnything harder to get than that stays out of the lesson unless the teacher steered\ntoward it. A printable the lesson depends on ships with the package — as lesson pages\nwhen the document set expresses it, or as its own file in the format that renders it\nbest (5e).",{"type":43,"tag":110,"props":797,"children":798},{},[799],{"type":49,"value":800},"A task worded in two places (plan's \"Students see\" and the student page) uses identical\nwording in both.",{"type":43,"tag":110,"props":802,"children":803},{},[804],{"type":49,"value":805},"Student tasks match the skill the standard names, in both directions. Decoding, spelling,\nand writing skills happen on paper — students read and write real words on a student page.\nListening and speaking skills get spoken, pointed, sorted, drawn, or circled responses.\nThe lesson's scope statement binds every task that follows it.",{"type":43,"tag":110,"props":807,"children":808},{},[809],{"type":49,"value":810},"Scripts and worked examples are final say-aloud text: every step decided before it lands\non the page, exactly what the teacher says.",{"type":43,"tag":110,"props":812,"children":813},{},[814],{"type":49,"value":815},"Exit-ticket sort buckets partition the answers: each example response fits exactly one\nbucket, and equivalent forms of one answer (17 + 24 = ? and 24 + 17 = ?) sit in the same\nbucket together.",{"type":43,"tag":110,"props":817,"children":818},{},[819],{"type":49,"value":820},"An answer space mirrors its ask: rows match the count requested, and every box sits under\na prompt naming what goes in it.",{"type":43,"tag":110,"props":822,"children":823},{},[824],{"type":49,"value":825},"Number pairs inside a sentence are plain text (\"2 → 10, 5 → 25\"); a table is always its\nown block.",{"type":43,"tag":52,"props":827,"children":828},{},[829,834],{"type":43,"tag":114,"props":830,"children":831},{},[832],{"type":49,"value":833},"Reading level and workload.",{"type":49,"value":835}," Student-facing text reads at the students' reading level —\nwhich the teacher may state separately from the grade (\"my 6th graders read at a 2nd–4th\ngrade level\" means grade-6 content carried in sentences a 2nd–4th grade reader can read:\nshort sentences, everyday words, one instruction at a time). Size the student work to the\nclass period: a typical student finishes the worksheet in the minutes its phase allows.\nSay \"home language,\" not a specific language, and print translations only into a language\nthe teacher has named.",{"type":43,"tag":52,"props":837,"children":838},{},[839,844],{"type":43,"tag":114,"props":840,"children":841},{},[842],{"type":49,"value":843},"Sentence supports",{"type":49,"value":845}," are plain text where students write: a starter to begin from\n(\"One central idea is…\") or a fill-in frame with blanks sized for the student's handwriting.\nA support helps the student start, not answer — it never pre-fills what the task asks for.\nPlace each one on the specific task whose writing move is hardest — including the\nexplain-why beside a math equation — never one bank copied across problems. K-2 students\nand multilingual learners get a support on every task that asks for composed sentences.\nTasks that take only a number, a single word, or a drawing need none.",{"type":43,"tag":52,"props":847,"children":848},{},[849,854,856,861,863,868],{"type":43,"tag":114,"props":850,"children":851},{},[852],{"type":49,"value":853},"Spell out framework names",{"type":49,"value":855}," in every teacher-facing document — ",{"type":43,"tag":79,"props":857,"children":858},{},[859],{"type":49,"value":860},"Science and Engineering\nPractice",{"type":49,"value":862},", not bare ",{"type":43,"tag":79,"props":864,"children":865},{},[866],{"type":49,"value":867},"SEP",{"type":49,"value":869}," — a teacher should never need to look up an acronym.",{"type":43,"tag":52,"props":871,"children":872},{},[873,878],{"type":43,"tag":114,"props":874,"children":875},{},[876],{"type":49,"value":877},"Document integrity.",{"type":49,"value":879}," Every document is finished prose a teacher hands out or works from:",{"type":43,"tag":122,"props":881,"children":882},{},[883,888,893,898,903,908],{"type":43,"tag":110,"props":884,"children":885},{},[886],{"type":49,"value":887},"Every in-document reference points at something that exists in the package: \"jot it in the\ntable below\" means that table is on the page; an exit ticket collected separately prints as\nits own piece; a reference table uses the same numbers as the problems it supports.",{"type":43,"tag":110,"props":889,"children":890},{},[891],{"type":49,"value":892},"Materials and the lesson match both ways: each listed item is used somewhere in the\nlesson, every item any section sends students to — phases and extensions alike — appears\nin Materials, and anything students read is printed in the package or named by its exact\ntitle. Offers and pointers to the chat conversation stay out\nof documents entirely.",{"type":43,"tag":110,"props":894,"children":895},{},[896],{"type":49,"value":897},"Lessons are light on materials: the default kit is what every classroom has (board,\nprojector, paper) plus the pages this lesson ships. A separate printable or manipulative\nearns its place only when the activity genuinely needs it — and the same thinking work on\nthe worksheet usually serves. When a printable earns it (cards, mats, a template), ship it\nwith the package (5e picks the format); equipment a classroom owns is simply listed.",{"type":43,"tag":110,"props":899,"children":900},{},[901],{"type":49,"value":902},"Phase minutes include the transitions they cause (handing out, regrouping, collecting), at\na pace real students of this grade manage, and the phases sum to exactly the stated\nperiod — transition time lives inside the phases, never as invisible buffer.",{"type":43,"tag":110,"props":904,"children":905},{},[906],{"type":49,"value":907},"Teacher notes read as finished sentences. A predicted error names one specific wrong answer\na real student would produce.",{"type":43,"tag":110,"props":909,"children":910},{},[911],{"type":49,"value":912},"Verify every computation by working it — answer keys, worked examples, and any quantitative\nchain the lesson builds on (an energy pyramid's levels, a ratio table's entries, a coin\ntotal) produce the numbers the materials state.",{"type":43,"tag":914,"props":915,"children":917},"h3",{"id":916},"_5a-write-the-complete-lessonjson-same-turn",[918,920,925],{"type":49,"value":919},"5a. Write the complete ",{"type":43,"tag":180,"props":921,"children":923},{"className":922},[],[924],{"type":49,"value":538},{"type":49,"value":926}," (same turn)",{"type":43,"tag":52,"props":928,"children":929},{},[930,932,937,939,944,946,952],{"type":49,"value":931},"Write ONE ",{"type":43,"tag":180,"props":933,"children":935},{"className":934},[],[936],{"type":49,"value":538},{"type":49,"value":938}," with two top-level keys: ",{"type":43,"tag":180,"props":940,"children":942},{"className":941},[],[943],{"type":49,"value":546},{"type":49,"value":945}," and ",{"type":43,"tag":180,"props":947,"children":949},{"className":948},[],[950],{"type":49,"value":951},"documents",{"type":49,"value":953},".",{"type":43,"tag":52,"props":955,"children":956},{},[957,967,969,975,977,983,985,991,992,998,999,1005,1007,1013,1014,1020,1021,1027,1029,1035,1037,1043,1045,1051,1053,1059,1061,1066,1068,1073,1075,1081,1083,1088,1090,1096,1098,1103,1105,1111,1113,1118,1120,1125,1127,1132],{"type":43,"tag":114,"props":958,"children":959},{},[960,965],{"type":43,"tag":180,"props":961,"children":963},{"className":962},[],[964],{"type":49,"value":546},{"type":49,"value":966}," is a content registry.",{"type":49,"value":968}," It always carries the lesson identity — ",{"type":43,"tag":180,"props":970,"children":972},{"className":971},[],[973],{"type":49,"value":974},"grade",{"type":49,"value":976},",\n",{"type":43,"tag":180,"props":978,"children":980},{"className":979},[],[981],{"type":49,"value":982},"subject",{"type":49,"value":984},", ",{"type":43,"tag":180,"props":986,"children":988},{"className":987},[],[989],{"type":49,"value":990},"duration",{"type":49,"value":984},{"type":43,"tag":180,"props":993,"children":995},{"className":994},[],[996],{"type":49,"value":997},"standard_code",{"type":49,"value":984},{"type":43,"tag":180,"props":1000,"children":1002},{"className":1001},[],[1003],{"type":49,"value":1004},"standard_text",{"type":49,"value":1006}," (and ",{"type":43,"tag":180,"props":1008,"children":1010},{"className":1009},[],[1011],{"type":49,"value":1012},"curriculum",{"type":49,"value":976},{"type":43,"tag":180,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":49,"value":1019},"prerequisite_standard",{"type":49,"value":984},{"type":43,"tag":180,"props":1022,"children":1024},{"className":1023},[],[1025],{"type":49,"value":1026},"smps[]",{"type":49,"value":1028}," when applicable). Beyond that, register any content that\nappears on more than one page under a key you choose: a problem as ",{"type":43,"tag":180,"props":1030,"children":1032},{"className":1031},[],[1033],{"type":49,"value":1034},"p1",{"type":49,"value":1036},", a source as\n",{"type":43,"tag":180,"props":1038,"children":1040},{"className":1039},[],[1041],{"type":49,"value":1042},"stamp_act_petition",{"type":49,"value":1044},", a data set as ",{"type":43,"tag":180,"props":1046,"children":1048},{"className":1047},[],[1049],{"type":49,"value":1050},"prices_table",{"type":49,"value":1052},". A key's\nvalue can be a string, a single block, a list of blocks, or a faceted object\n",{"type":43,"tag":180,"props":1054,"children":1056},{"className":1055},[],[1057],{"type":49,"value":1058},"{teacher: …, student: …, stimulus: [blocks]}",{"type":49,"value":1060},". On a ",{"type":43,"tag":114,"props":1062,"children":1063},{},[1064],{"type":49,"value":1065},"student",{"type":49,"value":1067}," page, only the ",{"type":43,"tag":180,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":49,"value":1065},{"type":49,"value":1074},"\nfacet (after any ",{"type":43,"tag":180,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":49,"value":1080},"stimulus",{"type":49,"value":1082}," blocks) renders — a ",{"type":43,"tag":180,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":49,"value":1065},{"type":49,"value":1089}," of ",{"type":43,"tag":180,"props":1091,"children":1093},{"className":1092},[],[1094],{"type":49,"value":1095},"null",{"type":49,"value":1097}," means nothing prints\nthere, which is how oral or teacher-led tasks stay off the worksheet. On a ",{"type":43,"tag":114,"props":1099,"children":1100},{},[1101],{"type":49,"value":1102},"teacher",{"type":49,"value":1104}," page,\nboth facets render: the teacher facet as plain script, then the student facet as one\n\"Students see\" line, so the teacher reads their own script and the exact prompt\nstudents will work from. A teacher facet written as a list of strings renders one move per\nline — the glanceable form for any script with more than two moves — and since the student\ntext prints right beside it, the script points to it (\"read the story in the box aloud\")\nrather than quoting it again. Apart from ",{"type":43,"tag":180,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":49,"value":1110},"standard",{"type":49,"value":1112}," (which assembles ",{"type":43,"tag":180,"props":1114,"children":1116},{"className":1115},[],[1117],{"type":49,"value":997},{"type":49,"value":1119}," +\n",{"type":43,"tag":180,"props":1121,"children":1123},{"className":1122},[],[1124],{"type":49,"value":1004},{"type":49,"value":1126}," into the target-standard callout), key names carry no special rendering — a\nvocabulary list, a misconceptions table, an exit-ticket sort are blocks you compose yourself\n(see ",{"type":43,"tag":180,"props":1128,"children":1130},{"className":1129},[],[1131],{"type":49,"value":627},{"type":49,"value":1133}," for the patterns).",{"type":43,"tag":52,"props":1135,"children":1136},{},[1137,1147,1149,1155],{"type":43,"tag":114,"props":1138,"children":1139},{},[1140,1145],{"type":43,"tag":180,"props":1141,"children":1143},{"className":1142},[],[1144],{"type":49,"value":554},{"type":49,"value":1146}," is where you compose each page.",{"type":49,"value":1148}," Each entry is a full page:\n",{"type":43,"tag":180,"props":1150,"children":1152},{"className":1151},[],[1153],{"type":49,"value":1154},"{id, audience: teacher|student, eyebrow, title, meta?, theme?, sections[{heading, blocks[]}]}",{"type":49,"value":1156},".\nInclude at minimum:",{"type":43,"tag":122,"props":1158,"children":1159},{},[1160,1179,1204],{"type":43,"tag":110,"props":1161,"children":1162},{},[1163,1169,1171,1177],{"type":43,"tag":180,"props":1164,"children":1166},{"className":1165},[],[1167],{"type":49,"value":1168},"id: \"lesson_plan\"",{"type":49,"value":1170}," (",{"type":43,"tag":180,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":49,"value":1176},"audience: \"teacher\"",{"type":49,"value":1178},") — the subject file's section structure.",{"type":43,"tag":110,"props":1180,"children":1181},{},[1182,1188,1189,1194,1196,1202],{"type":43,"tag":180,"props":1183,"children":1185},{"className":1184},[],[1186],{"type":49,"value":1187},"id: \"observation_template\"",{"type":49,"value":1170},{"type":43,"tag":180,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":49,"value":1176},{"type":49,"value":1195},") — how-to-use, look-fors,\nmisconceptions, a ",{"type":43,"tag":180,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":49,"value":1201},"fill_table",{"type":49,"value":1203}," for student notes, and the exit-ticket sort.",{"type":43,"tag":110,"props":1205,"children":1206},{},[1207,1213,1214,1220,1222,1227,1229,1235,1237,1242],{"type":43,"tag":180,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":49,"value":1212},"id: \"student_materials\"",{"type":49,"value":1170},{"type":43,"tag":180,"props":1215,"children":1217},{"className":1216},[],[1218],{"type":49,"value":1219},"audience: \"student\"",{"type":49,"value":1221},") — ",{"type":43,"tag":114,"props":1223,"children":1224},{},[1225],{"type":49,"value":1226},"only when students hold a printed\npage.",{"type":49,"value":1228}," A K-2 phonics or oral lesson may have none; a source-heavy lesson may have this AND\na separate ",{"type":43,"tag":180,"props":1230,"children":1232},{"className":1231},[],[1233],{"type":49,"value":1234},"id: \"source_packet\"",{"type":49,"value":1236},". The subject file's ",{"type":43,"tag":79,"props":1238,"children":1239},{},[1240],{"type":49,"value":1241},"Student page layout",{"type":49,"value":1243}," gives the\ndefault skeleton; adapt it to the lesson. If the teacher asked for leveled\u002Ftiered student\nmaterials, label them Group A \u002F B \u002F C (A = below, B = at, C = above grade level) — level\nwording stays in the teacher-facing documents.",{"type":43,"tag":52,"props":1245,"children":1246},{},[1247,1249,1255,1257,1263,1265,1271],{"type":49,"value":1248},"Inside any document, pull registered content with ",{"type":43,"tag":180,"props":1250,"children":1252},{"className":1251},[],[1253],{"type":49,"value":1254},"{\"type\": \"from_shared\", \"key\": \"…\"}",{"type":49,"value":1256}," —\nthe same key on two pages renders the same content (faceted by audience). Adding\n",{"type":43,"tag":180,"props":1258,"children":1260},{"className":1259},[],[1261],{"type":49,"value":1262},"\"label\": \"1\"",{"type":49,"value":1264}," to a ",{"type":43,"tag":180,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":49,"value":1270},"from_shared",{"type":49,"value":1272}," block renders the pulled text as a numbered item on one\nline. Within a single document, pull each key once (a reference table, an exit-ticket\nprotocol, a word list appears in one section only). Content that appears on only one page\ncan be written inline.",{"type":43,"tag":52,"props":1274,"children":1275},{},[1276,1281],{"type":43,"tag":114,"props":1277,"children":1278},{},[1279],{"type":49,"value":1280},"Schema",{"type":49,"value":1282}," — sufficient on its own; do not read any other file for the schema:",{"type":43,"tag":1284,"props":1285,"children":1289},"pre",{"className":1286,"code":1288,"language":49},[1287],"language-text","shared:\n  grade, subject, duration, standard_code, standard_text          (required identity)\n  curriculum?, prerequisite_standard?, smps[]?\n  \u003Cany key you choose>: string\n                      | block | block[]\n                      | {teacher: …, student: … or null, stimulus?: block[]}\n  (only `standard` is special — it assembles standard_code+standard_text)\ndocuments[]: {id, audience: teacher|student, eyebrow, title, meta?, theme?,\n              sections[]: {heading, color?, blocks[]}}\nblock types:\n  {type: from_shared, key}\n  {type: paragraph, text} | {type: labeled, label, text}\n  {type: callout, kind: special|student-task|teacher-note|student-note, label, text}\n  {type: h2|h3, text} | {type: list, label?, ordered?, items[]}\n  {type: phase_header, name, minutes} | {type: cards, items[{title, text}]}\n  {type: table|data_table, headers[]?, rows[[]]}\n  {type: fill_table, headers[], blank_rows: int, row_height_pt?}\n  {type: number_line, min, max, ticks?, marks[]?}\n  {type: source_card, title, author?, date?, origin?, excerpt}\n  {type: answer_box, height_pt?, ruled?} | {type: page_break}\n  {type: group, blocks[]} | {type: columns, left[], right[]}\n",[1290],{"type":43,"tag":180,"props":1291,"children":1293},{"__ignoreMap":1292},"",[1294],{"type":49,"value":1288},{"type":43,"tag":52,"props":1296,"children":1297},{},[1298,1303,1305,1310,1312,1318,1320,1326],{"type":43,"tag":180,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":49,"value":627},{"type":49,"value":1304}," is a filled-in worked example. Keep writing tight; no emoji\nin JSON content. The density rules above are hard requirements for every text field.\nPrint-safety: never markdown pipe tables (use ",{"type":43,"tag":180,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":49,"value":723},{"type":49,"value":1311},"\u002F",{"type":43,"tag":180,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":49,"value":1317},"data_table",{"type":49,"value":1319},"); for number lines use\nthe ",{"type":43,"tag":180,"props":1321,"children":1323},{"className":1322},[],[1324],{"type":49,"value":1325},"number_line",{"type":49,"value":1327}," block, not a digit string. The renderer cannot draw images — anything the\nteacher displays (a video, photo, projected image, chart) lives in the lesson plan: name it\nin Materials and in the phase script that uses it. A student page carries only what is\nprinted on it.",{"type":43,"tag":52,"props":1329,"children":1330},{},[1331,1336,1338,1343],{"type":43,"tag":114,"props":1332,"children":1333},{},[1334],{"type":49,"value":1335},"Which block when",{"type":49,"value":1337}," — pick by what the content ",{"type":43,"tag":79,"props":1339,"children":1340},{},[1341],{"type":49,"value":1342},"is",{"type":49,"value":1344},", not how it should look:",{"type":43,"tag":723,"props":1346,"children":1347},{},[1348,1367],{"type":43,"tag":1349,"props":1350,"children":1351},"thead",{},[1352],{"type":43,"tag":1353,"props":1354,"children":1355},"tr",{},[1356,1362],{"type":43,"tag":1357,"props":1358,"children":1359},"th",{},[1360],{"type":49,"value":1361},"Block",{"type":43,"tag":1357,"props":1363,"children":1364},{},[1365],{"type":49,"value":1366},"Use it for",{"type":43,"tag":1368,"props":1369,"children":1370},"tbody",{},[1371,1397,1420,1443,1467,1490,1529,1545,1569,1595,1632,1679,1753,1770,1825],{"type":43,"tag":1353,"props":1372,"children":1373},{},[1374,1392],{"type":43,"tag":1375,"props":1376,"children":1377},"td",{},[1378,1384,1386],{"type":43,"tag":180,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":49,"value":1383},"callout",{"type":49,"value":1385}," ",{"type":43,"tag":180,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":49,"value":1391},"kind: special",{"type":43,"tag":1375,"props":1393,"children":1394},{},[1395],{"type":49,"value":1396},"The one anchoring fact per artifact — the target standard. Typically once.",{"type":43,"tag":1353,"props":1398,"children":1399},{},[1400,1415],{"type":43,"tag":1375,"props":1401,"children":1402},{},[1403,1408,1409],{"type":43,"tag":180,"props":1404,"children":1406},{"className":1405},[],[1407],{"type":49,"value":1383},{"type":49,"value":1385},{"type":43,"tag":180,"props":1410,"children":1412},{"className":1411},[],[1413],{"type":49,"value":1414},"kind: student-task",{"type":43,"tag":1375,"props":1416,"children":1417},{},[1418],{"type":49,"value":1419},"Any task students do: anchor task, exit ticket prompt, a practice problem shown in the plan.",{"type":43,"tag":1353,"props":1421,"children":1422},{},[1423,1438],{"type":43,"tag":1375,"props":1424,"children":1425},{},[1426,1431,1432],{"type":43,"tag":180,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":49,"value":1383},{"type":49,"value":1385},{"type":43,"tag":180,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":49,"value":1437},"kind: teacher-note",{"type":43,"tag":1375,"props":1439,"children":1440},{},[1441],{"type":49,"value":1442},"An aside the teacher reads but does not say aloud: \"don't resolve yet\", conferring moves, a watch-for.",{"type":43,"tag":1353,"props":1444,"children":1445},{},[1446,1462],{"type":43,"tag":1375,"props":1447,"children":1448},{},[1449,1455,1456],{"type":43,"tag":180,"props":1450,"children":1452},{"className":1451},[],[1453],{"type":49,"value":1454},"list",{"type":49,"value":1385},{"type":43,"tag":180,"props":1457,"children":1459},{"className":1458},[],[1460],{"type":49,"value":1461},"ordered: true",{"type":43,"tag":1375,"props":1463,"children":1464},{},[1465],{"type":49,"value":1466},"A numbered sequence — the problem set, procedure steps. Unordered otherwise.",{"type":43,"tag":1353,"props":1468,"children":1469},{},[1470,1485],{"type":43,"tag":1375,"props":1471,"children":1472},{},[1473,1478,1480],{"type":43,"tag":180,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":49,"value":1454},{"type":49,"value":1479}," with ",{"type":43,"tag":180,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":49,"value":578},{"type":43,"tag":1375,"props":1486,"children":1487},{},[1488],{"type":49,"value":1489},"A titled enumeration — several discrete items under one label.",{"type":43,"tag":1353,"props":1491,"children":1492},{},[1493,1501],{"type":43,"tag":1375,"props":1494,"children":1495},{},[1496],{"type":43,"tag":180,"props":1497,"children":1499},{"className":1498},[],[1500],{"type":49,"value":67},{"type":43,"tag":1375,"props":1502,"children":1503},{},[1504,1506,1512,1514,1520,1522,1528],{"type":49,"value":1505},"Sub-sections inside a section — the lesson-sequence phases use ",{"type":43,"tag":180,"props":1507,"children":1509},{"className":1508},[],[1510],{"type":49,"value":1511},"phase_header",{"type":49,"value":1513},", which renders as h2 with minutes; the ",{"type":43,"tag":180,"props":1515,"children":1517},{"className":1516},[],[1518],{"type":49,"value":1519},"minutes",{"type":49,"value":1521}," across all phase headers should sum to ",{"type":43,"tag":180,"props":1523,"children":1525},{"className":1524},[],[1526],{"type":49,"value":1527},"shared.duration",{"type":49,"value":953},{"type":43,"tag":1353,"props":1530,"children":1531},{},[1532,1540],{"type":43,"tag":1375,"props":1533,"children":1534},{},[1535],{"type":43,"tag":180,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":49,"value":914},{"type":43,"tag":1375,"props":1541,"children":1542},{},[1543],{"type":49,"value":1544},"A title above one block (a table, a list group, the look-fors).",{"type":43,"tag":1353,"props":1546,"children":1547},{},[1548,1557],{"type":43,"tag":1375,"props":1549,"children":1550},{},[1551],{"type":43,"tag":180,"props":1552,"children":1554},{"className":1553},[],[1555],{"type":49,"value":1556},"cards",{"type":43,"tag":1375,"props":1558,"children":1559},{},[1560,1562,1567],{"type":49,"value":1561},"2–4 parallel items of roughly equal length — exit-ticket sort buckets, tier summaries. Never for long or unbalanced items; use a ",{"type":43,"tag":180,"props":1563,"children":1565},{"className":1564},[],[1566],{"type":49,"value":1454},{"type":49,"value":1568}," for those.",{"type":43,"tag":1353,"props":1570,"children":1571},{},[1572,1590],{"type":43,"tag":1375,"props":1573,"children":1574},{},[1575,1580,1582,1588],{"type":43,"tag":180,"props":1576,"children":1578},{"className":1577},[],[1579],{"type":49,"value":723},{"type":49,"value":1581}," (no ",{"type":43,"tag":180,"props":1583,"children":1585},{"className":1584},[],[1586],{"type":49,"value":1587},"headers",{"type":49,"value":1589},")",{"type":43,"tag":1375,"props":1591,"children":1592},{},[1593],{"type":49,"value":1594},"Term\u002Fdefinition pairs, label\u002Fvalue reference rows.",{"type":43,"tag":1353,"props":1596,"children":1597},{},[1598,1619],{"type":43,"tag":1375,"props":1599,"children":1600},{},[1601,1606,1608,1613,1614],{"type":43,"tag":180,"props":1602,"children":1604},{"className":1603},[],[1605],{"type":49,"value":723},{"type":49,"value":1607}," \u002F ",{"type":43,"tag":180,"props":1609,"children":1611},{"className":1610},[],[1612],{"type":49,"value":1317},{"type":49,"value":1479},{"type":43,"tag":180,"props":1615,"children":1617},{"className":1616},[],[1618],{"type":49,"value":1587},{"type":43,"tag":1375,"props":1620,"children":1621},{},[1622,1624,1630],{"type":49,"value":1623},"Real tabular data with column labels (misconceptions, scaffolds, the data set students analyze). ",{"type":43,"tag":180,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":49,"value":1629},"display: \"large\"",{"type":49,"value":1631}," renders cells in big centered type — a word grid young students point to and read.",{"type":43,"tag":1353,"props":1633,"children":1634},{},[1635,1643],{"type":43,"tag":1375,"props":1636,"children":1637},{},[1638],{"type":43,"tag":180,"props":1639,"children":1641},{"className":1640},[],[1642],{"type":49,"value":1201},{"type":43,"tag":1375,"props":1644,"children":1645},{},[1646,1648,1654,1656,1661,1663,1669,1671,1677],{"type":49,"value":1647},"An organizer students write into — observation log, comparison grid, evidence collector. ",{"type":43,"tag":180,"props":1649,"children":1651},{"className":1650},[],[1652],{"type":49,"value":1653},"rows",{"type":49,"value":1655}," as a count gives blank rows; ",{"type":43,"tag":180,"props":1657,"children":1659},{"className":1658},[],[1660],{"type":49,"value":1653},{"type":49,"value":1662}," as a list mixes filled and blank — ",{"type":43,"tag":180,"props":1664,"children":1666},{"className":1665},[],[1667],{"type":49,"value":1668},"[[\"cap\",\"cape\"], [], []]",{"type":49,"value":1670}," shows a worked first row, then write-in space, and ",{"type":43,"tag":180,"props":1672,"children":1674},{"className":1673},[],[1675],{"type":49,"value":1676},"[[\"Shell\", \"\", \"\"]]",{"type":49,"value":1678}," gives a labeled row with blank cells students write in (say what goes in the blank — a ✓, yes\u002Fno, a word — in the instruction line above).",{"type":43,"tag":1353,"props":1680,"children":1681},{},[1682,1690],{"type":43,"tag":1375,"props":1683,"children":1684},{},[1685],{"type":43,"tag":180,"props":1686,"children":1688},{"className":1687},[],[1689],{"type":49,"value":1325},{"type":43,"tag":1375,"props":1691,"children":1692},{},[1693,1695,1701,1702,1708,1709,1715,1717,1723,1725,1730,1732,1738,1740,1745,1746,1751],{"type":49,"value":1694},"A drawn number line (",{"type":43,"tag":180,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":49,"value":1700},"min",{"type":49,"value":984},{"type":43,"tag":180,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":49,"value":1707},"max",{"type":49,"value":984},{"type":43,"tag":180,"props":1710,"children":1712},{"className":1711},[],[1713],{"type":49,"value":1714},"ticks",{"type":49,"value":1716},", optional ",{"type":43,"tag":180,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":49,"value":1722},"marks",{"type":49,"value":1724},"). ",{"type":43,"tag":180,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":49,"value":1714},{"type":49,"value":1731}," omitted defaults to 10 evenly spaced segments; ",{"type":43,"tag":180,"props":1733,"children":1735},{"className":1734},[],[1736],{"type":49,"value":1737},"ticks: 0",{"type":49,"value":1739}," draws a bare line with only the ",{"type":43,"tag":180,"props":1741,"children":1743},{"className":1742},[],[1744],{"type":49,"value":1700},{"type":49,"value":1311},{"type":43,"tag":180,"props":1747,"children":1749},{"className":1748},[],[1750],{"type":49,"value":1707},{"type":49,"value":1752}," end labels and no tick marks, for students to partition themselves.",{"type":43,"tag":1353,"props":1754,"children":1755},{},[1756,1765],{"type":43,"tag":1375,"props":1757,"children":1758},{},[1759],{"type":43,"tag":180,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":49,"value":1764},"source_card",{"type":43,"tag":1375,"props":1766,"children":1767},{},[1768],{"type":49,"value":1769},"A primary or secondary source excerpt students read: title\u002Fauthor\u002Fdate + the excerpt text.",{"type":43,"tag":1353,"props":1771,"children":1772},{},[1773,1782],{"type":43,"tag":1375,"props":1774,"children":1775},{},[1776],{"type":43,"tag":180,"props":1777,"children":1779},{"className":1778},[],[1780],{"type":49,"value":1781},"answer_box",{"type":43,"tag":1375,"props":1783,"children":1784},{},[1785,1787,1793,1795,1801,1803,1809,1811,1816,1818,1823],{"type":49,"value":1786},"Writing space after a task. With no ",{"type":43,"tag":180,"props":1788,"children":1790},{"className":1789},[],[1791],{"type":49,"value":1792},"height_pt",{"type":49,"value":1794}," it sizes itself to the grade band (K-2 ~200pt, 3-5 ~150pt, 6-8 ~130pt, 9-12 ~115pt). K-5 boxes draw ruled handwriting lines except in math, which defaults to open space; ",{"type":43,"tag":180,"props":1796,"children":1798},{"className":1797},[],[1799],{"type":49,"value":1800},"ruled: true",{"type":49,"value":1802}," draws lines at any grade — the surface for answers of composed sentences — and ",{"type":43,"tag":180,"props":1804,"children":1806},{"className":1805},[],[1807],{"type":49,"value":1808},"ruled: false",{"type":49,"value":1810}," gives open space for drawing or model-sketching. A task answered in a ",{"type":43,"tag":180,"props":1812,"children":1814},{"className":1813},[],[1815],{"type":49,"value":1201},{"type":49,"value":1817}," or on a ",{"type":43,"tag":180,"props":1819,"children":1821},{"className":1820},[],[1822],{"type":49,"value":1325},{"type":49,"value":1824}," already has its surface.",{"type":43,"tag":1353,"props":1826,"children":1827},{},[1828,1837],{"type":43,"tag":1375,"props":1829,"children":1830},{},[1831],{"type":43,"tag":180,"props":1832,"children":1834},{"className":1833},[],[1835],{"type":49,"value":1836},"group",{"type":43,"tag":1375,"props":1838,"children":1839},{},[1840],{"type":49,"value":1841},"Keeps a task's prompt, stimulus, supports, and answer box together so a page break never separates them.",{"type":43,"tag":914,"props":1843,"children":1845},{"id":1844},"_5b-render-every-word-document-one-command-same-turn",[1846],{"type":49,"value":1847},"5b. Render every Word document — one command, same turn",{"type":43,"tag":1284,"props":1849,"children":1853},{"className":1850,"code":1851,"language":1852,"meta":1292,"style":1292},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bash scripts\u002Frender_all.sh lesson.json \"$OUTPUT_DIR\"\n","bash",[1854],{"type":43,"tag":180,"props":1855,"children":1856},{"__ignoreMap":1292},[1857],{"type":43,"tag":1858,"props":1859,"children":1862},"span",{"class":1860,"line":1861},"line",1,[1863,1868,1874,1879,1885,1891],{"type":43,"tag":1858,"props":1864,"children":1866},{"style":1865},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1867],{"type":49,"value":1852},{"type":43,"tag":1858,"props":1869,"children":1871},{"style":1870},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1872],{"type":49,"value":1873}," scripts\u002Frender_all.sh",{"type":43,"tag":1858,"props":1875,"children":1876},{"style":1870},[1877],{"type":49,"value":1878}," lesson.json",{"type":43,"tag":1858,"props":1880,"children":1882},{"style":1881},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1883],{"type":49,"value":1884}," \"",{"type":43,"tag":1858,"props":1886,"children":1888},{"style":1887},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1889],{"type":49,"value":1890},"$OUTPUT_DIR",{"type":43,"tag":1858,"props":1892,"children":1893},{"style":1881},[1894],{"type":49,"value":1895},"\"\n",{"type":43,"tag":52,"props":1897,"children":1898},{},[1899,1901,1907,1909,1914,1916,1922,1924,1930,1931,1937,1938,1944,1945,1951,1953,1958,1959,1964,1966,1971,1973,1978,1980,1985,1986,1991,1993,1999,2001,2006],{"type":49,"value":1900},"This writes one editable ",{"type":43,"tag":180,"props":1902,"children":1904},{"className":1903},[],[1905],{"type":49,"value":1906},".docx",{"type":49,"value":1908}," per ",{"type":43,"tag":180,"props":1910,"children":1912},{"className":1911},[],[1913],{"type":49,"value":554},{"type":49,"value":1915}," entry, named by ",{"type":43,"tag":180,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":49,"value":1921},"id",{"type":49,"value":1923}," (e.g.\n",{"type":43,"tag":180,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":49,"value":1929},"$OUTPUT_DIR\u002Flesson_plan.docx",{"type":49,"value":984},{"type":43,"tag":180,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":49,"value":1936},"student_materials.docx",{"type":49,"value":984},{"type":43,"tag":180,"props":1939,"children":1941},{"className":1940},[],[1942],{"type":49,"value":1943},"observation_template.docx",{"type":49,"value":976},{"type":43,"tag":180,"props":1946,"children":1948},{"className":1947},[],[1949],{"type":49,"value":1950},"source_packet.docx",{"type":49,"value":1952},"), plus ",{"type":43,"tag":180,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":49,"value":652},{"type":49,"value":945},{"type":43,"tag":180,"props":1960,"children":1962},{"className":1961},[],[1963],{"type":49,"value":538},{"type":49,"value":1965}," working files. Render straight into\n",{"type":43,"tag":180,"props":1967,"children":1969},{"className":1968},[],[1970],{"type":49,"value":1890},{"type":49,"value":1972}," and leave everything the script writes in place — later revision turns\nre-render from the working files even though the teacher only sees the Word documents. Then list ",{"type":43,"tag":180,"props":1974,"children":1976},{"className":1975},[],[1977],{"type":49,"value":1890},{"type":49,"value":1979},"\nand confirm every document has both its ",{"type":43,"tag":180,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":49,"value":1906},{"type":49,"value":945},{"type":43,"tag":180,"props":1987,"children":1989},{"className":1988},[],[1990],{"type":49,"value":652},{"type":49,"value":1992},"; if either is missing or tiny,\nrerun the script. Present the Word documents to the teacher together — attach the lesson plan\nlast so it lands on top (chat surfaces stack newest-first). If there is no ",{"type":43,"tag":180,"props":1994,"children":1996},{"className":1995},[],[1997],{"type":49,"value":1998},"student_materials",{"type":49,"value":2000},"\ndocument, say so plainly (\"This lesson is oral, so there's no student handout — students will\nwork with …\"). If the script errors, fix ",{"type":43,"tag":180,"props":2002,"children":2004},{"className":2003},[],[2005],{"type":49,"value":538},{"type":49,"value":2007}," (it is almost always malformed JSON)\nand rerun. If file generation fails entirely, say so clearly — do not silently fall back to a\nchat-only delivery.",{"type":43,"tag":914,"props":2009,"children":2011},{"id":2010},"_5c-the-satisfaction-ask-iteration-options-every-output-turn",[2012],{"type":49,"value":2013},"5c. The satisfaction ask + iteration options (every output turn)",{"type":43,"tag":52,"props":2015,"children":2016},{},[2017],{"type":49,"value":2018},"End the turn with EXACTLY ONE closing message that does three things, in this order:",{"type":43,"tag":106,"props":2020,"children":2021},{},[2022,2045,2064],{"type":43,"tag":110,"props":2023,"children":2024},{},[2025,2030,2032,2043],{"type":43,"tag":114,"props":2026,"children":2027},{},[2028],{"type":49,"value":2029},"If Materials names equipment the classroom has that a paper version can stand in\nfor",{"type":49,"value":2031}," — coins, blocks, dice, a hundred chart — lead with a bolded offer to print it:\n",{"type":43,"tag":79,"props":2033,"children":2034},{},[2035,2037,2042],{"type":49,"value":2036},"\"",{"type":43,"tag":114,"props":2038,"children":2039},{},[2040],{"type":49,"value":2041},"This lesson uses base-ten blocks — want me to make a printable set in case\nyours are short?",{"type":49,"value":2036},{"type":49,"value":2044}," Anything whose content this lesson wrote — word cards, a\nsource excerpt, a sorting mat with this lesson's categories — already ships with\nthe package.",{"type":43,"tag":110,"props":2046,"children":2047},{},[2048,2050,2055,2057,2062],{"type":49,"value":2049},"Asks whether the teacher is satisfied with ",{"type":43,"tag":114,"props":2051,"children":2052},{},[2053],{"type":49,"value":2054},"every artifact produced",{"type":49,"value":2056}," or wants changes —\ne.g. ",{"type":43,"tag":79,"props":2058,"children":2059},{},[2060],{"type":49,"value":2061},"\"Take a look at the lesson plan, student materials, and observation template — anything\nyou'd like me to adjust?\"",{"type":49,"value":2063}," Do not skip the ask.",{"type":43,"tag":110,"props":2065,"children":2066},{},[2067,2069,2074,2076],{"type":49,"value":2068},"Offers 3–4 high-leverage, ",{"type":43,"tag":114,"props":2070,"children":2071},{},[2072],{"type":49,"value":2073},"specific",{"type":49,"value":2075}," iteration options customized to the subject and\ntopic. Do not write \"let me know if you want changes\" — that's a non-offer. For example,\nfor a 3–5 ELA reading comprehension lesson: ",{"type":43,"tag":79,"props":2077,"children":2078},{},[2079],{"type":49,"value":2080},"\"Would you like to (1) add more scaffolds for\nEnglish learners, (2) differentiate by proficiency level, or (3) adapt to be specific to\nyour state standards?\"",{"type":43,"tag":914,"props":2082,"children":2084},{"id":2083},"_5d-revisions-one-edit-every-artifact-stays-in-sync",[2085],{"type":49,"value":2086},"5d. Revisions — one edit, every artifact stays in sync",{"type":43,"tag":52,"props":2088,"children":2089},{},[2090,2092,2102],{"type":49,"value":2091},"Make ",{"type":43,"tag":114,"props":2093,"children":2094},{},[2095,2097],{"type":49,"value":2096},"targeted edits to ",{"type":43,"tag":180,"props":2098,"children":2100},{"className":2099},[],[2101],{"type":49,"value":538},{"type":49,"value":2103},", then re-render every document (instant). Rules that\nkeep the artifacts consistent:",{"type":43,"tag":122,"props":2105,"children":2106},{},[2107,2131,2155,2174],{"type":43,"tag":110,"props":2108,"children":2109},{},[2110,2112,2117,2119,2129],{"type":49,"value":2111},"If the change touches content registered in ",{"type":43,"tag":180,"props":2113,"children":2115},{"className":2114},[],[2116],{"type":49,"value":546},{"type":49,"value":2118}," (a problem, a source, the exit ticket,\nvocabulary, look-fors, the phenomenon\u002Fcontext\u002Fnumbers), edit it ",{"type":43,"tag":114,"props":2120,"children":2121},{},[2122,2124],{"type":49,"value":2123},"in ",{"type":43,"tag":180,"props":2125,"children":2127},{"className":2126},[],[2128],{"type":49,"value":546},{"type":49,"value":2130}," — every\ndocument that pulls that key updates automatically.",{"type":43,"tag":110,"props":2132,"children":2133},{},[2134,2139,2141,2146,2148,2153],{"type":43,"tag":114,"props":2135,"children":2136},{},[2137],{"type":49,"value":2138},"Consistency sweep after any context\u002Fnumber\u002Ftask change:",{"type":49,"value":2140}," after editing ",{"type":43,"tag":180,"props":2142,"children":2144},{"className":2143},[],[2145],{"type":49,"value":546},{"type":49,"value":2147},", re-read\nevery prose block in every ",{"type":43,"tag":180,"props":2149,"children":2151},{"className":2150},[],[2152],{"type":49,"value":554},{"type":49,"value":2154}," entry and update every sentence that still mentions\nthe old context, names, or numbers. When you are done, no document may reference the\nreplaced content anywhere — stale prose is the most common consistency failure.",{"type":43,"tag":110,"props":2156,"children":2157},{},[2158,2160,2165,2167,2172],{"type":49,"value":2159},"A change aimed at one document (e.g. \"more workspace on the worksheet\", \"add a column to the\nobservation grid\") goes in that document's ",{"type":43,"tag":180,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":49,"value":562},{"type":49,"value":2166}," — never by forking a ",{"type":43,"tag":180,"props":2168,"children":2170},{"className":2169},[],[2171],{"type":49,"value":546},{"type":49,"value":2173}," key into\ntwo variants.",{"type":43,"tag":110,"props":2175,"children":2176},{},[2177,2179,2185,2187,2193,2194,2200,2201,2207],{"type":49,"value":2178},"Styling: ",{"type":43,"tag":180,"props":2180,"children":2182},{"className":2181},[],[2183],{"type":49,"value":2184},"theme",{"type":49,"value":2186}," fields (",{"type":43,"tag":180,"props":2188,"children":2190},{"className":2189},[],[2191],{"type":49,"value":2192},"primary",{"type":49,"value":984},{"type":43,"tag":180,"props":2195,"children":2197},{"className":2196},[],[2198],{"type":49,"value":2199},"title_size",{"type":49,"value":984},{"type":43,"tag":180,"props":2202,"children":2204},{"className":2203},[],[2205],{"type":49,"value":2206},"body_size",{"type":49,"value":2208},") apply to every artifact.\nArtifacts use minimal color so they print cleanly in black-and-white; do not set\nper-section or per-phase colors.",{"type":43,"tag":914,"props":2210,"children":2212},{"id":2211},"_5e-supplementary-artifacts-in-their-best-format",[2213],{"type":49,"value":2214},"5e. Supplementary artifacts in their best format",{"type":43,"tag":52,"props":2216,"children":2217},{},[2218,2219,2224,2226,2231],{"type":49,"value":275},{"type":43,"tag":180,"props":2220,"children":2222},{"className":2221},[],[2223],{"type":49,"value":538},{"type":49,"value":2225}," pipeline is for the lesson's document set: pages a student or teacher\nreads or writes on. An artifact whose value depends on its form — exact card\ndimensions for cutting, poster-scale type — belongs outside it, as its own file in\nwhatever format produces the best version (e.g. a print-ready PDF). Your judgment\npicks the format; source any shared content from ",{"type":43,"tag":180,"props":2227,"children":2229},{"className":2228},[],[2230],{"type":49,"value":546},{"type":49,"value":2232}," so pages can't drift, and name\nthe file in Materials like any other page.",{"type":43,"tag":2234,"props":2235,"children":2236},"style",{},[2237],{"type":49,"value":2238},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2240,"total":2258},[2241,2251],{"slug":2242,"name":2242,"fn":2243,"description":2244,"org":2245,"tags":2246,"stars":26,"repoUrl":27,"updatedAt":2250},"k12-lesson-differentiation","adapt K-12 lessons for proficiency levels","Adapts an existing K-12 lesson (math, ELA, science, or social studies) for students at different proficiency levels (below \u002F at \u002F above grade level). Load this skill BEFORE asking the teacher any clarifying question about the lesson, tiers, or student levels. Triggers on explicit asks to differentiate, tier, or scaffold a lesson, and on implicit signals like \"my students are at different levels\". Produces 1 teacher-facing differentiation plan + 3 student-ready tier documents as editable Word documents in a single output turn, rendered from one material-source JSON via bundled scripts (shared content is written once so tiers cannot drift). Uses the Learning Commons Knowledge Graph when connected; works without it. This skill adapts a lesson the teacher brings or names. Not for creating a new lesson from scratch — a new-lesson request that asks for differentiated or leveled materials is k12-lesson-planning's job, one package. Not for grading, rubrics, assessment feedback, or quizzes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2247,2248,2249],{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},"2026-07-18T05:48:11.892299",{"slug":4,"name":4,"fn":5,"description":6,"org":2252,"tags":2253,"stars":26,"repoUrl":27,"updatedAt":28},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2254,2255,2256,2257],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16},{"name":14,"slug":15,"type":16},2,{"items":2260,"total":2442},[2261,2282,2296,2308,2327,2338,2358,2378,2390,2405,2413,2426],{"slug":2262,"name":2262,"fn":2263,"description":2264,"org":2265,"tags":2266,"stars":2279,"repoUrl":2280,"updatedAt":2281},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2267,2270,2273,2276],{"name":2268,"slug":2269,"type":16},"Creative","creative",{"name":2271,"slug":2272,"type":16},"Design","design",{"name":2274,"slug":2275,"type":16},"Generative Art","generative-art",{"name":2277,"slug":2278,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":2283,"name":2283,"fn":2284,"description":2285,"org":2286,"tags":2287,"stars":2279,"repoUrl":2280,"updatedAt":2295},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2288,2291,2292],{"name":2289,"slug":2290,"type":16},"Branding","branding",{"name":2271,"slug":2272,"type":16},{"name":2293,"slug":2294,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":2297,"name":2297,"fn":2298,"description":2299,"org":2300,"tags":2301,"stars":2279,"repoUrl":2280,"updatedAt":2307},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2302,2303,2304],{"name":2268,"slug":2269,"type":16},{"name":2271,"slug":2272,"type":16},{"name":2305,"slug":2306,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":2309,"name":2309,"fn":2310,"description":2311,"org":2312,"tags":2313,"stars":2279,"repoUrl":2280,"updatedAt":2326},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2314,2317,2318,2321,2323],{"name":2315,"slug":2316,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":2319,"slug":2320,"type":16},"Anthropic SDK","anthropic-sdk",{"name":2322,"slug":2309,"type":16},"Claude API",{"name":2324,"slug":2325,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":2328,"name":2328,"fn":2329,"description":2330,"org":2331,"tags":2332,"stars":2279,"repoUrl":2280,"updatedAt":2337},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2333,2334],{"name":18,"slug":19,"type":16},{"name":2335,"slug":2336,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":2339,"name":2339,"fn":2340,"description":2341,"org":2342,"tags":2343,"stars":2279,"repoUrl":2280,"updatedAt":2357},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2344,2346,2348,2351,2354],{"name":2345,"slug":951,"type":16},"Documents",{"name":2347,"slug":2339,"type":16},"DOCX",{"name":2349,"slug":2350,"type":16},"Office","office",{"name":2352,"slug":2353,"type":16},"Templates","templates",{"name":2355,"slug":2356,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":2359,"name":2359,"fn":2360,"description":2361,"org":2362,"tags":2363,"stars":2279,"repoUrl":2280,"updatedAt":2377},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2364,2365,2368,2371,2374],{"name":2271,"slug":2272,"type":16},{"name":2366,"slug":2367,"type":16},"Frontend","frontend",{"name":2369,"slug":2370,"type":16},"React","react",{"name":2372,"slug":2373,"type":16},"Tailwind CSS","tailwind-css",{"name":2375,"slug":2376,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":2379,"name":2379,"fn":2380,"description":2381,"org":2382,"tags":2383,"stars":2279,"repoUrl":2280,"updatedAt":2389},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2384,2387,2388],{"name":2385,"slug":2386,"type":16},"Communications","communications",{"name":2352,"slug":2353,"type":16},{"name":14,"slug":15,"type":16},"2026-04-06T17:56:20.695522",{"slug":2391,"name":2391,"fn":2392,"description":2393,"org":2394,"tags":2395,"stars":2279,"repoUrl":2280,"updatedAt":2404},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2396,2397,2400,2401],{"name":2315,"slug":2316,"type":16},{"name":2398,"slug":2399,"type":16},"API Development","api-development",{"name":2324,"slug":2325,"type":16},{"name":2402,"slug":2403,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":2306,"name":2306,"fn":2406,"description":2407,"org":2408,"tags":2409,"stars":2279,"repoUrl":2280,"updatedAt":2412},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2410,2411],{"name":2345,"slug":951,"type":16},{"name":2305,"slug":2306,"type":16},"2026-04-06T17:56:02.483316",{"slug":2414,"name":2414,"fn":2415,"description":2416,"org":2417,"tags":2418,"stars":2279,"repoUrl":2280,"updatedAt":2425},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2419,2422],{"name":2420,"slug":2421,"type":16},"PowerPoint","powerpoint",{"name":2423,"slug":2424,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":2427,"name":2427,"fn":2428,"description":2429,"org":2430,"tags":2431,"stars":2279,"repoUrl":2280,"updatedAt":2441},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2432,2433,2434,2437,2440],{"name":2315,"slug":2316,"type":16},{"name":18,"slug":19,"type":16},{"name":2435,"slug":2436,"type":16},"Evals","evals",{"name":2438,"slug":2439,"type":16},"Performance","performance",{"name":2335,"slug":2336,"type":16},"2026-04-19T06:45:40.804",490]