Synced files: - Complete claude-projects import (5 catalog files) - Client directory with 12 clients - Project directory with 12 projects - Credentials updated (100+ sets) - Session logs consolidated - Agent coordination rules updated - Task management integration Major work completed: - Exhaustive cataloging of claude-projects - All session logs analyzed (38 files) - All credentials extracted and organized - Client infrastructure documented - Problem solutions cataloged (70+) Machine: ACG-M-L5090 Timestamp: 2026-01-26 16:45:54 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
667 lines
17 KiB
Markdown
667 lines
17 KiB
Markdown
# Task Management System
|
|
|
|
## Overview
|
|
|
|
All tasks and subtasks across all modes (MSP, Development, Normal) are tracked using **Claude Code's native task management tools** (TaskCreate, TaskUpdate, TaskList, TaskGet). The orchestrator (main Claude session) manages tasks, updating status as work progresses. Task data is persisted to `.claude/active-tasks.json` for cross-session continuity.
|
|
|
|
**Native Task Integration (NEW - 2026-01-23):**
|
|
- **Session Layer:** TaskCreate/Update/List for real-time coordination
|
|
- **Persistence Layer:** `.claude/active-tasks.json` file for cross-session recovery
|
|
- **Agent Pattern:** Agents report status → Main Claude updates tasks
|
|
- **See:** `.claude/NATIVE_TASK_INTEGRATION.md` for complete guide
|
|
|
|
## Core Principles
|
|
|
|
### 1. Everything is Tracked
|
|
- User requests → Tasks
|
|
- Agent operations → Subtasks
|
|
- Code implementations → Tasks
|
|
- Research activities → Tasks
|
|
- Client work → Tasks (linked to client)
|
|
- Development features → Tasks (linked to project)
|
|
|
|
### 2. Orchestrator Maintains Checklist
|
|
The main Claude session (not agents) is responsible for:
|
|
- Creating tasks from user requests
|
|
- Breaking down complex tasks into subtasks
|
|
- Updating task status as agents report progress
|
|
- Marking tasks complete when work finishes
|
|
- Providing visibility to user on progress
|
|
|
|
### 3. Agents Report Progress
|
|
Agents don't manage tasks directly - they report to orchestrator:
|
|
- Agent starts work → Orchestrator marks task 'in_progress'
|
|
- Agent completes work → Orchestrator marks task 'completed'
|
|
- Agent encounters blocker → Orchestrator marks task 'blocked' with reason
|
|
|
|
### 4. Context is Preserved
|
|
Every task stores rich context in `.claude/active-tasks.json`:
|
|
- What was requested (subject, description)
|
|
- Task status (pending, in_progress, completed)
|
|
- Which agent is working (owner field)
|
|
- Task dependencies (blocks, blockedBy)
|
|
- Timestamps (created_at, started_at, completed_at)
|
|
- Metadata (client, project, complexity)
|
|
- Cross-session persistence for recovery
|
|
|
|
## Workflow
|
|
|
|
### Step 1: User Makes Request
|
|
```
|
|
User: "Implement authentication for the API"
|
|
```
|
|
|
|
### Step 2: Orchestrator Creates Task(s)
|
|
Main Claude analyzes request and creates task structure using native tools:
|
|
|
|
```javascript
|
|
// Orchestrator thinks:
|
|
// This is a complex task - break it down
|
|
|
|
// Create parent task
|
|
TaskCreate({
|
|
subject: "Implement API authentication",
|
|
description: "Complete JWT-based authentication system with Argon2 hashing",
|
|
activeForm: "Implementing API authentication"
|
|
})
|
|
// Returns: Task #7
|
|
|
|
// Create subtasks with dependencies
|
|
design = TaskCreate({
|
|
subject: "Design authentication schema",
|
|
description: "Define users, tokens, and refresh_tokens tables",
|
|
activeForm: "Designing auth schema"
|
|
})
|
|
// Returns: Task #8
|
|
|
|
generate = TaskCreate({
|
|
subject: "Generate JWT authentication code",
|
|
description: "Implement FastAPI endpoints with JWT token generation",
|
|
activeForm: "Generating auth code",
|
|
addBlockedBy: ["8"] // Depends on design
|
|
})
|
|
// Returns: Task #9
|
|
|
|
review = TaskCreate({
|
|
subject: "Review authentication code",
|
|
description: "Code review for security and standards compliance",
|
|
activeForm: "Reviewing auth code",
|
|
addBlockedBy: ["9"] // Depends on code generation
|
|
})
|
|
// Returns: Task #10
|
|
|
|
tests = TaskCreate({
|
|
subject: "Write authentication tests",
|
|
description: "Create pytest tests for auth flow",
|
|
activeForm: "Writing auth tests",
|
|
addBlockedBy: ["10"] // Depends on review
|
|
})
|
|
// Returns: Task #11
|
|
|
|
// Persist all tasks to file
|
|
Write(".claude/active-tasks.json", tasks_data)
|
|
```
|
|
|
|
### Step 3: Orchestrator Shows Checklist to User
|
|
```markdown
|
|
## Task Breakdown
|
|
|
|
I'll implement API authentication in these steps:
|
|
|
|
- [ ] Design authentication schema
|
|
- [ ] Generate code for JWT authentication
|
|
- [ ] Review authentication code
|
|
- [ ] Write authentication tests
|
|
|
|
Starting with the design phase...
|
|
```
|
|
|
|
### Step 4: Orchestrator Launches Agents
|
|
```javascript
|
|
// Update task status to in_progress
|
|
TaskUpdate({
|
|
taskId: "8", // Design task
|
|
status: "in_progress",
|
|
owner: "Coding Agent"
|
|
})
|
|
|
|
// Update file
|
|
Update active-tasks.json with new status
|
|
|
|
// Launch agent
|
|
Coding Agent: analyze_and_design_auth_schema(...)
|
|
```
|
|
|
|
### Step 5: Agent Completes, Orchestrator Updates
|
|
```javascript
|
|
// Agent returns design
|
|
agent_result = {
|
|
status: "completed",
|
|
outcome: "Schema designed with users, tokens, refresh_tokens tables",
|
|
files_created: ["docs/auth_schema.md"]
|
|
}
|
|
|
|
// Orchestrator updates task
|
|
TaskUpdate({
|
|
taskId: "8",
|
|
status: "completed"
|
|
})
|
|
|
|
// Update file
|
|
Update active-tasks.json with completion
|
|
|
|
// Next task (dependency cleared automatically)
|
|
TaskUpdate({
|
|
taskId: "9", // Generate code task
|
|
status: "in_progress"
|
|
})
|
|
|
|
// Update checklist shown to user via TaskList()
|
|
```
|
|
|
|
### Step 6: Progress Visibility
|
|
```markdown
|
|
## Task Progress
|
|
|
|
- [✓] Design authentication schema (completed)
|
|
- [→] Generate code for JWT authentication (in progress)
|
|
- [ ] Review authentication code
|
|
- [ ] Write authentication tests
|
|
```
|
|
|
|
### Step 7: All Tasks Complete
|
|
```python
|
|
# When all subtasks done, mark parent complete
|
|
Database Agent: complete_task(
|
|
task_id="parent-task-uuid",
|
|
completed_at=now(),
|
|
task_context={
|
|
"outcome": "Authentication fully implemented and reviewed",
|
|
"subtasks_completed": 4,
|
|
"files_modified": ["auth.py", "user.py", "test_auth.py"],
|
|
"production_ready": true
|
|
}
|
|
)
|
|
```
|
|
|
|
## Task Status Flow
|
|
|
|
```
|
|
pending
|
|
↓ (agent starts work)
|
|
in_progress
|
|
↓
|
|
├─→ completed (success)
|
|
├─→ blocked (encountered issue)
|
|
│ ↓ (issue resolved)
|
|
│ in_progress (resume)
|
|
└─→ cancelled (no longer needed)
|
|
```
|
|
|
|
## Task Types
|
|
|
|
### implementation
|
|
Code generation, feature building, system creation
|
|
- Assigned to: Coding Agent → Code Review Agent
|
|
- Context includes: files modified, dependencies added, review status
|
|
|
|
### research
|
|
Information gathering, codebase exploration, documentation reading
|
|
- Assigned to: Explore Agent, general-purpose agent
|
|
- Context includes: findings, relevant files, key information
|
|
|
|
### review
|
|
Code review, quality assurance, specification verification
|
|
- Assigned to: Code Review Agent
|
|
- Context includes: approval status, issues found, fixes applied
|
|
|
|
### testing
|
|
Test creation, test execution, validation
|
|
- Assigned to: Coding Agent (creates tests), potentially Test Agent (future)
|
|
- Context includes: tests created, pass/fail status, coverage
|
|
|
|
### deployment
|
|
Deploying code, configuring servers, setting up infrastructure
|
|
- Assigned to: DevOps Agent (future) or general-purpose agent
|
|
- Context includes: deployment steps, environment, verification
|
|
|
|
### documentation
|
|
Writing docs, creating guides, updating README files
|
|
- Assigned to: general-purpose agent
|
|
- Context includes: docs created, format, location
|
|
|
|
### bugfix
|
|
Fixing defects, resolving issues, patching problems
|
|
- Assigned to: Coding Agent → Code Review Agent
|
|
- Context includes: bug description, root cause, fix applied
|
|
|
|
### analysis
|
|
Understanding problems, investigating issues, exploring options
|
|
- Assigned to: Explore Agent, general-purpose agent
|
|
- Context includes: analysis results, options identified, recommendations
|
|
|
|
## Context Data Structure
|
|
|
|
Each task stores rich context as JSON:
|
|
|
|
```json
|
|
{
|
|
"user_request": "Original user message",
|
|
"environment": {
|
|
"os": "Windows",
|
|
"runtime": "Python 3.11",
|
|
"project_type": "FastAPI",
|
|
"client": "Dataforth" // if MSP mode
|
|
},
|
|
"requirements": [
|
|
"Must use JWT tokens",
|
|
"Must integrate with existing users table",
|
|
"Must include refresh token support"
|
|
],
|
|
"constraints": [
|
|
"Must work on Server 2019",
|
|
"Cannot use PowerShell 7 cmdlets"
|
|
],
|
|
"assigned_agents": [
|
|
{
|
|
"agent": "Coding Agent",
|
|
"started": "2026-01-15T20:30:00Z",
|
|
"completed": "2026-01-15T20:40:00Z"
|
|
},
|
|
{
|
|
"agent": "Code Review Agent",
|
|
"started": "2026-01-15T20:40:00Z",
|
|
"completed": "2026-01-15T20:42:00Z",
|
|
"status": "approved"
|
|
}
|
|
],
|
|
"files_modified": [
|
|
"api/auth.py",
|
|
"models/user.py",
|
|
"tests/test_auth.py"
|
|
],
|
|
"dependencies_added": [
|
|
"python-jose[cryptography]==3.3.0",
|
|
"passlib[bcrypt]==1.7.4"
|
|
],
|
|
"blockers_encountered": [],
|
|
"outcome": "Authentication system implemented and approved",
|
|
"production_ready": true,
|
|
"billable": true, // if MSP mode
|
|
"billable_minutes": 30 // if MSP mode
|
|
}
|
|
```
|
|
|
|
## Mode-Specific Task Features
|
|
|
|
### MSP Mode
|
|
Tasks automatically linked to client context:
|
|
```python
|
|
{
|
|
"operation": "create_task",
|
|
"title": "Fix WINS service on D2TESTNAS",
|
|
"client_id": "dataforth-uuid",
|
|
"infrastructure_ids": ["d2testnas-uuid"],
|
|
"billable_minutes": 45,
|
|
"task_context": {
|
|
"problem": "WINS service not responding",
|
|
"impact": "DOS machines can't resolve NetBIOS names"
|
|
}
|
|
}
|
|
```
|
|
|
|
When completed, automatically creates work_item:
|
|
```python
|
|
{
|
|
"operation": "create_work_item",
|
|
"category": "troubleshooting",
|
|
"problem": "WINS service not responding",
|
|
"solution": "Fixed smb.conf.overrides, restarted nmbd",
|
|
"billable_minutes": 45,
|
|
"linked_task_id": "task-uuid"
|
|
}
|
|
```
|
|
|
|
### Development Mode
|
|
Tasks linked to project:
|
|
```python
|
|
{
|
|
"operation": "create_task",
|
|
"title": "Add dark mode toggle",
|
|
"project_id": "gururmm-uuid",
|
|
"task_context": {
|
|
"feature_spec": "User-requested dark mode for dashboard",
|
|
"repository": "azcomputerguru/gururmm"
|
|
}
|
|
}
|
|
```
|
|
|
|
### Normal Mode
|
|
Tasks not linked to client or project:
|
|
```python
|
|
{
|
|
"operation": "create_task",
|
|
"title": "Research Rust async patterns",
|
|
"task_type": "research",
|
|
"task_context": {
|
|
"reason": "General learning, not for specific client/project"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Checklist Display Format
|
|
|
|
### Compact (During Execution)
|
|
```markdown
|
|
## Progress
|
|
|
|
- [✓] Analyze requirements (completed)
|
|
- [→] Generate code (in progress - Coding Agent)
|
|
- [ ] Review code
|
|
- [ ] Deploy to staging
|
|
```
|
|
|
|
### Detailed (On Request)
|
|
```markdown
|
|
## Task Status: Implement API Authentication
|
|
|
|
**Overall Status:** In Progress (2 of 4 complete)
|
|
|
|
### Completed ✓
|
|
1. **Design authentication schema** (5 min)
|
|
- Schema designed with JWT approach
|
|
- Files: docs/auth_schema.md
|
|
|
|
2. **Generate authentication code** (20 min)
|
|
- Code generated by Coding Agent
|
|
- Approved by Code Review Agent
|
|
- Files: api/auth.py, models/user.py
|
|
|
|
### In Progress →
|
|
3. **Write authentication tests** (in progress)
|
|
- Assigned to: Coding Agent
|
|
- Started: 2 minutes ago
|
|
|
|
### Pending
|
|
4. **Deploy to staging**
|
|
- Blocked by: Need staging environment credentials
|
|
```
|
|
|
|
## File-Based Storage
|
|
|
|
Tasks are persisted to `.claude/active-tasks.json` for cross-session continuity.
|
|
|
|
**File Structure:**
|
|
```json
|
|
{
|
|
"last_updated": "2026-01-23T10:30:00Z",
|
|
"tasks": [
|
|
{
|
|
"id": "7",
|
|
"subject": "Implement API authentication",
|
|
"description": "Complete JWT-based authentication...",
|
|
"activeForm": "Implementing API authentication",
|
|
"status": "in_progress",
|
|
"owner": "Coding Agent",
|
|
"created_at": "2026-01-23T10:00:00Z",
|
|
"started_at": "2026-01-23T10:05:00Z",
|
|
"completed_at": null,
|
|
"blocks": [],
|
|
"blockedBy": [],
|
|
"metadata": {
|
|
"client": "Dataforth",
|
|
"project": "ClaudeTools",
|
|
"complexity": "moderate"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
**Key Fields:**
|
|
- `id` - Task number from TaskCreate
|
|
- `subject` - Brief task title
|
|
- `description` - Detailed description
|
|
- `status` - pending, in_progress, completed
|
|
- `owner` - Which agent is working (from TaskUpdate)
|
|
- `blocks`/`blockedBy` - Task dependencies
|
|
- `metadata` - Client, project, complexity
|
|
|
|
## Agent Interaction Pattern
|
|
|
|
### Agents Don't Manage Tasks Directly
|
|
```javascript
|
|
// [ERROR] WRONG - Agent uses TaskUpdate directly
|
|
// Inside Coding Agent:
|
|
TaskUpdate({ taskId: "7", status: "completed" })
|
|
|
|
// ✓ CORRECT - Agent reports to orchestrator
|
|
// Inside Coding Agent:
|
|
return {
|
|
"status": "completed",
|
|
"outcome": "Authentication code generated",
|
|
"files_created": ["auth.py"]
|
|
}
|
|
|
|
// Orchestrator receives agent result, then updates task
|
|
TaskUpdate({
|
|
taskId: "7",
|
|
status: "completed"
|
|
})
|
|
|
|
// Update file
|
|
Update active-tasks.json with completion data
|
|
```
|
|
|
|
### Orchestrator Sequence
|
|
```javascript
|
|
// 1. Create task
|
|
task_id = TaskCreate({
|
|
subject: "Generate auth code",
|
|
description: "Create JWT authentication endpoints",
|
|
activeForm: "Generating auth code"
|
|
})
|
|
// Returns: "7"
|
|
|
|
// 2. Update status before launching agent
|
|
TaskUpdate({
|
|
taskId: "7",
|
|
status: "in_progress",
|
|
owner: "Coding Agent"
|
|
})
|
|
Update active-tasks.json
|
|
|
|
// 3. Launch agent
|
|
result = Coding_Agent.generate_auth_code(...)
|
|
|
|
// 4. Update task with result
|
|
TaskUpdate({
|
|
taskId: "7",
|
|
status: "completed"
|
|
})
|
|
Update active-tasks.json with outcome
|
|
|
|
// 5. Show updated checklist to user
|
|
TaskList() // Shows current state
|
|
```
|
|
|
|
## Benefits
|
|
|
|
### For User
|
|
- **Visibility** - Always know what's happening
|
|
- **Progress tracking** - See how far along work is
|
|
- **Context** - Understand what was done and why
|
|
- **Billability** - (MSP mode) Clear record of time spent
|
|
|
|
### For Orchestrator (Main Claude)
|
|
- **Organization** - Structured approach to complex requests
|
|
- **Memory** - Database stores context between sessions
|
|
- **Resumption** - Can pick up where left off
|
|
- **Accountability** - Clear record of what agents did
|
|
|
|
### For System
|
|
- **Learning** - Analyze patterns across tasks
|
|
- **Estimation** - Build data for complexity estimates
|
|
- **Optimization** - Identify bottlenecks
|
|
- **Quality** - Track review pass/fail rates
|
|
|
|
## Example: Complex Request
|
|
|
|
**User Request:**
|
|
> "Set up monitoring for the Dataforth NAS, alert if sync fails"
|
|
|
|
**Orchestrator Creates Tasks:**
|
|
```markdown
|
|
## Implementation Plan
|
|
|
|
I'll set up NAS monitoring in these steps:
|
|
|
|
- [ ] Research current sync system (Dataforth)
|
|
- [ ] Design monitoring approach
|
|
- [ ] Implement monitoring script
|
|
- [ ] Review monitoring code
|
|
- [ ] Test monitoring alerts
|
|
- [ ] Deploy to production
|
|
- [ ] Document for team
|
|
|
|
Starting with research...
|
|
```
|
|
|
|
**Task Breakdown in Database:**
|
|
```python
|
|
parent_task = {
|
|
"title": "Set up NAS monitoring for Dataforth",
|
|
"client_id": "dataforth-uuid",
|
|
"status": "in_progress",
|
|
"subtasks": [
|
|
{
|
|
"title": "Research current sync system",
|
|
"task_type": "research",
|
|
"assigned_agent": "Explore Agent",
|
|
"status": "in_progress"
|
|
},
|
|
# ... 6 more subtasks
|
|
]
|
|
}
|
|
```
|
|
|
|
**As Work Progresses:**
|
|
```markdown
|
|
## Progress Update
|
|
|
|
- [✓] Research current sync system (completed - 5 min)
|
|
- Found: PowerShell script on AD2, syncs every 15 min
|
|
- Files: C:\Shares\test\scripts\Sync-FromNAS.ps1
|
|
|
|
- [✓] Design monitoring approach (completed - 3 min)
|
|
- Approach: Check _SYNC_STATUS.txt age via DattoRMM
|
|
- Alert if >30 min old or status != "OK"
|
|
|
|
- [→] Implement monitoring script (in progress - Coding Agent)
|
|
- [ ] Review monitoring code
|
|
- [ ] Test monitoring alerts
|
|
- [ ] Deploy to production
|
|
- [ ] Document for team
|
|
```
|
|
|
|
**On Completion:**
|
|
```markdown
|
|
## Implementation Complete [OK]
|
|
|
|
NAS monitoring set up for Dataforth:
|
|
|
|
**Work Summary:**
|
|
- Total time: 45 minutes (billable)
|
|
- Tasks completed: 7
|
|
- Files created: monitor-nas-sync.ps1
|
|
- Deployed to: DattoRMM component
|
|
- Alert threshold: 30 minutes
|
|
|
|
**What was built:**
|
|
[code blocks]
|
|
|
|
**Testing:**
|
|
[test results]
|
|
|
|
**Documentation:**
|
|
[docs created]
|
|
```
|
|
|
|
**Stored in File:**
|
|
```javascript
|
|
// Parent task marked complete in active-tasks.json
|
|
// Task removed from active list (or status updated to completed)
|
|
// Context preserved for session logs
|
|
// Can be archived to tasks/archive/ directory
|
|
```
|
|
|
|
---
|
|
|
|
## Cross-Session Recovery
|
|
|
|
**When a new session starts:**
|
|
|
|
1. **Check for active tasks file**
|
|
```javascript
|
|
if (file_exists(".claude/active-tasks.json")) {
|
|
tasks_data = read_json(".claude/active-tasks.json")
|
|
}
|
|
```
|
|
|
|
2. **Filter incomplete tasks**
|
|
```javascript
|
|
incomplete_tasks = tasks_data.tasks.filter(t => t.status !== "completed")
|
|
```
|
|
|
|
3. **Recreate native tasks**
|
|
```javascript
|
|
for (task of incomplete_tasks) {
|
|
new_id = TaskCreate({
|
|
subject: task.subject,
|
|
description: task.description,
|
|
activeForm: task.activeForm
|
|
})
|
|
// Map old task.id → new_id for dependencies
|
|
}
|
|
```
|
|
|
|
4. **Restore dependencies**
|
|
```javascript
|
|
for (task of incomplete_tasks) {
|
|
if (task.blockedBy.length > 0) {
|
|
TaskUpdate({
|
|
taskId: mapped_id(task.id),
|
|
addBlockedBy: task.blockedBy.map(mapped_id)
|
|
})
|
|
}
|
|
}
|
|
```
|
|
|
|
5. **Show recovered state**
|
|
```javascript
|
|
TaskList()
|
|
// User sees: "Continuing from previous session: 3 tasks in progress"
|
|
```
|
|
|
|
---
|
|
|
|
## Summary
|
|
|
|
**Orchestrator (main Claude) manages tasks**
|
|
- Creates tasks using TaskCreate for complex work
|
|
- Updates status as agents report using TaskUpdate
|
|
- Provides progress visibility via TaskList
|
|
- Persists to `.claude/active-tasks.json` file
|
|
|
|
**Agents report progress**
|
|
- Don't manage tasks directly
|
|
- Return results to orchestrator
|
|
- Orchestrator updates tasks and file
|
|
|
|
**File-based persistence**
|
|
- All active task data stored in JSON
|
|
- Cross-session recovery on startup
|
|
- Human-readable and editable
|
|
|
|
**Result: Complete visibility and context preservation**
|