oh-task
Work a GitHub issue through the repository's mandatory draft-PR-first workflow.
Invocation
/oh-task <issue-number> [base-branch]
The base defaults to main. Use another branch only for an intentional stacked PR.
Flow
Load
AGENTS.md, relevant.oh/artifacts, and RNA context.Fetch and validate the open issue. Stop if it is closed, owned by someone else, or lacks enough information to proceed.
Claim the issue with
gh issue edit <issue> --add-assignee @me.Run the repo-local
/aim,/problem-space,/problem-statement, and/solution-spacephases at the altitude required by the issue. Record the chosen solution.Create an isolated branch/worktree from the selected base.
Before changing implementation files, push the branch and open a draft PR:
git push -u origin issue/<number> gh pr create --draft --base <base-branch> --title "<issue-title>" --body "Closes #<number> ## Problem <problem statement> ## Chosen solution <solution-space recommendation>"Execute the chosen solution. Keep all work within the declared issue scope.
Run project checks and the repo-local
/reviewskill. Fix every actionable finding.Commit focused changes tagged with the relevant
[outcome:X]and push them to the draft PR.Complete any descendant issues created during execution before declaring the implementation complete.
Invoke repo-local
/ship <PR-number>. That pipeline alone marks the PR ready, handles CI, verifies delivery, obtains explicit approval of the final diff from a fresh, separate repo-local/reviewsub-agent, and merges.Clean up the worktree only after
/shipcompletes or reports a blocker.
Guardrails
- Never implement before the draft PR exists.
- Never mark the PR ready or merge directly from this skill.
- Never substitute a lightweight review for the full RNA
/shippipeline. - Never merge without an explicit
APPROVEfrom a fresh, separate repo-local/reviewsub-agent on the current final diff. Any later diff change invalidates approval and requires a new fresh reviewer. - Never trigger or wait for CodeRabbit. If actionable CodeRabbit comments already exist, address them like any other external review feedback.
- Use
AGENTS.md,.oh/, and RNA for context; do not depend on external task-memory tools. - If completion signaling is unavailable, report
COMPLETION: status=<status> pr=<url>.
Exit conditions
- Success:
/shipmerged the PR and verified delivery. - Blocked: a human decision or mandatory ship gate prevents progress.
- Error: the issue, branch, PR, or verification workflow cannot be completed safely.