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
12 changes: 11 additions & 1 deletion 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 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296 / 0297 / 0298 / 0299 / 0300 / 0301 / 0302 / 0303 / 0304 / 0305 / 0306 / 0307 / 0308 / 0309 / 0310 / 0311 / 0312 / 0313 / 0314 / 0315 / 0316 / 0317 / 0318 / 0319 / 0320 / 0321 / 0322 / 0323 / 0324 / 0325 / 0326) 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 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296 / 0297 / 0298 / 0299 / 0300 / 0301 / 0302 / 0303 / 0304 / 0305 / 0306 / 0307 / 0308 / 0309 / 0310 / 0311 / 0312 / 0313 / 0314 / 0315 / 0316 / 0317 / 0318 / 0319 / 0320 / 0321 / 0322 / 0323 / 0324 / 0325 / 0326 / 0327) 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 Down Expand Up @@ -676,6 +676,13 @@ singular value omit independently. Rank-0 unused axes still name leftover-map
comparison graphic leftover-map axis `σ 0.00`. Do not invent leftover-map
singular values from leftover-map axis share. Do not invent leftover-map axis
share from leftover-map singular values.
ADR 0327 captions leftover-map graphic leftover-map axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapPlotTickAxisBadge returns a usable leftover-map
axis tick caption. Distinct accessible name
`leftover-map axis {axis} tick {value} σ {singular}`. Singular value omits independently
of leftover-map axis share. Leftover-map graphic leftover-map axis ticks never name leftover-map
axis share. Rank-0 unused axes still name leftover-map graphic leftover-map axis tick
`σ 0.00`. Do not invent leftover-map singular values 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 Down Expand Up @@ -789,6 +796,9 @@ Leftover-axis report badge leftover-map singular values independently of leftove
Leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge
(ADR 0326) captions leftover-map comparison graphic leftover-map axes with persisted leftover-map
singular values `σ_k` when leftoverMapComparePlotAxisBadge returns a usable leftover-map axis caption.
Leftover-map graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0327) captions leftover-map graphic leftover-map axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapPlotTickAxisBadge returns a usable leftover-map axis tick caption.
Item complete-case coverage
(ADR 0282) captions the leftover-map graphic with how many scored criteria
entered the map. Item complete-case coverage on the pair list (ADR 0285)
Expand Down
6 changes: 5 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -761,6 +761,9 @@ singular values `σ_k` independently of leftover-map axis share.
ADR 0326 captions leftover-map comparison graphic leftover-map axes with persisted leftover-map
singular values `σ_k` when leftoverMapComparePlotAxisBadge returns a usable leftover-map
axis caption.
ADR 0327 captions leftover-map graphic leftover-map axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapPlotTickAxisBadge returns a usable leftover-map
axis tick caption independently of leftover-map axis share.
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
Expand Down Expand Up @@ -817,7 +820,8 @@ grouping comparison strip (ADR 0323), leftover-map singular values on leftover-m
graphic-display axes (ADR 0324), leftover-map singular values on leftover-axis
report badges independently of leftover-map axis share (ADR 0325), leftover-map
comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge
(ADR 0326);
(ADR 0326), leftover-map graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0327);
`POST .../rebuild` scores every grouping kind (post_admin). `make seed`
folds A-100/B-200 Event Lineage fixtures (and the Riverbend calendar
post) that already have constructed IRT cells into the same shared
Expand Down
24 changes: 24 additions & 0 deletions CHANGELOG.d/2.84.0-leftover-map-plot-tick-axis-badge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## 2.84.0 — Leftover-map singular values on leftover-map graphic leftover-map axis ticks independently of leftover-map axis share

- Caption leftover-map graphic leftover-map axis ticks with persisted leftover-map
singular values `σ_k` through leftoverMapPlotTickAxisBadge independently of leftover-map
axis share (ADR 0327). After `make seed`, leftover-map graphic leftover-map axis
ticks name persisted leftover-map singular values when leftoverMapPlotTickAxisBadge
returns a usable leftover-map axis tick `σ` caption even when leftover-map axis
share is omitted; click a leftover pair opens that post. A missing, non-finite,
or negative singular value omits that `σ` tick caption and keeps
`leftover-map axis {k} tick {value}`. Rank-0 unused axes still name `σ 0.00`.
Leftover-map graphic leftover-map axis ticks stay
`leftover-map axis {k} tick {value} σ {singular}` when `σ_k` is finite so they
stay distinct from leftover-map graphic leftover-map axis
`leftover-map axis {k} σ {value}`, from leftover-axis
`leftover axis {k} σ {value}`, from comparison leftover-axis
`leftover map comparison leftover axis {k} σ {value}`, from comparison graphic
leftover-map axis `leftover map comparison graphic leftover-map axis {k} σ {value}`,
and from comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value}`. Do not invent
`σ_k` from leftover-map axis share. Do not invent leftover-map axis share from
`σ_k`. Leftover-map graphic leftover-map axis ticks never name leftover-map axis
share. This increment does not change leftover-map comparison graphic leftover-map
axis ticks. A finite negative leftover is shown, never clamped. Never invent a
leftover score. Never invent a theta. No new columns.
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,29 @@ All notable changes to this project are documented here. Format follows

### Added

- Period leftover pairs now caption leftover-map graphic leftover-map axis ticks
with persisted leftover-map singular values `σ_k` through leftoverMapPlotTickAxisBadge
independently of leftover-map axis share (ADR 0327 / v2.84.0). After `make seed`,
leftover-map graphic leftover-map axis ticks name persisted leftover-map singular
values when leftoverMapPlotTickAxisBadge returns a usable leftover-map axis tick
`σ` caption even when leftover-map axis share is omitted; click a leftover pair
opens that post. A missing, non-finite, or negative singular value omits that
`σ` tick caption and keeps `leftover-map axis {k} tick {value}`. Rank-0 unused
axes still name `σ 0.00`. Leftover-map graphic leftover-map axis ticks stay
`leftover-map axis {k} tick {value} σ {singular}` when `σ_k` is finite so they
stay distinct from leftover-map graphic leftover-map axis
`leftover-map axis {k} σ {value}`, from leftover-axis
`leftover axis {k} σ {value}`, from comparison leftover-axis
`leftover map comparison leftover axis {k} σ {value}`, from comparison graphic
leftover-map axis `leftover map comparison graphic leftover-map axis {k} σ {value}`,
and from comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value}`. Do not invent
`σ_k` from leftover-map axis share. Do not invent leftover-map axis share from
`σ_k`. Leftover-map graphic leftover-map axis ticks never name leftover-map axis
share. This increment does not change leftover-map comparison graphic leftover-map
axis ticks. A finite negative leftover is shown, never clamped. Never invent a
leftover score or a theta. No new columns.

- Period leftover pairs now caption leftover-map comparison graphic leftover-map
axes with persisted leftover-map singular values `σ_k` through
leftoverMapComparePlotAxisBadge (ADR 0326 / v2.83.0). After `make seed`,
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 / 0289 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296 / 0297 / 0298 / 0299 / 0300 / 0301 / 0302 / 0303 / 0304 / 0305 / 0306 / 0307 / 0308 / 0309 / 0310 / 0311 / 0312 / 0313 / 0314 / 0315 / 0316 / 0317 / 0318 / 0319 / 0320 / 0321 / 0322 / 0323 / 0324 / 0325 / 0326), 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 / 0290 / 0291 / 0292 / 0293 / 0294 / 0295 / 0296 / 0297 / 0298 / 0299 / 0300 / 0301 / 0302 / 0303 / 0304 / 0305 / 0306 / 0307 / 0308 / 0309 / 0310 / 0311 / 0312 / 0313 / 0314 / 0315 / 0316 / 0317 / 0318 / 0319 / 0320 / 0321 / 0322 / 0323 / 0324 / 0325 / 0326 / 0327), 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 @@ -13,7 +13,9 @@
[ADR 0325](0325-leftover-map-axis-singular-only.md)
(leftover-map singular values on leftover-axis report badges independently of leftover-map axis share);
[ADR 0326](0326-leftover-map-compare-plot-axis-badge.md)
(leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge)
(leftover-map comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge);
[ADR 0327](0327-leftover-map-plot-tick-axis-badge.md)
(leftover-map graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share)

## Context

Expand Down
3 changes: 3 additions & 0 deletions docs/adr/0326-leftover-map-compare-plot-axis-badge.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ Independent of leftover-map singular values on leftover-axis report badges
([ADR 0322](0322-leftover-map-axis-singular.md)). Independent of leftover-map
singular values on the grouping comparison leftover-map graphic that still
inline σ and share ([ADR 0321](0321-leftover-map-compare-plot-singular.md)).
Independent of leftover-map graphic leftover-map axis tick leftover-map singular
values independently of leftover-map axis share
([ADR 0327](0327-leftover-map-plot-tick-axis-badge.md)).

## References

Expand Down
121 changes: 121 additions & 0 deletions docs/adr/0327-leftover-map-plot-tick-axis-badge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# ADR 0327 — Name leftover-map singular values on leftover-map graphic leftover-map axis ticks independently of leftover-map axis share

**Decision status:** Accepted
**Date:** 2026-08-31

Amends leftover-map coordinate ticks on the leftover-map graphic
([ADR 0270](0270-leftover-map-coordinate-ticks.md)), leftover-map singular
values on leftover-map graphic-display axes
([ADR 0324](0324-leftover-map-plot-axis-singular.md)), leftover-map axis share
persistence ([ADR 0148](0148-leftover-map-axis-share.md)). Independent of leftover-map
comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge
([ADR 0326](0326-leftover-map-compare-plot-axis-badge.md)), leftover-map singular
values on leftover-axis report badges independently of leftover-map axis share
([ADR 0325](0325-leftover-map-axis-singular-only.md)), leftover-map coordinate ticks
on the grouping comparison leftover-map graphic
([ADR 0320](0320-leftover-map-compare-plot-ticks.md)).

## Context

ADR 0148 already persists leftover-map singular values `σ_k` and leftover-map
axis share `σ_k² / Σ_j σ_j²`. ADR 0270 already ticks leftover-map graphic leftover-map
axes at persisted `ξ` / `ζ` projections as `leftover-map axis {k} tick {value}`.
ADR 0324 already captions leftover-map graphic-display leftover-map axes with
`σ_k`. Those leftover-map graphic leftover-map axis ticks still omit `σ_k`, so a
buyer who reads leftover-map graphic leftover-map axis ticks can treat leftover-map
coordinate ticks or leftover-map axis share as leftover-map structure without a
next action. A missing, non-finite, or negative singular value is not a leftover
score and must omit independently of leftover-map axis share. Rank-0 unused axes
still persist `σ_k = 0`. A finite negative leftover is shown, never clamped. Do
not invent `σ_k` from leftover-map axis share. Do not invent leftover-map axis
share from `σ_k`. Leftover-map graphic leftover-map axis ticks never name leftover-map
axis share.

This increment names leftover-map graphic leftover-map axis ticks leftover-map
singular values as leftoverMapPlotTickAxisBadge, matching leftoverMapComparePlotAxisBadge,
leftoverMapPlotAxisBadge, leftoverMapCompareAxisBadge, and leftoverMapAxisBadge.
Leftover-map graphic leftover-map axis ticks stay
`leftover-map axis {k} tick {value} σ {singular}` when `σ_k` is finite so they stay
distinct from leftover-map graphic leftover-map axis `leftover-map axis {k} σ {value}`
(ADR 0324), from leftover-axis `leftover axis {k} σ {value}` (ADR 0325), from
comparison leftover-axis `leftover map comparison leftover axis {k} σ {value}`
(ADR 0323), from comparison graphic leftover-map axis
`leftover map comparison graphic leftover-map axis {k} σ {value}` (ADR 0326), and
from comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value}` (ADR 0320).
It does not add columns. Do not invent a leftover score. Do not invent a theta.

This protected increment uses **0327** so it does not collide with leftover-map
comparison graphic leftover-map axis leftover-map singular values as leftoverMapComparePlotAxisBadge
(0326), leftover-map singular values on leftover-axis report badges independently of
leftover-map axis share (0325), leftover-map singular values on leftover-map graphic-display
axes (0324), leftover-map coordinate ticks on the grouping comparison leftover-map graphic
(0320), leftover-map axis share persistence (0148), or the dashboard stacks.

## Decision

On leftover-map graphic leftover-map axis ticks, caption leftover-map axis `k`
with persisted leftover-map singular value `σ_k` when leftoverMapPlotTickAxisBadge
returns a usable leftover-map axis tick caption that includes that singular value.
Share and singular value omit independently through that helper, and leftover-map
axis share is never named on leftover-map graphic leftover-map axis ticks: no `σ_k`
keeps `leftover-map axis {k} tick {value}`; `σ_k` only is
`leftover-map axis {k} tick {value} σ {singular}`. A missing, non-finite, or
negative singular value omits that `σ` tick caption and keeps a usable leftover-map
graphic leftover-map axis tick coordinate caption. Rank-0 unused axes still name
`σ 0.00`. Click a post marker to open that post. Criterion markers are not post
buttons.

Leftover-map graphic leftover-map axis tick leftover-map singular values omit
independently of leftover-map graphic-display leftover-map axis singular values,
leftover-axis report badge leftover-map singular values, leftover-map comparison
leftover-axis singular values, leftover-map comparison graphic leftover-map axis
singular values, and leftover-map comparison graphic leftover-map axis ticks. A
missing leftover-map axis share omits leftover-map axis share and keeps a usable
leftover-map graphic leftover-map axis tick `σ` caption.

This increment does not change leftover-map comparison graphic leftover-map axis
ticks. Those comparison graphic leftover-map axis ticks stay
`leftover map comparison graphic leftover-map axis {axis} tick {value}` (ADR 0320).
This increment does not persist leftover-map inner product, cosine, or length.

Do not add SQL. Do not edit shipped migrations. Do not invent a leftover
score. Do not invent a theta.

## Consequences

After `make seed`, leftover-map graphic leftover-map axis ticks name persisted
leftover-map singular values when leftoverMapPlotTickAxisBadge returns a usable
leftover-map axis tick `σ` caption even when leftover-map axis share is omitted;
click a leftover pair opens that post. Hidden posts stay hidden. Rank-0 unused
axes still name leftover-map graphic leftover-map axis tick `σ 0.00`. Leftover-map
comparison graphic leftover-map axis leftover-map singular values (ADR 0326), leftover-map
graphic-display leftover-map singular values (ADR 0324), leftover-axis report badge
leftover-map singular values independently of leftover-map axis share (ADR 0325),
and grouping comparison leftover-map graphic leftover-map axis ticks (ADR 0320)
remain.

## Related

Independent of leftover-map comparison graphic leftover-map axis leftover-map
singular values as leftoverMapComparePlotAxisBadge
([ADR 0326](0326-leftover-map-compare-plot-axis-badge.md)). Independent of leftover-map
singular values on leftover-map graphic-display axes
([ADR 0324](0324-leftover-map-plot-axis-singular.md)). Independent of leftover-map
singular values on leftover-axis report badges independently of leftover-map axis
share ([ADR 0325](0325-leftover-map-axis-singular-only.md)). Independent of leftover-map
coordinate ticks on the grouping comparison leftover-map graphic
([ADR 0320](0320-leftover-map-compare-plot-ticks.md)).

## References

Gabriel, K. R. (1971). The biplot graphic display of matrices with
application to principal component analysis. *Biometrika, 58*(3),
453–467. https://doi.org/10.1093/biomet/58.3.453

Jeon, M., Jin, I. H., Schweinberger, M., & Baugh, S. (2021). Mapping
unobserved item–respondent interactions: A latent space item response
model with interaction map. *Psychometrika, 86*(2), 378–403.
https://doi.org/10.1007/s11336-021-09762-5
(LSIRM interaction `−γ‖ξ_j − ζ_i‖` after main effects
`α_j − β_i`; typically `p = 2` for the interaction map.)
Loading