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:
- Never block others - Tasks with people waiting on you
- Respect deadlines - Time-sensitive commitments
- 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
-
Clone the repository:
git clone git@github.com:stegel/full-focus.git cd full-focus -
Make the CLI script executable:
chmod +x full-focus.sh -
Add to your PATH:
Add this line to your
~/.zshrcor~/.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:
- Fork the repository
- Customize for your workflow
- Share improvements via issues or pull requests
License
MIT License - Feel free to use and modify for your own planning needs.
Acknowledgments
- Built with Claude Code
- Uses the Full Focus Planner methodology
- Integrates with Notion and Obsidian