feat(task): refactor to Claude Code style individual tools

- Split unified Task tool into individual tools (TaskCreate, TaskGet, TaskList, TaskUpdate)
- Update schema to Claude Code field names (subject, blockedBy, blocks, activeForm, owner, metadata)
- Add OpenCode Todo API sync layer (todo-sync.ts)
- Implement Todo sync on task create/update for continuation enforcement
- Add comprehensive tests for all tools (96 tests total)
- Update AGENTS.md documentation

Breaking Changes:
- Field names changed: title→subject, dependsOn→blockedBy, open→pending
- Tool names changed: task→task_create, task_get, task_list, task_update

Closes: todo-continuation-enforcer now sees Task-created items
This commit is contained in:
YeonGyu-Kim
2026-02-02 12:01:43 +09:00
parent b16f1b7488
commit 0541c58cb3
16 changed files with 2224 additions and 64 deletions
+14
View File
@@ -37,11 +37,25 @@ tools/
| LSP | lsp_goto_definition, lsp_find_references, lsp_symbols, lsp_diagnostics, lsp_prepare_rename, lsp_rename | Direct |
| Search | ast_grep_search, ast_grep_replace, grep, glob | Direct |
| Session | session_list, session_read, session_search, session_info | Direct |
| Task | task_create, task_get, task_list, task_update | Factory |
| Agent | delegate_task, call_omo_agent | Factory |
| Background | background_output, background_cancel | Factory |
| System | interactive_bash, look_at | Mixed |
| Skill | skill, skill_mcp, slashcommand | Factory |
## TASK TOOLS
Claude Code compatible task management.
- **task_create**: Creates a new task. Auto-generates ID and syncs to Todo.
- Args: `subject`, `description`, `activeForm`, `blocks`, `blockedBy`, `owner`, `metadata`
- **task_get**: Retrieves a task by ID.
- Args: `id`
- **task_list**: Lists active tasks. Filters out completed/deleted by default.
- Args: `status`, `parentID`
- **task_update**: Updates task fields. Supports additive `addBlocks`/`addBlockedBy`.
- Args: `id`, `subject`, `description`, `status`, `activeForm`, `addBlocks`, `addBlockedBy`, `owner`, `metadata`
## HOW TO ADD
1. Create `src/tools/[name]/` with standard files