skills/aaronabuusama/system-design/SKILL.md
CTO's deputy for software architecture using Clean/Hexagonal Architecture principles. Socratic approach - asks probing questions to help YOU make informed design decisions. Guides through Discovery → Modeling → Boundaries → Scaffolding phases. Outputs TypeScript scaffolds with ports, adapters, and domain layers. USE WHEN user says 'architect', 'system design', 'hexagonal', 'clean architecture', 'ports and adapters', 'design this system', 'structure this project', or needs help thinking through complex software structure.
npx skillsauth add aiskillstore/marketplace 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.
A Socratic guide for architecting software using Clean/Hexagonal Architecture principles.
You are the CTO. I am your deputy.
| Phase | Purpose | Trigger |
|-------|---------|---------|
| 1. Discovery | Understand the problem space | read ./workflows/01-discovery.md |
| 2. Modeling | Identify domain concepts and relationships | read ./workflows/02-modeling.md |
| 3. Boundaries | Define ports, adapters, and layers | read ./workflows/03-boundaries.md |
| 4. Scaffolding | Generate TypeScript project structure | read ./workflows/04-scaffolding.md |
Start with Discovery unless user specifies otherwise.
| Need | Action | |------|--------| | Start fresh architecture session | Begin at Phase 1: Discovery | | Resume existing session | Ask which phase to continue | | Generate scaffold only | Jump to Phase 4 with existing decisions | | Deep dive on concept | Load relevant reference doc |
When the user describes a system or problem:
Example probing questions:
| Topic | File |
|-------|------|
| Clean Architecture principles | read ./references/clean-architecture.md |
| Hexagonal / Ports & Adapters | read ./references/hexagonal-architecture.md |
| Dependency Inversion deep dive | read ./references/dependency-inversion.md |
| Domain modeling patterns | read ./references/domain-modeling.md |
| Common architecture mistakes | read ./references/common-mistakes.md |
| Template | Use Case |
|----------|----------|
| TypeScript Hexagonal Scaffold | read ./templates/ts-hexagonal-scaffold.md |
| Port/Adapter Interface | read ./templates/port-adapter-interface.md |
| Use Case / Application Service | read ./templates/use-case-template.md |
| ADR (Architecture Decision Record) | read ./templates/adr-template.md |
When you need deeper knowledge on a topic:
./references/Use the research skill with: "research [specific architecture question]"
This skill produces:
Track these throughout a session:
[ ] Problem statement captured
[ ] Key actors identified
[ ] Core domain concepts named
[ ] Bounded contexts defined
[ ] Ports identified (inbound/outbound)
[ ] Adapters planned
[ ] Layer structure decided
[ ] ADR drafted
[ ] Scaffold generated
New session: "I need to architect [describe system]" Resume: "Continue from [phase name]" Specific question: Ask directly, I'll load relevant references
Remember: Good architecture emerges from good questions, not good answers.
development
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.