Files
gh-nathanvale-side-quest-ma…/skills/second-brain/reference/gtd-task-management.md
2025-11-30 08:42:13 +08:00

405 lines
9.1 KiB
Markdown

# GTD + PARA Task Management
> Combining Getting Things Done with PARA for effective task management in Obsidian
## Table of Contents
- [The GTD + PARA Integration](#the-gtd--para-integration)
- [Task Properties](#task-properties)
- [The Review System](#the-review-system)
- [Daily Workflow](#daily-workflow)
- [Weekly Review](#weekly-review)
- [Task File vs Inline Tasks](#task-file-vs-inline-tasks)
- [Priority Systems](#priority-systems)
- [Frontmatter Schema](#frontmatter-schema)
---
## The GTD + PARA Integration
### Where GTD Concepts Live in PARA
| GTD Concept | PARA Location | Implementation |
|-------------|---------------|----------------|
| Next Actions | Within Projects | Tasks with `status: not-started` |
| Waiting For | Within Projects | Tasks with `status: blocked` |
| Someday/Maybe | Resources or Areas | Tasks with `priority: low` |
| Reference | Resources | Notes without tasks |
| Projects | Projects | Folders in `01_Projects/` |
| Calendar | Tasks | `due_date` and `start_date` fields |
### The Key Insight
> "Tasks should live in a global folder with frontmatter links to projects and areas. Dataview queries then show them in context."
**Why?**
- Single source of truth for all tasks
- Queryable from anywhere (dashboards, projects, areas)
- No duplicate task management
- Works with Obsidian's lack of a "move file" API
---
## Task Properties
### Essential Fields
```yaml
---
title: "Task Name"
created: 2025-01-15
type: task
status: not-started
project: "[[Project Name]]"
area: "[[Area Name]]"
due_date: 2025-01-20
priority: medium
---
```
### Status Values
| Status | Meaning | Query Filter |
|--------|---------|--------------|
| `not-started` | Ready to work on | `status = "not-started"` |
| `in-progress` | Currently working | `status = "in-progress"` |
| `blocked` | Waiting on something | `status = "blocked"` |
| `done` | Completed | `status = "done"` |
| `cancelled` | No longer needed | `status = "cancelled"` |
### Priority Values
| Priority | Use Case | Urgency |
|----------|----------|---------|
| `urgent` | Drop everything | Today |
| `high` | Important, time-sensitive | This week |
| `medium` | Normal priority | When possible |
| `low` | Someday/maybe | No rush |
### Optional Enhancement: Numeric Priority
For fine-grained sorting, use numeric priority:
- `priority: 42` = Urgent (threshold for "drop everything")
- `priority: 30` = High
- `priority: 20` = Medium
- `priority: 10` = Low
Query for urgent tasks:
```dataview
TASK WHERE priority >= 42 AND !completed
```
---
## The Review System
### Why Review Tracking Matters
Without tracking, you can't answer:
- When did I last look at this project?
- Is this task still relevant?
- Have I forgotten about something important?
### Review Fields
```yaml
reviewed: 2025-01-15 # Last review date
review_period: 7d # Custom review frequency
```
### Review Cadence
| Item Type | Default Period | Override Example |
|-----------|----------------|------------------|
| Active Project | 7 days | `review_period: 3d` for urgent |
| Area | 14 days | `review_period: 30d` for stable |
| Task (in progress) | 3 days | - |
| Task (not started) | 7 days | - |
### What Happens During Review
**Project Review:**
1. Is this project still relevant?
2. Has anything changed since last review?
3. Are all tasks still accurate?
4. What's the next action?
5. Mark as reviewed: `reviewed: 2025-01-15`
**Task Review:**
1. Is this task still needed?
2. Is the due date still accurate?
3. Is the priority correct?
4. Am I blocked on anything?
5. Mark as reviewed or reschedule
---
## Daily Workflow
### Morning: Plan the Day
1. **Check urgent tasks**
```dataview
TASK FROM "07_Tasks"
WHERE priority = "urgent" AND !completed
```
2. **Check due today**
```dataview
TASK FROM "07_Tasks"
WHERE due_date = date(today) AND !completed
```
3. **Pick top 3** from remaining tasks
### During Day: Capture and Execute
1. **Quick capture** → Inbox (process later)
2. **Work from task list** → Update status as you go
3. **New tasks** → Create in `07_Tasks/` with project/area link
### Evening: Close Out
1. **Update task statuses** (in-progress → done, blocked notes)
2. **Quick inbox scan** (anything urgent for tomorrow?)
3. **Review tomorrow's calendar**
---
## Weekly Review
### The Weekly Review Checklist
Based on GTD's weekly review, adapted for PARA:
**1. Get Clear (Process Inbox)**
```dataview
LIST FROM "00_Inbox"
```
- Process each item → Project, Area, Resource, or Archive
**2. Get Current (Review Projects)**
```dataview
TABLE target_completion, reviewed
FROM "01_Projects"
WHERE status = "active"
AND (reviewed < date(today) - dur(7d) OR !reviewed)
```
- Is this still active?
- Update tasks
- Mark reviewed
**3. Get Creative (Review Areas)**
```dataview
LIST FROM "02_Areas"
WHERE status = "active"
```
- Any new projects needed?
- Standards being maintained?
**4. Get Ready (Plan Next Week)**
- Review calendar
- Set priorities for top tasks
- Block time for important projects
---
## Task File vs Inline Tasks
### When to Use Task Files (`07_Tasks/`)
Use separate task files when:
- Task needs due date, priority, or other metadata
- Task should appear in Dataview queries
- Task has subtasks or notes
- Task should be linked to multiple projects/areas
**Example:**
```
07_Tasks/Book Tasmania Flights.md
```
### When to Use Inline Tasks
Use checkboxes in project/area notes when:
- Quick capture during project work
- Simple next actions
- No metadata needed
- Won't need to query separately
**Example in project note:**
```markdown
## Next Actions
- [ ] Email venue for quote
- [ ] Review contract draft
- [ ] Schedule team meeting
```
### Best Practice: Start Inline, Promote to File
1. Capture quickly as inline checkbox
2. If it needs metadata → create task file
3. If it's blocked or complex → create task file
---
## Priority Systems
### Simple (Recommended for Start)
```yaml
priority: low | medium | high | urgent
```
### Eisenhower Matrix
| | Urgent | Not Urgent |
|--|--------|------------|
| **Important** | Do First (`urgent`) | Schedule (`high`) |
| **Not Important** | Delegate (`medium`) | Eliminate (`low`) |
### Numeric (Advanced)
For fine-grained control:
```yaml
priority: 42 # 1-100 scale, higher = more urgent
```
Benefits:
- Sort by exact priority
- Threshold queries (`WHERE priority >= 42`)
- Gradual priority increase
---
## Frontmatter Schema
### Task Schema
```yaml
---
title: "Task Title"
created: 2025-01-15
type: task
task_type: task # task, reminder, habit, chore
status: not-started # not-started, in-progress, blocked, done, cancelled
project: "[[Project]]" # Link to project (optional)
area: "[[Area]]" # Link to area (optional)
due_date: 2025-01-20 # When it's due (optional)
start_date: 2025-01-18 # When to start (optional)
priority: medium # low, medium, high, urgent
effort: medium # small, medium, large
reviewed: 2025-01-15 # Last review date
depends_on: "[[Other Task]]" # Blocking task
tags:
- task
---
```
### Project Schema
```yaml
---
title: "Project Title"
created: 2025-01-15
type: project
status: active # active, on-hold, completed, archived
start_date: 2025-01-15
target_completion: 2025-03-01
completion_date: # Filled when done
area: "[[Parent Area]]"
reviewed: 2025-01-15
review_period: 7d # Custom review frequency
tags:
- project
---
```
### Area Schema
```yaml
---
title: "Area Title"
created: 2025-01-15
type: area
status: active
reviewed: 2025-01-15
review_period: 14d
tags:
- area
---
```
### Resource Schema
```yaml
---
title: "Resource Title"
created: 2025-01-15
type: resource
source: book # book, article, video, course, podcast, paper, web
source_url: "" # Optional URL
author: "" # Optional author
areas: # Required - links to one or more areas
- "[[Primary Area]]"
- "[[Secondary Area]]" # Optional additional areas
reviewed: 2025-01-15 # Last review date
tags:
- resource
---
```
**Why `areas:` is an array:**
- Resources are reference material that can serve multiple areas
- A TypeScript book relates to both "Software Development" and "Learning"
- Unlike projects/tasks which belong to ONE area, resources cross-cut
**Querying resources by area:**
```dataview
TABLE source, author
FROM "03_Resources"
WHERE contains(areas, [[Health]])
```
---
## Quick Reference
### Daily Queries
**What's due today?**
```dataview
TASK FROM "07_Tasks" WHERE due_date = date(today) AND !completed
```
**What's urgent?**
```dataview
TASK FROM "07_Tasks" WHERE priority = "urgent" AND !completed
```
**What am I working on?**
```dataview
TASK FROM "07_Tasks" WHERE status = "in-progress"
```
### Weekly Queries
**Projects needing review?**
```dataview
TABLE reviewed FROM "01_Projects"
WHERE status = "active" AND (reviewed < date(today) - dur(7d) OR !reviewed)
```
**Overdue tasks?**
```dataview
TASK FROM "07_Tasks" WHERE due_date < date(today) AND !completed
```
**Blocked tasks?**
```dataview
TASK FROM "07_Tasks" WHERE status = "blocked"
```
---
*Reference compiled from GTD methodology, PARA system, and Obsidian community patterns.*