Skip to content

Durable rationales: retain why an edit was made and flag later changes for review #334

Description

@flyingrobots

Product outcome

Attach a rationale to an evidenced edit: “This paragraph addresses reviewer two's objection.” Later, inspect the explanation at its original historical basis. If subsequent edits intersect the relevant material, Jim marks the explanation needs review without claiming its meaning is automatically false.

First independently mergeable scope

An explicit user-authored rationale associated with one admitted edit and a bounded affected range in a Jim-managed document. Store it as Jim-owned admitted application data, referring to opaque existing edit/basis evidence. A bounded subsequent-change observation derives unchanged, needs-review, or unavailable posture. The rationale's historical association is immutable; an updated rationale is a new linked fact.

Acceptance

  • Creating a rationale identifies its originating edit, document basis, relevant range, and authored text; the UI cannot fabricate a receipt or edit identity.
  • Historical inspection shows the rationale with the exact edit/basis it explains after restart.
  • Non-overlapping edits preserve the current review posture; overlapping edits or deletion conservatively mark needs-review when supported by retained range evidence.
  • Missing/pruned or ambiguous range history yields unavailable/uncertain posture rather than unchanged or semantically obsolete.
  • Users can reaffirm or revise a rationale at an explicit newer basis without overwriting the earlier explanation. A concurrent edit invalidates stale reaffirmation assumptions through normal admission checks.
  • Views distinguish the author's stated reason from runtime evidence. A rationale does not prove that an edit achieved its intended outcome.
  • A bounded human/agent inspection path and guarded-Docker witnesses cover creation, unrelated edit, overlapping edit, deletion, historical inspection, reaffirmation, and restart.

Prerequisites and ownership

Proposed prerequisite: #140, because deriving range changes must use the basis-bound explanation/evidence surface rather than matching current strings. #142's proposal rationale remains owned there; this issue retains a rationale attached to an admitted edit, including edits made without an agent. #279's semantic symbol scopes are optional later consumers, not a gate for byte-range support.

Confirm the merged #140 contract exposes the required historical correspondence. If it does not, record a precise prerequisite rather than implying textual overlap can establish semantic relevance.

Exclusions and safe merge state

No automatic psychological explanation, LLM-generated motive, semantic truth detector, review approval system, or universal annotation framework. This is an opt-in association/inspection flow. Existing editing and explanation remain usable when no rationale exists.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cool-ideas™Speculative high-leverage ideas worth exploringenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions