Skip to content

docs/plans: inert-layer lens — observe modeled-but-unreached layers (+ live census) - #5479

Merged
briansrls merged 4 commits into
mainfrom
doc/inert-layer-lens
Jun 21, 2026
Merged

briansrls merged 4 commits into
mainfrom
doc/inert-layer-lens

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

Operator ask: a lens to observe inert / unwired layers — especially ones that seem load-bearing but are unwired.

This is a design + a real census (model-before-implement), not yet the lens itself.

The core idea: inert = declared AND not reachable from a live run-root. Reachability, not reference-count — because a carrier with consumers can still be inert if the consumers are themselves inert (a self-referencing cluster). Measured proof: RealizationObjective and ComputeOffer each have 4 consumer files, but the first is live (ci_floor_plan→realization_width→it) and the second reaches nothing that runs.

Census (the discriminating witnesses the lens must reproduce):

  • Inert + load-bearing (0 live consumers): CacheLayerPlan, WorkDemand, ParallelismShape/IndependentShards/PartitionedReduce, Partitioner, execution_receipt_digest (a stub returning work.id).
  • Edge-wired: ComputeOffer/the fleet model — projected to RunnerSpec but ci.yml's runner block is still a literal.
  • Now-wired (don't false-positive): RealizationObjective/realization_width — the memory-aware width landed.

Reuses, does not fork (§3): generalizes the #5433 inert-lens backstop (same module-reachability BFS, cli_run.rs:2558), concept_index.enumerate_concepts(), unused_parameters' BindsTo-is-the-use authority.

Two tiers: module-level buildable now; symbol-level needs whole-corpus BindsTo enumeration (gated on #5364 like concept_index).

Frontier placement: a ② observing lens now (ranked report + a named shrinking exception roster for staged-ahead carriers) → promote to a ① fail-closed wall once the roster empties — same ratchet→wall shape as the realization-vocab guard.

Open questions in §8 (run-root set; Tier-1-now vs wait for symbol granularity).

🤖 Generated with Claude Code

briansrls and others added 4 commits June 21, 2026 19:06
…ive census

Operator ask: a lens to observe inert/unwired layers, especially ones that SEEM load-bearing
but are unwired. Design + a real census (measured 2026-06-21):
- inert = declared AND not reachable from a live RUN-root (reachability, not reference-count:
  RealizationObjective and ComputeOffer both have 4 consumers but the first is live via
  ci_floor_plan→realization_width, the second reaches nothing that runs).
- target class (0 live consumers, load-bearing): CacheLayerPlan, WorkDemand, ParallelismShape/
  IndependentShards/PartitionedReduce, Partitioner, execution_receipt_digest stub.
- generalizes the #5433 inert-lens backstop (does NOT fork it): same module-reachability BFS,
  widened roots (run not test) + output (all modules not just v2.lens.*).
- two tiers: module-level buildable now (reuse cli_run.rs:2558); symbol-level needs whole-corpus
  BindsTo enumeration, gated on #5364 like concept_index.
- frontier: decidable ② observing lens now → ① fail-closed wall once the staged-ahead exception
  roster empties (same ratchet→wall as the realization-vocab guard).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… looks like one

Operator rule-design question (test consumers? dead transitive consumer? 1-but-should-be-10?).
Classified each against the expressibility-frontier:
- test-consumer: separate root set (run vs test) → 'tested but unrun' bucket; wall only on
  run-root-inert. ①
- transitive dead consumer: never count locally — membership in the complement of the reachable
  set, fixpoint over the whole tree. ①
- dead arms/fields ('should be 10' reading A): arm-level reachability, decidable. ①
- under-consumption ('should be 10' reading B = 10 call-sites should consume it): NOT inertness —
  the §2/§3 redundancy/nicknaming dual; 'should be N' is ③ undecidable directly but ② detectable
  as hand-rolled equivalents. Keep separate from the inert rule (fusing breaks the wall).
Hard rule = 0-reachability, a wall on 3 conditions (enumerable run-roots + reflective edges count
+ shrinking exception roster).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…his doc's ROADMAP line

Operator: extend the reachability rule to DOCS — a plan doc with no ROADMAP link is an orphan,
the same shape as an inert carrier. Added §8 generalization (code · docs · lenses are one rule
over three graphs; docs = the cheapest wall, pure link reachability) with a live census: 18 docs,
13 reachable, 5 orphans + 1 dangling ROADMAP link (expensive-test-cause-table.md referenced twice,
never written). Demonstrates the rule by fixing its own orphan: adds the reachability-completeness
ROADMAP §0-meta line in the SAME PR (a PR adding docs/plans/X.md must wire it — the doc-graph
analog of 'an inert lens is a lie').

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…sus count (bright-stag)

bright-stag (ROADMAP owner) corrections folded in:
- DANGLING REF: repoint ROADMAP line 32's [cause table] link expensive-test-cause-table.md →
  ci-selection-vs-scheduling.md, where the Pop-A/Pop-B debug-amplification content already lives.
  Do NOT create a new doc (§2/§3 — would duplicate). 0 dangling refs remain.
- Corrected the §8 census: the ref was 1× (line 32), not 2× — my first census read a stale local
  ROADMAP behind main's terse pass; added a methodology note that the lens must run against the
  live tree (the discipline it enforces).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@briansrls
briansrls merged commit c27dd30 into main Jun 21, 2026
1 check passed
@briansrls
briansrls deleted the doc/inert-layer-lens branch June 21, 2026 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant