.claude/skills/pm-scaffold/SKILL.md
Scaffold a complete work package with phases, tasks, and dependencies based on a feature description or linked issue/FR. Analyzes the codebase to produce realistic target files and implementation notes. Auto-transitions linked entities to planning states. Use when the user wants to break down work, plan implementation, create a WP, or says "scaffold", "break this down", "plan the implementation", or "create tasks for...".
npx skillsauth add pinkroosterai/PinkRoosterMcp pm-scaffoldInstall 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.
Create a complete work package with phases, tasks, dependencies, and target files by analyzing the codebase and requirements. The output should be detailed enough that /pm-implement can execute each task without guesswork.
pwdmcp__pinkrooster__get_project_status with projectPath set to the directory aboveprojectIdParse $ARGUMENTS to determine the source:
If entity ID (format proj-N-issue-N or proj-N-fr-N):
mcp__pinkrooster__get_issue_details to load requirementsmcp__pinkrooster__get_feature_request_details to load requirementsQuality check for Feature Requests: If the FR is missing key fields (no user stories, no business value, vague description <100 chars):
AskUserQuestion tool:
[{label: "Refine first", description: "Run /pm-refine-fr {frId} to add user stories and detail before scaffolding (Recommended)"}, {label: "Proceed anyway", description: "Scaffold now with the available data"}]/pm-next --auto or any auto-mode workflow: skip the warning entirely and proceed with scaffolding using available data. Do not prompt.If free-text description:
$ARGUMENTS directly as the feature descriptionBefore creating a new WP, check if one already exists for this work:
mcp__pinkrooster__get_work_packages with projectIdlinkedIssueIds or linkedFeatureRequestIds)If a linked WP exists, use the AskUserQuestion tool:
[{label: "View existing", description: "Show the existing WP details"}, {label: "Create new", description: "Create a separate WP anyway — the scope is different"}, {label: "Cancel", description: "Don't create another WP"}]If the user selects "View existing", call mcp__pinkrooster__get_work_package_details and present it, then re-ask.
For features involving technologies, libraries, or patterns not already established in the codebase, research before scaffolding. Well-informed tasks save implementation time.
When to research:
When to skip:
How to research:
WebSearch with targeted queries (e.g., "ASP.NET Core webhook HMAC signature middleware")WebFetch to pull relevant library docs or API referencesimplementationNotes — mention specific libraries, patterns, or configuration approaches discoveredDetermine which layers of the codebase need changes:
mcp__serena__get_symbols_overview on relevant directoriesFor each affected layer, identify:
Refer to scaffold-patterns.md for the standard phase structure.
Build the WP following the project's vertical slice pattern:
Phase ordering (skip phases not needed for this feature):
For each phase:
For each task within a phase:
name: concise action (e.g., "Add WorkPackageExport entity")description: what specifically needs to be doneimplementationNotes: concrete guidance referencing existing patterns and any research findingstargetFiles: actual file paths found during codebase analysisdependsOnTaskIndices: 0-based indices of tasks within the same phase that must complete firstEach phase should have 2-5 acceptance criteria that are specific, testable, and verifiable. They define what "done" means for the phase — /pm-verify will check these.
Good criteria are:
Format each criterion with:
name: short label (e.g., "Entity has audit logging")description: specific testable condition (e.g., "WorkPackageExportAuditLog table exists with FieldName, OldValue, NewValue columns and entries are created on every field change")verificationMethod: AutomatedTest (has a test), AgentReview (Claude can verify by reading code), or Manual (requires human testing)Prefer AgentReview for code structure, configuration, and API contract checks.
Prefer AutomatedTest for behavior that has integration or unit tests.
Prefer Manual for UI workflows, deployment steps, and environment-dependent checks.
Example — bad: {name: "API works", description: "The API endpoints work correctly"}
Example — good: {name: "CRUD endpoints respond correctly", description: "POST /api/projects/{id}/exports returns 201 with entity ID. PATCH returns 200. GET returns the entity with all fields. DELETE returns 204."}
Each task should represent 15-45 minutes of implementation work. This keeps tasks meaningful without being overwhelming.
Signs a task is too large (split it):
Signs a task is too small (merge it):
Right-sized examples from this project:
Rate 1-10 based on:
Provide a estimationRationale explaining the score.
Call mcp__pinkrooster__scaffold_work_package with:
projectIdname: derived from requirementsdescription: detailed WP descriptionphases: the designed phase structure (from Step 7)type: Feature (default), BugFix (if from bug issue), Refactor (if refactoring)priority: from the source entity, or Medium for free-textestimatedComplexity: from Step 8estimationRationale: from Step 8linkedIssueIds: [issueId] if scaffolding from an issuelinkedFeatureRequestIds: [frId] if scaffolding from an FRAutomatically update the source entity state to reflect that planning/scaffolding has occurred. No user confirmation needed — scaffolding inherently means planning is underway.
If scaffolding from a Feature Request:
mcp__pinkrooster__create_or_update_feature_request with status: "Scheduled"If scaffolding from an Issue:
mcp__pinkrooster__create_or_update_issue with projectId, issueId, and state: "Designing"## Scaffolded: {wpId} "{wpName}"
### Structure
- **Complexity**: {N}/10 — {rationale}
- **Phases**: {count}
- **Tasks**: {totalTasks}
- **Dependencies**: {totalDependencies}
### Phase Breakdown
**Phase 1: {name}** ({taskCount} tasks, {criteriaCount} acceptance criteria)
- {taskId} "{taskName}" — {targetFiles summary}
- ...
**Phase 2: {name}** ({taskCount} tasks, {criteriaCount} acceptance criteria)
- ...
### Research Applied
- {key finding 1, if research was performed}
- {key finding 2}
### Linked Entity
- {issueId or frId}: "{name}" ({state/status})
### State Transitions
- {issueId or frId}: {oldState} → {newState} (if auto-transitioned)
### Next Steps
- Start implementing: `/pm-implement {wpId}` or `/pm-next`
- Verify after implementation: `/pm-verify {wpId}`
- View project status: `/pm-status`
- Review backlog priorities: `/pm-triage`
targetFiles with real paths found during analysisimplementationNotes with specific guidance for every task, incorporating research findings where applicabletools
Verify acceptance criteria for a phase or entire work package. Runs verification based on each criterion's method (AutomatedTest, Manual, AgentReview) and records results via the MCP tool.
development
Diagnose the root cause of a bug, error, crash, or unexpected behavior. Traces through code, logs, services, database state, and git history to find why something is broken. Researches error messages online for known issues. Produces a diagnosis with evidence and suggested fix. Use when the user reports a problem, error message, stack trace, test failure, or says things like "why is this happening", "this is broken", "I'm getting an error", "something's wrong with...", "debug this", or "figure out why...".
development
Review and prioritize open issues and feature requests. Analyzes severity, age, and codebase impact to recommend priority adjustments and next steps.
tools
Show project status dashboard with issue/FR/WP counts, active items, blocked items, and priority next actions. Use when the user asks about project status, progress, what's happening, what needs attention, or what to work on.