Weekly Plan
Generates the weekly plan draft. Run once at start of week (Sunday or Monday). Never rerun mid-week. Mid-week changes happen in ClickUp by moving start_dates. If something big shifts, capture it as a devlog entry.
Core Principle
Read the score, surface decisions, get out of the way.
The roadmap (kairos/roadmaps/) is the top-level score. ClickUp has the dated tickets. The weekly plan doesn't restate either -- it surfaces only what needs a decision, flags risks, and confirms the week's shape.
Three-system model:
- Vault = the score + narrative (kairos/roadmaps/, weekly plans, daily notes)
- ClickUp = task execution (source of truth for tickets, day-level assignment)
- Apple Reminders = personal life (routines, errands, personal admin)
Keep it short. The plan is the conductor's notes, not a printout of the sheet music.
Fully autonomous. No questions, no interaction. Write the draft and tell the user it's ready.
Pre-Flight (all agent-gathered, no user input)
- Read the score --
kairos/roadmaps/(domains, milestones, objectives) - Read project records --
projects/*.md(status, which roadmap domain each belongs to) - Read recent devlog --
kairos/devlog/ - Last week's plan + summary
- Trailing daily notes (5-7 days) for load calculation
- ClickUp tickets dated for the week (via
~/workspace/primary-pm/_tools/clickup-today.shfor Sun-Sat, matching the calendar window) - Personal ClickUp list (read list ID from environment or config) for life project tickets -- check for due/overdue items (these become the frog). Only flag undated tickets in decisions -- tickets with start_dates are already planned.
- Apple Calendar -- run
~/workspace/primary-pm/_tools/calendar-week.sh [YYYY-MM-DD]with any date in the week (Sun-Sat window) - Cross-reference: map each ClickUp ticket to its project, then to its roadmap domain. This builds the Roadmap Pulse.
Workflow
-
Pre-flight -- gather everything above silently. No output until the draft is ready.
-
Write the draft -- create
kairos/logs/weekly/YYYY/YYYY-WNN.mdwith:- Load calculation (automated)
- Calendar events (from Apple Calendar, automated)
- Flags (from ClickUp + score analysis)
- Open decisions as markdown checkboxes with ClickUp task IDs as clickable links (format:
[86xxxxxx](https://app.clickup.com/t/86xxxxxx)) - Week shape filled in from data (frog found from Personal list, not asked for)
-
Tell the user -- "Draft ready at
kairos/logs/weekly/YYYY/YYYY-WNN.md. Review the file, then run/kairos-weekly-finalize."
That's it. No follow-up, no "say finalize." The user runs /weekly-finalize in a separate session.
Output Format
Write to kairos/logs/weekly/YYYY/YYYY-WNN.md:
---
tags: [weekly, planner]
week: YYYY-WNN
---
# W[NN] -- [theme]
## Roadmap Pulse
| Domain | This Week | Projects | Notes |
|--------|-----------|----------|-------|
| Personal | [tickets/events] | [active projects in domain] | [flags if any] |
| Art | [tickets/events] | | |
| Music | [tickets/events] | | |
| Professional | [tickets/events] | | |
| Travel | [tickets/events] | | |
[Walk each domain from kairos/roadmaps/. For each, show what ClickUp tickets are scheduled this week, which projects are active, and flag domains with zero attention. Episodic domains (Travel, Art) with no activity are normal — only flag if there's an approaching deadline or unbooked commitment.]
## Load
Trailing [N] days: avg intensity X.X, avg pomodoros X.X
-> [recovery/steady/full] -- [one line prescription]
## Calendar
[Events from Apple Calendar (Sun-Sat), grouped by day. Include daily routines.]
## Flags
[Only items that need attention. If nothing, "Clean week."]
## Decisions
- [ ] **[Decision question]** -- context, ClickUp task ID if relevant
- [ ] **[Decision question]** -- context
## Week Shape
- **Frog (Mon):** [found from Personal list -- due/overdue life task, linked to ClickUp]
- **Heaviest day:** [day] -- [why]
- **Lightest day:** [day]
- **Roadmap coverage:** [which domains have tickets this week, which are dark]
- **Theme:** [one sentence]
---
# Weekly Summary
<!-- Generated by /weekly-summary at end of week -->
Flag Rules
- Overdue -- only flag if due_date has passed. Due dates are for hard external deadlines only. Start_date in the past = "in progress," not overdue.
- In-progress carry-overs -- HIGH tickets started in a prior week still open. In flight, not overdue.
- Overstacked days (too many HIGH tickets + calendar events on one day)
- Dark domains -- any roadmap domain getting zero ClickUp attention this week? Only flag if it has active projects with upcoming deadlines.
- Approaching deadlines (within 3 weeks)
- Active projects with no dated tickets -- needs a task or intentional pause?
Notes
- Run once per week. Never rerun mid-week.
- Mon-Fri working week. Calendar and ClickUp both read Sun-Sat for the full week view. Daily notes are Mon-Fri only.
- ClickUp Personal list (configure list ID in environment or config) covers yoga, music, art, connections, travel
- Don't list every ticket by day -- ClickUp already does that
- See
reference.mdfor load thresholds, status questions, and evaluation criteria