{"skill":{"slug":"subhuti-4to1-planner","displayName":"4to1 Planner","summary":"AI planning coach using the 4To1 Method™ — turn 4-year vision into daily action. Connects to Notion, Todoist, Google Calendar, or local Markdown. Use when us...","description":"---\nname: 4to1-planner\ndescription: AI planning coach using the 4To1 Method™ — turn 4-year vision into daily action. Connects to Notion, Todoist, Google Calendar, or local Markdown. Use when user wants to plan goals, do weekly reviews, track projects, or set up a planning system.\nuser-invocable: true\nhomepage: https://4to1planner.com\nmetadata: {\"openclaw\":{\"emoji\":\"🎯\",\"requires\":{\"anyBins\":[\"curl\",\"python3\"]},\"homepage\":\"https://4to1planner.com\"}}\n---\n\n# 4To1 Planner — AI Planning Coach\n\n> **\"From Vision to Action: 4to1\"**\n\nAn AI-native planning coach that turns your 4-year vision into today's action — through conversation, not templates.\n\n## The 4To1 Method™\n\nA 4-layer strategic planning system. Each layer bridges the gap between vision and execution:\n\n```\n4 YEARS  →  Strategic Vision     (Where am I going?)\n3 MONTHS →  Project Milestones   (Quarterly Gantt Log)\n2 WEEKS  →  Action Execution     (1 Day in a Week sprints)\n1 DAY    →  Daily Tasks          (Today's to-do list)\n```\n\nPlus two elimination layers:\n- **Not-To-Do Projects**: Things you explicitly say NO to\n- **Time Wasters**: Daily habits you're eliminating\n\n**Core principle:** Every daily task connects to a 2-week sprint, which connects to a 3-month milestone, which connects to your 4-year vision. **Nothing floats.**\n\n## Quick Start\n\nUser says any of these → this skill activates:\n- \"Help me set up a planning system\"\n- \"I want to plan my next 4 years\"\n- \"Do my weekly review\"\n- \"What should I focus on today?\"\n- \"Set up 4to1 planner\"\n\n## Setup: Connect Your Backend\n\nThe planner needs somewhere to store plans. Ask the user which they prefer:\n\n### Option 1: Notion (Recommended)\n\n```bash\n# 1. Create a Notion integration at https://www.notion.so/my-integrations\n# 2. Copy the API key (starts with ntn_)\n# 3. Store it:\nmkdir -p ~/.config/4to1\necho \"BACKEND=notion\" > ~/.config/4to1/config\necho \"NOTION_API_KEY=ntn_your_key_here\" >> ~/.config/4to1/config\n```\n\nShare a parent page with the integration in Notion (click ··· → Connections → select your integration).\n\n**Create the planning workspace in Notion:**\n\n```bash\nNOTION_KEY=$(grep NOTION_API_KEY ~/.config/4to1/config | cut -d= -f2)\nPARENT_PAGE=$(grep NOTION_PARENT_PAGE ~/.config/4to1/config | cut -d= -f2)\n\n# Create the 4To1 Planning Hub page\ncurl -s -X POST \"https://api.notion.com/v1/pages\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\n    \\\"parent\\\": {\\\"page_id\\\": \\\"$PARENT_PAGE\\\"},\n    \\\"properties\\\": {\\\"title\\\": {\\\"title\\\": [{\\\"text\\\": {\\\"content\\\": \\\"🎯 4To1 Planning Hub\\\"}}]}},\n    \\\"children\\\": [\n      {\\\"type\\\": \\\"heading_1\\\", \\\"heading_1\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"🔭 4-Year Vision\\\"}}]}},\n      {\\\"type\\\": \\\"paragraph\\\", \\\"paragraph\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"Your strategic direction. Updated annually.\\\"}}]}},\n      {\\\"type\\\": \\\"heading_1\\\", \\\"heading_1\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"📊 3-Month Milestones\\\"}}]}},\n      {\\\"type\\\": \\\"paragraph\\\", \\\"paragraph\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"Quarterly Gantt Log — project milestones for this quarter.\\\"}}]}},\n      {\\\"type\\\": \\\"heading_1\\\", \\\"heading_1\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"🏃 2-Week Sprint\\\"}}]}},\n      {\\\"type\\\": \\\"paragraph\\\", \\\"paragraph\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"1 Day in a Week — action execution in 2-week cycles.\\\"}}]}},\n      {\\\"type\\\": \\\"heading_1\\\", \\\"heading_1\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"🚫 Not-To-Do List\\\"}}]}},\n      {\\\"type\\\": \\\"paragraph\\\", \\\"paragraph\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"Projects and commitments you are explicitly saying NO to.\\\"}}]}},\n      {\\\"type\\\": \\\"heading_1\\\", \\\"heading_1\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"⏰ Time Wasters\\\"}}]}},\n      {\\\"type\\\": \\\"paragraph\\\", \\\"paragraph\\\": {\\\"rich_text\\\": [{\\\"text\\\": {\\\"content\\\": \\\"Daily habits you are eliminating.\\\"}}]}}\n    ]\n  }\"\n\n# Create Projects database (tracks items across all 4 layers)\ncurl -s -X POST \"https://api.notion.com/v1/databases\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\n    \\\"parent\\\": {\\\"page_id\\\": \\\"$PARENT_PAGE\\\"},\n    \\\"title\\\": [{\\\"text\\\": {\\\"content\\\": \\\"📋 4To1 Projects\\\"}}],\n    \\\"properties\\\": {\n      \\\"Name\\\": {\\\"title\\\": {}},\n      \\\"Status\\\": {\\\"select\\\": {\\\"options\\\": [\n        {\\\"name\\\": \\\"Active\\\", \\\"color\\\": \\\"green\\\"},\n        {\\\"name\\\": \\\"Planned\\\", \\\"color\\\": \\\"blue\\\"},\n        {\\\"name\\\": \\\"On Hold\\\", \\\"color\\\": \\\"yellow\\\"},\n        {\\\"name\\\": \\\"Done\\\", \\\"color\\\": \\\"gray\\\"},\n        {\\\"name\\\": \\\"Not-To-Do\\\", \\\"color\\\": \\\"red\\\"}\n      ]}},\n      \\\"Layer\\\": {\\\"select\\\": {\\\"options\\\": [\n        {\\\"name\\\": \\\"4-Year Vision\\\", \\\"color\\\": \\\"blue\\\"},\n        {\\\"name\\\": \\\"3-Month Milestone\\\", \\\"color\\\": \\\"green\\\"},\n        {\\\"name\\\": \\\"2-Week Sprint\\\", \\\"color\\\": \\\"orange\\\"},\n        {\\\"name\\\": \\\"1-Day Task\\\", \\\"color\\\": \\\"red\\\"}\n      ]}},\n      \\\"Priority\\\": {\\\"select\\\": {\\\"options\\\": [\n        {\\\"name\\\": \\\"Primary\\\", \\\"color\\\": \\\"red\\\"},\n        {\\\"name\\\": \\\"Secondary\\\", \\\"color\\\": \\\"orange\\\"},\n        {\\\"name\\\": \\\"Nice-to-have\\\", \\\"color\\\": \\\"gray\\\"}\n      ]}},\n      \\\"Parent Project\\\": {\\\"rich_text\\\": {}},\n      \\\"Start Date\\\": {\\\"date\\\": {}},\n      \\\"End Date\\\": {\\\"date\\\": {}},\n      \\\"Progress\\\": {\\\"number\\\": {\\\"format\\\": \\\"percent\\\"}},\n      \\\"Notes\\\": {\\\"rich_text\\\": {}}\n    }\n  }\"\n\n# Create Sprint Log database (2-week tracking cycles)\ncurl -s -X POST \"https://api.notion.com/v1/databases\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d \"{\n    \\\"parent\\\": {\\\"page_id\\\": \\\"$PARENT_PAGE\\\"},\n    \\\"title\\\": [{\\\"text\\\": {\\\"content\\\": \\\"📅 Sprint Log\\\"}}],\n    \\\"properties\\\": {\n      \\\"Sprint\\\": {\\\"title\\\": {}},\n      \\\"Focus Areas\\\": {\\\"rich_text\\\": {}},\n      \\\"Completed\\\": {\\\"number\\\": {}},\n      \\\"Planned\\\": {\\\"number\\\": {}},\n      \\\"Completion Rate\\\": {\\\"formula\\\": {\\\"expression\\\": \\\"if(prop(\\\\\\\"Planned\\\\\\\") > 0, round(prop(\\\\\\\"Completed\\\\\\\") / prop(\\\\\\\"Planned\\\\\\\") * 100), 0)\\\"}},\n      \\\"Reflection\\\": {\\\"rich_text\\\": {}},\n      \\\"Energy Level\\\": {\\\"select\\\": {\\\"options\\\": [\n        {\\\"name\\\": \\\"🔥 High\\\", \\\"color\\\": \\\"green\\\"},\n        {\\\"name\\\": \\\"😊 Normal\\\", \\\"color\\\": \\\"blue\\\"},\n        {\\\"name\\\": \\\"😴 Low\\\", \\\"color\\\": \\\"yellow\\\"},\n        {\\\"name\\\": \\\"💀 Burnt Out\\\", \\\"color\\\": \\\"red\\\"}\n      ]}}\n    }\n  }\"\n```\n\n### Option 2: Todoist\n\n```bash\n# 1. Get API token from https://app.todoist.com/app/settings/integrations/developer\necho \"BACKEND=todoist\" > ~/.config/4to1/config\necho \"TODOIST_API_KEY=your_token_here\" >> ~/.config/4to1/config\n```\n\n**Create the 4To1 structure:**\n\n```bash\nTODOIST_KEY=$(grep TODOIST_API_KEY ~/.config/4to1/config | cut -d= -f2)\n\nfor project in \"🔭 4-Year Vision\" \"📊 3-Month Milestones\" \"🏃 2-Week Sprint\" \"✅ Daily Tasks\" \"🚫 Not-To-Do\"; do\n  curl -s -X POST \"https://api.todoist.com/rest/v2/projects\" \\\n    -H \"Authorization: Bearer $TODOIST_KEY\" \\\n    -H \"Content-Type: application/json\" \\\n    -d \"{\\\"name\\\": \\\"$project\\\"}\"\ndone\n```\n\n### Option 3: Google Calendar + Tasks\n\n```bash\necho \"BACKEND=gcal\" > ~/.config/4to1/config\n# Requires Google OAuth — run the setup script:\npython3 {baseDir}/scripts/gcal_setup.py\n```\n\n### Option 4: Local Markdown (No account needed)\n\n```bash\necho \"BACKEND=local\" > ~/.config/4to1/config\necho \"LOCAL_DIR=~/4to1-plans\" >> ~/.config/4to1/config\nmkdir -p ~/4to1-plans/{vision,milestones,sprints,daily,not-to-do}\n```\n\n## Core Commands\n\n### 1. Onboarding — \"Set up my planning system\"\n\nGuide the user through this conversation:\n\n**Step 1: Choose backend** (see Setup above)\n\n**Step 2: 4-Year Vision** (5-10 min conversation)\n\nAsk one at a time, conversationally:\n1. \"If you could be anywhere in 4 years — career, life, skills — what does that look like?\"\n2. \"What are the 2-3 biggest areas you want to transform?\" (career, health, relationships, skills, finances)\n3. \"For each area, what does SUCCESS look like in 4 years? Be specific.\"\n4. \"What are you willing to give up to get there?\" → seeds the Not-To-Do list\n5. \"Any daily habits stealing your time?\" → seeds the Time Wasters list\n\nAfter the conversation, create:\n- 4-Year Vision document with their answers (Layer: 4-Year Vision)\n- 2-5 vision areas with concrete success criteria\n- Initial Not-To-Do list + Time Wasters list\n\n**Step 3: 3-Month Milestones** (5 min)\n1. \"Of your vision areas, which 1-2 need the most progress in the next 3 months?\"\n2. \"What specific milestones would mean real progress?\"\n3. \"Break each into measurable deliverables.\"\n\nCreate items with Layer: 3-Month Milestone, linked to vision areas.\n\n**Step 4: 2-Week Sprint** (3 min)\n1. \"For your quarterly milestones, what can you accomplish in the next 2 weeks?\"\n2. \"Pick 2 Primary projects and up to 5 Secondary projects.\"\n3. \"What does 'done' look like for each?\"\n\nCreate items with Layer: 2-Week Sprint.\n\n**Step 5: Today** (1 min)\n1. \"What are the 3 most important tasks for today?\"\n2. \"Which sprint project does each serve?\"\n\nWrite everything to the chosen backend.\n\n### 2. Weekly Review — \"Do my weekly review\"\n\nRun every Sunday evening or Monday morning. Read {baseDir}/scripts/weekly_review.md for the full template.\n\nSummary:\n```\nREAD: This week's tasks + completion status + project progress + Not-To-Do list\nASK:  How did this week go? → Wins? → Blockers? → Energy level?\n      → Did you spend time on Not-To-Do items? → Next week's top 3?\nWRITE: Sprint log entry + next week's tasks + updated progress\n```\n\nKeep it under 10 minutes. Be a coach, not a form.\n\n### 3. Bi-Weekly Sprint Review — Every 2 weeks\n\n```\nREAD: Current 2-week sprint tasks and progress\nREVIEW: What got done? What carries over? Any sprint goal changes?\nPLAN: Next 2-week sprint — new primary/secondary projects\nCHECK: Are sprints still aligned with 3-month milestones?\n```\n\n### 4. Quarterly Review — End of each quarter\n\n```\nREAD: All projects and sprint logs for the quarter\nREPORT: Projects completed/stalled/abandoned, completion trend, top win, biggest blocker\nASK: Which projects continue? Which get cut? New projects? Update Not-To-Do?\nWRITE: Quarterly report + next quarter's milestones\n```\n\n### 5. Daily Check-in — \"What should I focus on today?\"\n\n```\nREAD: Current sprint tasks + project priorities\nRESPOND:\n  \"Based on your 2-week sprint, today's focus:\n   1. [Task] → serves [3-month milestone]\n   2. [Task] → serves [milestone]\n   3. [Task]\n\n   ⚠️ [Project X] hasn't had progress in a week.\n   🚫 Not-To-Do reminder: You said NO to [thing].\"\n```\n\n### 6. Quick Add — \"Add [task] to my plan\"\n\nParse the task. Ask which project/sprint it serves if unclear. Add to backend with correct layer linkage.\n\n### 7. Progress Check — \"How am I doing?\"\n\n```\nREAD: All data\nSHOW:\n  🔭 4-Year Vision: [areas and direction]\n  📊 Q[X] Milestones: [X/Y complete]\n  🏃 Current Sprint: [X/Y tasks done, Z% rate]\n  📈 Sprint streak: X consecutive reviews\n  🚫 Not-To-Do violations: [any this week?]\n```\n\n## Notion API Reference\n\n```bash\nNOTION_KEY=$(grep NOTION_API_KEY ~/.config/4to1/config | cut -d= -f2)\n\n# Search planning pages\ncurl -s -X POST \"https://api.notion.com/v1/search\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"query\": \"4To1\"}'\n\n# Query projects by layer\ncurl -s -X POST \"https://api.notion.com/v1/databases/{db_id}/query\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"filter\": {\"and\": [\n    {\"property\": \"Status\", \"select\": {\"equals\": \"Active\"}},\n    {\"property\": \"Layer\", \"select\": {\"equals\": \"2-Week Sprint\"}}\n  ]}}'\n\n# Update progress\ncurl -s -X PATCH \"https://api.notion.com/v1/pages/{page_id}\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"properties\": {\"Progress\": {\"number\": 0.75}, \"Status\": {\"select\": {\"name\": \"Active\"}}}}'\n\n# Create sprint log entry\ncurl -s -X POST \"https://api.notion.com/v1/pages\" \\\n  -H \"Authorization: Bearer $NOTION_KEY\" \\\n  -H \"Notion-Version: 2025-09-03\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"parent\": {\"database_id\": \"{sprint_log_db_id}\"},\n    \"properties\": {\n      \"Sprint\": {\"title\": [{\"text\": {\"content\": \"2026-W07 Sprint Review\"}}]},\n      \"Completed\": {\"number\": 8},\n      \"Planned\": {\"number\": 10},\n      \"Reflection\": {\"rich_text\": [{\"text\": {\"content\": \"Good sprint. Hit main milestones.\"}}]},\n      \"Energy Level\": {\"select\": {\"name\": \"😊 Normal\"}}\n    }\n  }'\n```\n\n## Todoist API Reference\n\n```bash\nTODOIST_KEY=$(grep TODOIST_API_KEY ~/.config/4to1/config | cut -d= -f2)\n\n# Get all projects\ncurl -s \"https://api.todoist.com/rest/v2/projects\" -H \"Authorization: Bearer $TODOIST_KEY\"\n\n# Get active tasks in a project\ncurl -s \"https://api.todoist.com/rest/v2/tasks?project_id={id}\" -H \"Authorization: Bearer $TODOIST_KEY\"\n\n# Create task linked to sprint\ncurl -s -X POST \"https://api.todoist.com/rest/v2/tasks\" \\\n  -H \"Authorization: Bearer $TODOIST_KEY\" -H \"Content-Type: application/json\" \\\n  -d '{\"content\": \"Task name\", \"project_id\": \"xxx\", \"priority\": 4, \"due_string\": \"next monday\", \"description\": \"Sprint: 2-Week Sprint | Milestone: Q1 Goal\"}'\n\n# Complete task\ncurl -s -X POST \"https://api.todoist.com/rest/v2/tasks/{id}/close\" -H \"Authorization: Bearer $TODOIST_KEY\"\n```\n\n## Local Markdown Backend\n\n```\n~/4to1-plans/\n├── vision.md            # 4-year vision document\n├── not-to-do.md         # Not-To-Do projects + Time Wasters\n├── milestones/\n│   └── 2026-Q1.md       # 3-month milestone plan\n├── sprints/\n│   ├── 2026-W07.md      # 2-week sprint plan\n│   └── 2026-W09.md\n├── daily/\n│   └── 2026-02-10.md    # Daily task list\n└── reviews/\n    ├── sprint-2026-W07.md  # Sprint review log\n    └── quarterly-2026-Q1.md\n```\n\nUse YAML frontmatter for structured data:\n\n```markdown\n---\nproject: Launch MVP\nlayer: 3-month-milestone\nstatus: active\npriority: primary\nprogress: 45\nstart: 2026-01-01\nend: 2026-03-31\nparent_vision: \"Build a profitable SaaS\"\n---\n# Launch MVP\n## Tasks (2-week sprint)\n- [x] Define feature scope\n- [x] Build prototype\n- [ ] User testing round 1\n- [ ] Iterate on feedback\n```\n\n## Automation (Heartbeat/Cron)\n\nFor OpenClaw users with heartbeats or cron:\n\n**Weekly review reminder (Sunday 8pm):**\n```\n\"Run 4to1 weekly review: read sprint progress, generate summary, ask for next week's priorities\"\n```\n\n**Daily focus (weekdays 8am):**\n```\n\"Check 4to1 plan, suggest today's top 3 focus tasks based on current 2-week sprint\"\n```\n\n**Stall detection (every 3 days):**\n```\n\"Check if any active 4to1 sprint project hasn't been updated in 1+ week. Alert if stalled.\"\n```\n\n## Coach Principles\n\n1. **Respect the 4-3-2-1 hierarchy** — every task connects up through sprint → milestone → vision\n2. **Protect the Not-To-Do list** — if user adds something conflicting, remind them why they said no\n3. **Never fabricate progress** — only report what's actually tracked\n4. **Keep it lightweight** — weekly review = 5-10 min, daily check-in = 1 min\n5. **Be encouraging but honest** — celebrate wins, flag stalls kindly\n6. **Think in 2-week cycles** — the sprint is the core execution rhythm\n\n## Learn More\n\n- Website: https://4to1planner.com\n- Free starter kit: https://4to1planner.com/free-download.html\n- Templates: https://4to1planner.com/shop.html\n- YouTube: https://www.youtube.com/@markzhou5213\n- Twitter: https://twitter.com/xiucat\n","topics":["Notion","Calendar"],"tags":{"latest":"2.0.1"},"stats":{"comments":0,"downloads":400,"installsAllTime":15,"installsCurrent":0,"stars":0,"versions":2},"createdAt":1778000919258,"updatedAt":1778492850251},"latestVersion":{"version":"2.0.1","createdAt":1778000919258,"changelog":"Bug fixes and improvements","license":"MIT-0"},"metadata":{"setup":[],"os":null,"systems":null},"owner":{"handle":"dorjenorbulim","userId":"s174h6jf4cmxs108b7dcwrwjbd847qva","displayName":"dorjenorbulim","image":"https://avatars.githubusercontent.com/u/269761677?v=4"},"moderation":null}