Problem
Agents following /pr-flow keep skipping the board Status moves. Step 1 asks for two actions, but only one of them comes with a command:
Assign the issue to yourself, then move its card to In Progress (/board-ops). …
gh issue edit <N> --repo modelcontextprotocol/inspector --add-assignee @me
An agent runs the command in the code block and reads the rest of the paragraph as background. The card move is the second half of a sentence that's mostly about why to assign. Doing it means loading a second skill (/board-ops) and assembling its issue-side lookup and item-edit by hand. Nothing in the step says it's unfinished until the card has moved, so the agent goes on to branch and write code with the card still in Todo.
Step 6 has the same shape: "Move the card to In Review, then go straight to step 7." It's a trailing sentence with no command, placed right before the heavily emphasized step 7.
Seen on #2407 (2026-09-23): the issue was assigned in the same command that created the worktree, and the card stayed in Todo until the user asked about it. The maintainer reports other agents skipping this step too.
Proposed fix (docs-only, .claude/skills/pr-flow/SKILL.md)
- Put the card move in step 1's code block, right after the assignment, so running the step does both. Don't copy option IDs from
/board-ops, since AGENTS.md allows one copy of each ID. Look the option up by name when the command runs (gh project field-list 28 … | jq '… select(.name=="Status") | .options[] | select(.name=="In Progress") | .id') and find the card through issue.projectItems, as board-ops does. No option ID is duplicated, and an option recreated after a deletion still works.
- End the block with a check that prints the card's Status (
fieldValueByName(name:"Status") over issue.projectItems), the same idea as step 6's closingIssuesReferences check. The step is done only when it prints In Progress.
- Give the rule its own bold line, like step 7's "Opening the PR is not the end of the task". For example: "Step 1 is two actions — assign, and move the card. Both happen before you branch."
- Do the same in step 6 for
In Review: add the lookup, edit and check to that step's commands instead of leaving a trailing sentence.
- Add a
chain or first-move eval case in pr-flow/evals/evals.json if one can observe the card move. If a case can't observe it, say so in the PR. skills:eval currently shows the skill loads, not that step 1 is carried out (the same limit AGENTS.md notes for chain cases).
Re-run npm run verify:skills, and skills:eval if the description changes.
Acceptance
- Following step 1 as written leaves the card at
In Progress, and step 6 leaves it at In Review, with each step's command output showing that.
- No
/board-ops option ID is copied into pr-flow.
Problem
Agents following
/pr-flowkeep skipping the board Status moves. Step 1 asks for two actions, but only one of them comes with a command:An agent runs the command in the code block and reads the rest of the paragraph as background. The card move is the second half of a sentence that's mostly about why to assign. Doing it means loading a second skill (
/board-ops) and assembling its issue-side lookup anditem-editby hand. Nothing in the step says it's unfinished until the card has moved, so the agent goes on to branch and write code with the card still inTodo.Step 6 has the same shape: "Move the card to In Review, then go straight to step 7." It's a trailing sentence with no command, placed right before the heavily emphasized step 7.
Seen on #2407 (2026-09-23): the issue was assigned in the same command that created the worktree, and the card stayed in
Todountil the user asked about it. The maintainer reports other agents skipping this step too.Proposed fix (docs-only,
.claude/skills/pr-flow/SKILL.md)/board-ops, since AGENTS.md allows one copy of each ID. Look the option up by name when the command runs (gh project field-list 28 … | jq '… select(.name=="Status") | .options[] | select(.name=="In Progress") | .id') and find the card throughissue.projectItems, as board-ops does. No option ID is duplicated, and an option recreated after a deletion still works.fieldValueByName(name:"Status")overissue.projectItems), the same idea as step 6'sclosingIssuesReferencescheck. The step is done only when it printsIn Progress.In Review: add the lookup, edit and check to that step's commands instead of leaving a trailing sentence.chainor first-move eval case inpr-flow/evals/evals.jsonif one can observe the card move. If a case can't observe it, say so in the PR.skills:evalcurrently shows the skill loads, not that step 1 is carried out (the same limit AGENTS.md notes for chain cases).Re-run
npm run verify:skills, andskills:evalif the description changes.Acceptance
In Progress, and step 6 leaves it atIn Review, with each step's command output showing that./board-opsoption ID is copied intopr-flow.