| name | ctx-planning |
| description | Generate daily and weekly planning reports from backlog and carryover state, applying WIP limits and priority rules from BaseContext.yaml, with automatic git commit/push. |
ctx-planning
Purpose
Generate structured daily and weekly planning reports based on prioritized backlog and carryover tasks. This skill applies work-in-progress (WIP) limits, priority ordering, and tie-breaker rules from BaseContext.yaml to create focused, actionable plans stored as Markdown reports.
When to Use This Skill
Use this skill when:
- User requests daily plan generation (e.g.,
/ctx.daily)
- Closing out the day and updating progress (e.g.,
/ctx.eod)
- Generating weekly review summaries (e.g.,
/ctx.weekly)
- Monthly retrospective planning (e.g.,
/ctx.monthly)
- Updating planning configuration (e.g.,
/ctx.update)
Do not use this skill when:
- User wants to modify individual tasks (use task files directly)
- Backlog hasn't been scanned yet (run
/ctx.scan first)
- User is querying task status without planning
How It Works
Daily Planning Workflow (/ctx.daily)
Generate a focused daily plan following these steps:
-
Load configuration from BaseContext.yaml:
wip_limits.daily_tasks_max: Maximum tasks per day (default: 5)
wip_limits.weekly_projects_max: Maximum projects per week (default: 3)
prioritization.order: Priority sequence (default: P1 → P2 → P3)
prioritization.tie_breakers: Tie-breaking rules (e.g., unblocker_first, short_first)
goals.month: Current monthly objectives for alignment
-
Load state files:
state/backlog.yaml: All tasks from projects
state/carryover.yaml: Tasks carried over from previous day (if exists)
-
Select tasks respecting constraints:
- Carryover tasks take precedence
- Fill remaining slots from backlog by priority
- Limit to
daily_tasks_max total tasks
- Cover at most
weekly_projects_max distinct projects
- Apply tie-breakers when multiple tasks have same priority:
unblocker_first: Prioritize tasks that unblock others
short_first: Favor smaller, quick-win tasks
-
Generate report at reports/daily/YYYY-MM-DD.md using templates/daily.md:
# Daily — 2025-10-22 (Tuesday)
## Carryover from Yesterday
- [ ] Task from yesterday (project/repo • T101)
## Today's Focus (≤5 tasks)
- [ ] High priority task (project/repo • T250 • P1)
- [ ] Second task (project/repo • T251 • P1)
## Blockers/Risks
- ...
## EoD — Summary
**Completed:**
- ...
**Decisions/Insights:**
- ...
**Carry to Tomorrow:**
- ...
-
Commit and push changes using scripts/commit_and_push.sh:
bash scripts/commit_and_push.sh "chore(context): daily plan YYYY-MM-DD"
End-of-Day Workflow (/ctx.eod)
Close out the day and prepare for tomorrow:
-
Open current daily report at reports/daily/YYYY-MM-DD.md
-
Update EoD section with:
- Completed: Check off done tasks
- Decisions/Insights: Document key learnings or decisions
- Carry to Tomorrow: List incomplete tasks for carryover
-
Generate carryover file at state/carryover.yaml:
date: "YYYY-MM-DD"
items:
- uid: "org/repo#T101"
title: "Incomplete task"
project: "org/repo"
priority: "P1"
reason: "blocked_by_external"
-
Commit and push updated daily report and carryover state
Weekly Review Workflow (/ctx.weekly)
Generate weekly summary and align with monthly goals:
-
Collect daily reports from last 7 days (reports/daily/)
-
Extract achievements per project:
- Count completed tasks by project
- Identify completed milestones or features
- Calculate completion rate vs. planned
-
Align with monthly goals from BaseContext.yaml:
- For each goal, assess progress based on completed tasks
- Identify tasks contributing to each goal
- Flag goals at risk or ahead of schedule
-
Generate weekly report at reports/weekly/YYYY-WW.md using templates/weekly.md:
# Weekly — 2025-W43 (Oct 22–28)
## Achievements by Project
- org/repo-1: 8 tasks completed, feature X shipped
- org/repo-2: 3 tasks completed, blocked on external dependency
## Monthly Goals Progress
- Goal 1: 60% complete (on track)
- Goal 2: 30% complete (at risk, needs acceleration)
## Top 5 Priorities Next Week
1. Unblock dependency for repo-2
2. Complete feature Y for repo-1
## Risks and Mitigation
- Risk: External dependency delayed
Action: Implement workaround by Tuesday
-
Commit and push weekly report
Monthly Review Workflow (/ctx.monthly)
Generate monthly retrospective (draft format):
- Aggregate weekly reports for the month
- Assess monthly goals completion status
- Identify patterns: productivity trends, common blockers, wins
- Draft next month's goals based on learnings
- Create
reports/monthly/YYYY-MM.md (manual editing expected)
Configuration Update Workflow (/ctx.update)
Modify planning parameters without regenerating plans:
-
Edit BaseContext.yaml for requested changes:
- Adjust WIP limits
- Update monthly goals
- Modify priority rules or tie-breakers
-
Validate changes: Ensure YAML syntax is correct
-
Optionally regenerate current plans if user requests immediate effect
Task Selection Logic
Priority Ordering
Tasks are selected in this order:
- P1 (High priority): Critical tasks, blockers, urgent items
- P2 (Medium priority): Normal development tasks
- P3 (Low priority): Nice-to-have, refactoring, tech debt
Tie-Breaking Rules
When multiple tasks have the same priority, apply tie-breakers in order:
unblocker_first: Tasks that unblock other work (look for keywords like "unblock", "prerequisite")
short_first: Smaller tasks that can be completed quickly (estimate based on title/scope)
least_recent_project: Rotate focus across projects to maintain progress
oldest_first: Tasks created/opened earliest (when timestamp available)
WIP Limits
Enforce limits to maintain focus:
daily_tasks_max (default: 5): Prevents overcommitment
weekly_projects_max (default: 3): Maintains project focus, reduces context switching
Template Variables
Templates support Handlebars-style placeholders:
Daily Template Variables
{{date}}: Date in YYYY-MM-DD format
{{weekday}}: Day of week
{{daily_tasks_max}}: Max tasks from config
{{carryover}}: Array of carryover task objects
{{focus_tasks}}: Array of selected task objects
Weekly Template Variables
{{iso_week}}: ISO week number (YYYY-WW)
{{date_start}}, {{date_end}}: Week start/end dates
{{achieved}}: Map of project → achievement summary
{{month_goals}}: Array of {goal, progress} objects
{{priorities}}: Array of next week's priority items
Constraints
- Local files only: No network access except git push
- Single repository: Only modifies files within
context/ repo
- Idempotent operations: Running multiple times produces consistent results
- Template-driven: Output format controlled by
templates/*.md
Related Skills
ctx-collector: Generates state/backlog.yaml consumed by this skill
- Use
BaseContext.yaml to configure behavior without modifying skill
Troubleshooting
If planning produces unexpected results:
- Verify
state/backlog.yaml exists and is current (run /ctx.scan)
- Check
BaseContext.yaml for correct WIP limits and priority order
- Ensure
templates/*.md files are valid and have required placeholders
- Verify git repository is configured for push access
- Check
state/carryover.yaml format matches expected structure