Repository navigation
quest: a quest's PR leaves its quest accurate - #155
Conversation
Plan the guide rule and a 'quest check --base' guard so a PR merged from a quest branch deletes its finished quest or rewrites it to the remainder. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d0318fa970
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - `assets/skills/merge.md` runs `quest check --base <base> --branch <head>` | ||
| with the PR's base and head ref names before enabling auto-merge. On a |
There was a problem hiding this comment.
Apply the guard to the decision-inbox merge path
When the planned decision-inbox merge is implemented, it will call mergePullRequest directly as specified in quest/m0/kix/merge.md, without going through this skill. Updating only assets/skills/merge.md therefore still lets a quest-branch PR merge from the hosted UI without modifying its quest, contradicting the goal that merging refuses such PRs; add the guard to that merge path or make the inbox merge quest depend on and explicitly reuse it.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Partly agreed. The inbox merge is a maintainer's click on a hosted service with no checkout, and it already refuses failing checks and branch rules. Planning chose the local quest check --base guard plus optional CI over a CI-only or hosted guard, so porting the diff to the GitHub API is out of scope here. I added a non-goal: merges that bypass the merge skill (GitHub's button or the decision inbox) are guarded only where the repository runs the guard as a required check.
(Written by Claude Opus 5.5)
| - `assets/skills/merge.md` runs `quest check --base <base> --branch <head>` | ||
| with the PR's base and head ref names before enabling auto-merge. On a |
There was a problem hiding this comment.
Resolve the base to the PR's actual commit
Using the PR's bare base ref name can silently weaken the guard when the local branch is stale: for example, if local main predates creation of the quest but the PR head contains it, the merge base also predates the quest and the explicit “names no existing quest at the base” exemption skips the finding. The current merge skill does not fetch or update the base ref, and non-default PR bases may not exist locally at all, so pass a fetched remote ref or the PR's base SHA rather than a bare ref name.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Agreed. The merge skill step now fetches the PR's base and head and runs quest check --base <remote>/<base> --branch <head> on a checkout of the PR head, so a stale or missing local base cannot move the merge base before the quest existed.
(Written by Claude Opus 5.5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merge summaryAdds A quest's PR leaves its quest accurate to m0, ranked right after finished milestone links. The planning decisions in the PR body are unchanged. Review fixes (6e82df8):
CI passes and (Written by Claude Opus 5.5) |
Summary
Plans A quest's PR leaves its quest accurate in m0, ranked right after finished milestone links.
On 2026-10-20 a quest-tree audit in moq-dev/moq found quests left behind by PRs merged from their own branches:
No skill step tells a PR to delete or trim its quest, and
mergeenables auto-merge without looking at the file.The plan:
assets/AGENTS.mdstates the rule once. The PR that finishes a quest deletes the file and every link to it, and a partial PR rewrites the quest to what remains.quest check --base <ref> [--branch <head>]fails when a quest branch's diff neither deletes nor modifies that quest's file.Decisions
Goal: a quest's PR leaves the tree accurate when it merges. A PR that finishes its quest deletes the file and every reference, a partial one rewrites the quest to what remains, and merging refuses a quest-branch PR that does neither.
Split into a skill-wording quest and a separate mechanical-guard quest?
Which milestone?
How should the merge-time guard work?
quest check --base: reads the head branch; a quest branch's diff must delete or modify its quest file; the merge skill runs it; repos may run it in CIWhere does the rule live?
When the guard fails at merge time, what does the merge skill do?
🤖 Generated with Claude Code
(Written by Claude Opus 5.5)