Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions docs/subject-4-sixteen-open-and-one-red-check.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# The pull request to land

I fetched first, then I read. I read this on 1 September 2026 at 09:26 in Coordinated Universal
Time. `origin/main` is at `3b5f6cc2038dfd13b17fc55714b525be076336e4`.

Sixteen pull requests are open in `atlantic-blue/transcript`. They are the numbers 4 to 19.

## The subject

- Number: 4
- Address: https://github.com/atlantic-blue/transcript/pull/4
- Title: fix: report what the platform actually answered instead of a missing video
- Head branch: `diagnose-the-boundary-and-report-the-real-cause`
- Head commit: `9e819482aad60f86b7c085402545b1c49f7cfb53`
- Base branch: `main`
- Draft: no
- Conflicts with `main`: no
- Checks that are not passing: `plan and apply`

## Why I picked this one

A pull request qualifies on a conflict with `main`, or on a failing check, or on both.

No open pull request conflicts with `main`. So the conflict test selects nothing.

Pull request 4 is the only open pull request with a check that is not passing. It is also the
oldest of the sixteen. It opened on 31 August 2026 at 11:30. Every other one opened on
1 September 2026.

## The check that is not passing

The name is `plan and apply`. It started at 09:01 and it completed at 09:05 on 1 September 2026.
Its conclusion is failure. The job is here:

https://github.com/atlantic-blue/transcript/actions/runs/33490002826/job/99798994134

Three check runs exist on the head commit:

- `code`, completed, success.
- `infrastructure`, completed, success.
- `plan and apply`, completed, failure.

## The pull request summary hides that check

`gh pr checks 4` prints two lines. It prints `code` and it prints `infrastructure`. It calls both a
pass, and it exits 0. It does not print `plan and apply`.

Read the check runs on the head commit instead:

```
gh api repos/atlantic-blue/transcript/commits/9e819482aad60f86b7c085402545b1c49f7cfb53/check-runs \
--jq '.check_runs[] | "\(.name) \(.status) \(.conclusion)"'
```

That command prints three names. One of them is a failure.

The trigger causes the difference. `plan and apply` is the only job in the `deploy` workflow. That
workflow starts on a push to `main`, and it starts on a manual start. It does not start on a pull
request, so GitHub keeps the run out of the pull request summary. An absent check looks the same as
a passing check.

## No check is mandatory in this repository

I read three endpoints today. `branches/main/protection` answers 404 with "Branch not protected".
`rulesets` answers with an empty list. The combined status endpoint answers `pending` with zero
contexts.

So no check is mandatory here, and no check blocks a merge. I read the test as "a check that is not
passing", not as "a check that a branch rule makes mandatory". I name that judgement, because it
decides the answer. Under the strict reading nothing is eligible, and a real red check on the
oldest pull request stays hidden.

## The exclusions I checked

Draft: no pull request is a draft. `isDraft` is false on all sixteen.

A head branch that another pull request is based on: every `baseRefName` is `main`. No pull request
is based on another pull request's head branch. So landing pull request 4 breaks no child.

Conflicts: GitHub answers `MERGEABLE` and `CLEAN` for all sixteen. I did not trust that answer
alone. I ran `git merge-tree --write-tree origin/main <head>` for each one. Each command exits 0 and
prints no conflict line.

## The other fifteen open pull requests, and why each is not eligible

Each one is newer than pull request 4. Each one carries two check runs, `code` and
`infrastructure`, and both pass. None conflicts with `main`. None is a draft. None is the base of
another pull request. So none qualifies.

- Number 5, `docs: name the pull request to land`, head `46b9460a`, opened 00:57. Adds `subject.md`.
- Number 6, `docs: the subject to land is pull request 4`, head `9597c60c`, opened 07:12. Adds `subject.md`.
- Number 7, `docs: name pull request 4 as the subject to land`, head `e44acfdb`, opened 07:13. Adds `subject.md`.
- Number 8, `docs: say what landing pull request 4 found`, head `c2878ae4`, opened 07:23. Adds `land.md`.
- Number 9, `docs: record pull request 4 as the subject to land`, head `d3ced9d9`, opened 07:33. Adds `docs/subject.md`.
- Number 10, `docs: record what landing pull request 4 found`, head `a258d485`, opened 07:44. Adds `docs/land.md`.
- Number 11, `docs: name pull request 4 as the subject to land`, head `b09ec2fc`, opened 07:51. Adds `docs/the-subject-to-land.md`.
- Number 12, `docs: record what landing pull request 4 found`, head `0a959240`, opened 07:58. Adds `docs/landing-pull-request-4.md`.
- Number 13, `docs: name pull request 4 as the subject to land`, head `f5f866f9`, opened 08:04. Adds `docs/subject-pull-request-4.md`.
- Number 14, `docs: record what landing pull request 4 found`, head `cd85b465`, opened 08:12. Adds `docs/land-pull-request-4-the-address-is-refused.md`.
- Number 15, `docs: the subject to land is pull request 4, red on plan and apply`, head `4ba306a0`, opened 08:20. Adds `docs/the-subject-is-pull-request-4.md`.
- Number 16, `docs: record what landing pull request 4 found`, head `0a694313`, opened 08:29. Adds `docs/land-pull-request-4-the-check-is-red-on-main.md`.
- Number 17, `docs: name pull request 4 as the subject to land`, head `0279053a`, opened 08:36. Adds `docs/subject-4-the-oldest-with-a-red-check.md`.
- Number 18, `docs: record pull request 4 as the only open one with a red check`, head `cd720f35`, opened 09:13. Adds `docs/subject-4-the-only-red-check-of-fourteen.md`.
- Number 19, `docs: record why the deploy gate on pull request 4 stays red`, head `864f2c1b`, opened 09:23. Adds `docs/land-4-the-address-is-refused-and-the-code-is-proved.md`.

Numbers 5, 6, 7, 9, 11, 13, 15, 17 and 18 are the output of earlier rounds of this same task. Each
one names pull request 4. Numbers 8, 10, 12, 14, 16 and 19 report the round that worked it.

## A collision that is already there

Numbers 5, 6 and 7 each add `subject.md` at the root of the repository. `main` holds no such file,
so none of the three conflicts with `main` today. The first of them to merge creates the file. Then
the other two conflict on add over add, and a person must resolve them by hand.

The pull request that carries this report adds `docs/subject-4-sixteen-open-and-one-red-check.md`.
I read the file list of all sixteen open pull requests. No other one touches that path, so it
conflicts with none of them.

## What an earlier round already found on pull request 4

One earlier round worked pull request 4 to the end. Its report ships as numbers 10, 12, 14, 16 and
19. I did not measure these readings again. Read them as context, not as facts I verified today.

- The branch needs no merge. `origin/main` at `3b5f6cc2` is an ancestor of the head.
- Every gate that runs in a sandbox passes on the branch. The suite is 127 tests.
- The red step is a correct gate. It asks the deployed page for a transcript and does not get one.
- The platform refuses the deployed function with a bot check.
- The block is on the address the function calls from, not on the client the request claims to be.
- The fix needs an egress address that the platform accepts. Every option for that bills while
nobody visits, and `CLAUDE.md` refuses those by name. A person must decide.

## What I verified today

I verified the state that decides the pick: the list of open pull requests, the draft flag, the
base branch, the mergeability by `git merge-tree`, and the check runs on every head commit. I read
each one on 1 September 2026 after a fetch.
Loading