Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/madebyaris/rakitui-ai/flutter-developmentgit clone --depth 1 https://github.com/madebyaris/rakitui-aiWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.04398 |
| Opus 5 | $0.00000 | $0.02199 |
| Sonnet 5 | $0.00000 | $0.00880 |
| Haiku 4.5 | $0.00000 | $0.00440 |
Grade A, and why
flutter-development scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 891 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Flutter Development Patterns
Modern Flutter patterns for cross-platform mobile, web, and desktop development.
CRITICAL: Agentic-First Flutter Development
Pre-Development Verification (MANDATORY)
Before writing ANY Flutter code:
1. CHECK FLUTTER INSTALLATION
→ run_terminal_cmd("flutter --version")
→ run_terminal_cmd("flutter doctor")
2. VERIFY CURRENT VERSIONS (use web_search)
→ web_search("Flutter stable version December 2024")
→ web_search("Dart SDK version December 2024")
3. CHECK EXISTING PROJECT
→ Does pubspec.yaml exist? Read it first!
→ What Flutter/Dart SDK is specified?
→ Are dependencies already installed?
4. FOR NEW PROJECTS - USE flutter create
→ NEVER manually create pubspec.yaml from scratch
→ run_terminal_cmd("flutter create my_app")
CLI-First Flutter Development
ALWAYS use Flutter CLI:
# Project creation (NEVER manually create pubspec.yaml)
flutter create my_app
flutter create --org com.example my_app
flutter create --template package my_package
# Add dependencies (NEVER manually edit pubspec.yaml for adding)
flutter pub add provider
flutter pub add go_router
flutter pub add flutter_bloc
flutter pub add dio
flutter pub add freezed --dev
flutter pub add build_runner --dev
# Get dependencies (ALWAYS after any pubspec change)
flutter pub get
# Code generation (for freezed, json_serializable)
dart run build_runner build --delete-conflicting-outputs
# Verify project health
flutter analyze
flutter test
Post-Edit Verification
After ANY Flutter code changes, ALWAYS run:
# Get dependencies
flutter pub get
# Analyze for issues
flutter analyze
# Run tests
flutter test
# Check formatting
dart format --set-exit-if-changed .
Common Dart/Flutter Syntax Traps (Avoid These!)
// WRONG: Missing const for immutable widgets
Widget build(BuildContext context) {
return Container( // Should be const Container()
child: Text('Hello'),
);
}
// CORRECT: Use const where possible
Widget build(BuildContext context) {
return const Container(
child: Text('Hello'),
);
}
// WRONG: Not disposing controllers
class _MyWidgetState extends State<MyWidget> {
final controller = TextEditingController();
// Missing dispose!
}
// CORRECT: Always dispose controllers
class _MyWidgetState extends State<MyWidget> {
final controller = TextEditingController();
@override
void dispose() {
controller.dispose();
super.dispose();
}
}
// WRONG: Using setState after dispose
void _onDataLoaded(data) async {
await fetchMore();
setState(() { // Might be called after dispose!
this.data = data;
});
}
// CORRECT: Check mounted before setState
void _onDataLoaded(data) async {
await fetchMore();
if (mounted) {
setState(() {
this.data = data;
});
}
}
// WRONG: Missing required in named parameters (Dart 3+)
void greet({String name}) { } // Error in null-safe Dart
// CORRECT: Use required for non-nullable required params
void greet({required String name}) { }
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 891 lines · 0 tokens per session scan A 80fdead8b9ce
flutter-development is a cursor rule published in the GitHub repository madebyaris/rakitui-ai (5 stars, last pushed 7mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 4,398 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
errors
Please don't fix any code errors unless reported by XcodeBuildMCP server tool responses.
com-example-service-NotificationService
AI rules for com.example.service.NotificationService.
AIRules
NexusLink MCP four-step workflow and prohibitions (copy to project .cursor/rules/ and fill the project-specific section).
002-verify-before-act
Requires Claude to read before writing, verify before installing, and confirm before destructive operations.
cursorrules
你是一个 ascript 自动化脚本开发助手。.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.