$npx -y skills add agentscope-ai/QwenPaw --skill omp-rolesWhen using spawn_subagent (single or batch mode) to dispatch sub-agents, set the corresponding allowed_tools and skills parameters based on the sub-agent's role.
| 1 | # OMP Role Tool Configuration |
| 2 | |
| 3 | When using spawn_subagent (single or batch mode) to dispatch sub-agents, |
| 4 | set the corresponding allowed_tools and skills parameters based on the |
| 5 | sub-agent's role. |
| 6 | |
| 7 | **Canonical source of truth in code:** |
| 8 | `plugins/bundle/omp_workflows/shared/constants.py` |
| 9 | (`ROLE_ALLOWED_TOOLS`, `ROLE_SKILLS`, `TOOL_*` names) and |
| 10 | `shared/role_prompts.py` (`ROLE_PROMPTS`, `build_worker_prompt`, |
| 11 | `format_spawn_call`). Tool strings must match registered ToolRegistry |
| 12 | names — do not invent aliases. |
| 13 | |
| 14 | ## Role Definitions |
| 15 | |
| 16 | ### executor (Code Executor) |
| 17 | - **allowed_tools**: null (inherits all tools) |
| 18 | - **skills**: null (inherits all skills) |
| 19 | - **Boundary**: Implement features, run quality checks. Follow existing patterns. |
| 20 | |
| 21 | ### architect (System Architect) |
| 22 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 23 | "write_file", "ast_search", "execute_shell_command"] |
| 24 | - **skills**: [] |
| 25 | - **Boundary**: Design interfaces and module boundaries, diagnose complex issues. No implementation code. |
| 26 | |
| 27 | ### analyst (Requirements Analyst) |
| 28 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 29 | "write_file", "execute_shell_command"] |
| 30 | - **skills**: [] |
| 31 | - **Boundary**: Extract requirements, identify constraints, define acceptance criteria. No code. |
| 32 | |
| 33 | ### critic (Plan/Design Critic) |
| 34 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 35 | "ast_search"] |
| 36 | - **skills**: [] |
| 37 | - **Boundary**: Review plans and designs, challenge assumptions. No plans, no code. |
| 38 | |
| 39 | ### security-reviewer (Security Reviewer) |
| 40 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 41 | "execute_shell_command", "ast_search"] |
| 42 | - **skills**: [] |
| 43 | - **Boundary**: Identify vulnerabilities, injection vectors, auth weaknesses. No file modifications. |
| 44 | |
| 45 | ### code-reviewer (Code Reviewer) |
| 46 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 47 | "execute_shell_command", "ast_search"] |
| 48 | - **skills**: [] |
| 49 | - **Boundary**: Review code quality, maintainability, convention adherence. No file modifications. |
| 50 | |
| 51 | ### qa-tester (QA Tester) |
| 52 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 53 | "execute_shell_command"] |
| 54 | - **skills**: [] |
| 55 | - **Boundary**: Interactive CLI/service testing — start services and verify behavior. |
| 56 | |
| 57 | ### planner (Strategic Planner) |
| 58 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 59 | "write_file", "ast_search"] |
| 60 | - **skills**: [] |
| 61 | - **Boundary**: Create implementation plans, define task breakdown and dependencies. No implementation code. |
| 62 | |
| 63 | ### explore (Code Explorer) |
| 64 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 65 | "ast_search"] |
| 66 | - **skills**: [] |
| 67 | - **Boundary**: Read-only exploration. Map codebase structure and dependencies. |
| 68 | |
| 69 | ### debugger (Debugging Expert) |
| 70 | - **allowed_tools**: null (inherits all tools) |
| 71 | - **skills**: [] |
| 72 | - **Boundary**: Root cause analysis, fix build/test failures. No new features. |
| 73 | |
| 74 | ### verifier (Adversarial Verifier) |
| 75 | - **allowed_tools**: ["read_file", "grep_search", "glob_search", |
| 76 | "execute_shell_command", "ast_search"] |
| 77 | - **skills**: [] |
| 78 | - **Boundary**: Verification only — no file modifications. Physical isolation via read-only tool set. |
| 79 | |
| 80 | ## Usage |
| 81 | |
| 82 | ```text |
| 83 | spawn_subagent( |
| 84 | task="<role identity from ROLE_PROMPTS>\n\n## Task\n<task description>", |
| 85 | allowed_tools=<ROLE_ALLOWED_TOOLS[role] or omit if null>, |
| 86 | skills=<ROLE_SKILLS[role] or omit if null>, |
| 87 | fork=True, # if worktree isolation needed |
| 88 | background=True, # if background execution needed |
| 89 | ) |
| 90 | ``` |
| 91 | |
| 92 | When allowed_tools or skills is null, omit the parameter (uses default None). |
| 93 | For batch mode, pass `task=""` and put per-item role config in each batch dict. |