--- name: parallel-agent-contracts description: Parallel Agent Type Contracts user-invocable: false --- # Parallel Agent Type Contracts When launching parallel agents for code implementation, prevent type duplication. ## Required in Every Agent Prompt ### 1. Verification Command (MANDATORY) ```markdown ## Before Marking Complete Run verification: \`\`\`bash npx tsc --noEmit 2>&1 | head -20 \`\`\` If ANY type errors exist, fix them before completing. ``` ### 2. Grep-Before-Create ```markdown ## Before Creating Any Type/Interface First check if it exists: \`\`\`bash grep -r "interface YourTypeName\|type YourTypeName" src/ \`\`\` If found, import it. NEVER duplicate existing types. ``` ### 3. Canonical Type Map Include relevant entries from this map in agent prompts: | Type | Owner File | Import From | |------|-----------|-------------| | `NormalizedTool` | `src/sdk/agent.ts` | `'./agent'` | | `ToolCall` | `src/sdk/agent.ts` | `'./agent'` | | `ToolResult` | `src/sdk/agent.ts` | `'./agent'` | | `ToolDefinition` | `src/sdk/agent.ts` | `'./agent'` | | `Message` | `src/sdk/types.ts` | `'./types'` | | `ContentBlock` | `src/sdk/types.ts` | `'./types'` | | `TokenUsage` | `src/sdk/types.ts` | `'./types'` | | `ProviderAdapter` | `src/sdk/providers/index.ts` | `'./providers'` | | `RiggClient` | `src/sdk/client.ts` | `'./client'` | ## Prompt Template When spawning implementation agents: ```markdown # Task: [Description] ## Type Ownership (DO NOT recreate) - [List relevant types from canonical map] ## Before Creating New Types Run: `grep -r "interface TypeName" src/` - if exists, import it. ## Before Marking Complete Run: `npx tsc --noEmit 2>&1 | head -20` Fix all type errors before completing. ## Your Implementation [Actual task description] ``` ## Why This Works 1. **Type checker is the contract** - tsc catches conflicts automatically 2. **Grep is fast** - 1 second to check if type exists 3. **Explicit ownership** - No ambiguity about where types live 4. **Fail fast** - Agent can't claim "done" with broken types