From shipshitdev-library
Turns rough feature requests into PRD epics and sub-issues on GitHub Projects. Includes duplicate detection and kanban placement.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shipshitdev-library:feature-intakeWhen to use
feature intake, client requirement, stakeholder requirement, write this as a PRD, create kanban tickets, push to GitHub board, turn this idea into issues, /feature
This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a rough client, sales, founder, or stakeholder requirement into a tracker
Turn a rough client, sales, founder, or stakeholder requirement into a tracker artifact that agents can plan and implement without re-eliciting the same context. Create one parent PRD issue plus focused sub-issues unless the request is a single-layer change.
Inputs:
Outputs:
Creates/Modifies:
External Side Effects:
Confirmation Required:
Delegates To:
prd-writer for PRD structure and quality gatesprd-task-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,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.
Testing bar (non-negotiable — encode in the PRD Verification Plan):
IN.Drop any single test type only with a one-line reason in Non-Functional Requirements; never silently. A pure copy/static change may scope to
coverage-only with that reason.
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:**
- WHEN <trigger> THE SYSTEM SHALL <observable response>.
## Functional Requirements
1. <Verifiable behavior, not implementation detail>
## Non-Functional Requirements
- <Only performance, accessibility, security, observability, or reliability requirements that matter>
## Acceptance Criteria
- WHEN <trigger> THE SYSTEM SHALL <observable response>.
- IF <failure or edge condition> THEN THE SYSTEM SHALL <handled response>.
- THE SYSTEM SHALL <invariant that must always hold>.
## 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
- integration tests: <boundaries covered; suites/files that must exist and pass>
- e2e tests: <workflow proven end to end; suite/file> | or `N/A - <reason>`
- coverage: ≥80% on added/changed code (<command/tool that reports it>)
- manual: <manual QA steps or stakeholder demo checks>
## Risks & Open Questions
- <Unresolved assumption or risk>
Each sub-issue should include:
[backend] boundaries, the e2e
test for [e2e], and the slice's share of the ≥80% coverage barUse 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.WHEN/WHILE/WHERE/IF … THE SYSTEM SHALL …) and pass/fail.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 "type:feature"
gh issue create --title "[backend] <title>" --body-file /tmp/backend.md --label "type: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:
npx claudepluginhub shipshitdev/skills --plugin writing-plansStructured project planning and PRD generation with three modes: new (project kickoff with repo scaffolding), feature (compact feature PRD), retro (data-driven retrospective).
Creates well-written PRDs, tasks, and GitHub issues/sub-issues for features, bugs, or enhancements. Helps plan work, break down epics, and write local task files.
Creates structured Linear issues (1 main + N sub-issues) with project linking, title prefixing, and labeling. Supports two workflows: Generic (code tasks) and PRD Pipeline (Korean-language product requirements with content strategy principles).