Development record
2026-09-30 — The implement loop arms auto-merge only where the repository's ruleset requires a person's approval, and otherwise leaves the pull request open for a person to merge (the product thinker's ruling AM1 of 2026-09-30, applied by lane amApproval of autonomous run A). AM1, verbatim: "(a) ONLY WHERE APPROVAL IS REQUIRED: abcd arms auto-merge (land.go:703) only when the project's hosting service requires a person's approval; in a project without that rule it leaves the change open for a person to merge. This project unchanged." As built: the arm step reads the same ruleset mirror at the lane's base that names the merge queue, and counts approval as required when an active ruleset on the default branch carries a `pull_request` rule whose `required_approving_review_count` is one or more, or whose `require_code_owner_review` is set while a CODEOWNERS file at the base (`.github/`, the root or `docs/`) names at least one owner; this repository's own mirror (a code-owner review with an approving count of 0 beside `.github/CODEOWNERS`) is that second shape, so it still arms. A code-owner rule with no CODEOWNERS owner asks no person for anything and does not count. A missing mirror requires nothing, so the pull request is left open; a mirror file that cannot be read or parsed stays a refusal, which arms nothing either. Where a queue exists but nothing requires approval, the landing records "left open for a person to merge: the ruleset requires no approval" in its state, the run record and `implement status`, and no later step arms it.
2026-09-30 — The implement loop arms auto-merge only where the repository's ruleset requires a person's approval, and otherwise leaves the pull request open for a person to merge (the product thinker's ruling AM1 of 2026-09-30, applied by lane amApproval of autonomous run A). AM1, verbatim: "(a) ONLY WHERE APPROVAL IS REQUIRED: abcd arms auto-merge (land.go:703) only when the project's hosting service requires a person's approval; in a project without that rule it leaves the change open for a person to merge. This project unchanged." As built: the arm step reads the same ruleset mirror at the lane's base that names the merge queue, and counts approval as required when an active ruleset on the default branch carries a pull_request rule whose required_approving_review_count is one or more, or whose require_code_owner_review is set while a CODEOWNERS file at the base (.github/, the root or docs/) names at least one owner; this repository's own mirror (a code-owner review with an approving count of 0 beside .github/CODEOWNERS) is that second shape, so it still arms. A code-owner rule with no CODEOWNERS owner asks no person for anything and does not count. A missing mirror requires nothing, so the pull request is left open; a mirror file that cannot be read or parsed stays a refusal, which arms nothing either. Where a queue exists but nothing requires approval, the landing records "left open for a person to merge: the ruleset requires no approval" in its state, the run record and implement status, and no later step arms it.
Frontmatter
| id | dcn-2609300000000025 |
|---|---|
| type | decision |
| date | 2026-09-30 |
.abcd/work/decisions/dcn-2609300000000025-the-implement-loop-arms-auto-merge-only.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2611040554426316The land chapter says mergeGate replaces ruling AM1, citing 34-build.md (.abcd/development/brief/04-surfaces/38-land.md:154). 34-build.md does not name AM1, and this line is the only occurrence under .abcd/development/brief, so the citation leads a reader to nothing. The ruling is recorded in .abcd/work/decisions/dcn-2609300000000025-the-implement-loop-arms-auto-merge-only.md.