Agent skill
plan-status
Show current status and progress of active feature plans
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/plan-status
SKILL.md
Plan Status
Display current status and progress for active feature plans.
When to Use
Use this when:
- Want to see all active plans at a glance
- Need to check progress on a specific feature
- Daily standup / status review
- Deciding what to work on next
Usage
/plan-status [feature-name]
Arguments:
feature-name- Optional: Show details for specific plan
Instructions
Without Feature Name: Show All Plans
echo "π Active Feature Plans"
echo "======================"
echo ""
# Check if plans directory exists
if [ ! -d "plans/active" ] || [ -z "$(ls -A plans/active 2>/dev/null)" ]; then
echo "No active plans found"
echo ""
echo "Create a plan with: /create-plan <feature-name>"
exit 0
fi
# Iterate through active plans
for plan_dir in plans/active/*; do
if [ -d "$plan_dir" ]; then
FEATURE_NAME=$(basename "$plan_dir")
PLAN_FILE="$plan_dir/plan.md"
if [ -f "$PLAN_FILE" ]; then
# Extract frontmatter
TITLE=$(grep "^title:" "$PLAN_FILE" | sed 's/title: *//')
STATUS=$(grep "^status:" "$PLAN_FILE" | sed 's/status: *//')
TYPE=$(grep "^type:" "$PLAN_FILE" | sed 's/type: *//')
# Count completed phases
TOTAL_PHASES=$(grep -c " - id:" "$PLAN_FILE" || echo "0")
COMPLETED_PHASES=$(grep "status: completed" "$PLAN_FILE" | wc -l || echo "0")
# Status emoji
case "$STATUS" in
planning) STATUS_EMOJI="π" ;;
in_progress) STATUS_EMOJI="π§" ;;
testing) STATUS_EMOJI="π§ͺ" ;;
complete) STATUS_EMOJI="β
" ;;
*) STATUS_EMOJI="β" ;;
esac
echo "$STATUS_EMOJI $FEATURE_NAME"
echo " Title: $TITLE"
echo " Status: $STATUS"
echo " Progress: $COMPLETED_PHASES/$TOTAL_PHASES phases"
# Check for linked worktree
if [ -d "worktrees/$FEATURE_NAME" ]; then
echo " Worktree: β
worktrees/$FEATURE_NAME"
fi
echo ""
fi
fi
done
echo "========================"
echo "Use: /plan-status <name> for details"
With Feature Name: Show Detailed Status
FEATURE_NAME="$1"
PLAN_DIR="plans/active/$FEATURE_NAME"
PLAN_FILE="$PLAN_DIR/plan.md"
# Check if plan exists
if [ ! -f "$PLAN_FILE" ]; then
echo "β Plan not found: $PLAN_FILE"
echo ""
echo "Available plans:"
ls -1 plans/active/ 2>/dev/null || echo " (none)"
exit 1
fi
# Parse frontmatter
TITLE=$(grep "^title:" "$PLAN_FILE" | sed 's/title: *//')
STATUS=$(grep "^status:" "$PLAN_FILE" | sed 's/status: *//')
TYPE=$(grep "^type:" "$PLAN_FILE" | sed 's/type: *//')
CREATED=$(grep "^created:" "$PLAN_FILE" | sed 's/created: *//')
# Display header
echo "π Plan: $TITLE"
echo "========================================"
echo "Feature: $FEATURE_NAME"
echo "Type: $TYPE"
echo "Status: $STATUS"
echo "Created: $CREATED"
echo ""
# Show phases
echo "Phases:"
echo "-------"
# Extract phase information
awk '
/^phases:/ { in_phases=1; next }
in_phases && /^ - id:/ {
id=$3
getline; status=$3
printf " %s: %s\n", id, status
}
/^---/ && in_phases { exit }
' "$PLAN_FILE"
echo ""
# Count tasks
TOTAL_TASKS=$(grep -c "^\- \[ \]" "$PLAN_FILE" || echo "0")
COMPLETED_TASKS=$(grep -c "^\- \[x\]" "$PLAN_FILE" || echo "0")
echo "Tasks:"
echo "------"
echo "Total: $TOTAL_TASKS"
echo "Completed: $COMPLETED_TASKS"
if [ "$TOTAL_TASKS" -gt 0 ]; then
PERCENT=$((COMPLETED_TASKS * 100 / TOTAL_TASKS))
echo "Progress: $PERCENT%"
# Progress bar
BAR_WIDTH=20
FILLED=$((PERCENT * BAR_WIDTH / 100))
EMPTY=$((BAR_WIDTH - FILLED))
printf "["
printf "%${FILLED}s" | tr ' ' 'β'
printf "%${EMPTY}s" | tr ' ' 'β'
printf "] $PERCENT%%\n"
fi
echo ""
# Show open questions
OPEN_QUESTIONS=$(grep "^## Open Questions" -A 100 "$PLAN_FILE" | grep "^\- \[ \]" | wc -l)
if [ "$OPEN_QUESTIONS" -gt 0 ]; then
echo "β οΈ Open Questions: $OPEN_QUESTIONS"
echo ""
fi
# Show success criteria
echo "Success Criteria:"
echo "-----------------"
grep "^## Success Criteria" -A 20 "$PLAN_FILE" | grep "^\- \[" | head -5
echo ""
# Worktree status
if [ -d "worktrees/$FEATURE_NAME" ]; then
echo "Worktree: β
worktrees/$FEATURE_NAME"
cd "worktrees/$FEATURE_NAME"
BRANCH=$(git branch --show-current)
COMMITS=$(git log --oneline origin/main..HEAD 2>/dev/null | wc -l || echo "0")
echo "Branch: $BRANCH"
echo "Commits: $COMMITS"
cd - > /dev/null
else
echo "Worktree: β Not created"
echo "Create with: /worktree-create $FEATURE_NAME"
fi
echo ""
echo "========================================"
echo "Plan file: $PLAN_FILE"
Example Usage
Show all plans:
/plan-status
Output:
π Active Feature Plans
======================
π§ user-authentication
Title: User Authentication System
Status: in_progress
Progress: 2/4 phases
Worktree: β
worktrees/user-authentication
π payment-integration
Title: Stripe Payment Integration
Status: planning
Progress: 0/3 phases
========================
Use: /plan-status <name> for details
Show specific plan details:
/plan-status user-authentication
Output:
π Plan: User Authentication System
========================================
Feature: user-authentication
Type: feature
Status: in_progress
Created: 2026-02-04
Phases:
-------
research: completed
design: completed
implementation: in_progress
testing: pending
Tasks:
------
Total: 18
Completed: 12
Progress: 66%
[ββββββββββββββββββββ] 66%
Success Criteria:
-----------------
- [x] Users can sign up with email/password
- [x] Users can log in
- [ ] Password reset works
- [ ] Session management secure
- [ ] Tests pass
Worktree: β
worktrees/user-authentication
Branch: feature/user-authentication
Commits: 8
========================================
Plan file: plans/active/user-authentication/plan.md
Status Dashboard View
For a quick team dashboard, you can create an alias:
alias plans='/plan-status'
# Show all plans
plans
# Show specific plan
plans user-auth
Status Meanings
| Status | Emoji | Meaning |
|---|---|---|
planning |
π | Defining requirements, not started coding |
in_progress |
π§ | Active development |
testing |
π§ͺ | Development complete, testing in progress |
review |
π | In code review |
complete |
β | Done and merged |
blocked |
π | Waiting on dependency |
paused |
βΈοΈ | Temporarily stopped |
Integration with Git
Update status based on branch activity:
# After making progress
cd worktrees/feature-name
# ... make changes ...
# Update plan status
sed -i 's/status: planning/status: in_progress/' plans/active/feature-name/plan.md
Best Practices
Daily Routine:
- Run
/plan-statuseach morning - Review open questions
- Update phase status as you progress
- Mark tasks complete as you go
Weekly Routine:
- Review all active plans
- Archive completed plans
- Re-prioritize if needed
- Update estimates based on progress
Status Updates:
- Update
status:field in frontmatter - Update
phases[].statusas you complete each - Check off
- [ ]tasks as you finish them - Add notes in the plan for important decisions
Tips
Keep Plans Updated:
- Update immediately after completing phases
- Don't wait until end of day
- Real-time status is most useful
Use with Stand-ups:
- Quick overview of all active work
- Shows what's blocked
- Identifies what needs attention
Tracking Progress:
- Checkbox completion = task level
- Phase status = milestone level
- Overall status = project level
Advanced: Auto-Update from Git
# Hook to update plan when pushing commits
# .git/hooks/pre-push
BRANCH=$(git branch --show-current)
FEATURE_NAME=$(echo $BRANCH | sed 's/feature\///')
PLAN_FILE="plans/active/$FEATURE_NAME/plan.md"
if [ -f "$PLAN_FILE" ]; then
# Auto-update to in_progress if was planning
sed -i 's/status: planning/status: in_progress/' "$PLAN_FILE"
fi
Troubleshooting
Plan not showing:
- Check file is in
plans/active/ - Verify
plan.mdexists - Check YAML frontmatter is valid
Progress not accurate:
- Use consistent checkbox format:
- [ ]and- [x] - Don't use custom checkbox formats
- Ensure phases array in frontmatter is updated
Worktree status wrong:
- Verify worktree exists in
worktrees/ - Check naming matches plan directory
- Use
/worktree-createif missing
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?