Skills
Copy the dependency rule and one layout into a project, then add Flutter UI, Serverpod generate, or the Talaria bootstrap.
The book states the dependency rule. The Serverpod and Flutter courses build it three times. This page is how those rules move onto a new project.
Copy two rule files into the project's .cursor/rules/, then add the extras that match the stack. The files live in this repository under skills/.
Pick one layout
Copy dependency-rule.mdc and exactly one layout file. A second layout rule contradicts the first.
| Layout | Rule | When |
|---|---|---|
| Layer-first | layer-first.mdc |
The feature name repeats inside each layer, including the screen or the endpoint |
| Feature-first | feature-first.mdc |
One folder holds every layer of a feature |
| Hybrid | hybrid.mdc |
Domain and application stay shared. Screens or endpoints are sliced by feature |
dependency-rule.mdc is the same in every layout. Inner code never imports outer code. The composition root is the only place that constructs a repository implementation.
From the root of the new project, with the layout you chose in LAYOUT (layer-first, feature-first, or hybrid):
LAYOUT=hybrid
base=https://raw.githubusercontent.com/newtalaria/clean-architecture/main/skills
mkdir -p .cursor/rules
curl -fsSL "$base/rules/dependency-rule.mdc" -o .cursor/rules/dependency-rule.mdc
curl -fsSL "$base/rules/${LAYOUT}.mdc" -o ".cursor/rules/${LAYOUT}.mdc"If this repository is already on disk, cp those two files into .cursor/rules/ instead of using curl.
Flutter UI
Copy flutter-ui.mdc when the app has a ui/ folder. Widgets there do not import Riverpod. A tile takes the values it draws. A page test uses ProviderScope. A tile test does not.
base=https://raw.githubusercontent.com/newtalaria/clean-architecture/main/skills
curl -fsSL "$base/rules/flutter-ui.mdc" -o .cursor/rules/flutter-ui.mdcLayer-first and feature-first Flutter apps keep the tile beside the page. Copy this rule when you add a shared ui/ folder, which is the hybrid layout.
Serverpod generate and migrate
Copy serverpod-generate-migrate into .cursor/skills/ when the project has .spy.yaml or .spy.yml files. The skill runs serverpod generate, and serverpod create-migration when a database model changed. Generated Dart is not hand-edited. The notes samples in examples/serverpod/ hand-write wire types so dart test needs no generator. Leave those packages without a generate step.
base=https://raw.githubusercontent.com/newtalaria/clean-architecture/main/skills
mkdir -p .cursor/skills/serverpod-generate-migrate
curl -fsSL "$base/serverpod-generate-migrate/SKILL.md" \
-o .cursor/skills/serverpod-generate-migrate/SKILL.mdTalaria on Flutter
Copy talaria-flutter-bootstrap into .cursor/skills/ when the Flutter app should report errors, screens, and HTTP. An empty TALARIA_API_KEY leaves the SDK off. Binding init and runApp share one zone. The Beamer location reports the screen. TalariaScreenCapture wraps the routed child.
base=https://raw.githubusercontent.com/newtalaria/clean-architecture/main/skills
mkdir -p .cursor/skills/talaria-flutter-bootstrap
curl -fsSL "$base/talaria-flutter-bootstrap/SKILL.md" \
-o .cursor/skills/talaria-flutter-bootstrap/SKILL.mdThe worked example is examples/flutter/hybrid/lib/bootstrap/talaria_monitoring.dart.