Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
a3613ac
feat(reports): leftover-map singular values on leftover-map graphic-d…
seonghobae Aug 31, 2026
593b8d8
feat(reports): leftover-map singular values on leftover-axis report b…
seonghobae Aug 31, 2026
13f94ca
test(red): reconstruct report-graphic axis singular contract
seonghobae Sep 10, 2026
bae8103
test(red): reconstruct report-axis singular-only contract
seonghobae Sep 10, 2026
88e88b2
chore(stack): converge report-graphic singular lane on repaired parent
seonghobae Sep 11, 2026
265e91e
chore(stack): converge singular-only report badge lane on repaired pa…
seonghobae Sep 11, 2026
1705a96
chore(stack): converge report-graphic singular lane on documented parent
seonghobae Sep 11, 2026
e26f523
chore(stack): converge singular-only report badge lane on documented …
seonghobae Sep 11, 2026
4b9f9e9
chore(stack): converge #865 onto repaired #863 head
seonghobae Sep 11, 2026
39dd775
chore(stack): converge #866 onto repaired #865 head
seonghobae Sep 11, 2026
866e277
chore(stack): converge #865 onto repaired #863
seonghobae Sep 12, 2026
8cef532
chore(stack): converge #866 onto repaired #865
seonghobae Sep 12, 2026
dec9705
chore(stack): converge #865 onto repaired ancestry
seonghobae Sep 13, 2026
198d682
chore(stack): converge #866 onto repaired ancestry
seonghobae Sep 13, 2026
a046c2b
chore(stack): converge #865 onto repaired #863
seonghobae Sep 15, 2026
e20200c
chore(stack): converge #866 onto repaired #865
seonghobae Sep 15, 2026
b212048
chore(stack): converge #865 onto repaired #863
seonghobae Sep 15, 2026
4b53924
chore(stack): converge #866 onto repaired #865
seonghobae Sep 15, 2026
7024f3c
merge: converge v2.81.0 onto repaired comparison axis badges
seonghobae Sep 15, 2026
d421c86
merge: converge v2.82.0 onto repaired comparison axis badges
seonghobae Sep 15, 2026
7458b7f
fix(ui): expose report graphic singular axis copy
seonghobae Sep 15, 2026
75f0bf6
fix(ui): render report graphic singular axis evidence
seonghobae Sep 15, 2026
9ae19d8
docs(adr): record report graphic singular axes
seonghobae Sep 15, 2026
eeb8102
docs(changelog): record report graphic singular axes
seonghobae Sep 15, 2026
31e3c03
fix(ui): type axis evidence template values safely
seonghobae Sep 15, 2026
bb1c8c8
merge: converge v2.82.0 onto report graphic singular repair
seonghobae Sep 15, 2026
611636d
fix(ui): preserve report axis singular-only state
seonghobae Sep 15, 2026
f9461c9
merge: converge v2.81.0 onto exact v2.80.0 head
seonghobae Sep 15, 2026
46c2c56
merge: converge v2.82.0 onto exact v2.81.0 head
seonghobae Sep 15, 2026
a87efee
docs(adr): record independent report axis evidence states
seonghobae Sep 15, 2026
e3cce38
docs(changelog): record singular-only report axis evidence
seonghobae Sep 15, 2026
7c570b4
test(reports): expose unwired report-axis singular-only RED
seonghobae Sep 15, 2026
3422a23
fix(reports): keep report-axis sigma visible without share
seonghobae Sep 15, 2026
2efcf06
test(reports): cover report-axis missingness states
seonghobae Sep 15, 2026
c267657
test(reports): pin report-axis sigma/share rendering contract
seonghobae Sep 15, 2026
e98abe2
test(reports): require empty report-axis evidence omission
seonghobae Sep 15, 2026
ee04d46
chore(stack): adopt #863 localized comparison tick contract
seonghobae Sep 15, 2026
7e9e83b
chore(stack): adopt #863 localized comparison tick repair
seonghobae Sep 15, 2026
0728f56
chore(stack): converge current #863 into #865
seonghobae Sep 15, 2026
35f4b07
chore(stack): converge current #865 into #866
seonghobae Sep 15, 2026
047cefc
test(reports): assert four-state badge semantics, not import punctuation
seonghobae Sep 16, 2026
6935ac4
fix(reports): consume report-axis badge projection
github-actions[bot] Sep 16, 2026
0c13fd8
test(reporting): verify report-axis copy semantically
seonghobae Sep 19, 2026
6f75308
test(reporting): align report badge contract with independent share s…
seonghobae Sep 19, 2026
3178713
merge: converge #865 on singular contract repair
seonghobae Sep 19, 2026
8d63271
merge: converge #866 on report contract repairs
seonghobae Sep 19, 2026
1c5cfc8
chore(stack): converge #865 onto #863 owner RED
seonghobae Sep 20, 2026
a51b0ec
chore(stack): converge #866 onto #865 owner stack
seonghobae Sep 20, 2026
688643c
chore(stack): converge #865 onto repaired #863 head
seonghobae Sep 20, 2026
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
10 changes: 9 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) 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) 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 @@ -656,6 +656,11 @@ leftoverMapCompareAxisBadge returns a usable leftover-axis caption. Distinct acc
name `leftover map comparison leftover axis {axis} σ {value}`. Share and singular value
omit independently. Rank-0 unused axes still name `σ 0.00`. Do not invent leftover-map
singular values from leftover-map axis share.
ADR 0324 captions leftover-map graphic-display axes with persisted leftover-map singular
values `σ_k` when leftoverMapPlotAxisBadge returns a usable leftover-map axis caption.
Distinct accessible name `leftover-map axis {axis} σ {value} ({share}%)`. Share and
singular value omit independently. Rank-0 unused axes still name leftover-map axis
`σ 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 @@ -760,6 +765,9 @@ returns a usable finite non-negative value.
Grouping comparison leftover-axis report badge leftover-map singular values (ADR 0323) captions
leftover-axis report badges on the grouping comparison strip with persisted leftover-map
singular values `σ_k` when leftoverMapCompareAxisBadge returns a usable leftover-axis caption.
Leftover-map graphic-display leftover-map singular values (ADR 0324) captions leftover-map
graphic-display axes with persisted leftover-map singular values `σ_k` when leftoverMapPlotAxisBadge
returns a usable leftover-map axis 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
5 changes: 4 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -754,6 +754,8 @@ ADR 0322 captions leftover-axis report badges with persisted leftover-map
singular values `σ_k`.
ADR 0323 captions leftover-axis report badges on the grouping comparison strip
with persisted leftover-map singular values `σ_k`.
ADR 0324 captions leftover-map graphic-display 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
Expand Down Expand Up @@ -806,7 +808,8 @@ graphic (ADR 0319), leftover-map coordinate ticks on the grouping comparison lef
graphic (ADR 0320), leftover-map singular values on the grouping comparison leftover-map
graphic (ADR 0321), leftover-map singular values on leftover-axis report badges
(ADR 0322), leftover-map singular values on leftover-axis report badges on the
grouping comparison strip (ADR 0323);
grouping comparison strip (ADR 0323), leftover-map singular values on leftover-map
graphic-display axes (ADR 0324);
`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
18 changes: 18 additions & 0 deletions CHANGELOG.d/2.81.0-leftover-map-plot-axis-singular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## 2.81.0 — Leftover-map singular values on leftover-map graphic-display axes

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

### Added

- Period leftover pairs now caption leftover-map graphic-display axes with persisted
leftover-map singular values `σ_k` (ADR 0324 / v2.81.0). After `make seed`, leftover-map
graphic-display axes name persisted leftover-map singular values when finite together
with persisted leftover-map axis share; click a leftover pair opens that post. A
missing, non-finite, or negative singular value omits that `σ` caption and keeps
`leftover-map axis {k} ({share}%)`. Rank-0 unused axes still name `σ 0.00`. Leftover-map
graphic-display axes stay `leftover-map axis {k} σ {value} ({share}%)` so they stay
distinct from leftover-axis `leftover axis {k} σ {value} {share}%`, from comparison
leftover-axis `leftover map comparison leftover axis {k} σ {value} {share}%`, and from
comparison graphic `leftover map comparison graphic leftover-map axis {k} σ {value} ({share}%)`.
Do not invent `σ_k` from leftover-map axis share. This increment does not change
leftover-map singular values on leftover-axis report badges or on leftover-axis
report badges on the grouping comparison strip. 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-axis report badges on the grouping
comparison strip with persisted leftover-map singular values `σ_k`
(ADR 0323 / v2.80.0). After `make seed`, grouping comparison leftover-axis
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), 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), 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 @@ -7,7 +7,9 @@
[ADR 0322](0322-leftover-map-axis-singular.md)
(leftover-map singular values on leftover-axis report badges);
[ADR 0323](0323-leftover-map-compare-axis-singular.md)
(leftover-map singular values on leftover-axis report badges on the grouping comparison strip)
(leftover-map singular values on leftover-axis report badges on the grouping comparison strip);
[ADR 0324](0324-leftover-map-plot-axis-singular.md)
(leftover-map singular values on leftover-map graphic-display axes)

## Context

Expand Down
4 changes: 3 additions & 1 deletion docs/adr/0322-leftover-map-axis-singular.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,9 @@ Independent of leftover-map singular values on the grouping comparison
leftover-map graphic. This increment does not caption leftover-map singular
values on leftover-axis badges on the grouping comparison strip with a
distinct name
([ADR 0323](0323-leftover-map-compare-axis-singular.md)).
([ADR 0323](0323-leftover-map-compare-axis-singular.md)). This increment does
not caption leftover-map singular values on leftover-map graphic-display axes
([ADR 0324](0324-leftover-map-plot-axis-singular.md)).

## References

Expand Down
2 changes: 2 additions & 0 deletions docs/adr/0323-leftover-map-compare-axis-singular.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ leftover-map axis share are finite, leftover-map axis share is

Independent of leftover-map singular values on leftover-axis report badges
in the period-report panel ([ADR 0322](0322-leftover-map-axis-singular.md)).
Independent of leftover-map singular values on leftover-map graphic-display
axes ([ADR 0324](0324-leftover-map-plot-axis-singular.md)).

## References

Expand Down
129 changes: 129 additions & 0 deletions docs/adr/0324-leftover-map-plot-axis-singular.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# ADR 0324 — Name leftover-map singular values on leftover-map graphic-display axes

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

Amends leftover-map axis share on the graphic display
([ADR 0269](0269-leftover-map-axis-share-plot.md)), leftover-map axis share
persistence ([ADR 0148](0148-leftover-map-axis-share.md)). Independent of leftover-map
singular values on leftover-axis report badges
([ADR 0322](0322-leftover-map-axis-singular.md)), leftover-map singular
values on leftover-axis report badges on the grouping comparison strip
([ADR 0323](0323-leftover-map-compare-axis-singular.md)), leftover-map
singular values on the grouping comparison leftover-map graphic
([ADR 0321](0321-leftover-map-compare-plot-singular.md)), leftover-map
coordinate ticks on that comparison graphic
([ADR 0320](0320-leftover-map-compare-plot-ticks.md)), leftover-map
axis share on that comparison graphic
([ADR 0305](0305-leftover-map-compare-plot-axis-share.md)), leftover-map
graphic display on the grouping comparison strip
([ADR 0304](0304-leftover-map-compare-graphic.md)), leftover-map
coordinates ([ADR 0267](0267-leftover-map-coordinates.md)), leftover-map
graphic display ([ADR 0268](0268-leftover-map-graphic-display.md)), and
leftover-map coordinate ticks on the graphic display
([ADR 0270](0270-leftover-map-coordinate-ticks.md)).

## Context

ADR 0148 already persists leftover-map singular values `σ_k` and leftover-map
axis share `σ_k² / Σ_j σ_j²`. ADR 0269 captions leftover-map graphic-display
axes with share only as `leftover-map axis {k} ({share}%)`. ADR 0321 already
captions the grouping comparison leftover-map graphic with persisted `σ_k`.
ADR 0322 already captions leftover-axis report badges with persisted `σ_k`.
ADR 0323 already captions grouping comparison leftover-axis report badges
with persisted `σ_k`. Period leftover-map graphic axes still hide `σ_k`, so
Gabriel (1971) singular values appear on leftover-axis badges and on the
comparison graphic and never on the leftover-map graphic-display axes that
name the same axes. Hiding `σ_k` on leftover-map graphic-display axes lets
leftover-map axis share be read as leftover-map structure even when the buyer
cannot tell whether axis 1 is large because `σ_1` is large or because axis 2
collapsed. 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.

This increment captions leftover-map graphic-display axes with already persisted
leftover-map singular values. Leftover-map graphic-display axes stay
`leftover-map axis {k} σ {value} ({share}%)` so they stay distinct from
leftover-axis badges `leftover axis {k} σ {value} {share}%`, from comparison
leftover-axis `leftover map comparison leftover axis {k} σ {value} {share}%`,
and from comparison graphic
`leftover map comparison graphic leftover-map axis {k} σ {value} ({share}%)`.
It does not add columns. Do not invent a leftover score. Do not invent a
theta.

This protected increment uses **0324** so it does not collide with leftover-map
singular values on leftover-axis report badges on the grouping comparison
strip (0323), leftover-map singular values on leftover-axis report badges
(0322), leftover-map singular values on the grouping comparison leftover-map
graphic (0321), leftover-map coordinate ticks on that graphic (0320), leftover-map
axis share on that graphic (0305), leftover-map graphic display on the grouping
comparison strip (0304), leftover-map axis share persistence (0148), leftover-map
axis share on the graphic display (0269), or the dashboard stacks.

## Decision

On leftover-map graphic-display axes, caption leftover-map axis `k` with
persisted leftover-map singular value `σ_k` when that singular value is
finite and non-negative, including rank-0 zero singular values. Share and
singular value omit independently: no share and no `σ_k` keeps
`leftover-map axis {k}`; share only is `leftover-map axis {k} ({share}%)`;
`σ_k` only is `leftover-map axis {k} σ {value}`; both is
`leftover-map axis {k} σ {value} ({share}%)`. A missing, non-finite, or
negative singular value omits that `σ` caption and keeps the existing
`leftover-map axis {k} ({share}%)` text. Do not invent `σ_k` from leftover-map
axis share. Axis 1 and axis 2 stay independently named. Click a leftover pair
to open that post.

Leftover-map graphic-display singular values omit independently of leftover-map
comparison graphic leftover-map axis singular values and leftover-axis report
badges. A missing singular value omits that leftover-map graphic-display `σ`
caption and keeps a usable leftover-map axis share caption, leftover-map
comparison graphic leftover-map axis `σ` caption, leftover-axis report badge
`σ` caption, leftover-map comparison leftover-axis `σ` caption, leftover-map
graphic leftover-map axis ticks, leftover-map distance caption, leftover-map
rank caption, leftover expected `E`, leftover observed `Y`, leftover residual
`R`, leftover-map unexplained leftover `U`, leftover-map reconstruction `R̂`,
and leftover-map graphic coverage notes.

This increment does not change leftover-map singular values on leftover-axis
report badges. Those leftover-axis badges stay
`leftover axis {axis} σ {value} {share}%` (ADR 0322). This increment does
not change leftover-map singular values on leftover-axis report badges on the
grouping comparison strip (ADR 0323). 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-display axes name persisted leftover-map
singular values when finite together with persisted leftover-map axis share;
click a leftover pair opens that post. Hidden posts stay hidden. Rank-0 unused
axes still name leftover-map axis `σ 0.00`. Grouping comparison leftover-map
graphic leftover-map singular values (ADR 0321), leftover-axis report badge
leftover-map singular values (ADR 0322), and grouping comparison leftover-axis
report badge leftover-map singular values (ADR 0323) remain.

## Related

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 leftover-axis report badges on the grouping comparison
strip ([ADR 0323](0323-leftover-map-compare-axis-singular.md)). Independent of
leftover-map singular values on the grouping comparison leftover-map graphic
([ADR 0321](0321-leftover-map-compare-plot-singular.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.)
18 changes: 18 additions & 0 deletions docs/product-technical-gap-baseline.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Product & Technical Gap Baseline

> Exact-head loop overlay: 2026-08-31 11:05 KST. Protected `main` is
> `cb187cadee5fb6c46d8a944815ccc154a1e028d1`. Writes work. Do not
> self-approve. #863 leftover-map singular values on leftover-axis report badges
> on the grouping comparison strip (v2.80.0 / ADR 0323) is `52b3597`, stacked on
> #862 @ `f24b664`. Independent APPROVE is missing. Next buyer increment on this
> cycle: leftover-map singular values on leftover-map graphic-display axes
> (ADR 0324 / v2.81.0) delivered locally on
> `feat/leftover-map-plot-axis-singular-v2810`. Caption persisted leftover-map
> singular values `σ_k` on leftover-map graphic-display axes from already-named
> leftover-map axes. Distinct accessible name `leftover-map axis {axis} σ {value} ({share}%)`.
> Rank-0 unused axes still name `σ 0.00`. Share and singular value omit
> independently. Do not invent `σ_k` from leftover-map axis share. Do not change
> leftover-map singular values on leftover-axis report badges or on leftover-axis
> report badges on the grouping comparison strip this increment. Stack onto #863.
> 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 10:40 KST. Protected `main` is
> `cb187cadee5fb6c46d8a944815ccc154a1e028d1`. Writes work. Do not
> self-approve. #862 leftover-map singular values on leftover-axis report badges
Expand Down
Loading