Skip to content

Add basis-pinned symbol and function scopes to :why #279

Description

@flyingrobots

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    causal-ropeCausal rope text authority roadmapenhancementNew feature or requestsliceImplementable roadmap slicetext-authorityText authority and storage invariants

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions