chore(comments): drop epic, sprint and review-round ids from the code

The code cited its plan instead of saying why: `E28 review J4`, `(R6 S3b)`, `S1 justified…`,
`deep-review round 5`. That plan lives in the private ops repo, so for every reader of this one the
citation was noise, and a sentence whose subject was the plan step ("round 2 showed…") hid its
lesson behind an id. Each one is gone and the "why" kept: a bare citation is deleted, a sentence
carrying a lesson is reworded around it ("a later attempt showed…").

Measured (`scripts/audit_metrics.py`, product code): 652 lines in 270 files carried an epic code by
the definition the next commit holds (507 / 241 by the old, two-digit-only one) -> 0. Across all
code, tests, scripts and configs: ~1100 epic-code lines plus ~320 sprint/round ids.

Behaviour unchanged, checked mechanically: every changed .py file has the same AST once docstrings
are blanked; css/sh/toml/yml/json files are identical once comments are stripped; the only
non-comment changes in TS/JS are test titles, one description string in a contract table, and five
ESLint messages, whose text is all the gates snapshot diff holds. Not touched: Markdown (docs and
the changelog keep their history), Alembic migrations, TV episode notation (`S2 · E5`), DESIGN.md
ids (`C1`, `B4`, `S3h`), tracker ids (`SEC-16`, `DX-17`).

One stale claim fixed on the way: test_hls_reaper's docstring said the player checkpoints "every
10 s whether or not it is playing", which plex/stream.py calls wrong; it now says what the code does.
This commit is contained in:
2026-10-05 00:19:39 +02:00
parent c73d8be094
commit 4aaaaa7860
669 changed files with 1831 additions and 1904 deletions
+8 -8
View File
@@ -87,7 +87,7 @@ describe("useListNav", () => {
expect(screen.getByTestId("a1").getAttribute("tabindex")).toBe("-1");
});
// The player (E11 S2) restores focus to whatever held it when it opened. If the item gave its
// The player restores focus to whatever held it when it opened. If the item gave its
// tabindex back on blur, that restore would silently fail and focus would fall to <body>.
it("keeps the item focusable after focus leaves it, so a dialog can restore onto it", () => {
render(
@@ -112,7 +112,7 @@ describe("useListNav", () => {
expect(focused()).toBe("a1");
});
// Owner decision D4: j/k walk every collection on the page in reading order.
// Owner decision: j/k walk every collection on the page in reading order.
it("continues into the next list, and back, in document order", () => {
render(
<>
@@ -272,7 +272,7 @@ describe("useListNav · measured lists (rails and plain grids)", () => {
);
});
// Owner decision D4: ↑↓ from a rail go to the rail above or below, not nowhere.
// Owner decision: ↑↓ from a rail go to the rail above or below, not nowhere.
it("goes on from a list's bottom row to the next list's nearest item, and back up", () => {
withLayout(
// Two rails of four; the lower one sits 30px further right.
@@ -350,7 +350,7 @@ describe("useListNav · keys and lists it must leave alone", () => {
});
});
describe("useListNav · the roving tabindex and a removed item (deep-review E11 round 1)", () => {
describe("useListNav · the roving tabindex and a removed item", () => {
// A tile that is a native <button> is a Tab stop already. A tabindex="-1" on it took it out of the
// Tab order until the next `j` moved elsewhere: Shift+Tab back to a genre tile skipped it.
it("leaves an item that is a Tab stop in its own right out of the tabindex it roves", () => {
@@ -430,7 +430,7 @@ describe("useListNav · the roving tabindex and a removed item (deep-review E11
});
});
describe("useListNav · leaving the list, and naming the item (deep-review E11 round 2)", () => {
describe("useListNav · leaving the list, and naming the item", () => {
function Swappable({ ids }: { ids: number[] }) {
const ref = useRef<HTMLDivElement>(null);
useListNav(ref, { enabled: true });
@@ -514,7 +514,7 @@ describe("useListNav · leaving the list, and naming the item (deep-review E11 r
// A Plex poster's open element is the whole card — badges, title, year, rating and summary — and a
// season card's holds only the hover caption "Open show": named from that text, every season was
// "Open show" (deep-review E11 round 3). The item's own name wins.
// "Open show". The item's own name wins.
it("names a card by the name its item gives, over the text of what it opens", () => {
function Posters() {
const ref = useRef<HTMLDivElement>(null);
@@ -535,7 +535,7 @@ describe("useListNav · leaving the list, and naming the item (deep-review E11 r
});
// Hide a card, then Undo in the toast that put up: focus on the toast's button is not the reader
// leaving the list, and `j` goes on from the card put back (deep-review E11 round 3).
// leaving the list, and `j` goes on from the card put back.
it("keeps the slot when focus went to the Undo of a toast", () => {
withLayout(
(_, n) => ({ left: 0, top: n * 100 }),
@@ -563,7 +563,7 @@ describe("useListNav · leaving the list, and naming the item (deep-review E11 r
});
});
describe("useListNav · Delete (E28 S3e2: a playlist row's X became the Delete key)", () => {
describe("useListNav · Delete (a playlist row's X became the Delete key)", () => {
function Deletable({ onDelete }: { onDelete?: boolean }) {
const [ids, setIds] = useState([0, 1, 2]);
const ref = useRef<HTMLDivElement>(null);