| 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.scanfirst) - 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 projectsstate/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_maxtotal tasks - Cover at most
weekly_projects_maxdistinct projects - Apply tie-breakers when multiple tasks have same priority:
unblocker_first: Prioritize tasks that unblock othersshort_first: Favor smaller, quick-win tasks
Generate report at
reports/daily/YYYY-MM-DD.mdusingtemplates/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.mdUpdate 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" # or "needs_more_time", "deprioritized"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.mdusingtemplates/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 TuesdayCommit 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.yamlfor 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 progressoldest_first: Tasks created/opened earliest (when timestamp available)
WIP Limits
Enforce limits to maintain focus:
daily_tasks_max(default: 5): Prevents overcommitmentweekly_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: Generatesstate/backlog.yamlconsumed by this skill- Use
BaseContext.yamlto configure behavior without modifying skill
Troubleshooting
If planning produces unexpected results:
- Verify
state/backlog.yamlexists and is current (run/ctx.scan) - Check
BaseContext.yamlfor correct WIP limits and priority order - Ensure
templates/*.mdfiles are valid and have required placeholders - Verify git repository is configured for push access
- Check
state/carryover.yamlformat matches expected structure