docs: refresh all 13 hierarchical AGENTS.md files with current codebase state

This commit is contained in:
YeonGyu-Kim 2026-02-09 14:29:53 +09:00
parent f22f14d9d1
commit 20d009964d
13 changed files with 246 additions and 270 deletions

View File

@ -1,7 +1,7 @@
# PROJECT KNOWLEDGE BASE # PROJECT KNOWLEDGE BASE
**Generated:** 2026-02-08T16:45:00+09:00 **Generated:** 2026-02-09T14:16:00+09:00
**Commit:** edee865f **Commit:** f22f14d9
**Branch:** dev **Branch:** dev
--- ---
@ -131,16 +131,18 @@ oh-my-opencode/
│ ├── hooks/ # 40+ lifecycle hooks - see src/hooks/AGENTS.md │ ├── hooks/ # 40+ lifecycle hooks - see src/hooks/AGENTS.md
│ ├── tools/ # 25+ tools - see src/tools/AGENTS.md │ ├── tools/ # 25+ tools - see src/tools/AGENTS.md
│ ├── features/ # Background agents, skills, Claude Code compat - see src/features/AGENTS.md │ ├── features/ # Background agents, skills, Claude Code compat - see src/features/AGENTS.md
│ ├── shared/ # 66 cross-cutting utilities - see src/shared/AGENTS.md │ ├── shared/ # 88 cross-cutting utilities - see src/shared/AGENTS.md
│ ├── cli/ # CLI installer, doctor - see src/cli/AGENTS.md │ ├── cli/ # CLI installer, doctor - see src/cli/AGENTS.md
│ ├── mcp/ # Built-in MCPs - see src/mcp/AGENTS.md │ ├── mcp/ # Built-in MCPs - see src/mcp/AGENTS.md
│ ├── config/ # Zod schema (schema.ts 455 lines), TypeScript types │ ├── config/ # Zod schema (schema.ts 455 lines) - see src/config/AGENTS.md
│ ├── plugin-handlers/ # Plugin config loading (config-handler.ts 562 lines) │ ├── plugin-handlers/ # Plugin config loading - see src/plugin-handlers/AGENTS.md
│ ├── plugin/ # Plugin SDK types
│ ├── index.ts # Main plugin entry (999 lines) │ ├── index.ts # Main plugin entry (999 lines)
│ ├── create-hooks.ts # Hook creation coordination (core, continuation, skill)
│ ├── plugin-config.ts # Config loading orchestration │ ├── plugin-config.ts # Config loading orchestration
│ └── plugin-state.ts # Model cache state │ └── plugin-state.ts # Model cache state
├── script/ # build-schema.ts, build-binaries.ts, publish.ts ├── script/ # build-schema.ts, build-binaries.ts, publish.ts, generate-changelog.ts
├── packages/ # 11 platform-specific binaries ├── packages/ # 11 platform-specific binaries (darwin-*, linux-*, windows-*)
└── dist/ # Build output (ESM + .d.ts) └── dist/ # Build output (ESM + .d.ts)
``` ```
@ -148,17 +150,18 @@ oh-my-opencode/
| Task | Location | Notes | | Task | Location | Notes |
|------|----------|-------| |------|----------|-------|
| Add agent | `src/agents/` | Create .ts with factory, add to `agentSources` in utils.ts | | Add agent | `src/agents/` | Create .ts with factory, add to `agentSources` in builtin-agents.ts |
| Add hook | `src/hooks/` | Create dir with `createXXXHook()`, register in index.ts | | Add hook | `src/hooks/` | Create dir with `createXXXHook()`, register in create-hooks.ts |
| Add tool | `src/tools/` | Dir with index/types/constants/tools.ts | | Add tool | `src/tools/` | Dir with index/types/constants/tools.ts |
| Add MCP | `src/mcp/` | Create config, add to `createBuiltinMcps()` | | Add MCP | `src/mcp/` | Create config, add to `createBuiltinMcps()` |
| Add skill | `src/features/builtin-skills/` | Create dir with SKILL.md | | Add skill | `src/features/builtin-skills/` | Create dir with SKILL.md |
| Add command | `src/features/builtin-commands/` | Add template + register in commands.ts | | Add command | `src/features/builtin-commands/` | Add template + register in commands.ts |
| Config schema | `src/config/schema.ts` | Zod schema, run `bun run build:schema` | | Config schema | `src/config/schema.ts` | Zod schema, run `bun run build:schema` |
| Plugin config | `src/plugin-handlers/config-handler.ts` | JSONC loading, merging, migration | | Plugin config | `src/plugin-handlers/config-handler.ts` | JSONC loading, merging, migration |
| Background agents | `src/features/background-agent/` | manager.ts (1556 lines) | | Background agents | `src/features/background-agent/` | manager.ts (1646 lines) |
| Orchestrator | `src/hooks/atlas/` | Main orchestration hook (770 lines) | | Orchestrator | `src/hooks/atlas/` | Main orchestration hook |
| Delegation | `src/tools/delegate-task/` | Category routing (executor.ts 983 lines) | | Delegation | `src/tools/delegate-task/` | Category routing (constants.ts 569 lines) |
| Task system | `src/features/claude-tasks/` | Task schema, storage, todo sync |
## TDD (Test-Driven Development) ## TDD (Test-Driven Development)
@ -170,7 +173,7 @@ oh-my-opencode/
**Rules:** **Rules:**
- NEVER write implementation before test - NEVER write implementation before test
- NEVER delete failing tests - fix the code - NEVER delete failing tests - fix the code
- Test file: `*.test.ts` alongside source (163 test files) - Test file: `*.test.ts` alongside source (163+ test files)
- BDD comments: `//#given`, `//#when`, `//#then` - BDD comments: `//#given`, `//#when`, `//#then`
## CONVENTIONS ## CONVENTIONS
@ -180,7 +183,7 @@ oh-my-opencode/
- **Build**: `bun build` (ESM) + `tsc --emitDeclarationOnly` - **Build**: `bun build` (ESM) + `tsc --emitDeclarationOnly`
- **Exports**: Barrel pattern via index.ts - **Exports**: Barrel pattern via index.ts
- **Naming**: kebab-case dirs, `createXXXHook`/`createXXXTool` factories - **Naming**: kebab-case dirs, `createXXXHook`/`createXXXTool` factories
- **Testing**: BDD comments, 163 test files - **Testing**: BDD comments, 163+ test files, 115k+ lines TypeScript
- **Temperature**: 0.1 for code agents, max 0.3 - **Temperature**: 0.1 for code agents, max 0.3
## ANTI-PATTERNS ## ANTI-PATTERNS
@ -227,7 +230,7 @@ oh-my-opencode/
bun run typecheck # Type check bun run typecheck # Type check
bun run build # ESM + declarations + schema bun run build # ESM + declarations + schema
bun run rebuild # Clean + Build bun run rebuild # Clean + Build
bun test # 100+ test files bun test # 163+ test files
``` ```
## DEPLOYMENT ## DEPLOYMENT
@ -241,23 +244,18 @@ bun test # 100+ test files
| File | Lines | Description | | File | Lines | Description |
|------|-------|-------------| |------|-------|-------------|
| `src/features/background-agent/manager.ts` | 1642 | Task lifecycle, concurrency | | `src/features/background-agent/manager.ts` | 1646 | Task lifecycle, concurrency |
| `src/features/builtin-skills/skills/git-master.ts` | 1107 | Git master skill definition | | `src/features/builtin-skills/skills/git-master.ts` | 1111 | Git master skill definition |
| `src/index.ts` | 999 | Main plugin entry | | `src/index.ts` | 999 | Main plugin entry |
| `src/tools/delegate-task/executor.ts` | 969 | Category-based delegation executor | | `src/tools/delegate-task/tools.test.ts` | 3582 | Delegation tool tests |
| `src/tools/lsp/client.ts` | 851 | LSP client operations | | `src/features/background-agent/manager.test.ts` | 2843 | Background manager tests |
| `src/tools/background-task/tools.ts` | 757 | Background task tools | | `src/hooks/atlas/index.test.ts` | 1182 | Atlas hook tests |
| `src/hooks/atlas/index.ts` | 697 | Orchestrator hook |
| `src/cli/config-manager.ts` | 667 | JSONC config parsing |
| `src/features/skill-mcp-manager/manager.ts` | 640 | MCP client lifecycle |
| `src/features/builtin-commands/templates/refactor.ts` | 619 | Refactor command template |
| `src/agents/hephaestus.ts` | 618 | Autonomous deep worker agent | | `src/agents/hephaestus.ts` | 618 | Autonomous deep worker agent |
| `src/agents/utils.ts` | 571 | Agent creation, model fallback resolution | | `src/features/builtin-commands/templates/refactor.ts` | 619 | Refactor command template |
| `src/plugin-handlers/config-handler.ts` | 562 | Plugin config loading | | `src/tools/delegate-task/constants.ts` | 569 | Category routing configs |
| `src/tools/delegate-task/constants.ts` | 552 | Delegation constants |
| `src/cli/install.ts` | 542 | Interactive CLI installer |
| `src/hooks/task-continuation-enforcer.ts` | 530 | Task completion enforcement |
| `src/agents/sisyphus.ts` | 530 | Main orchestrator agent | | `src/agents/sisyphus.ts` | 530 | Main orchestrator agent |
| `src/agents/utils.ts` | 571 | Agent creation, model fallback resolution |
| `src/plugin-handlers/config-handler.ts` | 563 | Plugin config loading |
## MCP ARCHITECTURE ## MCP ARCHITECTURE

View File

@ -2,38 +2,38 @@
## OVERVIEW ## OVERVIEW
Main plugin entry point and orchestration layer. 1000+ lines of plugin initialization, hook registration, tool composition, and lifecycle management. Main plugin entry point and orchestration layer. Plugin initialization, hook registration, tool composition, and lifecycle management.
**Core Responsibilities:** **Core Responsibilities:**
- Plugin initialization and configuration loading - Plugin initialization via `OhMyOpenCodePlugin()` factory
- 40+ lifecycle hooks orchestration - Hook registration: `createCoreHooks()`, `createContinuationHooks()`, `createSkillHooks()`
- 25+ tools composition and filtering - Tool composition with filtering
- Background agent management - Background agent management via `BackgroundManager`
- Session state coordination - MCP lifecycle via `SkillMcpManager`
- MCP server lifecycle
- Tmux integration
- Claude Code compatibility layer
## STRUCTURE ## STRUCTURE
``` ```
src/ src/
├── index.ts # Main plugin entry (1000 lines) - orchestration layer ├── index.ts # Main plugin entry (999 lines)
├── index.compaction-model-agnostic.static.test.ts # Compaction hook tests ├── create-hooks.ts # Hook coordination: core, continuation, skill
├── agents/ # 11 AI agents (16 files) ├── plugin-config.ts # Config loading orchestration
├── cli/ # CLI commands (9 files) ├── plugin-state.ts # Model cache state
├── config/ # Schema validation (3 files) ├── agents/ # 11 AI agents (20 files) - see agents/AGENTS.md
├── features/ # Background features (20+ files) ├── cli/ # CLI installer, doctor (100+ files) - see cli/AGENTS.md
├── hooks/ # 40+ lifecycle hooks (14 files) ├── config/ # Zod schema (21 files) - see config/AGENTS.md
├── mcp/ # MCP server configs (7 files) ├── features/ # Background agents, skills, commands (17 dirs) - see features/AGENTS.md
├── plugin-handlers/ # Config loading (3 files) ├── hooks/ # 40+ lifecycle hooks (30+ dirs) - see hooks/AGENTS.md
├── shared/ # Utilities (70 files) ├── mcp/ # Built-in MCPs (8 files) - see mcp/AGENTS.md
└── tools/ # 25+ tools (15 files) ├── plugin/ # Plugin SDK types
├── plugin-handlers/ # Plugin config loading (5 files) - see plugin-handlers/AGENTS.md
├── shared/ # Cross-cutting utilities (84 files) - see shared/AGENTS.md
└── tools/ # 25+ tools (14 dirs) - see tools/AGENTS.md
``` ```
## KEY COMPONENTS ## KEY COMPONENTS
**Plugin Initialization:** **Plugin Initialization:**
- `OhMyOpenCodePlugin()`: Main plugin factory (lines 124-841) - `OhMyOpenCodePlugin()`: Main plugin factory
- Configuration loading via `loadPluginConfig()` - Configuration loading via `loadPluginConfig()`
- Hook registration with safe creation patterns - Hook registration with safe creation patterns
- Tool composition and disabled tool filtering - Tool composition and disabled tool filtering
@ -49,13 +49,7 @@ src/
- Tool filtering based on agent permissions and user config - Tool filtering based on agent permissions and user config
- Metadata restoration for tool outputs - Metadata restoration for tool outputs
**Integration Points:** ## HOOK REGISTRATION
- Claude Code compatibility hooks and commands
- OpenCode SDK client interactions
- Session state persistence and recovery
- Model variant resolution and application
## HOOK REGISTRATION PATTERNS
**Safe Hook Creation:** **Safe Hook Creation:**
```typescript ```typescript
@ -68,61 +62,27 @@ const hook = isHookEnabled("hook-name")
- **Session Management**: recovery, notification, compaction - **Session Management**: recovery, notification, compaction
- **Continuation**: todo/task enforcers, stop guards - **Continuation**: todo/task enforcers, stop guards
- **Context**: injection, rules, directory content - **Context**: injection, rules, directory content
- **Tool Enhancement**: output truncation, error recovery, validation - **Tool Enhancement**: output truncation, error recovery
- **Agent Coordination**: usage reminders, babysitting, delegation - **Agent Coordination**: usage reminders, babysitting, delegation
## TOOL COMPOSITION ## TOOL COMPOSITION
**Core Tools:**
```typescript ```typescript
const allTools: Record<string, ToolDefinition> = { const allTools: Record<string, ToolDefinition> = {
...builtinTools, // Basic file/session operations ...builtinTools,
...createGrepTools(ctx), // Content search ...createGrepTools(ctx),
...createAstGrepTools(ctx), // AST-aware refactoring ...createAstGrepTools(ctx),
task: delegateTask, // Agent delegation task: delegateTask,
skill: skillTool, // Skill execution skill: skillTool,
// ... 20+ more tools
}; };
``` ```
**Tool Filtering:** **Filtering:** Agent permissions, user `disabled_tools`, session state.
- Agent permission-based restrictions
- User-configured disabled tools
- Dynamic tool availability based on session state
## SESSION LIFECYCLE ## LIFECYCLE FLOW
**Session Events:**
- `session.created`: Initialize session state, tmux setup
- `session.deleted`: Cleanup resources, clear caches
- `message.updated`: Update agent assignments
- `session.error`: Trigger recovery mechanisms
**Continuation Flow:**
1. User message triggers agent selection 1. User message triggers agent selection
2. Model/variant resolution applied 2. Model/variant resolution applied
3. Tools execute with hook interception 3. Tools execute with hook interception
4. Continuation enforcers monitor completion 4. Continuation enforcers monitor completion
5. Session compaction preserves context 5. Session compaction preserves context
## CONFIGURATION INTEGRATION
**Plugin Config Loading:**
- Project + user config merging
- Schema validation via Zod
- Migration support for legacy configs
- Dynamic feature enablement
**Runtime Configuration:**
- Hook enablement based on `disabled_hooks`
- Tool filtering via `disabled_tools`
- Agent overrides and category definitions
- Experimental feature toggles
## ANTI-PATTERNS
- **Direct hook exports**: All hooks created via factories for testability
- **Global state pollution**: Session-scoped state management
- **Synchronous blocking**: Async-first architecture with background coordination
- **Tight coupling**: Plugin components communicate via events, not direct calls
- **Memory leaks**: Proper cleanup on session deletion and plugin unload

View File

@ -30,18 +30,19 @@ agents/
│ ├── index.ts │ ├── index.ts
│ ├── default.ts │ ├── default.ts
│ └── gpt.ts │ └── gpt.ts
├── sisyphus.ts # Main orchestrator prompt (530 lines) ├── sisyphus.ts # Main orchestrator (530 lines)
├── hephaestus.ts # Autonomous deep worker (618 lines, GPT 5.3 Codex) ├── hephaestus.ts # Autonomous deep worker (618 lines)
├── oracle.ts # Strategic advisor (GPT-5.2) ├── oracle.ts # Strategic advisor (170 lines)
├── librarian.ts # Multi-repo research (328 lines) ├── librarian.ts # Multi-repo research (328 lines)
├── explore.ts # Fast contextual grep ├── explore.ts # Fast codebase grep (124 lines)
├── multimodal-looker.ts # Media analyzer (Gemini 3 Flash) ├── multimodal-looker.ts # Media analyzer (58 lines)
├── metis.ts # Pre-planning analysis (347 lines) ├── metis.ts # Pre-planning analysis (346 lines)
├── momus.ts # Plan reviewer ├── momus.ts # Plan validator (243 lines)
├── dynamic-agent-prompt-builder.ts # Dynamic prompt generation (431 lines) ├── dynamic-agent-prompt-builder.ts # Dynamic prompt generation (431 lines)
├── builtin-agents.ts # Agent registry (179 lines)
├── types.ts # AgentModelConfig, AgentPromptMetadata ├── types.ts # AgentModelConfig, AgentPromptMetadata
├── utils.ts # createBuiltinAgents(), resolveModelWithFallback() (485 lines) ├── utils.ts # Agent creation, model fallback resolution (571 lines)
└── index.ts # builtinAgents export └── index.ts # Exports
``` ```
## AGENT MODELS ## AGENT MODELS

View File

@ -2,7 +2,7 @@
## OVERVIEW ## OVERVIEW
CLI entry: `bunx oh-my-opencode`. 70 CLI utilities and commands with Commander.js + @clack/prompts TUI. CLI entry: `bunx oh-my-opencode`. 107 CLI utilities with Commander.js + @clack/prompts TUI.
**Commands**: install (interactive setup), doctor (14 health checks), run (session launcher), get-local-version, mcp-oauth **Commands**: install (interactive setup), doctor (14 health checks), run (session launcher), get-local-version, mcp-oauth
@ -10,33 +10,22 @@ CLI entry: `bunx oh-my-opencode`. 70 CLI utilities and commands with Commander.j
``` ```
cli/ cli/
├── index.ts # Commander.js entry (5 commands) ├── index.ts # Commander.js entry (5 commands)
├── install.ts # Interactive TUI (542 lines) ├── install.ts # TTY routing to TUI or CLI installer
├── config-manager.ts # JSONC parsing (667 lines) ├── cli-installer.ts # Non-interactive installer (164 lines)
├── model-fallback.ts # Model fallback configuration ├── tui-installer.ts # Interactive TUI with @clack/prompts (140 lines)
├── types.ts # InstallArgs, InstallConfig ├── config-manager/ # Config management utilities (17 files)
├── model-fallback.ts # Model fallback configuration
├── model-fallback.test.ts # Fallback tests (523 lines)
├── doctor/ ├── doctor/
│ ├── index.ts # Doctor entry │ ├── runner.ts # Check orchestration
│ ├── runner.ts # Check orchestration │ ├── formatter.ts # Colored output
│ ├── formatter.ts # Colored output │ └── checks/ # 29 files with individual checks
│ ├── constants.ts # Check IDs, symbols ├── run/ # Session launcher (24 files)
│ ├── types.ts # CheckResult, CheckDefinition │ ├── events.ts # CLI run events
│ └── checks/ # 14 checks, 23 files │ └── runner.ts # Run orchestration
│ ├── version.ts # OpenCode + plugin version ├── mcp-oauth/ # OAuth flow
│ ├── config.ts # JSONC validity, Zod └── get-local-version/ # Version detection
│ ├── auth.ts # Anthropic, OpenAI, Google
│ ├── dependencies.ts # AST-Grep, Comment Checker
│ ├── lsp.ts # LSP connectivity
│ ├── mcp.ts # MCP validation
│ ├── model-resolution.ts # Model resolution check (323 lines)
│ └── gh.ts # GitHub CLI
├── run/
│ ├── index.ts # Session launcher
│ └── events.ts # CLI run events (325 lines)
├── mcp-oauth/
│ └── index.ts # MCP OAuth flow
└── get-local-version/
└── index.ts # Version detection
``` ```
## COMMANDS ## COMMANDS
@ -70,11 +59,11 @@ cli/
- **@clack/prompts**: `select()`, `spinner()`, `intro()`, `outro()` - **@clack/prompts**: `select()`, `spinner()`, `intro()`, `outro()`
- **picocolors**: Terminal colors for status and headers - **picocolors**: Terminal colors for status and headers
- **Symbols**: ✓ (pass), ✗ (fail), ⚠ (warn), (info) - **Symbols**: check (pass), cross (fail), warning (warn), info (info)
## ANTI-PATTERNS ## ANTI-PATTERNS
- **Blocking in non-TTY**: Always check `process.stdout.isTTY` - **Blocking in non-TTY**: Always check `process.stdout.isTTY`
- **Direct JSON.parse**: Use `parseJsonc()` from shared utils - **Direct JSON.parse**: Use `parseJsonc()` from shared utils
- **Silent failures**: Return `warn` or `fail` in doctor instead of throwing - **Silent failures**: Return `warn` or `fail` in doctor instead of throwing
- **Hardcoded paths**: Use `getOpenCodeConfigPaths()` from `config-manager.ts` - **Hardcoded paths**: Use `getOpenCodeConfigPaths()` from `config-manager`

View File

@ -1,5 +1,5 @@
**Generated:** 2026-02-08T16:45:00+09:00 **Generated:** 2026-02-09T14:16:00+09:00
**Commit:** f2b7b759 **Commit:** f22f14d9
**Branch:** dev **Branch:** dev
## OVERVIEW ## OVERVIEW
@ -7,33 +7,27 @@
Zod schema definitions for plugin configuration. 455+ lines of type-safe config validation with JSONC support, multi-level inheritance, and comprehensive agent/category overrides. Zod schema definitions for plugin configuration. 455+ lines of type-safe config validation with JSONC support, multi-level inheritance, and comprehensive agent/category overrides.
## STRUCTURE ## STRUCTURE
``` ```
config/ config/
├── schema.ts # Main Zod schema (455 lines) - agents, categories, experimental features ├── schema/ # Schema components (21 files)
├── schema.test.ts # Schema validation tests (17909 lines) │ ├── index.ts # Main schema composition
└── index.ts # Barrel export │ └── [module].ts # Agent names, overrides, categories, hooks, etc.
├── schema.ts # Main Zod schema (455 lines)
├── schema.test.ts # Schema validation tests (735 lines)
├── types.ts # TypeScript types
└── index.ts # Barrel export
``` ```
## SCHEMA COMPONENTS ## SCHEMA COMPONENTS
**Agent Configuration:** **Agent Config:** `AgentOverrideConfigSchema`, `AgentOverridesSchema`, `AgentPermissionSchema`
- `AgentOverrideConfigSchema`: Model, variant, temperature, permissions, tools
- `AgentOverridesSchema`: Per-agent overrides (sisyphus, hephaestus, prometheus, etc.)
- `AgentPermissionSchema`: Tool access control (edit, bash, webfetch, task)
**Category Configuration:** **Category Config:** `CategoryConfigSchema`, `CategoriesConfigSchema` (visual-engineering, ultrabrain, deep)
- `CategoryConfigSchema`: Model defaults, thinking budgets, tool restrictions
- `CategoriesConfigSchema`: Named categories (visual-engineering, ultrabrain, deep, etc.)
**Experimental Features:** **Experimental:** `ExperimentalConfigSchema`, `DynamicContextPruningConfigSchema`
- `ExperimentalConfigSchema`: Dynamic context pruning, task system, plugin timeouts
- `DynamicContextPruningConfigSchema`: Intelligent context management
**Built-in Enums:** **Built-in Enums:** `AgentNameSchema` (11 agents), `HookNameSchema` (100+ hooks), `BuiltinCommandNameSchema`, `BuiltinSkillNameSchema`
- `AgentNameSchema`: sisyphus, hephaestus, prometheus, oracle, librarian, explore, multimodal-looker, metis, momus, atlas
- `HookNameSchema`: 100+ hook names for lifecycle management
- `BuiltinCommandNameSchema`: init-deep, ralph-loop, refactor, start-work
- `BuiltinSkillNameSchema`: playwright, agent-browser, git-master
## CONFIGURATION HIERARCHY ## CONFIGURATION HIERARCHY

View File

@ -2,29 +2,61 @@
## OVERVIEW ## OVERVIEW
Background agents, skills, Claude Code compat, builtin commands, MCP managers, etc. Background systems that extend plugin capabilities: agents, skills, Claude Code compatibility layer, MCP managers, and task orchestration.
## STRUCTURE ## STRUCTURE
```
features/ features/
├── background-agent/ # Task lifecycle, concurrency (manager.ts 1642 lines) ├── background-agent/ # Task lifecycle, concurrency (manager.ts 1646 lines, concurrency.ts)
├── builtin-skills/ # Skills like git-master (1107 lines) ├── boulder-state/ # Persistent state for multi-step operations
├── builtin-commands/ # Commands like refactor (619 lines) ├── builtin-commands/ # Command templates: refactor (619 lines), ralph-loop, handoff, init-deep
├── skill-mcp-manager/ # MCP client lifecycle (640 lines) ├── builtin-skills/ # Skills: git-master (1111 lines), playwright, dev-browser, frontend-ui-ux
├── claude-code-plugin-loader/ # Plugin loading ├── claude-code-agent-loader/ # CC agent loading from .opencode/agents/
├── claude-code-mcp-loader/ # MCP loading ├── claude-code-command-loader/ # CC command loading from .opencode/commands/
├── claude-code-session-state/ # Session state ├── claude-code-mcp-loader/ # CC MCP loading from .opencode/mcp/
├── claude-code-command-loader/ # Command loading ├── claude-code-plugin-loader/ # CC plugin discovery from .opencode/plugins/
├── claude-code-agent-loader/ # Agent loading ├── claude-code-session-state/ # Subagent session state tracking
├── context-injector/ # Context injection ├── claude-tasks/ # Task schema + storage (has own AGENTS.md)
├── hook-message-injector/ # Message injection ├── context-injector/ # Auto-injects AGENTS.md, README.md, rules
├── task-toast-manager/ # Task toasts ├── hook-message-injector/ # System message injection
├── boulder-state/ # State management ├── mcp-oauth/ # OAuth flow for MCP servers
├── tmux-subagent/ # Tmux subagent ├── opencode-skill-loader/ # YAML frontmatter skill loading
├── mcp-oauth/ # OAuth for MCP ├── skill-mcp-manager/ # MCP client lifecycle per session (manager.ts 150 lines)
├── opencode-skill-loader/ # Skill loading ├── task-toast-manager/ # Task progress notifications
├── tool-metadata-store/ # Tool metadata ├── tmux-subagent/ # Tmux integration (manager.ts 350 lines)
└── tool-metadata-store/ # Tool execution metadata caching
```
## KEY PATTERNS
**Background Agent Lifecycle:**
- Task creation -> Queue -> Concurrency check -> Execute -> Monitor -> Cleanup
- Manager.ts handles full lifecycle with 1646 lines of task orchestration
- Concurrency.ts manages parallel execution limits per provider/model
- Tasks survive session restarts via persistent storage
**Claude Code Compatibility Layer:**
5 directories provide full CC compatibility:
- agent-loader: Loads custom agents from .opencode/agents/
- command-loader: Loads slash commands from .opencode/commands/
- mcp-loader: Loads MCP servers from .opencode/mcp/
- plugin-loader: Discovers plugins from .opencode/plugins/
- session-state: Tracks subagent session state and recovery
**Skill Loading Pipeline:**
1. opencode-skill-loader: Parses YAML frontmatter from skill files
2. skill-mcp-manager: Manages MCP lifecycle per skill session (manager.ts 150 lines)
3. Context injection: Auto-loads AGENTS.md, README.md, rules into context
4. Hook message injector: Injects system messages for skill activation
## HOW TO ADD ## HOW TO ADD
Create dir with index.ts, types.ts, etc. 1. Create directory under `src/features/`
2. Add `index.ts`, `types.ts`, `constants.ts` as needed
3. Export from `index.ts` following barrel pattern
4. Register in main plugin if plugin-level feature
## CHILD DOCUMENTATION
- See `claude-tasks/AGENTS.md` for task schema and storage details

View File

@ -8,12 +8,13 @@ Claude Code compatible task schema and storage. Provides core task management ut
``` ```
claude-tasks/ claude-tasks/
├── types.ts # Task schema (Zod) ├── types.ts # Task schema (Zod)
├── types.test.ts # Schema validation tests (8 tests) ├── types.test.ts # Schema validation tests (8 tests)
├── storage.ts # File operations ├── storage.ts # File operations
├── storage.test.ts # Storage tests (14 tests) ├── storage.test.ts # Storage tests (30 tests, 543 lines)
├── todo-sync.ts # Task → Todo synchronization ├── session-storage.ts # Session-scoped task storage
└── index.ts # Barrel exports ├── session-storage.test.ts
└── index.ts # Barrel exports
``` ```
## TASK SCHEMA ## TASK SCHEMA
@ -31,9 +32,6 @@ interface Task {
blockedBy: string[] // Task IDs blocking this task (was: dependsOn) blockedBy: string[] // Task IDs blocking this task (was: dependsOn)
owner?: string // Agent name owner?: string // Agent name
metadata?: Record<string, unknown> metadata?: Record<string, unknown>
repoURL?: string // oh-my-opencode specific
parentID?: string // oh-my-opencode specific
threadID: string // oh-my-opencode specific
} }
``` ```
@ -43,14 +41,6 @@ interface Task {
- `blocks` (new field) - `blocks` (new field)
- `activeForm` (new field) - `activeForm` (new field)
## TODO SYNC
Task system includes sync layer (`todo-sync.ts`) that automatically mirrors task state to the project's Todo system.
- **Creation**: `task_create` adds corresponding Todo item
- **Updates**: `task_update` reflects in Todo list
- **Completion**: `completed` status marks Todo item done
## STORAGE UTILITIES ## STORAGE UTILITIES
| Function | Purpose | | Function | Purpose |
@ -60,6 +50,11 @@ Task system includes sync layer (`todo-sync.ts`) that automatically mirrors task
| `readJsonSafe(path, schema)` | Parse + validate, returns null on failure | | `readJsonSafe(path, schema)` | Parse + validate, returns null on failure |
| `writeJsonAtomic(path, data)` | Atomic write via temp file + rename | | `writeJsonAtomic(path, data)` | Atomic write via temp file + rename |
| `acquireLock(dirPath)` | File-based lock with 30s stale threshold | | `acquireLock(dirPath)` | File-based lock with 30s stale threshold |
| `generateTaskId()` | Generates `T-{uuid}` task ID |
| `listTaskFiles(config)` | Lists all task IDs in storage |
| `getSessionTaskDir(config, sessionID)` | Returns session-scoped task directory |
| `listSessionTaskFiles(config, sessionID)` | Lists tasks for specific session |
| `findTaskAcrossSessions(config, taskId)` | Locates task in any session directory |
## ANTI-PATTERNS ## ANTI-PATTERNS

View File

@ -14,46 +14,48 @@
## STRUCTURE ## STRUCTURE
``` ```
hooks/ hooks/
├── atlas/ # Main orchestration (770 lines) ├── agent-usage-reminder/ # Specialized agent hints (212 lines)
├── anthropic-context-window-limit-recovery/ # Auto-summarize ├── anthropic-context-window-limit-recovery/ # Auto-summarize on limit (2232 lines)
├── todo-continuation-enforcer.ts # Force TODO completion (517 lines) ├── anthropic-effort/ # Anthropic effort level management (272 lines)
├── ralph-loop/ # Self-referential dev loop (428 lines) ├── atlas/ # Main orchestration hook (1976 lines)
├── claude-code-hooks/ # settings.json compat layer - see AGENTS.md ├── auto-slash-command/ # Detects /command patterns (1134 lines)
├── comment-checker/ # Prevents AI slop ├── auto-update-checker/ # Plugin update check (1140 lines)
├── auto-slash-command/ # Detects /command patterns ├── background-notification/ # OS notifications (33 lines)
├── rules-injector/ # Conditional rules ├── category-skill-reminder/ # Reminds of category skills (597 lines)
├── directory-agents-injector/ # Auto-injects AGENTS.md ├── claude-code-hooks/ # settings.json compat - see AGENTS.md (2110 lines)
├── directory-readme-injector/ # Auto-injects README.md ├── comment-checker/ # Prevents AI slop comments (710 lines)
├── edit-error-recovery/ # Recovers from failures ├── compaction-context-injector/ # Injects context on compaction (128 lines)
├── thinking-block-validator/ # Ensures valid <thinking> ├── compaction-todo-preserver/ # Preserves todos during compaction (203 lines)
├── context-window-monitor.ts # Reminds of headroom ├── context-window-monitor.ts # Reminds of headroom (99 lines)
├── session-recovery/ # Auto-recovers from crashes (436 lines) ├── delegate-task-retry/ # Retries failed delegations (266 lines)
├── session-notification.ts # Session event notifications (337 lines) ├── directory-agents-injector/ # Auto-injects AGENTS.md (195 lines)
├── think-mode/ # Dynamic thinking budget ├── directory-readme-injector/ # Auto-injects README.md (190 lines)
├── keyword-detector/ # ultrawork/search/analyze modes ├── edit-error-recovery/ # Recovers from edit failures (188 lines)
├── background-notification/ # OS notification ├── empty-task-response-detector.ts # Detects empty responses (27 lines)
├── prometheus-md-only/ # Planner read-only mode ├── index.ts # Hook aggregation + registration (46 lines)
├── agent-usage-reminder/ # Specialized agent hints ├── interactive-bash-session/ # Tmux session management (695 lines)
├── auto-update-checker/ # Plugin update check (304 lines) ├── keyword-detector/ # ultrawork/search/analyze modes (1665 lines)
├── tool-output-truncator.ts # Prevents context bloat ├── non-interactive-env/ # Non-TTY environment handling (483 lines)
├── compaction-context-injector/ # Injects context on compaction ├── preemptive-compaction.ts # Preemptive context compaction (108 lines)
├── delegate-task-retry/ # Retries failed delegations ├── prometheus-md-only/ # Planner read-only mode (955 lines)
├── interactive-bash-session/ # Tmux session management ├── question-label-truncator/ # Auto-truncates question labels (199 lines)
├── non-interactive-env/ # Non-TTY environment handling ├── ralph-loop/ # Self-referential dev loop (1687 lines)
├── start-work/ # Sisyphus work session starter ├── rules-injector/ # Conditional rules injection (1604 lines)
├── task-resume-info/ # Resume info for cancelled tasks ├── session-notification.ts # Session event notifications (108 lines)
├── question-label-truncator/ # Auto-truncates question labels ├── session-recovery/ # Auto-recovers from crashes (1279 lines)
├── category-skill-reminder/ # Reminds of category skills ├── sisyphus-junior-notepad/ # Sisyphus Junior notepad (76 lines)
├── empty-task-response-detector.ts # Detects empty responses ├── start-work/ # Sisyphus work session starter (648 lines)
├── sisyphus-junior-notepad/ # Sisyphus Junior notepad ├── stop-continuation-guard/ # Guards stop continuation (214 lines)
├── stop-continuation-guard/ # Guards stop continuation ├── subagent-question-blocker/ # Blocks subagent questions (112 lines)
├── subagent-question-blocker/ # Blocks subagent questions ├── task-reminder/ # Task progress reminders (210 lines)
├── task-reminder/ # Task progress reminders ├── task-resume-info/ # Resume info for cancelled tasks (39 lines)
├── tasks-todowrite-disabler/ # Disables TodoWrite when task system active ├── tasks-todowrite-disabler/ # Disables TodoWrite when tasks active (202 lines)
├── unstable-agent-babysitter/ # Monitors unstable agent behavior ├── think-mode/ # Dynamic thinking budget (1365 lines)
├── write-existing-file-guard/ # Guards against overwriting existing files ├── thinking-block-validator/ # Ensures valid <thinking> blocks (169 lines)
├── preemptive-compaction.ts # Preemptive context compaction ├── todo-continuation-enforcer/ # Force TODO completion (2061 lines)
└── index.ts # Hook aggregation + registration ├── tool-output-truncator.ts # Prevents context bloat (62 lines)
├── unstable-agent-babysitter/ # Monitors unstable agent behavior (451 lines)
└── write-existing-file-guard/ # Guards against overwriting files (356 lines)
``` ```
## HOOK EVENTS ## HOOK EVENTS

View File

@ -9,18 +9,22 @@ Full Claude Code `settings.json` hook compatibility layer. Intercepts OpenCode e
## STRUCTURE ## STRUCTURE
``` ```
claude-code-hooks/ claude-code-hooks/
├── index.ts # Main factory (421 lines) ├── index.ts # Barrel export
├── config.ts # Loads ~/.claude/settings.json ├── claude-code-hooks-hook.ts # Main factory
├── config-loader.ts # Extended config (disabledHooks) ├── config.ts # Claude settings.json loader
├── pre-tool-use.ts # PreToolUse executor ├── config-loader.ts # Extended plugin config
├── post-tool-use.ts # PostToolUse executor ├── pre-tool-use.ts # PreToolUse hook executor
├── post-tool-use.ts # PostToolUse hook executor
├── user-prompt-submit.ts # UserPromptSubmit executor ├── user-prompt-submit.ts # UserPromptSubmit executor
├── stop.ts # Stop hook executor (with active state tracking) ├── stop.ts # Stop hook executor
├── pre-compact.ts # PreCompact executor ├── pre-compact.ts # PreCompact executor
├── transcript.ts # Tool use recording ├── transcript.ts # Tool use recording
├── tool-input-cache.ts # Pre→post input caching ├── tool-input-cache.ts # Pre→post input caching
├── todo.ts # Todo integration ├── todo.ts # Todo integration
└── types.ts # Hook & IO type definitions ├── session-hook-state.ts # Active state tracking
├── types.ts # Hook & IO type definitions
├── plugin-config.ts # Default config constants
└── handlers/ # Event handlers (5 files)
``` ```
## HOOK LIFECYCLE ## HOOK LIFECYCLE
@ -44,4 +48,4 @@ claude-code-hooks/
- **Heavy PreToolUse**: Runs before EVERY tool; keep logic light to avoid latency - **Heavy PreToolUse**: Runs before EVERY tool; keep logic light to avoid latency
- **Blocking non-critical**: Prefer PostToolUse warnings for non-fatal issues - **Blocking non-critical**: Prefer PostToolUse warnings for non-fatal issues
- **Direct state mutation**: Use `updatedInput` in PreToolUse instead of side effects - **Direct state mutation**: Use `updatedInput` in PreToolUse instead of side effects
- **Ignoring Exit Codes**: Ensure scripts return `2` to properly block sensitive tools - **Ignoring Exit Codes**: Ensure scripts return `2` to properly block sensitive tools

View File

@ -2,7 +2,7 @@
## OVERVIEW ## OVERVIEW
Tier 1 of three-tier MCP system: 8 built-in remote HTTP MCPs. Tier 1 of three-tier MCP system: 3 built-in remote HTTP MCPs.
**Three-Tier System**: **Three-Tier System**:
1. **Built-in** (this directory): websearch, context7, grep_app 1. **Built-in** (this directory): websearch, context7, grep_app
@ -25,7 +25,7 @@ mcp/
| Name | URL | Purpose | Auth | | Name | URL | Purpose | Auth |
|------|-----|---------|------| |------|-----|---------|------|
| websearch | mcp.exa.ai / mcp.tavily.com | Real-time web search | EXA_API_KEY / TAVILY_API_KEY | | websearch | mcp.exa.ai/mcp?tools=web_search_exa or mcp.tavily.com/mcp/ | Real-time web search | EXA_API_KEY (optional) / TAVILY_API_KEY (required) |
| context7 | mcp.context7.com/mcp | Library docs | CONTEXT7_API_KEY (optional) | | context7 | mcp.context7.com/mcp | Library docs | CONTEXT7_API_KEY (optional) |
| grep_app | mcp.grep.app | GitHub code search | None | | grep_app | mcp.grep.app | GitHub code search | None |
@ -33,8 +33,8 @@ mcp/
| Provider | URL | Auth | API Key Required | | Provider | URL | Auth | API Key Required |
|----------|-----|------|------------------| |----------|-----|------|------------------|
| exa (default) | mcp.exa.ai | x-api-key header | No (optional) | | exa (default) | mcp.exa.ai/mcp?tools=web_search_exa | query param | No (optional) |
| tavily | mcp.tavily.com | Authorization Bearer | Yes | | tavily | mcp.tavily.com/mcp/ | Authorization Bearer | Yes |
```jsonc ```jsonc
{ {
@ -58,9 +58,9 @@ export const mcp_name = {
## HOW TO ADD ## HOW TO ADD
1. Create `src/mcp/my-mcp.ts` 1. Create `src/mcp/my-mcp.ts` with MCP config object
2. Add to `allBuiltinMcps` in `index.ts` 2. Add conditional check in `createBuiltinMcps()` in `index.ts`
3. Add to `McpNameSchema` in `types.ts` 3. Add name to `McpNameSchema` in `types.ts`
## NOTES ## NOTES

View File

@ -1,5 +1,5 @@
**Generated:** 2026-02-08T16:45:00+09:00 **Generated:** 2026-02-09T14:16:00+09:00
**Commit:** f2b7b759 **Commit:** f22f14d9
**Branch:** dev **Branch:** dev
## OVERVIEW ## OVERVIEW
@ -10,7 +10,7 @@ Plugin component loading and configuration orchestration. 500+ lines of config m
``` ```
plugin-handlers/ plugin-handlers/
├── config-handler.ts # Main config orchestrator (563 lines) - agent/skill/command loading ├── config-handler.ts # Main config orchestrator (563 lines) - agent/skill/command loading
├── config-handler.test.ts # Config handler tests (34426 lines) ├── config-handler.test.ts # Config handler tests (1061 lines)
├── plan-model-inheritance.ts # Plan agent model inheritance logic (657 lines) ├── plan-model-inheritance.ts # Plan agent model inheritance logic (657 lines)
├── plan-model-inheritance.test.ts # Inheritance tests (3696 lines) ├── plan-model-inheritance.test.ts # Inheritance tests (3696 lines)
└── index.ts # Barrel export └── index.ts # Barrel export
@ -62,7 +62,7 @@ User Config → Migration → Merging → Validation → Agent Creation → Perm
## TESTING COVERAGE ## TESTING COVERAGE
- **Config Handler**: 34426 lines of tests - **Config Handler**: 1061 lines of tests
- **Plan Inheritance**: 3696 lines of tests - **Plan Inheritance**: 3696 lines of tests
- **Migration Logic**: Legacy compatibility verification - **Migration Logic**: Legacy compatibility verification
- **Parallel Loading**: Timeout and error handling - **Parallel Loading**: Timeout and error handling

View File

@ -9,20 +9,21 @@
## STRUCTURE ## STRUCTURE
``` ```
shared/ shared/
├── tmux/ # Tmux TUI integration (types, utils 312 lines, constants) ├── git-worktree/ # Git worktree operations (311 lines)
├── tmux/ # Tmux TUI integration (227 lines)
├── logger.ts # File-based logging (/tmp/oh-my-opencode.log) - 53 imports ├── logger.ts # File-based logging (/tmp/oh-my-opencode.log) - 53 imports
├── dynamic-truncator.ts # Token-aware context window management (194 lines) ├── dynamic-truncator.ts # Token-aware context window management (201 lines)
├── model-resolver.ts # 3-step resolution (Override → Fallback → Default) ├── model-resolver.ts # 3-step resolution (Override → Fallback → Default)
├── model-requirements.ts # Agent/category model fallback chains (162 lines) ├── model-requirements.ts # Agent/category model fallback chains (160 lines)
├── model-availability.ts # Provider model fetching & fuzzy matching (357 lines) ├── model-availability.ts # Provider model fetching & fuzzy matching (358 lines)
├── model-sanitizer.ts # Model name sanitization ├── model-sanitizer.ts # Model name sanitization
├── model-suggestion-retry.ts # Model suggestion on failure ├── model-suggestion-retry.ts # Model suggestion on failure
├── jsonc-parser.ts # JSONC parsing with comment support ├── jsonc-parser.ts # JSONC parsing with comment support
├── frontmatter.ts # YAML frontmatter extraction (JSON_SCHEMA only) - 9 imports ├── frontmatter.ts # YAML frontmatter extraction (JSON_SCHEMA only) - 9 imports
├── data-path.ts # XDG-compliant storage resolution ├── data-path.ts # XDG-compliant storage resolution
├── opencode-config-dir.ts # ~/.config/opencode resolution (143 lines) - 9 imports ├── opencode-config-dir.ts # ~/.config/opencode resolution (138 lines) - 9 imports
├── claude-config-dir.ts # ~/.claude resolution - 9 imports ├── claude-config-dir.ts # ~/.claude resolution - 9 imports
├── migration.ts # Legacy config migration logic (231 lines) ├── migration.ts # Legacy config migration logic (341 lines across dir)
├── opencode-version.ts # Semantic version comparison ├── opencode-version.ts # Semantic version comparison
├── permission-compat.ts # Agent tool restriction enforcement - 6 imports ├── permission-compat.ts # Agent tool restriction enforcement - 6 imports
├── system-directive.ts # Unified system message prefix & types - 8 imports ├── system-directive.ts # Unified system message prefix & types - 8 imports
@ -32,8 +33,7 @@ shared/
├── agent-variant.ts # Agent variant from config ├── agent-variant.ts # Agent variant from config
├── zip-extractor.ts # Binary/Resource ZIP extraction ├── zip-extractor.ts # Binary/Resource ZIP extraction
├── deep-merge.ts # Recursive object merging (proto-pollution safe, MAX_DEPTH=50) ├── deep-merge.ts # Recursive object merging (proto-pollution safe, MAX_DEPTH=50)
├── case-insensitive.ts # Case-insensitive object lookups ├── command-executor.ts # Shell command execution (213 lines across dir)
├── command-executor.ts # Shell command execution (225 lines)
├── snake-case.ts # Case conversion utilities ├── snake-case.ts # Case conversion utilities
├── tool-name.ts # Tool naming conventions ├── tool-name.ts # Tool naming conventions
├── pattern-matcher.ts # Pattern matching utilities ├── pattern-matcher.ts # Pattern matching utilities

View File

@ -2,9 +2,9 @@
## OVERVIEW ## OVERVIEW
113 tools across 8 categories. Two patterns: Direct ToolDefinition (static) and Factory Function (context-dependent). 25+ tools across 14 directories. Two patterns: Direct ToolDefinition (static) and Factory Function (context-dependent).
**Categories**: LSP (6), AST-Grep (2), Search (2), Session (4), Task (4), Agent delegation (2), Background (2), Skill (3), System (2) **Categories**: LSP (6), AST-Grep (2), Search (2), Session (4), Task (4), Agent delegation (1), Background (2), Skill (2), System (2), MCP (1), Command (1)
## STRUCTURE ## STRUCTURE
@ -15,20 +15,20 @@ tools/
│ ├── tools.ts # ToolDefinition or factory │ ├── tools.ts # ToolDefinition or factory
│ ├── types.ts # Zod schemas │ ├── types.ts # Zod schemas
│ └── constants.ts # Fixed values │ └── constants.ts # Fixed values
├── lsp/ # 6 tools: definition, references, symbols, diagnostics, rename (client.ts 803 lines) ├── lsp/ # 6 tools: goto_definition, find_references, symbols, diagnostics, prepare_rename, rename
├── ast-grep/ # 2 tools: search, replace (25 languages) ├── ast-grep/ # 2 tools: search, replace (25 languages)
├── delegate-task/ # Category-based routing (executor.ts 983 lines, constants.ts 552 lines) ├── delegate-task/ # Category routing (constants.ts 569 lines, tools.test.ts 3582 lines)
├── task/ # 4 tools: create, get, list, update (Claude Code compatible) ├── task/ # 4 tools: create, get, list, update (Claude Code compatible)
├── session-manager/ # 4 tools: list, read, search, info ├── session-manager/ # 4 tools: list, read, search, info
├── grep/ # Custom grep with timeout (60s, 10MB) ├── grep/ # Custom grep (60s timeout, 10MB limit)
├── glob/ # 60s timeout, 100 file limit ├── glob/ # 60s timeout, 100 file limit
├── interactive-bash/ # Tmux session management ├── interactive-bash/ # Tmux session management
├── look-at/ # Multimodal PDF/image (307 lines) ├── look-at/ # Multimodal PDF/image analysis
├── skill/ # Skill execution ├── skill/ # Skill execution
├── skill-mcp/ # Skill MCP operations ├── skill-mcp/ # Skill MCP operations
├── slashcommand/ # Slash command dispatch ├── slashcommand/ # Slash command dispatch
├── call-omo-agent/ # Direct agent invocation (358 lines) ├── call-omo-agent/ # Direct agent invocation
└── background-task/ # background_output, background_cancel (734 lines) └── background-task/ # background_output, background_cancel
``` ```
## TOOL CATEGORIES ## TOOL CATEGORIES
@ -39,10 +39,11 @@ tools/
| Search | ast_grep_search, ast_grep_replace, grep, glob | Direct | | Search | ast_grep_search, ast_grep_replace, grep, glob | Direct |
| Session | session_list, session_read, session_search, session_info | Direct | | Session | session_list, session_read, session_search, session_info | Direct |
| Task | task_create, task_get, task_list, task_update | Factory | | Task | task_create, task_get, task_list, task_update | Factory |
| Agent | task, call_omo_agent | Factory | | Agent | call_omo_agent | Factory |
| Background | background_output, background_cancel | Factory | | Background | background_output, background_cancel | Factory |
| System | interactive_bash, look_at | Mixed | | System | interactive_bash, look_at | Mixed |
| Skill | skill, skill_mcp, slashcommand | Factory | | Skill | skill, skill_mcp | Factory |
| Command | slashcommand | Factory |
## TASK TOOLS ## TASK TOOLS