Problem
A byte-range explanation can prove text ancestry, but symbol and function questions require Graft-derived semantic boundaries. Applying a stale semantic range to a newer rope head would make the explanation causally false.
Goal
Resolve symbol and function scopes through a basis-pinned Graft observation, then feed the resulting Jim UTF-8 range into the runtime-backed :why evidence pipeline.
Acceptance criteria
- Symbol/function observations identify their rope head, Graft projection identity, parser/materializer version, and coverage.
- The resulting UTF-8 range is accepted only when its head matches the requested
:why basis.
- Stale, partial, unsupported, or unavailable semantic projections return typed obstructions.
- The underlying text ancestry still comes from the same bounded range-evidence contract used by character, line, and selection explanations.
- Human and machine-readable output distinguish derived semantic scope from authoritative text facts.
Constraints
- Graft does not become text authority.
- Jim does not silently rebase semantic coordinates.
- No UI-only or pixel-scraped evidence.
Problem
A byte-range explanation can prove text ancestry, but symbol and function questions require Graft-derived semantic boundaries. Applying a stale semantic range to a newer rope head would make the explanation causally false.
Goal
Resolve symbol and function scopes through a basis-pinned Graft observation, then feed the resulting Jim UTF-8 range into the runtime-backed
:whyevidence pipeline.Acceptance criteria
:whybasis.Constraints