Skip to content

Context-staleness checkpoint at phase boundaries on a moving main #117

Description

@rdbruhn

Problem

The artifact chain (CONTEXT.md → SPEC.md → NAVIGATION.md) can span days, but nothing re-checks that the codebase landscape held. On an active repo where concurrent PRs land between phases, CONTEXT.md written by vine:verify silently goes stale, and vine:inquire / vine:navigate then plan against a codebase that no longer exists. This is the dominant brownfield failure mode, and the design currently has no guard for it: codebase facts are deliberately regenerate-on-demand (good), but there's no trigger to regenerate at the right moments.

The repo already feels this — parallel sessions landing work concurrently is a known hazard.

Suggestion

A lightweight "refresh against current main" checkpoint at phase boundaries — at minimum when vine:inquire starts and when vine:navigate resumes/starts a new phase group:

  • Detect drift cheaply: has main moved since CONTEXT.md was written? (timestamp/SHA recorded at verify time vs. now; git log on the touched areas.)
  • If drift touches the feature's areas, surface it and offer to re-run the relevant slice of verify rather than silently proceeding. If main hasn't moved, no-op (no friction on the common solo case).

Mechanism, not just prose: record the base SHA at verify time so the staleness check is mechanical. Backward-compatible — absence of a recorded base SHA falls back to today's behavior (no check).

Metadata

Metadata

Assignees

No one assigned

    Labels

    ideaNew behavior, hook pattern, or workflow improvement

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions