executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
omi-flutter-patternsFlutter Dart BLE device communication state management Provider backend integration localization cross-platform iOS Android
Independent GitHub snapshot · Automated classification · Original documentation governs
This skill provides guidance for working with the Omi Flutter app, including BLE device communication, state management, backend integration, and localization.
Use this skill when:
app/The app uses Provider pattern for state management:
// Define provider
class ConversationProvider extends ChangeNotifier {
List<Conversation> _conversations = [];
List<Conversation> get conversations => _conversations;
Future<void> loadConversations() async {
_conversations = await api.getConversations();
notifyListeners();
}
}
// Use in widget
final provider = Provider.of<ConversationProvider>(context);
CRITICAL: All user-facing strings must use localization:
// ✅ GOOD
Text(context.l10n.helloWorld)
// ❌ BAD
Text('Hello World')
Adding keys: Use jq to add keys to ARB files, then run cd app && flutter gen-l10n
// lib/backend/http/api/conversations.dart
class ConversationsAPI {
Future<List<Conversation>> getConversations() async {
final response = await httpClient.get('/v1/conversations');
return (response.data['items'] as List)
.map((json) => Conversation.fromJson(json))
.toList();
}
}
// lib/backend/http/webhooks.dart
class WebSocketClient {
Future<void> connect(String uid) async {
_socket = await WebSocket.connect('$baseUrl/v4/listen?uid=$uid');
_socket!.listen((data) {
// Handle transcript
});
}
}
// Scan for devices
final devices = await scanForOmiDevices(); // Name: "Omi"
// Connect
await device.connect();
// Discover services
final services = await device.discoverServices();
// Audio service UUID: 19B10000-E8F2-537E-4F6C-D104768A1214
// Audio data UUID: 19B10001-E8F2-537E-4F6C-D104768A1214
// Codec type UUID: 19B10002-E8F2-537E-4F6C-D104768A1214
The app supports:
ios/Config/android/app/src/macos/Config/Use PlatformManager for platform detection.
lib/pages/lib/backend/http/api/flutter_blue_plus packageThe docs/ folder is the single source of truth for all user-facing documentation, deployed at docs.omi.me.
docs/doc/developer/AppSetup.mdx - View onlinedocs/doc/developer/Protocol.mdx - View online.cursor/rules/flutter-architecture.mdc.cursor/rules/flutter-architecture.mdc - App structure and state management.cursor/rules/flutter-backend-integration.mdc - Backend API integration.cursor/rules/flutter-ble-protocol.mdc - BLE device communication.cursor/rules/flutter-localization.mdc - Localization requirements.cursor/rules/flutter-platform-specific.mdc - Platform-specific code.cursor/agents/flutter-developer/ - Uses this skill for Flutter development/flutter-setup - Uses this skill for setup guidance/flutter-test - Uses this skill for testing patterns/flutter-build - Uses this skill for build patterns