
This is the structured handoff workflow between product and engineering. It takes a business requirement or feature request and outputs a complete PRD with stable requirement IDs, acceptance criteria in Given/When/Then format, a decision log, and task slices mapped to owners and verification lanes. The interviewing step is smart: it drafts a provisional direction first, then asks only blocking questions in batches of three with recommended defaults. It explicitly separates what from how, links every requirement back to business objectives, and includes a RACI table plus offshore handoff details when multiple teams are involved. If you've ever started coding only to realize the scope wasn't nailed down, this forces that conversation up front before anyone writes code.
$ npx -y skills add hoangnguyen0403/agent-skills-standard --skill plan-feature --agent claude-codeInstalls into .claude/skills of the current project.
[!IMPORTANT] Plan a feature from BRD-lite brief or clear intent into PRD (What), decisions, implementation plan, and task slices.
Optional args: slug=, ticket=<id/url>, mode=interactive|autonomous|channel, channel=, auto_continue=true|false, profile=business|hybrid|technical.
When the user asks to perform this workflow, execute the following steps:
Goal: Produce a PM-owned decision-complete PRD, delivery plan, and IT Department handoff before code starts.
docs/product/<slug>/evidence.json) with stable slug; when intent is unclear, ask which matching ticket/brief is authoritative; link strategy, OPP, DEC, assumption, and MET refs without duplicating records or minting product IDs as requirement IDs.product-management/product-requirements and on-demand references/requirements-modeling.md; report truthfully if unavailable. For BRD-lite, also load product-management/product-business-requirements.common-operator-profile, common-decision-discipline, quality-engineering-business-analysis, and matched framework skills.operator_profile, lane, snc_tier, delivery_mode, approval, BRD objective IDs, SMART metric, scope fence, assumptions, evidence ledger, glossary, risks, and delivery context; equivalent approved evidence suffices without separate BRD/PRD/SRS filenames, and reused approved context skips rediscovery. When a PRD relies on captured stakeholder meaning, load product-management/product-business-requirements/references/analysis-planning-and-elicitation.md; requirements-modeling.md remains the sole owner of conflict, quality-versus-need, and transition semantics.brief: approved low-risk, nonsensitive work carrying outcome, scope fence, owner, observable criteria, approval reference, and verification lane. standard: focused PRD; extended: add risk-triggered contracts, migration, capacity, failure analysis, or governance detail.extended with its technical design and human gate.docs/prd/prd-[slug].md when file writes are allowed; in brief mode keep the approved ticket/session record instead. Put the decision brief first: changes, recommendation, impact if wrong, evidence and limitations, unresolved decision with owner and affected slice, approval sought, independently ready slices.design-solution.validate-product (when selected/installed; else record capability gap and route to implementation-readiness); architecture/contracts unclear -> design-solution; approved plan with trace and testable ACs -> implementation-readiness.slug, operator_profile, lane, snc_tier, delivery_mode, approval, PRD or approved ticket path/revision, source IDs, decisions, RACI, rollout notes, task slices, delivery estimate, verification plan, run record path, next workflow.# Feature Plan: [Name]
## Decision Brief
- Changes since approved revision: [what changed]
- Recommendation: [decision]
- Impact if wrong: [consequence]
- Evidence and limitations: [confirmed(<source>); unverified]
- Unresolved decision: [decision] — owner: [owner] — affected slice: [slice]
- Approval sought: [exact approval and authority]
- Independently ready slices: [slices]
## Outcome And Guardrails
- Outcome: [observable outcome]; guardrails: [what must not regress]
## Scope And Non-Goals
- Scope fence: [approved boundary]
- In scope: [capabilities]
- Non-goals: [exclusions]
## Requirements And Acceptance Criteria
| Req ID | Requirement | Owner | Priority | Status |
| --- | --- | --- | --- | --- |
| REQ-001 | [what must exist] | [owner] | P0/P1/P2 | [status] |
| AC ID | Req ID | Given | When | Then | Owner | Verification lane |
| --- | --- | --- | --- | --- | --- | --- |
| AC-001 | REQ-001 | [context] | [action] | [observable result] | [owner] | [lane] |
## Open Consequential Decisions
| Decision | Owner | Affected slice | Required input |
| --- | --- | --- | --- |
## Status And Receipt
- `feature_status`: [status]
- Run record: `artifacts/runs/[slug]/[run-id].json` (schema-valid is not an approval)
## References
- [approved ticket/source, revision, evidence]
## Implementation Plan, Task Slices And Verification Plan
## Next Workflow
- [design-solution | implementation-readiness]
{schema_version: 1, run_id: "[run-id]", slug: "[slug]", workflow: plan-feature, feature_status: requirements_ready, started_at: "[timestamp]", completed_at: "[timestamp]", requirement_trace: {brd_objectives: [], requirements: [], acceptance_criteria: [], srs: []}, completed_evidence: [], missing_evidence: [], decision_needed: [], recommended_next_workflow: design-solution, cost: {source: unavailable}, agent: {identity: "[agent-identity]", model: "[model]"}}
Call get_session_cost(workflow="plan-feature") before final handoff.
Sponsors