Skip to content
Open
Changes from 11 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
44678ff
docs(agents): avoid no-op pull request lifecycle runs
seonghobae Sep 5, 2026
6771feb
docs(agents): preserve unchanged-head evidence
seonghobae Sep 5, 2026
51efc5f
docs(agents): isolate stale workflow reruns
seonghobae Sep 5, 2026
1a41685
docs(agents): isolate lifecycle cleanup groups
seonghobae Sep 5, 2026
ecdbce0
docs(agents): verify asynchronous run cancellation
seonghobae Sep 5, 2026
6fc15dc
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
b97eeed
docs(agents): clarify lifecycle cancellation groups
seonghobae Sep 5, 2026
c72aa38
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
1ba1e39
docs(agents): tighten cancellation verification
seonghobae Sep 5, 2026
35aab58
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
5e4711c
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
61a73b8
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
ae64bf3
docs(agents): guard replacement evidence enqueue
seonghobae Sep 5, 2026
b4934b7
docs(agents): 스킬 선택과 검증·인계 절차 보강
seonghobae Sep 5, 2026
972d87e
docs(agents): 운영 지침과 실제 검증 상태 구분
seonghobae Sep 5, 2026
a8e2a5f
docs(agents): 실행 revision과 PR 연결 정보 판정을 구분
seonghobae Sep 5, 2026
2b8db86
docs(agents): 읽기 전용 검토의 인덱스 변경 금지
seonghobae Sep 5, 2026
debfeb7
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
84d6915
Merge remote-tracking branch 'origin/main' into pr-1885-agents
seonghobae Sep 5, 2026
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
28 changes: 24 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,34 @@ The materialization contract is also covered by [`docs/doctoring/exact-artifact-
target repository, and pull request number with `cancel-in-progress: true`;
do not include the head SHA, because that prevents a new head from cancelling
its predecessor. Non-PR triggers need an explicit collision-safe fallback.
- Do not let a rerun of an older run ID re-enter the live PR group and cancel
newer evidence. Use the PR number only for the first attempt and fall back to
`github.run_id` for reruns, or reject the rerun through exact-live-head
admission before it can displace current work.
- Put concurrency at workflow scope when queued jobs must be coalesced before a
runner is admitted. Job-level concurrency cannot relieve a saturated runner
queue because it is evaluated only after job admission.
- Subscribe only to pull-request actions that can produce useful work. The
default review set is `opened`, `synchronize`, `reopened`, and
`ready_for_review`; do not add `converted_to_draft` or `closed` merely to run
a job-level false condition, because the workflow run still enters the
organization queue. Add a lifecycle action only when that workflow performs
an explicit, tested cleanup or state transition for it. A draft or close
event whose purpose is to retire active evidence for that PR must share the
PR evidence concurrency group and publish the required exempt/terminal state.
An auxiliary cleanup that scans and cancels runs by API must instead use a
lifecycle-specific group so it cannot preempt current-head evidence; compare
the live PR state and head immediately before every cancellation. After a
cancellation reaches its terminal state, re-read both the PR and target run;
if the cancelled run now matches the live head, enqueue replacement evidence
instead of treating cleanup as successful.
Comment thread
seonghobae marked this conversation as resolved.
Outdated
- Keep cleanup repository-local and event-driven. Do not restore an
organization-wide queue sweep, polling `sleep`, or another scheduled scan to
compensate for incorrect concurrency. Cancel only runs proven to belong to a
superseded head of the same PR, then verify each accepted cancellation
reaches `completed/cancelled`.
organization-wide queue sweep, unbounded sleep-based polling, or another
scheduled scan to compensate for incorrect concurrency. Cancel only runs
proven to belong to a superseded head of the same PR, then poll
`actions/runs/{run_id}` with a bounded retry. Treat cancellation as complete
only when `status == "completed"` and `conclusion == "cancelled"`; an HTTP
202 from cancel or force-cancel is not completion.
- Classify a run's PR head by event-specific evidence before cancellation.
`pull_request` may use the run's top-level `head_sha`, but
`pull_request_target` records the trusted base there; use its PR association
Expand Down
Loading