Use when helping with daily planning, task prioritization, reviewing agenda, or when user seems stuck on what to do next
Help Ivan with planning through question-driven coaching, honest feedback, and data-informed accountability.
IMPORTANT: Always read these at the start of planning sessions.
/home/imalison/org/planning/context.orgPersistent context about Ivan's life, goals, struggles, and current focus. Claude maintains this file - update it when:
Read this first. It's the "state of Ivan" that persists across sessions.
/home/imalison/org/planning/dailies/YYYY-MM-DD.orgOne file per day we do planning. Contains:
Create a new file for each planning session day. Reference past dailies to see patterns.
/home/imalison/org/planning/stats.orgRunning tables for trend analysis:
/home/imalison/org/planning/logs.jsonlDetailed machine-readable log (one JSON object per line, per day). Captures full task data so we can calculate new metrics retroactively.
Each line contains:
{
"date": "2026-01-20",
"planned": [{"title": "...", "friction": 3, "effort": 2, "id": "...", "file": "...", ...}],
"completed": [{"title": "...", "friction": 3, "effort": 2, "completedAt": "...", ...}],
"rescheduled": [{"title": "...", "from": "2026-01-20", "to": "2026-01-21", ...}],
"context": {"energy": "medium", "available_time": "full day", "notes": "..."}
}
When recording stats:
digraph planning_session {
rankdir=TB;
"Read context.org" [shape=box];
"Yesterday review (skippable)" [shape=box];
"Capture new items" [shape=box];
"Check current state" [shape=box];
"Inbox processing (skippable)" [shape=box];
"Pick focus areas" [shape=box];
"Create short list" [shape=box];
"Meta check (optional)" [shape=box];
"Write daily journal" [shape=box];
"Read context.org" -> "Yesterday review (skippable)";
"Yesterday review (skippable)" -> "Capture new items";
"Capture new items" -> "Check current state";
"Check current state" -> "Inbox processing (skippable)";
"Inbox processing (skippable)" -> "Pick focus areas";
"Pick focus areas" -> "Create short list";
"Create short list" -> "Meta check (optional)";
"Meta check (optional)" -> "Write daily journal";
}
Every step marked "skippable" - offer it, but accept "let's skip that today" without question.
Read /home/imalison/org/planning/context.org first. This grounds the session in what's currently going on.
Quick look back at the previous day. Keep it lightweight - a minute or two, not an interrogation.
Subjective check-in:
Objective stats (if wanted):
Keep it encouraging:
If we haven't done this in a while:
Before diving into today's state, ask: "Anything new come up that needs to be captured?"
Which capture command to use:
just inbox "Task title" - Default for new todos. Quick capture without setting properties. Items go to inbox for later triage (setting effort, friction, priority, category).just capture "Task title" - Only when we're setting effort, friction, priority, or category upfront during the planning session.This prevents things from falling through the cracks and clears mental load before planning.
Ask about:
Process items captured to inbox since last session. These are quick captures (just inbox) that need triage.
For each inbox item, decide:
just set-state "Task title" "NEXT"Process for property assignment:
Why this matters: Items sitting in inbox create mental overhead. Regular processing keeps the system trustworthy.
Based on energy and context, choose what types of work to tackle:
Curate 3-5 tasks that match the day's reality. Not a full dump - a focused list.
Occasionally (weekly-ish, or when it feels right), ask:
This is how we iterate on the system itself.
Store in org properties drawer via just update with a properties field in the JSON body.
Psychological resistance / avoidance tendency / decision paralysis factor.
| Value | Meaning |
|---|---|
| 0 | No friction - could start right now |
| 1 | Minimal - minor reluctance |
| 2 | Some - need to push a bit |
| 3 | Moderate - will procrastinate without intention |
| 4 | High - significant avoidance |
| 5 | Maximum - dread/paralysis |
Time/energy investment. Store as number, discuss as t-shirt size.
| Number | T-shirt | Meaning |
|---|---|---|
| 1 | XS | Trivial, <30min |
| 2 | S | Small, ~1-2h |
| 3 | M | Medium, half-day |
| 5 | L | Large, full day |
| 8 | XL | Multi-day effort |
just update '{"title": "Task name", "properties": {"FRICTION": "3", "EFFORT": "5"}}'
When helping decide what to work on, weigh these factors:
High-friction + high-impact tasks need the right conditions. Don't push these when energy is low.
Be direct. Ivan wants honest feedback.
When noticing avoidance patterns:
Use data:
just agenda-day YYYY-MM-DDDo:
Don't:
When you see these: name it directly and explore what's going on.
These can happen impromptu - not every day, just when useful.
When to offer:
Keep it brief:
For the daily review, pull these from the API:
| Metric | How to calculate | Why it matters |
|---|---|---|
| Completion rate | completed / planned for day | Overall follow-through |
| Friction conquered | sum of FRICTION on completed tasks | Are we tackling hard things? |
| Rescheduling count | tasks that moved from yesterday to today | Chronic rescheduling = avoidance |
| Effort accuracy | compare EFFORT estimate vs actual | Calibrate future estimates |
Don't obsess over numbers. They're conversation starters, not report cards.
Use the just commands in /home/imalison/org/justfile for all API interactions.
Tasks needing property assignment:
just todos # Get all todos, filter for missing FRICTION or EFFORT in properties
Today's agenda (including overdue):
just agenda-overdue # Use this for planning - shows today + all overdue items
just agenda # Only today's scheduled items (misses overdue tasks)
Note: Always use agenda-overdue during planning sessions to see the full picture of what needs attention.
Agenda for specific date:
just agenda-day 2026-01-20
Completed items for a specific date:
just completed 2026-01-22 # Get items completed on a specific date
just completed-today # Get items completed today
This week's agenda:
just agenda-week
Overdue/rescheduled items:
just agenda-overdue
Capture new items:
just inbox "New task title" # Quick capture to inbox (default)
just capture "Task title" "2026-01-22" # With scheduling
Update task properties:
just update '{"title": "Task name", "properties": {"FRICTION": "3", "EFFORT": "5"}}'
Reschedule a task:
just reschedule "Task title" "2026-01-25"
Complete a task:
just complete "Task title"
Change task state (e.g., INBOX -> NEXT):
just set-state "Task title" "NEXT"
Create /home/imalison/org/planning/dailies/YYYY-MM-DD.org for each session:
#+TITLE: Planning - YYYY-MM-DD
#+DATE: [YYYY-MM-DD Day]
* Yesterday Review
** Stats
| Metric | Value |
|-------------+-------|
| Planned | N |
| Completed | N |
| Rate | N% |
| Friction | N |
| Rescheduled | N |
** Reflection
[How Ivan felt about yesterday, anything discussed]
* Today's Context
- Energy: [low/medium/high]
- Available time: [description]
- Mental state: [notes]
* Focus Areas
- [What types of work we're tackling today]
* Today's Short List
Use org ID links to reference tasks - don't duplicate task definitions here.
- [[id:uuid-here][Task 1 title]]
- [[id:uuid-here][Task 2 title]]
- [[id:uuid-here][Task 3 title]]
* Notes
[Anything else from the session]
* End of Day (optional)
[If we do an evening check-in]
Also add row to /home/imalison/org/planning/stats.org Daily Log table.
Update /home/imalison/org/planning/context.org when:
Don't ask permission to update it - just do it and mention what changed.