[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-k12-lesson-differentiation":3,"mdc-s5ve15-key":34,"related-org-anthropic-k12-lesson-differentiation":2290,"related-repo-anthropic-k12-lesson-differentiation":2476},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":32,"mdContent":33},"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},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20],{"name":14,"slug":15,"type":16},"Writing","writing","tag",{"name":18,"slug":19,"type":16},"Education","education",{"name":21,"slug":22,"type":16},"Planning","planning",95,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fk12-teacher-skills","2026-07-18T05:48:11.892299","Complete terms in LICENSE",23,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":31},[],"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-differentiation","---\nname: k12-lesson-differentiation\ndescription: 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.\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 Differentiation\n\nAdapts an existing K-12 lesson for below \u002F at \u002F above grade-level proficiency using\nresearch-based differentiation principles (Tomlinson framework + subject-specific access\ndesign). Works with or without the Learning Commons Knowledge Graph connector.\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 read your lesson, ground it in the standard and\ncurriculum materials, design the three tiers, and build the worksheets.\"*).\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.** Detect math \u002F ELA \u002F science \u002F social studies from the source lesson or the\n   request, 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.** It carries the pedagogy for Steps 1\n   and 3 (source-lesson identification, curriculum detection, the eight differentiation rules\n   R1–R8, the document content templates, and the differentiation.json mapping).\n   Differentiating without first reading the subject reference is a critical failure on par\n   with skipping the Knowledge Graph.\n2. **Curriculum.** The subject file's \"Identify the source lesson\" section includes curriculum\n   detection (Illustrative Mathematics \u002F OpenSciEd). When confirmed, use that\n   curriculum's discourse language and structures in the teacher plan, per the subject file.\n\n   **Curriculum is confirmed when:** the teacher explicitly names it, OR the uploaded source\n   lesson references it (a lesson from an IM unit or an OpenSciEd unit\n   counts — the upload is implicit confirmation).\n\n   **If curriculum is NOT confirmed** (not detectable from upload or link, no explicit mention):\n   never name a specific module, unit number, lesson number, or proprietary routine name anywhere\n   in the output OR in any chat message — even if you recognize the routine from training.\n   Describe the instructional move in your own generic terms (\"a compare-strategies\n   discussion\", not the routine's trademarked name). This is a hard rule; violating it fails P9,\n   and chat messages count. See **Copyright guardrail** (after Step 3) for the companion rule on\n   verbatim reproduction.\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\n4. **State.** Before any KG call, scan the conversation and any uploaded source lesson for\nstate signals and store as `state`:\n   - Teacher says \"I teach in [state],\" \"I'm in [state],\" or \"We're in [state]\"\n   - Standard codes in the prompt or source lesson follow a state-specific format:\n     TEKS 1xx.x.x → Texas; SOL → Virginia; OAS\u002FPASS → Oklahoma; MA → Massachusetts;\n     CA\u002FHSS or CA\u002FCCSS → California; other state-prefixed codes → check state\n   - Source lesson URL includes a state agency domain (tea.texas.gov, etc.)\n\n   If state found: store `state = [state name]`. Pass as `jurisdiction=\"\u003Cstate>\"` in every\n   `find_standard_statement` call in Step 2. Use state framework codes (not national proxies)\n   in all output.\n\n   If state not found:\n   - for science, math, or ELA, proceed with national defaults (CCSS for math\u002FELA, NGSS for science). Add this single footer line to the teacher plan:\n   *\"Standards applied using [CCSS \u002F NGSS] — if you're in Texas, Virginia,\n   Oklahoma, or another state with a distinct framework, share your state and I'll re-anchor.\"*\n   - for social studies, ask the teacher what state they teach in before proceeding.\n\n\n\n---\n\n## Step 1 — Identify the source lesson\n\nFollow the subject file's source-lesson section: Scenario A (lesson exists earlier in this\nconversation — use it directly, do not re-ask), Scenario B (teacher uploads a lesson — read it\nfirst; if unreadable, say so and ask to re-share, never silently fabricate), Scenario B2\n(teacher links a lesson by URL — fetch and read it; if the fetch fails,\nask them to paste or upload; fetching completes Step 1 only — the KG calls in Step 2 are still\nmandatory), Scenario B3 (math or science only — teacher names a curriculum lesson by position or title —\ne.g. \"IM Grade 6, Unit 2, Lesson 3\" or \"the OpenSciEd lesson on ecosystem dynamics\" — Step 1\nis complete; proceed directly to Step 2 where `find_curriculum_lessons` will retrieve the\nlesson materials; do NOT ask the teacher to upload or link the lesson), or Scenario C (no source lesson present —\nask the subject file's clarifying question before proceeding).\n\nA fetched link lands in the conversation whole, so a document bigger than one lesson\n(a module or unit teacher edition) will not fit. When a link points at one, work from\nwhat the request itself tells you about the lesson and confirm the specifics with the\nteacher — topic, grade, and standard carry enough to build from, the same way Scenario C\nproceeds after its clarify.\n\n**Learner needs check (silent, runs every time):** Before generating, scan the conversation\nfor any mention of ELL levels, WIDA levels, IEP goal areas, 504 accommodations, or specific\nstudent needs. If found, incorporate into the tier design — especially the Below tier.\nSay \"home language,\" not a specific language, unless the teacher names one.\n\nIf no learner needs are mentioned AND the pre-generation R8 ask hasn't fired (scope was already\nspecified), add one sentence to the FIRST response: \"No specific learner needs were provided —\nI've applied UDL defaults (sentence supports and vocabulary across all tiers). Share any ELL\nlevels, IEP goals, or specific student data and I'll adjust.\"\n\nThis check must run even when scope is specified. Learner variability information should be\ncaptured before generation, not after.\n\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. This applies no matter how the source lesson was obtained — uploaded, pasted,\nor fetched from a URL. Retrieving the lesson never satisfies this step.\n\n**If not connected:** proceed from best knowledge and add this footer to the teacher plan:\n*\"Generated without the Learning Commons KG. Standard text, prerequisite grounding, and\nmisconceptions reflect general best practice.\"* Do not invent KG citations.\n\n---\n\n## Step 3 — The differentiation rules\n\nApply **all eight rules (R1–R8)** from the subject file to every differentiated lesson. The\nrules are subject-specific (scaffold types, tier entry points, extension quality tests differ\nby subject) but their structure is shared: output structure (R1), standard scope preservation\n(R2), tier entry points (R3), below-level scaffolds with a density cap (R4), required\npedagogical infrastructure (R5), invisible modifications (R6), within-level progressive\nscaffolding (R7), and scope\u002Fdefaults (R8).\n\n---\n\n## Copyright guardrail\n\nAlways write original content. When the source lesson draws from a named curriculum (IM,\nOpenSciEd), use it to understand structure, scope, task context, and standards\nalignment only — never reproduce student-facing text, activity narratives, investigation\nprompts, comprehension questions, or problem contexts verbatim from curriculum materials.\nEach subject reference file carries a **Copyright** line with subject-specific details.\n\nIf curriculum is NOT confirmed (see Step 0.2 detection rules), never name a specific\ncurriculum, module, unit number, lesson number, or proprietary routine name anywhere in the\noutput or in any chat message — even if recognizable from training. The source lesson and\nKG data inform the design without being cited. See Step 0.2 for the full rule (P9).\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 whatever\nyou ask before Step 2 (state, source lesson, learner needs) and asked on its own when\nnothing else needs asking.\n\n- Question: *Should I go ahead and build the full classroom-ready set (teacher plan + three tier documents, 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** — what changes for each\n  tier, right here in chat\n\n**The full set is the default.** Declining, not answering, or anything like \"proceed with\nyour defaults\" runs Steps 2–3 and goes straight to Step 5; the draft happens only on a 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 design in chat — the draft is chat text only;\nrendering happens at Step 5 once the teacher approves. Show:\n\n- one line reading back the source lesson, standard, and grade;\n- for each tier (below \u002F at \u002F above), 2–3 bullets on what changes and why;\n- the student work at a glance — each tier's actual tasks, enough for the teacher to\n  skim and judge coverage;\n- one line on what every tier shares — the essential question or core task — and the\n  regroup rule\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 tier or the shared task\n- **Create the materials** — teacher plan and the three tier documents, as editable Word\n  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 set, or in the turn the draft is\napproved.\n\nFour artifacts — **1 teacher-facing plan + 3 student tier documents (below \u002F at \u002F above)** —\nare all rendered by a bundled script from **one `differentiation.json` (the material source)**. Anything that\nappears in more than one artifact (standard, problem\u002Ftask set, exit ticket, vocabulary,\nsentence supports, misconceptions) lives ONCE in the JSON's `shared` block and is pulled into\neach document with `{\"type\": \"from_shared\", \"key\": …}` blocks, so the teacher plan and the\ntier documents cannot drift apart — and R6 (same context, same core tasks across tiers) is\nenforced structurally.\n\nNever write layout code, never re-type content into another format, and never edit a generated\ndocument directly — every change goes into `differentiation.json` and is re-rendered\n(re-rendering is instant).\n\n**Plain language with the teacher.** The machinery above is invisible to the teacher: never\nmention JSON, HTML, schemas, scripts, rendering, file names (`differentiation.json`), or code\nin any teacher-facing message — and never link or name the `.html` files the render command\nalso writes. Say *\"Here's your differentiation plan — the three tier documents are on their\nway\"*, not *\"I've rendered differentiation.json\"*. The only format word in your prose is\n\"Word document\". This applies to every\nturn: presenting artifacts, the satisfaction ask, revision summaries, and error messages (if\ngeneration fails, say the documents couldn't be created — not that a script or JSON failed).\n\n**Density rules — hard requirements for every document.** Teachers consistently flag dense\nwalls of text. 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- Bullets are fragments — one idea each, ≤ ~15 words; never chain clauses with semicolons.\n- Parallel tier content (Below \u002F At \u002F Above doing the same phase differently) goes in ONE\n  `table` block — rows = phases or features, columns = tiers, ≤ ~25 words per cell — never\n  three back-to-back multi-sentence paragraphs.\n- An aside longer than one sentence (misconception watch-fors, confer prompts, deployment\n  guidance) becomes its own `callout` block, not a sentence buried in a paragraph.\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**Pre-write cross-check — run ALL checks before calling the render script. Do not render until every item passes.**\n\n**O6 — Artifact alignment (both directions):**\n1. **Plan → tier documents.** List every task the plan says students do — tier problems\u002Ftasks,\n   exit ticket, the anchor activity, anything assigned to \"early finishers.\" Each must have a\n   printed student-facing block on at least one tier document (the anchor activity on all\n   three, via `from_shared: anchor_activity`). A task that exists only as a plan description\n   fails.\n2. **Tier documents → plan.** For each tier document, list every printed task — each\n   problem\u002Ftask, the extension and each of its printed sub-parts, anything printed on one tier\n   only, the exit ticket, \"If you finish early,\" \"Reflect.\" Each must appear in that tier's\n   **Worksheet tasks** line in the plan, with its scaffold named (e.g., \"P1 (tape diagram +\n   sentence support)\" not just \"P1\"). A printed task the plan never names fails — a named\n   scaffold the worksheet does not print fails — and so does a plan line naming a task or\n   organizer no tier document prints.\n\nShared content is guaranteed by `from_shared` blocks; the check targets document-specific\nblocks and plan prose. Also confirm the exact `shared.standard_code` string appears in each of\nthe three tier documents' `eyebrow` (`\"[Grade] [Subject] · [standard_code]\"`) — the standard\nmust be named on every tier, not only in the teacher plan. Fix mismatches before rendering.\n\n**Classroom-ready (every document):** the tiers run on what the teacher already holds.\nEvery resource a worksheet or the plan names is a printed block in this package, equipment\nthe classroom has, or a sourced resource with its access path stated — exact title and\nsource, a link when you could confirm one. A visual a task depends on prints on the\nworksheet that uses it, or the task is rewritten to work from what does print. Anything\nharder to get than that stays out unless the teacher steered toward it.\n\n**P8 — Flexible grouping (confirm in teacher plan JSON):**\n- The `Flexible Grouping` section states the evidence or basis used to assign students to each\n  tier (e.g., a specific prior exit ticket, diagnostic score, or \"Default profile applied — no\n  diagnostic data available\"). A blank or generic statement fails.\n- The section includes an explicit statement that tier assignments are revisable based on\n  formative evidence from THIS lesson (not a standing ability track).\n\n**O4 — Rationale notes (confirm in teacher plan JSON):**\n- `Why this works (1)` and `Why this works (2)` sections are present and each name a specific\n  tier design choice with a stated reason. Generic statements (\"scaffolds help learners\") fail.\n  These sections are required and cannot be dropped to meet page caps — tighten other content\n  instead.\n\n### 5a. Write the complete `differentiation.json` (same turn)\n\n1. Write `differentiation.json`: top-level `theme`, the **`shared` block** (write this FIRST —\n   the identity fields, the standard verbatim, each tier task under its own key (`t1`, `t2`, …),\n   the exit ticket, and composed blocks for vocabulary, sentence supports, and misconceptions;\n   also `anchor_activity` (early-finisher task in student-facing second person — directions\n   only, no rationale) and `reflect_prompt` (the closing reflective question)), and a\n   `documents` array with 4 entries: `{\"id\": \"teacher_plan\", \"audience\": \"teacher\", …}` and\n   `{\"id\": \"worksheet_group_a\" \u002F \"worksheet_group_b\" \u002F \"worksheet_group_c\", \"audience\": \"student\", …}`.\n   Each document's `sections` follow the subject file's document content templates.\n\n   **Schema** — the complete field skeleton (`blocks` shows one of each type). This is\n   sufficient — **do not open, cat, head, or grep the renderer scripts**:\n\n   ```\n   theme: {primary: \"#…\"}\n   shared:\n     subject, grade, standard_code, standard_text        (required identity)\n     duration?\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)\n   documents[]: {id: teacher_plan|worksheet_group_a|worksheet_group_b|worksheet_group_c,\n                 audience: teacher|student, eyebrow, title, meta,\n                 sections[]: {heading, blocks[]}}\n     block types:\n       {type: from_shared, key, label?}\n       {type: labeled, label, text} | {type: paragraph, text}\n       {type: callout, kind: special|student-task|teacher-note|student-note, label, text}\n       {type: h2, text} | {type: h3, text} | {type: list, label?, ordered?, items[]}\n       {type: checklist, label?, items[]} | {type: fill_in, label?, size: short|med|long}\n       {type: phase_header, name, minutes}   (science teacher plan; supported by all renderers)\n       {type: table, headers[]?, rows[[]], empty_row_height_pt?}\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: cards, items[{title, text}]} | {type: workspace, size: small|med|large, height_pt?}\n       {type: group, blocks[]} | {type: columns, left[], right[]} | {type: page_break}\n   ```\n\n   **`shared` is a content registry.** Register each tier task under its own key (`t1`,\n   `t2`, …), the exit ticket as `exit_ticket`, and any other content that appears on more\n   than one document, under keys you choose. A key's value can be a string, a composed\n   block (a vocabulary `table`, a misconceptions `table`, sentence-support text with its writing space), or a\n   faceted object `{teacher: …, student: …}` — on a **student** page only the `student`\n   facet renders; on the **teacher** page both render (the teacher facet as a teacher-note,\n   then the student facet as a \"What students see\" callout). Key names carry no special\n   rendering — compose vocabulary, misconceptions, and sort buckets as blocks yourself\n   (`references\u002Fexample_differentiation.json` shows each pattern).\n\n   (`references\u002Fexample_differentiation.json` is a filled-in worked example if\n   values-in-context would help, but reading it is not required.) Keep writing tight; no emoji in JSON content.\n   The density rules above are hard requirements for every text field.\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 tier task shown in the plan. |\n   | `callout` `kind: teacher-note` | An aside the teacher reads but does not say aloud: conferring moves, a watch-for. |\n   | `callout` `kind: student-note` | A reminder students read on their worksheet: a hint card, a key fact. (A sentence support students write from is plain text near its task, not a callout.) |\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   | `cards` | 2–4 parallel items of roughly equal length — tier summaries, sort buckets. Never for long or unbalanced items. |\n   | `table` (no `headers`) | Term\u002Fdefinition pairs, label\u002Fvalue reference rows. |\n   | `table` with `headers` | Real tabular data with column labels (per-tier scaffolds, misconceptions). |\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   | `workspace` | Student writing space; `size: small|med|large` or grade-banded default. |\n   Tabular content — data tables, \"complete the table\" tasks, row-and-column organizers — must\n   be a `{\"type\": \"table\", \"headers\": [...], \"rows\": [[...]]}` block (a row of empty strings\n   renders as ruled writing space). Never draw a table inside a `text` field: markdown pipe\n   rows, box-drawing characters, ASCII art, and symbol glyphs (■, □) print literally on the\n   page and fail print-safety. Never write bullet characters (•, -) inside a `text` string\n   — use a `bullets` block; a paragraph collapses line breaks and the bullets run together\n   into one line. Use `workspace` blocks for writing space — they render as\n   open whitespace sized by grade automatically (lower grades get much more room, and K–5\n   prose answers get ruled lines; math work space stays open for drawing). Set `height_pt`\n   only when a task needs more than the default: 130–150 for full written explanations and\n   exit tickets, 90–110 for short extension questions. Empty table cells are writing space\n   and get a grade-banded minimum height automatically — don't set `empty_row_height_pt`\n   below ~70pt for prose rows. This applies to\n   every prose field in all four documents.\n2. The three tier documents (in the same `documents` array) differ ONLY in their scaffolding\n   and extension blocks (R6).\n   **Every tier document pulls task text with `from_shared` blocks — never re-type, reword,\n   or split task text into a document's own blocks** (so the plan and all three tiers stay\n   verbatim-consistent — reworded tasks drift apart in revision). Each task has its own\n   `shared` key, pulled one at a time so scaffolds sit with their task:\n   `{\"type\": \"from_shared\", \"key\": \"t1\", \"label\": \"1\"}` renders Task 1 as a numbered item;\n   follow each task — and every other prompt students answer (the exit ticket, Reflect,\n   If you finish early, a tier-only extension) — with a `workspace` block.\n   The required order within the section is strict: for each task N — at most ONE\n   scaffold block for task N (merge multiple supports into one labeled block; never two\n   \"Before Task N\" blocks), then the task via its key. A scaffold must NEVER appear\n   after its target task, and nothing sits between a scaffold and its task.\n   That is how the R7 fade pattern is expressed — Task 1 gets a scaffold block, Task 2's is\n   lighter, later tasks have none. A tier-only task (the Above extension, an Above-only\n   sub-question) is its own headed block — never an edit to shared task text. Below-tier scaffolds follow R4; the Above-tier extension passes R7's quality\n   test. Asset framing rules (below) apply to every student-facing block.\n\n### 5b. Render all four Word documents — one command, same turn\n\n```bash\nbash scripts\u002Frender_all.sh differentiation.json \"$OUTPUT_DIR\"\n```\n\nThis writes `$OUTPUT_DIR\u002Fteacher_plan.docx`, `$OUTPUT_DIR\u002Fworksheet_group_a.docx`,\n`$OUTPUT_DIR\u002Fworksheet_group_b.docx`, and `$OUTPUT_DIR\u002Fworksheet_group_c.docx` in one invocation,\nplus `.html` working files — no copy step needed; leave everything\nthe script writes in place (later revision turns re-render from the working files). Then list\n`$OUTPUT_DIR` and confirm every document has both its `.docx` and `.html`; if either is\nmissing or tiny, rerun the script. Present all four Word documents to the teacher together —\nattach the teacher plan last so it lands on top (chat surfaces stack newest-first). If the script errors, fix\n`differentiation.json` (it is almost always malformed JSON) and rerun. If file generation\nfails entirely, say so clearly — do not silently fall back to a chat-only delivery.\n\n### 5c. The close (every output turn)\n\nThe chat message that delivers artifacts ends with three things, in order. Each must appear in\nthe chat message itself — saying it only inside the printed plan does not count. When the\nmessage mentions the sheets, use their group names with the association noted once\n(Group A = below grade level, etc.).\n\n1. **Learner-variability statement (first output turn, when you didn't ask).** If you never\n   asked about specific learner needs in this conversation (the R8 question), state in chat\n   that UDL defaults were applied and invite specifics — e.g. *\"I didn't have details on\n   specific learner needs, so I applied UDL defaults — sentence stems and a vocabulary\n   glossary on all three tier sheets. Tell me about any multilingual learners or students\n   with IEPs or 504 plans and I'll tailor further.\"* Skip this only when the teacher already\n   gave learner information (then reflect it instead: \"the Below sheet builds in the sentence\n   frames for your newcomer ELLs\").\n2. **Three lesson-specific next steps (first output turn).** Offer 3–4 iteration options in\n   chat, one short line each, specific to THIS lesson (e.g., a tiered ELD layer with\n   WIDA-banded sentence supports; IEP-goal-specific scaffolds for a named goal area; a fourth\n   intervention tier below the prerequisite; tightening scope to the exit ticket only). The\n   subject reference's FA follow-up prompt counts as one of them when it fits.\n3. **The satisfaction ask.** Ask whether the teacher is satisfied with **all four artifacts**\n   or wants changes. Do not skip the ask — on every output turn, including revisions.\n\n### 5d. Revisions — one edit, every artifact stays in sync\n\nMake **targeted edits to `differentiation.json`**, then re-render all four documents (instant).\nRules that keep the artifacts consistent:\n\n- If the change touches shared content (context, numbers, tasks, exit ticket, vocabulary,\n  sentence supports, misconceptions), edit it **in `shared`** — it propagates to the teacher\n  plan and every tier document automatically.\n- **Consistency sweep after any context\u002Fnumber\u002Ftask change:** after editing `shared`, re-read\n  every prose block in all four documents' `sections` and update every sentence that still\n  mentions the old context, names, or numbers. No artifact may reference the replaced content\n  anywhere — stale prose is the most common consistency failure.\n- A change aimed at one tier (e.g. \"more scaffolding for below\", \"harder extension\") goes in\n  that tier document's blocks — never by forking shared content. Scaffold changes must keep\n  the subject file's R4 rules and R7 fade pattern.\n- Styling: top-level `theme` applies to all four documents; per-document `theme` overrides\n  stay available.\n\n### 5e. Fallback — bespoke generation code (exception path only)\n\nOnly if the user explicitly asks for an artifact or layout the bundled renderer cannot express\n(a different document type, landscape poster, slide deck, etc.): write generation code from\nscratch for that artifact. Source its content from the same `differentiation.json` (especially\n`shared`) so it stays consistent with the other artifacts. Tell the user this path is slower.\n\n### Student-facing language — ALL tier documents\n\nStudent pages never use instructional-design terminology. Those are teacher words; on a\nworksheet they read as labels about the student, not for the student.\n\n- ❌ \"CER\" — write the organizer labels out: *Claim \u002F Evidence \u002F Reasoning*. (\"Write a CER\"\n  becomes \"Explain your claim with evidence and reasoning\".)\n- ❌ \"sensemaking check\", \"formative check\", \"misconception\", \"scaffold\", \"tier\",\n  \"differentiation\", \"anchor task\" — use student words: *\"Check your thinking\"*, *\"Try this\n  together\"*, *\"If you finish early\"*.\n- On a student document the tier is named **Group A** (below), **Group B** (at), or\n  **Group C** (above): the `title` carries the group letter per the subject template; the\n  `eyebrow` stays `\"[Grade] [Subject] · [standard_code]\"` with no level wording. Grade-level\n  labels are teacher words — the teacher plan's tier labels (\"Below (Group A)\" etc.) carry\n  the association.\n- Scaffold prompts get a SHORT student-friendly `h3` on its own line (e.g.\n  *\"Observe the data first\"*, *\"Check your thinking\"*), then the prompt as a normal\n  paragraph below it — never a long bold inline label like\n  \"**Before Task 2 — sensemaking check:** Complete this sentence…\". The subheading names\n  what the student does, not the pedagogy behind it.\n\n### Asset framing — below-tier documents\n\nStudent-facing language must not signal reduced expectations. Scaffolds appear as natural task\ndesign, not announced supports.\n\n- ❌ \"Task 1 (Scaffolded) \u002F Task 2 (Guided) \u002F Task 3 (Independent)\" — a student who sees these labels knows they are on the easier version.\n- ❌ \"Use this if you need it\" \u002F \"Here is a sentence starter\" — names the support as a crutch.\n- ❌ Any header, label, or aside that distinguishes scaffolded tasks from unscaffolded ones.\n- ✓ The organizer, annotation frame, or sentence support simply appears as part of the task layout.\n- ✓ Tasks are numbered without scaffold-level labels.\n- ✓ Sentence supports at the top of the document are introduced universally: \"You can use these sentence supports:\" — not \"Use these if you get stuck.\"\n\n---\n\n## Step 6 — Complete\n\nThe skill is complete when the teacher has confirmed they are satisfied with all four Word\ndocuments (5c). The closing message pairs the FA follow-up prompt from the subject\nreference's R8 section with the lesson-specific next-step options from 5c.\n",{"data":35,"body":36},{"name":4,"description":6,"license":26},{"type":37,"children":38},"root",[39,48,54,59,63,70,83,88,93,96,102,346,349,355,368,373,383,388,393,396,402,420,437,440,446,458,461,466,478,483,486,492,497,529,539,549,572,577,582,605,610,613,619,624,667,679,718,728,800,808,816,854,891,901,909,930,938,960,974,1800,1806,1853,1923,1929,1934,1981,1987,2004,2072,2078,2097,2103,2108,2226,2232,2237,2270,2273,2279,2284],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"k-12-lesson-differentiation",[45],{"type":46,"value":47},"text","K-12 Lesson Differentiation",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Adapts an existing K-12 lesson for below \u002F at \u002F above grade-level proficiency using\nresearch-based differentiation principles (Tomlinson framework + subject-specific access\ndesign). Works with or without the Learning Commons Knowledge Graph connector.",{"type":40,"tag":49,"props":55,"children":56},{},[57],{"type":46,"value":58},"\"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":40,"tag":60,"props":61,"children":62},"hr",{},[],{"type":40,"tag":64,"props":65,"children":67},"h2",{"id":66},"keeping-the-teacher-posted",[68],{"type":46,"value":69},"Keeping the teacher posted",{"type":40,"tag":49,"props":71,"children":72},{},[73,75,81],{"type":46,"value":74},"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":40,"tag":76,"props":77,"children":78},"em",{},[79],{"type":46,"value":80},"\"I'll read your lesson, ground it in the standard and\ncurriculum materials, design the three tiers, and build the worksheets.\"",{"type":46,"value":82},").",{"type":40,"tag":49,"props":84,"children":85},{},[86],{"type":46,"value":87},"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":40,"tag":49,"props":89,"children":90},{},[91],{"type":46,"value":92},"Teacher language only — name what the teacher is getting, never tool names, file names,\n\"JSON\", or \"rendering\".",{"type":40,"tag":60,"props":94,"children":95},{},[],{"type":40,"tag":64,"props":97,"children":99},{"id":98},"step-0-route-silent-before-anything-else",[100],{"type":46,"value":101},"Step 0 — Route (silent, before anything else)",{"type":40,"tag":103,"props":104,"children":105},"ol",{},[106,178,215,233],{"type":40,"tag":107,"props":108,"children":109},"li",{},[110,116,118,167,171,176],{"type":40,"tag":111,"props":112,"children":113},"strong",{},[114],{"type":46,"value":115},"Subject.",{"type":46,"value":117}," Detect math \u002F ELA \u002F science \u002F social studies from the source lesson or the\nrequest, then read the matching reference file NOW:",{"type":40,"tag":119,"props":120,"children":121},"ul",{},[122,134,145,156],{"type":40,"tag":107,"props":123,"children":124},{},[125,127],{"type":46,"value":126},"math → ",{"type":40,"tag":128,"props":129,"children":131},"code",{"className":130},[],[132],{"type":46,"value":133},"references\u002Fmath.md",{"type":40,"tag":107,"props":135,"children":136},{},[137,139],{"type":46,"value":138},"ELA → ",{"type":40,"tag":128,"props":140,"children":142},{"className":141},[],[143],{"type":46,"value":144},"references\u002Fela.md",{"type":40,"tag":107,"props":146,"children":147},{},[148,150],{"type":46,"value":149},"science → ",{"type":40,"tag":128,"props":151,"children":153},{"className":152},[],[154],{"type":46,"value":155},"references\u002Fscience.md",{"type":40,"tag":107,"props":157,"children":158},{},[159,161],{"type":46,"value":160},"social studies → ",{"type":40,"tag":128,"props":162,"children":164},{"className":163},[],[165],{"type":46,"value":166},"references\u002Fsocial_studies.md",{"type":40,"tag":168,"props":169,"children":170},"br",{},[],{"type":40,"tag":111,"props":172,"children":173},{},[174],{"type":46,"value":175},"Loading the matching reference file is mandatory.",{"type":46,"value":177}," It carries the pedagogy for Steps 1\nand 3 (source-lesson identification, curriculum detection, the eight differentiation rules\nR1–R8, the document content templates, and the differentiation.json mapping).\nDifferentiating without first reading the subject reference is a critical failure on par\nwith skipping the Knowledge Graph.",{"type":40,"tag":107,"props":179,"children":180},{},[181,186,188,191,196,198,201,206,208,213],{"type":40,"tag":111,"props":182,"children":183},{},[184],{"type":46,"value":185},"Curriculum.",{"type":46,"value":187}," The subject file's \"Identify the source lesson\" section includes curriculum\ndetection (Illustrative Mathematics \u002F OpenSciEd). When confirmed, use that\ncurriculum's discourse language and structures in the teacher plan, per the subject file.",{"type":40,"tag":168,"props":189,"children":190},{},[],{"type":40,"tag":111,"props":192,"children":193},{},[194],{"type":46,"value":195},"Curriculum is confirmed when:",{"type":46,"value":197}," the teacher explicitly names it, OR the uploaded source\nlesson references it (a lesson from an IM unit or an OpenSciEd unit\ncounts — the upload is implicit confirmation).",{"type":40,"tag":168,"props":199,"children":200},{},[],{"type":40,"tag":111,"props":202,"children":203},{},[204],{"type":46,"value":205},"If curriculum is NOT confirmed",{"type":46,"value":207}," (not detectable from upload or link, no explicit mention):\nnever name a specific module, unit number, lesson number, or proprietary routine name anywhere\nin the output OR in any chat message — even if you recognize the routine from training.\nDescribe the instructional move in your own generic terms (\"a compare-strategies\ndiscussion\", not the routine's trademarked name). This is a hard rule; violating it fails P9,\nand chat messages count. See ",{"type":40,"tag":111,"props":209,"children":210},{},[211],{"type":46,"value":212},"Copyright guardrail",{"type":46,"value":214}," (after Step 3) for the companion rule on\nverbatim reproduction.",{"type":40,"tag":107,"props":216,"children":217},{},[218,223,225,231],{"type":40,"tag":111,"props":219,"children":220},{},[221],{"type":46,"value":222},"Connector.",{"type":46,"value":224}," Check whether the Learning Commons Knowledge Graph tools (e.g.\n",{"type":40,"tag":128,"props":226,"children":228},{"className":227},[],[229],{"type":46,"value":230},"find_standard_statement",{"type":46,"value":232},") are available in this conversation. This decides which path\nStep 2 takes. The skill is fully functional without the connector.",{"type":40,"tag":107,"props":234,"children":235},{},[236,241,243,249,251,288,291,293,299,301,307,309,314,316,319,321],{"type":40,"tag":111,"props":237,"children":238},{},[239],{"type":46,"value":240},"State.",{"type":46,"value":242}," Before any KG call, scan the conversation and any uploaded source lesson for\nstate signals and store as ",{"type":40,"tag":128,"props":244,"children":246},{"className":245},[],[247],{"type":46,"value":248},"state",{"type":46,"value":250},":",{"type":40,"tag":119,"props":252,"children":253},{},[254,278,283],{"type":40,"tag":107,"props":255,"children":256},{},[257,259,264,266,270,272,276],{"type":46,"value":258},"Teacher says \"I teach in ",{"type":40,"tag":260,"props":261,"children":262},"span",{},[263],{"type":46,"value":248},{"type":46,"value":265},",\" \"I'm in ",{"type":40,"tag":260,"props":267,"children":268},{},[269],{"type":46,"value":248},{"type":46,"value":271},",\" or \"We're in ",{"type":40,"tag":260,"props":273,"children":274},{},[275],{"type":46,"value":248},{"type":46,"value":277},"\"",{"type":40,"tag":107,"props":279,"children":280},{},[281],{"type":46,"value":282},"Standard codes in the prompt or source lesson follow a state-specific format:\nTEKS 1xx.x.x → Texas; SOL → Virginia; OAS\u002FPASS → Oklahoma; MA → Massachusetts;\nCA\u002FHSS or CA\u002FCCSS → California; other state-prefixed codes → check state",{"type":40,"tag":107,"props":284,"children":285},{},[286],{"type":46,"value":287},"Source lesson URL includes a state agency domain (tea.texas.gov, etc.)",{"type":40,"tag":168,"props":289,"children":290},{},[],{"type":46,"value":292},"If state found: store ",{"type":40,"tag":128,"props":294,"children":296},{"className":295},[],[297],{"type":46,"value":298},"state = [state name]",{"type":46,"value":300},". Pass as ",{"type":40,"tag":128,"props":302,"children":304},{"className":303},[],[305],{"type":46,"value":306},"jurisdiction=\"\u003Cstate>\"",{"type":46,"value":308}," in every\n",{"type":40,"tag":128,"props":310,"children":312},{"className":311},[],[313],{"type":46,"value":230},{"type":46,"value":315}," call in Step 2. Use state framework codes (not national proxies)\nin all output.",{"type":40,"tag":168,"props":317,"children":318},{},[],{"type":46,"value":320},"If state not found:",{"type":40,"tag":119,"props":322,"children":323},{},[324,341],{"type":40,"tag":107,"props":325,"children":326},{},[327,329],{"type":46,"value":328},"for science, math, or ELA, proceed with national defaults (CCSS for math\u002FELA, NGSS for science). Add this single footer line to the teacher plan:\n",{"type":40,"tag":76,"props":330,"children":331},{},[332,334,339],{"type":46,"value":333},"\"Standards applied using ",{"type":40,"tag":260,"props":335,"children":336},{},[337],{"type":46,"value":338},"CCSS \u002F NGSS",{"type":46,"value":340}," — if you're in Texas, Virginia,\nOklahoma, or another state with a distinct framework, share your state and I'll re-anchor.\"",{"type":40,"tag":107,"props":342,"children":343},{},[344],{"type":46,"value":345},"for social studies, ask the teacher what state they teach in before proceeding.",{"type":40,"tag":60,"props":347,"children":348},{},[],{"type":40,"tag":64,"props":350,"children":352},{"id":351},"step-1-identify-the-source-lesson",[353],{"type":46,"value":354},"Step 1 — Identify the source lesson",{"type":40,"tag":49,"props":356,"children":357},{},[358,360,366],{"type":46,"value":359},"Follow the subject file's source-lesson section: Scenario A (lesson exists earlier in this\nconversation — use it directly, do not re-ask), Scenario B (teacher uploads a lesson — read it\nfirst; if unreadable, say so and ask to re-share, never silently fabricate), Scenario B2\n(teacher links a lesson by URL — fetch and read it; if the fetch fails,\nask them to paste or upload; fetching completes Step 1 only — the KG calls in Step 2 are still\nmandatory), Scenario B3 (math or science only — teacher names a curriculum lesson by position or title —\ne.g. \"IM Grade 6, Unit 2, Lesson 3\" or \"the OpenSciEd lesson on ecosystem dynamics\" — Step 1\nis complete; proceed directly to Step 2 where ",{"type":40,"tag":128,"props":361,"children":363},{"className":362},[],[364],{"type":46,"value":365},"find_curriculum_lessons",{"type":46,"value":367}," will retrieve the\nlesson materials; do NOT ask the teacher to upload or link the lesson), or Scenario C (no source lesson present —\nask the subject file's clarifying question before proceeding).",{"type":40,"tag":49,"props":369,"children":370},{},[371],{"type":46,"value":372},"A fetched link lands in the conversation whole, so a document bigger than one lesson\n(a module or unit teacher edition) will not fit. When a link points at one, work from\nwhat the request itself tells you about the lesson and confirm the specifics with the\nteacher — topic, grade, and standard carry enough to build from, the same way Scenario C\nproceeds after its clarify.",{"type":40,"tag":49,"props":374,"children":375},{},[376,381],{"type":40,"tag":111,"props":377,"children":378},{},[379],{"type":46,"value":380},"Learner needs check (silent, runs every time):",{"type":46,"value":382}," Before generating, scan the conversation\nfor any mention of ELL levels, WIDA levels, IEP goal areas, 504 accommodations, or specific\nstudent needs. If found, incorporate into the tier design — especially the Below tier.\nSay \"home language,\" not a specific language, unless the teacher names one.",{"type":40,"tag":49,"props":384,"children":385},{},[386],{"type":46,"value":387},"If no learner needs are mentioned AND the pre-generation R8 ask hasn't fired (scope was already\nspecified), add one sentence to the FIRST response: \"No specific learner needs were provided —\nI've applied UDL defaults (sentence supports and vocabulary across all tiers). Share any ELL\nlevels, IEP goals, or specific student data and I'll adjust.\"",{"type":40,"tag":49,"props":389,"children":390},{},[391],{"type":46,"value":392},"This check must run even when scope is specified. Learner variability information should be\ncaptured before generation, not after.",{"type":40,"tag":60,"props":394,"children":395},{},[],{"type":40,"tag":64,"props":397,"children":399},{"id":398},"step-2-ground-in-standards",[400],{"type":46,"value":401},"Step 2 — Ground in standards",{"type":40,"tag":49,"props":403,"children":404},{},[405,410,412,418],{"type":40,"tag":111,"props":406,"children":407},{},[408],{"type":46,"value":409},"If the LC Knowledge Graph is connected:",{"type":46,"value":411}," follow the subject's section in\n",{"type":40,"tag":128,"props":413,"children":415},{"className":414},[],[416],{"type":46,"value":417},"references\u002Flearning-commons-kg.md",{"type":46,"value":419}," — call BEFORE drafting; not calling when connected is a\ncritical failure. This applies no matter how the source lesson was obtained — uploaded, pasted,\nor fetched from a URL. Retrieving the lesson never satisfies this step.",{"type":40,"tag":49,"props":421,"children":422},{},[423,428,430,435],{"type":40,"tag":111,"props":424,"children":425},{},[426],{"type":46,"value":427},"If not connected:",{"type":46,"value":429}," proceed from best knowledge and add this footer to the teacher plan:\n",{"type":40,"tag":76,"props":431,"children":432},{},[433],{"type":46,"value":434},"\"Generated without the Learning Commons KG. Standard text, prerequisite grounding, and\nmisconceptions reflect general best practice.\"",{"type":46,"value":436}," Do not invent KG citations.",{"type":40,"tag":60,"props":438,"children":439},{},[],{"type":40,"tag":64,"props":441,"children":443},{"id":442},"step-3-the-differentiation-rules",[444],{"type":46,"value":445},"Step 3 — The differentiation rules",{"type":40,"tag":49,"props":447,"children":448},{},[449,451,456],{"type":46,"value":450},"Apply ",{"type":40,"tag":111,"props":452,"children":453},{},[454],{"type":46,"value":455},"all eight rules (R1–R8)",{"type":46,"value":457}," from the subject file to every differentiated lesson. The\nrules are subject-specific (scaffold types, tier entry points, extension quality tests differ\nby subject) but their structure is shared: output structure (R1), standard scope preservation\n(R2), tier entry points (R3), below-level scaffolds with a density cap (R4), required\npedagogical infrastructure (R5), invisible modifications (R6), within-level progressive\nscaffolding (R7), and scope\u002Fdefaults (R8).",{"type":40,"tag":60,"props":459,"children":460},{},[],{"type":40,"tag":64,"props":462,"children":464},{"id":463},"copyright-guardrail",[465],{"type":46,"value":212},{"type":40,"tag":49,"props":467,"children":468},{},[469,471,476],{"type":46,"value":470},"Always write original content. When the source lesson draws from a named curriculum (IM,\nOpenSciEd), use it to understand structure, scope, task context, and standards\nalignment only — never reproduce student-facing text, activity narratives, investigation\nprompts, comprehension questions, or problem contexts verbatim from curriculum materials.\nEach subject reference file carries a ",{"type":40,"tag":111,"props":472,"children":473},{},[474],{"type":46,"value":475},"Copyright",{"type":46,"value":477}," line with subject-specific details.",{"type":40,"tag":49,"props":479,"children":480},{},[481],{"type":46,"value":482},"If curriculum is NOT confirmed (see Step 0.2 detection rules), never name a specific\ncurriculum, module, unit number, lesson number, or proprietary routine name anywhere in the\noutput or in any chat message — even if recognizable from training. The source lesson and\nKG data inform the design without being cited. See Step 0.2 for the full rule (P9).",{"type":40,"tag":60,"props":484,"children":485},{},[],{"type":40,"tag":64,"props":487,"children":489},{"id":488},"step-4-the-draft-offer",[490],{"type":46,"value":491},"Step 4 — The draft offer",{"type":40,"tag":49,"props":493,"children":494},{},[495],{"type":46,"value":496},"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 whatever\nyou ask before Step 2 (state, source lesson, learner needs) and asked on its own when\nnothing else needs asking.",{"type":40,"tag":119,"props":498,"children":499},{},[500,510],{"type":40,"tag":107,"props":501,"children":502},{},[503,505],{"type":46,"value":504},"Question: ",{"type":40,"tag":76,"props":506,"children":507},{},[508],{"type":46,"value":509},"Should I go ahead and build the full classroom-ready set (teacher plan + three tier documents, as\neditable Word docs), or do you want to see a quick draft first?",{"type":40,"tag":107,"props":511,"children":512},{},[513,515,520,522,527],{"type":46,"value":514},"Options: ",{"type":40,"tag":111,"props":516,"children":517},{},[518],{"type":46,"value":519},"Go ahead and build it",{"type":46,"value":521}," · ",{"type":40,"tag":111,"props":523,"children":524},{},[525],{"type":46,"value":526},"Quick draft first",{"type":46,"value":528}," — what changes for each\ntier, right here in chat",{"type":40,"tag":49,"props":530,"children":531},{},[532,537],{"type":40,"tag":111,"props":533,"children":534},{},[535],{"type":46,"value":536},"The full set is the default.",{"type":46,"value":538}," Declining, not answering, or anything like \"proceed with\nyour defaults\" runs Steps 2–3 and goes straight to Step 5; the draft happens only on a clear yes.",{"type":40,"tag":49,"props":540,"children":541},{},[542,547],{"type":40,"tag":111,"props":543,"children":544},{},[545],{"type":46,"value":546},"The draft (on a yes) is built on Steps 2–3, never instead of them.",{"type":46,"value":548}," 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 design in chat — the draft is chat text only;\nrendering happens at Step 5 once the teacher approves. Show:",{"type":40,"tag":119,"props":550,"children":551},{},[552,557,562,567],{"type":40,"tag":107,"props":553,"children":554},{},[555],{"type":46,"value":556},"one line reading back the source lesson, standard, and grade;",{"type":40,"tag":107,"props":558,"children":559},{},[560],{"type":46,"value":561},"for each tier (below \u002F at \u002F above), 2–3 bullets on what changes and why;",{"type":40,"tag":107,"props":563,"children":564},{},[565],{"type":46,"value":566},"the student work at a glance — each tier's actual tasks, enough for the teacher to\nskim and judge coverage;",{"type":40,"tag":107,"props":568,"children":569},{},[570],{"type":46,"value":571},"one line on what every tier shares — the essential question or core task — and the\nregroup rule",{"type":40,"tag":49,"props":573,"children":574},{},[575],{"type":46,"value":576},"The draft borrows its names from the documents it previews — phases, tasks, tiers,\nand sections are called what the plan will call them.",{"type":40,"tag":49,"props":578,"children":579},{},[580],{"type":46,"value":581},"Afterwards, ask what's next — a structured question, two options:",{"type":40,"tag":119,"props":583,"children":584},{},[585,595],{"type":40,"tag":107,"props":586,"children":587},{},[588,593],{"type":40,"tag":111,"props":589,"children":590},{},[591],{"type":46,"value":592},"Make changes",{"type":46,"value":594}," — adjust any tier or the shared task",{"type":40,"tag":107,"props":596,"children":597},{},[598,603],{"type":40,"tag":111,"props":599,"children":600},{},[601],{"type":46,"value":602},"Create the materials",{"type":46,"value":604}," — teacher plan and the three tier documents, as editable Word\ndocuments",{"type":40,"tag":49,"props":606,"children":607},{},[608],{"type":46,"value":609},"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":40,"tag":60,"props":611,"children":612},{},[],{"type":40,"tag":64,"props":614,"children":616},{"id":615},"step-5-output-one-turn",[617],{"type":46,"value":618},"Step 5 — Output (one turn)",{"type":40,"tag":49,"props":620,"children":621},{},[622],{"type":46,"value":623},"Runs immediately when the teacher chose the full set, or in the turn the draft is\napproved.",{"type":40,"tag":49,"props":625,"children":626},{},[627,629,634,636,649,651,657,659,665],{"type":46,"value":628},"Four artifacts — ",{"type":40,"tag":111,"props":630,"children":631},{},[632],{"type":46,"value":633},"1 teacher-facing plan + 3 student tier documents (below \u002F at \u002F above)",{"type":46,"value":635}," —\nare all rendered by a bundled script from ",{"type":40,"tag":111,"props":637,"children":638},{},[639,641,647],{"type":46,"value":640},"one ",{"type":40,"tag":128,"props":642,"children":644},{"className":643},[],[645],{"type":46,"value":646},"differentiation.json",{"type":46,"value":648}," (the material source)",{"type":46,"value":650},". Anything that\nappears in more than one artifact (standard, problem\u002Ftask set, exit ticket, vocabulary,\nsentence supports, misconceptions) lives ONCE in the JSON's ",{"type":40,"tag":128,"props":652,"children":654},{"className":653},[],[655],{"type":46,"value":656},"shared",{"type":46,"value":658}," block and is pulled into\neach document with ",{"type":40,"tag":128,"props":660,"children":662},{"className":661},[],[663],{"type":46,"value":664},"{\"type\": \"from_shared\", \"key\": …}",{"type":46,"value":666}," blocks, so the teacher plan and the\ntier documents cannot drift apart — and R6 (same context, same core tasks across tiers) is\nenforced structurally.",{"type":40,"tag":49,"props":668,"children":669},{},[670,672,677],{"type":46,"value":671},"Never write layout code, never re-type content into another format, and never edit a generated\ndocument directly — every change goes into ",{"type":40,"tag":128,"props":673,"children":675},{"className":674},[],[676],{"type":46,"value":646},{"type":46,"value":678}," and is re-rendered\n(re-rendering is instant).",{"type":40,"tag":49,"props":680,"children":681},{},[682,687,689,694,696,702,704,709,711,716],{"type":40,"tag":111,"props":683,"children":684},{},[685],{"type":46,"value":686},"Plain language with the teacher.",{"type":46,"value":688}," The machinery above is invisible to the teacher: never\nmention JSON, HTML, schemas, scripts, rendering, file names (",{"type":40,"tag":128,"props":690,"children":692},{"className":691},[],[693],{"type":46,"value":646},{"type":46,"value":695},"), or code\nin any teacher-facing message — and never link or name the ",{"type":40,"tag":128,"props":697,"children":699},{"className":698},[],[700],{"type":46,"value":701},".html",{"type":46,"value":703}," files the render command\nalso writes. Say ",{"type":40,"tag":76,"props":705,"children":706},{},[707],{"type":46,"value":708},"\"Here's your differentiation plan — the three tier documents are on their\nway\"",{"type":46,"value":710},", not ",{"type":40,"tag":76,"props":712,"children":713},{},[714],{"type":46,"value":715},"\"I've rendered differentiation.json\"",{"type":46,"value":717},". The only format word in your prose is\n\"Word document\". This applies to every\nturn: presenting artifacts, the satisfaction ask, revision summaries, and error messages (if\ngeneration fails, say the documents couldn't be created — not that a script or JSON failed).",{"type":40,"tag":49,"props":719,"children":720},{},[721,726],{"type":40,"tag":111,"props":722,"children":723},{},[724],{"type":46,"value":725},"Density rules — hard requirements for every document.",{"type":46,"value":727}," Teachers consistently flag dense\nwalls of text. Structure beats prose:",{"type":40,"tag":119,"props":729,"children":730},{},[731,752,757,770,783,795],{"type":40,"tag":107,"props":732,"children":733},{},[734,736,742,744,750],{"type":46,"value":735},"A ",{"type":40,"tag":128,"props":737,"children":739},{"className":738},[],[740],{"type":46,"value":741},"paragraph",{"type":46,"value":743}," or ",{"type":40,"tag":128,"props":745,"children":747},{"className":746},[],[748],{"type":46,"value":749},"labeled",{"type":46,"value":751}," block is at most 3 sentences. Longer → split it, bullet it, or\ntable it.",{"type":40,"tag":107,"props":753,"children":754},{},[755],{"type":46,"value":756},"Bullets are fragments — one idea each, ≤ ~15 words; never chain clauses with semicolons.",{"type":40,"tag":107,"props":758,"children":759},{},[760,762,768],{"type":46,"value":761},"Parallel tier content (Below \u002F At \u002F Above doing the same phase differently) goes in ONE\n",{"type":40,"tag":128,"props":763,"children":765},{"className":764},[],[766],{"type":46,"value":767},"table",{"type":46,"value":769}," block — rows = phases or features, columns = tiers, ≤ ~25 words per cell — never\nthree back-to-back multi-sentence paragraphs.",{"type":40,"tag":107,"props":771,"children":772},{},[773,775,781],{"type":46,"value":774},"An aside longer than one sentence (misconception watch-fors, confer prompts, deployment\nguidance) becomes its own ",{"type":40,"tag":128,"props":776,"children":778},{"className":777},[],[779],{"type":46,"value":780},"callout",{"type":46,"value":782}," block, not a sentence buried in a paragraph.",{"type":40,"tag":107,"props":784,"children":785},{},[786,788,793],{"type":46,"value":787},"Quote the standard verbatim exactly once (the target-standard callout, from ",{"type":40,"tag":128,"props":789,"children":791},{"className":790},[],[792],{"type":46,"value":656},{"type":46,"value":794},").\nEverywhere else — prerequisite grounding, forward connections — reference by code plus a\ngist of ten words or fewer; never re-paste full standard text.",{"type":40,"tag":107,"props":796,"children":797},{},[798],{"type":46,"value":799},"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":40,"tag":49,"props":801,"children":802},{},[803],{"type":40,"tag":111,"props":804,"children":805},{},[806],{"type":46,"value":807},"Pre-write cross-check — run ALL checks before calling the render script. Do not render until every item passes.",{"type":40,"tag":49,"props":809,"children":810},{},[811],{"type":40,"tag":111,"props":812,"children":813},{},[814],{"type":46,"value":815},"O6 — Artifact alignment (both directions):",{"type":40,"tag":103,"props":817,"children":818},{},[819,837],{"type":40,"tag":107,"props":820,"children":821},{},[822,827,829,835],{"type":40,"tag":111,"props":823,"children":824},{},[825],{"type":46,"value":826},"Plan → tier documents.",{"type":46,"value":828}," List every task the plan says students do — tier problems\u002Ftasks,\nexit ticket, the anchor activity, anything assigned to \"early finishers.\" Each must have a\nprinted student-facing block on at least one tier document (the anchor activity on all\nthree, via ",{"type":40,"tag":128,"props":830,"children":832},{"className":831},[],[833],{"type":46,"value":834},"from_shared: anchor_activity",{"type":46,"value":836},"). A task that exists only as a plan description\nfails.",{"type":40,"tag":107,"props":838,"children":839},{},[840,845,847,852],{"type":40,"tag":111,"props":841,"children":842},{},[843],{"type":46,"value":844},"Tier documents → plan.",{"type":46,"value":846}," For each tier document, list every printed task — each\nproblem\u002Ftask, the extension and each of its printed sub-parts, anything printed on one tier\nonly, the exit ticket, \"If you finish early,\" \"Reflect.\" Each must appear in that tier's\n",{"type":40,"tag":111,"props":848,"children":849},{},[850],{"type":46,"value":851},"Worksheet tasks",{"type":46,"value":853}," line in the plan, with its scaffold named (e.g., \"P1 (tape diagram +\nsentence support)\" not just \"P1\"). A printed task the plan never names fails — a named\nscaffold the worksheet does not print fails — and so does a plan line naming a task or\norganizer no tier document prints.",{"type":40,"tag":49,"props":855,"children":856},{},[857,859,865,867,873,875,881,883,889],{"type":46,"value":858},"Shared content is guaranteed by ",{"type":40,"tag":128,"props":860,"children":862},{"className":861},[],[863],{"type":46,"value":864},"from_shared",{"type":46,"value":866}," blocks; the check targets document-specific\nblocks and plan prose. Also confirm the exact ",{"type":40,"tag":128,"props":868,"children":870},{"className":869},[],[871],{"type":46,"value":872},"shared.standard_code",{"type":46,"value":874}," string appears in each of\nthe three tier documents' ",{"type":40,"tag":128,"props":876,"children":878},{"className":877},[],[879],{"type":46,"value":880},"eyebrow",{"type":46,"value":882}," (",{"type":40,"tag":128,"props":884,"children":886},{"className":885},[],[887],{"type":46,"value":888},"\"[Grade] [Subject] · [standard_code]\"",{"type":46,"value":890},") — the standard\nmust be named on every tier, not only in the teacher plan. Fix mismatches before rendering.",{"type":40,"tag":49,"props":892,"children":893},{},[894,899],{"type":40,"tag":111,"props":895,"children":896},{},[897],{"type":46,"value":898},"Classroom-ready (every document):",{"type":46,"value":900}," the tiers run on what the teacher already holds.\nEvery resource a worksheet or the plan names is a printed block in this package, equipment\nthe classroom has, or a sourced resource with its access path stated — exact title and\nsource, a link when you could confirm one. A visual a task depends on prints on the\nworksheet that uses it, or the task is rewritten to work from what does print. Anything\nharder to get than that stays out unless the teacher steered toward it.",{"type":40,"tag":49,"props":902,"children":903},{},[904],{"type":40,"tag":111,"props":905,"children":906},{},[907],{"type":46,"value":908},"P8 — Flexible grouping (confirm in teacher plan JSON):",{"type":40,"tag":119,"props":910,"children":911},{},[912,925],{"type":40,"tag":107,"props":913,"children":914},{},[915,917,923],{"type":46,"value":916},"The ",{"type":40,"tag":128,"props":918,"children":920},{"className":919},[],[921],{"type":46,"value":922},"Flexible Grouping",{"type":46,"value":924}," section states the evidence or basis used to assign students to each\ntier (e.g., a specific prior exit ticket, diagnostic score, or \"Default profile applied — no\ndiagnostic data available\"). A blank or generic statement fails.",{"type":40,"tag":107,"props":926,"children":927},{},[928],{"type":46,"value":929},"The section includes an explicit statement that tier assignments are revisable based on\nformative evidence from THIS lesson (not a standing ability track).",{"type":40,"tag":49,"props":931,"children":932},{},[933],{"type":40,"tag":111,"props":934,"children":935},{},[936],{"type":46,"value":937},"O4 — Rationale notes (confirm in teacher plan JSON):",{"type":40,"tag":119,"props":939,"children":940},{},[941],{"type":40,"tag":107,"props":942,"children":943},{},[944,950,952,958],{"type":40,"tag":128,"props":945,"children":947},{"className":946},[],[948],{"type":46,"value":949},"Why this works (1)",{"type":46,"value":951}," and ",{"type":40,"tag":128,"props":953,"children":955},{"className":954},[],[956],{"type":46,"value":957},"Why this works (2)",{"type":46,"value":959}," sections are present and each name a specific\ntier design choice with a stated reason. Generic statements (\"scaffolds help learners\") fail.\nThese sections are required and cannot be dropped to meet page caps — tighten other content\ninstead.",{"type":40,"tag":961,"props":962,"children":964},"h3",{"id":963},"_5a-write-the-complete-differentiationjson-same-turn",[965,967,972],{"type":46,"value":966},"5a. Write the complete ",{"type":40,"tag":128,"props":968,"children":970},{"className":969},[],[971],{"type":46,"value":646},{"type":46,"value":973}," (same turn)",{"type":40,"tag":103,"props":975,"children":976},{},[977,1752],{"type":40,"tag":107,"props":978,"children":979},{},[980,982,987,989,995,997,1007,1009,1015,1017,1023,1025,1031,1033,1039,1041,1047,1049,1055,1057,1063,1065,1071,1073,1076,1081,1083,1089,1091,1096,1097,1109,1112,1122,1124,1129,1131,1136,1138,1144,1146,1151,1153,1158,1160,1166,1168,1173,1175,1180,1182,1187,1189,1195,1197,1200,1202,1207,1209,1214,1216,1221,1223],{"type":46,"value":981},"Write ",{"type":40,"tag":128,"props":983,"children":985},{"className":984},[],[986],{"type":46,"value":646},{"type":46,"value":988},": top-level ",{"type":40,"tag":128,"props":990,"children":992},{"className":991},[],[993],{"type":46,"value":994},"theme",{"type":46,"value":996},", the ",{"type":40,"tag":111,"props":998,"children":999},{},[1000,1005],{"type":40,"tag":128,"props":1001,"children":1003},{"className":1002},[],[1004],{"type":46,"value":656},{"type":46,"value":1006}," block",{"type":46,"value":1008}," (write this FIRST —\nthe identity fields, the standard verbatim, each tier task under its own key (",{"type":40,"tag":128,"props":1010,"children":1012},{"className":1011},[],[1013],{"type":46,"value":1014},"t1",{"type":46,"value":1016},", ",{"type":40,"tag":128,"props":1018,"children":1020},{"className":1019},[],[1021],{"type":46,"value":1022},"t2",{"type":46,"value":1024},", …),\nthe exit ticket, and composed blocks for vocabulary, sentence supports, and misconceptions;\nalso ",{"type":40,"tag":128,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":46,"value":1030},"anchor_activity",{"type":46,"value":1032}," (early-finisher task in student-facing second person — directions\nonly, no rationale) and ",{"type":40,"tag":128,"props":1034,"children":1036},{"className":1035},[],[1037],{"type":46,"value":1038},"reflect_prompt",{"type":46,"value":1040}," (the closing reflective question)), and a\n",{"type":40,"tag":128,"props":1042,"children":1044},{"className":1043},[],[1045],{"type":46,"value":1046},"documents",{"type":46,"value":1048}," array with 4 entries: ",{"type":40,"tag":128,"props":1050,"children":1052},{"className":1051},[],[1053],{"type":46,"value":1054},"{\"id\": \"teacher_plan\", \"audience\": \"teacher\", …}",{"type":46,"value":1056}," and\n",{"type":40,"tag":128,"props":1058,"children":1060},{"className":1059},[],[1061],{"type":46,"value":1062},"{\"id\": \"worksheet_group_a\" \u002F \"worksheet_group_b\" \u002F \"worksheet_group_c\", \"audience\": \"student\", …}",{"type":46,"value":1064},".\nEach document's ",{"type":40,"tag":128,"props":1066,"children":1068},{"className":1067},[],[1069],{"type":46,"value":1070},"sections",{"type":46,"value":1072}," follow the subject file's document content templates.",{"type":40,"tag":168,"props":1074,"children":1075},{},[],{"type":40,"tag":111,"props":1077,"children":1078},{},[1079],{"type":46,"value":1080},"Schema",{"type":46,"value":1082}," — the complete field skeleton (",{"type":40,"tag":128,"props":1084,"children":1086},{"className":1085},[],[1087],{"type":46,"value":1088},"blocks",{"type":46,"value":1090}," shows one of each type). This is\nsufficient — ",{"type":40,"tag":111,"props":1092,"children":1093},{},[1094],{"type":46,"value":1095},"do not open, cat, head, or grep the renderer scripts",{"type":46,"value":250},{"type":40,"tag":1098,"props":1099,"children":1103},"pre",{"className":1100,"code":1102,"language":46},[1101],"language-text","theme: {primary: \"#…\"}\nshared:\n  subject, grade, standard_code, standard_text        (required identity)\n  duration?\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: teacher_plan|worksheet_group_a|worksheet_group_b|worksheet_group_c,\n              audience: teacher|student, eyebrow, title, meta,\n              sections[]: {heading, blocks[]}}\n  block types:\n    {type: from_shared, key, label?}\n    {type: labeled, label, text} | {type: paragraph, text}\n    {type: callout, kind: special|student-task|teacher-note|student-note, label, text}\n    {type: h2, text} | {type: h3, text} | {type: list, label?, ordered?, items[]}\n    {type: checklist, label?, items[]} | {type: fill_in, label?, size: short|med|long}\n    {type: phase_header, name, minutes}   (science teacher plan; supported by all renderers)\n    {type: table, headers[]?, rows[[]], empty_row_height_pt?}\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: cards, items[{title, text}]} | {type: workspace, size: small|med|large, height_pt?}\n    {type: group, blocks[]} | {type: columns, left[], right[]} | {type: page_break}\n",[1104],{"type":40,"tag":128,"props":1105,"children":1107},{"__ignoreMap":1106},"",[1108],{"type":46,"value":1102},{"type":40,"tag":168,"props":1110,"children":1111},{},[],{"type":40,"tag":111,"props":1113,"children":1114},{},[1115,1120],{"type":40,"tag":128,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":46,"value":656},{"type":46,"value":1121}," is a content registry.",{"type":46,"value":1123}," Register each tier task under its own key (",{"type":40,"tag":128,"props":1125,"children":1127},{"className":1126},[],[1128],{"type":46,"value":1014},{"type":46,"value":1130},",\n",{"type":40,"tag":128,"props":1132,"children":1134},{"className":1133},[],[1135],{"type":46,"value":1022},{"type":46,"value":1137},", …), the exit ticket as ",{"type":40,"tag":128,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":46,"value":1143},"exit_ticket",{"type":46,"value":1145},", and any other content that appears on more\nthan one document, under keys you choose. A key's value can be a string, a composed\nblock (a vocabulary ",{"type":40,"tag":128,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":46,"value":767},{"type":46,"value":1152},", a misconceptions ",{"type":40,"tag":128,"props":1154,"children":1156},{"className":1155},[],[1157],{"type":46,"value":767},{"type":46,"value":1159},", sentence-support text with its writing space), or a\nfaceted object ",{"type":40,"tag":128,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":46,"value":1165},"{teacher: …, student: …}",{"type":46,"value":1167}," — on a ",{"type":40,"tag":111,"props":1169,"children":1170},{},[1171],{"type":46,"value":1172},"student",{"type":46,"value":1174}," page only the ",{"type":40,"tag":128,"props":1176,"children":1178},{"className":1177},[],[1179],{"type":46,"value":1172},{"type":46,"value":1181},"\nfacet renders; on the ",{"type":40,"tag":111,"props":1183,"children":1184},{},[1185],{"type":46,"value":1186},"teacher",{"type":46,"value":1188}," page both render (the teacher facet as a teacher-note,\nthen the student facet as a \"What students see\" callout). Key names carry no special\nrendering — compose vocabulary, misconceptions, and sort buckets as blocks yourself\n(",{"type":40,"tag":128,"props":1190,"children":1192},{"className":1191},[],[1193],{"type":46,"value":1194},"references\u002Fexample_differentiation.json",{"type":46,"value":1196}," shows each pattern).",{"type":40,"tag":168,"props":1198,"children":1199},{},[],{"type":46,"value":1201},"(",{"type":40,"tag":128,"props":1203,"children":1205},{"className":1204},[],[1206],{"type":46,"value":1194},{"type":46,"value":1208}," is a filled-in worked example if\nvalues-in-context would help, but reading it is not required.) Keep writing tight; no emoji in JSON content.\nThe density rules above are hard requirements for every text field.\n",{"type":40,"tag":111,"props":1210,"children":1211},{},[1212],{"type":46,"value":1213},"Which block when",{"type":46,"value":1215}," — pick by what the content ",{"type":40,"tag":76,"props":1217,"children":1218},{},[1219],{"type":46,"value":1220},"is",{"type":46,"value":1222},", not how it should look:",{"type":40,"tag":767,"props":1224,"children":1225},{},[1226,1245],{"type":40,"tag":1227,"props":1228,"children":1229},"thead",{},[1230],{"type":40,"tag":1231,"props":1232,"children":1233},"tr",{},[1234,1240],{"type":40,"tag":1235,"props":1236,"children":1237},"th",{},[1238],{"type":46,"value":1239},"Block",{"type":40,"tag":1235,"props":1241,"children":1242},{},[1243],{"type":46,"value":1244},"Use it for",{"type":40,"tag":1246,"props":1247,"children":1248},"tbody",{},[1249,1274,1297,1320,1343,1367,1391,1408,1434,1456,1532,1549,1560,1579,1597,1608,1626,1645,1663,1674,1691,1702,1713,1730,1741],{"type":40,"tag":1231,"props":1250,"children":1251},{},[1252,1269],{"type":40,"tag":1253,"props":1254,"children":1255},"td",{},[1256,1261,1263],{"type":40,"tag":128,"props":1257,"children":1259},{"className":1258},[],[1260],{"type":46,"value":780},{"type":46,"value":1262}," ",{"type":40,"tag":128,"props":1264,"children":1266},{"className":1265},[],[1267],{"type":46,"value":1268},"kind: special",{"type":40,"tag":1253,"props":1270,"children":1271},{},[1272],{"type":46,"value":1273},"The one anchoring fact per artifact — the target standard. Typically once.",{"type":40,"tag":1231,"props":1275,"children":1276},{},[1277,1292],{"type":40,"tag":1253,"props":1278,"children":1279},{},[1280,1285,1286],{"type":40,"tag":128,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":46,"value":780},{"type":46,"value":1262},{"type":40,"tag":128,"props":1287,"children":1289},{"className":1288},[],[1290],{"type":46,"value":1291},"kind: student-task",{"type":40,"tag":1253,"props":1293,"children":1294},{},[1295],{"type":46,"value":1296},"Any task students do: anchor task, exit ticket prompt, a tier task shown in the plan.",{"type":40,"tag":1231,"props":1298,"children":1299},{},[1300,1315],{"type":40,"tag":1253,"props":1301,"children":1302},{},[1303,1308,1309],{"type":40,"tag":128,"props":1304,"children":1306},{"className":1305},[],[1307],{"type":46,"value":780},{"type":46,"value":1262},{"type":40,"tag":128,"props":1310,"children":1312},{"className":1311},[],[1313],{"type":46,"value":1314},"kind: teacher-note",{"type":40,"tag":1253,"props":1316,"children":1317},{},[1318],{"type":46,"value":1319},"An aside the teacher reads but does not say aloud: conferring moves, a watch-for.",{"type":40,"tag":1231,"props":1321,"children":1322},{},[1323,1338],{"type":40,"tag":1253,"props":1324,"children":1325},{},[1326,1331,1332],{"type":40,"tag":128,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":46,"value":780},{"type":46,"value":1262},{"type":40,"tag":128,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":46,"value":1337},"kind: student-note",{"type":40,"tag":1253,"props":1339,"children":1340},{},[1341],{"type":46,"value":1342},"A reminder students read on their worksheet: a hint card, a key fact. (A sentence support students write from is plain text near its task, not a callout.)",{"type":40,"tag":1231,"props":1344,"children":1345},{},[1346,1362],{"type":40,"tag":1253,"props":1347,"children":1348},{},[1349,1355,1356],{"type":40,"tag":128,"props":1350,"children":1352},{"className":1351},[],[1353],{"type":46,"value":1354},"list",{"type":46,"value":1262},{"type":40,"tag":128,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":46,"value":1361},"ordered: true",{"type":40,"tag":1253,"props":1363,"children":1364},{},[1365],{"type":46,"value":1366},"A numbered sequence — the problem set, procedure steps. Unordered otherwise.",{"type":40,"tag":1231,"props":1368,"children":1369},{},[1370,1386],{"type":40,"tag":1253,"props":1371,"children":1372},{},[1373,1378,1380],{"type":40,"tag":128,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":46,"value":1354},{"type":46,"value":1379}," with ",{"type":40,"tag":128,"props":1381,"children":1383},{"className":1382},[],[1384],{"type":46,"value":1385},"label",{"type":40,"tag":1253,"props":1387,"children":1388},{},[1389],{"type":46,"value":1390},"A titled enumeration — several discrete items under one label.",{"type":40,"tag":1231,"props":1392,"children":1393},{},[1394,1403],{"type":40,"tag":1253,"props":1395,"children":1396},{},[1397],{"type":40,"tag":128,"props":1398,"children":1400},{"className":1399},[],[1401],{"type":46,"value":1402},"cards",{"type":40,"tag":1253,"props":1404,"children":1405},{},[1406],{"type":46,"value":1407},"2–4 parallel items of roughly equal length — tier summaries, sort buckets. Never for long or unbalanced items.",{"type":40,"tag":1231,"props":1409,"children":1410},{},[1411,1429],{"type":40,"tag":1253,"props":1412,"children":1413},{},[1414,1419,1421,1427],{"type":40,"tag":128,"props":1415,"children":1417},{"className":1416},[],[1418],{"type":46,"value":767},{"type":46,"value":1420}," (no ",{"type":40,"tag":128,"props":1422,"children":1424},{"className":1423},[],[1425],{"type":46,"value":1426},"headers",{"type":46,"value":1428},")",{"type":40,"tag":1253,"props":1430,"children":1431},{},[1432],{"type":46,"value":1433},"Term\u002Fdefinition pairs, label\u002Fvalue reference rows.",{"type":40,"tag":1231,"props":1435,"children":1436},{},[1437,1451],{"type":40,"tag":1253,"props":1438,"children":1439},{},[1440,1445,1446],{"type":40,"tag":128,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":46,"value":767},{"type":46,"value":1379},{"type":40,"tag":128,"props":1447,"children":1449},{"className":1448},[],[1450],{"type":46,"value":1426},{"type":40,"tag":1253,"props":1452,"children":1453},{},[1454],{"type":46,"value":1455},"Real tabular data with column labels (per-tier scaffolds, misconceptions).",{"type":40,"tag":1231,"props":1457,"children":1458},{},[1459,1468],{"type":40,"tag":1253,"props":1460,"children":1461},{},[1462],{"type":40,"tag":128,"props":1463,"children":1465},{"className":1464},[],[1466],{"type":46,"value":1467},"number_line",{"type":40,"tag":1253,"props":1469,"children":1470},{},[1471,1473,1479,1480,1486,1487,1493,1495,1501,1503,1508,1510,1516,1518,1523,1525,1530],{"type":46,"value":1472},"A drawn number line (",{"type":40,"tag":128,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":46,"value":1478},"min",{"type":46,"value":1016},{"type":40,"tag":128,"props":1481,"children":1483},{"className":1482},[],[1484],{"type":46,"value":1485},"max",{"type":46,"value":1016},{"type":40,"tag":128,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":46,"value":1492},"ticks",{"type":46,"value":1494},", optional ",{"type":40,"tag":128,"props":1496,"children":1498},{"className":1497},[],[1499],{"type":46,"value":1500},"marks",{"type":46,"value":1502},"). ",{"type":40,"tag":128,"props":1504,"children":1506},{"className":1505},[],[1507],{"type":46,"value":1492},{"type":46,"value":1509}," omitted defaults to 10 evenly spaced segments; ",{"type":40,"tag":128,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":46,"value":1515},"ticks: 0",{"type":46,"value":1517}," draws a bare line with only the ",{"type":40,"tag":128,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":46,"value":1478},{"type":46,"value":1524},"\u002F",{"type":40,"tag":128,"props":1526,"children":1528},{"className":1527},[],[1529],{"type":46,"value":1485},{"type":46,"value":1531}," end labels and no tick marks, for students to partition themselves.",{"type":40,"tag":1231,"props":1533,"children":1534},{},[1535,1544],{"type":40,"tag":1253,"props":1536,"children":1537},{},[1538],{"type":40,"tag":128,"props":1539,"children":1541},{"className":1540},[],[1542],{"type":46,"value":1543},"workspace",{"type":40,"tag":1253,"props":1545,"children":1546},{},[1547],{"type":46,"value":1548},"Student writing space; `size: small",{"type":40,"tag":1231,"props":1550,"children":1551},{},[1552,1557],{"type":40,"tag":1253,"props":1553,"children":1554},{},[1555],{"type":46,"value":1556},"Tabular content — data tables, \"complete the table\" tasks, row-and-column organizers — must",{"type":40,"tag":1253,"props":1558,"children":1559},{},[],{"type":40,"tag":1231,"props":1561,"children":1562},{},[1563,1576],{"type":40,"tag":1253,"props":1564,"children":1565},{},[1566,1568,1574],{"type":46,"value":1567},"be a ",{"type":40,"tag":128,"props":1569,"children":1571},{"className":1570},[],[1572],{"type":46,"value":1573},"{\"type\": \"table\", \"headers\": [...], \"rows\": [[...]]}",{"type":46,"value":1575}," block (a row of empty strings",{"type":40,"tag":1253,"props":1577,"children":1578},{},[],{"type":40,"tag":1231,"props":1580,"children":1581},{},[1582,1594],{"type":40,"tag":1253,"props":1583,"children":1584},{},[1585,1587,1592],{"type":46,"value":1586},"renders as ruled writing space). Never draw a table inside a ",{"type":40,"tag":128,"props":1588,"children":1590},{"className":1589},[],[1591],{"type":46,"value":46},{"type":46,"value":1593}," field: markdown pipe",{"type":40,"tag":1253,"props":1595,"children":1596},{},[],{"type":40,"tag":1231,"props":1598,"children":1599},{},[1600,1605],{"type":40,"tag":1253,"props":1601,"children":1602},{},[1603],{"type":46,"value":1604},"rows, box-drawing characters, ASCII art, and symbol glyphs (■, □) print literally on the",{"type":40,"tag":1253,"props":1606,"children":1607},{},[],{"type":40,"tag":1231,"props":1609,"children":1610},{},[1611,1623],{"type":40,"tag":1253,"props":1612,"children":1613},{},[1614,1616,1621],{"type":46,"value":1615},"page and fail print-safety. Never write bullet characters (•, -) inside a ",{"type":40,"tag":128,"props":1617,"children":1619},{"className":1618},[],[1620],{"type":46,"value":46},{"type":46,"value":1622}," string",{"type":40,"tag":1253,"props":1624,"children":1625},{},[],{"type":40,"tag":1231,"props":1627,"children":1628},{},[1629,1642],{"type":40,"tag":1253,"props":1630,"children":1631},{},[1632,1634,1640],{"type":46,"value":1633},"— use a ",{"type":40,"tag":128,"props":1635,"children":1637},{"className":1636},[],[1638],{"type":46,"value":1639},"bullets",{"type":46,"value":1641}," block; a paragraph collapses line breaks and the bullets run together",{"type":40,"tag":1253,"props":1643,"children":1644},{},[],{"type":40,"tag":1231,"props":1646,"children":1647},{},[1648,1660],{"type":40,"tag":1253,"props":1649,"children":1650},{},[1651,1653,1658],{"type":46,"value":1652},"into one line. Use ",{"type":40,"tag":128,"props":1654,"children":1656},{"className":1655},[],[1657],{"type":46,"value":1543},{"type":46,"value":1659}," blocks for writing space — they render as",{"type":40,"tag":1253,"props":1661,"children":1662},{},[],{"type":40,"tag":1231,"props":1664,"children":1665},{},[1666,1671],{"type":40,"tag":1253,"props":1667,"children":1668},{},[1669],{"type":46,"value":1670},"open whitespace sized by grade automatically (lower grades get much more room, and K–5",{"type":40,"tag":1253,"props":1672,"children":1673},{},[],{"type":40,"tag":1231,"props":1675,"children":1676},{},[1677,1688],{"type":40,"tag":1253,"props":1678,"children":1679},{},[1680,1682],{"type":46,"value":1681},"prose answers get ruled lines; math work space stays open for drawing). Set ",{"type":40,"tag":128,"props":1683,"children":1685},{"className":1684},[],[1686],{"type":46,"value":1687},"height_pt",{"type":40,"tag":1253,"props":1689,"children":1690},{},[],{"type":40,"tag":1231,"props":1692,"children":1693},{},[1694,1699],{"type":40,"tag":1253,"props":1695,"children":1696},{},[1697],{"type":46,"value":1698},"only when a task needs more than the default: 130–150 for full written explanations and",{"type":40,"tag":1253,"props":1700,"children":1701},{},[],{"type":40,"tag":1231,"props":1703,"children":1704},{},[1705,1710],{"type":40,"tag":1253,"props":1706,"children":1707},{},[1708],{"type":46,"value":1709},"exit tickets, 90–110 for short extension questions. Empty table cells are writing space",{"type":40,"tag":1253,"props":1711,"children":1712},{},[],{"type":40,"tag":1231,"props":1714,"children":1715},{},[1716,1727],{"type":40,"tag":1253,"props":1717,"children":1718},{},[1719,1721],{"type":46,"value":1720},"and get a grade-banded minimum height automatically — don't set ",{"type":40,"tag":128,"props":1722,"children":1724},{"className":1723},[],[1725],{"type":46,"value":1726},"empty_row_height_pt",{"type":40,"tag":1253,"props":1728,"children":1729},{},[],{"type":40,"tag":1231,"props":1731,"children":1732},{},[1733,1738],{"type":40,"tag":1253,"props":1734,"children":1735},{},[1736],{"type":46,"value":1737},"below ~70pt for prose rows. This applies to",{"type":40,"tag":1253,"props":1739,"children":1740},{},[],{"type":40,"tag":1231,"props":1742,"children":1743},{},[1744,1749],{"type":40,"tag":1253,"props":1745,"children":1746},{},[1747],{"type":46,"value":1748},"every prose field in all four documents.",{"type":40,"tag":1253,"props":1750,"children":1751},{},[],{"type":40,"tag":107,"props":1753,"children":1754},{},[1755,1757,1762,1764,1776,1778,1783,1785,1791,1793,1798],{"type":46,"value":1756},"The three tier documents (in the same ",{"type":40,"tag":128,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":46,"value":1046},{"type":46,"value":1763}," array) differ ONLY in their scaffolding\nand extension blocks (R6).\n",{"type":40,"tag":111,"props":1765,"children":1766},{},[1767,1769,1774],{"type":46,"value":1768},"Every tier document pulls task text with ",{"type":40,"tag":128,"props":1770,"children":1772},{"className":1771},[],[1773],{"type":46,"value":864},{"type":46,"value":1775}," blocks — never re-type, reword,\nor split task text into a document's own blocks",{"type":46,"value":1777}," (so the plan and all three tiers stay\nverbatim-consistent — reworded tasks drift apart in revision). Each task has its own\n",{"type":40,"tag":128,"props":1779,"children":1781},{"className":1780},[],[1782],{"type":46,"value":656},{"type":46,"value":1784}," key, pulled one at a time so scaffolds sit with their task:\n",{"type":40,"tag":128,"props":1786,"children":1788},{"className":1787},[],[1789],{"type":46,"value":1790},"{\"type\": \"from_shared\", \"key\": \"t1\", \"label\": \"1\"}",{"type":46,"value":1792}," renders Task 1 as a numbered item;\nfollow each task — and every other prompt students answer (the exit ticket, Reflect,\nIf you finish early, a tier-only extension) — with a ",{"type":40,"tag":128,"props":1794,"children":1796},{"className":1795},[],[1797],{"type":46,"value":1543},{"type":46,"value":1799}," block.\nThe required order within the section is strict: for each task N — at most ONE\nscaffold block for task N (merge multiple supports into one labeled block; never two\n\"Before Task N\" blocks), then the task via its key. A scaffold must NEVER appear\nafter its target task, and nothing sits between a scaffold and its task.\nThat is how the R7 fade pattern is expressed — Task 1 gets a scaffold block, Task 2's is\nlighter, later tasks have none. A tier-only task (the Above extension, an Above-only\nsub-question) is its own headed block — never an edit to shared task text. Below-tier scaffolds follow R4; the Above-tier extension passes R7's quality\ntest. Asset framing rules (below) apply to every student-facing block.",{"type":40,"tag":961,"props":1801,"children":1803},{"id":1802},"_5b-render-all-four-word-documents-one-command-same-turn",[1804],{"type":46,"value":1805},"5b. Render all four Word documents — one command, same turn",{"type":40,"tag":1098,"props":1807,"children":1811},{"className":1808,"code":1809,"language":1810,"meta":1106,"style":1106},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bash scripts\u002Frender_all.sh differentiation.json \"$OUTPUT_DIR\"\n","bash",[1812],{"type":40,"tag":128,"props":1813,"children":1814},{"__ignoreMap":1106},[1815],{"type":40,"tag":260,"props":1816,"children":1819},{"class":1817,"line":1818},"line",1,[1820,1825,1831,1836,1842,1848],{"type":40,"tag":260,"props":1821,"children":1823},{"style":1822},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[1824],{"type":46,"value":1810},{"type":40,"tag":260,"props":1826,"children":1828},{"style":1827},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[1829],{"type":46,"value":1830}," scripts\u002Frender_all.sh",{"type":40,"tag":260,"props":1832,"children":1833},{"style":1827},[1834],{"type":46,"value":1835}," differentiation.json",{"type":40,"tag":260,"props":1837,"children":1839},{"style":1838},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1840],{"type":46,"value":1841}," \"",{"type":40,"tag":260,"props":1843,"children":1845},{"style":1844},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1846],{"type":46,"value":1847},"$OUTPUT_DIR",{"type":40,"tag":260,"props":1849,"children":1850},{"style":1838},[1851],{"type":46,"value":1852},"\"\n",{"type":40,"tag":49,"props":1854,"children":1855},{},[1856,1858,1864,1865,1871,1872,1878,1880,1886,1888,1893,1895,1900,1902,1908,1909,1914,1916,1921],{"type":46,"value":1857},"This writes ",{"type":40,"tag":128,"props":1859,"children":1861},{"className":1860},[],[1862],{"type":46,"value":1863},"$OUTPUT_DIR\u002Fteacher_plan.docx",{"type":46,"value":1016},{"type":40,"tag":128,"props":1866,"children":1868},{"className":1867},[],[1869],{"type":46,"value":1870},"$OUTPUT_DIR\u002Fworksheet_group_a.docx",{"type":46,"value":1130},{"type":40,"tag":128,"props":1873,"children":1875},{"className":1874},[],[1876],{"type":46,"value":1877},"$OUTPUT_DIR\u002Fworksheet_group_b.docx",{"type":46,"value":1879},", and ",{"type":40,"tag":128,"props":1881,"children":1883},{"className":1882},[],[1884],{"type":46,"value":1885},"$OUTPUT_DIR\u002Fworksheet_group_c.docx",{"type":46,"value":1887}," in one invocation,\nplus ",{"type":40,"tag":128,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":46,"value":701},{"type":46,"value":1894}," working files — no copy step needed; leave everything\nthe script writes in place (later revision turns re-render from the working files). Then list\n",{"type":40,"tag":128,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":46,"value":1847},{"type":46,"value":1901}," and confirm every document has both its ",{"type":40,"tag":128,"props":1903,"children":1905},{"className":1904},[],[1906],{"type":46,"value":1907},".docx",{"type":46,"value":951},{"type":40,"tag":128,"props":1910,"children":1912},{"className":1911},[],[1913],{"type":46,"value":701},{"type":46,"value":1915},"; if either is\nmissing or tiny, rerun the script. Present all four Word documents to the teacher together —\nattach the teacher plan last so it lands on top (chat surfaces stack newest-first). If the script errors, fix\n",{"type":40,"tag":128,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":46,"value":646},{"type":46,"value":1922}," (it is almost always malformed JSON) and rerun. If file generation\nfails entirely, say so clearly — do not silently fall back to a chat-only delivery.",{"type":40,"tag":961,"props":1924,"children":1926},{"id":1925},"_5c-the-close-every-output-turn",[1927],{"type":46,"value":1928},"5c. The close (every output turn)",{"type":40,"tag":49,"props":1930,"children":1931},{},[1932],{"type":46,"value":1933},"The chat message that delivers artifacts ends with three things, in order. Each must appear in\nthe chat message itself — saying it only inside the printed plan does not count. When the\nmessage mentions the sheets, use their group names with the association noted once\n(Group A = below grade level, etc.).",{"type":40,"tag":103,"props":1935,"children":1936},{},[1937,1954,1964],{"type":40,"tag":107,"props":1938,"children":1939},{},[1940,1945,1947,1952],{"type":40,"tag":111,"props":1941,"children":1942},{},[1943],{"type":46,"value":1944},"Learner-variability statement (first output turn, when you didn't ask).",{"type":46,"value":1946}," If you never\nasked about specific learner needs in this conversation (the R8 question), state in chat\nthat UDL defaults were applied and invite specifics — e.g. ",{"type":40,"tag":76,"props":1948,"children":1949},{},[1950],{"type":46,"value":1951},"\"I didn't have details on\nspecific learner needs, so I applied UDL defaults — sentence stems and a vocabulary\nglossary on all three tier sheets. Tell me about any multilingual learners or students\nwith IEPs or 504 plans and I'll tailor further.\"",{"type":46,"value":1953}," Skip this only when the teacher already\ngave learner information (then reflect it instead: \"the Below sheet builds in the sentence\nframes for your newcomer ELLs\").",{"type":40,"tag":107,"props":1955,"children":1956},{},[1957,1962],{"type":40,"tag":111,"props":1958,"children":1959},{},[1960],{"type":46,"value":1961},"Three lesson-specific next steps (first output turn).",{"type":46,"value":1963}," Offer 3–4 iteration options in\nchat, one short line each, specific to THIS lesson (e.g., a tiered ELD layer with\nWIDA-banded sentence supports; IEP-goal-specific scaffolds for a named goal area; a fourth\nintervention tier below the prerequisite; tightening scope to the exit ticket only). The\nsubject reference's FA follow-up prompt counts as one of them when it fits.",{"type":40,"tag":107,"props":1965,"children":1966},{},[1967,1972,1974,1979],{"type":40,"tag":111,"props":1968,"children":1969},{},[1970],{"type":46,"value":1971},"The satisfaction ask.",{"type":46,"value":1973}," Ask whether the teacher is satisfied with ",{"type":40,"tag":111,"props":1975,"children":1976},{},[1977],{"type":46,"value":1978},"all four artifacts",{"type":46,"value":1980},"\nor wants changes. Do not skip the ask — on every output turn, including revisions.",{"type":40,"tag":961,"props":1982,"children":1984},{"id":1983},"_5d-revisions-one-edit-every-artifact-stays-in-sync",[1985],{"type":46,"value":1986},"5d. Revisions — one edit, every artifact stays in sync",{"type":40,"tag":49,"props":1988,"children":1989},{},[1990,1992,2002],{"type":46,"value":1991},"Make ",{"type":40,"tag":111,"props":1993,"children":1994},{},[1995,1997],{"type":46,"value":1996},"targeted edits to ",{"type":40,"tag":128,"props":1998,"children":2000},{"className":1999},[],[2001],{"type":46,"value":646},{"type":46,"value":2003},", then re-render all four documents (instant).\nRules that keep the artifacts consistent:",{"type":40,"tag":119,"props":2005,"children":2006},{},[2007,2024,2048,2053],{"type":40,"tag":107,"props":2008,"children":2009},{},[2010,2012,2022],{"type":46,"value":2011},"If the change touches shared content (context, numbers, tasks, exit ticket, vocabulary,\nsentence supports, misconceptions), edit it ",{"type":40,"tag":111,"props":2013,"children":2014},{},[2015,2017],{"type":46,"value":2016},"in ",{"type":40,"tag":128,"props":2018,"children":2020},{"className":2019},[],[2021],{"type":46,"value":656},{"type":46,"value":2023}," — it propagates to the teacher\nplan and every tier document automatically.",{"type":40,"tag":107,"props":2025,"children":2026},{},[2027,2032,2034,2039,2041,2046],{"type":40,"tag":111,"props":2028,"children":2029},{},[2030],{"type":46,"value":2031},"Consistency sweep after any context\u002Fnumber\u002Ftask change:",{"type":46,"value":2033}," after editing ",{"type":40,"tag":128,"props":2035,"children":2037},{"className":2036},[],[2038],{"type":46,"value":656},{"type":46,"value":2040},", re-read\nevery prose block in all four documents' ",{"type":40,"tag":128,"props":2042,"children":2044},{"className":2043},[],[2045],{"type":46,"value":1070},{"type":46,"value":2047}," and update every sentence that still\nmentions the old context, names, or numbers. No artifact may reference the replaced content\nanywhere — stale prose is the most common consistency failure.",{"type":40,"tag":107,"props":2049,"children":2050},{},[2051],{"type":46,"value":2052},"A change aimed at one tier (e.g. \"more scaffolding for below\", \"harder extension\") goes in\nthat tier document's blocks — never by forking shared content. Scaffold changes must keep\nthe subject file's R4 rules and R7 fade pattern.",{"type":40,"tag":107,"props":2054,"children":2055},{},[2056,2058,2063,2065,2070],{"type":46,"value":2057},"Styling: top-level ",{"type":40,"tag":128,"props":2059,"children":2061},{"className":2060},[],[2062],{"type":46,"value":994},{"type":46,"value":2064}," applies to all four documents; per-document ",{"type":40,"tag":128,"props":2066,"children":2068},{"className":2067},[],[2069],{"type":46,"value":994},{"type":46,"value":2071}," overrides\nstay available.",{"type":40,"tag":961,"props":2073,"children":2075},{"id":2074},"_5e-fallback-bespoke-generation-code-exception-path-only",[2076],{"type":46,"value":2077},"5e. Fallback — bespoke generation code (exception path only)",{"type":40,"tag":49,"props":2079,"children":2080},{},[2081,2083,2088,2090,2095],{"type":46,"value":2082},"Only if the user explicitly asks for an artifact or layout the bundled renderer cannot express\n(a different document type, landscape poster, slide deck, etc.): write generation code from\nscratch for that artifact. Source its content from the same ",{"type":40,"tag":128,"props":2084,"children":2086},{"className":2085},[],[2087],{"type":46,"value":646},{"type":46,"value":2089}," (especially\n",{"type":40,"tag":128,"props":2091,"children":2093},{"className":2092},[],[2094],{"type":46,"value":656},{"type":46,"value":2096},") so it stays consistent with the other artifacts. Tell the user this path is slower.",{"type":40,"tag":961,"props":2098,"children":2100},{"id":2099},"student-facing-language-all-tier-documents",[2101],{"type":46,"value":2102},"Student-facing language — ALL tier documents",{"type":40,"tag":49,"props":2104,"children":2105},{},[2106],{"type":46,"value":2107},"Student pages never use instructional-design terminology. Those are teacher words; on a\nworksheet they read as labels about the student, not for the student.",{"type":40,"tag":119,"props":2109,"children":2110},{},[2111,2123,2147,2195],{"type":40,"tag":107,"props":2112,"children":2113},{},[2114,2116,2121],{"type":46,"value":2115},"❌ \"CER\" — write the organizer labels out: ",{"type":40,"tag":76,"props":2117,"children":2118},{},[2119],{"type":46,"value":2120},"Claim \u002F Evidence \u002F Reasoning",{"type":46,"value":2122},". (\"Write a CER\"\nbecomes \"Explain your claim with evidence and reasoning\".)",{"type":40,"tag":107,"props":2124,"children":2125},{},[2126,2128,2133,2134,2139,2140,2145],{"type":46,"value":2127},"❌ \"sensemaking check\", \"formative check\", \"misconception\", \"scaffold\", \"tier\",\n\"differentiation\", \"anchor task\" — use student words: ",{"type":40,"tag":76,"props":2129,"children":2130},{},[2131],{"type":46,"value":2132},"\"Check your thinking\"",{"type":46,"value":1016},{"type":40,"tag":76,"props":2135,"children":2136},{},[2137],{"type":46,"value":2138},"\"Try this\ntogether\"",{"type":46,"value":1016},{"type":40,"tag":76,"props":2141,"children":2142},{},[2143],{"type":46,"value":2144},"\"If you finish early\"",{"type":46,"value":2146},".",{"type":40,"tag":107,"props":2148,"children":2149},{},[2150,2152,2157,2159,2164,2166,2171,2173,2179,2181,2186,2188,2193],{"type":46,"value":2151},"On a student document the tier is named ",{"type":40,"tag":111,"props":2153,"children":2154},{},[2155],{"type":46,"value":2156},"Group A",{"type":46,"value":2158}," (below), ",{"type":40,"tag":111,"props":2160,"children":2161},{},[2162],{"type":46,"value":2163},"Group B",{"type":46,"value":2165}," (at), or\n",{"type":40,"tag":111,"props":2167,"children":2168},{},[2169],{"type":46,"value":2170},"Group C",{"type":46,"value":2172}," (above): the ",{"type":40,"tag":128,"props":2174,"children":2176},{"className":2175},[],[2177],{"type":46,"value":2178},"title",{"type":46,"value":2180}," carries the group letter per the subject template; the\n",{"type":40,"tag":128,"props":2182,"children":2184},{"className":2183},[],[2185],{"type":46,"value":880},{"type":46,"value":2187}," stays ",{"type":40,"tag":128,"props":2189,"children":2191},{"className":2190},[],[2192],{"type":46,"value":888},{"type":46,"value":2194}," with no level wording. Grade-level\nlabels are teacher words — the teacher plan's tier labels (\"Below (Group A)\" etc.) carry\nthe association.",{"type":40,"tag":107,"props":2196,"children":2197},{},[2198,2200,2205,2207,2212,2213,2217,2219,2224],{"type":46,"value":2199},"Scaffold prompts get a SHORT student-friendly ",{"type":40,"tag":128,"props":2201,"children":2203},{"className":2202},[],[2204],{"type":46,"value":961},{"type":46,"value":2206}," on its own line (e.g.\n",{"type":40,"tag":76,"props":2208,"children":2209},{},[2210],{"type":46,"value":2211},"\"Observe the data first\"",{"type":46,"value":1016},{"type":40,"tag":76,"props":2214,"children":2215},{},[2216],{"type":46,"value":2132},{"type":46,"value":2218},"), then the prompt as a normal\nparagraph below it — never a long bold inline label like\n\"",{"type":40,"tag":111,"props":2220,"children":2221},{},[2222],{"type":46,"value":2223},"Before Task 2 — sensemaking check:",{"type":46,"value":2225}," Complete this sentence…\". The subheading names\nwhat the student does, not the pedagogy behind it.",{"type":40,"tag":961,"props":2227,"children":2229},{"id":2228},"asset-framing-below-tier-documents",[2230],{"type":46,"value":2231},"Asset framing — below-tier documents",{"type":40,"tag":49,"props":2233,"children":2234},{},[2235],{"type":46,"value":2236},"Student-facing language must not signal reduced expectations. Scaffolds appear as natural task\ndesign, not announced supports.",{"type":40,"tag":119,"props":2238,"children":2239},{},[2240,2245,2250,2255,2260,2265],{"type":40,"tag":107,"props":2241,"children":2242},{},[2243],{"type":46,"value":2244},"❌ \"Task 1 (Scaffolded) \u002F Task 2 (Guided) \u002F Task 3 (Independent)\" — a student who sees these labels knows they are on the easier version.",{"type":40,"tag":107,"props":2246,"children":2247},{},[2248],{"type":46,"value":2249},"❌ \"Use this if you need it\" \u002F \"Here is a sentence starter\" — names the support as a crutch.",{"type":40,"tag":107,"props":2251,"children":2252},{},[2253],{"type":46,"value":2254},"❌ Any header, label, or aside that distinguishes scaffolded tasks from unscaffolded ones.",{"type":40,"tag":107,"props":2256,"children":2257},{},[2258],{"type":46,"value":2259},"✓ The organizer, annotation frame, or sentence support simply appears as part of the task layout.",{"type":40,"tag":107,"props":2261,"children":2262},{},[2263],{"type":46,"value":2264},"✓ Tasks are numbered without scaffold-level labels.",{"type":40,"tag":107,"props":2266,"children":2267},{},[2268],{"type":46,"value":2269},"✓ Sentence supports at the top of the document are introduced universally: \"You can use these sentence supports:\" — not \"Use these if you get stuck.\"",{"type":40,"tag":60,"props":2271,"children":2272},{},[],{"type":40,"tag":64,"props":2274,"children":2276},{"id":2275},"step-6-complete",[2277],{"type":46,"value":2278},"Step 6 — Complete",{"type":40,"tag":49,"props":2280,"children":2281},{},[2282],{"type":46,"value":2283},"The skill is complete when the teacher has confirmed they are satisfied with all four Word\ndocuments (5c). The closing message pairs the FA follow-up prompt from the subject\nreference's R8 section with the lesson-specific next-step options from 5c.",{"type":40,"tag":2285,"props":2286,"children":2287},"style",{},[2288],{"type":46,"value":2289},"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":2291,"total":2475},[2292,2313,2327,2339,2358,2371,2391,2411,2423,2438,2446,2459],{"slug":2293,"name":2293,"fn":2294,"description":2295,"org":2296,"tags":2297,"stars":2310,"repoUrl":2311,"updatedAt":2312},"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},[2298,2301,2304,2307],{"name":2299,"slug":2300,"type":16},"Creative","creative",{"name":2302,"slug":2303,"type":16},"Design","design",{"name":2305,"slug":2306,"type":16},"Generative Art","generative-art",{"name":2308,"slug":2309,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":2314,"name":2314,"fn":2315,"description":2316,"org":2317,"tags":2318,"stars":2310,"repoUrl":2311,"updatedAt":2326},"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},[2319,2322,2323],{"name":2320,"slug":2321,"type":16},"Branding","branding",{"name":2302,"slug":2303,"type":16},{"name":2324,"slug":2325,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":2328,"name":2328,"fn":2329,"description":2330,"org":2331,"tags":2332,"stars":2310,"repoUrl":2311,"updatedAt":2338},"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},[2333,2334,2335],{"name":2299,"slug":2300,"type":16},{"name":2302,"slug":2303,"type":16},{"name":2336,"slug":2337,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":2340,"name":2340,"fn":2341,"description":2342,"org":2343,"tags":2344,"stars":2310,"repoUrl":2311,"updatedAt":2357},"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},[2345,2348,2349,2352,2354],{"name":2346,"slug":2347,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":2350,"slug":2351,"type":16},"Anthropic SDK","anthropic-sdk",{"name":2353,"slug":2340,"type":16},"Claude API",{"name":2355,"slug":2356,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":2359,"name":2359,"fn":2360,"description":2361,"org":2362,"tags":2363,"stars":2310,"repoUrl":2311,"updatedAt":2370},"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},[2364,2367],{"name":2365,"slug":2366,"type":16},"Documentation","documentation",{"name":2368,"slug":2369,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":2372,"name":2372,"fn":2373,"description":2374,"org":2375,"tags":2376,"stars":2310,"repoUrl":2311,"updatedAt":2390},"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},[2377,2379,2381,2384,2387],{"name":2378,"slug":1046,"type":16},"Documents",{"name":2380,"slug":2372,"type":16},"DOCX",{"name":2382,"slug":2383,"type":16},"Office","office",{"name":2385,"slug":2386,"type":16},"Templates","templates",{"name":2388,"slug":2389,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":2392,"name":2392,"fn":2393,"description":2394,"org":2395,"tags":2396,"stars":2310,"repoUrl":2311,"updatedAt":2410},"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},[2397,2398,2401,2404,2407],{"name":2302,"slug":2303,"type":16},{"name":2399,"slug":2400,"type":16},"Frontend","frontend",{"name":2402,"slug":2403,"type":16},"React","react",{"name":2405,"slug":2406,"type":16},"Tailwind CSS","tailwind-css",{"name":2408,"slug":2409,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":2412,"name":2412,"fn":2413,"description":2414,"org":2415,"tags":2416,"stars":2310,"repoUrl":2311,"updatedAt":2422},"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},[2417,2420,2421],{"name":2418,"slug":2419,"type":16},"Communications","communications",{"name":2385,"slug":2386,"type":16},{"name":14,"slug":15,"type":16},"2026-04-06T17:56:20.695522",{"slug":2424,"name":2424,"fn":2425,"description":2426,"org":2427,"tags":2428,"stars":2310,"repoUrl":2311,"updatedAt":2437},"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},[2429,2430,2433,2434],{"name":2346,"slug":2347,"type":16},{"name":2431,"slug":2432,"type":16},"API Development","api-development",{"name":2355,"slug":2356,"type":16},{"name":2435,"slug":2436,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":2337,"name":2337,"fn":2439,"description":2440,"org":2441,"tags":2442,"stars":2310,"repoUrl":2311,"updatedAt":2445},"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},[2443,2444],{"name":2378,"slug":1046,"type":16},{"name":2336,"slug":2337,"type":16},"2026-04-06T17:56:02.483316",{"slug":2447,"name":2447,"fn":2448,"description":2449,"org":2450,"tags":2451,"stars":2310,"repoUrl":2311,"updatedAt":2458},"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},[2452,2455],{"name":2453,"slug":2454,"type":16},"PowerPoint","powerpoint",{"name":2456,"slug":2457,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":2460,"name":2460,"fn":2461,"description":2462,"org":2463,"tags":2464,"stars":2310,"repoUrl":2311,"updatedAt":2474},"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},[2465,2466,2467,2470,2473],{"name":2346,"slug":2347,"type":16},{"name":2365,"slug":2366,"type":16},{"name":2468,"slug":2469,"type":16},"Evals","evals",{"name":2471,"slug":2472,"type":16},"Performance","performance",{"name":2368,"slug":2369,"type":16},"2026-04-19T06:45:40.804",490,{"items":2477,"total":2495},[2478,2484],{"slug":4,"name":4,"fn":5,"description":6,"org":2479,"tags":2480,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2481,2482,2483],{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},{"slug":2485,"name":2485,"fn":2486,"description":2487,"org":2488,"tags":2489,"stars":23,"repoUrl":24,"updatedAt":2494},"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},[2490,2491,2492,2493],{"name":2365,"slug":2366,"type":16},{"name":18,"slug":19,"type":16},{"name":21,"slug":22,"type":16},{"name":14,"slug":15,"type":16},"2026-07-18T05:48:21.231286",2]