@graffiticode/l0175 0.2.0 → 0.3.0
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.
- package/dist/compiler.d.ts.map +1 -1
- package/dist/compiler.js +50 -124
- package/dist/compiler.js.map +1 -1
- package/dist/embedding.d.ts +1 -0
- package/dist/embedding.d.ts.map +1 -1
- package/dist/embedding.js +35 -2
- package/dist/embedding.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lexicon.d.ts +7 -0
- package/dist/lexicon.d.ts.map +1 -1
- package/dist/lexicon.js +12 -4
- package/dist/lexicon.js.map +1 -1
- package/dist/static/instructions.md +187 -10
- package/dist/static/language-info.json +3 -3
- package/dist/static/lexicon.json +98 -0
- package/dist/static/scope.json +1 -1
- package/dist/static/spec.html +2 -1
- package/dist/static/stems.md +14 -0
- package/dist/static/targets.json +209 -0
- package/dist/static/template.gc +7 -67
- package/dist/static/unparse-hints.json +3 -0
- package/dist/static/usage-guide.md +22 -2
- package/dist/targets.d.ts +25 -0
- package/dist/targets.d.ts.map +1 -0
- package/dist/targets.js +169 -0
- package/dist/targets.js.map +1 -0
- package/dist/verify-example.d.ts +27 -0
- package/dist/verify-example.d.ts.map +1 -0
- package/dist/verify-example.js +82 -0
- package/dist/verify-example.js.map +1 -0
- package/package.json +1 -1
- package/spec/docs.md +5 -2
- package/spec/examples/c1-t10-tm1-multiplechoice.expect.json +1 -0
- package/spec/examples/c1-t10-tm1-multiplechoice.gc +15 -0
- package/spec/examples/c1-t10-tm2-multiselect.expect.json +1 -0
- package/spec/examples/c1-t10-tm2-multiselect.gc +15 -0
- package/spec/examples/c1-t10-tm3-hottext.expect.json +1 -0
- package/spec/examples/c1-t10-tm3-hottext.gc +13 -0
- package/spec/examples/c1-t11-tm1-ebsr.expect.json +4 -0
- package/spec/examples/c1-t11-tm1-ebsr.gc +30 -0
- package/spec/examples/c1-t11-tm2-hottext.expect.json +4 -0
- package/spec/examples/c1-t11-tm2-hottext.gc +30 -0
- package/spec/examples/c1-t11-tm3-shorttext.expect.json +4 -0
- package/spec/examples/c1-t11-tm3-shorttext.gc +30 -0
- package/spec/examples/c1-t4-tm1-ebsr.expect.json +4 -0
- package/spec/examples/c1-t4-tm1-ebsr.gc +30 -0
- package/spec/examples/c1-t4-tm2-hottext.expect.json +4 -0
- package/spec/examples/c1-t4-tm2-hottext.gc +30 -0
- package/spec/examples/c1-t4-tm3-shorttext.expect.json +4 -0
- package/spec/examples/c1-t4-tm3-shorttext.gc +30 -0
- package/spec/examples/c1-t8-tm1-multiplechoice.expect.json +1 -0
- package/spec/examples/c1-t8-tm1-multiplechoice.gc +25 -0
- package/spec/examples/c1-t8-tm2-multiselect.expect.json +1 -0
- package/spec/examples/c1-t8-tm2-multiselect.gc +25 -0
- package/spec/examples/c1-t8-tm3-hottext.expect.json +1 -0
- package/spec/examples/c1-t8-tm3-hottext.gc +25 -0
- package/spec/examples/c1-t9-tm1-multiplechoice.expect.json +1 -0
- package/spec/examples/c1-t9-tm1-multiplechoice.gc +23 -0
- package/spec/examples/c1-t9-tm2-multiselect.expect.json +1 -0
- package/spec/examples/c1-t9-tm2-multiselect.gc +24 -0
- package/spec/examples/c1-t9-tm3-ebsr.expect.json +10 -0
- package/spec/examples/c1-t9-tm3-ebsr.gc +30 -0
- package/spec/examples/c1-t9-tm4-hottext.expect.json +10 -0
- package/spec/examples/c1-t9-tm4-hottext.gc +20 -0
- package/spec/examples/c1-t9-tm5-shorttext.expect.json +10 -0
- package/spec/examples/c1-t9-tm5-shorttext.gc +20 -0
- package/spec/examples.md +55 -11
- package/spec/instructions.md +187 -10
- package/spec/language-info.json +2 -2
- package/spec/rag-examples-design.md +74 -0
- package/spec/scope.json +1 -1
- package/spec/spec.md +9 -1
- package/spec/stems.md +14 -0
- package/spec/template.gc +7 -67
- package/spec/usage-guide.md +22 -2
package/dist/targets.js
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
/* Copyright (c) 2026, ARTCOMPILER INC */
|
|
3
|
+
//
|
|
4
|
+
// SINGLE SOURCE OF TRUTH for L0175's per-target structure.
|
|
5
|
+
//
|
|
6
|
+
// Everything the compiler enforces about a learning target lives here — and ONLY here.
|
|
7
|
+
// `compiler.ts` builds its runtime `TARGETS` profiles from this data; `tools/build-static.js`
|
|
8
|
+
// emits a served `targets.json` from it and GENERATES the per-target tables in the spec
|
|
9
|
+
// `.md` files (instructions.md, stems.md) from it. The `.md` files are the generator-facing
|
|
10
|
+
// flip side of this data: they carry MORE (narrative, stems, examples) but must EMPHASIZE
|
|
11
|
+
// everything here — nothing structural the compiler checks may be absent from what the
|
|
12
|
+
// generator reads. To add or change a target fact, edit this file; the compiler and the docs
|
|
13
|
+
// follow.
|
|
14
|
+
//
|
|
15
|
+
// This is plain data (no logic) so it round-trips to JSON. It is a typed `.ts` module rather
|
|
16
|
+
// than a raw `.json` import because core compiles to ESM under NodeNext, where JSON imports
|
|
17
|
+
// need version-fragile import attributes; build-static serializes it to `dist/static/targets.json`
|
|
18
|
+
// for non-TS consumers (the console RAG pipeline) and humans.
|
|
19
|
+
export const TARGETS_REVISED = "2026-06-30";
|
|
20
|
+
// CCSS Grade-5 reading-standard families. A target's `standards` is the full strand for its
|
|
21
|
+
// text type, so any plausible CCSS code for that text type validates (the `dimStandard` map
|
|
22
|
+
// still picks the right companion by default). RL.8 is "not applicable to literature";
|
|
23
|
+
// RL.10/RI.10 are range-of-reading bands, not discrete item standards.
|
|
24
|
+
export const STANDARD_FAMILIES = {
|
|
25
|
+
RL_G5: ["rl-1", "rl-2", "rl-3", "rl-4", "rl-5", "rl-6", "rl-7", "rl-9"],
|
|
26
|
+
RI_G5: ["ri-1", "ri-2", "ri-3", "ri-4", "ri-5", "ri-6", "ri-7", "ri-8", "ri-9"],
|
|
27
|
+
L_G5: ["l-4", "l-4a", "l-4b", "l-4c", "l-5", "l-5a", "l-5b", "l-5c"], // vocabulary (T10)
|
|
28
|
+
};
|
|
29
|
+
// Reverse lookup: the task-model NUMBER for a (target, item type) — e.g. ("c1-t9", "ebsr") → "3",
|
|
30
|
+
// ("c1-t4", "short-text") → "3". Item-type → task-model is per-target (the numbers collide), so the
|
|
31
|
+
// target is required. Returns undefined if the target doesn't offer that item type. Used by the RAG
|
|
32
|
+
// signature so a number-phrased query ("task model 3") can match a target's correct exemplar.
|
|
33
|
+
export function taskModelNumber(target, itemType) {
|
|
34
|
+
const tms = TARGETS_DATA[target]?.taskModels;
|
|
35
|
+
if (!tms)
|
|
36
|
+
return undefined;
|
|
37
|
+
const key = Object.keys(tms).find((k) => tms[k] === itemType);
|
|
38
|
+
return key ? key.replace(/^tm/, "") : undefined;
|
|
39
|
+
}
|
|
40
|
+
// Distractor error taxonomies reused across targets. Reasoning & Evidence (T4/T11) classifies
|
|
41
|
+
// foils by reasoning failure; Central Ideas (T9) by SIGNIFICANCE (a true statement that just
|
|
42
|
+
// isn't the central idea); Word Meanings (T10) by meaning error.
|
|
43
|
+
const RE_ERROR_TYPES = ["misreads-detail", "erroneous-inference", "faulty-reasoning"];
|
|
44
|
+
const T9_ERROR_TYPES = ["too-narrow", "too-broad", "misreads-detail", "insignificant"];
|
|
45
|
+
// R&E (T4/T11) and the single-select families share task-model layouts.
|
|
46
|
+
const RE_TASK_MODELS = { tm1: "ebsr", tm2: "hot-text", tm3: "short-text" };
|
|
47
|
+
const SELECT_TASK_MODELS = { tm1: "multiple-choice", tm2: "multi-select", tm3: "hot-text" };
|
|
48
|
+
export const TARGETS_DATA = {
|
|
49
|
+
// Claim 1 · Target 4 — Reasoning & Evidence, literary texts (RL standards). The original L0175.
|
|
50
|
+
"c1-t4": {
|
|
51
|
+
id: "c1-t4",
|
|
52
|
+
label: "Grade 5 · Claim 1 · Target 4 (Reasoning & Evidence)",
|
|
53
|
+
grade: 5,
|
|
54
|
+
textType: "literary",
|
|
55
|
+
baseStandard: "rl-1",
|
|
56
|
+
defaultDok: "r-dok3",
|
|
57
|
+
answerKind: "statement",
|
|
58
|
+
singlePartHotText: false,
|
|
59
|
+
taskModels: RE_TASK_MODELS,
|
|
60
|
+
standards: ["RL_G5"],
|
|
61
|
+
dimensions: [
|
|
62
|
+
"character", "setting", "event", "point-of-view",
|
|
63
|
+
"theme", "topic", "narrators-feelings", "character-relationship",
|
|
64
|
+
],
|
|
65
|
+
errorTypes: RE_ERROR_TYPES,
|
|
66
|
+
dimStandard: {
|
|
67
|
+
"character": "rl-3", "character-relationship": "rl-3", "setting": "rl-3", "event": "rl-3",
|
|
68
|
+
"point-of-view": "rl-6", "narrators-feelings": "rl-6",
|
|
69
|
+
// theme/topic = determine-the-theme/summarize → RL.2 (the CCSS theme standard), not the
|
|
70
|
+
// cross-text-comparison RL.9.
|
|
71
|
+
"theme": "rl-2", "topic": "rl-2",
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
// Claim 1 · Target 11 — Reasoning & Evidence, informational texts (RI standards).
|
|
75
|
+
"c1-t11": {
|
|
76
|
+
id: "c1-t11",
|
|
77
|
+
label: "Grade 5 · Claim 1 · Target 11 (Reasoning & Evidence)",
|
|
78
|
+
grade: 5,
|
|
79
|
+
textType: "informational",
|
|
80
|
+
baseStandard: "ri-1",
|
|
81
|
+
defaultDok: "r-dok3",
|
|
82
|
+
answerKind: "statement",
|
|
83
|
+
singlePartHotText: false,
|
|
84
|
+
taskModels: RE_TASK_MODELS,
|
|
85
|
+
standards: ["RI_G5"],
|
|
86
|
+
dimensions: [
|
|
87
|
+
"relationships-interactions", "author-use-of-information",
|
|
88
|
+
"point-of-view", "purpose", "authors-opinion",
|
|
89
|
+
],
|
|
90
|
+
errorTypes: RE_ERROR_TYPES,
|
|
91
|
+
dimStandard: {
|
|
92
|
+
"relationships-interactions": "ri-3",
|
|
93
|
+
"author-use-of-information": "ri-8",
|
|
94
|
+
"point-of-view": "ri-6",
|
|
95
|
+
"purpose": "ri-8",
|
|
96
|
+
"authors-opinion": "ri-8",
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
// Claim 1 · Target 9 — Central Ideas, informational texts (RI-1 + RI-2). A DIFFERENT skill from
|
|
100
|
+
// Reasoning & Evidence: whole-text synthesis and significance (the main idea, the key details that
|
|
101
|
+
// build it, and summary), DOK 2 (3 only for the written summary). Distractors are a SIGNIFICANCE
|
|
102
|
+
// taxonomy — usually true statements that just aren't the central idea. The only non-R&E target
|
|
103
|
+
// that allows EBSR and short-text, so its task-model numbering reaches tm5.
|
|
104
|
+
"c1-t9": {
|
|
105
|
+
id: "c1-t9",
|
|
106
|
+
label: "Grade 5 · Claim 1 · Target 9 (Central Ideas)",
|
|
107
|
+
grade: 5,
|
|
108
|
+
textType: "informational",
|
|
109
|
+
baseStandard: "ri-1",
|
|
110
|
+
defaultDok: "r-dok2",
|
|
111
|
+
answerKind: "statement",
|
|
112
|
+
singlePartHotText: true, // T9 Hot Text (tm4): click the sentence(s) that show the main idea
|
|
113
|
+
taskModels: {
|
|
114
|
+
tm1: "multiple-choice", tm2: "multi-select", tm3: "ebsr", tm4: "hot-text", tm5: "short-text",
|
|
115
|
+
},
|
|
116
|
+
standards: ["RI_G5"],
|
|
117
|
+
dimensions: ["central-idea", "key-detail", "summary"],
|
|
118
|
+
errorTypes: T9_ERROR_TYPES,
|
|
119
|
+
dimStandard: {
|
|
120
|
+
"central-idea": "ri-2",
|
|
121
|
+
"key-detail": "ri-2",
|
|
122
|
+
"summary": "ri-2",
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
// Claim 1 · Target 8 — Key Details, informational texts (RI-1 + RI-7). A DIFFERENT model: the
|
|
126
|
+
// inference/conclusion is GIVEN in the stem and the student selects the supporting EVIDENCE
|
|
127
|
+
// (answerKind "evidence"). Options are passage sources, not claims; no statement Part A, no
|
|
128
|
+
// EBSR/short-text. DOK 1–2 (default 2).
|
|
129
|
+
"c1-t8": {
|
|
130
|
+
id: "c1-t8",
|
|
131
|
+
label: "Grade 5 · Claim 1 · Target 8 (Key Details)",
|
|
132
|
+
grade: 5,
|
|
133
|
+
textType: "informational",
|
|
134
|
+
baseStandard: "ri-1",
|
|
135
|
+
defaultDok: "r-dok2",
|
|
136
|
+
answerKind: "evidence",
|
|
137
|
+
singlePartHotText: true,
|
|
138
|
+
taskModels: SELECT_TASK_MODELS,
|
|
139
|
+
standards: ["RI_G5"],
|
|
140
|
+
dimensions: ["supporting-evidence"],
|
|
141
|
+
errorTypes: [], // T8 wrong answers are non-supporting sources, not distractor claims
|
|
142
|
+
dimStandard: {
|
|
143
|
+
"supporting-evidence": "ri-7",
|
|
144
|
+
},
|
|
145
|
+
},
|
|
146
|
+
// Claim 1 · Target 10 — Word Meanings, informational texts (RI-4 + the L-4 family). The most
|
|
147
|
+
// different model: the question asks for the MEANING of a targeted word/phrase in context, so the
|
|
148
|
+
// options are candidate MEANINGS (answerKind "meaning"), authored as `word`/`meaning`, not claims.
|
|
149
|
+
// DOK 1–2. The strategy (context / roots & affixes / word relationships / reference) is expressed
|
|
150
|
+
// via the authored standard (l-4a / l-4b / l-5c / l-4c).
|
|
151
|
+
"c1-t10": {
|
|
152
|
+
id: "c1-t10",
|
|
153
|
+
label: "Grade 5 · Claim 1 · Target 10 (Word Meanings)",
|
|
154
|
+
grade: 5,
|
|
155
|
+
textType: "informational",
|
|
156
|
+
baseStandard: "ri-4",
|
|
157
|
+
defaultDok: "r-dok2",
|
|
158
|
+
answerKind: "meaning",
|
|
159
|
+
singlePartHotText: false, // T10 Hot Text is word-level (composeWordMeaning), not sentence-level
|
|
160
|
+
taskModels: SELECT_TASK_MODELS,
|
|
161
|
+
standards: ["RI_G5", "L_G5"],
|
|
162
|
+
dimensions: ["word-meaning"],
|
|
163
|
+
errorTypes: ["other-meaning", "misinterprets", "wrong-context"],
|
|
164
|
+
dimStandard: {
|
|
165
|
+
"word-meaning": "l-4",
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
//# sourceMappingURL=targets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"targets.js","sourceRoot":"","sources":["../src/targets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type DesignFacets } from "./embedding.js";
|
|
2
|
+
export interface ExampleExpectation {
|
|
3
|
+
target: string;
|
|
4
|
+
taskModel?: string;
|
|
5
|
+
itemType?: string;
|
|
6
|
+
dimension?: string;
|
|
7
|
+
standard?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface VerifyResult {
|
|
10
|
+
ok: boolean;
|
|
11
|
+
blocking: string[];
|
|
12
|
+
advisory: string[];
|
|
13
|
+
facets: DesignFacets;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Verify one example against its declared expectation. Pure: the caller supplies the compile result
|
|
17
|
+
* (`errors`, `data`) — parsing/compiling lives at the call site (the parser is not a core dep). Pass
|
|
18
|
+
* `data` (a composed program from `compiler.compile`) for the authoritative signature; `code` alone
|
|
19
|
+
* falls back to the source-derived signature.
|
|
20
|
+
*/
|
|
21
|
+
export declare function verifyExample(input: {
|
|
22
|
+
errors: any[];
|
|
23
|
+
data?: any;
|
|
24
|
+
code?: string;
|
|
25
|
+
expect: ExampleExpectation;
|
|
26
|
+
}): VerifyResult;
|
|
27
|
+
//# sourceMappingURL=verify-example.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-example.d.ts","sourceRoot":"","sources":["../src/verify-example.ts"],"names":[],"mappings":"AAeA,OAAO,EAAgD,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,YAAY,CAAC;CACtB;AAQD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,MAAM,EAAE,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,kBAAkB,CAAC;CAC5B,GAAG,YAAY,CAyDf"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// A verification GATE for RAG example data. It does NOT map prompt→code (that stays with the
|
|
3
|
+
// generator + human refinement); it inspects whatever code an example already carries and checks
|
|
4
|
+
// only the machine-decidable properties, so it composes with a human-in-the-loop workflow.
|
|
5
|
+
//
|
|
6
|
+
// Two tiers:
|
|
7
|
+
// - BLOCKING — objective failures that must keep an example out of the corpus: it must compile
|
|
8
|
+
// clean, and its composed design signature (target / item type / task model /
|
|
9
|
+
// dimension / standard) must match the example's declared intent. Task-model checks
|
|
10
|
+
// read ./targets.ts (the single source of truth), NOT instructions.md — so the gate
|
|
11
|
+
// is independent of the docs a bootstrap run was seeded from.
|
|
12
|
+
// - ADVISORY — compiler warnings (thin distractor pool, A↔B giveaway, above-grade reading) that a
|
|
13
|
+
// human should judge, surfaced but not fatal.
|
|
14
|
+
//
|
|
15
|
+
// The gate guards BOTH sides of the human: run it after bootstrap AND after hand-refinement.
|
|
16
|
+
import { buildSignatureTags, buildSignatureFromSource } from "./embedding.js";
|
|
17
|
+
import { TARGETS_DATA, taskModelNumber } from "./targets.js";
|
|
18
|
+
// Accept "tm3" or "3"; return both the table key and the bare number.
|
|
19
|
+
function normalizeTaskModel(s) {
|
|
20
|
+
const num = String(s).toLowerCase().replace(/^tm/, "");
|
|
21
|
+
return { key: `tm${num}`, num };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Verify one example against its declared expectation. Pure: the caller supplies the compile result
|
|
25
|
+
* (`errors`, `data`) — parsing/compiling lives at the call site (the parser is not a core dep). Pass
|
|
26
|
+
* `data` (a composed program from `compiler.compile`) for the authoritative signature; `code` alone
|
|
27
|
+
* falls back to the source-derived signature.
|
|
28
|
+
*/
|
|
29
|
+
export function verifyExample(input) {
|
|
30
|
+
const { errors, data, code, expect } = input;
|
|
31
|
+
const blocking = [];
|
|
32
|
+
const advisory = [];
|
|
33
|
+
// 1. Must compile clean — any hard error is blocking.
|
|
34
|
+
for (const e of errors || [])
|
|
35
|
+
blocking.push(`compile error: ${e?.message ?? String(e)}`);
|
|
36
|
+
// 2. Signature — prefer the composed data; fall back to source.
|
|
37
|
+
const sig = data != null ? buildSignatureTags(data) : buildSignatureFromSource(code || "");
|
|
38
|
+
const facets = sig.facets;
|
|
39
|
+
const target = expect.target;
|
|
40
|
+
const profile = TARGETS_DATA[target];
|
|
41
|
+
if (!profile) {
|
|
42
|
+
blocking.push(`unknown expected target '${target}'`);
|
|
43
|
+
return { ok: blocking.length === 0, blocking, advisory, facets };
|
|
44
|
+
}
|
|
45
|
+
// Resolve the expected item type / task-model number from whatever the expectation provided, and
|
|
46
|
+
// cross-check them when both are given.
|
|
47
|
+
const expTm = expect.taskModel ? normalizeTaskModel(expect.taskModel) : undefined;
|
|
48
|
+
let expItemType = expect.itemType;
|
|
49
|
+
if (!expItemType && expTm)
|
|
50
|
+
expItemType = profile.taskModels[expTm.key];
|
|
51
|
+
const expTmNum = expTm?.num ?? (expItemType ? taskModelNumber(target, expItemType) : undefined);
|
|
52
|
+
if (expect.itemType && expTm && profile.taskModels[expTm.key] !== expect.itemType) {
|
|
53
|
+
blocking.push(`expectation is inconsistent: ${expTm.key} is '${profile.taskModels[expTm.key] ?? "n/a"}' for ${target}, not '${expect.itemType}'`);
|
|
54
|
+
}
|
|
55
|
+
if (expTm && !profile.taskModels[expTm.key]) {
|
|
56
|
+
blocking.push(`task model '${expTm.key}' is not available for target ${target}`);
|
|
57
|
+
}
|
|
58
|
+
// 3. Composed signature must match the declared intent.
|
|
59
|
+
if (facets.target !== target) {
|
|
60
|
+
blocking.push(`target: expected ${target}, composed ${facets.target ?? "none"}`);
|
|
61
|
+
}
|
|
62
|
+
const gotTypes = facets.itemTypes || [];
|
|
63
|
+
if (expItemType && !(gotTypes.length === 1 && gotTypes[0] === expItemType)) {
|
|
64
|
+
blocking.push(`item type: expected exactly [${expItemType}], composed [${gotTypes.join(", ") || "none"}]`);
|
|
65
|
+
}
|
|
66
|
+
if (expTmNum && !(facets.taskModels || []).includes(expTmNum)) {
|
|
67
|
+
blocking.push(`task model: expected tm${expTmNum}, composed task-model(s) [${(facets.taskModels || []).join(", ") || "none"}]`);
|
|
68
|
+
}
|
|
69
|
+
if (expect.dimension && !(facets.dimensions || []).includes(expect.dimension)) {
|
|
70
|
+
blocking.push(`dimension: expected ${expect.dimension}, composed [${(facets.dimensions || []).join(", ") || "none"}]`);
|
|
71
|
+
}
|
|
72
|
+
if (expect.standard && !(facets.standards || []).includes(expect.standard)) {
|
|
73
|
+
blocking.push(`standard: expected ${expect.standard}, composed [${(facets.standards || []).join(", ") || "none"}]`);
|
|
74
|
+
}
|
|
75
|
+
// 4. Compiler warnings → advisory (a human decides). Warnings ride on each composed item.
|
|
76
|
+
const items = data == null ? [] : Array.isArray(data) ? data : data.kind === "items" ? data.items : [data];
|
|
77
|
+
for (const it of items)
|
|
78
|
+
for (const w of (it && it.warnings) || [])
|
|
79
|
+
advisory.push(w);
|
|
80
|
+
return { ok: blocking.length === 0, blocking, advisory, facets };
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=verify-example.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-example.js","sourceRoot":"","sources":["../src/verify-example.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/spec/docs.md
CHANGED
|
@@ -46,7 +46,10 @@ outcomes [ outcome id "q1" type ebsr dimension character subject "Mara" standard
|
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
composes a two-part EBSR item and renders it as an answerable form with a Student / Review
|
|
49
|
-
toggle.
|
|
49
|
+
toggle. This example is Target 4 (literary, R&E); the other targets use the same flat-chain shape
|
|
50
|
+
but author their options differently — **T9** (Central Ideas) significance-taxonomy `claim`s,
|
|
51
|
+
**T8** (Key Details) `source`s with the inference given in the stem, **T10** (Word Meanings)
|
|
52
|
+
`meaning`s of a targeted `word`. See `instructions.md` for a full worked program per target.
|
|
50
53
|
|
|
51
54
|
### Vocabulary
|
|
52
55
|
|
|
@@ -88,7 +91,7 @@ Attribute functions (arity-2, merge one key into the element's record):
|
|
|
88
91
|
- `dimension` (c1-t9): `central-idea`, `key-detail`, `summary` · (c1-t8): `supporting-evidence` · (c1-t10): `word-meaning`
|
|
89
92
|
- claim `status`: `supported`, `distractor` · source `status`: `directly-supports`, `supports-wrong-claim`, `irrelevant` · meaning `status` (c1-t10): `correct`, `distractor`
|
|
90
93
|
- `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`
|
|
91
|
-
- `standard` (c1-t4): `rl-1
|
|
94
|
+
- `standard` — full CCSS Grade-5 strand for the text type accepted; the dimension's companion is inferred when omitted. Primary companions — (c1-t4): `rl-1` + `rl-2` (theme/topic) / `rl-3` / `rl-6` [full RL `rl-1`–`rl-7`/`rl-9`, no `rl-8`] · (c1-t11): `ri-1` + `ri-3` / `ri-6` / `ri-7` / `ri-8` · (c1-t9): `ri-1` + `ri-2` · (c1-t8): `ri-1` + `ri-7` [c1-t11/t9/t8 accept full RI `ri-1`–`ri-9`] · (c1-t10): `ri-4` + the `l-4` / `l-5` families
|
|
92
95
|
- `dok`: `r-dok1`, `r-dok2`, `r-dok3` (R&E → r-dok3; T9 → r-dok2, written summary r-dok3; T8 & T10 → r-dok2)
|
|
93
96
|
|
|
94
97
|
### Grade-appropriate reading level
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "prompt": "From an informational passage that uses the word 'aqueduct' in context, author a c1-t10 Task Model 1 (Multiple Choice) item asking what 'aqueduct' most likely means as used in the passage (dimension word-meaning, standard l-4a — context). Options are meanings: one correct plus distractors tagged other-meaning, misinterprets, and wrong-context.", "expect": { "target": "c1-t10", "taskModel": "tm1", "itemType": "multiple-choice", "dimension": "word-meaning", "standard": "l-4a" } }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
target c1-t10 passage "The City Aqueduct" type informational lines [
|
|
2
|
+
"The city built a long aqueduct to carry water from the hills."
|
|
3
|
+
"Workers dug a deep channel and lined it with smooth stone."
|
|
4
|
+
"When it rained, the ditch beside the road filled with mud."
|
|
5
|
+
]
|
|
6
|
+
words [
|
|
7
|
+
word id "w1" text "aqueduct" line 1 quote "The city built a long aqueduct to carry water from the hills." meanings [
|
|
8
|
+
meaning id "m1" status correct text "a channel that carries water" {},
|
|
9
|
+
meaning id "m2" status distractor error-type other-meaning text "a large boat that carries cargo" rationale "another meaning that ignores the water-carrying context" {},
|
|
10
|
+
meaning id "m3" status distractor error-type misinterprets text "a tall tower built of stone" rationale "misreads the sentence, which is about carrying water" {},
|
|
11
|
+
meaning id "m4" status distractor error-type wrong-context text "a wide road made for wagons" rationale "uses the wrong context" {}
|
|
12
|
+
] {}
|
|
13
|
+
]
|
|
14
|
+
outcomes [ outcome id "q1" type multiple-choice task-model tm1 dimension word-meaning subject "aqueduct" standard l-4a focus "w1" stem "Read the sentence: \"The city built a long aqueduct to carry water from the hills.\" What does the word aqueduct most likely mean?" {} ]
|
|
15
|
+
{}..
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "prompt": "From the same passage, author a c1-t10 Task Model 2 (Multi-Select) item: 'What does the word aqueduct most likely mean? Choose two answers.' Two correct meanings plus distractor meanings (dimension word-meaning, standard l-5c).", "expect": { "target": "c1-t10", "taskModel": "tm2", "itemType": "multi-select", "dimension": "word-meaning", "standard": "l-5c" } }
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
target c1-t10 passage "The City Aqueduct" type informational lines [
|
|
2
|
+
"The city built a long aqueduct to carry water from the hills."
|
|
3
|
+
"Workers dug a deep channel and lined it with smooth stone."
|
|
4
|
+
"When it rained, the ditch beside the road filled with mud."
|
|
5
|
+
]
|
|
6
|
+
words [
|
|
7
|
+
word id "w1" text "aqueduct" line 1 quote "The city built a long aqueduct to carry water from the hills." meanings [
|
|
8
|
+
meaning id "m1" status correct text "a channel that carries water" {},
|
|
9
|
+
meaning id "m2" status correct text "a bridge that carries water" {},
|
|
10
|
+
meaning id "m3" status distractor error-type misinterprets text "a tall tower built of stone" rationale "misreads the sentence, which is about carrying water" {},
|
|
11
|
+
meaning id "m4" status distractor error-type wrong-context text "a wide road made for wagons" rationale "uses the wrong context" {}
|
|
12
|
+
] {}
|
|
13
|
+
]
|
|
14
|
+
outcomes [ outcome id "q1" type multi-select task-model tm2 dimension word-meaning subject "aqueduct" standard l-5c focus "w1" stem "What does the word aqueduct most likely mean? Choose two answers." {} ]
|
|
15
|
+
{}..
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "prompt": "From the same passage, author a c1-t10 Task Model 3 (Hot Text) click-the-word item: click the word in the paragraph that matches a given definition. The focus word (aqueduct) is correct; author a few distractor candidate words from the same paragraph. Standard l-4a; keep the passage out of the stem.", "expect": { "target": "c1-t10", "taskModel": "tm3", "itemType": "hot-text", "dimension": "word-meaning", "standard": "l-4a" } }
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
target c1-t10 passage "The City Aqueduct" type informational lines [
|
|
2
|
+
"The city built a long aqueduct to carry water from the hills."
|
|
3
|
+
"Workers dug a deep channel and lined it with smooth stone."
|
|
4
|
+
"When it rained, the ditch beside the road filled with mud."
|
|
5
|
+
]
|
|
6
|
+
words [
|
|
7
|
+
word id "w1" text "aqueduct" line 1 {},
|
|
8
|
+
word id "w2" text "city" line 1 {},
|
|
9
|
+
word id "w3" text "water" line 1 {},
|
|
10
|
+
word id "w4" text "hills" line 1 {}
|
|
11
|
+
]
|
|
12
|
+
outcomes [ outcome id "q1" type hot-text task-model tm3 dimension word-meaning subject "aqueduct" standard l-4a focus "w1" stem "Click the word in the paragraph that means a channel built to carry water across the land." {} ]
|
|
13
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From an informational article on how bridge designs changed over time, author a c1-t11 Task Model 1 (ebsr) item about how each design is related to the one before it (dimension relationships-interactions, standard ri-3).",
|
|
3
|
+
"expect": { "target": "c1-t11", "taskModel": "tm1", "itemType": "ebsr", "dimension": "relationships-interactions", "standard": "ri-3" }
|
|
4
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
target c1-t11 passage "How Bridges Changed" type informational lines [
|
|
2
|
+
"Long ago, builders made bridges by laying flat stones across a stream."
|
|
3
|
+
"These beam bridges could only cross short gaps before they sagged."
|
|
4
|
+
"To span wider rivers, the Romans built arch bridges out of curved stone."
|
|
5
|
+
"The arch pushed the weight outward, so the bridge could carry heavy loads."
|
|
6
|
+
"Later, engineers hung the roadway from cables in a suspension bridge."
|
|
7
|
+
"Suspension bridges could cross gaps far too wide for any arch."
|
|
8
|
+
"Each new design solved a problem the earlier one could not."
|
|
9
|
+
"Today, engineers choose a design to fit the distance and the load."
|
|
10
|
+
]
|
|
11
|
+
claims [
|
|
12
|
+
claim id "c1" status supported dimension relationships-interactions subject "the bridge designs" standard ri-3 text "Each new bridge design fixed a problem the last one could not." cites ["e1" "e2" "e3"] {},
|
|
13
|
+
claim id "c2" status distractor error-type misreads-detail plausibility 0.8 targets ["q1"] text "Beam bridges were the strongest kind of bridge ever built." rationale "Misreads the passage; beam bridges were the weakest." cites ["e4"] {},
|
|
14
|
+
claim id "c3" status distractor error-type erroneous-inference plausibility 0.6 targets ["q1"] text "The Romans invented every type of bridge in the article." rationale "Not stated; they built arch bridges, not all types." cites ["e5"] {},
|
|
15
|
+
claim id "c4" status distractor error-type faulty-reasoning plausibility 0.6 targets ["q1"] text "Newer bridges are always prettier than older bridges." rationale "Beauty is never discussed; the text is about solving problems." cites ["e6"] {},
|
|
16
|
+
claim id "c5" status distractor error-type misreads-detail plausibility 0.5 targets ["q1"] text "Suspension bridges are built only from curved stone." rationale "Confuses suspension bridges (cables) with arch bridges (stone)." cites ["e7"] {},
|
|
17
|
+
claim id "c6" status distractor error-type erroneous-inference plausibility 0.5 targets ["q1"] text "Engineers today still prefer the simple beam bridge." rationale "Contradicted; they choose a design by distance and load." cites ["e8"] {}
|
|
18
|
+
]
|
|
19
|
+
evidence [
|
|
20
|
+
source id "e1" line 4 status directly-supports supports ["c1"] quote "The arch pushed the weight outward, so the bridge could carry heavy loads." {},
|
|
21
|
+
source id "e2" line 6 status directly-supports supports ["c1"] quote "Suspension bridges could cross gaps far too wide for any arch." {},
|
|
22
|
+
source id "e3" line 7 status directly-supports supports ["c1"] quote "Each new design solved a problem the earlier one could not." {},
|
|
23
|
+
source id "e4" line 2 status supports-wrong-claim supports ["c1" "c2"] quote "These beam bridges could only cross short gaps before they sagged." rationale "Describes a limit of one design, not the relationship across designs." {},
|
|
24
|
+
source id "e5" line 3 status supports-wrong-claim supports ["c3"] quote "To span wider rivers, the Romans built arch bridges out of curved stone." rationale "Backs the who-built-it detail, not the problem-solving relationship." {},
|
|
25
|
+
source id "e6" line 1 status irrelevant supports [] quote "Long ago, builders made bridges by laying flat stones across a stream." {},
|
|
26
|
+
source id "e7" line 5 status irrelevant supports [] quote "Later, engineers hung the roadway from cables in a suspension bridge." {},
|
|
27
|
+
source id "e8" line 8 status irrelevant supports [] quote "Today, engineers choose a design to fit the distance and the load." {}
|
|
28
|
+
]
|
|
29
|
+
outcomes [ outcome id "q1" type ebsr task-model tm1 dimension relationships-interactions subject "the bridge designs" standard ri-3 focus "c1" stem "Which of these conclusions about how the bridge designs are related is supported by the passage?" stem-b "Which sentence(s) from the passage best support your answer in Part A?" {} ]
|
|
30
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From an informational article on how bridge designs changed over time, author a c1-t11 Task Model 2 (hot-text) item about how each design is related to the one before it (dimension relationships-interactions, standard ri-3).",
|
|
3
|
+
"expect": { "target": "c1-t11", "taskModel": "tm2", "itemType": "hot-text", "dimension": "relationships-interactions", "standard": "ri-3" }
|
|
4
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
target c1-t11 passage "How Bridges Changed" type informational lines [
|
|
2
|
+
"Long ago, builders made bridges by laying flat stones across a stream."
|
|
3
|
+
"These beam bridges could only cross short gaps before they sagged."
|
|
4
|
+
"To span wider rivers, the Romans built arch bridges out of curved stone."
|
|
5
|
+
"The arch pushed the weight outward, so the bridge could carry heavy loads."
|
|
6
|
+
"Later, engineers hung the roadway from cables in a suspension bridge."
|
|
7
|
+
"Suspension bridges could cross gaps far too wide for any arch."
|
|
8
|
+
"Each new design solved a problem the earlier one could not."
|
|
9
|
+
"Today, engineers choose a design to fit the distance and the load."
|
|
10
|
+
]
|
|
11
|
+
claims [
|
|
12
|
+
claim id "c1" status supported dimension relationships-interactions subject "the bridge designs" standard ri-3 text "Each new bridge design fixed a problem the last one could not." cites ["e1" "e2" "e3"] {},
|
|
13
|
+
claim id "c2" status distractor error-type misreads-detail plausibility 0.8 targets ["q1"] text "Beam bridges were the strongest kind of bridge ever built." rationale "Misreads the passage; beam bridges were the weakest." cites ["e4"] {},
|
|
14
|
+
claim id "c3" status distractor error-type erroneous-inference plausibility 0.6 targets ["q1"] text "The Romans invented every type of bridge in the article." rationale "Not stated; they built arch bridges, not all types." cites ["e5"] {},
|
|
15
|
+
claim id "c4" status distractor error-type faulty-reasoning plausibility 0.6 targets ["q1"] text "Newer bridges are always prettier than older bridges." rationale "Beauty is never discussed; the text is about solving problems." cites ["e6"] {},
|
|
16
|
+
claim id "c5" status distractor error-type misreads-detail plausibility 0.5 targets ["q1"] text "Suspension bridges are built only from curved stone." rationale "Confuses suspension bridges (cables) with arch bridges (stone)." cites ["e7"] {},
|
|
17
|
+
claim id "c6" status distractor error-type erroneous-inference plausibility 0.5 targets ["q1"] text "Engineers today still prefer the simple beam bridge." rationale "Contradicted; they choose a design by distance and load." cites ["e8"] {}
|
|
18
|
+
]
|
|
19
|
+
evidence [
|
|
20
|
+
source id "e1" line 4 status directly-supports supports ["c1"] quote "The arch pushed the weight outward, so the bridge could carry heavy loads." {},
|
|
21
|
+
source id "e2" line 6 status directly-supports supports ["c1"] quote "Suspension bridges could cross gaps far too wide for any arch." {},
|
|
22
|
+
source id "e3" line 7 status directly-supports supports ["c1"] quote "Each new design solved a problem the earlier one could not." {},
|
|
23
|
+
source id "e4" line 2 status supports-wrong-claim supports ["c1" "c2"] quote "These beam bridges could only cross short gaps before they sagged." rationale "Describes a limit of one design, not the relationship across designs." {},
|
|
24
|
+
source id "e5" line 3 status supports-wrong-claim supports ["c3"] quote "To span wider rivers, the Romans built arch bridges out of curved stone." rationale "Backs the who-built-it detail, not the problem-solving relationship." {},
|
|
25
|
+
source id "e6" line 1 status irrelevant supports [] quote "Long ago, builders made bridges by laying flat stones across a stream." {},
|
|
26
|
+
source id "e7" line 5 status irrelevant supports [] quote "Later, engineers hung the roadway from cables in a suspension bridge." {},
|
|
27
|
+
source id "e8" line 8 status irrelevant supports [] quote "Today, engineers choose a design to fit the distance and the load." {}
|
|
28
|
+
]
|
|
29
|
+
outcomes [ outcome id "q1" type hot-text task-model tm2 dimension relationships-interactions subject "the bridge designs" standard ri-3 focus "c1" stem "Click on the statement that best describes how the bridge designs are related, as supported by the passage." {} ]
|
|
30
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From an informational article on how bridge designs changed over time, author a c1-t11 Task Model 3 (short-text) item about how each design is related to the one before it (dimension relationships-interactions, standard ri-3).",
|
|
3
|
+
"expect": { "target": "c1-t11", "taskModel": "tm3", "itemType": "short-text", "dimension": "relationships-interactions", "standard": "ri-3" }
|
|
4
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
target c1-t11 passage "How Bridges Changed" type informational lines [
|
|
2
|
+
"Long ago, builders made bridges by laying flat stones across a stream."
|
|
3
|
+
"These beam bridges could only cross short gaps before they sagged."
|
|
4
|
+
"To span wider rivers, the Romans built arch bridges out of curved stone."
|
|
5
|
+
"The arch pushed the weight outward, so the bridge could carry heavy loads."
|
|
6
|
+
"Later, engineers hung the roadway from cables in a suspension bridge."
|
|
7
|
+
"Suspension bridges could cross gaps far too wide for any arch."
|
|
8
|
+
"Each new design solved a problem the earlier one could not."
|
|
9
|
+
"Today, engineers choose a design to fit the distance and the load."
|
|
10
|
+
]
|
|
11
|
+
claims [
|
|
12
|
+
claim id "c1" status supported dimension relationships-interactions subject "the bridge designs" standard ri-3 text "Each new bridge design fixed a problem the last one could not." cites ["e1" "e2" "e3"] {},
|
|
13
|
+
claim id "c2" status distractor error-type misreads-detail plausibility 0.8 targets ["q1"] text "Beam bridges were the strongest kind of bridge ever built." rationale "Misreads the passage; beam bridges were the weakest." cites ["e4"] {},
|
|
14
|
+
claim id "c3" status distractor error-type erroneous-inference plausibility 0.6 targets ["q1"] text "The Romans invented every type of bridge in the article." rationale "Not stated; they built arch bridges, not all types." cites ["e5"] {},
|
|
15
|
+
claim id "c4" status distractor error-type faulty-reasoning plausibility 0.6 targets ["q1"] text "Newer bridges are always prettier than older bridges." rationale "Beauty is never discussed; the text is about solving problems." cites ["e6"] {},
|
|
16
|
+
claim id "c5" status distractor error-type misreads-detail plausibility 0.5 targets ["q1"] text "Suspension bridges are built only from curved stone." rationale "Confuses suspension bridges (cables) with arch bridges (stone)." cites ["e7"] {},
|
|
17
|
+
claim id "c6" status distractor error-type erroneous-inference plausibility 0.5 targets ["q1"] text "Engineers today still prefer the simple beam bridge." rationale "Contradicted; they choose a design by distance and load." cites ["e8"] {}
|
|
18
|
+
]
|
|
19
|
+
evidence [
|
|
20
|
+
source id "e1" line 4 status directly-supports supports ["c1"] quote "The arch pushed the weight outward, so the bridge could carry heavy loads." {},
|
|
21
|
+
source id "e2" line 6 status directly-supports supports ["c1"] quote "Suspension bridges could cross gaps far too wide for any arch." {},
|
|
22
|
+
source id "e3" line 7 status directly-supports supports ["c1"] quote "Each new design solved a problem the earlier one could not." {},
|
|
23
|
+
source id "e4" line 2 status supports-wrong-claim supports ["c1" "c2"] quote "These beam bridges could only cross short gaps before they sagged." rationale "Describes a limit of one design, not the relationship across designs." {},
|
|
24
|
+
source id "e5" line 3 status supports-wrong-claim supports ["c3"] quote "To span wider rivers, the Romans built arch bridges out of curved stone." rationale "Backs the who-built-it detail, not the problem-solving relationship." {},
|
|
25
|
+
source id "e6" line 1 status irrelevant supports [] quote "Long ago, builders made bridges by laying flat stones across a stream." {},
|
|
26
|
+
source id "e7" line 5 status irrelevant supports [] quote "Later, engineers hung the roadway from cables in a suspension bridge." {},
|
|
27
|
+
source id "e8" line 8 status irrelevant supports [] quote "Today, engineers choose a design to fit the distance and the load." {}
|
|
28
|
+
]
|
|
29
|
+
outcomes [ outcome id "q1" type short-text task-model tm3 dimension relationships-interactions subject "the bridge designs" standard ri-3 focus "c1" stem "What conclusion can you draw about how each bridge design is related to the one before it? Explain using key details from the passage." {} ]
|
|
30
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From a short story about a girl named Mara at a tide pool, author a c1-t4 Task Model 1 (EBSR) item about what Mara cares about: Part A asks which inference about Mara is supported, Part B asks for the supporting sentence(s). Dimension character, standard rl-1. Distractors are reasoning errors: an anger misread, a dislikes-outdoors erroneous inference, a fear faulty-reasoning, a bored misread.",
|
|
3
|
+
"expect": { "target": "c1-t4", "taskModel": "tm1", "itemType": "ebsr", "dimension": "character", "standard": "rl-1" }
|
|
4
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
target c1-t4 passage "The Tide Pool" type literary lines [
|
|
2
|
+
"Mara crouched at the edge of the tide pool, ignoring the picnic behind her."
|
|
3
|
+
"Her brother called twice, but she did not turn around."
|
|
4
|
+
"A tiny crab scuttled under a rock, and Mara smiled for the first time all day."
|
|
5
|
+
"She traced the cold water as if the pool were the only thing that mattered."
|
|
6
|
+
"Five more minutes, she whispered, though no one was listening."
|
|
7
|
+
"Behind her, paper plates rustled and her mother laughed."
|
|
8
|
+
"The waves pushed a ribbon of seaweed against her fingers."
|
|
9
|
+
"Her sandwich sat untouched on the blanket by the cooler."
|
|
10
|
+
]
|
|
11
|
+
claims [
|
|
12
|
+
claim id "c1" status supported dimension character subject "Mara" standard rl-1 text "Mara cares more about the tide pool than the picnic." cites ["e1" "e3" "e4"] {},
|
|
13
|
+
claim id "c2" status distractor error-type misreads-detail plausibility 0.9 targets ["q1"] text "Mara is angry at her brother for calling her." rationale "Her silence is absorption, not anger." cites ["e2"] {},
|
|
14
|
+
claim id "c3" status distractor error-type erroneous-inference plausibility 0.6 targets ["q1"] text "Mara does not like being outdoors at the beach." rationale "Contradicted by her smile at the crab." cites ["e6"] {},
|
|
15
|
+
claim id "c4" status distractor error-type faulty-reasoning plausibility 0.6 targets ["q1"] text "Mara is afraid of her own family at the beach." rationale "Her quiet whisper is treated as fear without support." cites ["e5"] {},
|
|
16
|
+
claim id "c5" status distractor error-type misreads-detail plausibility 0.5 targets ["q1"] text "Mara is bored by the quiet water of the tide pool." rationale "Her stillness shows focus, not boredom." cites ["e7"] {},
|
|
17
|
+
claim id "c6" status distractor error-type erroneous-inference plausibility 0.5 targets ["q1"] text "Mara wants to leave the beach and go home." rationale "Nothing shows a wish to leave; she asks for more time." cites ["e8"] {}
|
|
18
|
+
]
|
|
19
|
+
evidence [
|
|
20
|
+
source id "e1" line 1 status directly-supports supports ["c1"] quote "Mara crouched at the edge of the tide pool, ignoring the picnic behind her." {},
|
|
21
|
+
source id "e3" line 3 status directly-supports supports ["c1"] quote "A tiny crab scuttled under a rock, and Mara smiled for the first time all day." {},
|
|
22
|
+
source id "e4" line 4 status directly-supports supports ["c1"] quote "She traced the cold water as if the pool were the only thing that mattered." {},
|
|
23
|
+
source id "e2" line 2 status supports-wrong-claim supports ["c1" "c2"] quote "Her brother called twice, but she did not turn around." rationale "Looks like it supports the main inference but really backs the anger misreading." {},
|
|
24
|
+
source id "e5" line 5 status supports-wrong-claim supports ["c4"] quote "Five more minutes, she whispered, though no one was listening." rationale "Backs the fear misreading, not the correct inference." {},
|
|
25
|
+
source id "e6" line 6 status irrelevant supports [] quote "Behind her, paper plates rustled and her mother laughed." {},
|
|
26
|
+
source id "e7" line 7 status irrelevant supports [] quote "The waves pushed a ribbon of seaweed against her fingers." {},
|
|
27
|
+
source id "e8" line 8 status irrelevant supports [] quote "Her sandwich sat untouched on the blanket by the cooler." {}
|
|
28
|
+
]
|
|
29
|
+
outcomes [ outcome id "q1" type ebsr task-model tm1 dimension character subject "Mara" standard rl-1 focus "c1" stem "Which of these inferences about Mara is supported by the passage?" stem-b "Which sentence(s) from the passage best support your answer in Part A?" {} ]
|
|
30
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From the same tide-pool story, author a c1-t4 Task Model 2 (Hot Text) item: Part A is the best statement about what Mara cares about (an inference), and Part B highlights the sentences that support it. Dimension character, standard rl-1.",
|
|
3
|
+
"expect": { "target": "c1-t4", "taskModel": "tm2", "itemType": "hot-text", "dimension": "character", "standard": "rl-1" }
|
|
4
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
target c1-t4 passage "The Tide Pool" type literary lines [
|
|
2
|
+
"Mara crouched at the edge of the tide pool, ignoring the picnic behind her."
|
|
3
|
+
"Her brother called twice, but she did not turn around."
|
|
4
|
+
"A tiny crab scuttled under a rock, and Mara smiled for the first time all day."
|
|
5
|
+
"She traced the cold water as if the pool were the only thing that mattered."
|
|
6
|
+
"Five more minutes, she whispered, though no one was listening."
|
|
7
|
+
"Behind her, paper plates rustled and her mother laughed."
|
|
8
|
+
"The waves pushed a ribbon of seaweed against her fingers."
|
|
9
|
+
"Her sandwich sat untouched on the blanket by the cooler."
|
|
10
|
+
]
|
|
11
|
+
claims [
|
|
12
|
+
claim id "c1" status supported dimension character subject "Mara" standard rl-1 text "Mara cares more about the tide pool than the picnic." cites ["e1" "e3" "e4"] {},
|
|
13
|
+
claim id "c2" status distractor error-type misreads-detail plausibility 0.9 targets ["q1"] text "Mara is angry at her brother for calling her." rationale "Her silence is absorption, not anger." cites ["e2"] {},
|
|
14
|
+
claim id "c3" status distractor error-type erroneous-inference plausibility 0.6 targets ["q1"] text "Mara does not like being outdoors at the beach." rationale "Contradicted by her smile at the crab." cites ["e6"] {},
|
|
15
|
+
claim id "c4" status distractor error-type faulty-reasoning plausibility 0.6 targets ["q1"] text "Mara is afraid of her own family at the beach." rationale "Her quiet whisper is treated as fear without support." cites ["e5"] {},
|
|
16
|
+
claim id "c5" status distractor error-type misreads-detail plausibility 0.5 targets ["q1"] text "Mara is bored by the quiet water of the tide pool." rationale "Her stillness shows focus, not boredom." cites ["e7"] {},
|
|
17
|
+
claim id "c6" status distractor error-type erroneous-inference plausibility 0.5 targets ["q1"] text "Mara wants to leave the beach and go home." rationale "Nothing shows a wish to leave; she asks for more time." cites ["e8"] {}
|
|
18
|
+
]
|
|
19
|
+
evidence [
|
|
20
|
+
source id "e1" line 1 status directly-supports supports ["c1"] quote "Mara crouched at the edge of the tide pool, ignoring the picnic behind her." {},
|
|
21
|
+
source id "e3" line 3 status directly-supports supports ["c1"] quote "A tiny crab scuttled under a rock, and Mara smiled for the first time all day." {},
|
|
22
|
+
source id "e4" line 4 status directly-supports supports ["c1"] quote "She traced the cold water as if the pool were the only thing that mattered." {},
|
|
23
|
+
source id "e2" line 2 status supports-wrong-claim supports ["c1" "c2"] quote "Her brother called twice, but she did not turn around." rationale "Looks like it supports the main inference but really backs the anger misreading." {},
|
|
24
|
+
source id "e5" line 5 status supports-wrong-claim supports ["c4"] quote "Five more minutes, she whispered, though no one was listening." rationale "Backs the fear misreading, not the correct inference." {},
|
|
25
|
+
source id "e6" line 6 status irrelevant supports [] quote "Behind her, paper plates rustled and her mother laughed." {},
|
|
26
|
+
source id "e7" line 7 status irrelevant supports [] quote "The waves pushed a ribbon of seaweed against her fingers." {},
|
|
27
|
+
source id "e8" line 8 status irrelevant supports [] quote "Her sandwich sat untouched on the blanket by the cooler." {}
|
|
28
|
+
]
|
|
29
|
+
outcomes [ outcome id "q1" type hot-text task-model tm2 dimension character subject "Mara" standard rl-1 focus "c1" stem "Click on the statement that best provides an inference about Mara that is supported by the passage." {} ]
|
|
30
|
+
{}..
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
{
|
|
2
|
+
"prompt": "From the same tide-pool story, author a c1-t4 Task Model 3 (Short Text) constructed-response item asking what inference can be made about Mara, explained with key details from the passage. Dimension character, standard rl-1.",
|
|
3
|
+
"expect": { "target": "c1-t4", "taskModel": "tm3", "itemType": "short-text", "dimension": "character", "standard": "rl-1" }
|
|
4
|
+
}
|