Parallel Agent Type Contracts
When launching parallel agents for code implementation, prevent type duplication.
Required in Every Agent Prompt
1. Verification Command (MANDATORY)
## 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
## 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:
# 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
- Type checker is the contract - tsc catches conflicts automatically
- Grep is fast - 1 second to check if type exists
- Explicit ownership - No ambiguity about where types live
- Fail fast - Agent can't claim "done" with broken types