Unit 3 course build — running review notes (accumulated during spec production)
Items for the chemistry-review pass and/or James's judgment, plus operator decisions made under standing rulings (logged here for visibility). Appended as sequences land; resolved items get struck through with the resolution.
Operator decisions under standing rulings (James may veto)
- R unit notation normalized to the AP equation sheet's form (2026-08-06, from the S10
author's flag): the sheet prints
0.08206 L·atm·mol⁻¹·K⁻¹(verified in the CED appendix), the PSM-084 seed already used that form, and my contract had the other (L·atm/(mol·K), from the register statement's authoring metadata). Under the AP-spec-bias directive I normalized student-visible text to the sheet's form: S10 lessons edited (5 instances), contract rule 13 updated, validator now warns on the slash form. Register statement left unedited (authoring metadata, not student-visible). - R deliberately omitted from PSM-085 two-state nq stems (S10 author's call, accepted): R cancels in every two-state problem; supplying its value would bait a misuse path. The contract's "supplied in stems that need it" reads correctly as not-needed here.
- ε (molar absorptivity) unit form: S19 brief says L/(mol·cm). The AP sheet does not list ε. For consistency with the R decision, sequence S19 should render it L·mol⁻¹·cm⁻¹; sweep at S19 landing. (Minor; flag to James only if he cares about the slash form generally.)
Per-sequence parked judgments
U3-S12 (author's report, 2026-08-06)
- "condensation" pre-use before its PSM-108 glossary entry — PSM-092's binding register statement itself uses the word with an inline gloss ("about to become a liquid"), and the spec follows explain-then-label. Operator take: register wording governs; acceptable. Blind reviewers may flag it; adjudicate as register-sanctioned.
- One forward-pointing teaching line in PSM-092 ("that climb has a different cause, taken up in the next lesson") — added so students don't misread the dip-then-rise figure's unexplained rise (the figure family has no dip-only shape). Operator take: the line earns its place (prevents a misreading); meta-reference to lesson order is mild. James may prefer it cut.
- PSM-094 sibling items share reasoning (deviates-most vs follows-most-closely): stems and options don't leak each other's answers, but each item's feedback names the other's conditions. Operator take: teach-then-use continuity within one lesson, consistent with the Unit 2 adjudication patterns. Keep.
U3-S11 (author's report, 2026-08-06)
- Component-quantity notation standardized as parentheticals — X(N₂), P(O₂), n(total) — because unicode can't subscript arbitrary gas formulas. Operator take: correct, deterministic, one-name-per-quantity compliant; adopt course-wide for later units (log if it recurs).
- PSM-090 accepts moles + total pressure with mole fraction computed as its own labeled step (reading "forward direction" as mole-fraction→partial-pressure, not banning the X computation its prerequisite owns). Operator take: consistent with the Kelvin-conversion-as-stage precedent. Accepted.
- PSM-086's headache is deliberately left quantitatively unanswered until PSM-090 (the concept lesson answers what a partial pressure IS). Operator take: intended sequence arc.
- PSM-088 vs PSM-091 operational overlap (both sum partial pressures) — split by complexity: 088 = direct statement applications, 091 = calculation routines. Register-inherent; noted for the blind-review duplicate-stem sweep.
U3-S17 (author's report + operator figure follow-up, 2026-08-06)
- Two figure-family gaps closed by the operator (figlib_u3_extra.py, tested):
photonbeam(PSM-116's TODO — dim vs dense packet streams, identical packet size) andpluckedstring(PSM-118's previously imageless guitar-string headache opener, per the concrete-opening-image rule). Both patched into U3-S17.json; 0 TODO figures remain in the build. - PSM-117 keeps the "infra = below red / ultra = beyond violet" name mnemonic — qualitative and boundary-free, but it implies within-visible ordering (red lowest-frequency visible), a hair beyond the strict four-region ranking. Operator take: standard, harmless, keep; James may cut.
- PSM-115 defines frequency as a counting operation with no inverse-λ claim (that's PSM-123/S18) — deliberate forward-leak discipline, noted so reviewers don't flag the absence.
U3-S09 (author's report, 2026-08-06)
- The Celsius-doubling trap appears in both PSM-076 and PSM-078 checks (20→40 °C balloon; 27→54 °C can) — deliberately parallel: it is THE misconception for both Kelvin-proportion atoms. Operator take: keep; watch the duplicate-stem sweep and blind review for fatigue flags.
- PSM-082's extrapolation honesty line ("real measurements exist only where the sample is still a gas") avoids "condense" (PSM-108 vocabulary). Operator take: correct discipline; included in James's early risk-sequence review anyway.
- PSM-081's fourth item tests which variables must be held constant — from the atom statement's own parenthetical; the only item of that kind. Operator take: statement-backed, keep.
- PSM-077 rigid-container renders as a locked piston (equal volumeFrac panels + prose "piston locked in place") — the piston family has no rigid-flask variant. Operator take: acceptable; add a flask render only if James flags it.
U3-S18 (author's report, 2026-08-06)
- Scientific-notation numeric entry: exponent folded into the unit label everywhere (key "5.00", unit "× 10¹⁴ s⁻¹") — no MCQ fallback needed. Known blind spot, mitigated: a forgot-nm→m error produces the same significand, so it can't be a wrong-map key; the nm→m conversion is instead an explicit labeled scaffold step in every worked example and reveal (Kelvin precedent), and a significand-shift wrong key covers exponent-box mismatches.
- PSM-124 check asks for the fixed value of λ × ν (recall of c = 3.00 × 10⁸) — the atom statement names the value, but the AP sheet supplies constants. Operator take: borderline against the constants-supplied convention; James to rule (drop or keep).
- PSM-131 identifies transitions with the region always SUPPLIED in the stem (no memorized boundaries) — correct reading of the exclusion.
- PSM-126's sunburn headache anchored on an emspectrum figure (IR + UV highlighted, frequency annotation deliberately, not energy, to avoid pre-answering). Operator take: good compromise; no sunscreen-scene family needed.
U3-S08 (author's report, 2026-08-06) — RISK sequence, James early review
- mbcurve peak speeds stay on the seed's nominal scale (N₂ at 300 K anchored to 400 m/s, everything else exact √(T-ratio)/√(mass-ratio) scaled: 600 K → 566; He → 1059; Ar → 335) — internally consistent, never asserted as measured data (the pilot's own precedent). Keep.
- PSM-071/072 flaw MCQs: the correct option DESCRIBES the drawn error ("The 600 K curve peaks at a lower speed…") with required-feature distractors — the PSM-034 evaluation pattern applied to the new graph modality. FOR JAMES'S EARLY LOOK: does this option style read cleanly against the rendered flaw figures?
- PSM-068's teaching figure: piston at doubled temperature, volume unchanged (prose stays silent on pressure/volume; S09 owns that). A sharp eye may ask why the piston didn't move. Operator take: acceptable; swap to a statesbox variant only if James flags it.
- PSM-065 carries the contract-minimum 2 checks — the atom is genuinely thin (mass-only comparison at fixed speed); a third item was padding. Accepted.
- PSM-064–066 are temperature-free by validator design ("kelvin"/"273" banned before PSM-067), so KE-vs-speed changes have no heating story until 068 pays it off. Accepted as the register's own sequencing.
U3-S19 (author's report, 2026-08-06) — RISK sequence, James early review
- "beer-lambert" forward-term warnings RESOLVED operator-side: the validator battery keyed the name to PSM-140; the register's PSM-136 atom defines the law by name. Battery split (beer-lambert/beer's law → PSM-136; calibration/standard solution → PSM-140); warnings gone.
- PSM-140 boundary item's key is the strictly longest option ("It cannot be determined from this line" vs three numeric distractors) — structural to the no-extrapolation item James's brief demanded. Flagged for the length-cue sweep and blind review; operator take: keep.
- "cuvette" taught explain-then-label as course vocabulary (not in the register glossary; 134/140 need a container name). Operator take: fine — genuine disciplinary term.
- A = log(I₀/I) kept out entirely (nowhere in the register). Correct.
- PSM-139 sensitivity comparison uses datatables (no A-vs-λ spectrum family exists; two beerplots with different slope labels would render identical geometry — dishonest). Operator take: right call; consider an absorption-spectrum family only if gates need it.
- Real absorbers with literature ε throughout (MnO₄⁻ 2400, Cu²⁺ 12, Co²⁺ 4.8 L·mol⁻¹·cm⁻¹), Beer-consistent plotted values. Note ε unit form: S19 shipped "L/(mol·cm)" in some labels — normalize to L·mol⁻¹·cm⁻¹ during item hygiene (same AP-sheet-style rationale as R).
U3-S05 (author's report + operator figure follow-up, 2026-08-06)
- TODO figure closed operator-side: new
methanolpairrenderer (figlib_u3_extra.py, tested) draws the register's own PSM-034 flaw — a dash from a C–H hydrogen of one CH₃OH to the neighbor's O. Patched into the item; 0 TODO figures remain. - PSM-033's production items use two-molecule drawings where the register example says "several H₂O molecules" — the author added a generalizing teaching line ("with several molecules the convention simply repeats"). FOR JAMES: is a pair sufficient for the drawing behaviour, or should a 3-molecule water-chain renderer back a bigger production item?
- Draw item 1 mirrors the taught H₂O pair (rule 6 allows first-check mirroring; the fresh transfers are NH₃→H₂O and the CH₃OH item). Operator take: within the stated preference; blind review will see it.
U3-S13 (author's report, 2026-08-06)
- M reserved exclusively for molarity within the sequence (molar-mass conversions written in words + values, never symbolic m/M) — resolves the M-vs-M collision under one-name-per-quantity. Operator take: right call; adopt as the course convention wherever molarity and molar mass share a lesson (Units 4/8 will hit this).
- Avogadro's number as 6.022 × 10²³ mol⁻¹ matching Unit 1's shipped AST-006 (register examples showed 6.02). Operator take: course precedent governs; correct.
- PSM-097's "the substance present in the larger amount is the one doing the dissolving" — scoped to the shown examples (load-bearing for the brass/sterling solvent items), not asserted universally. FOR JAMES: comfortable with that line as scoped?
- KNO₃ molar mass 101.11 g/mol from AP periodic-table values (vs IUPAC-2021 101.10) — expression-selection MCQ only, no numeric key depends on it. AP-spec bias supports the choice.
- PSM-096's homogeneity evidence uses an invented-but-realistic drying-mass dataset (0.2/1.6 g vs 0.35/0.35 g dried spoonfuls) as a measurable "properties same everywhere" proxy. FOR JAMES: the real-data rule reads on measured property values; this is a constructed experimental scenario. Blind review will look at it; flag if you want a literature dataset instead.
U3-S07 (author's report, 2026-08-06)
- PSM-062/057 option styles flagged for transparency: "It does not match its label:
" and "Yes/No — " options — the "reason" IS the tested behaviour per the register statements (identify the specific flaw / the basis), following the S08 PSM-071/072 sibling pattern. Operator take: not the banned verdict+reason bundling; accepted by design. James sees both patterns in his S08 early look. - Amorphous solids drawn with the statesbox liquid layout (standard depiction; no amorphous param exists), turned into teaching: two identical snapshots show arrangement alone can't distinguish liquid from amorphous solid — motion does. Operator take: elegant; keep.
- PSM-058 honesty line that water's solid-larger-than-liquid direction is unusual (one line beyond the register example so the ice/water table doesn't imply solids are always larger). FOR JAMES: minor scope addition, flag if unwanted.
- Benzene molar-volume estimate item (real values: solid ≈77, liquid ≈89 cm³/mol; key "about 80 cm³") chosen over ethanol for honest similarity. Real data verified.
U3-S01 (author's report + operator figure follow-up, 2026-08-06)
- PSM-007 TODO closed operator-side: new
contactpanelsrenderer (elongated capsules in full-length contact vs compact spheres touching at a point). PSM-004 ecloud captions also shortened after the geometry sweep flagged overlap. - PSM-011 uses real halogen data without the term "boiling point" ("Boils at (°C)" column; formal definition stays at PSM-029). Operator take: exactly the pre-definitional discipline the brief asked for.
- PSM-006 benzene pi-polarizability kept strictly qualitative with no named comparison molecule — the author checked that cyclohexane's measured polarizability is nearly equal, so naming it would have been dishonest. Register scope kept verbatim. Good catch; keep.
- PSM-011's informal evidence bridge ("the more strongly molecules attract, the higher the temperature it stays liquid up to") — asserts correlation only; PSM-030/031 mechanize it later. FOR JAMES: brushes the what/why boundary; flag if you want it cut.
U3-S02 (author's report, 2026-08-06)
- PSM-016 figure composed from dipole (diatomic HCl) + ecloud induction pair — the imfpair family has no dipole-induced-dipole type. FOR JAMES: fine as composed, or want a dedicated imfpair type added? (Operator note: ecloud captions were shortened post-sweep.)
- PSM-013's "the preferred orientation" — the atom statement's own term, used as a plain noun phrase. Operator take: statement-sanctioned, not a coinage. Keep.
- PSM-018 (article modality) carries one ecloud figure — the register example IS cloud-size reasoning, so the figure carries load. Operator take: modality names the default surface, not a figure ban. Keep.
U3-S03 (author's report + operator figure follow-up, 2026-08-06)
- PSM-025 TODO closed operator-side: new
foldedchainrenderer (bead chain folded so two stretches run parallel, dashed intramolecular contacts). - PSM-023/024 rank from structural evidence only (formulas + electron counts + charges; boiling points verified privately, never on screen) — the brief's anti-inversion rule held.
- H₂S no-H-bond and CH₃OCH₃+H₂O yes-H-bond items — strict N/O/F rule applied correctly; the two items most likely to draw blind-review pushback; adjudicate as register-correct.
- PSM-024's Mg²⁺ vs Na⁺ item leans on charge only (author dropped a "similar size" clause because radii differ 72 vs 102 pm; both Coulomb factors point the same way). Operator take: honest and key-safe. Keep.
- Gate U3-G1 headroom preserved — the author listed consumed species; fresh species (CH₃CH₂OH, CHCl₃, SO₂, Br₂/I₂, Li⁺/Ca²⁺ with water, O₂/He) remain for gate items.
U3-S04 (author's report + operator figure follow-up, 2026-08-06)
- PSM-028 TODO closed operator-side: new
vaporflaskrenderer (sealed container, liquid + vapor dots, escape/return arrows, gauge) — will also serve S06's PSM-037 (vaporDots 0, gauge ≈0 atm) if its author needs it. - Vapor-pressure balance taught as pure rate bookkeeping (no "equilibrium", no speed-distribution language — both banned here); temperature-dependence of VP supplied as DATA only (real water values 0.03→1.00 atm) with no particle-energy mechanism (S08's). Operator take: exactly the register's design; keep.
- PSM-032 teaches with pentane/neopentane (melting order inverts boiling order; consumes PSM-007's contact-area recap) and holds the register's benzene/hexane case for the fresh-data check. Real data throughout, verified list in the author's report. Keep.
- Deliberate retrieval overlap: PSM-027's core check (collisions produce pressure) shares its answer with a PSM-063 recap check in S08 — the register wires 063 to consume 027. Adjudicate as teach-then-use continuity if blind review flags it.
U3-S06 (author's report, 2026-08-06)
- PSM-037's escape argument built WITHOUT MECH-IMF-ESCAPE (its "intermolecular attractions" wording is wrong for ions) — full-ionic-charge wording from the atom statement + MECH-COULOMB-CHARGE verbatim at the full-vs-partial contrast. Correct per the brief; the register's lexicon note assigning MECH-IMF-ESCAPE to PSM-037 should be read as the escape concept, not the verbatim sentence — worth one register revisionLog line at hygiene time.
- Graphite layers rendered as one covalentnetwork sheet with stacking/sliding in honest prose (no two-layer-sliding family exists). FOR JAMES: acceptable, or want a layered-graphite render added for the gate?
- PSM-054 excludes metals from the class-first ranking rule, stated honestly (Hg vs W spread) — matches the register example's classes. Keep.
- PSM-035 recap wiring: lattice (CSP-014 rep) + PSM-028 vapor-pressure recap shown; CSP-032's melting-evidence line not separately recapped there (CSP-032A verbatim recap lands in 036). FOR JAMES: if the unitHandoff wiring is meant literally, one line adds it.
- Data hedges ("near 1420 °C", "above 1600 °C") for source-variant values; exact literature values elsewhere. Good practice; keep.
- PSM-044 check 1 uses paired coordinate claims ("It is a covalent network solid, and it is soft") — no "because" structure; not verdict+reason. Accepted.
U3-S14 (author's report + operator figure follow-up, 2026-08-06)
- Relative-concentration model answer closed operator-side: new
solutionboxesrenderer (1–2 boxes, explicit per-box ion counts, no-touching guaranteed) — my brief had wrongly claimed the dissolution family had count params; the author correctly refused to invent params and used the TODO hatch. Patched in; counts behaviour is also exercised by an MCQ and a text-stem evaluation as backstops. - Second draw item asks for labeled ion circles only (waters "fill the rest of each box") — full water shells around 8+ ions would be laborious to draw and unrenderable as a model. Operator take: right trade; orientation is fully exercised by draw item 1.
- Distractor feedback leans on Unit 1 ion radii (Cl⁻ 181 vs K⁺ 138 pm; Br⁻ 196 vs Na⁺ 102 pm — verified real). FOR JAMES: comfortable resting feedback on prior-unit content?
- PSM-103's flaw-category options ("Counts — the box holds as many ions as…") — category + observed feature, not verdict+because. Accepted; same family as S07's flagged style.
U3-S15 (author's report, 2026-08-06)
- Cross-file catch: S12 uses "condensation/condense" ×7 while the glossary assigns the term to PSM-108. Adjudicated: PSM-092's own register statement uses "condensation" with an inline gloss (see S12 note 1) — register wording governs; no validator entry added because a hard ban would false-positive register-sanctioned use. Blind review briefed via this note.
- PSM-106 defensible-distractor repair (two components moving together partway up; opposite- phase-attraction distractor is cleanly wrong). Good 4.1 discipline.
- Hexane/water capstone avoids layering entirely (hexane genuinely floats — any layering distractor would be defensible). Operator take: correct honesty-driven design.
- Operator renderer fix: distillation "vapor forms here" highlight label clipped the left viewBox edge — repositioned in the renderer; sweep clean.
U3-S16 (author's report, 2026-08-06)
- PSM-111 headache is a shake-test observation datatable (no layered-beaker family exists; the table matches the prose exactly). Operator take: satisfies the concrete-opening rule; upgrade point if a layered-liquids family is ever added.
- Br₂-in-water honesty ("only a little dissolves" — real ≈3 g/100 mL, not insoluble); glucose swapped for citric acid to avoid deadening by S13's table. Real-data discipline held.
- MECH-LIKE-DISSOLVES recurrence: full verbatim clause in PSM-112's recap of PSM-111; PSM-113/114 recaps consume other atoms instead. Register-note-consistent.
Gates U3-G3/G4 (author's report, 2026-08-06)
- One verdict+reason item in the whole pair (PSM-095, F₂ vs Cl₂ Yes/No-because) — the sanctioned AP-mimicry home, cleanly wrong reason, flagged per the ruling. Keep.
- Pilot conversions: PSM-070 gate item 3-of-3 (spread/tail/temperature — chosen over item 1, whose lettered-guide mechanism doesn't exist in the course mbcurve schema and whose guides would render 54 m/s apart); PSM-084 gate item 2-of-3 (richest error bundle). Verbatim numbers and misconception maps.
- PSM-061 gate item is a single 3-panel candidate with exactly one flawed box (not four full models — unrenderable) — tests spacing/ordering/contact directly. Operator take: sound; matches the S07 phase-mismatch technique.
- PSM-072 gate item uses the same flaw-spotting pattern as its lesson check (fresh Ne/Kr, real vₚ 497/244 m/s). FOR JAMES (with the S08 early look): want more distance, e.g. a label-the-curves variant?
- PSM-089 cold item computes 0.15 × 4.00 atm at the concept atom — licensed by the register's own bracketed example. Accepted.
Gates U3-G1/G2 (author's report, 2026-08-06)
- One verdict+reason item (PSM-053 classification capstone — the statement itself demands class + cited interaction; one-item-per-atom forced the bundling; wrong classes cleanly wrong). Sanctioned use; flagged per the ruling. Keep.
- CHCl₃+acetone deliberately avoided for the PSM-022 H-bond trap (real C–H hydrogen bonding exists there — the azeotrope; a reviewer could defend the trap). SO₂+acetone instead. Superb defensibility catch; note for future units.
- PSM-030 gate item inverts direction (VP data → infer IMF strength) to avoid re-testing PSM-023's ranking. Real data (diethyl ether 0.71 atm, 1-propanol 0.03 atm at 25 °C). Keep.
- PSM-015 uses a Li⁺-among-chloroform thought experiment (mirrors the lesson's own device; not solubility-honest as a real scenario). FOR JAMES: fine as a thought experiment, or want a solubility-honest species pair?
- Si stem-labeled "a covalent network solid" in the PSM-054 ranking (lesson precedent: Ge was labeled). FOR JAMES: should students carry Si's class unprompted in a gate?
- Electron counts in stems for figure-less LDF items — matches landed S01/S03 convention (the values-in-figure rule applies where a figure exists). Accepted.
Gates U3-G5/G6 (author's report, 2026-08-06)
- TWO same-format verdict+reason PSM-053 items now exist (G2 metallic solid Q; G6 ionic solid J — the author caught and deduped the species/labels mid-merge). FOR JAMES: defensible as repeated AP-format practice; convert one to pure verdict if preferred. Total verdict+reason across all gates: 3 (G2, G4, G6), all flagged, all capstone/AP-mimicry homes.
- G6 PSM-131 options pair computed energy WITH transition type — compound answers matching the atom's own two-part behaviour; wrong pairs from named error paths. Operator take: not verdict+reason; the pairing IS the behaviour. Accepted.
- PSM-102 gate item uses the one untested count-flaw variant (doubled counts for tripled molarity, solutionboxes). Good coverage discipline.
- G5 PSM-110 inverts to reverse-phase chromatography (nonpolar beads, water mobile) — the hardest G5 item; statement supplies both polarities, so legitimate transfer. Keep; watch in blind review.
- G5+G6 both sample PSM-100 (parallel-form formula-unit items, NaNO₃/MgSO₄; scientific- notation MCQ options). Register-driven duplication (the gate table lists PSM-100 in both). Accepted.
- One species reuse across gates: C₂H₅OH in G6's PSM-023 trio (propane/dimethyl ether/ ethanol — the classic 26-electron set) and G2's PSM-054 ranking. Different atoms and comparisons. Accepted; noted for adjudication.
2026-08-10 external Safari review (sol5.6) — disposition of all 23 findings
Renderer layer, FIXED by operator (all guarded/tested): #1 document shell + charset (build now asserts it), #5 role="status" + focus movement, #6 lang/main landmarks, #7 --faint contrast retuned ≥4.5:1 both themes (computed 5.26/4.63 light, 5.97/5.24 dark), #22 "Start checkpoint" + question count pre-entry, #23 .fresh scroll-margin clears the fixed dock. Engine, FIXED by operator: #2 sig-fig retry tier (from key format; rule 6.4 semantics) and
3 scientific-notation parsing (e-notation, ×10^n, unicode superscripts) — the reviewer's three
demonstrated cases are in the engine test battery. Chemistry/wording, FIXED at spec layer (repair agent, itemized): #8 PSM-055 long-range-order wording, #9 PSM-061 scoped to crystalline, #10 PSM-063 one elastic-collision idea line (new-ATOM question parked below), #11 PSM-067 "exactly 273" → convention + 273.15, #12 PSM-037 neutral- vapor wording, #13 PSM-039 AP-classification scope, #14 PSM-054 class-first hedged as tendency,
15 PSM-104 scoped to ordinary filter paper, #16 PSM-113 ion-dipole necessary-not-sufficient,
17 PSM-119 microwave-oven claim fixed, #18 PSM-130 scoped to the specified transition,
19 PSM-136/138 Beer-Lambert calibration-range scope + no-extrapolation brought forward,
20 PSM-068/076/078 length-cue rebalance, #21 PSM-140 parallel full-sentence options (was
parked; now fixed — two independent reviewers flagged it).
FOR JAMES (parked from this review): 1. Stem-given precision convention (#4): operator default = givens are exact by convention (contract line added); alternative = rewrite givens as 2.00 × 10² K style. Your call. 2. Elastic collisions as a dedicated atom (#10): the CED's KMT EK doesn't name elasticity, so the build adds one taught idea line in PSM-063 rather than a register atom. If you want it assessable, it becomes a register change (new atom + item). 3. Reviewer's overall verdicts worth reading directly: progression praised ("strong application of the per-variable rule"), MCQ feedback called a major strength; the fragmentation note (140 atoms feels long — sequence headings/checkpoints carry the load) is a design observation, not a defect.
2026-09-07 exam integration — FRQ practice pages (author's report + operator actions)
U3-P1 (2021 Q2(b) SiH₄/SiO₂ justification, after S06), U3-P2 (2023 Q5(b) hydration drawing,
after S14), U3-P3 (2021 Q7 complete 4-pt short, timed, after S19). All rubrics SG-faithful;
verified end-to-end (validator, build, sweep, click-through).
1. Validator gap CLOSED operator-side (author's catch): frq parts[].prompt, source, and
model lines now join the swept student-visible fields.
2. U3-P2's model drawing rides a post-frq idea step (the frq schema's model is text-only) —
sequential flow means it appears only after self-scoring. Operator take: good pattern; adopt
for future drawing FRQs rather than extending the frq schema yet.
3. Real-question adaptations disclosed in source: 2023 Q5(b)'s water-legend image replaced
with words; 2021 Q7 gains R + molar mass in-stem (the real exam supplies both via reference
sheets we don't have). Operator take: right calls; contract rule 13 demanded the latter.
4. Candidate-response MCQs put the complete answer longest (U3-P1; also the module's lesson
3) — inherent to "which response earns the point" items. FOR JAMES: exempt this item class
from the length-cue rule, or require padding the vague distractors?
5. U3-P1 feedback leans on the cross-year error catalog (2021 has no chief-reader report) —
marked as the playbook's inference class. Accepted.
6. Collision contingency: the test author DID pick 2021 Q7 — swap executed: U3-P3 reworked
onto 2024 Q7(a–c) (delegated back to the practice author, 2026-09-07).
2026-09-07 exam integration — Unit 3 test U3-T1 (author's report)
18 MCQs (blueprint buckets exactly 4/3/3/4/2/2, one item per atom, keys 5/4/5/4 max-run 2, fresh species verified by inventory sweep) + real FRQs: short = 2021 Q7 (unit-3-pure; needs only Unit-1 molar mass), long = 2021 Q3 (7 of 10 points squarely Unit 3; registry proves NO fully unit-3-pure long exists in 2021–2026). 1. 2021 Q3(a) is one point of Unit 4 content (net ionic equation) inside the Unit 3 test — inherent to using the complete real question. FOR JAMES: (a) accept the 1-point forward reference as-is; (b) accept with a one-line "you'll learn this in Unit 4" note before the question (small fidelity cost); (c) swap the long FRQ to an authored-to-archetype item (loses the real-question requirement). Operator lean: (b). 2. Q3(d)'s SG route is M₁V₁ = M₂V₂ — validator-banned excluded content; model + rubric written via the moles route with the same accepted value (25.0 mL), question text verbatim. Operator take: faithful to the point condition; right call. (Same technique available to future units.) 3. S05 and S14 carry no test MCQ (draw items banned in tests; their skills are production-assessed in lessons/practice, and PSM-102's capstone sits in gate G5 as model-selection). Accepted — note in the evidence report. 4. Pentane reappears (S01 contact-area lesson → test vapor-pressure item, new scenario and values). Accepted; species-name reuse only.
2026-09-03 James finding (from the sample gallery): floating flaw dash
James spotted that the imfpair "attraction-within-molecule" flaw dash floated in space instead
of visibly shadowing the O–H bond — the deliberate flaw read as a stray line, undermining the
"attraction drawn within one molecule" identification the items depend on. Root cause: the
_intra_dash helper offset the dash 16px and ran it atom-center to atom-center. Fixed in the
renderer (tight 7px offset, trimmed circle-edge to circle-edge); affects the two S05 items, one
S02 item, and the sample gallery; tests/sweep/build re-verified. VERIFICATION-GAP LESSON: the
browser geometry sweep checks text overlap/clipping only — semantic placement of LINES (does
this dash touch what it should?) has no automated check and no blind-review exposure (reviewers
see alt text). Human eyes on the sample galleries are currently the only net for this class;
worth a per-family visual pass line in future units' figure-wave checklists.