Auto-activates when synthesizing outputs from multiple parallel sub-agents
Scanned 9/7/2026
Install to Claude Code
npx -y skills add matteocervelli/llms --skill design-synthesizer --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Design Synthesizer?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/matteocervelli-design-synthesizer)More formats (shields.io, HTML) on the badges page.
---
name: design-synthesizer
description: Auto-activates when synthesizing outputs from multiple parallel sub-agents
to create cohesive, integrated design with consistency checking and conflict resolution.
allowed-tools: Read, Write, Edit
---
## Purpose
The **design-synthesizer** skill provides structured methods for integrating outputs from multiple parallel sub-agents into a cohesive design. It ensures consistency across architecture, library documentation, and dependencies while identifying and resolving conflicts or gaps.
## When to Use
This skill auto-activates when you:
- Integrate outputs from multiple parallel sub-agents
- Synthesize architecture design with library documentation
- Align dependencies with architectural requirements
- Check consistency across design documents
- Resolve conflicts between sub-agent outputs
- Identify gaps or missing information in design
- Prepare integrated design for PRP generation
## Provided Capabilities
### 1. Output Integration
- **Load Multiple Documents**: Read and parse outputs from all sub-agents
- **Extract Key Information**: Identify critical design elements from each output
- **Cross-Reference**: Link related elements across different outputs
- **Merge Content**: Combine information into unified design
### 2. Consistency Checking
- **Architecture-Library Alignment**: Verify architecture uses documented library features
- **Data Model Validation**: Ensure data models match library APIs
- **API Contract Verification**: Check API designs align with library patterns
- **Version Compatibility**: Validate library versions match dependency analysis
- **Naming Consistency**: Ensure consistent terminology across outputs
### 3. Conflict Resolution
- **Identify Mismatches**: Find inconsistencies between sub-agent outputs
- **Version Conflicts**: Resolve dependency version incompatibilities
- **Architecture Adjustments**: Modify architecture to meet library constraints
- **Trade-off Analysis**: Document compromises and decisions
- **Priority Resolution**: Apply priority rules for conflicting requirements
### 4. Gap Identification
- **Missing Documentation**: Flag undocumented library features
- **Incomplete Dependencies**: Identify missing or unresolved dependencies
- **Architecture Gaps**: Find components without implementation paths
- **Unresolved Issues**: List conflicts or ambiguities requiring attention
### 5. Coherent Design Narrative
- **Unified Story**: Create cohesive narrative across design elements
- **Traceability**: Link design decisions to requirements
- **Rationale Documentation**: Explain why specific approaches were chosen
- **Implementation Path**: Define clear path from design to code
## Usage Guide
### Step 1: Load Sub-Agent Outputs
Read outputs from all 3 parallel sub-agents:
```bash
# Architecture Designer output
/docs/implementation/design/architecture-{issue-number}.md
# Documentation Researcher output
/docs/implementation/design/libraries-{issue-number}.md
# Dependency Manager output
/docs/implementation/design/dependencies-{issue-number}.md
```
**Parse Each Output**:
- **Architecture**: Components, data models, API contracts, data flow, error handling
- **Libraries**: Library versions, API references, code examples, integration patterns
- **Dependencies**: Dependency tree, versions, compatibility, installation order
### Step 2: Extract Key Information
Create structured summary of each output:
**From Architecture Designer**:
```markdown
### Architecture Summary
**Components**:
- Component A: [Purpose and responsibilities]
- Component B: [Purpose and responsibilities]
**Data Models**:
- Model X: [Fields, validations, relationships]
- Model Y: [Fields, validations, relationships]
**API Contracts**:
- Endpoint 1: [Method, path, request/response]
- Endpoint 2: [Method, path, request/response]
**Data Flow**:
- Flow 1: [Source → Transform → Destination]
**Error Handling**:
- Strategy: [Approach and patterns]
```
**From Documentation Researcher**:
```markdown
### Library Documentation Summary
**Library A (v1.2.3)**:
- Purpose: [What it does]
- Key APIs: [Main functions/classes]
- Code Example: [Integration pattern]
- Best Practices: [Recommended usage]
**Library B (v2.0.0)**:
- Purpose: [What it does]
- Key APIs: [Main functions/classes]
- Code Example: [Integration pattern]
- Known Issues: [Caveats and workarounds]
```
**From Dependency Manager**:
```markdown
### Dependency Summary
**Dependency Tree**:
├── library-a==1.2.3
│ ├── dep-x>=2.0
│ └── dep-y<3.0
└── library-b==2.0.0
└── dep-z~=1.5
**Conflicts**: [List of version conflicts]
**Resolution**: [How conflicts were resolved]
**Installation Order**: [Sequence of installation]
```
### Step 3: Cross-Reference Design Elements
Map architecture components to libraries and dependencies:
Use `synthesis-guide.md` for detailed cross-referencing methodology.
**Architecture → Libraries Mapping**:
```markdown
### Component A
- **Uses**: Library A (v1.2.3)
- **APIs**: Library A's `ClassX` and `FunctionY`
- **Pattern**: Documented in libraries-{issue-number}.md, section 2.3
- **Code Example**: [Link to example in library docs]
### Data Model X
- **Validation**: Uses Library A's `ValidationMixin`
- **Serialization**: Uses Library B's `Serializer`
- **Storage**: Requires dependency: `database-driver>=3.0`
```
**Libraries → Dependencies Mapping**:
```markdown
### Library A (v1.2.3)
- **Required Dependencies**: dep-x>=2.0, dep-y<3.0
- **Optional Dependencies**: dep-optional (for feature Z)
- **Compatibility**: Python 3.9+
- **Conflicts**: None identified
```
**Cross-Reference Matrix**:
| Component | Library | Version | Dependencies | Documented |
|-----------|---------|---------|--------------|------------|
| Component A | Library A | 1.2.3 | dep-x, dep-y | ✅ |
| Component B | Library B | 2.0.0 | dep-z | ✅ |
| Data Model X | Library A | 1.2.3 | dep-x | ✅ |
### Step 4: Check Consistency
Validate alignment across all outputs:
**Architecture-Library Consistency**:
- ✅ All architecture components reference documented libraries
- ✅ All library APIs used in architecture are documented
- ✅ All data models align with library expectations
- ✅ All API contracts follow library patterns
- ⚠️ Warning: Component C uses undocumented Library API (flag for review)
**Library-Dependency Consistency**:
- ✅ All libraries have resolved dependencies
- ✅ All dependency versions are compatible
- ✅ No circular dependencies detected
- ⚠️ Conflict: Library A requires dep-x>=2.0, but Library B requires dep-x<2.5 (resolved to 2.4.0)
**Naming and Terminology Consistency**:
- ✅ Component names consistent across documents
- ✅ Data model names match architecture diagrams
- ⚠️ Inconsistency: Architecture calls it "UserProfile", libraries call it "Profile" (standardize to "UserProfile")
**Version Consistency**:
- ✅ Library versions match dependency analysis
- ✅ All version constraints satisfied
- ⚠️ Note: Library C has newer version (3.0.0) available, but using 2.8.5 for stability
### Step 5: Resolve Conflicts
Use `synthesis-guide.md` conflict resolution strategies:
**Conflict Type 1: Version Incompatibility**
```markdown
**Conflict**: Library A requires dep-x>=2.0, Library B requires dep-x<2.5
**Analysis**: Both constraints can be satisfied with dep-x==2.4.0
**Resolution**: Pin dep-x to 2.4.0 in requirements
**Trade-off**: Cannot use dep-x 2.5+ features until Library B updates
**Risk**: Low - 2.4.0 is stable and well-tested
```
**Conflict Type 2: Architecture-Library Mismatch**
```markdown
**Conflict**: Architecture designs async API, but Library C only supports sync
**Analysis**: Need to wrap Library C with async adapter or redesign
**Options**:
1. Use asyncio.to_thread() to wrap Library C (simpler, slight overhead)
2. Replace Library C with async alternative (more work, better performance)
**Resolution**: Use asyncio.to_thread() wrapper (priority: speed of implementation)
**Trade-off**: 5-10% performance overhead vs. 2-3 days rewrite
**Mitigation**: Profile performance, optimize if needed
```
**Conflict Type 3: Missing Documentation**
```markdown
**Conflict**: Architecture uses Library D feature, but no documentation found
**Analysis**: Feature exists in Library D source code but undocumented
**Resolution**:
1. Add note in PRP about undocumented feature
2. Include code example from Library D source
3. Flag for testing during implementation
**Risk**: Medium - undocumented features may change without notice
**Mitigation**: Pin Library D version, add comprehensive tests
```
### Step 6: Identify Gaps
Document missing information or unresolved issues:
**Gap Analysis**:
```markdown
### Missing Documentation
- Library E's `advanced_feature()` used in architecture but not documented
- Library F's error handling patterns unclear from documentation
### Incomplete Dependencies
- Component G requires database driver, but version not specified
- Testing framework not included in dependency analysis
### Architecture Gaps
- Component H has no implementation path (needs design detail)
- Error handling for API endpoint 3 not specified
### Unresolved Ambiguities
- Data Model Z validation rules conflict with Library requirements
- Performance target not specified for async operations
```
### Step 7: Create Cohesive Design Narrative
Synthesize all information into unified design:
Use `design-patterns.md` for common patterns and structures.
**Synthesized Design Structure**:
```markdown
## Synthesized Design
### Overview
[High-level description of integrated design]
### Component Architecture
[Unified component diagram with library annotations]
**Component A** (uses Library A v1.2.3)
- **Responsibilities**: [What it does]
- **Implementation**: Uses `Library A.ClassX` for [purpose]
- **Dependencies**: dep-x>=2.0, dep-y<3.0
- **Integration**: [How it connects to other components]
**Component B** (uses Library B v2.0.0)
- **Responsibilities**: [What it does]
- **Implementation**: Uses `Library B.ServiceY` for [purpose]
- **Dependencies**: dep-z~=1.5
- **Integration**: [How it connects to other components]
### Data Models (Pydantic Schemas)
**UserProfile Model**
```python
from library_a import ValidationMixin
from pydantic import BaseModel
class UserProfile(BaseModel, ValidationMixin):
id: int
name: str
email: EmailStr # From library_a
# ... fields with library-specific validations
```
### API Contracts
**Endpoint 1**: `POST /api/users`
- **Implementation**: Uses Library A's `create_user()` method
- **Request**: UserProfile schema
- **Response**: UserProfile with generated ID
- **Error Handling**: Library A's exceptions mapped to HTTP status codes
### Library Integration Strategy
**Library A (v1.2.3)**: User management and validation
- **Integration Point**: Component A, Data Model UserProfile
- **Code Pattern**: [Example from documentation]
- **Error Handling**: Catch `LibraryAException`, return 400/500
**Library B (v2.0.0)**: Background task processing
- **Integration Point**: Component B
- **Code Pattern**: [Example from documentation]
- **Configuration**: [Settings required]
### Dependency Resolution
**Final Dependency Tree**:
```
library-a==1.2.3
├── dep-x==2.4.0 # Pinned to resolve conflict
├── dep-y==2.8.0
library-b==2.0.0
├── dep-z==1.5.3
└── dep-x==2.4.0 # Shared with library-a
```
**Installation Commands**:
```bash
pip install library-a==1.2.3
pip install library-b==2.0.0
pip install -r requirements.txt
```
### Implementation Path
**Phase 1**: Foundation
1. Install dependencies (in order above)
2. Create data models with Library A validations
3. Set up Library B configuration
**Phase 2**: Core Components
1. Implement Component A using Library A patterns
2. Implement Component B using Library B patterns
3. Test components independently
**Phase 3**: Integration
1. Connect Component A → Component B
2. Implement error handling across components
3. Integration testing
**Phase 4**: Validation
1. Unit tests for each component
2. Integration tests for component interactions
3. Performance testing
### Design Decisions
**Decision 1**: Async Wrapper for Library C
- **Rationale**: Library C only supports sync, but architecture requires async
- **Approach**: Use asyncio.to_thread() wrapper
- **Trade-off**: 5-10% performance overhead vs. 2-3 days to rewrite with async library
- **Risk**: Low - overhead is acceptable for current scale
**Decision 2**: Pin dep-x to 2.4.0
- **Rationale**: Resolve version conflict between Library A and Library B
- **Approach**: Pin to highest compatible version (2.4.0)
- **Trade-off**: Cannot use dep-x 2.5+ features until Library B updates
- **Risk**: Low - 2.4.0 is stable
### Identified Issues
**Issue 1**: Undocumented Library D Feature
- **Description**: Architecture uses Library D's `advanced_feature()`, but not in docs
- **Impact**: Medium - feature may change without notice
- **Mitigation**: Pin Library D version, add comprehensive tests, monitor for updates
**Issue 2**: Component H Implementation Gap
- **Description**: Component H responsibilities defined, but implementation approach unclear
- **Impact**: High - blocks implementation
- **Action Required**: Architecture Designer needs to provide implementation details
### Gaps Requiring Attention
- [ ] Resolve Component H implementation approach
- [ ] Verify Library D's `advanced_feature()` API stability
- [ ] Specify database driver version for Component G
- [ ] Clarify performance targets for async operations
- [ ] Add testing framework to dependency analysis
```
### Step 8: Validate Synthesis Quality
Quality checklist:
**Completeness**:
- ✅ All architecture components mapped to libraries
- ✅ All libraries mapped to dependencies
- ✅ All data models have implementation details
- ✅ All API contracts have library integration notes
- ⚠️ Component H needs more detail
**Consistency**:
- ✅ Terminology consistent across documents
- ✅ Version numbers match everywhere
- ✅ Component names standardized
- ✅ Dependencies resolved without conflicts
**Actionability**:
- ✅ Implementation path is clear and specific
- ✅ Installation commands provided
- ✅ Code patterns documented
- ⚠️ Some gaps flagged for resolution
**Traceability**:
- ✅ Design elements link to requirements
- ✅ Library choices justified
- ✅ Design decisions documented with rationale
## Best Practices
### 1. Start with Overview
- Read all outputs completely before synthesis
- Create summary of each output
- Identify major themes and patterns
### 2. Map Systematically
- Use structured templates for mapping
- Create traceability matrices
- Document every cross-reference
### 3. Validate Early
- Check consistency as you integrate
- Flag issues immediately
- Don't ignore small discrepancies
### 4. Resolve Conflicts Transparently
- Document all conflicts found
- Explain resolution reasoning
- Note trade-offs and risks
### 5. Identify All Gaps
- Missing documentation
- Incomplete specifications
- Unresolved ambiguities
- Assumptions that need validation
### 6. Create Unified Narrative
- Tell coherent story from architecture → libraries → dependencies → implementation
- Link every design element to requirements
- Provide clear implementation path
## Resources
### synthesis-guide.md
Comprehensive guide for synthesizing sub-agent outputs including:
- Cross-referencing methodology
- Consistency checking procedures
- Conflict resolution strategies
- Gap identification techniques
- Quality validation criteria
### design-patterns.md
Common design patterns and structures including:
- Component integration patterns
- Library usage patterns
- Dependency management patterns
- Error handling patterns
- Testing patterns
## Example Usage
### Input (Sub-Agent Outputs)
**Architecture Designer Output**:
```markdown
## Components
- **UserService**: Handles user CRUD operations
- **TaskQueue**: Manages background tasks
## Data Models
- **User**: id, name, email, created_at
- **Task**: id, task_type, status, payload
## APIs
- POST /api/users: Create user
- POST /api/tasks: Queue background task
```
**Documentation Researcher Output**:
```markdown
## Libraries
**SQLAlchemy (v2.0.0)**: ORM for database
- User model: Use `declarative_base()` pattern
- Example: [Code snippet]
**Celery (v5.3.0)**: Background task queue
- Task definition: Use `@app.task` decorator
- Example: [Code snippet]
```
**Dependency Manager Output**:
```markdown
## Dependencies
sqlalchemy==2.0.0
├── greenlet>=2.0
celery==5.3.0
├── kombu>=5.3
└── billiard>=4.0
Conflict: greenlet version (resolved to 2.0.2)
```
### Output (Synthesized Design)
```markdown
## Synthesized Design
### Component Architecture
**UserService** (uses SQLAlchemy v2.0.0)
- **Implementation**: SQLAlchemy `declarative_base()` pattern
- **Dependencies**: sqlalchemy==2.0.0, greenlet==2.0.2
- **Data Model**: User class inherits from SQLAlchemy Base
**TaskQueue** (uses Celery v5.3.0)
- **Implementation**: Celery `@app.task` decorator
- **Dependencies**: celery==5.3.0, kombu>=5.3, billiard>=4.0
- **Integration**: Tasks defined in tasks.py, queued via TaskQueue service
### Data Models (SQLAlchemy + Pydantic)
```python
from sqlalchemy import declarative_base
from pydantic import BaseModel
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id: int
name: str
email: str # With SQLAlchemy validation
created_at: datetime
```
### Library Integration
**SQLAlchemy**: Use declarative_base() for User model (documented pattern)
**Celery**: Define tasks with @app.task, configure broker in settings
### Dependencies (Resolved)
```
sqlalchemy==2.0.0
├── greenlet==2.0.2 # Pinned to resolve conflict
celery==5.3.0
├── kombu>=5.3
└── billiard>=4.0
```
Installation:
```bash
pip install sqlalchemy==2.0.0 celery==5.3.0
```
### Design Decisions
**Decision**: Pin greenlet to 2.0.2
- **Rationale**: Resolve version conflict between SQLAlchemy and system
- **Risk**: Low
```
## Integration
This skill is used by:
- **design-orchestrator** agent during Phase 2: Design & Planning
- Activates automatically when orchestrator synthesizes sub-agent outputs
- Provides unified design for PRP generation (prp-generator skill)
---
**Version**: 2.0.0
**Auto-Activation**: Yes (when synthesizing sub-agent outputs)
**Phase**: 2 (Design & Planning)
**Created**: 2025-10-29Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!