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
9 changes: 9 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -699,6 +699,15 @@ axis share. Rank-0 unused axes still name leftover-map comparison leftover-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. This increment does not change leftover-map comparison graphic leftover-map
axis ticks.
ADR 0330 captions leftover-axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapAxisTickBadge returns a usable leftover-axis
tick caption. Distinct accessible name
`leftover axis {axis} tick {value} σ {singular}`. Singular value omits independently
of leftover-map axis share. Leftover-axis ticks never name leftover-map
axis share. Rank-0 unused axes still name leftover-axis tick
`σ 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. This increment does not change leftover-map comparison leftover-axis
ticks.
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
6 changes: 5 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -770,6 +770,9 @@ axis tick caption independently of leftover-map axis share.
ADR 0329 captions leftover-map comparison leftover-axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapCompareAxisTickBadge returns a usable leftover-axis
tick caption independently of leftover-map axis share.
ADR 0330 captions leftover-axis ticks with persisted leftover-map
singular values `σ_k` when leftoverMapAxisTickBadge returns a usable leftover-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 @@ -829,7 +832,8 @@ comparison graphic leftover-map axis leftover-map singular values as leftoverMap
(ADR 0326), leftover-map graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0327), leftover-map comparison graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0328), leftover-map comparison leftover-axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0329);
(ADR 0329), leftover-axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0330);
`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
22 changes: 22 additions & 0 deletions CHANGELOG.d/2.87.0-leftover-map-axis-tick-badge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
## 2.87.0 — Leftover-map singular values on leftover-axis ticks independently of leftover-map axis share

- Caption leftover-axis ticks with persisted leftover-map singular values `σ_k`
through leftoverMapAxisTickBadge independently of leftover-map axis share
(ADR 0330). After `make seed`, leftover-axis ticks name persisted leftover-map
singular values when leftoverMapAxisTickBadge returns a usable leftover-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 axis {k} tick {value}`. Rank-0 unused
axes still name `σ 0.00`. Leftover-axis ticks stay
`leftover axis {k} tick {value} σ {singular}` when `σ_k` is finite so they stay
distinct from leftover-map comparison leftover-axis ticks
`leftover map comparison leftover axis {k} tick {value} σ {singular}`, from leftover-map
comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value} σ {singular}`, from leftover-map
graphic leftover-map axis ticks `leftover-map axis {k} tick {value} σ {singular}`, from leftover-axis
`leftover axis {k} σ {value}`, and from leftover-map graphic leftover-map axis
`leftover-map axis {k} σ {value}`. Do not invent `σ_k` from leftover-map axis
share. Do not invent leftover-map axis share from `σ_k`. Leftover-axis ticks
never name leftover-map axis share. This increment does not change leftover-map
comparison leftover-axis ticks. A finite negative leftover is shown, never
clamped. Never invent a leftover score. Never invent a theta. No new columns.
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,27 @@ All notable changes to this project are documented here. Format follows

### Added

- Period leftover pairs now caption leftover-axis ticks with persisted leftover-map
singular values `σ_k` through leftoverMapAxisTickBadge independently of leftover-map
axis share (ADR 0330 / v2.87.0). After `make seed`, leftover-axis ticks name
persisted leftover-map singular values when leftoverMapAxisTickBadge returns a
usable leftover-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 axis {k} tick {value}`.
Rank-0 unused axes still name `σ 0.00`. Leftover-axis ticks stay
`leftover axis {k} tick {value} σ {singular}` when `σ_k` is finite so they stay
distinct from leftover-map comparison leftover-axis ticks
`leftover map comparison leftover axis {k} tick {value} σ {singular}`, from leftover-map
comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value} σ {singular}`, from leftover-map
graphic leftover-map axis ticks `leftover-map axis {k} tick {value} σ {singular}`, from leftover-axis
`leftover axis {k} σ {value}`, and from leftover-map graphic leftover-map axis
`leftover-map axis {k} σ {value}`. Do not invent `σ_k` from leftover-map axis
share. Do not invent leftover-map axis share from `σ_k`. Leftover-axis ticks
never name leftover-map axis share. This increment does not change leftover-map
comparison leftover-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 leftover-axis
ticks with persisted leftover-map singular values `σ_k` through
leftoverMapCompareAxisTickBadge independently of leftover-map axis share
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 / 0327 / 0328 / 0329), 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 / 0328 / 0329 / 0330), 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 @@ -19,7 +19,9 @@
[ADR 0328](0328-leftover-map-compare-plot-tick-axis-badge.md)
(leftover-map comparison graphic leftover-map axis tick leftover-map singular values independently of leftover-map axis share);
[ADR 0329](0329-leftover-map-compare-axis-tick-badge.md)
(leftover-map comparison leftover-axis tick leftover-map singular values independently of leftover-map axis share)
(leftover-map comparison leftover-axis tick leftover-map singular values independently of leftover-map axis share);
[ADR 0330](0330-leftover-map-axis-tick-badge.md)
(leftover-axis tick leftover-map singular values independently of leftover-map axis share)

## Context

Expand Down
4 changes: 3 additions & 1 deletion docs/adr/0329-leftover-map-compare-axis-tick-badge.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,9 @@ report badges independently of leftover-map axis share
report badges on the grouping comparison strip
([ADR 0323](0323-leftover-map-compare-axis-singular.md)). Independent of leftover-map coordinate ticks on the grouping
comparison leftover-map graphic
([ADR 0320](0320-leftover-map-compare-plot-ticks.md)).
([ADR 0320](0320-leftover-map-compare-plot-ticks.md)). Independent of leftover-axis
tick leftover-map singular values independently of leftover-map axis share
([ADR 0330](0330-leftover-map-axis-tick-badge.md)).

## References

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

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

Amends 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 axis share
persistence ([ADR 0148](0148-leftover-map-axis-share.md)). Independent of leftover-map
comparison leftover-axis tick leftover-map singular values independently of leftover-map axis share
([ADR 0329](0329-leftover-map-compare-axis-tick-badge.md)), leftover-map comparison graphic leftover-map
axis tick leftover-map singular values independently of leftover-map axis share
([ADR 0328](0328-leftover-map-compare-plot-tick-axis-badge.md)), 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)).

## Context

ADR 0148 already persists leftover-map singular values `σ_k` and leftover-map
axis share `σ_k² / Σ_j σ_j²`. ADR 0325 already captions leftover-axis report
badges as leftoverMapAxisBadge independently of leftover-map axis share. ADR 0270
already ticks leftover-map graphic leftover-map axes at persisted `ξ` / `ζ`
projections. ADR 0327 already captions leftover-map graphic leftover-map axis ticks
with `σ_k` through leftoverMapPlotTickAxisBadge. ADR 0329 already captions leftover-map
comparison leftover-axis ticks with `σ_k` through leftoverMapCompareAxisTickBadge.
Those leftover-axis report badges still omit leftover-axis ticks, so a buyer who
reads leftover-axis badges or 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-axis ticks never
name leftover-map axis share.

This increment names leftover-axis ticks leftover-map singular values as leftoverMapAxisTickBadge,
matching leftoverMapAxisBadge, leftoverMapCompareAxisTickBadge, leftoverMapPlotTickAxisBadge,
leftoverMapComparePlotTickAxisBadge, leftoverMapCompareAxisBadge, leftoverMapComparePlotAxisBadge,
and leftoverMapPlotAxisBadge. Leftover-axis ticks reuse `layoutLeftoverMapPlot` ticks so origin
`0.00` plus unique finite `ξ` / `ζ` projections match the leftover-map graphic. Copy stays
`leftover axis {k} tick {value} σ {singular}` when `σ_k` is finite so they stay distinct from leftover-map
comparison leftover-axis ticks `leftover map comparison leftover axis {k} tick {value} σ {singular}`
(ADR 0329), from leftover-map comparison graphic leftover-map axis ticks
`leftover map comparison graphic leftover-map axis {k} tick {value} σ {singular}` (ADR 0328), from leftover-map
graphic leftover-map axis ticks `leftover-map axis {k} tick {value} σ {singular}` (ADR 0327), from leftover-axis
`leftover axis {k} σ {value}` (ADR 0325), and from leftover-map graphic leftover-map axis
`leftover-map axis {k} σ {value}` (ADR 0324). It does not add columns. Do not invent a leftover score.
Do not invent a theta.

This protected increment uses **0330** so it does not collide with leftover-map comparison leftover-axis
tick leftover-map singular values independently of leftover-map axis share (0329), leftover-map comparison graphic leftover-map
axis tick leftover-map singular values independently of leftover-map axis share (0328), leftover-map graphic leftover-map
axis tick leftover-map singular values independently of leftover-map axis share (0327), leftover-map singular values on leftover-axis
report badges independently of leftover-map axis share (0325), leftover-map axis share persistence (0148), or the dashboard stacks.

## Decision

On leftover-axis ticks on the leftover-pair list leftover-axis surface, caption leftover-map axis `k`
tick `{value}` with persisted leftover-map singular value `σ_k` when leftoverMapAxisTickBadge returns a
usable leftover-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-axis ticks:
no `σ_k` keeps `leftover axis {k} tick {value}`; `σ_k` only is
`leftover axis {k} tick {value} σ {singular}`. A missing, non-finite, or negative singular value
omits that `σ` tick caption and keeps a usable leftover-axis tick coordinate caption. Rank-0 unused
axes still name `σ 0.00`. Origin `0.00` plus each unique finite persisted `ξ` / `ζ` projection still
name leftover-axis ticks. If `layoutLeftoverMapPlot` is null, omit leftover-axis ticks. Click a leftover
pair to open that post.

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

This increment does not change leftover-map comparison leftover-axis ticks. Those leftover-map comparison leftover-axis
ticks stay `leftover map comparison leftover axis {axis} tick {value} σ {singular}` (ADR 0329). 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-axis ticks name persisted leftover-map singular values when leftoverMapAxisTickBadge
returns a usable leftover-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-axis tick `σ 0.00`.
Leftover-map comparison leftover-axis tick leftover-map singular values independently of leftover-map axis share
(ADR 0329), leftover-map comparison graphic leftover-map axis tick leftover-map singular values independently of leftover-map
axis share (ADR 0328), leftover-map graphic leftover-map axis tick leftover-map singular values independently of leftover-map
axis share (ADR 0327), leftover-axis report badge leftover-map singular values independently of leftover-map axis share
(ADR 0325), leftover-map graphic-display leftover-map singular values (ADR 0324), leftover-map singular values on leftover-axis
report badges on the grouping comparison strip (ADR 0323), and leftover-map graphic leftover-map axis ticks (ADR 0270) remain.

## Related

Independent of leftover-map comparison leftover-axis tick leftover-map singular values independently of leftover-map
axis share ([ADR 0329](0329-leftover-map-compare-axis-tick-badge.md)). Independent of leftover-map comparison graphic leftover-map
axis tick leftover-map singular values independently of leftover-map axis share
([ADR 0328](0328-leftover-map-compare-plot-tick-axis-badge.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)). 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 leftover-map graphic ([ADR 0270](0270-leftover-map-coordinate-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.)
19 changes: 19 additions & 0 deletions docs/product-technical-gap-baseline.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,24 @@
# Product & Technical Gap Baseline

> Exact-head loop overlay: 2026-08-31 13:28 KST. Protected `main` is
> `cb187cadee5fb6c46d8a944815ccc154a1e028d1`. Writes work. Do not
> self-approve. #870 leftover-map singular values on leftover-map comparison leftover-axis
> ticks independently of leftover-map axis share (v2.86.0 / ADR 0329) is
> `b086d97`, stacked on #869 @ `98a29e4`. Independent APPROVE is missing. Next
> buyer increment on this cycle: leftover-axis ticks naming persisted leftover-map
> singular values independently of leftover-map axis share (ADR 0330 / v2.87.0)
> delivered locally on `feat/leftover-map-axis-tick-badge-v2870`. Caption persisted leftover-map
> singular values `σ_k` on leftover-axis ticks when leftoverMapAxisTickBadge returns
> a usable leftover-axis tick `σ` caption. Distinct accessible name
> `leftover axis {axis} tick {value} σ {singular}`. Rank-0 unused axes still name
> `σ 0.00`. Singular value omits independently of leftover-map axis share. Leftover-axis
> ticks never name leftover-map axis share. Do not invent `σ_k` from leftover-map
> axis share. Do not invent leftover-map axis share from `σ_k`. Do not persist leftover-map
> inner product, cosine, or length. Do not change leftover-map comparison leftover-axis
> ticks this increment. Stack onto #870. Leave open for independent review. Do
> not squash-merge. Do not self-approve. Issues #79 and #87 stay open. Do not merge
> #808 without independent APPROVE. Never self-approve.

> Exact-head loop overlay: 2026-08-31 13:17 KST. Protected `main` is
> `cb187cadee5fb6c46d8a944815ccc154a1e028d1`. Writes work. Do not
> self-approve. #869 leftover-map singular values on leftover-map comparison graphic leftover-map
Expand Down
Loading