Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 15 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ stops startup instead of leaving a healthy-looking partial schema, and
application code must not compensate for a missing table.

Period leftover pairs (ADR 0017 / 0018 / 0048 / 0049 / 0119 / 0158 / 0162 /
0163 / 0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288) are computed in `lineageweave/leftover_pairs.py` from the
0163 / 0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289) are computed in `lineageweave/leftover_pairs.py` from the
residual after a real GRM/GPCM score, never invented. Distances are
Euclidean on the two-dimensional Gabriel leftover map; missing cells stay
out of the factorization. Closest and farthest post–criterion pairs
Expand All @@ -294,7 +294,12 @@ buttons; omit the plot when coordinates are missing; click a post
marker to open that post. ADR 0269 captions those leftover-map axes
with persisted leftover-map axis share `σ_k² / Σ_j σ_j²` when finite,
including rank-0 zero-share axes; a missing or non-finite share omits
that axis badge and keeps the existing leftover-map axis text. ADR 0270
that axis badge and keeps the existing leftover-map axis text. ADR 0289
captions those leftover-map axes with persisted leftover-map singular
values `σ_k` when finite and non-negative, including rank-0 zero
singular values; a missing, non-finite, or negative singular value omits
that `σ` badge independently of leftover-map axis share and does not
invent `σ_k` from leftover-map axis share. ADR 0270
ticks leftover-map axes at the origin and at each unique finite
persisted `ξ` / `ζ` coordinate so the pair-row badge matches the
plot; rank-0 unused axes name only `0` and do not invent drawing-scale
Expand Down Expand Up @@ -385,6 +390,11 @@ non-integer payload cannot caption a contradictory `used N of M scored posts`
note; a missing, non-integer, negative-used, non-positive-scored, or
used-greater-than-scored coverage omits that leftover-map coverage note and
does not invent post coverage from plotted marker count.
ADR 0289 captions leftover-map graphic axes with persisted leftover-map
singular values `σ_k` so leftover-map axis share is not read as leftover-map
structure without the Gabriel scale that produced it; a missing, non-finite,
or negative singular value omits that `σ` badge independently of leftover-map
axis share and does not invent `σ_k` from leftover-map axis share.
When `R`, `R̂`, `U`, `x`,
`s`, and `e` are finite, `e + s + x = 1`. When `Y`, `E`, and `R` are
finite, `Y − E = R`. When `R`, `R̂`, and `U` are
Expand All @@ -395,7 +405,9 @@ list so a click opens that post with the leftover criterion current
in Post quality (ADR 0158). Leftover-map axis share (ADR 0148) is Gabriel inertia of
residual SVD axes 1 and 2 and persists to `report_leftover_map_axis`.
Rank-0 residuals emit two zero-share axes; the shares are report-level
and are not a leftover score. Complete-case coverage (ADR 0168) persists to
and are not a leftover score. Leftover-map singular values on the graphic
display (ADR 0289) name persisted `σ_k` on those leftover-map axes when
finite. Complete-case coverage (ADR 0168) persists to
`report_leftover_map_coverage` and captions the pair list and the leftover-map
graphic with how many scored posts entered the map. Pair-list post complete-case
coverage (ADR 0288) fail-closes that pair-list note through leftoverMapCoverageCounts.
Expand Down
8 changes: 5 additions & 3 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -637,14 +637,15 @@ information at the group's mean θ (Lord, 1980 max-info CAT). Rankings
persist to `report_item_information`. After those IRT main effects,
residual SVD leftover pairs on two Gabriel axes (Jeon et al., 2021;
ADR 0017 / 0048 / 0049 / 0119 / 0148 / 0158 / 0162 / 0163 / 0164 / 0168 /
0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288) persist to `report_leftover_pair` with signed residual `R`,
0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289) persist to `report_leftover_pair` with signed residual `R`,
observed `Y`, expected `E[Y|θ, item]`, full leftover-map rank, unexplained
leftover, ADR 0201 reconstruction evidence, ADR 0185 cross-share evidence,
ADR 0233 unexplained leftover share `s`, ADR 0266 explained leftover
share `e`, and ADR 0267 leftover-map coordinates `ξ_{1:2}` / `ζ_{1:2}`.
ADR 0268 draws those persisted coordinates as the leftover-map graphic
display above the pair buttons. ADR 0269 captions leftover-map axes 1
and 2 with persisted leftover-map axis share. ADR 0270 ticks those
and 2 with persisted leftover-map axis share. ADR 0289 captions leftover-map
axes 1 and 2 with persisted leftover-map singular values `σ_k`. ADR 0270 ticks those
leftover-map axes at persisted `ξ` / `ζ` coordinates so the pair-row
badge matches the plot. ADR 0271 captions leftover-map pair segments
with persisted leftover-map distance `d`. ADR 0272 captions leftover-map
Expand All @@ -667,7 +668,8 @@ item coverage. ADR 0285 captions the leftover pair list with persisted leftover-
item complete-case coverage. ADR 0286 captions the leftover pair list with persisted leftover-map
incomplete post coverage. ADR 0287 captions the leftover pair list with persisted leftover-map
incomplete item coverage. ADR 0288 fail-closes leftover-map post complete-case coverage
on the leftover pair list through leftoverMapCoverageCounts. Click a post marker or a pair button
on the leftover pair list through leftoverMapCoverageCounts. ADR 0289 captions leftover-map
graphic axes with persisted leftover-map singular values `σ_k`. Click a post marker or a pair button
opens that post. Those ADRs are the normative mathematical, storage, and
display contracts. Leftover-map axis share
(Gabriel inertia of residual SVD axes 1 and 2; ADR 0148) persists to
Expand Down
28 changes: 28 additions & 0 deletions CHANGELOG.d/2.46.0-leftover-map-plot-singular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## 2.46.0 — Leftover-map singular values on the graphic display

- Caption leftover-map graphic axes with persisted leftover-map singular
values `σ_k` (ADR 0289). After `make seed`, closest and farthest leftover
pairs sit above the member list with the Gabriel biplot of already-named
coordinates, leftover-map singular values when finite, leftover-map axis
share when finite, axis ticks that match `ξ (x, y) ζ (x, y)` on the pair
row, pair segments that match `d` on the pair row, pair segments that
match `R̂` on the pair row, pair segments that match `R̂²/R²` on the pair
row, pair segments that match `U²/R²` on the pair row, pair segments that
match `2R̂U/R²` on the pair row, pair segments that match `U` on the pair
row, pair segments that match `R` on the pair row, pair segments that
match `Y` on the pair row, pair segments that match `E` on the pair row,
pair segments that match leftover-map rank on the pair row, a plot caption
that matches leftover-map complete-case coverage above the pair list, a
plot caption that matches leftover-map item complete-case coverage, a plot
caption that matches leftover-map incomplete post coverage, a plot caption
that matches leftover-map incomplete item coverage, a pair-list note that
matches leftover-map post complete-case coverage, a pair-list note that
matches leftover-map item complete-case coverage, a pair-list note that
matches leftover-map incomplete post coverage, and a pair-list note that
matches leftover-map incomplete item coverage; click a post marker or a
pair button opens that post. A missing, non-finite, or negative singular
value omits that `σ` badge independently of leftover-map axis share.
Rank-0 unused axes still name `σ 0.00`. Do not invent `σ_k` from
leftover-map axis share, leftover-map distance, leftover-map rank, or
plotted coordinates. Never invent a leftover score. Never invent a theta.
No new columns.
28 changes: 28 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,34 @@ All notable changes to this project are documented here. Format follows

### Added

- Period leftover pairs now caption leftover-map graphic axes with persisted
leftover-map singular values `σ_k` (ADR 0289 / v2.46.0). After `make seed`,
closest and farthest leftover pairs sit above the member list with the
Gabriel biplot of already-named coordinates, leftover-map singular values
when finite, leftover-map axis share when finite, axis ticks that match
`ξ (x, y) ζ (x, y)` on the pair row, pair segments that match `d` on
the pair row, pair segments that match `R̂` on the pair row, pair
segments that match `R̂²/R²` on the pair row, pair segments that match
`U²/R²` on the pair row, pair segments that match `2R̂U/R²` on the pair
row, pair segments that match `U` on the pair row, pair segments that
match `R` on the pair row, pair segments that match `Y` on the pair
row, pair segments that match `E` on the pair row, pair segments that
match leftover-map rank on the pair row, a plot caption that matches
leftover-map complete-case coverage above the pair list, a plot caption
that matches leftover-map item complete-case coverage, a plot caption
that matches leftover-map incomplete post coverage, a plot caption that
matches leftover-map incomplete item coverage, a pair-list note that
matches leftover-map post complete-case coverage, a pair-list note that
matches leftover-map item complete-case coverage, a pair-list note that
matches leftover-map incomplete post coverage, and a pair-list note
that matches leftover-map incomplete item coverage; click a post marker
or a pair button opens that post. A missing, non-finite, or negative
singular value omits that `σ` badge independently of leftover-map axis
share. Rank-0 unused axes still name `σ 0.00`. Do not invent `σ_k` from
leftover-map axis share, leftover-map distance, leftover-map rank, or
plotted coordinates. Never invent a leftover score or a theta. No new
columns.

- Period leftover pairs now fail-close leftover-map post complete-case
coverage on the leftover pair list through leftoverMapCoverageCounts
(ADR 0288 / v2.45.0). After `make seed`, closest and farthest leftover
Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ cutoff. Global Ask optional `knowledge_cutoff` uses the same cover

Create/start endpoint rules (ADR 0017 / 0021), tie-vs-miss similarity
(ADR 0026), R&R catalog ids (ADR 0019 / 0027), leftover pairs
(ADR 0048–0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288), occupational construct catalog search
(ADR 0048–0164 / 0182 / 0185 / 0201 / 0233 / 0266 / 0267 / 0268 / 0269 / 0270 / 0271 / 0272 / 0273 / 0274 / 0275 / 0276 / 0277 / 0278 / 0279 / 0280 / 0281 / 0282 / 0283 / 0284 / 0285 / 0286 / 0287 / 0288 / 0289), occupational construct catalog search
(ADR 0257), the text-channel embedding swap and cosine
clamp (ADR 0190), per-edge channel-score persistence (ADR 0195),
token-backed status notices (ADR 0220),
Expand Down
4 changes: 3 additions & 1 deletion docs/adr/0148-leftover-map-axis-share.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
**Decision status:** Accepted
**Date:** 2026-08-24
**Amended by:** [ADR 0269](0269-leftover-map-axis-share-plot.md)
(leftover-map axis share on the graphic display)
(leftover-map axis share on the graphic display);
[ADR 0289](0289-leftover-map-plot-singular.md)
(leftover-map singular values on the graphic display)

## Context

Expand Down
2 changes: 2 additions & 0 deletions docs/adr/0269-leftover-map-axis-share-plot.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

**Decision status:** Accepted
**Date:** 2026-08-28
**Amended by:** [ADR 0289](0289-leftover-map-plot-singular.md)
(leftover-map singular values on the graphic display)

Amends [ADR 0148](0148-leftover-map-axis-share.md) and
[ADR 0268](0268-leftover-map-graphic-display.md). Independent of leftover-map
Expand Down
Loading