From productivity-skills
This skill should be used when the user asks to "review projects", "manage projects", "check project status", "add action to project", "complete project", or wants to review and manage GTD projects with a guided workflow including status tracking and action management.
npx claudepluginhub aeghnnsw/cc-toolkit --plugin productivity-skillsThis skill uses the workspace's default tool permissions.
<!--
Implements structured self-debugging workflow for AI agent failures: capture errors, diagnose patterns like loops or context overflow, apply contained recoveries, and generate introspection reports.
Monitors deployed URLs for regressions in HTTP status, console errors, performance metrics, content, network, and APIs after deploys, merges, or upgrades.
Provides React and Next.js patterns for component composition, compound components, state management, data fetching, performance optimization, forms, routing, and accessible UIs.
Review and manage GTD projects with infer-and-confirm workflow. The agent analyzes project state, proposes actions, and the user confirms or overrides — minimizing back-and-forth.
Run Swift source directly (no build step required):
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift <command>
Query overdue reminders (uses Apple's datetime-aware overdue detection):
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders overdue
Ensure required lists exist:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders lists
If any required lists are missing, create them:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create-list "Projects"
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create-list "@quick"
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create-list "@1pomo"
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create-list "@2pomo"
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create-list "@deep"
Query all open projects:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders incomplete "Projects"
Query all context lists for actions:
for context in "@quick" "@1pomo" "@2pomo" "@deep"; do
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders incomplete "$context"
done
For each project, find ALL linked actions by matching #{ProjectName} in the action's notes field:
#{ProjectName}Extract project end goal from project's notes field (format: "Goal: [description]")
Determine project status:
Statuses evaluated in order of severity: Overdue > Stalled > Healthy.
Present all projects sorted by urgency (overdue first, then stalled, then healthy):
# Projects Overview
1. ⚠️ ClientProject-20260110 [Medium] — OVERDUE
- Goal: Invoice paid and project closed
- Actions (1):
• "Send invoice" (@quick) - OVERDUE (due 2026-01-10)
→ Suggested: Reschedule overdue action
2. ⚠️ ReviewQ1Roadmap-20260115 [High] — STALLED
- Goal: Roadmap approved by stakeholders
- No pending actions
→ Suggested: Add next action
3. ✓ VacationResearch-20260112 [High]
- Goal: Flights and hotel booked for Hawaii trip
- Actions (2):
• "Research flights to Hawaii" (@1pomo)
• "Email hotel for rates" (@quick)
Which project to work on? [1/2/3/Done]
Use AskUserQuestion: "Which project to work on?"
If no open projects, inform user: "No open projects. Use /gtd-process to create projects from inbox items."
Based on the selected project's state, infer the most logical action automatically — do not ask "what would you like to do?":
| Project State | Auto-Inferred Action | Rationale |
|---|---|---|
| Overdue actions | Reschedule the specific overdue action(s) (Step 4c) | Overdue items need immediate attention |
| Stalled (0 actions) | Add next action (Step 4a) | Stalled projects need a next action to move forward |
| Healthy with actions | Present brief options | Multiple valid paths — ask user |
For overdue projects: Identify the specific overdue action(s) and announce:
"Project has overdue action 'Send invoice' (due 2026-01-10). Rescheduling — or would you rather mark the project complete / skip?"
If multiple actions are overdue, process each one sequentially. If the project also has non-overdue actions, only target the overdue ones.
For stalled projects: Announce:
"Project is stalled with no actions. Let's add the next action — or mark project complete / skip?"
For healthy projects: Use AskUserQuestion: "What would you like to do?"
In all cases, the user can override the suggestion by saying "complete project" or "skip".
Use AskUserQuestion: "What's the next action for [ProjectName]?"
Infer all properties from the title text (same pattern as gtd-process):
Present a single proposal for confirmation:
Action: "Email hotel for rates"
→ List: @quick (~15 min)
→ Priority: High (inherited from project)
→ Due: No due date
Confirm? [Yes / Modify / Skip]
Use AskUserQuestion: "Confirm this action?"
Create the action:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create \
--title "Action title" \
--list "@quick" \
--notes "#{ProjectName-20260112}" \
--priority 1
Add --due "2026-01-20 17:00" only if a due date was inferred or confirmed.
Report: "Added action '[title]' to [ProjectName]"
Return to Step 2.
If project has multiple actions, use AskUserQuestion: "Which action to complete?"
Mark the selected action complete:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders complete \
--title "Action title" \
--list "@1pomo"
Report: "Completed: '[action title]'"
Check remaining actions:
"No remaining actions — project will become stalled. Let's add the next action." Proceed to Step 4a. The user can select "Skip" in Step 4a's confirm prompt to decline and return to Step 2 (project becomes stalled).
If project has multiple actions, use AskUserQuestion: "Which action to edit?"
For overdue reschedule (arrived from auto-infer):
"Send invoice" is overdue (due 2026-01-10)
→ Reschedule to: tomorrow 17:00
Confirm? [Yes / Pick different date]
For general edit (user selected "Edit action"):
To update, delete old action and create new one with updated properties:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders delete \
--title "Old title" \
--list "@old-list"
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders create \
--title "New title" \
--list "@new-list" \
--notes "#{ProjectName}" \
--priority 5 \
--due "2026-01-15 17:00"
Report: "Updated action '[title]'"
Return to Step 2.
Mark the project complete:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders complete \
--title "ProjectName-20260112" \
--list "Projects"
Complete any remaining linked actions:
swift ${CLAUDE_PLUGIN_ROOT}/scripts/productivity-cli.swift reminders complete \
--title "Action title" \
--list "@1pomo"
Report: "Project '[ProjectName]' marked complete"
Return to Step 2.
When user selects "Done reviewing" in Step 2:
# Review Complete
Projects reviewed: 3
Actions completed: 2
Actions added: 1
Projects completed: 1
yyyy-MM-dd HH:mm for due dates, default time 17:00| List | Time Estimate |
|---|---|
| @quick | Quick tasks (< 25 min) |
| @1pomo | 1 Pomodoro (25 min) |
| @2pomo | 2 Pomodoros (50 min) |
| @deep | Deep focus (3+ pomodoros) |
| Display | Value |
|---|---|
| High | 1 |
| Medium | 5 |
| Low | 9 |
| None | 0 |