Move SystemModel::Extractor constant definitions onto CodeShape #1731

Open
opened 2026-11-12 21:37:44 +00:00 by jared · 1 comment
Owner

Problem

SystemModel::Extractor keeps its own definition table and misses 328 internal names that exist in lib, so the system model drops collaborator edges (#1718). Blocked by #1729.

Observed

The resolver comparison of 2026-11-12 (/home/jared/dev/house-explore-replay/pilot10/constant-names-2026-11-12/resolvers/report.txt) shows the extractor walk (P1a) with 1,201 names against 1,823; most misses are constants assigned with plain =. The extractor keeps only the first file of a reopened class. It parses lib/**/*.rb four times in one run: extractor.rb:57, extractor.rb:69, base_namespaces.rb:13, and CopOffenses.

Reproduce

n/a: design finding; the comparison script is outside the repository.

Approach

Not decided; the takedown designs it. Ruling 142 (predicted, 74): collaborator edges may change where the present rule is wrong; element ids stay byte-identical (ADR-0300); record the before and after edge diff on os-sdlc and show it to Jared.

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: the system model misses 328 internal names ← 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 SystemModel::Extractor, collaborator edges, constant definitions, reopened class
  • Where: plugins/os-sdlc/lib/os_sdlc/system_model/extractor/ (walk.rb, fact_scan.rb, class_visitor.rb, resolver.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 `SystemModel::Extractor` keeps its own definition table and misses 328 internal names that exist in `lib`, so the system model drops collaborator edges (#1718). Blocked by #1729. ## Observed The resolver comparison of 2026-11-12 (`/home/jared/dev/house-explore-replay/pilot10/constant-names-2026-11-12/resolvers/report.txt`) shows the extractor walk (P1a) with 1,201 names against 1,823; most misses are constants assigned with plain `=`. The extractor keeps only the first file of a reopened class. It parses `lib/**/*.rb` four times in one run: `extractor.rb:57`, `extractor.rb:69`, `base_namespaces.rb:13`, and `CopOffenses`. ## Reproduce n/a: design finding; the comparison script is outside the repository. ## Approach Not decided; the takedown designs it. Ruling 142 (predicted, 74): collaborator edges may change where the present rule is wrong; element ids stay byte-identical (ADR-0300); record the before and after edge diff on os-sdlc and show it to Jared. 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: the system model misses 328 internal names ← 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 SystemModel::Extractor, collaborator edges, constant definitions, reopened class - Where: `plugins/os-sdlc/lib/os_sdlc/system_model/extractor/` (`walk.rb`, `fact_scan.rb`, `class_visitor.rb`, `resolver.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.
Author
Owner

Also blocked by #1741 (CodeShape::Definitions). #1729 builds only CodeShape::LexicalScope.

Also blocked by #1741 (CodeShape::Definitions). #1729 builds only CodeShape::LexicalScope.
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#1731
No description provided.