Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.
Grounded in the docs - follow a source before acting on it.
Instruction file imported from edbecnel/speakup-connect (.cursor/rules/Dart-Flutter-conventions-for-this-repo-Riverpod-go-router-lints.mdc). Copyright stays with the author.
Copy one of these into your project. Installing also returns the manifest and these snippets.
yaml
targets:
- https://api.opensmartroute.ai/api/v1/registry/edbecnel-speakup-connect-dart-flutter-conventions-for-th-f40c64/manifest # or paste the manifest below
Manifest
An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.
{
"ocm": "1",
"id": "edbecnel-speakup-connect-dart-flutter-conventions-for-th-f40c64",
"kind": "skill",
"name": "Dart-Flutter-conventions-for-this-repo-Riverpod-go-router-lints",
"description": "Dart/Flutter standards: - File names: snake_case.dart. Classes: PascalCase. Providers: camelCase…Provider. - Prefer `ConsumerWidget` for screens; only use Stateful when truly needed. - AsyncValue: ALWAYS handle loading/error/data (use AppLoadingIndicator/AppErrorWidget where appropriate). - Widgets contain no business logic; providers/usecases do the work. - Route usage: - Routes are centralized in `lib/core/router/app_router.dart`. - Use named routes/constants; no stringly-typed path concatenation in widgets. - Localization: - No hardcoded user-facing strings in widgets. - Add English keys to `speakup_connect_app/lib/l10n/app_en.arb` and use `context.l10n.<key>()`. - Error handling: - Catch Firebase exceptions in datasource/repository and translate to domain Failure types; don’t leak raw Firebase exceptions to UI. - Keep files/classes small (target ≤300 lines/file, ≤200 lines/class); split when needed. - Respect analyzer strictness (`analysis_options.yaml`: strict-casts/strict-inference/strict-raw-types).",
"publisher": "edbecnel",
"version": "1.0.0",
"capabilities": {
"domains": [
"coding"
],
"tags": [
"skill-md",
"github-cursor-rules"
],
"languages": [
"en"
]
},
"quality_prior": 0.6,
"examples": [
"Dart/Flutter standards: - File names: snake_case.dart. Classes: PascalCase. Providers: camelCase…Provider. - Prefer `ConsumerWidget` for screens; only use Stateful when truly needed. - AsyncValue: ALWAYS handle loading/error/data (use AppLoadingIndicator/AppErrorWidget where appropriate). - Widgets contain no business logic; providers/usecases do the work. - Route usage: - Routes are centralized in `lib/core/router/app_router.dart`. - Use named routes/constants; no stringly-typed path concatenation in widgets. - Localization: - No hardcoded user-facing strings in widgets. - Add English keys to `speakup_connect_app/lib/l10n/app_en.arb` and use `context.l10n.<key>()`. - Error handling: - Catch Firebase exceptions in datasource/repository and translate to domain Failure types; don’t leak raw Firebase exceptions to UI. - Keep files/classes small (target ≤300 lines/file, ≤200 lines/class); split when needed. - Respect analyzer strictness (`analysis_options.yaml`: strict-casts/strict-inference/strict-raw-types)."
],
"primary": false,
"metadata": {
"source": {
"provider": "github-cursor-rules",
"repository": "https://github.com/edbecnel/speakup-connect",
"path": ".cursor/rules/Dart-Flutter-conventions-for-this-repo-Riverpod-go-router-lints.mdc",
"ref": "87859393224d65931252120fddcb66c573ff1392",
"url": "https://github.com/edbecnel/speakup-connect/blob/87859393224d65931252120fddcb66c573ff1392/.cursor/rules/Dart-Flutter-conventions-for-this-repo-Riverpod-go-router-lints.mdc",
"key": "edbecnel/speakup-connect/.cursor/rules/Dart-Flutter-conventions-for-this-repo-Riverpod-go-router-lints.mdc"
}
},
"instructions": "Dart/Flutter standards:\n- File names: snake_case.dart. Classes: PascalCase. Providers: camelCase…Provider.\n- Prefer `ConsumerWidget` for screens; only use Stateful when truly needed.\n- AsyncValue: ALWAYS handle loading/error/data (use AppLoadingIndicator/AppErrorWidget where appropriate).\n- Widgets contain no business logic; providers/usecases do the work.\n- Route usage:\n - Routes are centralized in `lib/core/router/app_router.dart`.\n - Use named routes/constants; no stringly-typed path concatenation in widgets.\n- Localization:\n - No hardcoded user-facing strings in widgets.\n - Add English",
"cost": {
"context_tokens": 257
}
}
Fetch it by URL: GET /api/v1/registry/edbecnel-speakup-connect-dart-flutter-conventions-for-th-f40c64/manifest?version=1.0.0
Reviews
Star ratings from people who tried it. One review per account; edit yours any time.
No reviews yet. Install it, try it, and be the first to rate it.