Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Write measurable IEP goals and matching accommodations for a K-12 student with an IEP or 504 plan. Use when asked to write an IEP goal, draft annual goals, make a goal measurable, or list accommodations. Produces SMART annual goals (baseline, condition, behavior, criterion, measurement) with short-term objectives and a set of accommodations tied to the student's needs — written to be legally defensible and progress-monitorable.
.claude/skills/mohitagw15856-iep-goal-writer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 32% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 41% | 0% |
An IEP goal that can't be measured can't be defended or monitored — and vague goals fail the student and the district at the annual review. This skill writes goals that are legally sound and trackable: a baseline you're growing from, the condition and criterion that make progress objective, and accommodations matched to the actual barrier.
Given the student's need area and present level, write complete goals — infer a reasonable baseline and criterion if not given, and label them as placeholders for the team to confirm. Never invent a diagnosis or evaluation data.
Ask for (if not provided, else infer and label as a placeholder):
Each in the SMART/legal frame: > _By date], given condition], student] will observable behavior] to criterion], as measured by method] across number] of trials/samples]._
Baseline stated separately so growth is visible.
2–3 stepping-stone benchmarks that build toward the annual goal (the checkpoints for progress reports).
Matched to the barrier, sorted by setting (instruction, assignments, testing, environment). Each says what and when — not a generic menu.
How and how often the goal is measured, so a progress report can be written from data.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 13,416 | 12,227 | -9% | 1 | 1 | 0% | 2,433 | 2,869 | +18% | 0 | 0 | — |
case-02 | fail→pass | 12,861 | 12,838 | -0% | 1 | 1 | 0% | 2,229 | 2,942 | +32% | 0 | 0 | — |
case-03 | fail→pass | 12,536 | 10,606 | -15% | 1 | 1 | 0% | 2,308 | 2,680 | +16% | 0 | 0 | — |
case-04 | fail→pass | 8,900 | 10,645 | +20% | 1 | 1 | 0% | 1,531 | 2,519 | +65% | 0 | 0 | — |
case-05 | fail→fail | 13,495 | 11,286 | -16% | 1 | 1 | 0% | 2,301 | 2,617 | +14% | 0 | 0 | — |
case-06 | fail→fail | 9,831 | 9,940 | +1% | 1 | 1 | 0% | 1,819 | 2,412 | +33% | 0 | 0 | — |
case-07 | fail→fail | 14,255 | 11,400 | -20% | 1 | 1 | 0% | 2,371 | 2,459 | +4% | 0 | 0 | — |
case-08 | fail→pass | 11,425 | 13,028 | +14% | 1 | 1 | 0% | 2,094 | 2,954 | +41% | 0 | 0 | — |
case-09 | fail→pass | 12,281 | 11,847 | -4% | 1 | 1 | 0% | 2,049 | 2,663 | +30% | 0 | 0 | — |
case-10 | fail→pass | 10,681 | 10,902 | +2% | 1 | 1 | 0% | 1,980 | 2,638 | +33% | 0 | 0 | — |
case-11 | fail→pass | 11,721 | 13,422 | +15% | 1 | 1 | 0% | 2,038 | 2,965 | +45% | 0 | 0 | — |
case-12 | fail→pass | 10,562 | 11,625 | +10% | 1 | 1 | 0% | 1,897 | 2,637 | +39% | 0 | 0 | — |
case-13 | fail→pass | 11,821 | 13,999 | +18% | 1 | 1 | 0% | 2,033 | 3,048 | +50% | 0 | 0 | — |
case-14 | fail→fail | 13,760 | 12,497 | -9% | 1 | 1 | 0% | 2,498 | 2,898 | +16% | 0 | 0 | — |
case-15 | fail→fail | 10,293 | 11,047 | +7% | 1 | 1 | 0% | 1,862 | 2,408 | +29% | 0 | 0 | — |
case-16 | fail→pass | 11,203 | 13,486 | +20% | 1 | 1 | 0% | 1,921 | 2,837 | +48% | 0 | 0 | — |
case-17 | fail→pass | 9,449 | 10,585 | +12% | 1 | 1 | 0% | 2,144 | 2,521 | +18% | 0 | 0 | — |
case-18 | fail→fail | 12,160 | 13,013 | +7% | 1 | 1 | 0% | 2,168 | 2,847 | +31% | 0 | 0 | — |
case-19 | fail→fail | 12,306 | 10,780 | -12% | 1 | 1 | 0% | 2,407 | 2,618 | +9% | 0 | 0 | — |
case-20 | pass→pass | 15,500 | 13,404 | -14% | 1 | 1 | 0% | 2,822 | 2,902 | +3% | 0 | 0 | — |
case-21 | pass→pass | 11,758 | 13,961 | +19% | 1 | 1 | 0% | 2,044 | 2,853 | +40% | 0 | 0 | — |
case-22 | pass→pass | 13,156 | 13,021 | -1% | 1 | 1 | 0% | 2,430 | 2,867 | +18% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +55 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.