This document describes template-owned directories only. Flutter platform trees (android/, ios/, linux/, macos/, web/, windows/) and generated folders (build/, .dart_tool/) are excluded here; see platform docs when changing bundle IDs, flavors, or signing.
| Path | Role |
|---|---|
lib/ |
Application code: core/, features/, shared/, l10n/, main.dart. |
test/ |
Unit, widget, and in-repo integration tests; mirrors lib/ structure. |
integration_test/ |
Patrol E2E tests; uses stable keys in lib/core/constants/ui_keys.dart. |
docs/ |
Architecture, guides, API notes. Start at docs/README.md. |
scripts/ |
Shell automation: dev/ (hooks, format, features), test/ (coverage, E2E). Index: scripts/README.md. |
tool/ |
Dart maintenance scripts (e.g. strip sample features). |
examples/ |
Non-shipping Dart snippets; see examples/README.md. |
bricks/ |
Optional Mason brick(s) for fork setup (rename package / native ids); see bricks/README.md and mason.yaml. Safe to delete bricks/ + mason.yaml if you rename manually and do not use Mason. |
.github/workflows/ |
CI, optional manual E2E, deploy templates. |
.githooks/ |
Canonical hook scripts in repo; setup_git_hooks.sh copies them to .git/hooks/. |
lib/
├── core/ # Config, DI, network, storage, routing, security, contracts, adapters
├── features/ # Vertical slices: auth, home, tasks, feature_flags, …
├── shared/ # Cross-feature UI, theme, design_system, widgets
├── l10n/ # Generated/localization
└── main.dart
- Swap points: see Contracts and adapter map.
- Fork workflow: Fork and customize.
Mirrors lib/features/* and lib/core/* where practical. Shared helpers live under test/helpers/. Details: test/README.md.