Skip to content

vt-c-weekly-planning

Structured weekly planning session using Open Brain task management MCP tools. Syncs Asana tasks, presents grouped dashboard, enables interactive review/reschedule/reprioritize, creates new tasks, captures decisions, and generates Obsidian weekly review summary.

Plugin: core-standards
Category: Other
Command: /vt-c-weekly-planning


/vt-c-weekly-planning — Weekly Planning Session

Structured weekly planning ritual powered by Open Brain task management.

Syncs Asana, reviews tasks by status group, enables bulk rescheduling, captures decisions to persistent memory, and writes an Obsidian weekly review.

When to Use

  • Weekly planning session (Monday morning or Friday afternoon)
  • Ad-hoc task review for a specific project
  • When you need a cross-project task overview

Prerequisites

  • Open Brain MCP server connected (provides sync_asana_tasks, list_tasks, update_task, complete_asana_task, planning_capture, capture_thought)
  • Asana PAT configured as Supabase secret (for bidirectional sync)

Invocation

/vt-c-weekly-planning                    # Cross-project review (all projects)
/vt-c-weekly-planning VisiMatch          # Single project
/vt-c-weekly-planning --assignee Rolf    # Filter by person

Execution

Step 0: Check MCP Availability

Check if the Open Brain MCP tools are available by attempting to call list_tasks with a minimal query.

If the tool is not available:

Open Brain MCP not connected — this skill requires the Open Brain task management tools.

To connect:
1. Ensure the Open Brain MCP server is running
2. Check your MCP configuration in settings.json
3. Restart Claude Code to refresh MCP connections
Exit cleanly.

Step 1: Sync Asana Tasks

Call sync_asana_tasks to pull fresh data from the VisiTrans Asana workspace.

Display sync result:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Weekly Planning Session — [date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Asana sync: [N] tasks synced ([M] new, [K] updated)

If sync fails (network error, auth issue): warn but continue with existing data.

Step 2: Task Dashboard

Call list_tasks with filters based on invocation arguments: - If project specified: filter by project name - If --assignee specified: filter by assignee - Default: all tasks for all projects

Parse the returned tasks and group by status:

OVERDUE ([N] tasks)
─────────────────────────────────────────────────────────────────
  1. [project] task title                    due: YYYY-MM-DD  priority: high
  2. [project] task title                    due: YYYY-MM-DD  priority: medium
  ...

IN PROGRESS ([N] tasks)
─────────────────────────────────────────────────────────────────
  3. [project] task title                    due: YYYY-MM-DD  priority: high
  ...

DUE THIS WEEK ([N] tasks)
─────────────────────────────────────────────────────────────────
  4. [project] task title                    due: YYYY-MM-DD  priority: medium
  ...

UPCOMING 2 WEEKS ([N] tasks)
─────────────────────────────────────────────────────────────────
  5. [project] task title                    due: YYYY-MM-DD  priority: low
  ...

BACKLOG ([N] tasks — no due date)
─────────────────────────────────────────────────────────────────
  6. [project] task title                    priority: low
  ...

Grouping logic: - OVERDUE: due_date < today AND status != completed - IN PROGRESS: status == in_progress - DUE THIS WEEK: today <= due_date <= end_of_week - UPCOMING 2 WEEKS: end_of_week < due_date <= today + 14 days - BACKLOG: due_date is null OR due_date > today + 14 days

If a group has zero tasks, omit it from the display.

Step 3: Interactive Review

Process each group in order (OVERDUE first — needs immediate decisions).

For each group, use AskUserQuestion to review tasks. Present tasks in batches of up to 5:

For each task, offer actions: - done — mark completed (calls complete_asana_task) - keep — no change - reschedule — provide new date (calls update_task) - reprioritize — select new priority (calls update_task) - remove — cancel task (calls update_task with status: cancelled)

For OVERDUE tasks, the default prompt should emphasize urgency:

OVERDUE: [task title] (due [date], [N] days overdue)

Use AskUserQuestion per task: - Done — mark completed - Reschedule to [suggest next Monday] — move to next week - Reschedule to custom date — user provides date - Remove — cancel

For other groups, batch review is acceptable:

DUE THIS WEEK: 4 tasks
Use AskUserQuestion: - Review one by one — go through each task - All look good — keep all, move to next group - I need to reschedule some — enter review mode

Apply all changes immediately via MCP tools. Track all changes for the summary:

changes = {
  completed: [],
  rescheduled: [],
  reprioritized: [],
  removed: [],
  kept: []
}

Step 4: New Tasks

After review is complete:

Use AskUserQuestion: - Add new tasks — enter task creation mode - Skip — no new tasks

If adding tasks:

Ask for each task: - Title (required) - Project (suggest from known projects, or "General") - Assignee (default: current user) - Due date (default: end of this week) - Priority (default: medium)

Collect all tasks, then confirm the batch:

New tasks to create:
  1. [project] [title]     assignee: [name]  due: [date]  priority: [level]
  2. ...

Create these tasks?

Use AskUserQuestion: - Create all — calls planning_capture with the batch - Edit — go back and modify - Cancel — discard

Step 5: Decisions and Notes

Use AskUserQuestion: - Capture planning decisions — enter free-text notes - Skip — no decisions to record

If capturing:

Ask for planning decisions or notes. Accept free-text input.

For each decision, call capture_thought with format:

Weekly planning [project] [date]: [decision text]

If multiple decisions, capture each as a separate thought.

Step 6: Summary

Generate a weekly review summary.

6a: Compute summary stats:

tasks_reviewed = len(all tasks shown in dashboard)
tasks_completed = len(changes.completed)
tasks_rescheduled = len(changes.rescheduled)
tasks_created = len(new tasks from Step 4)
decisions_captured = len(decisions from Step 5)

6b: Generate summary markdown:

# Weekly Review — [YYYY-WNN] [Project or "Cross-Project"]

**Date**: YYYY-MM-DD
**Scope**: [project name or "All projects"]

## Task Review

| Metric | Count |
|--------|-------|
| Tasks reviewed | [N] |
| Completed | [N] |
| Rescheduled | [N] |
| Created | [N] |
| Removed | [N] |

### Completed
- [task title] ([project])
- ...

### Rescheduled
- [task title] → [new date] ([project])
- ...

### New Tasks
- [task title] — [assignee], due [date] ([project])
- ...

## Decisions

- [decision 1]
- [decision 2]

## Next Week Priorities

[Top 3-5 tasks due next week, derived from dashboard]

6c: Write to Obsidian:

OBSIDIAN_VAULT="$HOME/Documents/Obsidian Vault"
REVIEW_DIR="$OBSIDIAN_VAULT/Weekly Reviews"
mkdir -p "$REVIEW_DIR"

Write the summary to $REVIEW_DIR/YYYY-WNN-[project-slug].md.

If Obsidian vault not found at the expected path, write to current directory instead and note:

Obsidian vault not found at ~/Documents/Obsidian Vault/
Summary written to ./weekly-review-YYYY-WNN.md instead.

6d: Store as Open Brain thought:

Call capture_thought with a condensed version:

Weekly planning [date]: Reviewed [N] tasks. Completed [N], rescheduled [N], created [N]. Decisions: [list]. Top priorities next week: [list].

6e: Display completion:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Weekly Planning Complete
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Tasks: [N] reviewed | [N] completed | [N] rescheduled | [N] created
Decisions: [N] captured
Summary: [path to weekly review file]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Edge Cases

ID Scenario Handling
EC-1 Open Brain MCP not connected Exit with clear message (Step 0)
EC-2 Asana sync fails (network/auth) Warn, continue with existing data
EC-3 No tasks found for filters Display "No tasks found for [filter]. Check project name or remove filters."
EC-4 Task has no due date Place in BACKLOG group
EC-5 Obsidian vault path doesn't exist Write to current directory with note
EC-6 User cancels mid-review Save progress so far, generate partial summary
EC-7 Very large task list (100+) Show top 10 per group, offer "Show all" option

Integration Points

Skill Relationship
/vt-c-0-start Weekly planning is the task-level drill-down that 0-start doesn't provide
/vt-c-project-updates Processes past meetings; weekly planning drives future planning
/vt-c-activate Tasks created in planning map to spec implementation work
/vt-c-session-journal Decision capture follows the same structured format
/vt-v-sprint IMS-specific sprint; weekly planning is project-agnostic