Make ExpectedConstants give the same names whichever loader is loaded #1735

Open
opened 2026-11-12 21:37:47 +00:00 by jared · 0 comments
Owner

Problem

ExpectedConstants gives a different name set depending on which loader the process loaded before it, so its answer depends on call order (#1718).

Observed

In the comparison of 2026-11-12, ExpectedConstants gave 974 names in a fresh process and 1,187 after another loader was loaded.

Reproduce

n/a: the comparison script is outside the repository (/home/jared/dev/house-explore-replay/pilot10/constant-names-2026-11-12/resolvers/).

Approach

Not decided; the takedown designs it. ExpectedConstants stays the owner of the Zeitwerk expected-file table (#1718 body).

Required work: none beyond the acceptance criteria.

Origin

  • Trigger: split of #1718 by Jared (rulings 145 and 146 in docs/decisions/rulings.tsv, 2026-11-12) after takedown run docs/takedown/1718-20261112-160038/ failed green-suite; parent #1718
  • Improvised this session: none
  • Chain: 974 versus 1,187 names by load order ← no object owns facts read from parsed Ruby code, so each detector, lint check, and cop writes its own copy ← DESIGN (#1718; docs/system-design-format/README.md:242)
  • Root candidate: none found; searched ExpectedConstants, load order, Zeitwerk expected files
  • Where: plugins/os-sdlc/lib/os_sdlc/expected_constants.rb
  • Session: 784c0808-1e40-4296-8f93-77c40ca419c2
  • Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/784c0808-1e40-4296-8f93-77c40ca419c2.jsonl

VERDICT: CREATE
REASON: Jared ruled the split of #1718 (ruling 146); the backlog search found no open ticket with the same mechanism.

## Problem `ExpectedConstants` gives a different name set depending on which loader the process loaded before it, so its answer depends on call order (#1718). ## Observed In the comparison of 2026-11-12, `ExpectedConstants` gave 974 names in a fresh process and 1,187 after another loader was loaded. ## Reproduce n/a: the comparison script is outside the repository (`/home/jared/dev/house-explore-replay/pilot10/constant-names-2026-11-12/resolvers/`). ## Approach Not decided; the takedown designs it. `ExpectedConstants` stays the owner of the Zeitwerk expected-file table (#1718 body). Required work: none beyond the acceptance criteria. ## Origin - Trigger: split of #1718 by Jared (rulings 145 and 146 in `docs/decisions/rulings.tsv`, 2026-11-12) after takedown run `docs/takedown/1718-20261112-160038/` failed green-suite; parent #1718 - Improvised this session: none - Chain: 974 versus 1,187 names by load order ← no object owns facts read from parsed Ruby code, so each detector, lint check, and cop writes its own copy ← DESIGN (#1718; `docs/system-design-format/README.md:242`) - Root candidate: none found; searched ExpectedConstants, load order, Zeitwerk expected files - Where: `plugins/os-sdlc/lib/os_sdlc/expected_constants.rb` - Session: 784c0808-1e40-4296-8f93-77c40ca419c2 - Transcript: /home/jared/.claude/projects/-home-jared-dev-cc-os-plugins-os-sdlc/784c0808-1e40-4296-8f93-77c40ca419c2.jsonl VERDICT: CREATE REASON: Jared ruled the split of #1718 (ruling 146); the backlog search found no open ticket with the same mechanism.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jared/cc-os#1735
No description provided.