system-design

Articulate design principles for reusable modules, APIs, CLIs, and libraries.

Updated Jan 14, 2026
One-click install
npx skills add https://github.com/primeinc/swarm --skill system-design-primeinc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-design
Source: https://github.com/primeinc/swarm/tree/main/packages/opencode-swarm-plugin/global-skills/system-design
Command: npx skills add https://github.com/primeinc/swarm --skill system-design-primeinc

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a framework of principles to craft reusable, maintainable software systems by emphasizing deep modules, information hiding, and thoughtful design decisions.

Core Features & Use Cases

  • Deep Modules: simple interfaces that hide complex implementations.
  • Information Hiding: encapsulate domain knowledge to reduce coupling and improve maintainability.
  • Design Twice: compare alternative designs before implementing to improve results.
  • Use Case: architect a new API surface or CLI with a reusable, testable module structure.

Quick Start

Plan the architecture of a new module by outlining its public API, internal components, and how it will be evolved over multiple releases.

Frequently Asked Questions about system-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What are deep modules in software system design?

Deep modules use simple interfaces to hide complex implementations, reducing system complexity. This design principle encapsulates intricate logic behind a minimal public API surface to improve maintainability.

How do I design a reusable and maintainable API surface?

Outline the public interface, internal components, and release evolution plan. Apply information hiding to encapsulate domain knowledge and reduce module coupling for a maintainable API surface.

Why should I compare alternative designs before implementing a module?

Comparing alternative designs before implementation, known as designing twice, improves architectural results. Evaluating multiple module structures leads to better maintainable and scalable systems.

Does information hiding help reduce coupling in software libraries?

Information hiding reduces coupling in software libraries by encapsulating domain knowledge within modules. This design principle improves maintainability by preventing external dependencies on internal logic.

What is the best way to structure a CLI for maintainability across teams?

Structure a maintainable CLI across teams by applying deep modules and information hiding. Codify guidance on simple interfaces to hide complex implementation details and reduce overall complexity.

Related Skills