{"slug":"skydoves-collecting-flows-safely","source_name":"skydoves/collecting-flows-safely","name":"Skydoves/Collecting Flows Safely","description":"Use this skill to migrate Compose UI from `collectAsState()` to `collectAsStateWithLifecycle()`, hoist `Flow<T>` parameters out of composables, and apply `.conflate()` / `.distinctUntilChanged()` / `snapshotFlow` so background CPU and battery stop draining and chatty flows stop invalidating the UI per emission. Covers ViewModel `StateFlow`/`SharedFlow` consumers, sensor and location streams, and the \"Flow as composable parameter\" antipattern. Trigger when the user mentions `collectAsState`, `col","version":1,"lift":{"pass_rate_delta_pts":13.64,"pass_rate_pct":100,"total_cases":22,"passed_cases":22,"tokens_delta_pct":163,"turns_delta_pct":0,"verdict":"pass","benchmark_model":"gemini-3.6-flash","grading_method":"judged","completed_at":"2026-08-19T05:44:55.618883+00:00"},"skill_score":null,"benchmark_models":[{"model":"gemini-3.6-flash","headline":true,"delta_pts":13.64,"with_pass_pct":100,"without_pass_pct":86.4,"tokens_delta_pct":163,"turns_delta_pct":0,"total_cases":22,"cases_aggregated":22,"verdict":"pass","never_hurt":true,"completed_at":"2026-08-19T05:44:55.618883+00:00","run_id":"3f93ba7d-ab7c-4361-b35d-4ef36ff8df4e","version_number":1,"is_latest_version":true,"gate":null}],"trust":{"skill_safety":"passed","safety_status":"clean","intent_verdict":"safe","content_status":"clean","indexable":true},"license":"Apache-2.0. See LICENSE for complete terms.","install_count":0,"manifest_hash":"1e876f43d85427ec0118b90d0b774c4d600d636ba6c607facbdb456af45c2c14","raw_url":"https://app.decimal.ai/s/skydoves-collecting-flows-safely/SKILL.md","scorecard_url":"https://app.decimal.ai/skills/skydoves-collecting-flows-safely"}