skills/issue-expand/SKILL.md
Implementation technical planning on GitHub issues — codebase-backed plans, readable markdown, YAML stages for orchestrate. Spec fanout only captures requirements.
npx skillsauth add roborew/opencode issue-expandInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Phase 4 of the feature pipeline: turn spec fanout tickets into developer-reviewable implementation plans on each GitHub issue, then gate orchestrate.
The user does not run bin/* in this repo. You run tooling via bash. The user approves each issue edit and switches to orchestrate when you prompt.
feature:<slug> label).bin/issue-expand-bundle, bin/feature-check, bin/orchestrate-readiness-check, and optional bin/feature-context — never paste these as instructions for the user.tmp/issue-expand-bundle.md (Errors section) and fix/sync — do not ask the user to run the same commands.2>/dev/null, >, or >> in bash (architect deny rules). Run bins bare.gh issue edit (Task developer).bin/issue-expand-bundle <slug>
Read tmp/issue-expand-bundle.md. PRD file is loaded from the local spec sibling checkout, else SPEC_PRD_REF in docs/agents/issue-tracker.md (e.g. develop), else develop/main — not spec default branch only. If the file is missing, the bundle still lists GitHub child issues and the parent PRD issue from Parent PRD: lines. Optional per ticket: bin/feature-context <n>.
get_indexing_status → index_codebase if needed. Use search_code / find_files per ticket. Record MCP_FALLBACK if unavailable.
For each issue (respect Blocked by / depends_on):
### Context
### Goal
### Current state
### Stage plan
### Files to change
### Tests
### Refactor / risks
opencode-task-yaml stages[] from the stage plan.load: minimal → gh issue edit <n> --body-file ….bin/feature-check <slug> --level orchestrate
bin/orchestrate-readiness-check <slug>
Both must PASS with substantive plans. If FAIL, continue planning — do not hand off to orchestrate.
Emit the architect agent execution handoff verbatim (feature backlog variant). Example for slug google-auth:
## Execution handoff
| Field | Value |
|-------|-------|
| Feature | `Google Auth` |
| Slug | `feature:google-auth` |
| Queue source | GitHub issues with label `feature:google-auth` |
| Next agent | `orchestrate` in a new session |
| First message | `feature:google-auth` |
| Review before starting | Status / note |
|------------------------|---------------|
| Issue expansion | `PASS` |
| Readiness gates | `PASS` |
| Key risks / constraints | `None` |
Copy/paste into the new `orchestrate` chat:
```text
feature:google-auth
```
Do not list shell commands. Do not say only “switch to orchestrate.”
| Section | Owner | Content |
|---------|-------|---------|
| User stories covered | spec | PRD mapping |
| Requirements | spec | Product outcomes |
| Implementation planning | you | Context, Current state, Stage plan, Tests |
| opencode-task-yaml | you | task_id, owner, depends_on, stages[] |
Legacy opencode-task-json fences are read during migration only; new writes use opencode-task-yaml.
User works in spec repo (resync or feature-complete path). You re-run issue-expand here when they return with an updated slug.
.plan/feature.* or .plan/issue.* on this path.tools
AI-powered code review using CodeRabbit CLI. Use only on explicit user request or when parent passes execution_mode orchestrate_coderabbit_gate. Do not run during orchestrated stage/issue work.
tools
Cross-repo companion to to-prd: after PRD frontmatter is filled, run bin/fanout <slug> from this spec repo to create child GitHub issues (one per ticket or legacy slice).
tools
Issue state machine — transition GitHub issue labels per docs/agents/triage-labels.md. Batch helpers via lib/triage.sh.
documentation
Synthesise a PRD from grill-me / research context, write docs/prd/<slug>.md, publish a GitHub issue with prd + state:ready-for-agent + feature:<slug>. Halt after publish — do not invoke fanout.