Skip to content
Education
Skill

/k12-lesson-differentiation

Adapts an existing K-12 lesson (math, ELA, science, or social studies) for students at different proficiency levels (below / at / above grade level). Load this skill BEFORE asking the teacher any clarifying question about the lesson, tiers, or student levels. Triggers on

From plugin
k12-teacher-skills
6284 skills9 MCP

Claude Code

$ npx -y skills add anthropics/k12-teacher-skills --skill k12-lesson-differentiation --agent claude-code

SKILL.md

k12-lesson-differentiation.SKILL.md
name: k12-lesson-differentiation
description: Adapts an existing K-12 lesson (math, ELA, science, or social studies) for students at different proficiency levels (below / at / 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, printable documents in a single output turn (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-plan-creation's job, one package. Not for grading, rubrics, assessment feedback, or quizzes.
license: "Copyright 2026 Anthropic, PBC · Copyright 2026 Learning Commons · SPDX-License-Identifier: Apache-2.0. Complete terms in LICENSE and NOTICE."

K-12 Lesson Differentiation

Paths here (`references/…`, `rendering/…`) are relative to this SKILL.md's folder; use absolute paths.

Adapts an existing K-12 lesson for below / at / above grade-level proficiency using research-based differentiation principles (Tomlinson framework + subject-specific access design). Works with or without the Learning Commons Knowledge Graph connector.

"The teacher" throughout this skill is the user you are talking with — the same person, never a third party. "Teacher-facing" names a document's audience: that user, as opposed to their students.

---

Keeping the teacher posted

Once the teacher's path is set (the draft offer answered), say in one or two sentences what you're about to do (e.g. *"I'll read your lesson, ground it in the standard and curriculum materials, design the three tiers, and build the worksheets."*).

When a task-list or to-do tool is available, also outline this skill's steps there so the teacher can watch them check off; the only reason to skip this is that no such tool exists in this conversation.

The teacher reads every line you write, the ones beside tool calls included. Between tool calls say nothing, or speak in teacher language: name what the teacher is getting — the differentiation plan and the three tier documents — never tool names, file names, "JSON", "artboards" or "rendering". Say "Word document" only on the Word path; otherwise "your documents" or "pages". The same goes for errors: say the documents couldn't be made, not that a script or JSON failed.

---

Step 0 — Route (silent, before anything else)

1. **Subject.** Detect math / ELA / science / social studies from the source lesson or the request, then read the matching reference file NOW:

  • math → `references/math.md`
  • ELA → `references/ela.md`
  • science → `references/science.md`
  • social studies → `references/social_studies.md`

**Loading the matching reference file is mandatory.** It carries the pedagogy for Steps 1 and 3 (source-lesson identification, curriculum detection, the eight differentiation rules R1–R8, the document content templates, and the differentiation.json mapping). 2. **Curriculum.** The subject file's "Identify the source lesson" section includes curriculum detection (Illustrative Mathematics / OpenSciEd). When confirmed, use that curriculum's discourse language and structures in the teacher plan, per the subject file.

**Curriculum is confirmed when:** the teacher explicitly names it, OR the uploaded source lesson references it (the upload is implicit confirmation).

**If curriculum is NOT confirmed** (not detectable from upload or link, no explicit mention): never name a specific module, unit number, lesson number, or proprietary routine name anywhere in the output OR in any chat message — even if you recognize the routine from training. Describe the instructional move in your own generic terms ("a compare-strategies discussion", not the routine's trademarked name). This is a hard rule; violating it fails P9, and chat messages count. See **Copyright guardrail** (after Step 3) for the companion rule on verbatim reproduction. 3. **Connector.** Check whether the Learning Commons Knowledge Graph tools (e.g. `find_standard_statement`) are available in this conversation. This decides which path Step 2 takes. The skill is fully functional without the connector.

4. **State.** Before any KG call, scan the conversation and any uploaded source lesson for state signals and store as `state`:

  • Teacher says "I teach in [state]," "I'm in [state]," or "We're in [state]"
  • Standard codes follow a state-specific format (TEKS, SOL, OAS/PASS, MA, CA/HSS or

CA/CCSS; other state-prefixed codes → check state)

  • Source lesson URL includes a state agency domain (tea.texas.gov, etc.)

If state found: store `state = [state name]`. Pass as `jurisdiction="<state>"` in every `find_standard_statement` call in Step 2. Use state framework codes (not national proxies) in all output.

If state not found:

  • for science, math, or ELA, proceed with national defaults (CCSS for math/ELA, NGSS for science). Add this single footer line to the teacher plan:

*"Standards applied using [CCSS / NGSS] — if you're in Texas, Virginia, Oklahoma, or another state with a distinct framework, share your state and I'll re-anchor."*

  • for social studies, ask the teacher what state they teach in before proceeding.

---

Step 1 — Identify the source lesson

Follow the subject file's source-lesson section: Scenario A (lesson exists earlier in this conversation — use it directly, do not re-ask), Scenario B (teacher uploads a lesson — read it first; if unreadable, say so and ask to re-share, never silently fabricate), Scenario B2 (teacher links a lesson by URL

Read more
@anthropics-2
Ships withk12-teacher-skills

Source code and evaluation framework for the agent skills that are included with Claude for Teachers.

6284 skills9 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
628
Star history of anthropics/k12-teacher-skills on GitHub, a chart by star-history.com

Other skills on k12-teacher-skills.

More skills from other plugins.

lesson-quiz

lesson-quiz

Test a learner on a single Claude Code tutorial lesson (01-10) with 10 questions, scoring answers and flagging weak spots. Use…

@luongnv89@luongnv89Install Skill
build-personal-skill

build-personal-skill

Evidence-based creation of a reusable personal course-making Skill from the user's own classroom and chat history. Use when the…

@thu-maic@thu-maicInstall Skill

Questions about k12-lesson-differentiation.

Which coding agents can use k12-lesson-differentiation?
k12-lesson-differentiation installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.