Skip to content

chore(php-transformer): retire the capture-evidence equivalence gate - #2855

Merged
chubes4 merged 1 commit into
trunkfrom
chore/retire-capture-evidence-equivalence
Oct 15, 2026
Merged

chubes4 merged 1 commit into
trunkfrom
chore/retire-capture-evidence-equivalence

Conversation

@chubes4

@chubes4 chubes4 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Closes #2846

Why

capture-evidence-equivalence was a migration proof. It showed that moving to the producer-neutral capture vocabulary (#2725, merged 2026-10-13) lost no behavior, by replaying the pre-move test corpus against digests recorded from the pre-move commit. That proof is complete.

It then stayed in composer test. In the two days since, 24 more PRs had to re-record its digests by hand (git log -- php-transformer/tests/fixtures/capture-evidence-equivalence/expected.json), #2842 included. Each one also had to add a "deliberate fidelity change" entry to its README. Its failures are digest-only, so a contributor cannot tell an intentional output change from a regression. In #2837 a coding agent found the correct fix, saw "numerous digest mismatches", and reverted it.

Behavior is covered by the contract and unit tests for each feature. This gate only compared output against a frozen commit.

Change

All deletions:

  • tests/contract/capture-evidence-equivalence.php
  • tests/contract/support/CaptureEvidenceEquivalence.php
  • tests/fixtures/capture-evidence-equivalence/ (corpus and expectations)
  • tools/capture-evidence-equivalence/ (5 scripts and README)
  • its line in composer.json
  • the "Equivalence" section of docs/contracts/capture-evidence.md

Nothing else references them. capture-evidence-vocabulary.php, which enforces the vocabulary itself, stays.

Verification

composer lint: clean. composer test: passes (TEST_EXIT=0).


Prepared with Claude (Anthropic) via the Pi coding agent: Claude traced the #2837 agent failure to this gate, measured its re-record history, removed it, and ran the suite.

The gate proved the move to the neutral capture vocabulary (#2725) lost no
behavior. That move is merged; since then every intentional output change
has had to re-record its digests by hand.
@chubes4
chubes4 merged commit 68e7a65 into trunk Oct 15, 2026
11 checks passed
@chubes4
chubes4 deleted the chore/retire-capture-evidence-equivalence branch October 15, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Capture-evidence equivalence: no way to diff or re-record cases after an intentional output change

1 participant