Files
gh-duongdev-ccpm/commands/utils:report.md
2025-11-29 18:24:24 +08:00

9.2 KiB

description, allowed-tools, argument-hint
description allowed-tools argument-hint
Show progress report across all tasks in a project
LinearMCP
<project>

Progress Report for Project: $1

Generating comprehensive progress report for $1 project.

🚨 CRITICAL: Safety Rules

READ FIRST: $CCPM_COMMANDS_DIR/SAFETY_RULES.md

NEVER submit, post, or update anything to Jira, Confluence, BitBucket, or Slack without explicit user confirmation.

  • Linear operations are permitted (internal tracking)
  • External PM systems require user confirmation for write operations

Project Context

Project Mapping:

  • my-app → Linear Team: "Work", Project: "My App"
  • my-project → Linear Team: "Work", Project: "My Project"
  • personal-project → Linear Team: "Personal", Project: "Personal Project"

Workflow

Step 1: Fetch All Issues for Project

Use Linear MCP to:

  1. List all issues for the project ($1)
  2. Include: Backlog, Planning, In Progress, Verification, Done (recent)
  3. Exclude: Canceled, archived (unless requested)
  4. Get full details: status, labels, assignee, checklist progress, dates

Step 2: Categorize and Analyze

Group issues by status:

const categories = {
  backlog: issues.filter(i => i.status === 'Backlog'),
  planning: issues.filter(i => i.status === 'Planning'),
  inProgress: issues.filter(i => i.status === 'In Progress'),
  verification: issues.filter(i => i.status === 'Verification'),
  blocked: issues.filter(i => i.labels.includes('blocked')),
  done: issues.filter(i => i.status === 'Done' && withinLast7Days(i))
}

Calculate statistics:

const stats = {
  total: issues.length,
  byStatus: Object.keys(categories).map(k => ({
    status: k,
    count: categories[k].length,
    percentage: (categories[k].length / issues.length * 100).toFixed(1)
  })),
  avgCompletionTime: calculateAvgTime(categories.done),
  totalSubtasks: sumAllSubtasks(issues),
  completedSubtasks: sumCompletedSubtasks(issues),
  blockedCount: categories.blocked.length
}

Step 3: Display Report

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Progress Report: $1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📅 Report Date: [Current Date]
🏢 Project: $1
📈 Total Issues: [N]
✅ Overall Progress: [X]% ([Y] of [Z] subtasks complete)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 Status Breakdown
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

📦 Backlog:        [N] issues ([%]%)
📝 Planning:       [N] issues ([%]%)
⏳ In Progress:    [N] issues ([%]%)
🔍 Verification:   [N] issues ([%]%)
🚫 Blocked:        [N] issues ([%]%) ⚠️
✅ Done (7d):      [N] issues ([%]%)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️  Blocked Issues (Needs Attention!)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[If blocked issues exist, list them:]

1. [WORK-123]: [Title]
   Status: [Status]
   Blocked: [Duration]
   Action: /ccpm:verification:fix WORK-123

2. [WORK-124]: [Title]
   Status: [Status]
   Blocked: [Duration]
   Action: /ccpm:verification:fix WORK-124

[Or if none:]
✅ No blocked issues!

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🏃 In Progress Issues
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[For each in-progress issue:]

1. [WORK-125]: [Title]
   Progress: [X/Y] subtasks ([%]%)
   Time in progress: [Duration]
   Next: /ccpm:implementation:next WORK-125

2. [WORK-126]: [Title]
   Progress: [X/Y] subtasks ([%]%)
   Time in progress: [Duration]
   Next: /ccpm:implementation:next WORK-126

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Planning Issues (Ready to Start)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[For each planning issue:]

1. [WORK-127]: [Title]
   Checklist: [N] subtasks
   Ready: /ccpm:implementation:start WORK-127

2. [WORK-128]: [Title]
   Checklist: [N] subtasks
   Ready: /ccpm:implementation:start WORK-128

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔍 Verification Issues (Almost Done!)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[For each verification issue:]

1. [WORK-129]: [Title]
   Time in verification: [Duration]
   Next: /ccpm:verification:verify WORK-129

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Recently Completed (Last 7 Days)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

[For each done issue:]

1. [WORK-130]: [Title]
   Completed: [Date]
   Time to complete: [Duration]

2. [WORK-131]: [Title]
   Completed: [Date]
   Time to complete: [Duration]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📈 Insights
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚡ Velocity: [N] issues completed in last 7 days
⏱️  Avg Completion Time: [X] days
🎯 Focus: [Most common status - where work is concentrated]
🚨 Attention Needed: [Number] blocked, [Number] in verification too long

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Step 4: Interactive Next Actions

READ: $CCPM_COMMANDS_DIR/_shared-linear-helpers.md

Use AskUserQuestion tool:

{
  questions: [{
    question: "What would you like to do next?",
    header: "Next Action",
    multiSelect: false,
    options: [
      {
        label: "Work on Blocked Issues",
        description: `Fix ${blockedCount} blocked issues`
      },
      {
        label: "Continue In-Progress",
        description: `Work on ${inProgressCount} active tasks`
      },
      {
        label: "Start New Task",
        description: "Start one of the planning tasks"
      },
      {
        label: "Create New Issue",
        description: "Create and plan a new task (/ccpm:planning:create)"
      }
    ]
  }]
}

Execute based on choice:

  • If "Work on Blocked Issues" → Show blocked issues and ask which to fix
  • If "Continue In-Progress" → Show in-progress issues and ask which to work on
  • If "Start New Task" → Show planning issues and ask which to start
  • If "Create New Issue" → Prompt for title and run /ccpm:planning:create
  • If "Other" → Show quick commands and exit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Quick Commands
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Create Task:   /ccpm:planning:create "<title>" $1
View Task:     /ccpm:utils:status <issue-id>
Context:       /ccpm:utils:context <issue-id>
Refresh:       /ccpm:utils:report $1

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Notes

Report Scope

  • Shows all active work in the project
  • Highlights blockers and issues needing attention
  • Provides quick actions for each category
  • Calculates velocity and insights

Usage

# For external PM projects
/ccpm:utils:report my-app
/ccpm:utils:report my-project

# For internal projects
/ccpm:utils:report personal-project

Refresh Frequency

  • Run anytime to see current project state
  • Especially useful at start of day
  • Or when planning next work
  • Or in team standups