AI Skill Report Card
Managing Task Lists
Managing Task Lists with Periodic Reviews
Quick Start13 / 15
Pythonimport time import json from datetime import datetime, timedelta def create_task_tracker(): return { "tasks": [], "last_check": None, "check_interval": 1800, # 30 minutes in seconds "status_log": [] } # Example task structure task = { "id": 1, "title": "Complete project proposal", "status": "pending", # pending, in_progress, completed, paused, cancelled "created": "2024-01-01 09:00", "last_updated": "2024-01-01 09:00", "notes": "" }
Recommendation▾
Remove the verbose Python implementation details - Claude can write code without seeing every function definition
Workflow12 / 15
Progress:
- Create initial task list
- Set up monitoring system
- Perform regular 30-minute checks
- Update task statuses
- Log progress and decisions
Step 1: Initialize Task List
Pythondef add_task(tracker, title, priority="medium"): task_id = len(tracker["tasks"]) + 1 task = { "id": task_id, "title": title, "status": "pending", "priority": priority, "created": datetime.now().strftime("%Y-%m-%d %H:%M"), "last_updated": datetime.now().strftime("%Y-%m-%d %H:%M"), "notes": "", "time_spent": 0 } tracker["tasks"].append(task) return task_id
Step 2: Status Management
Pythondef update_task_status(tracker, task_id, new_status, notes=""): for task in tracker["tasks"]: if task["id"] == task_id: old_status = task["status"] task["status"] = new_status task["last_updated"] = datetime.now().strftime("%Y-%m-%d %H:%M") task["notes"] = notes # Log status change tracker["status_log"].append({ "task_id": task_id, "change": f"{old_status} → {new_status}", "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M"), "notes": notes }) break
Step 3: Periodic Check System
Pythondef perform_check(tracker): current_time = datetime.now() print(f"\n=== Task Review at {current_time.strftime('%H:%M')} ===") for task in tracker["tasks"]: if task["status"] in ["pending", "in_progress", "paused"]: print(f"\nTask {task['id']}: {task['title']}") print(f"Current status: {task['status']}") print(f"Last updated: {task['last_updated']}") # Prompt for status update action = input("Status (c=complete, p=pause, r=resume, s=skip): ").lower() if action == 'c': update_task_status(tracker, task["id"], "completed", "Marked complete during review") elif action == 'p': update_task_status(tracker, task["id"], "paused", "Paused during review") elif action == 'r' and task["status"] == "paused": update_task_status(tracker, task["id"], "in_progress", "Resumed during review") tracker["last_check"] = current_time.strftime("%Y-%m-%d %H:%M")
Recommendation▾
Focus the Quick Start on the core concept and workflow rather than full code implementation
Examples15 / 20
Example 1: Basic Task List Input: Three tasks to track
Pythontracker = create_task_tracker() add_task(tracker, "Write project proposal", "high") add_task(tracker, "Review meeting notes", "medium") add_task(tracker, "Update documentation", "low")
Output:
Task List Status:
1. Write project proposal [pending] - High priority
2. Review meeting notes [pending] - Medium priority
3. Update documentation [pending] - Low priority
Example 2: Progress Update Input: After 30-minute check
Python# Task 1 completed, Task 2 in progress, Task 3 paused update_task_status(tracker, 1, "completed", "Submitted to manager") update_task_status(tracker, 2, "in_progress", "50% complete") update_task_status(tracker, 3, "paused", "Waiting for requirements")
Output:
=== Progress Summary ===
✓ Write project proposal [COMPLETED]
→ Review meeting notes [IN PROGRESS]
⏸ Update documentation [PAUSED]
Next check in 30 minutes at 14:30
Recommendation▾
Streamline the examples to show clear input/output pairs rather than code snippets with comments
Best Practices
- Set realistic check intervals: 30 minutes works for active work sessions
- Use clear status categories: pending, in_progress, completed, paused, cancelled
- Add meaningful notes: Document reasons for status changes
- Prioritize tasks: High/Medium/Low to focus attention during reviews
- Keep tasks atomic: Break large tasks into smaller, checkable items
- Save state: Export/import task lists to persist across sessions
Common Pitfalls
- Don't skip regular checks: Consistency is key to the system working
- Avoid too many status options: Keep it simple with 5 core statuses
- Don't ignore paused tasks: Review why tasks are paused and when to resume
- Don't let the list grow too long: Archive completed tasks regularly
- Don't forget to log time: Track actual time spent vs. estimated time