@graffiticode/l0175 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/compiler.d.ts.map +1 -1
  2. package/dist/compiler.js +94 -130
  3. package/dist/compiler.js.map +1 -1
  4. package/dist/embedding.d.ts +1 -0
  5. package/dist/embedding.d.ts.map +1 -1
  6. package/dist/embedding.js +105 -11
  7. package/dist/embedding.js.map +1 -1
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/lexicon.d.ts +7 -0
  13. package/dist/lexicon.d.ts.map +1 -1
  14. package/dist/lexicon.js +16 -8
  15. package/dist/lexicon.js.map +1 -1
  16. package/dist/static/examples.md +105 -0
  17. package/dist/static/instructions.md +397 -47
  18. package/dist/static/language-info.json +19 -4
  19. package/dist/static/lexicon.json +112 -0
  20. package/dist/static/scope.json +9 -8
  21. package/dist/static/spec.html +81 -15
  22. package/dist/static/stems.md +181 -5
  23. package/dist/static/targets.json +279 -0
  24. package/dist/static/template.gc +7 -67
  25. package/dist/static/unparse-hints.json +3 -0
  26. package/dist/static/usage-guide.md +48 -5
  27. package/dist/targets.d.ts +27 -0
  28. package/dist/targets.d.ts.map +1 -0
  29. package/dist/targets.js +250 -0
  30. package/dist/targets.js.map +1 -0
  31. package/dist/verify-example.d.ts +27 -0
  32. package/dist/verify-example.d.ts.map +1 -0
  33. package/dist/verify-example.js +82 -0
  34. package/dist/verify-example.js.map +1 -0
  35. package/package.json +2 -2
  36. package/spec/#template.gc# +20 -0
  37. package/spec/docs.md +51 -16
  38. package/spec/examples/c1-t1-tm1-multiplechoice.expect.json +1 -0
  39. package/spec/examples/c1-t1-tm1-multiplechoice.gc +27 -0
  40. package/spec/examples/c1-t1-tm2-multiselect.expect.json +1 -0
  41. package/spec/examples/c1-t1-tm2-multiselect.gc +27 -0
  42. package/spec/examples/c1-t1-tm3-hottext.expect.json +1 -0
  43. package/spec/examples/c1-t1-tm3-hottext.gc +27 -0
  44. package/spec/examples/c1-t10-tm1-multiplechoice.expect.json +1 -0
  45. package/spec/examples/c1-t10-tm1-multiplechoice.gc +15 -0
  46. package/spec/examples/c1-t10-tm2-multiselect.expect.json +1 -0
  47. package/spec/examples/c1-t10-tm2-multiselect.gc +15 -0
  48. package/spec/examples/c1-t10-tm3-hottext.expect.json +1 -0
  49. package/spec/examples/c1-t10-tm3-hottext.gc +13 -0
  50. package/spec/examples/c1-t11-tm1-ebsr.expect.json +4 -0
  51. package/spec/examples/c1-t11-tm1-ebsr.gc +30 -0
  52. package/spec/examples/c1-t11-tm2-hottext.expect.json +4 -0
  53. package/spec/examples/c1-t11-tm2-hottext.gc +30 -0
  54. package/spec/examples/c1-t11-tm3-shorttext.expect.json +4 -0
  55. package/spec/examples/c1-t11-tm3-shorttext.gc +30 -0
  56. package/spec/examples/c1-t2-tm1-multiplechoice.expect.json +1 -0
  57. package/spec/examples/c1-t2-tm1-multiplechoice.gc +29 -0
  58. package/spec/examples/c1-t2-tm2-multiselect.expect.json +1 -0
  59. package/spec/examples/c1-t2-tm2-multiselect.gc +28 -0
  60. package/spec/examples/c1-t2-tm3-ebsr.expect.json +1 -0
  61. package/spec/examples/c1-t2-tm3-ebsr.gc +29 -0
  62. package/spec/examples/c1-t2-tm4-hottext.expect.json +1 -0
  63. package/spec/examples/c1-t2-tm4-hottext.gc +19 -0
  64. package/spec/examples/c1-t2-tm5-shorttext.expect.json +1 -0
  65. package/spec/examples/c1-t2-tm5-shorttext.gc +20 -0
  66. package/spec/examples/c1-t4-tm1-ebsr.expect.json +4 -0
  67. package/spec/examples/c1-t4-tm1-ebsr.gc +30 -0
  68. package/spec/examples/c1-t4-tm2-hottext.expect.json +4 -0
  69. package/spec/examples/c1-t4-tm2-hottext.gc +30 -0
  70. package/spec/examples/c1-t4-tm3-shorttext.expect.json +4 -0
  71. package/spec/examples/c1-t4-tm3-shorttext.gc +30 -0
  72. package/spec/examples/c1-t8-tm1-multiplechoice.expect.json +1 -0
  73. package/spec/examples/c1-t8-tm1-multiplechoice.gc +25 -0
  74. package/spec/examples/c1-t8-tm2-multiselect.expect.json +1 -0
  75. package/spec/examples/c1-t8-tm2-multiselect.gc +25 -0
  76. package/spec/examples/c1-t8-tm3-hottext.expect.json +1 -0
  77. package/spec/examples/c1-t8-tm3-hottext.gc +25 -0
  78. package/spec/examples/c1-t9-tm1-multiplechoice.expect.json +1 -0
  79. package/spec/examples/c1-t9-tm1-multiplechoice.gc +23 -0
  80. package/spec/examples/c1-t9-tm2-multiselect.expect.json +1 -0
  81. package/spec/examples/c1-t9-tm2-multiselect.gc +24 -0
  82. package/spec/examples/c1-t9-tm3-ebsr.expect.json +10 -0
  83. package/spec/examples/c1-t9-tm3-ebsr.gc +30 -0
  84. package/spec/examples/c1-t9-tm4-hottext.expect.json +10 -0
  85. package/spec/examples/c1-t9-tm4-hottext.gc +20 -0
  86. package/spec/examples/c1-t9-tm5-shorttext.expect.json +10 -0
  87. package/spec/examples/c1-t9-tm5-shorttext.gc +20 -0
  88. package/spec/examples.md +100 -86
  89. package/spec/instructions.md +367 -44
  90. package/spec/language-info.json +18 -3
  91. package/spec/rag-examples-design.md +74 -0
  92. package/spec/scope.json +9 -8
  93. package/spec/spec.md +90 -15
  94. package/spec/stems.md +181 -5
  95. package/spec/template.gc +7 -67
  96. package/spec/usage-guide.md +48 -5
@@ -0,0 +1,74 @@
1
+ <!-- SPDX-License-Identifier: CC-BY-4.0 -->
2
+ # L0175 RAG anchor set — design
3
+
4
+ _Status: DESIGN (authoring of the golden pairs is a follow-up). Revised 2026-06-30._
5
+
6
+ ## Why this exists
7
+
8
+ The reported failure: asked for **c1-t9, Task Model 3 (two-part EBSR)**, the generator drifts to
9
+ TM4 (hot-text) / TM5 (short-text). The instruction-side fixes (the served collision warning, the
10
+ generated per-target task-model table, and the compiler's `task-model` guard) make the rule
11
+ explicit and enforceable. RAG adds the third leg: a **positive worked example** of the exact shape
12
+ the request wants, so retrieval biases generation toward it instead of toward the more salient
13
+ T4/T11 numbering.
14
+
15
+ The drift is between **siblings within one target** (t9 EBSR vs hot-text vs short-text). An abstract
16
+ per-target renumbering rule is exactly what an LLM under-weights; a retrieved exemplar of
17
+ "c1-t9, TM3, two-part EBSR" is the strongest available anchor. The embedding infra already supports
18
+ this — `src/embedding.ts` emits `target:c1-t9`, `item:ebsr`, `shape:two-part`, and now
19
+ `task-model:3`; `extractQueryFacets` pulls target + item type + an explicit/derived task-model
20
+ number from the query. The corpus just lacks positive output-side exemplars.
21
+
22
+ ## What the set should be
23
+
24
+ 1. **Paired golden examples (prompt → canonical L0175 program), not prompt-only.** `examples.md` is
25
+ prompt-only; disambiguating siblings needs the *output* shape. Store paired examples the console
26
+ RAG can index via `buildEmbeddingArtifacts({ prompt, code })` — e.g. a `spec/examples/` directory
27
+ of `<id>.gc` programs each with a sibling `<id>.prompt.md`, or an L0175 `training_examples.json`
28
+ array of `{ prompt, code }`.
29
+
30
+ 2. **Contrastive siblings — same passage, vary only the task model — for every target** (parity, not
31
+ t9-only). Holding the passage + dimension fixed and changing only the task model makes the
32
+ vectors/facets separate cleanly on item type / shape, so retrieval discriminates instead of
33
+ blurring:
34
+
35
+ | Target | Task models to anchor (item type) |
36
+ |--------|-----------------------------------|
37
+ | `c1-t9` (validate first — the observed failure) | tm3 ebsr · tm4 hot-text · tm5 short-text · tm1 multiple-choice · tm2 multi-select |
38
+ | `c1-t1`, `c1-t8`, `c1-t10` | tm1 multiple-choice · tm2 multi-select · tm3 hot-text |
39
+ | `c1-t4`, `c1-t11` | tm1 ebsr · tm2 hot-text · tm3 short-text |
40
+
41
+ Every target × task-model cell gets ≥1 anchor. No target ships without anchors. (Source of truth
42
+ for which cells exist: `spec/targets.json` → `targets.<id>.taskModels`.)
43
+
44
+ 3. **Tagged with the design signature `embedding.ts` emits** — `target:<t>`, `item:<type>`,
45
+ `shape:two-part|single-part`, `dimension:<d>`, `standard:<s>`, `dok:<d>`, and **`task-model:<n>`**
46
+ (derived from target + item type via `targets.json`). The console filters/boosts on these facets;
47
+ `target:c1-t9` + `task-model:3` together select the EBSR exemplar over its siblings.
48
+
49
+ 4. **Each prompt phrased both ways** — by number ("task model 3", "TM3") **and** by item type
50
+ ("two-part EBSR") — so the query embedding and `extractQueryFacets` match however the client
51
+ phrases it. `extractQueryFacets` already extracts an explicit number and derives one from
52
+ target + item type; the paired prompts should exercise both spellings.
53
+
54
+ ## The store and the verification gate (implemented)
55
+
56
+ The paired store and the gate now exist:
57
+
58
+ - **Store:** `spec/examples/<id>.gc` (the program, authored with `task-model tmN`) + `<id>.expect.json`
59
+ (`{ prompt, expect: { target, taskModel/itemType, dimension, standard } }`). First anchor in:
60
+ `c1-t9-tm3-ebsr` (the exact drift case). This is the human-refined artifact — author/edit the `.gc`.
61
+ - **Gate:** `verifyExample({ errors, data, code, expect })` (exported from `@graffiticode/l0175`) —
62
+ BLOCKING checks (compiles clean; composed `target`/item type/`task-model:<n>`/dimension/standard
63
+ match the declared intent, read from `targets.ts` NOT `instructions.md`) + ADVISORY (compiler
64
+ warnings surfaced, not fatal). It never maps prompt→code; it validates whatever code exists, so it
65
+ guards **both** bootstrapped and hand-refined examples. Run it in the console capture step and after
66
+ any refinement.
67
+ - **Corpus check:** `test/corpus.spec.ts` runs the gate over every `spec/examples/*.gc` on each test
68
+ run; `test/verify-example.spec.ts` proves the gate rejects a mislabeled example that compiles clean.
69
+
70
+ **Coverage: 17 of 17 matrix cells — the full matrix.** Every `targets.<id>.taskModels` cell has a
71
+ gated golden pair (all advisory-free): the c1-t4 / c1-t11 R&E trios, the c1-t1 / c1-t8 / c1-t10 trios, the c1-t2 five, and
72
+ the complete c1-t9 five-item set (tm1 MC, tm2 multi-select, tm3 ebsr, tm4 hot-text, tm5 short-text).
73
+ Each is a contrastive sibling set (same passage per target, varying only the task model). Any new or
74
+ edited anchor is re-validated by the gate (`test/corpus.spec.ts`).
package/spec/scope.json CHANGED
@@ -1,24 +1,25 @@
1
1
  {
2
- "revised": "2026-06-24",
2
+ "revised": "2026-08-28",
3
3
  "id": "0175",
4
- "summary": "Composes 5th-grade ELA assessment items (Smarter Balanced · Grade 5 · Claim 1) for multiple learning targets selected by a top-level `target`: c1-t4 (Reasoning & Evidence, literary, RL), c1-t11 (Reasoning & Evidence, informational, RI), c1-t9 (Central Ideas, informational, RI-1/RI-2), c1-t8 (Key Details, informational, RI-1/RI-7 — the inference is given and the student selects supporting evidence), and c1-t10 (Word Meanings, informational, RI-4/L-4 — the meaning of a targeted word, options authored as word/meaning) — different reading skills. Item-first: each authored question pins its correct answer(s) (focus) and its stem, and the compiler draws the wrong answers from the foils (distractor claims, non-supporting sources, or distractor meanings) bound to it.",
4
+ "summary": "Composes 5th-grade ELA assessment items (Smarter Balanced · Grade 5 · Claim 1) for multiple learning targets selected by a top-level `target`: c1-t4 (Reasoning & Evidence, literary, RL), c1-t11 (Reasoning & Evidence, informational, RI), c1-t2 (Central Ideas, literary, RL-1/RL-2 — theme, and summary scoped to a key event) and c1-t9 (Central Ideas, informational, RI-1/RI-2), c1-t1 (Key Details, literary, RL-1 alone) and c1-t8 (Key Details, informational, RI-1/RI-7)for both, the inference is given and the student selects supporting evidence, and c1-t10 (Word Meanings, informational, RI-4/L-4 — the meaning of a targeted word, options authored as word/meaning) — different reading skills. Item-first: each authored question pins its correct answer(s) (focus) and its stem, and the compiler draws the wrong answers from the foils (distractor claims, non-supporting sources, or distractor meanings) bound to it.",
5
5
  "in_scope": [
6
- "A required top-level target: c1-t4 (literary, R&E), c1-t11 (informational, R&E), c1-t9 (informational, Central Ideas), c1-t8 (informational, Key Details), or c1-t10 (informational, Word Meanings), selecting the dimension/standard/error-type/DOK/item-type/stem vocabulary",
6
+ "A required top-level target: c1-t4 (literary, R&E), c1-t11 (informational, R&E), c1-t9 (informational, Central Ideas), c1-t2 (literary, Central Ideas), c1-t1 (literary, Key Details), c1-t8 (informational, Key Details), or c1-t10 (informational, Word Meanings), selecting the dimension/standard/error-type/DOK/item-type/stem vocabulary",
7
7
  "A single passage with numbered lines",
8
8
  "Questions (outcomes) authored first, each with a unique id, a focus correct claim (a list on multi-select), and a stem from the target's guideline catalog; distractors bound to questions via targets",
9
9
  "A content graph: supported and distractor claims, plus evidence sources tagged directly-supports / supports-wrong-claim / irrelevant",
10
10
  "c1-t4 dimensions: character, setting, event, point-of-view, theme, topic, narrators-feelings, character-relationship",
11
11
  "c1-t11 dimensions: relationships-interactions, author-use-of-information, point-of-view, purpose, authors-opinion",
12
12
  "c1-t9 (Central Ideas) dimensions: central-idea, key-detail, summary",
13
- "c1-t8 (Key Details) dimension: supporting-evidencethe inference is given in the stem and the student selects supporting evidence (options are sources, not claims)",
13
+ "c1-t2 (Central Ideas, literary) dimensions: theme, central-idea, key-detail, summary theme is the lesson/message of a story; summary items cover a section or key event, never the whole text",
14
+ "c1-t1 (literary) / c1-t8 (informational) Key Details dimension: supporting-evidence — the inference is given in the stem and the student selects supporting evidence (options are sources, not claims)",
14
15
  "c1-t10 (Word Meanings) dimension: word-meaning — the question asks the meaning of a targeted word/phrase; options are meanings authored as word/meaning (not claims)",
15
16
  "Item types: ebsr (two-part selected response), hot-text (select text — sentence-level for R&E/Central-Ideas/Key Details, word-level click-the-word for Word Meanings), short-text (constructed response), multiple-choice (one correct), multi-select (exact correct set); the allowed set is per-target",
16
- "Authored, error-typed distractors — R&E: misreads-detail / erroneous-inference / faulty-reasoning; Central Ideas (c1-t9): too-narrow / too-broad / misreads-detail / insignificant; Key Details (c1-t8): non-supporting sources (supports-wrong-claim / irrelevant), not distractor claims; Word Meanings (c1-t10): distractor meanings other-meaning / misinterprets / wrong-context — with rationales",
17
- "Standards rl-1/rl-3/rl-6/rl-9 (c1-t4), ri-1/ri-3/ri-6/ri-7/ri-8/ri-9 (c1-t11), ri-1/ri-2 (c1-t9), ri-1/ri-7 (c1-t8), ri-4/l-4/l-4a/l-4b/l-4c/l-5c (c1-t10); DOK r-dok1..r-dok3 (R&E r-dok3; T9 r-dok2, written summary r-dok3; T8 & T10 r-dok2)",
18
- "A reading-level target set by the guideline/target's grade (Grade 5 for c1-t4/c1-t11), overridable by an optional top-level `grade`; the compiler estimates the passage's reading level and warns when it runs above the target grade"
17
+ "Authored, error-typed distractors — R&E: misreads-detail / erroneous-inference / faulty-reasoning; Central Ideas (c1-t2 / c1-t9): too-narrow / too-broad / misreads-detail / insignificant; Key Details (c1-t1 / c1-t8): non-supporting sources (supports-wrong-claim / irrelevant), not distractor claims; Word Meanings (c1-t10): distractor meanings other-meaning / misinterprets / wrong-context — with rationales",
18
+ "Standards: the full CCSS Grade-5 strand for the target's text type is accepted (literary c1-t4/c1-t2/c1-t1 → RL rl-1..rl-7/rl-9, no rl-8; informational c1-t11/t9/t8/t10 → RI ri-1..ri-9; c1-t10 also the L-4/L-5 vocabulary families). The dimension's companion is inferred when standard is omitted — primary companions: c1-t4 rl-1 + rl-2 (theme/topic) / rl-3 / rl-6; c1-t11 ri-1 + ri-3/ri-6/ri-7/ri-8; c1-t9 ri-1+ri-2; c1-t2 rl-1+rl-2 (every dimension); c1-t1 rl-1 alone (no companion); c1-t8 ri-1+ri-7; c1-t10 ri-4 + the L-4 family. DOK r-dok1..r-dok3 (R&E r-dok3; T2/T9 r-dok2, the written response r-dok3; T1, T8 & T10 r-dok2)",
19
+ "A reading-level target set by the guideline/target's grade (Grade 5 for every current target), overridable by an optional top-level `grade`; the compiler estimates the passage's reading level and warns when it runs above the target grade"
19
20
  ],
20
21
  "out_of_scope": [
21
- "Claims, grades, or Claim-1 targets beyond T4, T11, T9, T8, and T10 — other Claim-1 targets belong in their own dialects",
22
+ "Claims, grades, or Claim-1 targets beyond T4, T11, T2, T9, T1, T8, and T10 — other Claim-1 targets belong in their own dialects",
22
23
  "Multi-word-phrase candidates in c1-t10 click-the-word (single words only this version)",
23
24
  "Dual-text stimuli (a single passage only in this version)",
24
25
  "Compile-time LLM generation — the compiler selects and validates authored content, it does not invent it",
package/spec/spec.md CHANGED
@@ -7,7 +7,9 @@ _Revised: 2026-06-19_
7
7
  items (Smarter Balanced · Grade 5 · Claim 1). One language serves **multiple learning targets**,
8
8
  selected by a required top-level `target`: `c1-t4` (Reasoning & Evidence, literary, RL standards),
9
9
  `c1-t11` (Reasoning & Evidence, informational, RI standards), `c1-t9` (Central Ideas,
10
- informational, RI-1/RI-2), `c1-t8` (Key Details, informational, RI-1/RI-7the inference is
10
+ informational, RI-1/RI-2), `c1-t2` (Central Ideas, **literary**, RL-1/RL-2theme, and summary scoped to a key event),
11
+ `c1-t1` (Key Details, **literary**, RL-1 — the inference is given and the student selects
12
+ supporting evidence), `c1-t8` (Key Details, informational, RI-1/RI-7 — the inference is
11
13
  given and the student selects supporting evidence), or `c1-t10` (Word Meanings, informational,
12
14
  RI-4/L-4 — the meaning of a targeted word, options authored as `word`/`meaning`) — different
13
15
  reading skills, each with its own dimensions, distractor taxonomy, DOK, item types, and stem
@@ -64,7 +66,7 @@ Free text (`text`, `rationale`, `subject`, `stem`, the passage heading) and id l
64
66
 
65
67
  | Form | Arity | Takes | Description |
66
68
  | :--- | :---: | :--- | :--- |
67
- | `target` | 2 | tag | Top level: the learning target — `c1-t4` (R&E literary, RL), `c1-t11` (R&E informational, RI), `c1-t9` (Central Ideas informational, RI-1/RI-2), `c1-t8` (Key Details informational, RI-1/RI-7), or `c1-t10` (Word Meanings informational, RI-4/L-4). Selects the valid dimensions/standards, distractor taxonomy, DOK, item types, and stem catalog. Always author one; defaults to `c1-t4` if omitted. |
69
+ | `target` | 2 | tag | Top level: the learning target — `c1-t4` (R&E literary, RL), `c1-t11` (R&E informational, RI), `c1-t9` (Central Ideas informational, RI-1/RI-2), `c1-t2` (Central Ideas literary, RL-1/RL-2), `c1-t1` (Key Details literary, RL-1 alone), `c1-t8` (Key Details informational, RI-1/RI-7), or `c1-t10` (Word Meanings informational, RI-4/L-4). Selects the valid dimensions/standards, distractor taxonomy, DOK, item types, and stem catalog. Always author one; defaults to `c1-t4` if omitted. |
68
70
  | `title` | 2 | string | Optional assessment title; echoed on the composed output. |
69
71
  | `grade` | 2 | number | Optional top-level reading-level target (e.g. `grade 5`). Defaults to the target/guideline's grade (5 for `c1-t4`/`c1-t11`); echoed on the output. The compiler estimates the passage's reading level and warns when it reads above this grade. |
70
72
  | `passage` | 2 | string | Opens the stimulus; the value is the passage **heading**. Chains with `type` and `lines`. |
@@ -144,14 +146,14 @@ composes). A `focus` that isn't a supported claim, or a `targets` to a missing o
144
146
 
145
147
  ## Enumerations
146
148
 
147
- - **`target`**: `c1-t4` (R&E literary), `c1-t11` (R&E informational), `c1-t9` (Central Ideas informational), `c1-t8` (Key Details informational), `c1-t10` (Word Meanings informational) — required, top level
149
+ - **`target`**: `c1-t4` (R&E literary), `c1-t11` (R&E informational), `c1-t9` (Central Ideas informational), `c1-t2` (Central Ideas **literary**), `c1-t1` (Key Details **literary**), `c1-t8` (Key Details informational), `c1-t10` (Word Meanings informational) — required, top level
148
150
  - **item `type`**: `ebsr`, `hot-text`, `short-text`, `multiple-choice`, `multi-select` (allowed set is per-target) · **passage `type`**: `literary`, `informational`
149
151
  - **`dimension` (c1-t4)**: `character`, `setting`, `event`, `point-of-view`, `theme`, `topic`, `narrators-feelings`, `character-relationship`
150
152
  - **`dimension` (c1-t11)**: `relationships-interactions`, `author-use-of-information`, `point-of-view`, `purpose`, `authors-opinion`
151
- - **`dimension` (c1-t9)**: `central-idea`, `key-detail`, `summary` · **(c1-t8)**: `supporting-evidence` · **(c1-t10)**: `word-meaning`
153
+ - **`dimension` (c1-t2)**: `theme`, `central-idea`, `key-detail`, `summary` · **(c1-t9)**: `central-idea`, `key-detail`, `summary` · **(c1-t1 / c1-t8)**: `supporting-evidence` · **(c1-t10)**: `word-meaning`
152
154
  - **claim `status`**: `supported`, `distractor` · **source `status`**: `directly-supports`, `supports-wrong-claim`, `irrelevant` · **meaning `status` (c1-t10)**: `correct`, `distractor`
153
- - **`error-type` (c1-t4 / c1-t11)**: `misreads-detail`, `erroneous-inference`, `faulty-reasoning` · **(c1-t9)**: `too-narrow`, `too-broad`, `misreads-detail`, `insignificant` · **(c1-t8)**: none — non-supporting sources · **(c1-t10)**: `other-meaning`, `misinterprets`, `wrong-context`
154
- - **`standard` (c1-t4)**: `rl-1`, `rl-3`, `rl-6`, `rl-9` · **(c1-t11)**: `ri-1`, `ri-3`, `ri-6`, `ri-7`, `ri-8`, `ri-9` · **(c1-t9)**: `ri-1`, `ri-2` · **(c1-t8)**: `ri-1`, `ri-7` · **(c1-t10)**: `ri-4`, `l-4`, `l-4a`, `l-4b`, `l-4c`, `l-5c` · **`dok`**: `r-dok1`, `r-dok2`, `r-dok3`
155
+ - **`error-type` (c1-t4 / c1-t11)**: `misreads-detail`, `erroneous-inference`, `faulty-reasoning` · **(c1-t2 / c1-t9)**: `too-narrow`, `too-broad`, `misreads-detail`, `insignificant` · **(c1-t1 / c1-t8)**: none — non-supporting sources · **(c1-t10)**: `other-meaning`, `misinterprets`, `wrong-context`
156
+ - **`standard`** — the full CCSS Grade-5 strand for the target's text type is accepted; the dimension's companion is inferred when you omit it. Primary companions: **(c1-t4)** `rl-1` + `rl-2` (theme/topic) / `rl-3` / `rl-6` — full **RL** strand `rl-1`–`rl-7`/`rl-9` accepted (no `rl-8`) · **(c1-t11)** `ri-1` + `ri-3` / `ri-6` / `ri-7` / `ri-8` · **(c1-t2)** `rl-1` + `rl-2` · **(c1-t9)** `ri-1` + `ri-2` · **(c1-t1)** `rl-1` **alone** — no companion in the guideline · **(c1-t8)** `ri-1` + `ri-7` — c1-t11/t9/t8 accept the full **RI** strand `ri-1`–`ri-9` · **(c1-t10)** `ri-4` + the `l-4` / `l-5` families. **`dok`**: `r-dok1`, `r-dok2`, `r-dok3`
155
157
 
156
158
  ## How composition uses the vocabulary
157
159
 
@@ -186,6 +188,11 @@ lines [
186
188
  "Mara crouched at the edge of the tide pool, ignoring the picnic behind her."
187
189
  "Her brother called twice, but she did not turn around."
188
190
  "A tiny crab scuttled under a rock, and Mara smiled for the first time all day."
191
+ "She traced the cold water as if the pool were the only thing that mattered."
192
+ "Behind her, paper plates rustled and her mother laughed."
193
+ "Someone asked whether she wanted a sandwich, and she said nothing at all."
194
+ "Only when her father folded the last chair did Mara stand up."
195
+ "The tide crept in and filled the pool to its rim."
189
196
  ]
190
197
  claims [
191
198
  claim id "c1"
@@ -193,35 +200,58 @@ claims [
193
200
  dimension character
194
201
  subject "Mara"
195
202
  standard rl-1
196
- text "Mara is more interested in the tide pool than in her family's picnic."
203
+ text "Mara cares more about the tide pool than about the picnic."
197
204
  cites [
198
205
  "e1"
199
206
  "e3"
207
+ "e4"
200
208
  ] {}
201
209
  claim id "c2"
202
210
  status distractor
203
211
  error-type misreads-detail
204
212
  plausibility 0.8
205
213
  targets [ "q1" ]
206
- text "Mara is angry at her brother."
214
+ text "Mara is angry at her brother for calling her twice."
207
215
  rationale "Not turning around shows absorption, not anger."
208
216
  cites [
209
217
  "e2"
210
218
  ] {}
211
219
  claim id "c3"
212
220
  status distractor
213
- error-type erroneous-inference
221
+ error-type misreads-detail
222
+ plausibility 0.6
214
223
  targets [ "q1" ]
215
- text "Mara dislikes the outdoors."
216
- rationale "Contradicted by her smile in line 3."
224
+ text "Mara is bored by the pool and wants to go home."
225
+ rationale "Her stillness is focus, not boredom."
217
226
  cites [
218
227
  "e2"
219
228
  ] {}
220
229
  claim id "c4"
230
+ status distractor
231
+ error-type erroneous-inference
232
+ plausibility 0.55
233
+ targets [ "q1" ]
234
+ text "Mara would rather be indoors than out at the beach."
235
+ rationale "Contradicted by her smile at the crab."
236
+ cites [
237
+ "e3"
238
+ ] {}
239
+ claim id "c5"
240
+ status distractor
241
+ error-type erroneous-inference
242
+ plausibility 0.5
243
+ targets [ "q1" ]
244
+ text "Mara is waiting for her brother to come look with her."
245
+ rationale "Invents a goal the passage never states."
246
+ cites [
247
+ "e2"
248
+ ] {}
249
+ claim id "c6"
221
250
  status distractor
222
251
  error-type faulty-reasoning
252
+ plausibility 0.45
223
253
  targets [ "q1" ]
224
- text "Because Mara is quiet, she must be upset."
254
+ text "Mara is quiet, so something must have upset her."
225
255
  rationale "Treats quiet as upset without support."
226
256
  cites [
227
257
  "e2"
@@ -230,27 +260,63 @@ claims [
230
260
  evidence [
231
261
  source id "e1"
232
262
  line 1
263
+ quote "Mara crouched at the edge of the tide pool, ignoring the picnic behind her."
233
264
  status directly-supports
234
265
  supports [
235
266
  "c1"
236
267
  ] {}
268
+ source id "e3"
269
+ line 3
270
+ quote "A tiny crab scuttled under a rock, and Mara smiled for the first time all day."
271
+ status directly-supports
272
+ supports [
273
+ "c1"
274
+ ] {}
275
+ source id "e4"
276
+ line 4
277
+ quote "She traced the cold water as if the pool were the only thing that mattered."
278
+ status directly-supports
279
+ supports [
280
+ "c1"
281
+ ] {}
282
+ /* NO-GIVEAWAY: a supports-wrong-claim source backing BOTH the key and a distractor, so
283
+ Part B does not telegraph Part A */
237
284
  source id "e2"
238
285
  line 2
286
+ quote "Her brother called twice, but she did not turn around."
239
287
  status supports-wrong-claim
240
288
  supports [
241
289
  "c1"
242
290
  "c2"
243
291
  ] {}
244
- source id "e3"
245
- line 3
246
- status directly-supports
292
+ source id "e6"
293
+ line 6
294
+ quote "Someone asked whether she wanted a sandwich, and she said nothing at all."
295
+ status supports-wrong-claim
247
296
  supports [
248
297
  "c1"
298
+ "c6"
249
299
  ] {}
300
+ source id "e5"
301
+ line 5
302
+ quote "Behind her, paper plates rustled and her mother laughed."
303
+ status irrelevant
304
+ supports [] {}
305
+ source id "e7"
306
+ line 7
307
+ quote "Only when her father folded the last chair did Mara stand up."
308
+ status irrelevant
309
+ supports [] {}
310
+ source id "e8"
311
+ line 8
312
+ quote "The tide crept in and filled the pool to its rim."
313
+ status irrelevant
314
+ supports [] {}
250
315
  ]
251
316
  outcomes [
252
317
  outcome id "q1"
253
318
  type ebsr
319
+ task-model tm1
254
320
  dimension character
255
321
  subject "Mara"
256
322
  standard rl-1
@@ -259,6 +325,7 @@ outcomes [
259
325
  stem-b "Which sentence(s) from the passage best support your answer in Part A?" {}
260
326
  outcome id "q2"
261
327
  type short-text
328
+ task-model tm3
262
329
  dimension character
263
330
  subject "Mara"
264
331
  standard rl-1
@@ -275,3 +342,11 @@ outcomes [
275
342
  ]
276
343
  {}..
277
344
  ```
345
+
346
+ The example above is Target 4 (literary, R&E). The other targets keep the same flat-chain shape
347
+ but differ in what the options are: **T11** is the same R&E shape over an informational passage
348
+ (RI standards); **T9** (Central Ideas) options are `claim`s judged by significance (`too-narrow` /
349
+ `too-broad` / `insignificant` / `misreads-detail`); **T8** (Key Details) gives the inference in the
350
+ stem and the options are `source`s (no distractor claims); **T10** (Word Meanings) options are
351
+ `meaning`s of a targeted `word` authored in a top-level `words` list. See `instructions.md` for a
352
+ full worked program per target and `stems.md` for each target's stem catalog.
package/spec/stems.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- SPDX-License-Identifier: CC-BY-4.0 -->
2
2
  # L0175 Appropriate-Stem Catalog (SBAC · Grade 5 · Claim 1)
3
3
 
4
- _Revised: 2026-06-24_
4
+ _Revised: 2026-08-28_
5
5
 
6
6
  The **code generator authors each question's stem from this catalog** and emits it on the
7
7
  outcome (`stem`, and `stem-b` on EBSR). The compiler uses the authored text verbatim — it does
@@ -12,7 +12,9 @@ dual-text-stimuli stems are out of scope).
12
12
  **First match your program's `target`, then use that target's catalog below:**
13
13
  - **`c1-t4`** (Reasoning & Evidence, literary) → `packages/core/data/E.G5.C1.T4 Reasoning & Evidence.pdf`
14
14
  - **`c1-t11`** (Reasoning & Evidence, informational) → `packages/core/data/E.G5.C1.T11 Reasoning & Evidence.pdf`
15
+ - **`c1-t2`** (Central Ideas, **literary**) → `packages/core/data/E.G5.C1.T2 Central Ideas.pdf`
15
16
  - **`c1-t9`** (Central Ideas, informational) → `packages/core/data/E.G5.C1.T9 Central Ideas.pdf`
17
+ - **`c1-t1`** (Key Details, **literary**) → `packages/core/data/E.G5.C1.T1 Key Details.pdf`
16
18
  - **`c1-t8`** (Key Details, informational) → `packages/core/data/E.G5.C1.T8 Key Details.pdf`
17
19
  - **`c1-t10`** (Word Meanings, informational) → `packages/core/data/E.G5.C1.T10 Word Meanings.pdf`
18
20
 
@@ -21,13 +23,29 @@ dual-text-stimuli stems are out of scope).
21
23
  1. Use the section for your `target`.
22
24
  2. Pick the stem that matches your **item `type`** and the task. Task-model numbering is
23
25
  per-target and differs between targets — match by item type, not by number. (R&E targets:
24
- EBSR=TM1, Hot-Text=TM2, Short-Text=TM3. T9 Central Ideas: Multiple-Choice=TM1,
25
- Multi-Select=TM2, EBSR=TM3, Hot-Text=TM4, Short-Text=TM5. T8 Key Details: Multiple-Choice=TM1,
26
- Multi-Select=TM2, Hot-Text=TM3. T10 Word Meanings: Multiple-Choice=TM1, Multi-Select=TM2,
27
- Hot-Text=TM3.)
26
+ EBSR=TM1, Hot-Text=TM2, Short-Text=TM3. T2 and T9 Central Ideas: Multiple-Choice=TM1,
27
+ Multi-Select=TM2, EBSR=TM3, Hot-Text=TM4, Short-Text=TM5. T1 and T8 Key Details:
28
+ Multiple-Choice=TM1, Multi-Select=TM2, Hot-Text=TM3. T10 Word Meanings: Multiple-Choice=TM1,
29
+ Multi-Select=TM2, Hot-Text=TM3.)
28
30
  3. Pick the **one stem template** that matches the task and the dimension, and fill its
29
31
  bracketed `[...]` slot.
30
32
 
33
+ Task-model number → item type, per target (the numbers collide across targets, so a number is
34
+ meaningless without its target):
35
+
36
+ <!-- GENERATED:task-models START (from targets.json — regenerated by tools/build-static.js; do not edit by hand) -->
37
+ | Target | tm1 | tm2 | tm3 | tm4 | tm5 |
38
+ |--------|-----|-----|-----|-----|-----|
39
+ | `c1-t4` — Grade 5 · Claim 1 · Target 4 (Reasoning & Evidence) | ebsr | hot-text | short-text | — | — |
40
+ | `c1-t11` — Grade 5 · Claim 1 · Target 11 (Reasoning & Evidence) | ebsr | hot-text | short-text | — | — |
41
+ | `c1-t2` — Grade 5 · Claim 1 · Target 2 (Central Ideas) | multiple-choice | multi-select | ebsr | hot-text | short-text |
42
+ | `c1-t9` — Grade 5 · Claim 1 · Target 9 (Central Ideas) | multiple-choice | multi-select | ebsr | hot-text | short-text |
43
+ | `c1-t1` — Grade 5 · Claim 1 · Target 1 (Key Details) | multiple-choice | multi-select | hot-text | — | — |
44
+ | `c1-t8` — Grade 5 · Claim 1 · Target 8 (Key Details) | multiple-choice | multi-select | hot-text | — | — |
45
+ | `c1-t10` — Grade 5 · Claim 1 · Target 10 (Word Meanings) | multiple-choice | multi-select | hot-text | — | — |
46
+ <!-- GENERATED:task-models END -->
47
+
48
+
31
49
  **Specificity rule (required, both targets).** The `[...]` slot must name the concrete thing the
32
50
  question is about — a character's name (`Mother`), a specific event (`the turkey-feeding`), a
33
51
  specific idea (`the relationship between the bridge designs`), the author's point of view, etc.
@@ -111,6 +129,15 @@ Author as `stem` (the prompt); every Short Text stem ends with the explain claus
111
129
  `stem "What did the author most likely mean by including the scarecrow in the passage?"`
112
130
  - theme / inference / Short Text →
113
131
  `stem "What inference can be made about the theme? Explain using key details from the passage to support your answer."`
132
+ - topic / Short Text →
133
+ `stem "What is the story mostly about? Explain using key details from the passage to support your answer."`
134
+
135
+ **`theme` vs `topic` (both → `rl-2`, but they are different dimensions).** `topic` is what the
136
+ text is *about* (its subject) — cued by "**mostly about**" / "**what is the passage/story about**".
137
+ `theme` is the *lesson or message* the text conveys — cued by "**the theme**" / "**the message**"
138
+ / "**the lesson**". Route a "mostly about" prompt to `topic`, and write the correct answer as a
139
+ subject statement ("The story is mostly about …"), **not** a life-lesson statement. Reserve the
140
+ lesson-style answer for `theme`.
114
141
 
115
142
  ---
116
143
 
@@ -124,6 +151,14 @@ concepts / author's use of information / point of view / purpose]` (or, for an o
124
151
  "key **evidence**" (T4 said "key details"), and Part B units are
125
152
  `sentence(s) / paragraph(s) / section(s)`.
126
153
 
154
+ **`purpose` vs `point-of-view` (both start "author's …" but are different dimensions with
155
+ different companions).** `purpose` = *why the author wrote the text* / what they are trying to do
156
+ (inform, persuade, explain) — cued by "**author's purpose**" / "why the author wrote" → companion
157
+ `ri-8`. `point-of-view` = *the author's stance or attitude* toward the subject — cued by
158
+ "**author's point of view**" / "how the author feels about" → companion `ri-6`. Route a
159
+ "purpose" prompt to `purpose`/`ri-8` and a "point of view" prompt to `point-of-view`/`ri-6`;
160
+ easiest is to **omit `standard`** and let the dimension infer its companion.
161
+
127
162
  ## Task Model 1 — EBSR (two-part selected response)
128
163
 
129
164
  **Lead-in:** This question has two parts. First, answer part A. Then, answer part B.
@@ -186,6 +221,90 @@ Author as `stem`; every Short Text stem ends with the explain clause ("key **evi
186
221
 
187
222
  ---
188
223
 
224
+ # Target 2 (`c1-t2`) — Central Ideas (**literary**)
225
+
226
+ The **literary twin of Target 9**, and the only other target that offers **all five item types**.
227
+ DOK **2** (**3** for the written response). Standards **RL-1 + RL-2**. Dimensions: `theme`,
228
+ `central-idea`, `key-detail`, `summary` — every one answers to `rl-2`, so a composed item's
229
+ `standards` is `["rl-1", "rl-2"]`. Distractors use the same **significance** taxonomy as T9
230
+ (`too-narrow`, `too-broad`, `misreads-detail`, `insignificant`) — usually *true* statements that
231
+ simply aren't central.
232
+
233
+ **Three things T2 does that T9 does not:**
234
+
235
+ 1. **Theme leads.** RL-2 is "determine a theme of a story, drama, or poem from details in the
236
+ text." Prefer the `theme` dimension for a story or poem and phrase the correct answer as a
237
+ *lesson or message* ("Keeping at something can matter more than winning"), not a plot summary.
238
+ Use `central-idea` when the prompt says "main idea" rather than "theme" or "message".
239
+ 2. **Summary is SCOPED.** The guideline is explicit: *items will not ask students to summarize the
240
+ entire text; students will summarize a key event(s) or idea(s).* Point every `summary` stem at a
241
+ section or a key event ("Summarize what happens after…", "…the first paragraph"). A
242
+ "summarize the passage" stem is out of scope on T2 — that phrasing belongs to T9.
243
+ 3. **`key-detail` covers key EVENTS.** In a story the details that build a theme are usually
244
+ events, so tag them `key-detail`.
245
+
246
+ **A caution from the guideline, for `insignificant`:** distractors "will not contain details of such
247
+ insignificance that the options are implausible." A foil so trivial that no student would pick it
248
+ is a wasted option — keep it true, relevant, and merely *not central*. Likewise, TM1 warns that
249
+ distractors must not turn on sequencing or other DOK-1 errors.
250
+
251
+ ## Task Model 1 — Multiple Choice (`type multiple-choice`, single-answer, DOK 2)
252
+
253
+ - Which sentence best [shows/tells/describes] the [theme/main idea] of the passage?
254
+ - Which sentence best [shows/tells/describes] the [theme/main idea] of the [story/poem] told by the [narrator/speaker]?
255
+ - Which sentence best [shows/tells/describes] [the author's/character's] message about [provide theme/main idea]?
256
+ - Which [sentences/lines/paragraph(s)] from the passage best [shows/tells/describes] the [theme/main idea]?
257
+ - Which sentence best summarizes the [first paragraph/introductory paragraph]?
258
+ - Which sentence best summarizes what happens after [provide plot]?
259
+ - Read this summary. [summary of a section; one key detail/event is missing] Which [key detail/event] is missing from the summary? *(the correct answer must be a pivotal key event or idea)*
260
+
261
+ ## Task Model 2 — Multi-Select (`type multi-select`, choose two, DOK 2)
262
+
263
+ `focus` is a **list** of the two correct claims.
264
+ - Choose two sentences that best [show/tell/describe] the [theme(s)/main idea(s)] presented in the passage.
265
+ - Choose two sentences that should be included in a summary of [the text/section of the text].
266
+
267
+ ## Task Model 3 — EBSR (`type ebsr`, two-part, DOK 2)
268
+
269
+ Lead-in: *The following question has two parts. First, answer part A. Then, answer part B.*
270
+ Part A:
271
+ - Which sentence best [shows/tells/describes] the [theme/main idea] of the text?
272
+ - Which sentence best [shows/tells/describes] the [author's/character's] [message/main idea]?
273
+
274
+ Part B (`stem-b`):
275
+ - Which [sentence(s)/line(s)/paragraph(s)] from the passage best [support(s)/is (are) an example of] your answer in part A?
276
+
277
+ **No-giveaway (the guideline states it outright):** avoid Part A/Part B choices that obviously
278
+ correspond, so that picking a Part A option determines the Part B option. Some or all Part B options
279
+ should plausibly support **more than one** Part A choice — author at least one
280
+ `supports-wrong-claim` source listing BOTH the correct claim and a distractor.
281
+
282
+ ## Task Model 4 — Hot Text (`type hot-text`, single-part select-text, DOK 2)
283
+
284
+ Single-part: the authored `stem` is the whole instruction; the student clicks the sentence(s) whose
285
+ `source`s `directly-supports` the focus claim. The stem states how many to click.
286
+ - Click on [one/two] [sentence(s)/line(s)/set of lines/paragraph(s)] that best [shows/tells/describes] the [theme/main idea] of [the text/section of the text]. Choose [one/two] answer(s).
287
+ - Read this summary of [the text/section of the text]. [summary; one key event missing] A [key event/detail] is missing from the summary. Click on the [sentence(s)/paragraph(s)] that include(s) the missing [event/detail].
288
+ - Click on the [one/two] [key detail(s)/event(s)] that should be included in a summary of the text.
289
+
290
+ ## Task Model 5 — Short Text (`type short-text`, constructed response, DOK 3)
291
+
292
+ Written response; **never the whole text** (see #2 above).
293
+ - Determine the [theme/main idea] of the passage. Explain the [theme/main idea] using key details from the passage to support your answer.
294
+ - What is the [theme/main idea] of the passage? Explain using key details from the passage to support your answer.
295
+ - Summarize the [first paragraph/introductory paragraph]. Use key [details/events] from the passage in your summary.
296
+ - Summarize what happens [after/during] [provide text event]. Use key [details/events] from the passage in your summary.
297
+
298
+ ## Worked examples (T2, specific slot fills)
299
+
300
+ - theme / Multiple Choice → `stem "Which sentence best tells the theme of the passage?"` with the correct claim phrased as a lesson ("Keeping at something can matter more than winning.").
301
+ - summary / Multi-Select → `stem "Choose two sentences that should be included in a summary of the story. Select two answers."` with `focus ["s1" "s2"]`.
302
+ - theme / EBSR → Part A as above, `stem-b "Which sentence from the passage best supports your answer in Part A?"`.
303
+ - theme / Hot Text → `stem "Click on the two sentences that best show the theme of the story. Choose two answers."` (author exactly two `directly-supports` sources).
304
+ - summary / Short Text → `stem "Summarize what happens after the blue ribbon goes to somebody else. Use key details from the passage in your summary."` — scoped to a key event, not the whole story.
305
+
306
+ ---
307
+
189
308
  # Target 9 (`c1-t9`) — Central Ideas (informational)
190
309
 
191
310
  A **different skill** from Reasoning & Evidence: synthesize and condense — the **main/central
@@ -264,6 +383,63 @@ it); the student clicks the sentence(s) that show the main idea. The correct sen
264
383
 
265
384
  ---
266
385
 
386
+ # Target 1 (`c1-t1`) — Key Details (**literary**)
387
+
388
+ The **literary mirror of Target 8**: the inference/conclusion is **GIVEN in the stem**, and the
389
+ student selects the **text evidence** that supports it. DOK **1–2**. Standard **RL-1 — and only
390
+ RL-1** (unlike T8 the guideline names no companion, so a composed item's `standards` is just
391
+ `rl-1`; omit `standard` and let the dimension resolve it). Dimension: `supporting-evidence`. Item
392
+ types: `multiple-choice`, `multi-select`, `hot-text` (no EBSR, no constructed response).
393
+
394
+ **Authoring:** identical to T8 — author ONE supported `claim` = the given inference (named by the
395
+ outcome's `focus`) and **state that inference in the `stem`**; author `source`s for the options —
396
+ `directly-supports` (the correct evidence; give a `quote` for the exact sentence) and
397
+ `supports-wrong-claim` / `irrelevant` (the distractor evidence, each with a `rationale`). The
398
+ options are the **sources**, not claims; there are no distractor claims.
399
+
400
+ **Two literary differences from T8's wording:** these stems offer **`line`** as a selectable unit
401
+ (matching L0175's numbered `lines`) and say **`[author/narrator]`** where T8 says only "author" —
402
+ use "narrator" for a first-person story. Multi-Select is exactly **two** correct (T8 allows two or
403
+ three).
404
+
405
+ ## Task Model 1 — Multiple Choice (`type multiple-choice`, single-answer, DOK 1–2)
406
+
407
+ The stem states the inference and asks which evidence supports it:
408
+ - Which [detail/sentence/line] from the passage best [supports/shows] [provide inference or conclusion based on the passage]?
409
+ - [Provide inference or conclusion based on the passage]. Which [detail/sentence/line] from the passage best supports this [inference/conclusion] OR best shows [provide the inference or conclusion]?
410
+ - The reader can [infer/conclude] [inference or conclusion based on the passage]. Which [detail/sentence/line] from the passage best supports this [inference/conclusion]?
411
+ - The [author/narrator] [infers/concludes] that [inference/conclusion based on the passage]. Which [detail/sentence/line] from the passage best supports this [inference/conclusion]?
412
+ - Read this [inference/conclusion]. [Provide inference or conclusion based on the passage]. Which [detail/sentence/line] from the passage best supports this [inference/conclusion]?
413
+
414
+ ## Task Model 2 — Multi-Select (`type multi-select`, choose two, DOK 1–2)
415
+
416
+ - Choose two [details/sentences/lines] from the passage that best support the [inference/conclusion] that [provide inference or conclusion based on the passage].
417
+ - Which [details/sentences/lines] from the passage best support [provide inference or conclusion based on the passage]? Select two answers.
418
+ - [Provide inference or conclusion based on the passage]. Which [details/sentences/lines] from the passage best support this [inference/conclusion]? Select two answers.
419
+ - The reader can [infer/conclude] [provide inference/conclusion based on the passage]. Which [details/sentences/lines] from the passage best support this [inference/conclusion]? Select two answers.
420
+ - The [author/narrator] [infers/concludes] that [provide inference/conclusion based on the passage]. Which [details/sentences/lines] from the passage best support this [inference/conclusion]? Select two answers.
421
+
422
+ ## Task Model 3 — Hot Text (`type hot-text`, single-part select-text, DOK 1–2)
423
+
424
+ Single-part: the authored `stem` states the inference and the click instruction (the compiler does
425
+ not synthesize it); the student clicks the supporting sentence(s):
426
+ - Click the [detail/sentence/set of sentences/line/paragraph] that best supports [provide inference or conclusion based on the passage].
427
+ - Click [one/two] [details/sentences/sets of sentences/lines/paragraphs] that best support [provide inference or conclusion based on the passage].
428
+ - [Provide inference or conclusion based on the passage]. Click the [detail/sentence/set of sentences/line/paragraph] that best supports this [inference/conclusion].
429
+ - The reader can [infer/conclude] [provide inference/conclusion based on the passage]. Click [one/two] [details/sentences/lines] that best support this [inference/conclusion].
430
+ - Read this [inference/conclusion]. [Provide inference or conclusion based on the text]. Click [one/two] [details/sentences/sets of sentences/lines/paragraphs] that best support this [inference/conclusion].
431
+
432
+ ## Worked examples (T1, specific slot fills)
433
+
434
+ - supporting-evidence / Multiple Choice →
435
+ `stem "The reader can conclude that Nina takes care of a problem on her own, without being told to. Which line from the passage best supports this conclusion?"` with one supported `claim` (the inference) at `focus`, its directly-supporting `source` the correct option.
436
+ - supporting-evidence / Multi-Select →
437
+ `stem "Nina takes care of a problem on her own, without being told to. Which two lines from the passage best support this conclusion? Select two answers."` (two `directly-supports` sources)
438
+ - supporting-evidence / Hot Text (single-part) →
439
+ `stem "Read this conclusion. Nina takes care of a problem on her own, without being told to. Click the two sentences from the passage that best support this conclusion."`
440
+
441
+ ---
442
+
267
443
  # Target 8 (`c1-t8`) — Key Details (informational)
268
444
 
269
445
  A **different model**: the inference/conclusion is **GIVEN in the stem**, and the student selects