diff --git a/README.md b/README.md new file mode 100644 index 0000000..86c8e6b --- /dev/null +++ b/README.md @@ -0,0 +1,262 @@ +# 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)