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
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,11 @@ returns a leftover-map origin leftover-map person coordinate caption independent
`Open leftover map comparison graphic leftover-map post {title} at leftover-map origin ξ {person}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`.
Do not invent leftover-map origin from leftover-map item coordinates `ζ`. leftoverMapPlotPostBadge stays leftover-map graphic leftover-map
post leftover-map origin leftover-map person coordinate keys. leftoverMapComparePlotCriterionBadge stays leftover-map comparison graphic leftover-map criterion leftover-map item coordinate keys this increment.
ADR 0350 captions leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates with leftover-map origin when leftoverMapComparePlotCriterionBadge
returns a leftover-map origin leftover-map item coordinate caption independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates. Distinct accessible name
`leftover map comparison graphic leftover-map criterion {label} at leftover-map origin ζ {item}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`.
Do not invent leftover-map origin from leftover-map person coordinates `ξ`. leftoverMapPlotCriterionBadge stays leftover-map graphic leftover-map
criterion leftover-map origin leftover-map item coordinate keys. leftoverMapComparePlotPostBadge stays leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinate keys this increment.
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 @@ -1048,6 +1053,8 @@ Leftover-map graphic leftover-map post leftover-map origin leftover-map person c
(ADR 0348) captions leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates when leftoverMapPlotPostBadge returns a leftover-map origin leftover-map person coordinate caption.
Leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates
(ADR 0349) captions leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates when leftoverMapComparePlotPostBadge returns a leftover-map origin leftover-map person coordinate caption.
Leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates
(ADR 0350) captions leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates when leftoverMapComparePlotCriterionBadge returns a leftover-map origin leftover-map item coordinate 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
2 changes: 2 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -823,6 +823,8 @@ ADR 0348 captions leftover-map graphic leftover-map post leftover-map origin lef
returns a leftover-map origin leftover-map person coordinate caption independently of leftover-map criterion leftover-map item coordinates.
ADR 0349 captions leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates when leftoverMapComparePlotPostBadge
returns a leftover-map origin leftover-map person coordinate caption independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates.
ADR 0350 captions leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates when leftoverMapComparePlotCriterionBadge
returns a leftover-map origin leftover-map item coordinate caption independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates.
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
## 2.107.0 — Leftover-map origin on leftover-map comparison graphic leftover-map criterion leftover-map item coordinates independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates

- Caption leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates through leftoverMapComparePlotCriterionBadge
independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates (ADR 0350). After `make seed`, leftover-map comparison graphic leftover-map
criterion leftover-map origin leftover-map item coordinates name leftover-map origin when leftoverMapPlotCoordinatePairIsOrigin returns true. Distinct accessible name
`leftover map comparison graphic leftover-map criterion {label} at leftover-map origin ζ {item}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`.
Non-origin leftover-map comparison graphic leftover-map criterion leftover-map item coordinates stay
`leftover map comparison graphic leftover-map criterion {label} at ζ {item}`. leftoverMapPlotCriterionBadge stays leftover-map graphic leftover-map
criterion leftover-map origin leftover-map item coordinate keys. leftoverMapComparePlotPostBadge stays leftover-map comparison graphic leftover-map
post leftover-map origin leftover-map person coordinate keys this increment. Do not invent leftover-map origin from leftover-map person coordinates `ξ`.
Do not mix #877. A finite negative leftover is shown, never clamped. Never invent a leftover score.
Never invent a theta. No new columns.
13 changes: 11 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,17 @@ All notable changes to this project are documented here. Format follows

### Added

- Period leftover pairs now caption leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates
through leftoverMapComparePlotPostBadge independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates (ADR 0349 / v2.106.0). After `make seed`, leftover-map comparison graphic leftover-map
- Period leftover pairs now caption leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map item coordinates
through leftoverMapComparePlotCriterionBadge independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates (ADR 0350 / v2.107.0). After `make seed`, leftover-map comparison graphic leftover-map
Comment on lines +11 to +12

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore the displaced v2.106 changelog heading

Adding the v2.107 entry replaces the first two lines of the existing ADR 0349 / v2.106 entry instead of inserting above them. As a result, lines 22–28 are now an orphaned continuation beginning with “post leftover-map…” and the changelog no longer identifies the v2.106 feature or its helper/ADR. Preserve the prior bullet intact below the new entry so generated or rendered release notes retain that release history.

Useful? React with 👍 / 👎.

criterion leftover-map origin leftover-map item coordinates name leftover-map origin when leftoverMapPlotCoordinatePairIsOrigin returns true. Distinct accessible name
`leftover map comparison graphic leftover-map criterion {label} at leftover-map origin ζ {item}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`.
Non-origin leftover-map comparison graphic leftover-map criterion leftover-map item coordinates stay
`leftover map comparison graphic leftover-map criterion {label} at ζ {item}`. leftoverMapPlotCriterionBadge stays leftover-map graphic leftover-map
criterion leftover-map origin leftover-map item coordinate keys. leftoverMapComparePlotPostBadge stays leftover-map comparison graphic leftover-map
post leftover-map origin leftover-map person coordinate keys this increment. Do not invent leftover-map origin from leftover-map person coordinates `ξ`.
Do not mix #877. A finite negative leftover is shown, never clamped. Never invent a leftover score or a theta. No new columns.


Comment on lines +11 to +21

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Previous changelog entry loses heading

The v2.106.0 entry now starts mid-sentence without its bullet heading. Readers cannot identify the feature that its remaining text describes.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

post leftover-map origin leftover-map person coordinates name leftover-map origin when leftoverMapPlotCoordinatePairIsOrigin returns true. Distinct accessible name
`Open leftover map comparison graphic leftover-map post {title} at leftover-map origin ξ {person}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`.
Non-origin leftover-map comparison graphic leftover-map post leftover-map person coordinates stay
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
**Date:** 2026-08-31

**Amended by:** [ADR 0337](0337-leftover-map-compare-plot-post-coordinates.md)
(leftover-map person coordinates on leftover-map comparison graphic leftover-map post markers)
(leftover-map person coordinates on leftover-map comparison graphic leftover-map post markers);
[ADR 0350](0350-leftover-map-compare-plot-criterion-origin-badge.md)
(leftover-map origin on leftover-map comparison graphic leftover-map criterion leftover-map item coordinates independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates)

Amends leftover-map graphic display of persisted coordinates on the grouping comparison strip
([ADR 0304](0304-leftover-map-compare-graphic.md)), leftover-map graphic leftover-map criterion leftover-map item coordinates
Expand Down
90 changes: 90 additions & 0 deletions docs/adr/0350-leftover-map-compare-plot-criterion-origin-badge.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# ADR 0350 — Name leftover-map origin on leftover-map comparison graphic leftover-map criterion leftover-map item coordinates independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates

**Decision status:** Accepted
**Date:** 2026-09-02

Amends leftover-map item coordinates on leftover-map comparison graphic leftover-map criterion markers independently of leftover-map post ξ markers
([ADR 0336](0336-leftover-map-compare-plot-criterion-coordinates.md)). Independent of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates
([ADR 0349](0349-leftover-map-compare-plot-post-origin-badge.md)). Independent of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates independently of leftover-map criterion leftover-map item coordinates
([ADR 0348](0348-leftover-map-plot-post-origin-badge.md)). Independent of leftover-map graphic leftover-map criterion leftover-map origin leftover-map item coordinates independently of leftover-map person coordinates
([ADR 0347](0347-leftover-map-plot-criterion-origin-badge.md)). Independent of leftover-map leftover-axis origin ticks independently of leftover-map axis share and leftover-map singular values
([ADR 0346](0346-leftover-map-axis-tick-origin-badge.md)). Independent of leftover-map leftover-axis origin ticks on the competing origin-tick stack (do not mix #877).

## Context

ADR 0336 already names leftover-map comparison graphic leftover-map criterion leftover-map item coordinates
`leftover map comparison graphic leftover-map criterion {label} at ζ {item}`. Rank-0 unused axes still persist leftover-map
origin `(0.00, 0.00)` (`formatSignedLeftoverValue(0)` emits no plus). Origin leftover-map
item coordinates still interpolate leftover-map origin only through leftover-map comparison graphic leftover-map criterion leftover-map
item coordinate keys. A missing or non-finite leftover-map item coordinate pair omits independently
of leftover-map person coordinates `ξ`. A finite negative leftover is shown, never clamped.
Do not invent leftover-map origin from leftover-map person coordinates `ξ`. leftoverMapPlotCriterionBadge stays
`leftover-map criterion {label} at leftover-map origin ζ {item}`
this increment. leftoverMapComparePlotPostBadge stays
`Open leftover map comparison graphic leftover-map post {title} at leftover-map origin ξ {person}`
this increment.

This increment names leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map
item coordinates as leftoverMapComparePlotCriterionBadge. Leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map
item coordinates stay
`leftover map comparison graphic leftover-map criterion {label} at leftover-map origin ζ {item}`
when leftoverMapPlotCoordinatePairIsOrigin returns true, so they stay distinct from leftover-map
comparison graphic leftover-map criterion leftover-map item coordinates
`leftover map comparison graphic leftover-map criterion {label} at ζ {item}`,
leftover-map graphic leftover-map criterion leftover-map origin leftover-map item coordinates
`leftover-map criterion {label} at leftover-map origin ζ {item}`,
and leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates
`Open leftover map comparison graphic leftover-map post {title} at leftover-map origin ξ {person}`.
It does not add columns. Do not invent a leftover score. Do not invent a theta.

This protected increment uses **0350** so it does not collide with leftover-map comparison graphic leftover-map
post leftover-map origin leftover-map person coordinates independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates
(0349) or leftover-map leftover-axis origin ticks (#877).

## Decision

On leftover-map comparison graphic leftover-map criterion markers, caption leftover-map origin
when leftoverMapPlotCoordinatePairIsOrigin returns true. Rank-0 unused axes still name leftover-map
origin `(0.00, 0.00)`. Non-origin leftover-map item coordinates stay leftover-map comparison graphic leftover-map criterion leftover-map
item coordinate keys. leftoverMapPlotCriterionBadge, leftoverMapComparePlotPostBadge,
leftoverMapPlotPostBadge, leftoverMapListCriterionBadge, leftoverMapCompareListCriterionBadge, leftoverMapPlotTickAxisBadge,
leftoverMapComparePlotTickAxisBadge, leftoverMapCompareAxisTickBadge, and leftoverMapAxisTickBadge
do not change leftover-map origin naming this increment.

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 comparison graphic leftover-map criterion leftover-map origin leftover-map item
coordinates name leftover-map origin independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates. Rank-0 unused
axes still name leftover-map origin `(0.00, 0.00)`. leftoverMapPlotCriterionBadge stays leftover-map graphic leftover-map
criterion leftover-map origin leftover-map item coordinate keys. leftoverMapComparePlotPostBadge
stays leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinate keys. leftover-map comparison graphic leftover-map
criterion leftover-map item coordinates independently of leftover-map post ξ markers
(ADR 0336) remain.

## Related

Independent of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person
coordinates independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates
([ADR 0349](0349-leftover-map-compare-plot-post-origin-badge.md)). Independent of leftover-map
item coordinates on leftover-map comparison graphic leftover-map criterion markers independently of leftover-map
post ξ markers ([ADR 0336](0336-leftover-map-compare-plot-criterion-coordinates.md)). Independent of leftover-map
graphic leftover-map criterion leftover-map origin leftover-map item coordinates independently of leftover-map
person coordinates ([ADR 0347](0347-leftover-map-plot-criterion-origin-badge.md)). Independent of leftover-map
leftover-axis origin ticks independently of leftover-map axis share and leftover-map singular values
([ADR 0346](0346-leftover-map-axis-tick-origin-badge.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.)
10 changes: 10 additions & 0 deletions docs/product-technical-gap-baseline.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Product & Technical Gap Baseline

> Exact-head loop overlay: 2026-09-02 07:32 KST. Protected `main` is
> `3f61c8242b9c02dec307a7396e83e28f7cdd9f3d`. Writes work. Do not
> self-approve. #893 leftover-map comparison graphic leftover-map post leftover-map origin leftover-map
> person coordinates independently of leftover-map graphic leftover-map post leftover-map origin leftover-map person coordinates (v2.106.0 / ADR 0349) is
> `f2a1860`, stacked on #892 @ `c941929`. Independent APPROVE is missing (Devin COMMENTED,
> not APPROVE). Next buyer increment on this cycle: leftover-map comparison graphic leftover-map criterion leftover-map origin leftover-map
> item coordinates independently of leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinates as leftoverMapComparePlotCriterionBadge (ADR 0350 / v2.107.0) delivered locally on
> `feat/leftover-map-compare-plot-criterion-origin-badge-v21070`. Distinct accessible name
> `leftover map comparison graphic leftover-map criterion {label} at leftover-map origin ζ {item}`. Rank-0 unused axes still name leftover-map origin `(0.00, 0.00)`. leftoverMapPlotCriterionBadge stays leftover-map graphic leftover-map criterion leftover-map origin leftover-map item coordinate keys. leftoverMapComparePlotPostBadge stays leftover-map comparison graphic leftover-map post leftover-map origin leftover-map person coordinate keys. Do not invent leftover-map origin from leftover-map person coordinates `ξ`. Do not mix #877. Stack onto #893. 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. #96 closed as weaker duplicate of #91.

> Exact-head loop overlay: 2026-09-01 02:25 KST. Protected `main` is
> `cb187cadee5fb6c46d8a944815ccc154a1e028d1`. Writes work. Do not
> self-approve. #892 leftover-map graphic leftover-map post leftover-map origin leftover-map
Expand Down
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "frontend",
"private": true,
"version": "2.106.0",
"version": "2.107.0",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
7 changes: 6 additions & 1 deletion frontend/src/components/LeftoverMapPlot.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1000,8 +1000,13 @@ describe("LeftoverMapPlot", () => {
/>,
);
expect(
screen.getByLabelText("leftover map comparison graphic leftover-map criterion sales-lead at ζ (0.00, 0.00)"),
screen.getByLabelText(
"leftover map comparison graphic leftover-map criterion sales-lead at leftover-map origin ζ (0.00, 0.00)",
),
).toBeInTheDocument();
expect(
screen.queryByLabelText("leftover map comparison graphic leftover-map criterion sales-lead at ζ (0.00, 0.00)"),
).not.toBeInTheDocument();
expect(
screen.getByRole("button", {
name: "Open leftover map comparison graphic leftover-map post Public post at leftover-map origin ξ (0.00, 0.00)",
Expand Down
Loading