# ADHD Scheduling App — Unified Product Design Summary

## Product purpose

This app is a failure-tolerant scheduling system for ADHD/executive dysfunction, volatile schedules, missed tasks, and low-capacity days. It is not a generic productivity app. Its core job is to preserve intent and order while reducing the amount of manual planning the user must do.

The app should assume that life will interrupt the plan. When that happens, the app should keep tasks safe, shift what can move, protect what cannot move, and avoid creating guilt or organizational overhead.

## Core product principles

1. The user should not need to reorganize the whole plan after a disruption.
2. Flexible tasks move; inflexible and locked blocks do not.
3. Backlog is a safe holding area, not a trash pile.
4. Critical tasks remain visible and actionable.
5. Locked time blocks scheduling but is hidden by default.
6. The app should use learned/default behavior wherever possible.
7. Manual editing exists for high-capacity moments, but one-tap actions are required for low-capacity moments.

## V1/MVP scope

V1 focuses on:

- Today timeline.
- Backlog/wishlist.
- Quick task capture.
- Flexible task scheduling and pushing.
- Recurring hidden locked blocks.
- One-day locked-block overrides.
- End-of-day rollover.
- Basic child task splitting.
- Internal statistics for future reports.

## V2.0 scope

V2.0 is planned for:

- Week view.
- Month view.
- Weekly reports.
- Overwhelm shield.
- Drag-and-drop reordering.
- Per-task history panel.

## Wishlist/future scope

Wishlist/future items include:

- Task dependencies.
- Context tags.
- Advanced sync.
- Long-running task auto-extension decision.
- Additional intelligent assistant features.

## Task types

- Flexible: movable planned task.
- Inflexible: required visible item that should not move automatically.
- Critical: required visible item that remains actionable if missed.
- Locked: hidden scheduling block that reserves unavailable time.
- Surprise: unplanned completed task logged after the fact.
- Free Slot: intentional rest time.

## Backlog/wishlist

The backlog is unified and supports filtering/sorting rather than hard sections. Items can be added directly, pushed there, or moved back into the next available schedule slot.

Backlog items have an ambient staleness indicator only in backlog views:

- Green: newest, default under 7 days.
- Blue: aging, default over 7 days.
- Purple: stale, default over 30 days.

These thresholds should be configurable. The app should not nag per stale task.

## Scheduling behavior

Flexible tasks can be inserted into the soonest slot where they fit. Later flexible tasks shift forward. Locked, inflexible, and critical blocks do not move automatically.

Push options:

- Next available slot.
- Tomorrow, top of queue.
- Backlog.

No `later today` option for now.

## Locked blocks

Locked blocks are critical to MVP. They can repeat, block scheduling, and remain hidden by default. They may be revealed temporarily as a named blocked-time overlay, not rendered as normal task cards.

Examples:

- Work hours.
- Unavailable time.
- Surprise weekend work.

One-day overrides must be supported without changing the recurring rule.

## Today timeline

Today view is a timeline.

Visual encoding:

- Thick border color: project class.
- Translucent background: task type.
- Text: task name.
- Icon 1: reward level.
- Icon 2: difficulty level.

Flexible tasks show duration. Inflexible, critical, and locked blocks show explicit start/end times.

Compact mode is manual only.

## Quick capture

Quick capture should default to backlog with neutral/default fields:

- Priority: Medium.
- Reward: Not set.
- Time: Not set or default estimate.
- Project: Inbox/Unsorted.

A checkbox can schedule the item into the next available slot. Selecting that expands optional fields like duration, project, priority, reward, and flexibility.

## Child tasks

Large tasks can be broken up through a checklist-style form. Each child row includes:

- Child task title.
- Priority.
- Reward.
- Time required.

If no priority is set, children are inserted in the order they were added. Child tasks belong to a parent. Parent completes when all children complete. Completing the parent force-completes remaining children.

## Statistics

The app should track internal statistics quietly for future reports:

- Skipped during burnout.
- Manually pushed count.
- Auto pushed count.
- Moved to backlog count.
- Restored from backlog count.
- Missed count.
- Cancelled count.
- Completed during locked hours count/minutes.
- Completed late count.
- Parent/child completion patterns.

## UX tone

The app must avoid guilt. It should not punish missed tasks or use shame language. The system should calmly record what happened and help recover.
