Development record
2026-08-11 — Pull-request lifecycle automation for autonomous rounds settled
2026-08-11 — Pull-request lifecycle automation for autonomous rounds settled
five points, recorded against the existing records rather than a new intent
(one-canonical-primitive: iss-172, iss-178 and itd-107 already hold this
ground; capture promote would have minted a sixth). (1) AUTO-MERGE
ELIGIBILITY splits on additive-versus-editing, not documentation-versus-code:
a new record file plus an append to this log, insertions only, record gate
green, single commit. The evidence is this repo's own correction history —
the post-merge correction commits in the recent window each fix a FALSE CLAIM
about the system ("describe the real fix", "state what is true", the
packaging and exclusion claims), which no deterministic gate catches, and all
of them sit in changes that REWRITE existing prose; the purely additive
captures needed none. (2) The eligible set is an ALLOWLIST of inert paths,
never a denylist of source extensions: the plugin command pages, the rules
file, the lint configuration and the agent-instruction router are markdown or
JSON that change behaviour, so a "no source touched" test fails open on all
of them. (3) Intent DRAFTS count as additive — the lifecycle already gates at
promotion (adoption is a maintainer decision; implementing an unready intent
is a STOP), so a second gate at merge is redundant. (4) The strict
status-check policy is NOT relaxed to smooth the stalled-behind-base
condition: it is the only thing that gates a concurrently-minted duplicate
record id, because the mint lock is a filesystem lock that does not span
checkouts and each branch passes in isolation; the stall is cleared by
updating the branch instead. (5) Delivery is rung 1 first — protocol in the
rendered routine, host credentials — per script-first-mvp, with the binary
acquiring no platform CLI dependency. Deferred to the itd-107 grill: the
rung-2 credential question, a declared merge style, peer-session concurrency
policy, and attribution-footer defence depth.
Frontmatter
| id | dcn-2608110000000001 |
|---|---|
| type | decision |
| date | 2026-08-11 |
.abcd/work/decisions/dcn-2608110000000001-pull-request-lifecycle-automation-for.md
open on GitHub ↗ · commit history ↗
mentions3
- iss-172abcd-managed repos need PR-queue hygiene when branch protection requires up-to-date branches: a queued auto-merge PR whose base moved sits BEHIND forever because GitHub auto-merge never updates branches. Two delivery rungs per basics-built-in/SOTA-delegated: (1) protocol-level now — after arming auto-merge, poll mergeStateStatus and run gh pr update-branch on BEHIND (works with the agent's own token, CI triggers normally); (2) scaffolded CI later — abcd scaffolds an update-branch workflow into managed repos, which requires a PAT/GitHub-App secret because the default GITHUB_TOKEN's pushes do not trigger workflows (the recursion suppression trap), or points at a merge queue where the plan allows. Same scaffolding family as itd-93's release gate; same merged-work-hygiene family as itd-95.
- iss-178Autonomous cloud runs in sibling repos leaked harness attribution footers and a live session URL into public GitHub artifacts: the harness auto-appends a 'Generated with' footer plus a session link when a PR or issue is created, overriding the repos' Assisted-by-only attribution policy (commit messages stayed clean; the leak surface was PR bodies and issue comments, plus GitHub's public edit history retaining the pre-scrub revision). Leak shape only - no session ids reproduced here. Two remedies needed: (a) every autonomous routine prompt must ban session URLs and harness footers in public text AND mandate a post-create re-read-and-strip of every PR/issue/comment the loop creates, because the append happens outside the model's own text; (b) abcd should detect the class - session-URL and harness-footer patterns belong with the shared privacy pattern set (iss-154 family / itd-74 banlist territory) so audit and docs-lint flag them in any committed or posted text.
- itd-107Autonomous Routines Assemble From One Versioned Template