263 lines
6.5 KiB
Markdown
263 lines
6.5 KiB
Markdown
# 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)
|