Tier 1: Task Management
JSON-based task state management.
Task Structure
{
"id": "1",
"description": "Write a haiku about loops",
"status": "pending",
"attempts": 0,
"max_attempts": 3,
"result": null,
"error": null,
"created_at": "2026-01-19T00:00:00",
"completed_at": null
}
Task States
| State | Meaning |
|---|---|
pending |
Ready to execute |
in_progress |
Currently being worked on |
completed |
Successfully finished |
failed |
Gave up after max attempts |
State Transitions
stateDiagram-v2
classDef primary fill:#2563eb,color:#fff
classDef secondary fill:#7c3aed,color:#fff
classDef tertiary fill:#0d9488,color:#fff
classDef accent fill:#f59e0b,color:#000
classDef alert fill:#ef4444,color:#fff
[*] --> pending
pending --> in_progress
in_progress --> completed
in_progress --> retry
retry --> pending
retry --> failed
class pending primary
class in_progress accent
class completed tertiary
class retry secondary
class failed alert
TaskManager API
from task_manager import TaskManager
tm = TaskManager("tasks.json")
# Add task
task = tm.add_task("Write a haiku")
# Get next pending
task = tm.get_next_pending()
# Update status
tm.mark_in_progress(task.id)
tm.mark_completed(task.id, "The result...")
tm.mark_failed(task.id, "Reason for failure")
# Query
all_tasks = tm.get_all_tasks()
pending = tm.get_tasks_by_status("pending")
File Format
{
"tasks": [...],
"metadata": {
"created": "2026-01-19T00:00:00",
"last_updated": "2026-01-19T00:00:00"
}
}