Skip to content

DO NOT MERGE: probe that pagelint --changed fires on pull_request - #73

Closed
iancooper wants to merge 1 commit into
docs/spec-011-page-bannersfrom
ci/pagelint-changed-probe
Closed

DO NOT MERGE: probe that pagelint --changed fires on pull_request#73
iancooper wants to merge 1 commit into
docs/spec-011-page-bannersfrom
ci/pagelint-changed-probe

Conversation

@iancooper

Copy link
Copy Markdown
Member

Throwaway probe for spec 011 Task 5.2. Expected to go red.

Task 5.2 exists because a --changed step that finds no changed ranges passes vacuously — the worst outcome, since the strict code rules would then never fire and the build would stay green while enforcing nothing.

This PR changes one character inside the C# block at contents/AWSSQSConfiguration.md:29, which has no using directives. Expected:

  • python3 tools/pagelint.py (repo-wide) — green, 0 errors / 840 warnings
  • python3 tools/pagelint.py --changed origin/$BASE_REFred, 1 error on that block alone

Will be closed and the branch deleted as soon as the run is observed. Do not merge.

…st event (spec 011, Task 5.2)

One character inside the using-less C# block at AWSSQSConfiguration.md:29.
The repo-wide pagelint step should stay green; the pull-request --changed
step should go red on exactly that block. Closed and deleted once observed.
@iancooper

Copy link
Copy Markdown
Member Author

Probe succeeded — closing as planned, not merging.

On the pull_request event the checked-out ref is a merge commit, and the question Task 5.2 asks is whether origin/<base_ref> still resolves to something real. It does:

  • BASE_REF: docs/spec-011-page-banners reached the step through env
  • the merge-base resolved — no exit 2, which is what pagelint.py returns rather than passing vacuously when it cannot work out what changed
  • contents/AWSSQSConfiguration.md:29 is an error (no (warning) suffix); the other fifteen blocks on that same page stayed warnings
  • 1 errors, 839 warnings, exit 1, build red

The repo-wide step stayed green at 0 errors, 840 warnings in the same run, so the two strictness levels are demonstrably independent. No git fetch origin $BASE_REF fallback is needed — fetch-depth: 0 is sufficient.

@iancooper iancooper closed this Aug 5, 2026
@iancooper
iancooper deleted the ci/pagelint-changed-probe branch August 5, 2026 06:59
iancooper added a commit that referenced this pull request Aug 5, 2026
Tasks 5.1, 5.2 and 5.3 ticked; 26 of 43. **AC6 is closed**: both tools run
in CI and either one failing fails the build.

The write-up is § *Phase 5 as executed*, and the part worth keeping is
Task 5.2. Run locally, `--changed` reported 0 errors — the exact shape of
the vacuous pass the task exists to rule out. Taken apart rather than
accepted: `changed_ranges` returns 118 files and 465 hunks, so the ranges
were real and this branch simply touches no C# block. The positive
direction was then forced, first locally and then on PR #73, a
one-character probe closed unmerged as soon as its run was read.

What that run settled, and what no local check could:

- on a `pull_request` event, where the checked-out ref is a merge commit,
  `origin/<base_ref>` **does** resolve. **The contingency `git fetch
  origin ${{ github.base_ref }}` is not needed and was not added.**
- the run went red on `AWSSQSConfiguration.md:29` alone — the other
  fifteen blocks on that page stayed warnings — while the repo-wide step
  stayed green at 0 errors in the same run. The two strictness levels are
  independent in practice, not only in design.

Also recorded: the `versions` guard was checked to propagate exit codes
under `bash -e {0}`, including **2**, which 009 requires not be a pass;
and why `base_ref` was moved off the command line.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012tcdwxVb8NmKaX2S6fvyFg
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.

1 participant