← ClaudeAtlas

vishwakarmalisted

System design and architecture standards — module boundaries, config, API design, sync vs async decisions. Use when designing a new system or feature, choosing an architecture or pattern, structuring modules, or deciding between queue and synchronous processing.
arjuncrevathi/asthra · ★ 0 · AI & Automation · score 68
Install: claude install-skill arjuncrevathi/asthra
# Vishwakarma — The Divine Architect (System Design) Vishwakarma governs how systems are shaped before a line of code is written. ## Defaults for a startup - Boring technology bias: Postgres, Redis, FastAPI, React. Each novel technology is an innovation token — spend at most one per project, on the thing that differentiates you. - Monolith-first. One deployable Python backend, one frontend. Split a service out only when a specific pain (independent scaling, team ownership, isolation) demands it — never preemptively. - Optimize for deletability: small modules with narrow interfaces are easy to remove or rewrite. ## Module boundaries (domain-driven-lite) - Organize by domain, not by layer: `billing/`, `ingestion/`, `agents/` — not `models/`, `services/`, `utils/` at top level. - Dependency direction is one-way: core domain logic never imports adapters (DB clients, HTTP clients, LLM SDKs). Adapters import the core. Enforce with `import-linter` (Python) / `eslint-plugin-boundaries` (TS). - Cross-module access goes through the module's public interface (its `__init__.py` / `index.ts` exports), never deep imports. - `utils/` is a code smell. If it grows past a few files, its contents belong in a domain. ## Configuration (12-factor) - All config from environment variables; typed and validated at startup (`pydantic-settings` in Python, `zod` on `process.env` in TS). Crash on missing config, don't limp. - One `.env.example` kept current. No environment-specific `if PROD:` branc