From b7e8dd665e910386f5a713bae25a90af61cdfc9e Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Fri, 23 Oct 2026 23:03:33 -0700 Subject: [PATCH 1/2] chore(quest): claim quest/m0/helpers/complete-loop.md Quest-Claim: 39f0320a6122fcc3 From f016da11fbd1ba734d15334b68e9dc8556b4dc2c Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Fri, 23 Oct 2026 23:07:19 -0700 Subject: [PATCH 2/2] docs(skills): keep /quest-complete current across rounds Re-scan open PRs whenever a sub-agent reports or a merge wait wakes, keep skips and holds until the user lifts them, and never treat a blanket "accept all" as a merge pick. Count design-checkpoint review rounds from the PR's history since its last `Design change:` comment, so re-dispatched sub-agents still reach it, and apply the checkpoint in iterate too. Co-Authored-By: Claude Opus 5.5 --- assets/skills/complete.md | 6 ++++-- assets/skills/iterate.md | 4 ++++ assets/skills/merge.md | 5 ++++- quest/m0/helpers/README.md | 1 - quest/m0/helpers/complete-loop.md | 26 -------------------------- quest/m0/helpers/status-holds.md | 2 -- 6 files changed, 12 insertions(+), 32 deletions(-) delete mode 100644 quest/m0/helpers/complete-loop.md diff --git a/assets/skills/complete.md b/assets/skills/complete.md index 4bc4a60c..63960870 100644 --- a/assets/skills/complete.md +++ b/assets/skills/complete.md @@ -20,9 +20,11 @@ Ask synchronously with one question per PR, never grouping PRs into one question Include a brief summary of each PR. Act on a PR only after the user picks its action in this session, including PRs found on a later refresh. +A blanket answer, such as "accept all" or "use your recommendations", never picks `/quest-merge`; ask again for each PR it would merge. +A skip or hold stands until the user lifts it: do not ask about that PR again on a refresh, and state the hold in every sub-agent brief for it. GitHub auto-merge is that pick: enabling it takes write access, and GitHub disables it when anyone without write access pushes. Do not ask about a PR with auto-merge enabled; watch it like an enqueued PR, and dispatch `/quest-merge` only when a conflict, failing check, or review finding stalls it. -A pick covers the PR until it lands or needs the user: when its push draws new review findings, send the agent back without asking, and apply the merge skill's design checkpoint across those rounds. +A pick covers the PR until it lands or needs the user: when its push draws new review findings, send the agent back without asking; the merge skill's design checkpoint counts rounds from the PR, so it fires across those re-dispatches. Review comments are input, not approval, even a merge verdict on the maintainer's account. Consider ordering, queuing any merges if they would result in conflicts. @@ -41,7 +43,7 @@ dispatch `/quest-merge` again. Any other reason, such as a person removing it, i user's call, so ask about the PR again. Keep going until all PRs have been decided, then wait for all spawned sub-agents and enqueued PRs to finish. -Before finishing, refresh the open PR list and process any new PRs in scope. +Refresh the open PR list whenever a sub-agent reports or a merge wait wakes, and once more before finishing; ask about each new PR in scope the same way. As each sub-agent reports, include a summary and interactively prompt the user for any outstanding decisions, offering `/quest-plan` for a PR's suggested follow-ups once it merges. Dispatch already selected actions before asking the next question; background work can continue while the foreground waits. diff --git a/assets/skills/iterate.md b/assets/skills/iterate.md index cffc6681..8e520117 100644 --- a/assets/skills/iterate.md +++ b/assets/skills/iterate.md @@ -13,6 +13,10 @@ If you cannot push to the PR's branch, stop and report. Read the PR, its linked issues and quest, the reviews and comments posted on it, and the surrounding code. `quest status ` reports its checks, reviews by head, and unresolved threads in one call. Judge the approach before touching anything: would you take a different one? +Checkpoint the design across review rounds, as the merge skill does. +A review round is one pushed head that drew reviews, counted from the PR's full history (`gh pr view --json reviews,comments`) since its last comment that starts with `Design change:`. +On every fourth round, report your judgment of the approach and what remains before fixing more findings, recommending to continue, rethink the approach, or drop the PR; that choice is the user's. +Record a design change you make, including a rethink the user picks, in a PR comment that starts with `Design change:`. Scope the changes this PR needs with the plan skill's interview, starting from the user's feedback, your judgment of the approach, and any review findings that need a decision. Skip its quest and PR steps: record the settled decisions in this PR's description as the paper trail, then implement them immediately. diff --git a/assets/skills/merge.md b/assets/skills/merge.md index f8362f0c..4d3802a4 100644 --- a/assets/skills/merge.md +++ b/assets/skills/merge.md @@ -14,8 +14,11 @@ Read the PR's head, checks, merge state, reviews by head, and unresolved threads Fix any mechanical issues with the PR, such as merge conflicts and failing CI checks. Address any review findings, fixing those you agree with and leaving a comment on any you disagree with. Automated reviewers often find something new on every push, so keep fixing their findings without asking, but checkpoint the design. -Every fourth review round since the PR's last design change (one that reshapes the approach; fixing a finding is not one), stop before the next fix and reconsider the design: is something fundamentally wrong with the approach? +A review round is one pushed head that drew reviews; count rounds from the PR, not your session, since its last design change (one that reshapes the approach; fixing a finding is not one). +`quest status` shows only each reviewer's latest review, so read the full history with `gh pr view --json reviews,comments`. +Every fourth round, stop before the next fix and reconsider the design: is something fundamentally wrong with the approach? Report that judgment and what remains unresolved, recommending to continue, rethink the approach, merge as is, or drop the PR, and let the user decide. +Record each design change, including a rethink the user picks, in a PR comment that starts with `Design change:`; the next agent counts rounds from it. Never request a review, including by toggling a ready PR to draft and back. Abort the merge if there is a significant decision to be made. diff --git a/quest/m0/helpers/README.md b/quest/m0/helpers/README.md index 05e577f1..b8b18ab3 100644 --- a/quest/m0/helpers/README.md +++ b/quest/m0/helpers/README.md @@ -58,7 +58,6 @@ commands from Sep-Oct. Session counts in each child come from that window. ## Required - [Merge rules](/quest/m0/helpers/merge-rules.md) - squash merges only, and no merge with changes no review covered -- [Complete loop](/quest/m0/helpers/complete-loop.md) - `/quest-complete` re-scans PRs, keeps picks and holds, and counts rounds per PR - [Status holds](/quest/m0/helpers/status-holds.md) - `quest status` shows a PR's `quest:*` hold - [Headless agents](/quest/m0/helpers/headless-agents.md) - `/quest-spawn api` launches, resumes, and stops billed agents through one command auto mode allows - [Claim ref conflicts](/quest/m0/helpers/claim-ref-conflict.md) - no skill branch blocks a claim, and `quest start` names a ref that does diff --git a/quest/m0/helpers/complete-loop.md b/quest/m0/helpers/complete-loop.md deleted file mode 100644 index 806693f6..00000000 --- a/quest/m0/helpers/complete-loop.md +++ /dev/null @@ -1,26 +0,0 @@ -# [S] Keep /quest-complete current across rounds - -## Goal - -`/quest-complete` notices new PRs as they appear, keeps the user's picks and -holds for the whole session, and counts review rounds per PR rather than per -sub-agent. The maintainer stops asking "any new PRs?" (8+ times in a month of -moq transcripts) and stops re-stating holds and merge approvals. - -## Plan - -Decided 2026-10-21 (user), from that audit. The user asked for these skill -edits through this plan. - -- Re-scan the open PR list whenever a sub-agent reports or a merge wait - wakes, not only before finishing, and ask about new PRs in scope the same - way. -- An "accept all" or "use your recommendations" answer never covers a - merge; each merge needs its own pick. A skip or hold stands across refreshes - and re-dispatched sub-agents until the user lifts it. -- Fresh sub-agents count review rounds from zero, so the merge skill's design - checkpoint never fires across re-dispatches. Count rounds from the PR's - timeline since its last design change, and apply the same checkpoint in - `iterate`, which has none today. Record a design change somewhere the next - agent can read it back from the PR, such as the comment recording the - decision. diff --git a/quest/m0/helpers/status-holds.md b/quest/m0/helpers/status-holds.md index 1d0cb7e5..ab3edb8a 100644 --- a/quest/m0/helpers/status-holds.md +++ b/quest/m0/helpers/status-holds.md @@ -16,5 +16,3 @@ added the holds: GitHub client, and report a draft its starter still holds the same way. - Update the `complete` skill to read holds from `quest status`, and the README's status example. -- Ranked after the [complete loop](/quest/m0/helpers/complete-loop.md), which - also edits `complete`.