diff --git a/src/tools/AGENTS.md b/src/tools/AGENTS.md index 1c555cef..ac6e359b 100644 --- a/src/tools/AGENTS.md +++ b/src/tools/AGENTS.md @@ -8,7 +8,7 @@ ``` tools/ ├── delegate-task/ # Category routing (constants.ts 569 lines, tools.ts 213 lines) -├── task/ # Unified CRUD: create/list/get/update/delete (task.ts 58 lines) +├── task/ # 4 individual tools: create, list, get, update (task-create.ts, task-list.ts, task-get.ts, task-update.ts) ├── lsp/ # 6 LSP tools: goto_definition, find_references, symbols, diagnostics, prepare_rename, rename ├── ast-grep/ # 2 tools: search, replace (25 languages) ├── grep/ # Custom grep (60s timeout, 10MB limit) @@ -27,7 +27,10 @@ tools/ | Tool | Category | Pattern | Key Logic | |------|----------|---------|-----------| -| `task` | Task | Factory | Unified 5-action dispatch (create/list/get/update/delete) | +| `task_create` | Task | Factory | Create task with auto-generated T-{uuid} ID, threadID recording | +| `task_list` | Task | Factory | List active tasks with summary (excludes completed/deleted) | +| `task_get` | Task | Factory | Retrieve full task object by ID | +| `task_update` | Task | Factory | Update task fields, supports addBlocks/addBlockedBy for dependencies | | `call_omo_agent` | Agent | Factory | Direct explore/librarian invocation | | `background_output` | Background | Factory | Retrieve background task result | | `background_cancel` | Background | Factory | Cancel running background tasks | @@ -51,6 +54,103 @@ tools/ | `skill_mcp` | Skill | Factory | Call MCP tools/resources/prompts | | `slashcommand` | Command | Factory | Slash command dispatch | +## TASK TOOLS + +Task management system with auto-generated T-{uuid} IDs, dependency tracking, and OpenCode Todo API sync. + +### task_create + +Create a new task with auto-generated ID and threadID recording. + +**Args:** +| Arg | Type | Required | Description | +|-----|------|----------|-------------| +| `subject` | string | Yes | Task subject/title | +| `description` | string | No | Task description | +| `activeForm` | string | No | Active form (present continuous) | +| `metadata` | Record | No | Task metadata | +| `blockedBy` | string[] | No | Task IDs that must complete before this task | +| `blocks` | string[] | No | Task IDs this task blocks | +| `repoURL` | string | No | Repository URL | +| `parentID` | string | No | Parent task ID | + +**Example:** +```typescript +task_create({ + subject: "Implement user authentication", + description: "Add JWT-based auth to API endpoints", + blockedBy: ["T-abc123"] // Wait for database migration +}) +``` + +**Returns:** `{ task: { id, subject } }` + +### task_list + +List all active tasks with summary information. + +**Args:** None + +**Returns:** Array of task summaries with id, subject, status, owner, blockedBy. Excludes completed and deleted tasks. The blockedBy field is filtered to only include unresolved (non-completed) blockers. + +**Example:** +```typescript +task_list() // Returns all active tasks +``` + +**Response includes reminder:** "1 task = 1 task. Maximize parallel execution by running independent tasks (tasks with empty blockedBy) concurrently." + +### task_get + +Retrieve a full task object by ID. + +**Args:** +| Arg | Type | Required | Description | +|-----|------|----------|-------------| +| `id` | string | Yes | Task ID (format: T-{uuid}) | + +**Example:** +```typescript +task_get({ id: "T-2a200c59-1a36-4dad-a9c3-3064d180f694" }) +``` + +**Returns:** `{ task: TaskObject | null }` with all fields: id, subject, description, status, activeForm, blocks, blockedBy, owner, metadata, repoURL, parentID, threadID. + +### task_update + +Update an existing task with new values. Supports additive updates for dependencies. + +**Args:** +| Arg | Type | Required | Description | +|-----|------|----------|-------------| +| `id` | string | Yes | Task ID to update | +| `subject` | string | No | New subject | +| `description` | string | No | New description | +| `status` | "pending" \| "in_progress" \| "completed" \| "deleted" | No | Task status | +| `activeForm` | string | No | Active form (present continuous) | +| `owner` | string | No | Task owner (agent name) | +| `addBlocks` | string[] | No | Task IDs to add to blocks (additive) | +| `addBlockedBy` | string[] | No | Task IDs to add to blockedBy (additive) | +| `metadata` | Record | No | Metadata to merge (set key to null to delete) | + +**Example:** +```typescript +task_update({ + id: "T-2a200c59-1a36-4dad-a9c3-3064d180f694", + status: "completed" +}) + +// Add dependencies +task_update({ + id: "T-2a200c59-1a36-4dad-a9c3-3064d180f694", + addBlockedBy: ["T-other-task"] +}) +``` + +**Returns:** `{ task: TaskObject }` with full updated task. + +**Dependency Management:** Use `addBlockedBy` to declare dependencies on other tasks. Properly managed dependencies enable maximum parallel execution. + ## DELEGATION SYSTEM (delegate-task) 8 built-in categories: `visual-engineering`, `ultrabrain`, `deep`, `artistry`, `quick`, `unspecified-low`, `unspecified-high`, `writing`