skills/engineering/system-design/SKILL.md
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).
npx skillsauth add mikeparcewski/wicked-garden system-designInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Decompose systems into well-defined components with clear boundaries and interfaces.
Transform architecture into concrete components:
Ask:
Apply:
For each component:
Creates in phases/design/:
design/
├── components/
│ ├── overview.md
│ ├── auth-component.md
│ └── dependencies.mmd
└── interfaces/
└── component-api.md
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).
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).
Implements high-level architecture:
Provides boundaries for:
Called during design phase after architecture.
[arch:components:defined:success] - Components designed[arch:interface:defined:success] - Interface documented[arch:dependency:analyzed:success] - Dependencies validateddevelopment
--- name: large-scale-migration description: How to execute a LARGE MECHANICAL change across any codebase with LEVERAGE instead of an agent-grind or hand-edits — a cross-cutting migration, refactor, rename, dialect/framework/DB port, library adoption, or bulk transform. The map→transform→gate pattern: a deterministic transform driven by a source-of-truth map, proven by a differential-equivalence gate. Use when the work is "migrate all X to Y", "rename Z everywhere", "port to a new DB/dialect/fra
testing
v11 LLM-based work-shape classifier. Replaces the regex archetype detector with the model's own reasoning. Reads the user's prompt, picks the right archetype(s) from the catalog, identifies signals (blast_radius, novelty, reversibility, etc.), and persists to SessionState so subsequent turns steer correctly. Use when: the prompt_submit hook emitted a `<wg classify-due />` directive, OR explicitly invoked at session start, OR when re-classifying after the user changes scope mid-session.
tools
v11 work-shape archetype runner. When a prompt has been routed to one of the 9 archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate), this skill is the entry point. It picks the right per-archetype playbook from refs/ and executes the phase shape declared in `.claude-plugin/archetypes.json`. Use when: a `<wg archetype="X">` or `<wg archetypes>` system-reminder tag appears, an explicit "let's run the X archetype" request, or when one of the per-archetype slash commands resolves to this skill.
development
Show or set the session intent variable. Intent gates how loud the framework is — simple-edit (silent), feature/research (synthesis directive), rigor (full crew context). Auto-detected on turn 1; this skill overrides explicitly. Sticky for the session. Use when: "set intent", "intent override", "/wicked-garden:intent", "make the framework quiet", "force rigor", "what's my intent".