Add CodeShape::Definitions and move the ConceptCycleCheck::References definition table onto it #1741

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

Problem

CodeShape has no definition table. The #1729 design built only CodeShape::LexicalScope and kept the definition table inside Lint::ConceptCycleCheck::References. Tickets #1730 to #1733 move callers onto shared CodeShape definitions, so they need this table first (#1718, rulings 144 to 146).

Observed

Takedown run docs/takedown/1729-20261112-163805/, grade: "the same class of per-caller constant-resolution copies remains in ... References' own definitions table". Its Known risks: "the definitions table stays in References. True and intended for this part. The table is a separate responsibility and moves in a later CodeShape part."

Reproduce

n/a: design split; see the takedown run directory above.

Approach

Not decided; the takedown designs it. CodeShape::Definitions holds each definition site: name, kind, path, line, and every file of a reopened class. Kinds: class, module, constant write, Data.define, Struct.new, Class.new. It uses CodeShape::LexicalScope to name each site. ConceptCycleCheck::References reads it and deletes its own @defs table. Blocked by #1729.

Required work: none beyond the acceptance criteria.

Origin

  • Trigger: takedown run 1729-20261112-163805 built LexicalScope only; ruling 144 named Definitions the first increment
  • Improvised this session: none
  • Chain: callers #1730-#1733 have no shared table to move onto ← the #1729 design kept the table in References ← no object owns facts read from parsed Ruby code ← DESIGN (#1718)
  • Root candidate: none found; searched CodeShape, Definitions, ConceptCycleCheck::References, @defs, constant definitions (incomplete: the skeptic lost Bash; siblings #1729-#1740 checked by the orchestrator)
  • Where: plugins/os-sdlc/lib/os_sdlc/lint/concept_cycle_check/references.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: Part of the split Jared ruled for #1718 (ruling 146); no open ticket builds CodeShape::Definitions.

## Problem `CodeShape` has no definition table. The #1729 design built only `CodeShape::LexicalScope` and kept the definition table inside `Lint::ConceptCycleCheck::References`. Tickets #1730 to #1733 move callers onto shared `CodeShape` definitions, so they need this table first (#1718, rulings 144 to 146). ## Observed Takedown run `docs/takedown/1729-20261112-163805/`, grade: "the same class of per-caller constant-resolution copies remains in ... References' own definitions table". Its Known risks: "the definitions table stays in References. True and intended for this part. The table is a separate responsibility and moves in a later CodeShape part." ## Reproduce n/a: design split; see the takedown run directory above. ## Approach Not decided; the takedown designs it. `CodeShape::Definitions` holds each definition site: name, kind, path, line, and every file of a reopened class. Kinds: class, module, constant write, `Data.define`, `Struct.new`, `Class.new`. It uses `CodeShape::LexicalScope` to name each site. `ConceptCycleCheck::References` reads it and deletes its own `@defs` table. Blocked by #1729. Required work: none beyond the acceptance criteria. ## Origin - Trigger: takedown run `1729-20261112-163805` built `LexicalScope` only; ruling 144 named `Definitions` the first increment - Improvised this session: none - Chain: callers #1730-#1733 have no shared table to move onto ← the #1729 design kept the table in References ← no object owns facts read from parsed Ruby code ← DESIGN (#1718) - Root candidate: none found; searched CodeShape, Definitions, ConceptCycleCheck::References, @defs, constant definitions (incomplete: the skeptic lost Bash; siblings #1729-#1740 checked by the orchestrator) - Where: `plugins/os-sdlc/lib/os_sdlc/lint/concept_cycle_check/references.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: Part of the split Jared ruled for #1718 (ruling 146); no open ticket builds CodeShape::Definitions.
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#1741
No description provided.