diff --git a/AGENTS.md b/AGENTS.md index 18e2378e..ac4dc308 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -22,7 +22,7 @@ Do not edit `CONTRIBUTING.md`, `assets/CONTEXT.md`, `assets/AGENTS.md`, or shims, or cleanup of what earlier versions wrote. - Starting or spawning quests stops at PR creation. It merges only on a /quest-merge pick, the user's or the standing one /quest-complete gives a PR - with no user-facing behavior change, and only after repository checks and + with no user-facing behavior change that adds or expands no quests, and only after repository checks and reviews pass. - Pull requests land as squash merges. - Do not comment on repositories outside kixelated/moq-dev without approval. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dcbc3311..82856b4b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,7 +36,7 @@ scope and after required repository checks and reviews pass. Never block on a CodeRabbit review; it is optional. Quest execution stops at PR creation; it merges only on a /quest-merge pick. `/quest-complete` picks a maintainer's PR that changes no user-facing behavior -without asking. +and adds or expands no quests without asking. On a PR whose author has write access, the PR body's `## Review` record of a local `quest review` round satisfies the required review `/quest-merge` describes when it names diff --git a/assets/AGENTS.md b/assets/AGENTS.md index 24239068..37099989 100644 --- a/assets/AGENTS.md +++ b/assets/AGENTS.md @@ -79,7 +79,7 @@ Run it after creating or updating quests. ## Summaries -End every quest skill with a final summary in sections, such as the PRs and their states, the open decisions with recommendations, and suggested follow-ups, so a user returning to the session first sees what needs them. +End every quest skill with a final summary in sections, such as the PRs and their states, the open decisions with recommendations, and the follow-ups each PR adds, so a user returning to the session first sees what needs them. ## Creation @@ -87,14 +87,16 @@ Quests are created in PRs and reviewed. Search the tree and git history first before making a new quest. Split independently completable work into separate quests. -A suggested follow-up becomes a quest only through `/quest-plan`, never as an agent-session task or a GitHub issue. -Suggest a follow-up only when it is worth a quest; drop one you would call optional or worth doing only if it matters. -Give each suggested follow-up a recommendation, to plan it or to drop it with the reason, so whoever plans them never has to ask which to take. -Only `/quest-merge` and `/quest-complete` plan follow-ups, once they queue the PR that suggests them: run `/quest-plan` on each recommended one in turn without offering first, one follow-up per run; its interview lets the user drop it. -`/quest-complete` plans them while its other agents keep running, but after any pick or decision question still waiting to be asked. -Every other skill and background agent leaves its follow-ups in its PR body for them. Group related quests in an epic; its README holds the work no child owns. +Work found along the way that is worth a quest is a follow-up: add it to the PR that found it, as a new quest placed and sized by the rules here and the repository's, or as an edit to the quest that already owns the work; never as an agent-session task or a GitHub issue. +Drop one you would call optional or worth doing only if it matters. +Answer each of its decisions you can with your recommendation in its Plan, and list each you cannot as a `Maintainer:` decision item under its `Waiting`. +The PR body's `## Follow-ups` section links each one with its open decisions, which neither keep the PR a draft nor stop its pick. +A PR that adds follow-ups lands only on the user's pick: the round that picks it to merge, in any client, also asks which follow-ups to keep and each open decision, in the Questions form. +Before it lands, record each answer in its quest's Plan, removing that `Waiting` item, and remove each dropped follow-up, with `quest rm` for a new quest. +A follow-up for work another repository's quest tree owns stays in `## Follow-ups` for `/quest-plan` there. + A release or pin bump that unblocks work is its own quest. So is anything waiting on an outside party or a human action (an upstream fix, a customer, a decision). @@ -156,7 +158,7 @@ Only a decision left for the maintainer, an outside condition, or unfinished wor Tools read only whether that heading is present; a draft without it still belongs to its starter. Drafts handed back before `## Waiting` replaced it use `## Decisions needed`, which counts the same. A draft suggests `/quest-iterate`; a PR ready for review suggests `/quest-merge`. -Include a summary of the changes made and suggest follow-up quests based on issues encountered; `/quest-merge` plans them. +Include a summary of the changes made and the `## Follow-ups` section Creation describes. Add a closing keyword for every issue under `Closes`. ## Deletion @@ -189,7 +191,7 @@ Stop one with `quest agent stop `, and each you started that still run Open each prompt with the context to answer it without opening the quest or PR: what the work is, the problem it hit, and what each option would change. Name and explain anything the agent or its PR introduced, such as a new term, file, check, or credential, since the user may not have followed the work. Then give your recommendation and ask synchronously with a blocking interactive question tool when available and allowed in the current mode. -Recommend in every prompt, a multiple-choice list included: mark each option you recommend, such as which follow-ups to plan, and give a one-line reason for each you would leave out. +Recommend in every prompt, a multiple-choice list included: mark each option you recommend, such as which follow-ups to keep, and give a one-line reason for each you would leave out. An answer such as "whatever you recommend" picks your recommendations; act on them without asking again. Do not use asynchronous question tools. diff --git a/assets/CONTEXT.md b/assets/CONTEXT.md index 02c77e21..d4a54fed 100644 --- a/assets/CONTEXT.md +++ b/assets/CONTEXT.md @@ -109,4 +109,4 @@ Review findings fixed in the same PR are not culprits. When the repository has a `quest/` directory, it plans work as quests: Markdown files there, each completed in one PR. - Before creating, editing, claiming, or finishing a quest outside a `/quest-*` skill, run `quest guide` and follow it; skills carry the sections they need. -- A follow-up becomes a quest only through `/quest-plan`, never a GitHub issue or an agent-session task. Suggest follow-ups in the PR body, each with a recommendation: plan it, or drop it and why. +- Add follow-ups worth a quest to your PR as `quest guide` describes, never as GitHub issues or agent-session tasks. diff --git a/assets/skills/afk.md b/assets/skills/afk.md index c5e0c3d1..8bf0d871 100644 --- a/assets/skills/afk.md +++ b/assets/skills/afk.md @@ -14,12 +14,12 @@ Make no decisions, not even by acting on your own recommendation; skip each one - Start every ready quest that `/quest-spawn` starts without asking; leave each quest it would ask about unstarted. - Carry on each action the user already picked, such as a `/quest-merge` pick, until it lands or needs the user again. -- Dispatch the `/quest-iterate` that `/quest-complete` runs without asking, for a PR with no decision for the user. Pick no skip, `/quest-merge`, or `/quest-delete` for a PR the user has not, beyond the standing `/quest-merge` pick `/quest-complete` gives a PR that changes no user-facing behavior. A started agent still runs `/quest-review` itself when its quest finishes with no decisions, as `/quest-start` describes. +- Dispatch the `/quest-iterate` that `/quest-complete` runs without asking, for a PR with no decision for the user. Pick no skip, `/quest-merge`, or `/quest-delete` for a PR the user has not, beyond the standing `/quest-merge` pick `/quest-complete` gives. A started agent still runs `/quest-review` itself when its quest finishes with no decisions beyond its follow-ups', as `/quest-start` describes. - Dispatch `/quest-review` for a draft whose reviewer outage has cleared, as `/quest-review` describes; it needs no decision. A reset still ahead is no reason to keep running: give its time in the summary. -- Answer no decision an agent reports. Its PR stays a draft whose `## Waiting` section lists the decision with a recommendation. -- Hold `/quest-plan` sessions, stale claims, and suggested follow-ups for the user. +- Answer no decision an agent reports. One on its quest keeps its PR a draft, listed under `## Waiting`; a follow-up's waits for the PR's pick round. +- Hold `/quest-plan` sessions and stale claims for the user. As merges land, recompute the ready quests and start any that newly qualify. Finish once every agent has reported, every picked action has landed or needs the user, and no quest remains that starts without asking. -Write the final summary so a new session can act on it without this one's context, letting the user start fresh on their return: link each quest and PR, give each skipped decision with its options and your recommendation, and describe every follow-up the agents suggested fully enough to hand to `/quest-plan`. +Write the final summary so a new session can act on it without this one's context, letting the user start fresh on their return: link each quest and PR, give each skipped decision with its options and your recommendation, and list each PR's follow-ups with their open decisions. diff --git a/assets/skills/complete.md b/assets/skills/complete.md index ced4c1d0..013bb2ae 100644 --- a/assets/skills/complete.md +++ b/assets/skills/complete.md @@ -18,8 +18,8 @@ It fixes the PR, reviews it, and marks it ready; ask about the PR again when it A PR with open decisions, such as those its `## Waiting` section lists or a significant issue you would solve differently, goes to the user instead: settle its decisions with the grill skill's rounds, then dispatch `/quest-iterate` with the answers in its brief. A PR whose author has write access and that changes no user-facing behavior carries a standing `/quest-merge` pick, unless the repository's `CONTRIBUTING.md` opts out: run `/quest-merge` on it without asking, and name it as auto-picked in your summary. -That covers changes only to quests, tests, benchmarks, CI, internal docs or comments, or code whose behavior stays the same, such as a refactor. -A change to what users or other repositories get, such as CLI behavior or output, shipped skills or rules, user-facing docs, dependencies, or release artifacts, needs the user's pick. +That covers changes only to tests, benchmarks, CI, internal docs or comments, or code whose behavior stays the same, such as a refactor. +A change to what users or other repositories get, such as CLI behavior or output, shipped skills or rules, user-facing docs, dependencies, or release artifacts, needs the user's pick, as does adding or expanding quests, which would otherwise land unseen and get implemented. Judge from the diff, not the title or body, and ask when unsure. Judge each head again before every `/quest-merge` run on it, since `/quest-iterate` or a later push can add such a change: the standing pick ends at the first head that does not qualify, and the PR needs the user's pick from then on. It also ends once a person takes the PR out of the queue. @@ -36,8 +36,9 @@ A PR you would skip or delete rather than fix, such as one superseded by another Leave a PR whose required checks or automated reviews are still running for a later refresh once they finish: it is not a skip. Include a brief summary of each PR, naming its open decisions without answering them: the question picks only the action, and the grill skill settles the decisions. +Its follow-ups are the exception: ask which to keep and their open decisions with its pick, and put the answers in the brief of the `/quest-iterate` the pick dispatches. Merge a PR only on the user's pick in this session or the standing pick above, and skip or delete one only on the user's pick, including PRs found on a later refresh. -A blanket answer the user gives on their own, such as "accept all" or "use your recommendations", picks your recommended action for every PR in scope, `/quest-merge` included; it settles none of their decisions. +A blanket answer the user gives on their own, such as "accept all" or "use your recommendations", picks your recommended action for every PR in scope, `/quest-merge` included; it settles none of their decisions beyond the follow-ups' asked with the pick. 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; leave it to land. @@ -61,8 +62,7 @@ Any other reason, such as a person removing it, is the user's call, so ask about Keep going until all PRs have been decided, then wait for all spawned sub-agents to finish. Refresh the open PR list whenever a sub-agent reports, and once more before finishing; ask about each new PR in scope the same way. -As each sub-agent reports, include a summary; its outstanding decisions go to the grill skill's rounds before its next `/quest-iterate` dispatch, never into a pick question. -Plan each queued PR's suggested follow-ups as the guide describes, without waiting for the other sub-agents to finish. +As each sub-agent reports, include a summary; its outstanding decisions go to the grill skill's rounds before its next `/quest-iterate` dispatch, never into a pick question, except its follow-ups'. Dispatch already selected actions before asking the next question; background work can continue while the foreground waits. Once every sub-agent has finished, remove local worktrees and branches whose tip is the head of a merged PR; squash merges leave that tip off the base branch. @@ -72,7 +72,7 @@ Leave the worktree you are running in and any holding uncommitted work; list tho Answer these requests at any point, without stopping running sub-agents: -- "finish up": ask about no new PR and dispatch nothing new, plan the follow-ups collected so far and each later one as its sub-agent reports, let running sub-agents report, then clean up and write the final summary. When a picked PR's sub-agent reports, still run `/quest-merge` on it, but dispatch nothing it hands back; list each pick left standing in the summary. +- "finish up": ask about no new PR and dispatch nothing new, let running sub-agents report, then clean up and write the final summary. When a picked PR's sub-agent reports, still run `/quest-merge` on it, but dispatch nothing it hands back; list each pick left standing in the summary. - "pause": dispatch nothing new until the user says to resume; running sub-agents continue, and their reports are handled as usual. - "status": a compact list of each sub-agent and PR in flight with its pick, state, and how long ago it was dispatched or last reported. diff --git a/assets/skills/iterate.md b/assets/skills/iterate.md index a10c382c..c9eb733e 100644 --- a/assets/skills/iterate.md +++ b/assets/skills/iterate.md @@ -1,6 +1,6 @@ --- description: Iterate on an open PR to settle its open decisions, fix CI and review findings, and push. -guide: Format, Execution, Summaries +guide: Format, Creation, Execution, Summaries skills: grill --- @@ -19,13 +19,14 @@ Judge the approach before touching anything: would you take a different one? Settle every decision this PR needs with the grill skill's interview, starting from the user's feedback: those its `## Waiting` section lists, those your judgment of the approach or the review findings raise, and any you find along the way. Record the settled decisions in this PR description's `## Decisions` section as the paper trail, then implement them. A sub-agent that cannot prompt leaves each in `## Waiting` with a recommendation. +Leave the open decisions of its follow-ups to the round that picks it to merge, and record answers your brief or the user gives as the guide's Creation section describes. Fix merge conflicts and failing CI checks. Address the automated review findings already posted, without waiting on optional reviewers: fix those you agree with and comment on any you decline. One round only; never request a review, including by toggling a ready PR to draft and back. If `quest status ` shows auto-merge enabled, disable it with `gh pr merge --disable-auto` before any push: GitHub keeps it across a writer's push and would land the new head unreviewed. -Once nothing is unfinished and no decisions need the user, run `/quest-review` with your token, which reviews the branch, pushes, and marks the PR ready. +Once nothing is unfinished and no decisions beyond its follow-ups' need the user, run `/quest-review` with your token, which reviews the branch, pushes, and marks the PR ready. Otherwise, before pushing to a PR that is ready for review, review the new head locally with `quest review --base /`, following each round's `next` line; when another worktree holds the PR branch, work in a detached checkout of its head and pass `--branch `; then push and update the PR's summary. Summarize the changes made. Hand it back with `quest release `, using the latest token printed, whenever you stop, including to ask. diff --git a/assets/skills/merge.md b/assets/skills/merge.md index 49d244f3..82ef5951 100644 --- a/assets/skills/merge.md +++ b/assets/skills/merge.md @@ -1,6 +1,6 @@ --- description: Queue a PR to land, running /quest-iterate first when it needs work. -guide: Creation, Summaries +guide: Creation, Summaries, Questions --- This skill runs inline in the session that picked it, never in its own sub-agent: it decides whether the PR's head can land as is, and queues it. @@ -23,10 +23,11 @@ A failing optional check does not stop the pick, since the PR's own CI is only a Otherwise run `/quest-iterate` on it, saying what it needs: a review of the head, fixes, or decisions, then run this skill again once it finishes; if it stops for the user instead, such as when it cannot push or reaches a design checkpoint, report that. Run it in this session, where its grill interview can ask the user; under a coordinator such as `/quest-complete`, hand it back, and the coordinator dispatches it in a sub-agent. +A PR that adds follow-ups also needs the answers of the round that picked it recorded before queueing, as the guide's Creation section describes; when the user ran this skill directly, ask which to keep and their open decisions now, then run `/quest-iterate` with the answers unless the head already records them. While its required checks are only pending, report that the pick stands until they pass; do not wait for them. A review counts for the head whose SHA it names: a `## Review` record of a local `quest review` round, or a recorded skip. -Changes since that head need no new review only when they are conflict-free merges from the base branch, a reviewer's suggested patch applied unchanged, the fixes of a round whose findings were all low severity, a land fixer's recorded mechanical fix that changes no behavior, or changes, such as a hand-resolved merge, that leave the head's diff identical to the reviewed head's: `git diff /...` prints the same as `git diff /...`. +Changes since that head need no new review only when they are conflict-free merges from the base branch, a reviewer's suggested patch applied unchanged, the fixes of a round whose findings were all low severity, a land fixer's recorded mechanical fix that changes no behavior, the pick round's answers recorded in the PR's follow-ups, or changes, such as a hand-resolved merge, that leave the head's diff identical to the reviewed head's: `git diff /...` prints the same as `git diff /...`. The repository's review policy decides whose record counts and may require more, such as a maintainer's review. Where it says nothing, only a record on a PR whose author has write access counts: anyone else writes their own PR body, so review their head locally and rewrite the record before landing it. @@ -41,6 +42,5 @@ On an ungated base without a merge queue, it refuses while auto-merge is disable There, it also refuses a head that does not contain the current base: run `/quest-iterate` to merge the base. Report once it is queued, and do not wait for it to merge. -Plan the PR's suggested follow-ups as soon as it is queued, as if it lands, rather than waiting for the merge, unless a coordinator such as `/quest-complete` called this skill and plans them behind its own questions. A PR that left the queue unmerged shows why under `landing-stopped` in `quest status `; it needs the user's pick again, except where `/quest-complete` says an earlier pick still holds. Never close a PR to unstick it, and never work around a refused merge; ask instead. diff --git a/assets/skills/plan.md b/assets/skills/plan.md index 53b8e636..ff0a0ace 100644 --- a/assets/skills/plan.md +++ b/assets/skills/plan.md @@ -9,8 +9,7 @@ Search by the code and behavior the work touches, not only its keywords: a quest Show any overlap in the first round. Interview the user with the grill skill. -Every follow-up the user picks goes through this interview, including edits to existing quests and to quests in other repositories. -A background agent that cannot prompt never creates or edits quests itself, so this skill can run in the foreground. +Run it in the foreground; a background agent that cannot prompt adds its follow-ups to its own PR instead, as the guide's Creation section describes. Search other quests and epics to keep the larger plan consistent. Docs a change makes stale stay in that change. @@ -31,4 +30,3 @@ When the PR deletes the quest, record its decisions in the PR body's `## Decisio New work joins the milestone the user picked, in its directory or an epic's there; an epic groups related quests, and its README holds the work no child owns (the end-to-end test, the docs page). When done, commit, open the PR as a draft, and run `/quest-review` on it, which reviews the branch, records the `## Review` section, and marks the PR ready. -Quests planned as follow-ups of an open PR may be committed to that PR instead, whose next push is reviewed as `/quest-review` describes. diff --git a/assets/skills/recurring.md b/assets/skills/recurring.md index a84cebda..d81b7aa1 100644 --- a/assets/skills/recurring.md +++ b/assets/skills/recurring.md @@ -16,4 +16,4 @@ Also settle in the interview: - What each run delivers, and whether anything ends the recurrence. A recurring gate's Plan also says to remove its path from every `Required` before re-creating it, or its dependents never clear. -Findings that need their own work are follow-ups for `/quest-plan`. +Findings that need their own work are follow-ups in its PR, as the guide's Creation section describes. diff --git a/assets/skills/review.md b/assets/skills/review.md index 69e3e22a..623485e6 100644 --- a/assets/skills/review.md +++ b/assets/skills/review.md @@ -1,11 +1,11 @@ --- description: Review a PR's branch locally with a model other than its latest writer, then mark it ready for review. -guide: Execution, Summaries, Questions +guide: Creation, Execution, Summaries, Questions skills: merge --- Parse the arguments to determine the PR number, otherwise resolve it from the current context/branch. -If its body lists open decisions or unfinished work, offer `/quest-iterate` first. +If its body lists open decisions, other than its follow-ups', or unfinished work, offer `/quest-iterate` first. Take the PR with `quest iterate `, passing a token you already hold for it to keep that hold, and keep the hold token it prints; `quest iterate --help` explains holds. If it refuses because another session holds the PR, stop and report what it printed; taking over a stale hold is the user's choice. @@ -15,7 +15,7 @@ Work in a checkout of the PR's head branch, checking out the head first when som When another worktree holds that branch, work in a detached checkout of its head instead, and pass `--branch ` to each `quest review` so its rounds continue the branch's session. Commit everything, then run the repository's local checks and fix any failure the branch causes. On the head of a PR whose author lacks write access to the repository, run no code from it instead, since it would run with your credentials: leave its checks to CI, and run a `quest` the PR cannot modify, such as an installed release, from outside its checkout with `--root`. -A check failure that reproduces unchanged in a checkout of the base branch is pre-existing rather than the PR's: record the command and both failures in the PR body's validation, go on to review and readiness, and suggest a follow-up for it unless an open PR already fixes it. +A check failure that reproduces unchanged in a checkout of the base branch is pre-existing rather than the PR's: record the command and both failures in the PR body's validation, go on to review and readiness, and add a follow-up for it unless an open PR already fixes it. Never alter the repository's harness to get a pass, such as by disabling a tool, unsetting its environment, or skipping a check, nor report an altered run as its checks. If a `## Review` record that `/quest-merge` counts names the committed head, or its review exemptions cover the changes since the head it names, and it leaves no finding unrefuted, run no new round and go on to pushing and marking it ready below. @@ -30,7 +30,7 @@ Open the draft PR before the first round: each round rewrites the PR body's `## Write a round's record by hand only when it printed `record skipped`, as on another author's fork, and add context only after the record, since the next round rewrites the section. Fix every finding relevant to the PR in the PR: review findings you do not refute, gaps the change exposes, and bugs in the code it touches. -Never defer a relevant fix to a follow-up just to narrow the PR; suggest only out-of-scope discoveries as follow-ups. +Never defer a relevant fix to a follow-up just to narrow the PR; add only out-of-scope discoveries as follow-ups. Refute a finding only with evidence the reviewer cannot rebut: a `path:line`, a command's output, or a recorded maintainer decision. Commit the fixes, rerun the checks, and run the next round with `--responses`, one response per finding by its number, written in the checkout's `.tmp/`. Repeat until a round of the head reports no finding you have not refuted; never block on the score. diff --git a/assets/skills/spawn.md b/assets/skills/spawn.md index 17cb26be..e4ec4dbe 100644 --- a/assets/skills/spawn.md +++ b/assets/skills/spawn.md @@ -43,7 +43,7 @@ Stop at the PRs, beyond the `/quest-review` each started agent runs itself: neve Stop dispatching once no agent is running and no ready quest is left to start, then wrap up as below; never wait on a merge for more work. The final summary names each queued PR, armed for auto-merge or in a merge queue as `quest status` reports, whose merge would make a quest ready, with those quests, so the user can rerun `/quest-spawn` once they land, by hand or with `/loop`. -Never plan the follow-ups agents suggest: each stays in its agent's PR body, where `/quest-merge` or `/quest-complete` plans it once the PR is queued. +Never answer the follow-ups agents add to their PRs: their decisions wait for the round that picks each PR to merge. Once every sub-agent has finished, remove each agent checkout `quest worktree status` lists with `quest worktree remove`, since Claude never removes a subagent's checkout; it refuses one holding unpreserved work. Remove other local worktrees, and branches, whose tip is the head of a merged PR; squash merges leave that tip off the base branch. diff --git a/assets/skills/start.md b/assets/skills/start.md index 82cf25d2..b1ad419b 100644 --- a/assets/skills/start.md +++ b/assets/skills/start.md @@ -19,8 +19,8 @@ Implement the quest until it is complete, or some blocker is hit, then push to i When done, explain the result in a few lines and summarize any issues encountered. List choices you made without asking in the PR body rather than waiting on them. -If the quest is complete and you see no decision left for the maintainer, run `/quest-review` on it right away. +If the quest is complete and you see no decision left for the maintainer beyond its follow-ups', run `/quest-review` on it right away. Otherwise, prompt the user interactively for each open decision, including your recommendation, and record the outcome as a PR comment as a paper-trail. Once the quest is complete and the PR reflects the user's answers, run `/quest-review` on it. -A background agent that cannot prompt lists its open decisions in its report instead, running `/quest-review` only when the quest is complete and no decision is left for the maintainer. +A background agent that cannot prompt lists its open decisions in its report instead, running `/quest-review` only when the quest is complete and no decision is left for the maintainer beyond its follow-ups'. diff --git a/quest/m0/follow-ups.md b/quest/m0/follow-ups.md deleted file mode 100644 index 5f29400c..00000000 --- a/quest/m0/follow-ups.md +++ /dev/null @@ -1,43 +0,0 @@ -# [M] Follow-ups land in the PR that found them - -## Goal - -A session that finds work worth a quest adds it to its own PR as a quest -file, placed and sized by the repository's rules, with every decision it can -make pre-answered by its recommendation and every open one listed with -options. The PR body's follow-ups section names each new quest and its open -decisions. When the maintainer picks to merge the PR, in `/quest-complete`, -`/quest-merge`, or any other client, they settle those decisions in the same -round; the answers are recorded in the quest files, and a dropped follow-up -leaves the PR, before it lands. No follow-up lives only in a PR body, and -none lands undecided. - -## Plan - -Decided 2026-11-08 (maintainer, `/quest-plan` in moq-dev/kixel.ai, planning -its software factory): ✅ "Follow-up quests are created in the PR and any -decisions are made as part of merging the PR? Like we're already running a -quest-complete session and can quest-plan follow-ups as part of the decision -to merge" (rejected: each follow-up landing behind a `Maintainer:` accept -item; landing ready with recommended answers; a separate draft plan PR per -follow-up). Why: "so many follow-ups get missed" while they live in PR bodies -until someone runs `/quest-plan` on them. - -- This replaces the guide's "a suggested follow-up becomes a quest only - through `/quest-plan`" and "only `/quest-merge` and `/quest-complete` plan - follow-ups". `/quest-plan` stays for planning the user asks for. -- A PR that adds quests takes the maintainer's pick, never the standing pick - `/quest-complete` gives a PR with no behavior change: a quest-only change - would otherwise land unseen and get implemented, the same reason - moq-dev/kixel.ai's nightly triage quests need a pick. -- The merge question carries the follow-ups' open decisions with the merge - pick, in the guide's Questions form, so the round that merges is the round - that plans; an answer such as "whatever you recommend" takes every - recommendation. -- This quest is the user's ask to edit `assets/AGENTS.md` and `assets/skills/` - that this repository's `AGENTS.md` requires. Expect changes to the guide's - Creation and Execution sections and to the start, iterate, review, merge, - complete, spawn, and afk skills; follow `quest guide prompting`. - -Tests: none beyond `just check`; the change is prose, so its review weighs -whether each skill tells an agent the same thing.