Skip to content
Back to skills

System Design

ASecurity

Use when decomposing a system into components with clear boundaries, module organization, and interface contracts — the "how do we slice this?" question at design time. NOT for reviewing an existing system's health (use the architecture skill or engineering:arch).

  • 9 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 18, 2026
ai-agentsgotestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 18 files and shows the line behind each finding

Scanned October 18, 2026

npx -y skills add mikeparcewski/wicked-garden --skill system-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of System Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for System Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mikeparcewski-system-design/badge)](https://www.skillsdirectory.com/skills/mikeparcewski-system-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wicked-garden-engineering-system-design
description: |
  Use when decomposing a system into components with clear boundaries, module organization, and interface
  contracts — the "how do we slice this?" question at design time.
  NOT for reviewing an existing system's health (use the architecture skill or engineering:arch).
metadata:
  role: module
  phases: "design,build"
  archetypes: "*"
---

# System Design Skill

Decompose systems into well-defined components with clear boundaries and interfaces.

## Purpose

Transform architecture into concrete components:
- Component identification and boundaries
- Interface definition
- Dependency management
- Module organization

## Process

### 1. Identify Components

Ask:
- What are major capabilities?
- What changes together?
- What has different scaling needs?
- What domain concepts exist?

### 2. Define Boundaries

Apply:
- **High Cohesion** - Related functionality together
- **Low Coupling** - Minimal dependencies
- **Single Responsibility** - One reason to change
- **Information Hiding** - Encapsulate internals

### 3. Design Interfaces

For each component:
- Public API (what it exposes)
- Dependencies (what it needs)
- Events (what it publishes/subscribes)
- Data contracts (I/O structures)

### 4. Document

Creates in `phases/design/`:
```
design/
├── components/
│   ├── overview.md
│   ├── auth-component.md
│   └── dependencies.mmd
└── interfaces/
    └── component-api.md
```

## Component Patterns

**Layered** - Presentation → Application → Domain → Infrastructure
**Hexagonal** - Business logic with adapter ports
**Plugin** - Core system with pluggable extensions

See component patterns in refs/ (patterns-layered-pattern.md, patterns-facade-pattern.md).

## Dependency Management

### Rules

1. **Acyclic** - No circular dependencies
2. **Unidirectional** - Dependencies flow one way
3. **Stable** - Depend on stable abstractions
4. **Explicit** - Declare in constructor/config

### Common Anti-Patterns

**God Object** - One component does everything
**Fix**: Split by responsibility

**Feature Envy** - Component uses another's data extensively
**Fix**: Move functionality to data owner

**Circular Dependencies** - A depends on B, B depends on A
**Fix**: Extract shared logic or use events

**Leaky Abstraction** - Internal details exposed
**Fix**: Refine public interface

See dependency guides in refs/ (dependencies-dependency-principles.md, dependencies-best-practices.md).

## Integration

### With Architecture Skill

Implements high-level architecture:
- Takes architectural decisions
- Maps to concrete components
- Validates feasibility

### With Integration Skill

Provides boundaries for:
- API design
- Service contracts
- Event schemas

### With wicked-crew

Called during design phase after architecture.

## Events

- `[arch:components:defined:success]` - Components designed
- `[arch:interface:defined:success]` - Interface documented
- `[arch:dependency:analyzed:success]` - Dependencies validated

## Tips

1. **Start with Boundaries** - Define what's in/out first
2. **Think in Interfaces** - Design API before implementation
3. **Keep It Simple** - Don't over-decompose
4. **Test Boundaries** - Use contract tests
5. **Refactor Gradually** - Small, safe steps
6. **Document Dependencies** - Make them explicit

## Reference Materials

- Component Template:
  - [Structure & API](refs/component-template-structure.md)
  - [Lifecycle & Deployment](refs/component-template-lifecycle.md)
  - [Maintenance & Examples](refs/component-template-maintenance.md)
- Interface Template:
  - [Structure & Contracts](refs/interface-template-structure.md)
  - [Testing & Operations](refs/interface-template-lifecycle.md)
  - [Examples & Tips](refs/interface-template-maintenance.md)
- Component Patterns:
  - [Layered](refs/patterns-layered-pattern.md)
  - [Plugin Architecture](refs/patterns-plugin-architecture.md)
  - [Facade](refs/patterns-facade-pattern.md)
  - [Dependency Injection](refs/patterns-dependency-injection.md)
- Dependencies:
  - [Principles](refs/dependencies-dependency-principles.md)
  - [Tracking](refs/dependencies-dependency-tracking.md)
  - [Best Practices](refs/dependencies-best-practices.md)
- Anti-Patterns:
  - [God Object](refs/anti-patterns-god-object.md)
  - [Big Ball of Mud](refs/anti-patterns-big-ball-of-mud.md)
  - [Circular Dependencies](refs/anti-patterns-circular-dependencies.md)
  - [Feature Envy](refs/anti-patterns-feature-envy.md)

Files in this skill

  • SKILL.md4.4 KB
  • refs/anti-patterns-big-ball-of-mud.md5.8 KB
  • refs/anti-patterns-circular-dependencies.md5.2 KB
  • refs/anti-patterns-feature-envy.md3.2 KB
  • refs/anti-patterns-god-object.md5.1 KB
  • refs/component-template-lifecycle.md4 KB
  • refs/component-template-maintenance.md4.3 KB
  • refs/component-template-structure.md5.5 KB
  • refs/dependencies-best-practices.md5 KB
  • refs/dependencies-dependency-principles.md6.2 KB
  • refs/dependencies-dependency-tracking.md5.8 KB
  • refs/interface-template-lifecycle.md3.9 KB
  • refs/interface-template-maintenance.md4.5 KB
  • refs/interface-template-structure.md5 KB
  • refs/patterns-dependency-injection.md3.3 KB
  • refs/patterns-facade-pattern.md6.1 KB
  • refs/patterns-layered-pattern.md5.5 KB
  • refs/patterns-plugin-architecture.md5.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.