
Project Management Guru Adhd
- 173 installs
- 178 repo stars
- Updated July 14, 2026
- erichowens/some_claude_skills
Break ambiguous work into ADHD-friendly tasks, timeboxes, and checkpoints so developers and small teams ship without overwhelm, context loss, or stalled priorities.
About
Project-management-guru-adhd skill from erichowens/some_claude_skills coaches Claude to structure software work with ADHD-aware planning, prioritization, and task breakdown so builders maintain momentum, clarity, and realistic shipping cadence on complex projects.
- Splits epics into small, finishable next actions
- Uses timeboxing and priority cues for focus
- Reduces overwhelm with clear done definitions
- Supports solo dev and agent-assisted workflows
- Adapts planning for ADHD-friendly execution
Project Management Guru Adhd by the numbers
- 173 all-time installs (skills.sh)
- Ranked #1,107 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/erichowens/some_claude_skills --skill project-management-guru-adhdAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 173 |
|---|---|
| repo stars | ★ 178 |
| Last updated | July 14, 2026 |
| Repository | erichowens/some_claude_skills ↗ |
What it does
Break ambiguous work into ADHD-friendly tasks, timeboxes, and checkpoints so developers and small teams ship without overwhelm, context loss, or stalled priorities.
Files
Project Management Guru (ADHD-Specialized)
Expert project manager for ADHD engineers managing multiple concurrent projects ("vibe coding 18 things"). Masters the delicate balance of when to chime in vs. when to let engineers ride their hyperfocus wave.
When to Use This Skill
Use for:
- Managing ADHD engineers with 10+ concurrent projects
- Supporting "vibe coding" and flow state preservation
- Minimizing context-switching costs
- Providing just-in-time interventions (not micromanagement)
- Task prioritization when everything feels urgent
- Gentle "parakeet" reminders for critical deadlines
- Leveraging hyperfocus superpowers
- Preventing burnout from interest-driven overcommitment
NOT for:
- Neurotypical project management (different cognitive needs)
- Rigid waterfall processes (too constraining for ADHD)
- Constant status meetings (context-switching nightmare)
- "Just focus better" advice (neurologically impossible)
Core Principles
1. Hyperfocus: Double-Edged Sword
The Superpower: 8-12 hour deep work sessions, exceptional quality, creative breakthroughs
The Danger: Missing deadlines, forgetting self-care, tunnel vision on low-priority work
Management Rules:
- NEVER interrupt if < 6 hours into hyperfocus AND no urgent deadline
- GENTLE check-in at 6 hours: "Have you eaten/hydrated?"
- FIRM interrupt at 10 hours: Mandatory 30-min break
- Post-hyperfocus: Expect 2-3 hours recovery, no meetings
For implementation code and detection systems, see /references/hyperfocus-management.md2. Context Switching: The ADHD Tax
The Problem:
- Neurotypical: 1 switch = 15 min lost
- ADHD: 1 switch = 30-45 min lost
- 5 switches/day = 2.5-3.75 hours lost
Minimization Protocol:
- Batch meetings (Tue/Thu only, 1-4pm)
- Leave Mon/Wed/Fri meeting-free
- No meetings before 11am (prime hyperfocus)
- Max 2 deliberate context switches per day
- "Quick 15min syncs" → async Loom videos
For tracker implementation, see /references/context-switching.md3. Parakeet Reminders: Gentle Nudges
Philosophy: ADHD brains are terrible at time awareness. Need external memory, not nagging.
The Parakeet Approach:
- Gentle, friendly, non-judgmental
- Frequent small reminders > one big reminder
- Visual + auditory cues
- Gamified/positive framing
Urgency Levels:
| Time Left | Urgency | Tone |
|---|---|---|
| 1+ week | FYI | "Just keeping it on your radar" |
| 3-7 days | Upcoming | "Good time to start thinking about it" |
| 1-3 days | Soon | "Would you like to time-box this?" |
| Under 24 hours | Urgent | "Do you need help/unblocking?" |
| Under 4 hours | CRITICAL | "Dropping everything to help you" |
For implementation, see /references/parakeet-reminders.md4. Task Chunking for ADHD Brains
The Problem: Large tasks → overwhelm → procrastination
The Solution: Micro-tasks with immediate feedback
Bad Task: "Implement user authentication system"
- No clear starting point, feels overwhelming
Good Breakdown: 1. [15 min] Research auth libraries 2. [30 min] Set up User model 3. [45 min] Create login/logout routes 4. [30 min] Add session management 5. [20 min] Write tests 6. [DOPAMINE HIT] Deploy and test
Rules:
- Each chunk < 1 hour
- Clear success criteria
- Visible progress after each chunk
- Group into 3-hour hyperfocus sessions max
For task chunker code, see /references/task-chunking.mdAnti-Patterns
"Just-Focus-Harder" Management
What it looks like: Telling ADHD engineers to "try harder" or "be more disciplined" Why it's wrong: ADHD is neurological, not motivational. This is like telling someone with poor eyesight to "just see better." Instead: Provide external structure, reminders, and accommodations
Meeting Sprawl
What it looks like: Daily standups, ad-hoc sync calls, scattered 15-min meetings Why it's wrong: Each meeting = context switch = 30-45 min productivity loss Instead: Batch to 2 days/week, use async updates, protect deep work blocks
Deadline Dump
What it looks like: Giving all deadlines at once, expecting self-tracking Why it's wrong: Out of sight = out of mind. ADHD brains need external reminders Instead: Progressive disclosure with parakeet-style escalating reminders
Shame-Based Accountability
What it looks like: Calling out missed deadlines publicly, tracking "failures" Why it's wrong: Triggers rejection sensitivity dysphoria (RSD), spirals into avoidance Instead: Private, compassionate check-ins focused on unblocking
Best Practices
DO:
- Batch meetings to preserve deep work blocks
- Send gentle reminders early and often
- Celebrate hyperfocus achievements publicly
- Provide clear, chunked tasks with visible progress
- Allow flexible hours (ADHD sleep schedules vary)
- Use visual/gamified tracking
- Build in recovery time after hyperfocus
DON'T:
- Schedule surprise meetings
- Say "just focus" or "try harder"
- Enforce rigid 9-5 hours
- Punish for forgetting deadlines
- Micromanage
- Interrupt hyperfocus unnecessarily
- Compare to neurotypical productivity
Integration with Other Skills
- tech-entrepreneur-coach-adhd: Business/startup guidance for ADHD founders
- adhd-design-expert: UX design that works with ADHD brains
- wisdom-accountability-coach: Broader accountability patterns
References
ADHD & Productivity:
- Barkley (2015): "Attention-Deficit Hyperactivity Disorder" (4th ed)
- Hallowell & Ratey (2021): "ADHD 2.0"
Context Switching:
- Leroy (2009): "Why Is It So Hard to Do My Work?"
- Mark et al. (2008): "The Cost of Interrupted Work"
Hyperfocus:
- Ashinoff & Abu-Akel (2021): "Hyperfocus: The Forgotten Frontier of Attention"
Changelog
All notable changes to the project-management-guru-adhd skill.
[2.0.0] - 2025-11-28
Changed
- BREAKING: Updated frontmatter format from
tools:toallowed-tools: - Reduced SKILL.md from 625 lines to 166 lines (73% reduction)
- Added comprehensive NOT clause to description
- Added activation keywords to description
Added
/references/hyperfocus-management.md- Detection & intervention protocol, Python implementation/references/context-switching.md- Minimization protocol, tracker implementation/references/parakeet-reminders.md- Reminder system with urgency levels, message templates/references/task-chunking.md- Task breakdown protocol, ADHD Task Chunker implementation- Anti-patterns section with specific examples
Improved
- Clearer "When to Use" / "NOT for" sections
- Concise core principles with pointers to reference files
- Better organized best practices (DO/DON'T format)
- Integration section with related skills
[1.0.0] - 2025-11-16
Added
- Initial skill creation
- Hyperfocus management strategies
- Context switching protocols
- Parakeet reminder system
- Task chunking methods
- Python implementation examples
Context Switching Management
The ADHD Context-Switching Tax
Neurotypical engineer: 1 context switch = 15 min lost
ADHD engineer: 1 context switch = 30-45 min lost
Daily cost:
- 5 context switches/day = 2.5-3.75 hours lost productivity
- Multiplied across team = massive inefficiencyMinimization Protocol
# Context-Switching Minimization Protocol
Meeting Scheduling:
Rules:
- Batch all meetings into "meeting blocks" (e.g., Tue/Thu 1-4pm)
- Leave Mon/Wed/Fri meeting-free for deep work
- No meetings before 11am (morning = prime hyperfocus time)
- No "quick 15min syncs" (use async Loom videos instead)
Exceptions:
- Critical production incidents
- Client emergencies
- Once-monthly 1:1s (scheduled consistently)
Task Organization:
Project Buckets:
- "Active" (1-2 projects max)
- "Simmering" (ideas percolating, no active work)
- "Backlog" (waiting for unblock)
Daily Workflow:
Morning:
- Review "Active" projects
- Pick ONE to work on today
- Set up environment (open tabs, tools, music)
- Enter hyperfocus
Afternoon:
- If energy remains: continue OR switch to second active project
- If energy depleted: low-stakes tasks (code review, docs)
Switch Budget:
- Allow max 2 deliberate switches per day
- Track actual switches (awareness builds discipline)
- Celebrate low-switch daysImplementation: Context Switch Tracker
from datetime import datetime
class ContextSwitchTracker:
def __init__(self):
self.current_context = None
self.switch_log = []
self.daily_limit = 2
def switch_context(self, new_context: str, reason: str = "voluntary") -> bool:
"""Attempt to switch context, with budget enforcement"""
now = datetime.now()
# Count switches today
today_switches = [
s for s in self.switch_log
if s['timestamp'].date() == now.date()
]
if len(today_switches) >= self.daily_limit and reason == "voluntary":
return self._deny_switch(new_context, len(today_switches))
# Allow switch
self.switch_log.append({
'from': self.current_context,
'to': new_context,
'reason': reason,
'timestamp': now
})
self.current_context = new_context
return True
def _deny_switch(self, attempted_context: str, switch_count: int) -> bool:
"""Gently deny context switch"""
message = (
f"⚠️ Context Switch Budget Exceeded\n\n"
f"You've already switched {switch_count} times today.\n\n"
f"Current context: **{self.current_context}**\n"
f"Attempted switch to: {attempted_context}\n\n"
f"Options:\n"
f"1. Stay in current context (recommended)\n"
f"2. Add '{attempted_context}' to tomorrow's active list\n"
f"3. Override (costs energy token)\n\n"
f"What would you like to do?"
)
response = prompt_user(message)
if response == "override":
self.switch_log.append({
'from': self.current_context,
'to': attempted_context,
'reason': 'override',
'timestamp': datetime.now(),
'note': 'Used override token'
})
return True
return False
def end_of_day_report(self) -> dict:
"""Generate daily context-switching report"""
today = datetime.now().date()
today_switches = [
s for s in self.switch_log
if s['timestamp'].date() == today
]
report = {
'total_switches': len(today_switches),
'voluntary': len([s for s in today_switches if s['reason'] == 'voluntary']),
'emergency': len([s for s in today_switches if s['reason'] == 'emergency']),
'overrides': len([s for s in today_switches if s['reason'] == 'override']),
'contexts_visited': list(set([s['to'] for s in today_switches])),
'focus_score': max(0, 100 - (len(today_switches) * 20))
}
return reportCalendar Integration
def get_meeting_free_blocks(calendar_api, date):
"""Find blocks of 2+ hours without meetings"""
events = calendar_api.get_events(date)
# Find gaps
work_start = datetime.combine(date, time(9, 0))
work_end = datetime.combine(date, time(18, 0))
free_blocks = []
current = work_start
for event in sorted(events, key=lambda e: e.start):
if event.start > current:
gap = event.start - current
if gap >= timedelta(hours=2):
free_blocks.append({
'start': current,
'end': event.start,
'duration': gap
})
current = max(current, event.end)
# Check final block
if work_end > current:
gap = work_end - current
if gap >= timedelta(hours=2):
free_blocks.append({
'start': current,
'end': work_end,
'duration': gap
})
return free_blocksHyperfocus Management
Detection & Intervention Protocol
# Hyperfocus Management Protocol
Detection:
- Engineer hasn't responded in 4+ hours
- Active commits/PRs on single feature
- Slack status: "Do Not Disturb" or custom status
- Calendar blocks marked "Deep Work"
Intervention Rules:
NEVER interrupt if:
- < 6 hours into hyperfocus
- Working on critical path item
- Deadline not within 24 hours
- No urgent blocking dependencies
GENTLE check-in at 6 hours:
- Slack DM: "Hey! Just checking - have you eaten/hydrated? No rush to reply."
- Don't expect immediate response
- Respect the flow
FIRM interrupt at 10 hours:
- Physical visit (if co-located) or video call
- "I need you to take a 30min break. Non-negotiable."
- Provide specific break activity (walk, snack, shower)
- Set timer for return
Post-Hyperfocus Recovery:
- Expect 2-3 hours of low productivity after
- Don't schedule meetings immediately after
- Allow flexible end-of-day if hyperfocus started late
- Celebrate the achievement (positive reinforcement)Implementation: Hyperfocus Monitor
from datetime import datetime, timedelta
from typing import Optional
class HyperfocusMonitor:
def __init__(self, engineer_name: str):
self.engineer = engineer_name
self.last_activity = None
self.hyperfocus_start = None
self.notifications_sent = []
def log_activity(self, activity_type: str):
"""Track engineer activity (commits, Slack, etc.)"""
now = datetime.now()
if self.last_activity and (now - self.last_activity) < timedelta(minutes=10):
# Continuous activity detected
if not self.hyperfocus_start:
self.hyperfocus_start = self.last_activity
print(f"✨ {self.engineer} entered hyperfocus state")
else:
# Break in activity
if self.hyperfocus_start:
duration = now - self.hyperfocus_start
print(f"🎉 {self.engineer} completed {duration.total_seconds()/3600:.1f}h hyperfocus session")
self.hyperfocus_start = None
self.notifications_sent = []
self.last_activity = now
def check_interventions(self) -> Optional[str]:
"""Determine if intervention is needed"""
if not self.hyperfocus_start:
return None
duration = datetime.now() - self.hyperfocus_start
hours = duration.total_seconds() / 3600
# 6 hour gentle check-in
if hours >= 6 and "6h_checkin" not in self.notifications_sent:
self.notifications_sent.append("6h_checkin")
return "gentle_checkin"
# 10 hour firm break
if hours >= 10 and "10h_break" not in self.notifications_sent:
self.notifications_sent.append("10h_break")
return "mandatory_break"
return None
def send_gentle_checkin(self):
"""Send non-intrusive reminder"""
message = (
f"Hey {self.engineer}! 👋\n\n"
"You've been in the zone for 6+ hours - amazing work! 🚀\n\n"
"Quick reminder to:\n"
"- Hydrate 💧\n"
"- Grab a snack 🍎\n"
"- Stretch for 2 min 🧘\n\n"
"No rush to reply - just take care of yourself!\n\n"
"- Your friendly PM parakeet 🦜"
)
send_slack_dm(self.engineer, message, urgent=False)
def send_mandatory_break(self):
"""Firm intervention after 10 hours"""
message = (
f"🛑 MANDATORY BREAK TIME 🛑\n\n"
f"{self.engineer}, you've been hyperfocused for 10+ hours.\n\n"
"I need you to:\n"
"1. Stand up right now\n"
"2. Take a 30-minute break\n"
"3. Eat something substantial\n"
"4. Walk around outside if possible\n\n"
"Set a timer. I'll check back in 30 min.\n\n"
"This is non-negotiable - doctor's orders! 👩⚕️"
)
send_slack_dm(self.engineer, message, urgent=True)
schedule_followup_checkin(30 * 60) # 30 minutesIntegration Points
- Slack Bot: Monitor activity, DND status
- GitHub Webhooks: Track commit frequency
- Calendar API: Detect "Deep Work" blocks
- Time Tracking: Optional Toggl/Clockify integration
Parakeet Reminder System
Philosophy
- ADHD brains are terrible at time awareness
- Deadlines sneak up unexpectedly ("wait, that's today!?")
- Need external memory aids, but not nagging
The Parakeet Approach:
- Gentle, friendly, non-judgmental
- Frequent small reminders > one big reminder
- Visual + auditory cues
- Gamified/positive framing
Implementation
from enum import Enum
from datetime import datetime, timedelta
class ReminderUrgency(Enum):
FUTURE_FYI = 1 # 1+ week out
UPCOMING = 2 # 3-7 days
SOON = 3 # 1-3 days
URGENT = 4 # <24 hours
CRITICAL = 5 # <4 hours
class ParakeetReminder:
def __init__(self, task: str, deadline: datetime, engineer: str):
self.task = task
self.deadline = deadline
self.engineer = engineer
self.reminders_sent = []
def calculate_urgency(self) -> ReminderUrgency:
"""Determine urgency based on time remaining"""
now = datetime.now()
time_left = self.deadline - now
if time_left < timedelta(hours=4):
return ReminderUrgency.CRITICAL
elif time_left < timedelta(days=1):
return ReminderUrgency.URGENT
elif time_left < timedelta(days=3):
return ReminderUrgency.SOON
elif time_left < timedelta(days=7):
return ReminderUrgency.UPCOMING
else:
return ReminderUrgency.FUTURE_FYI
def get_reminder_message(self, urgency: ReminderUrgency) -> str:
"""Generate appropriate reminder based on urgency"""
messages = {
ReminderUrgency.FUTURE_FYI: (
f"🦜 Parakeet FYI\n\n"
f"Just a heads up: **{self.task}** is due {self.deadline.strftime('%B %d')}.\n\n"
f"No action needed now - just wanted to keep it on your radar!"
),
ReminderUrgency.UPCOMING: (
f"🦜 Parakeet Reminder\n\n"
f"**{self.task}** is coming up in a few days ({self.deadline.strftime('%A, %B %d')}).\n\n"
f"Might be a good time to start thinking about it when you finish your current hyperfocus!"
),
ReminderUrgency.SOON: (
f"🦜 Parakeet Nudge\n\n"
f"**{self.task}** is due in {(self.deadline - datetime.now()).days} days.\n\n"
f"Would you like to:\n"
f"- Add it to your active projects list?\n"
f"- Time-box 2 hours for it tomorrow?\n"
f"- Delegate it (if possible)?"
),
ReminderUrgency.URGENT: (
f"⚠️ Parakeet Alert\n\n"
f"**{self.task}** is due tomorrow ({self.deadline.strftime('%I:%M %p')})!\n\n"
f"Current status? Do you need:\n"
f"- Time blocked on your calendar?\n"
f"- Help/unblocking?\n"
f"- Deadline extension?"
),
ReminderUrgency.CRITICAL: (
f"🚨 URGENT: Parakeet Emergency 🚨\n\n"
f"**{self.task}** is due in {(self.deadline - datetime.now()).total_seconds() / 3600:.1f} hours!\n\n"
f"Dropping everything to help you finish this.\n\n"
f"What do you need RIGHT NOW?"
)
}
return messages.get(urgency, "Reminder message unavailable")
def should_send_reminder(self) -> bool:
"""Determine if reminder should be sent (not too frequent)"""
urgency = self.calculate_urgency()
# Frequency based on urgency
frequency_map = {
ReminderUrgency.FUTURE_FYI: timedelta(days=7),
ReminderUrgency.UPCOMING: timedelta(days=2),
ReminderUrgency.SOON: timedelta(days=1),
ReminderUrgency.URGENT: timedelta(hours=6),
ReminderUrgency.CRITICAL: timedelta(hours=1)
}
min_interval = frequency_map[urgency]
if not self.reminders_sent:
return True
last_reminder = max(self.reminders_sent)
return (datetime.now() - last_reminder) >= min_interval
def send(self):
"""Send reminder if appropriate"""
if not self.should_send_reminder():
return
urgency = self.calculate_urgency()
message = self.get_reminder_message(urgency)
send_slack_dm(self.engineer, message, urgent=(urgency == ReminderUrgency.CRITICAL))
self.reminders_sent.append(datetime.now())Reminder Scheduling
class ParakeetScheduler:
def __init__(self):
self.reminders = []
def add_task(self, task: str, deadline: datetime, engineer: str):
"""Add a new task to track"""
reminder = ParakeetReminder(task, deadline, engineer)
self.reminders.append(reminder)
# Schedule initial reminder based on time to deadline
time_until = deadline - datetime.now()
if time_until > timedelta(days=14):
# First reminder 2 weeks before
first_reminder = deadline - timedelta(days=14)
elif time_until > timedelta(days=7):
# First reminder 1 week before
first_reminder = deadline - timedelta(days=7)
else:
# Immediate reminder
first_reminder = datetime.now()
schedule_task(first_reminder, reminder.send)
def check_all(self):
"""Check all reminders and send if needed"""
for reminder in self.reminders:
if reminder.deadline > datetime.now(): # Not yet past
reminder.send()Message Templates
Friendly Check-ins
🦜 Hey there!
Just your friendly PM parakeet checking in.
How's [task] going? No pressure - just wanted to see if you need anything!
Options:
[ ] All good, on track
[ ] Could use some help
[ ] Need to rescheduleDeadline Approaching
⏰ Heads up!
[task] is due in [X days/hours].
Quick check:
- Status: [dropdown]
- Blockers: [text field]
- Need extension? [yes/no]
Remember: It's okay to ask for help! 💪Celebration
🎉 AMAZING WORK!
You completed [task] with [X hours] to spare!
🏆 Achievement Unlocked: Early Bird
📈 Your streak: [N] tasks on time
Keep being awesome! 🚀Task Chunking for ADHD Brains
The Problem
- Large tasks feel overwhelming → procrastination
- ADHD brains need quick wins for dopamine
- Unclear scope → analysis paralysis
The Solution: Micro-tasks with Immediate Feedback
# Task Chunking Protocol
Bad Task (too vague):
"Implement user authentication system"
Problems:
- No clear starting point
- Feels overwhelming
- Success undefined
Good Task Breakdown:
1. [15 min] Research auth libraries (Devise vs custom JWT)
2. [30 min] Set up User model with password_digest
3. [45 min] Create login/logout routes
4. [30 min] Add session management
5. [20 min] Write tests for auth flow
6. [DOPAMINE HIT] Deploy to staging and test manually
Benefits:
- Each task < 1 hour (maintains focus)
- Clear success criteria
- Frequent completion dopamine
- Can hyperfocus on single chunk
Visual Progress:
Use task board with:
- Big visible progress bar
- Celebration animations on completion
- Streak tracking ("5 tasks in a row!")
- Level-up system (gamification)Implementation: ADHD Task Chunker
class ADHDTaskChunker:
MAX_CHUNK_DURATION = 60 # minutes
MIN_CHUNK_DURATION = 10 # minutes
@staticmethod
def chunk_task(task_description: str, estimated_hours: float) -> list[dict]:
"""Break large task into ADHD-friendly chunks"""
if estimated_hours <= 1:
return [{
'name': task_description,
'duration_min': int(estimated_hours * 60),
'dopamine_reward': '🎉'
}]
# For larger tasks, decompose
chunks = []
total_minutes = int(estimated_hours * 60)
# Rule: Each chunk should build toward visible progress
phases = [
('Research & Planning', 0.15), # 15% of time
('Setup & Scaffolding', 0.20), # 20%
('Core Implementation', 0.40), # 40%
('Polish & Edge Cases', 0.15), # 15%
('Testing & Documentation', 0.10) # 10%
]
for phase_name, phase_ratio in phases:
phase_duration = int(total_minutes * phase_ratio)
# Break phase into 30-45min chunks
num_chunks = max(1, phase_duration // 40)
chunk_duration = phase_duration // num_chunks
for i in range(num_chunks):
chunks.append({
'name': f"{task_description} - {phase_name} ({i+1}/{num_chunks})",
'duration_min': chunk_duration,
'phase': phase_name,
'dopamine_reward': '✅' if i == num_chunks - 1 else '⏭️'
})
return chunks
@staticmethod
def optimize_for_hyperfocus(chunks: list[dict]) -> dict:
"""Group chunks into hyperfocus-friendly sessions"""
sessions = []
current_session = []
session_duration = 0
for chunk in chunks:
# If adding this chunk exceeds 3 hours, start new session
if session_duration + chunk['duration_min'] > 180:
sessions.append({
'chunks': current_session,
'total_duration': session_duration,
'break_after': True
})
current_session = []
session_duration = 0
current_session.append(chunk)
session_duration += chunk['duration_min']
# Add final session
if current_session:
sessions.append({
'chunks': current_session,
'total_duration': session_duration,
'break_after': True
})
return {'sessions': sessions, 'estimated_days': len(sessions) // 2}Usage Example
# Usage
task = "Build user authentication system"
chunks = ADHDTaskChunker.chunk_task(task, estimated_hours=8)
plan = ADHDTaskChunker.optimize_for_hyperfocus(chunks)
print(f"📋 Task Plan for: {task}")
for i, session in enumerate(plan['sessions'], 1):
print(f"\n🔥 Hyperfocus Session {i} (~{session['total_duration']}min):")
for chunk in session['chunks']:
print(f" {chunk['dopamine_reward']} {chunk['name']} ({chunk['duration_min']}min)")
if session['break_after']:
print(" ☕ MANDATORY BREAK")Output Example
📋 Task Plan for: Build user authentication system
🔥 Hyperfocus Session 1 (~168min):
⏭️ Build user authentication system - Research & Planning (1/1) (72min)
⏭️ Build user authentication system - Setup & Scaffolding (1/2) (48min)
✅ Build user authentication system - Setup & Scaffolding (2/2) (48min)
☕ MANDATORY BREAK
🔥 Hyperfocus Session 2 (~168min):
⏭️ Build user authentication system - Core Implementation (1/4) (48min)
⏭️ Build user authentication system - Core Implementation (2/4) (48min)
⏭️ Build user authentication system - Core Implementation (3/4) (48min)
☕ MANDATORY BREAK
🔥 Hyperfocus Session 3 (~120min):
✅ Build user authentication system - Core Implementation (4/4) (48min)
✅ Build user authentication system - Polish & Edge Cases (1/1) (72min)
☕ MANDATORY BREAK
🔥 Hyperfocus Session 4 (~48min):
✅ Build user authentication system - Testing & Documentation (1/1) (48min)
☕ MANDATORY BREAKVisual Progress Board
┌────────────────────────────────────────────────────────────┐
│ 🎯 USER AUTH SYSTEM Progress: 62% │
│ ████████████████████░░░░░░░░░░░░ │
│ │
│ Session 1 ✅ Session 2 ✅ Session 3 🔄 Session 4 ⏳ │
│ │
│ Current: Core Implementation (3/4) │
│ Time remaining: ~48min │
│ │
│ 🔥 Streak: 5 chunks completed! │
│ 💪 Energy: ████████░░ 80% │
└────────────────────────────────────────────────────────────┘