Files
full-focus/README.md
2025-12-12 17:01:00 -05:00

6.5 KiB

Full Focus Planning System

A command-line automation system for daily, weekly, and evening planning using the Full Focus method. Integrates with Notion for task management, calendar data for scheduling, and Obsidian for note-taking.

Overview

This system helps you plan your work using the Full Focus journal method with three core commands:

  • Daily planning - Generate today's priorities, blockers, and focus tasks
  • Evening prep - Prepare tomorrow's agenda and suggested tasks
  • Weekly planning - Create weekly priorities and key tasks

The system follows a priority hierarchy:

  1. Never block others - Tasks with people waiting on you
  2. Respect deadlines - Time-sensitive commitments
  3. Maintain momentum - Weekly focus projects

Prerequisites

  • Claude Code - AI-powered CLI tool
  • Obsidian - Note-taking application (optional, for viewing notes)
  • Notion workspace with:
    • Projects database
    • Task Tracker database
  • Calendar data exported as JSON files

Installation

  1. Clone the repository:

    git clone git@github.com:stegel/full-focus.git
    cd full-focus
    
  2. Make the CLI script executable:

    chmod +x full-focus.sh
    
  3. Add to your PATH:

    Add this line to your ~/.zshrc or ~/.bashrc:

    alias full-focus="/path/to/full-focus/full-focus.sh"
    

    Then reload:

    source ~/.zshrc
    

Configuration

1. Update CLAUDE.md

Edit CLAUDE.md to set your data source paths:

  • Calendar JSON location (default: ~/OneDrive - ServiceNow/BoxData/CalendarEvents_YYYYMMDD.json)
  • Projects JSON location
  • Tasks JSON location

2. Configure Notion MCP

Set up the Notion MCP server in your Claude Code settings to access your Notion databases.

3. Data Sources

The system expects these data files:

Calendar Events:

{
  "body": [
    {
      "subject": "Meeting Title",
      "startET": "09:00 AM",
      "endET": "10:00 AM",
      "organizer": "Name",
      "duration": "1 hour"
    }
  ]
}

Projects:

{
  "body": [
    {
      "name": "Project Name",
      "status": "Active",
      "focusThisWeek": true,
      "weeklyGoal": "Goal description",
      "type": "Project",
      "dueDate": "2025-12-31"
    }
  ]
}

Tasks:

{
  "body": [
    {
      "name": "Task Name",
      "status": "Not started",
      "blocking": ["Person 1", "Person 2"],
      "dueDate": "2025-12-31",
      "suggestedForToday": "2025-12-12",
      "priority": "High",
      "effort": "1 hour",
      "energyType": "Deep Work",
      "project": "project-id"
    }
  ]
}

Usage

Daily Planning

Generate today's daily plan with priorities, blockers, and focus tasks:

full-focus daily

Creates a note: Daily Notes/Daily Note - YYYY-MM-DD.md

Evening Preparation

Prepare tomorrow's plan with agenda and suggested tasks:

full-focus evening

Creates a note for tomorrow with:

  • Calendar agenda with time blocks
  • Unscheduled time calculation
  • Suggested tasks (blocking + deadlines)

Weekly Planning

Create your weekly plan with priorities and key tasks:

full-focus weekly

Creates a note: Weekly Notes/Weekly Note - Month Day, Year.md

Includes:

  • Top 3 focus projects for the week
  • Key tasks due this week
  • Suggested reading based on available time

Slash Commands

The system includes these Claude Code slash commands (usable interactively):

  • /daily-template - Generate daily plan
  • /evening-prep - Prepare tomorrow's plan
  • /weekly-template - Create weekly plan
  • /reading-suggestions - Get reading recommendations

Automation

Schedule automatic planning with cron:

# Edit crontab
crontab -e

# Add these lines:
# Daily plan at 8 AM on weekdays
0 8 * * 1-5 /path/to/full-focus.sh daily

# Evening prep at 5 PM on weekdays
0 17 * * 1-5 /path/to/full-focus.sh evening

# Weekly plan at 8 PM on Sundays
0 20 * * 0 /path/to/full-focus.sh weekly

Features

  • Priority-based task suggestions - Automatically surfaces blocking tasks and deadlines
  • Time-aware planning - Calculates available time blocks between meetings
  • Smart reading recommendations - Matches article length to available time gaps
  • Weekly focus tracking - Highlights projects flagged for this week
  • Obsidian integration - Creates linked notes with table of contents
  • Non-interactive execution - Runs completely headless for automation

Project Structure

full-focus/
├── .claude/
│   └── commands/           # Slash command definitions
│       ├── daily-template.md
│       ├── evening-prep.md
│       ├── weekly-template.md
│       └── reading-suggestions.md
├── Daily Notes/            # Generated daily plans (gitignored)
├── Weekly Notes/           # Generated weekly plans (gitignored)
├── full-focus.sh           # CLI wrapper script
├── CLAUDE.md              # Project instructions for Claude
├── INSTRUCTIONS.md        # Additional documentation
└── README.md              # This file

Customization

Modify Planning Templates

Edit the files in .claude/commands/ to customize:

  • What data is included in plans
  • Formatting and structure
  • Additional sections or queries

Adjust Work Hours

Update in CLAUDE.md:

* My work day is 9:00 AM - 5:30 PM ET

Change Priority Hierarchy

Modify the priority rules in CLAUDE.md:

* AJ's priority hierarchy: (1) Never block others, (2) Respect deadlines, (3) Maintain momentum

Troubleshooting

Permission errors: The script uses --permission-mode bypassPermissions to run non-interactively. If you want manual approval, edit full-focus.sh and change to --permission-mode acceptEdits.

Calendar not found: Ensure your calendar JSON files are in the correct location and use the naming format: CalendarEvents_YYYYMMDD.json

Notion data not loading: Verify the Notion MCP server is configured in your Claude Code settings and you have access to the databases.

Contributing

This is a personal planning system, but feel free to:

  1. Fork the repository
  2. Customize for your workflow
  3. Share improvements via issues or pull requests

License

MIT License - Feel free to use and modify for your own planning needs.

Acknowledgments