bundles/github/skills/feature-intake/SKILL.md
Capture a client or stakeholder feature request, turn it into a planner-ready PRD epic with scoped sub-issues, check for duplicate work, and place approved issues on a GitHub Projects kanban. Use when a user invokes feature intake, asks to turn a rough client requirement into GitHub issues, or wants an idea written as a PRD and pushed to a board.
npx skillsauth add shipshitdev/library feature-intakeInstall 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.
Turn a rough client, sales, founder, or stakeholder requirement into a durable tracker artifact that agents can plan and implement without re-eliciting the same context. Prefer one parent PRD issue plus focused sub-issues over a single vague ticket.
Inputs:
Outputs:
Creates/Modifies:
External Side Effects:
Confirmation Required:
Delegates To:
writing-prds for PRD structure and quality gatestask-prd-creator for issue and sub-issue creation mechanicsgh-project-board when the target board needs inspection or normalizationprd-quality-gate before marking the intake ready for planningCreate a small issue tree:
Use sub-issues to prevent dropped work. A full-stack feature normally needs at least:
[backend] for API, data model, business logic, jobs, integrations, auth, or
persistence.[frontend] for screens, state, routing, copy, forms, or user-visible flows.[e2e] for cross-layer wiring, contracts, and the test that proves the flow
works end to end.Allow a layer to be N/A only with a one-line reason in the parent PRD's
Layer Coverage section. If both backend and frontend are in scope, include an
e2e sub-issue.
Verify the target repository and GitHub auth before drafting:
gh auth status
gh repo view --json nameWithOwner,defaultBranchRef --jq '{repo:.nameWithOwner, default:.defaultBranchRef.name}'
git status --short --branch
If a GitHub Project target is known, inspect live project fields before assuming status or priority option names:
gh project view <project-number> --owner <owner> --format json
gh project field-list <project-number> --owner <owner> --format json
gh project item-list <project-number> --owner <owner> --limit 100 --format json
Use the repository's native board vocabulary. If the board is missing expected
Status or Priority fields, run gh-project-board before writing items.
Read the branch and dirty state so intake does not trample active work:
git status --short --branch
git branch --show-current
For read-only intake, dirty state is acceptable if reported. For workflows that require switching or pulling a branch, require a clean tree first. Never stash, reset, merge, rebase, or switch branches just to write intake unless the user explicitly asked for that repository workflow.
Search issues and the project board before drafting:
gh issue list --state all --limit 50 --search "<keywords>" --json number,title,state,labels,url,projectItems
Also search local planning and memory docs when available:
rg -n "<keywords>" .agents README.md docs 2>/dev/null
If a strong duplicate exists, recommend updating that issue. If nearby work
exists but the request is distinct, reference it in Dependencies or
Risks & Open Questions.
Prefer existing context over stakeholder interrogation:
.agents/memory/, product docs, roadmap docs, and recent issues.Ask questions only when the PRD would otherwise invent important facts. Ask no more than three focused questions at a time, and avoid implementation questions.
Cover these details:
If context is clear enough, draft with an explicit inference note:
I have enough context to draft this. I inferred the user, outcome, and initial
priority from existing repo context. I will keep uncertain assumptions in
Risks & Open Questions for confirmation.
Decide which slices are in scope before writing sub-issues:
| Layer | Mark IN when | Mark N/A when |
| --- | --- | --- |
| backend | APIs, data, jobs, auth, integrations, persistence, business rules change | Pure copy/static UI change |
| frontend | Any user-visible screen, form, state, route, or interaction changes | Internal job or backend-only operation |
| e2e | Frontend and backend must work together, or a critical workflow needs proof | Single-layer change with no integration path |
| docs/ops | Runbooks, migration notes, launch steps, support workflow, or monitoring are required | No operational handoff needed |
Default product features to backend + frontend + e2e unless the requirement is clearly narrower. Keep sub-issues small enough for one focused PR.
Use the issue body as the PRD. Do not add YAML frontmatter to issue bodies.
# PRD: <kebab-case-name>
## Executive Summary
<2-4 sentences: what this is, why now, and who benefits.>
## Problem Statement
<Concrete pain, missing capability, or customer promise. Name the user/workflow.>
## Goals
- <Measurable or verifiable goal>
## Non-Goals
- <Explicitly excluded scope>
## User Stories
- As a <role>, I want <capability> so that <outcome>.
**Acceptance:**
- <Concrete check>
## Functional Requirements
1. <Verifiable behavior, not implementation detail>
## Non-Functional Requirements
- <Only performance, accessibility, security, observability, or reliability requirements that matter>
## Success Criteria
- <Pass/fail assertion>
## Acceptance Criteria
- [ ] <Human-checkable completion condition>
- [ ] <Edge case or failure state is handled>
## Out of Scope
- <Boundary agents must not cross>
## Dependencies
- <Issue numbers, docs, services, packages, feature flags, or `None`>
## Layer Coverage
- **backend:** IN - sub-issue #<filled after creation> | or `N/A - <reason>`
- **frontend:** IN - sub-issue #<filled after creation> | or `N/A - <reason>`
- **e2e:** IN - sub-issue #<filled after creation> | or `N/A - <reason>`
- **docs/ops:** IN - sub-issue #<filled after creation> | or `N/A - <reason>`
## Sub-Issues
- [ ] `[backend]` <title> - #<n>
- [ ] `[frontend]` <title> - #<n>
- [ ] `[e2e]` <title> - #<n>
## Verification Plan
- tests: <test suites or files that must exist/pass>
- manual: <manual QA steps or stakeholder demo checks>
## Risks & Open Questions
- <Unresolved assumption or risk>
Each sub-issue should include:
Use titles like:
[backend] Add saved search automation API[frontend] Add saved search controls[e2e] Verify saved search workflowDo not create issues until the draft passes these checks:
None.IN layer has a sub-issue.N/A layer has a reason.Risks & Open Questions.Show the parent and sub-issue draft. Wait for approval before writing to GitHub.
After approval, create the parent first, then sub-issues:
gh issue create --title "<short imperative title>" --body-file /tmp/parent-prd.md --label "feature"
gh issue create --title "[backend] <title>" --body-file /tmp/backend.md --label "feature"
Link sub-issues using the repository's supported GitHub sub-issue API or tracker convention. If native sub-issues are unavailable, link children in the parent body and each child body.
Add approved items to the configured project board and set native fields:
gh project item-add <project-number> --owner <owner> --url <issue-url>
Use live field IDs from gh project field-list and item IDs from
gh project item-list; do not hard-code project field IDs.
Return:
development
Create an isolated git worktree from the correct base branch and check it out into a clean, gitignored directory. Use when the user asks to make a worktree, spin up a parallel/isolated workspace, work on something without disturbing the current checkout, branch off the current work, or run multiple agents on the same repo at once. Picks the base branch smartly — the current feature branch when you are on one, otherwise the develop integration branch — so worktrees continue your in-progress work by default instead of forking from the wrong place.
development
Verify a release was fully promoted through develop, staging, and master/main, then prune merged local and remote branches and stale git worktrees. Squash-merge aware — uses GitHub PR merge state as the merge oracle, not commit ancestry. Use when the user asks to clean up branches after a deploy, prune worktrees, remove merged branches, tidy up after promoting develop to staging to master, or confirm nothing stale was left behind before pruning.
development
Structured "done coding, now what?" workflow: verify tests pass, detect the repository environment (normal repo vs worktree, named branch vs detached HEAD), present exactly the right merge / PR / keep / discard options, and execute the chosen path including safe worktree cleanup. Use when implementation is complete and the branch needs to be integrated, published, or abandoned.
tools
Provides Tailwind CSS v4 performance optimization and best practices guidelines. Triggers when writing, reviewing, or refactoring Tailwind CSS v4 code; when working with Tailwind configuration, @theme directive, utility classes, responsive design, dark mode, container queries, or CSS generation optimization.