Auto-activates when synthesizing outputs from multiple parallel sub-agents
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
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-29No comments yet. Be the first to comment!