What problem does it solve?
Modifying the Cambridge Beer Festival Flutter app risks breaking enforced layer boundaries, core invariants, or persistence contracts if you lack access to the definitive, up-to-date architecture rules. This skill eliminates that risk by providing the complete, verified architecture contract for the app, so you can make changes confidently without re-discovering hard-won rules from past incidents.
Core Features & Use Cases
- Layer Contract Reference: Clear definition of allowed and forbidden actions for every layer (UI, BeerProvider, domain controllers, repositories, services, models) to prevent cross-layer violations.
- Enforced Invariants Guide: Documentation of all 11 code-level invariants with exact file:line citations and the historical incident each was designed to fix, so you understand the "why" behind every rule.
- Storage & Persistence Rules: Complete guidance on UserDataStore schema versioning, additive vs breaking field change requirements, PreferenceKeys pinning, and legacy migration patterns to avoid data loss for existing users.
- Extension Playbook: Step-by-step rules for adding new screens, models, services, sort options, and personal state fields that comply with the app's architecture.
- Known Weak Points Catalog: List of currently open, tracked limitations so you don't waste time re-discovering them as new bugs.
Use this skill before adding any code to lib/providers/, lib/domain/, lib/services/, or lib/models/, or when responding to a code review comment that claims a layer boundary was crossed.
Quick Start
Load this skill before modifying any code in the app's core domain, provider, service, or model directories to ensure your changes align with the app's enforced architecture rules and avoid breaking core functionality.