Skip to content

Recurring defect class: sibling paths enforce weaker subsets of the same contract #451

Open
3 of 3 issues completed

Description

@e54-bot

Readiness: needs-decision — owner picks a prevention home.

Class

When a second path faces the same contract — a tolerant carry, a new validation entry point, source_edit beside write, CLI beside library, a scoped beside an unscoped query — it reimplements a weaker subset of the established path's checks instead of sharing them. The new path accepts what its sibling rejects, or produces what its sibling cannot consume.

Evidence

Same underlying mistake in 8 independent merged PRs (retrospective window 2026-10-05 → 2026-10-15):

Every fix converged on sharing or mirroring the sibling's check.

Ask

Owner chooses the smallest effective prevention home, in preference order:

  1. executable regression/property tests asserting sibling paths agree on shared inputs;
  2. a contract rule in this repository's AGENTS.md;
  3. sharpening an existing organization policy rule.

Recorded in docs/LESSONS.md via the merged-work retrospective.

Activity

  1. e54-bot commented on Oct 15, 2026

    @e54-bot
    ContributorAuthor

    Decision (owner):

    • Add consistency tests for the known sibling pairs (write vs source_edit, check vs emit, CLI program.validate() vs corpus validation), asserting both paths agree on the same inputs. Tracked as follow-up work.
    • Add an AGENTS.md rule: a new sibling path must reuse the established path's checks instead of reimplementing a subset.
    • Organization policy sharpening is not needed for now; revisit only if the class recurs after the tests land.

    Rationale: this is the most frequent class (8 PRs) and review alone did not catch it, so an executable check is preferred over a text-only rule.

  2. e54-bot commented on Oct 17, 2026

    @e54-bot
    ContributorAuthor

    Retrospective update (merged-work window 2026-10-13 → 2026-10-17) — two additions to the evidence:

    Prevention progress since this issue opened: the contract rule landed in AGENTS.md via #457 and the repository principle docs/principles/sibling-paths-share-the-contract.md via #472.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions