schema: spec-driven context: | Tech stack: Flutter/Dart app for Android+iOS. Version 0.1.59+60. Dart SDK ^3.7.0. Architecture: Provider/ChangeNotifier with Spanish domain folders: estado, modelos, pantallas, servicios, widgets. Core deps: just_audio, audio_service, audio_session, provider, sqflite, shared_preferences, http, google_fonts, flutter_animate, cached_network_image, shimmer, share_plus, file_picker, uuid, url_launcher, geolocator, geocoding, package_info_plus, path_provider. Testing: flutter_test via `flutter test`; Strict TDD enabled. Dev: sqflite_common_ffi for unit tests. Style: flutter_lints via analysis_options.yaml; use flutter analyze and dart format. Constraint: never run flutter build after changes. strict_tdd: true testing: strict_tdd: true detected: 2026-06-04 test_runner: framework: flutter_test command: flutter test layers: unit: available: true tool: flutter_test integration: available: false tool: null e2e: available: false tool: null coverage: available: true command: flutter test --coverage quality_tools: linter: available: true command: flutter analyze type_checker: available: true command: flutter analyze formatter: available: true command: dart format . rules: proposal: - Include rollback plan for risky changes - Identify affected modules/packages specs: - Use Given/When/Then format for scenarios - Use RFC 2119 keywords design: - Include architecture decisions with rationale tasks: - Group tasks by phase - Use hierarchical numbering - Keep tasks small enough to complete in one session apply: - Follow existing code patterns and conventions - Strict TDD Mode is active - Never run flutter build verify: - Run tests if possible - Compare implementation against every spec scenario - Never run flutter build archive: - Persist final state to Engram and openspec