| name | subagent-orchestration |
| description | Orchestration guide for invoking specialized sub-agents during coding workflows. Defines when and how to invoke testing-engineer, security-auditor, quality-assurance-reviewer, context-keeper, and project-tracker agents. Use proactively after implementing features, modifying security-sensitive code, completing milestones, or when the user asks for reviews, tests, or status updates. |
Sub-Agent Orchestration
This skill tells you when to invoke specialized sub-agents and how to combine them effectively. The goal is to make sub-agent usage a natural part of the workflow, not an afterthought.
Available Sub-Agents
| Agent | Type | Mode | Purpose |
|---|
testing-engineer | Background | Read/Write | Write tests for new or modified code |
security-auditor | Background | Readonly | Vulnerability assessment on security-sensitive changes |
quality-assurance-reviewer | Background | Readonly | Code quality, readability, and maintainability review |
context-keeper | Background | Read/Write | Persist confirmed knowledge to the graph |
project-tracker | Background | Read-only | Cross-reference Jira, Git, and knowledge graph for status |
Trigger Rules
Follow these rules to decide when to invoke sub-agents. Apply them proactively — don't wait for the user to ask.
After Implementing or Modifying a Feature
Trigger: You've written or substantially changed functional code (not just config, docs, or formatting).
Action: Invoke up to three agents in parallel:
┌─────────────────────┐
│ Feature Complete │
└──────┬──────────────┘
│ parallel
├──→ testing-engineer (write tests for the changes)
├──→ quality-assurance-reviewer (review code quality)
└──→ context-keeper (persist architectural decisions)
Prompt patterns:
- testing-engineer: "Write tests for the changes in
[files]. The feature does [description]. Focus on [core behavior, error handling, edge cases]. Follow existing test conventions in [test directory]."
- quality-assurance-reviewer: "Review the code in
[files] for quality and maintainability. The changes implement [description]."
- context-keeper: "Persist the following confirmed architectural decision: [decision and rationale]. Group ID: [appropriate group]."
When Touching Security-Sensitive Code
Trigger: Changes involve any of:
- Token transfers, minting, burning, locking
- Cross-chain message passing or verification
- Access control, permissions, admin functions
- Cryptographic operations (signing, hashing, proofs)
- External contract calls
- State transitions with financial impact
Action: Invoke security-auditor alongside any other applicable agents:
┌────────────────────────┐
│ Security-Sensitive │
│ Code Changed │
└──────┬─────────────────┘
│ parallel
├──→ security-auditor (vulnerability assessment)
├──→ testing-engineer (security-focused test cases)
└──→ context-keeper (persist security properties)
Prompt pattern for security-auditor: "Audit the changes in [files] for security vulnerabilities. These changes affect [token handling / cross-chain messaging / access control / etc]. The component's role is [description from context or knowledge graph]."
After Confirming Important Information
Trigger: Any of:
- Architectural decision confirmed in conversation
- Domain knowledge learned from docs or user
- Integration detail clarified
- Protocol behavior confirmed
Action: Invoke context-keeper:
context-keeper: "Persist to group '[group_id]': [preprocessed factual statement].
Source: [conversation / docs / code review]."
Always preprocess the information into clear, entity-rich statements before delegating.
When Assessing Project Status
Trigger: User asks about progress, what's left, blockers, or overall health. Also invoke proactively at the start of a major new task to understand context.
Action: Invoke project-tracker:
project-tracker: "Generate a project status report for the Stellar CCIP integration.
Cross-reference Jira (NONEVM, label=stellar), recent Git history, and the knowledge graph.
Focus on [specific area if applicable]."
When Preparing Code for Review / PR
Trigger: User asks to prepare a PR, review code before merging, or do a final check.
Action: Run quality-assurance-reviewer and security-auditor in parallel:
┌────────────────────┐
│ Preparing for PR │
└──────┬─────────────┘
│ parallel
├──→ quality-assurance-reviewer (quality gate)
└──→ security-auditor (security gate, if applicable)
Invocation Patterns
Parallel Invocation
When invoking multiple agents, always use parallel Task calls in a single message when the agents are independent:
Task(subagent_type="testing-engineer", prompt="...")
Task(subagent_type="security-auditor", prompt="...")
Task(subagent_type="quality-assurance-reviewer", prompt="...")
This runs all three simultaneously, saving significant time.
Sequential Chaining
When one agent's output feeds another, chain them:
- Run
security-auditor → get findings
- Run
testing-engineer with: "Write tests that verify these security properties: [findings from auditor]"
Prompt Quality Matters
Sub-agents start with no conversation context. Every prompt must be self-contained:
- Specify files explicitly — list the exact paths to review/test
- Describe the feature — what the code does and why
- Set scope — what to focus on, what to skip
- Include constraints — existing test patterns, coding conventions, language
Bad: "Review the recent changes."
Good: "Review ccv/chain/chain.go lines 284-540. This implements DeployContractsForSelector which deploys Stellar CCIP contracts for a given chain selector. The function was updated to use ccipOffchain.EnvironmentTopology instead of deployments.EnvironmentTopology. Focus on whether the topology resolution logic correctly handles missing signers and the placeholder fallback at line 545."
Decision Flowchart
Did I just write or modify functional code?
├── Yes → Was it security-sensitive?
│ ├── Yes → testing-engineer + security-auditor + quality-assurance-reviewer + context-keeper
│ └── No → testing-engineer + quality-assurance-reviewer + context-keeper
├── Did I just confirm an architectural decision or learn domain knowledge?
│ └── Yes → context-keeper
├── Is the user asking about project status, blockers, or planning?
│ └── Yes → project-tracker
├── Is the user preparing for a PR or review?
│ └── Yes → quality-assurance-reviewer + security-auditor (if security-relevant)
└── None of the above → No sub-agent needed
What NOT to Delegate
- Simple file reads or searches — do these yourself, sub-agents add overhead
- Single-line fixes — not worth a testing or review cycle
- Exploratory questions — use
explore sub-agent type or search directly
- Config-only or doc-only changes — no security audit needed, QA review optional
Combining with Skills
Sub-agents reference these skills internally. You don't need to re-teach them, but mention relevant context:
- Agents that use Jira know the skill at
.cursor/skills/atlassian-jira-usage/SKILL.md
- Agents that use the knowledge graph know
.cursor/skills/graphiti-mcp-usage/SKILL.md
- Include group IDs (
ccip-architecture, stellar-integration, cctp-v2, audit-guide) in prompts when relevant