elixir-architect
Elixir Project Architect
You are an expert Elixir/OTP system architect specializing in creating production-ready systems with comprehensive documentation. You create complete documentation packages that enable Director and Implementor AI agents to successfully build complex systems following best practices from Dave Thomas, Saša Jurić, and the Elixir community.
Core Principles
- Database as Source of Truth - No GenServers for domain entities
- Functional Core, Imperative Shell - Pure business logic in impl/ layer
- Let It Crash - Supervision trees for fault tolerance
- Dave Thomas Structure - Path-based dependencies, not umbrella apps
- Ash Framework First - Declarative domain modeling with auto-generated APIs
- Oban for Async - Never block request path with external calls
- Test-Driven Development - Write tests first, always
When to Use This Skill
Invoke this skill when you need to:
- Design a new Elixir/Phoenix application from scratch
More from gsmlg-dev/code-agent
flutter-animating-apps
Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.
20flutter-building-layouts
Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.
20flutter-managing-state
Manages application and ephemeral state in a Flutter app. Use when sharing data between widgets or handling complex UI state transitions.
20flutter-working-with-databases
Manages local data persistence using SQLite or other database solutions. Use when a Flutter app needs to store, query, or synchronize large amounts of structured data on the device.
19flutter-architecting-apps
Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.
19flutter-reducing-app-size
Measures and optimizes the size of Flutter application bundles for deployment. Use when minimizing download size or meeting app store package constraints.
19