YeonGyu-Kim 6d17ac7d3a docs(tools): update AGENTS.md to document individual task tools
Replace unified 'task' tool documentation with 4 individual tools:

- task_create: Create task with auto-generated T-{uuid} ID

- task_list: List active tasks with summary

- task_get: Retrieve full task object by ID

- task_update: Update task fields with dependency support

Add detailed TASK TOOLS section with args tables and usage examples.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-02-10 22:00:54 +09:00

7.0 KiB

TOOLS KNOWLEDGE BASE

OVERVIEW

24 tools across 14 directories. Two patterns: Direct ToolDefinition (static) and Factory Function (context-dependent).

STRUCTURE

tools/
├── delegate-task/    # Category routing (constants.ts 569 lines, tools.ts 213 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)
├── glob/             # File search (60s timeout, 100 file limit)
├── session-manager/  # 4 tools: list, read, search, info (151 lines)
├── call-omo-agent/   # Direct agent invocation (57 lines)
├── background-task/  # background_output, background_cancel
├── interactive-bash/ # Tmux session management (135 lines)
├── look-at/          # Multimodal PDF/image analysis (156 lines)
├── skill/            # Skill execution with MCP support (211 lines)
├── skill-mcp/        # MCP tool/resource/prompt operations (182 lines)
└── slashcommand/     # Slash command dispatch

TOOL INVENTORY

Tool Category Pattern Key Logic
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
lsp_goto_definition LSP Direct Jump to symbol definition
lsp_find_references LSP Direct Find all usages across workspace
lsp_symbols LSP Direct Document or workspace symbol search
lsp_diagnostics LSP Direct Get errors/warnings from language server
lsp_prepare_rename LSP Direct Validate rename is possible
lsp_rename LSP Direct Rename symbol across workspace
ast_grep_search Search Factory AST-aware code search (25 languages)
ast_grep_replace Search Factory AST-aware code replacement
grep Search Factory Regex content search with safety limits
glob Search Factory File pattern matching
session_list Session Factory List all sessions
session_read Session Factory Read session messages
session_search Session Factory Search across sessions
session_info Session Factory Session metadata and stats
interactive_bash System Direct Tmux session management
look_at System Factory Multimodal PDF/image analysis
skill Skill Factory Execute skill with MCP capabilities
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<string, unknown> 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:

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:

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:

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<string, unknown> No Metadata to merge (set key to null to delete)

Example:

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

Each category defines: model, variant, temperature, max tokens, thinking/reasoning config, prompt append, stability flag.

HOW TO ADD

  1. Create src/tools/[name]/ with index.ts, tools.ts, types.ts, constants.ts
  2. Static tools → builtinTools export, Factory → separate export
  3. Register in src/plugin/tool-registry.ts

NAMING

  • Tool names: snake_case (lsp_goto_definition)
  • Functions: camelCase (createDelegateTask)
  • Directories: kebab-case (delegate-task/)