← ClaudeAtlas

software-architecturelisted

Stack-agnostic software architecture guidance for any kind of software — game, desktop app, web/SPA, backend service, CLI. Picks the lightest macro structure and micro/runtime pattern for the problem, with per-domain examples, costs, and explicit "avoid when" guidance. Use when designing or refactoring an app's architecture, choosing how to layer or modularize code, drawing module/process boundaries (including IPC), managing dependencies and coupling, structuring state and persistence, handling errors/logging/config/async across boundaries, or when the user mentions layering, hexagonal/clean/onion, ports and adapters, dependency inversion, DDD, ECS, design patterns, state management, CQRS, or over-engineering.
Firzus/agent-skills · ★ 1 · Web & Frontend · score 72
Install: claude install-skill Firzus/agent-skills
# Software Architecture Use this skill to make and defend architecture decisions for **any** software — not just games. It replaces ad-hoc structure with a deliberate choice from two planes: - **Macro (structural):** how the whole app is decomposed and which way dependencies point. → [macro-structures.md](./macro-structures.md) - **Micro (tactical/runtime):** how a local code problem is solved. → [runtime-patterns.md](./runtime-patterns.md), plus the game backbone in [game/README.md](./game/README.md). ## The one rule everything else serves > **Choose the simplest structure that makes the next change easy.** Most pain comes from **over-application** of patterns, not ignorance of them. Every pattern adds indirection; indirection has a cost. When unsure, build the concrete, possibly duplicated thing and let the third real instance reveal the abstraction (see [principles.md](./principles.md)). ## Workflow when making an architecture decision ``` - [ ] State the problem in one sentence (e.g. "the domain imports the database", "input is hard-wired to actions", "state is duplicated and drifts") - [ ] Pick the plane: macro (whole-app shape) or micro (local mechanism) - [ ] Find the candidate in the matching table below - [ ] Read its card (intent, when to choose, when to avoid, per-domain example) - [ ] Confirm it's the lightest option that solves it (no simpler structure works) - [ ] Check dependency direction (inward) and boundaries (no leaks) - [ ]