Repository navigation
Description
Problem Description
The service implement job takes a staged item before a person reviews and merges the plan pull request.
Row stage opens a draft plan pull request and sets stage.pr on the item.
Row implement checks _takeable_status, which accepts status/ready.
_Judge._route reads recorded_branch, which returns stage.branch and stage.pr.
_pull_reason accepts any open draft pull request.
The service then creates a runner Job that implements the staged branch before human approval.
This run sets implement.pr to the plan pull request number.
kind_of in implement_pull.py then treats the plan pull request as an implementation pull request.
The merge readiness check then refuses the draft because tasks in tasks.md are not ticked.
Reproduction Steps
- Run row
stageon a ready roadmap item. - Confirm that row
stageopens a draft plan pull request such as PR docs(openspec): plan #3391 Refuse criteria entries not in the issue body #4069. - Run row
implementwhile the plan pull request is an unmerged draft. - Inspect the created jobs and issue record.
Expected vs Actual Behavior
Expected: Row implement takes only Planned items with changes on the default branch, or retried implementation branches.
Actual: Row implement launches a runner Job for unmerged draft plan pull requests and marks the item In Progress.
Environment Diagnostics
- DevOps CLI Version: 0.83.2
- Python Version: 3.14.10
- OS & Architecture: Linux x86_64
- Execution Environment: Roadmap Service / Kubernetes
Logs, Traces, or Terminal Output
implement.job: devops-cli-runner-20261107-201633-cba7
implement.pr: 4069
stage.pr: 4069
PR #4069 is not ready: Task group 1 has a task that is not ticked.
Pre-Submission Checklist
- I have verified that no sensitive credentials, private keys, or internal tokens are contained in this issue report.
- I have checked existing issues and pull requests to ensure this is not a duplicate.
Activity
dan-petty commentedon Nov 7, 2026
Intake placed this item to the backlog: intake puts every new item in the backlog. A person plans the milestones.
fixprefix of the title gives the type.(roadmap)scope of the title gives the scope.The bug launches unapproved runner Jobs and corrupts item state, but does not cause data loss or a security breach.It stops wasted compute and incorrect workflow state on unapproved items.The fix is a condition check in the implement job selection logic to exclude unmerged draft stage plan PRs.Prevent the implement job from selecting items whose stage plan pull request is still an unmerged draftas the change that both ask for.Both items ask the implement job to skip items with unmerged draft stage plan PRs, delivering the same selection filter.A person closes one of the two if that is so.