# 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](https://code.claude.com) - AI-powered CLI tool - [Obsidian](https://obsidian.md) - 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:** ```bash git clone git@github.com:stegel/full-focus.git cd full-focus ``` 2. **Make the CLI script executable:** ```bash chmod +x full-focus.sh ``` 3. **Add to your PATH:** Add this line to your `~/.zshrc` or `~/.bashrc`: ```bash alias full-focus="/path/to/full-focus/full-focus.sh" ``` Then reload: ```bash 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](https://github.com/anthropics/mcp-servers) in your Claude Code settings to access your Notion databases. ### 3. Data Sources The system expects these data files: **Calendar Events:** ```json { "body": [ { "subject": "Meeting Title", "startET": "09:00 AM", "endET": "10:00 AM", "organizer": "Name", "duration": "1 hour" } ] } ``` **Projects:** ```json { "body": [ { "name": "Project Name", "status": "Active", "focusThisWeek": true, "weeklyGoal": "Goal description", "type": "Project", "dueDate": "2025-12-31" } ] } ``` **Tasks:** ```json { "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: ```bash 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: ```bash 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: ```bash 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: ```bash # 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`: ```markdown * My work day is 9:00 AM - 5:30 PM ET ``` ### Change Priority Hierarchy Modify the priority rules in `CLAUDE.md`: ```markdown * 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 - Built with [Claude Code](https://code.claude.com) - Uses the Full Focus Planner methodology - Integrates with [Notion](https://notion.so) and [Obsidian](https://obsidian.md)