From spec-workflow
Continue implementing next task of a GitHub-published feature. Use for "continue feature", "next task", "continue implementation", "기능 계속 구현해줘", "다음 작업 해줘", "continue" requests.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spec-workflow:continue-featureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Find and implement the next available task from a GitHub-published feature with full Project Roadmap integration.
Find and implement the next available task from a GitHub-published feature with full Project Roadmap integration.
gh) authenticatedExecute ALL steps in order. DO NOT skip any step.
Look for feature folder in /specs/{feature-name}/ containing:
requirements.md - feature requirementsimplementation-plan.md - task breakdowngithub.md - GitHub references (REQUIRED)Scan /specs folder for features with github.md:
# Check open issues count for each feature
gh issue list --label "feature/{feature-name}" --state open --json number --limit 100
Use AskUserQuestion to let user select:
{
"questions": [
{
"question": "Which feature to continue?",
"header": "Select Feature",
"multiSelect": false,
"options": [
{
"label": "{feature-1}",
"description": "Phase {X}/{Y}, {N} tasks remaining"
}
]
}
]
}
"This feature is not published to GitHub yet. Run
/publish-to-githubfirst."
Parse github.md to extract:
feature_name from frontmatterepic_issue number from frontmatterrepository from frontmatterproject_number from frontmatterproject_id from frontmatterfields.status field IDfields.start_date field IDfields.end_date field IDfields.phase field IDgh issue list \
--label "feature/{feature_name}" \
--state open \
--json number,title,body,labels \
--limit 100
From returned issues:
epic label)Phase N: {Title}From the current Phase issue body:
## Tasks section- [ ] (not - [x])If no tasks remaining:
Before implementation, display:
Current Task
Feature: {feature_name}
Phase: {phase_number} - {phase_title}
Task: {task_description}
Issue: #{issue_number}
Roadmap: https://github.com/users/{owner}/projects/{project-number}/views/1
# Get item ID for the Phase issue
ITEM_ID=$(gh project item-list {project-number} --owner {owner} --format json | jq -r '.items[] | select(.content.number == {phase-issue-number}) | .id')
# Update status to "In Progress"
gh project item-edit --project-id {project-id} --id $ITEM_ID --field-id {status-field-id} --single-select-option-id {in-progress-option-id}
gh issue comment {phase-issue-number} --body "## Task Started
Starting: **{task_description}**
Time: $(date -u +"%Y-%m-%d %H:%M UTC")
Status: In Progress"
Before implementing:
requirements.md for feature requirementsExplore subagent to understand codebase patternsTask tool call:
subagent_type: Explore
prompt: "Explore codebase to understand:
- Project structure and conventions
- Existing patterns related to {task}
- Files that may need modification"
Implement all tasks following project conventions:
After implementation, use Task tool for code review:
Task tool call:
subagent_type: general-purpose
prompt: "Review the code changes for this task:
- Check code quality and readability
- Identify potential bugs or missing error handling
- Verify consistency with existing patterns
- Suggest improvements if needed"
If critical issues found, fix them before proceeding.
After implementation, write and run unit tests:
# Example for Node.js
npm test
# Example for Python
pytest
If tests fail, fix the issues before proceeding.
After successful implementation and tests:
git add {changed-files}
git commit -m "{type}: {description}
Implements task from Phase {N}
Issue: #{phase-issue-number}"
Update the Phase issue body to check off completed task:
# Get current body
BODY=$(gh issue view {phase-issue-number} --json body -q '.body')
# Update body with task checked (replace "- [ ] {task}" with "- [x] {task}")
gh issue edit {phase-issue-number} --body "{updated-body-with-checked-task}"
Add a detailed comment to the issue:
gh issue comment {phase-issue-number} --body "## Task Complete: {task_description}
### Changes
- \`{file1}\`: {description}
- \`{file2}\`: {description}
### Tests
- {test_description}: Passed
### Commit
\`{commit-hash}\`
### Progress
Tasks: {completed}/{total} ({percentage}%)
Time: $(date -u +"%Y-%m-%d %H:%M UTC")"
Keep status as "In Progress"
# Update status to "Done"
gh project item-edit --project-id {project-id} --id $ITEM_ID --field-id {status-field-id} --single-select-option-id {done-option-id}
# Update actual end date
gh project item-edit --project-id {project-id} --id $ITEM_ID --field-id {end-date-field-id} --date "$(date +%Y-%m-%d)"
# Close the Phase issue
gh issue close {phase-issue-number} --comment "## Phase Complete
All tasks completed successfully.
### Summary
- Tasks: {total} completed
- Duration: {start_date} to {end_date}
- Commits: {commit_count}"
# Get milestone progress
gh api repos/{owner}/{repo}/milestones/{milestone-number} --jq '{open: .open_issues, closed: .closed_issues}'
Task Complete
Feature: {feature_name}
Phase: {phase_number} - {phase_title}
Task: {task_description}
Status: Completed
Changes:
- {file1}: {description}
- {file2}: {description}
Commit: {commit-hash}
Tests: Passed
Progress:
- Phase {N}: {completed}/{total} tasks
- Milestone: {closed}/{total} issues closed
Roadmap: https://github.com/users/{owner}/projects/{project-number}/views/1
Next: {next_task_or_phase_info}
Ask user:
{
"questions": [
{
"question": "Continue to next task?",
"header": "Next Action",
"multiSelect": false,
"options": [
{
"label": "Continue",
"description": "Implement next task: {next_task}"
},
{
"label": "Stop",
"description": "Stop for now"
}
]
}
]
}
When all phases are complete:
# Update Epic status to Done
EPIC_ITEM_ID=$(gh project item-list {project-number} --owner {owner} --format json | jq -r '.items[] | select(.content.number == {epic-number}) | .id')
gh project item-edit --project-id {project-id} --id $EPIC_ITEM_ID --field-id {status-field-id} --single-select-option-id {done-option-id}
gh project item-edit --project-id {project-id} --id $EPIC_ITEM_ID --field-id {end-date-field-id} --date "$(date +%Y-%m-%d)"
# Close Epic issue
gh issue close {epic-number} --comment "## Feature Complete!
All phases implemented successfully.
### Summary
- Phases: {total} completed
- Total Tasks: {total_tasks}
- Duration: {start_date} to $(date +%Y-%m-%d)
### Phase Details
- Phase 1: {title} - {task_count} tasks
- Phase 2: {title} - {task_count} tasks
...
View the completed roadmap: https://github.com/users/{owner}/projects/{project-number}/views/1"
# Close milestone
gh api repos/{owner}/{repo}/milestones/{milestone-number} --method PATCH -f state="closed"
Guide to run /publish-to-github or use offline mode with implementation-plan.md
Close Epic issue, update Project, close Milestone, display completion message
Report errors and suggest fixes
Analyze failures and fix before proceeding
If user doesn't use GitHub or gh unavailable, fallback to implementation-plan.md:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub junsik/claude-plugins --plugin spec-workflow