{"slug": "i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and", "title": "I built a routing CLI so AI agents don't skip Room migrations, coroutine ownership, and lifecycle boundaries", "summary": "Developer Rana Ahmed Hamdy built AI-Workflow, a routing CLI that makes Android boundary checks deterministic for AI coding agents. The tool maps observable facts about a change to required specialist procedures via a checked-in registry, avoiding LLM judgment. It addresses Room/SQLite migrations, coroutine ownership, and lifecycle boundaries that agents often miss.", "body_md": "Coding agents handle \"add a field, show it on screen\" fine. They\n\nconsistently miss the Android boundary around it:\n\nRoom/SQLite migrations that silently corrupt existing rows\n\nA refresh coroutine owned by a view callback instead of the ViewModel\n\nUI collection that keeps running after the Activity stops\n\nLifecycle/process-death paths nobody retested\n\nNone of it shows up as a compile error.\n\nI built AI-Workflow to make those checks deterministic. You state\n\nobservable facts about a change and a checked-in registry maps them\n\nto required specialist procedures:\n\nTask classification: brownfield / android / safety\n\nDetected concerns: concurrency, lifecycle, persistence, schema_migration\n\nRecommended tier: COMPLEX\n\nRequired checks:\n\nandroid-persistence-migration-readiness: because detected persistence, schema_migration\n\nkotlin-coroutines-readiness: because detected concurrency\n\nprotected-lifecycle-transaction-review: because detected lifecycle\n\nandroid-runtime-evidence-readiness: because detected lifecycle\n\nNo LLM judgment in that mapping — it's a registry lookup, same output\n\nevery run, every agent.\n\nInstall takes one command, no clone needed:\n\nuvx --from git+[https://github.com/RanaAhmedHamdy/AI-Workflow.git](https://github.com/RanaAhmedHamdy/AI-Workflow.git) \\\n\nai-workflow brownfield --platform android --profile safety \\\n\n--target /path/to/your-android-app --dry-run\n\nThere's also a lightweight Safety profile that gives you just the\n\nrouting + protected-boundary checks without requiring a full feature\n\nlifecycle. And a full Android fixture (SQLite migration fallback,\n\nViewModel coroutine ownership, lifecycle-aware Flow collection) with\n\nunit tests and debug build verified locally.\n\nPre-v1, Apache-2.0, honest about what's claimed vs unclaimed.", "url": "https://wpnews.pro/news/i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and", "canonical_source": "https://dev.to/ranaahmedhamdy/i-built-a-routing-cli-so-ai-agents-dont-skip-room-migrations-coroutine-ownership-and-lifecycle-1oh6", "published_at": "2026-08-26 06:21:17+00:00", "updated_at": "2026-08-26 06:44:06.242815+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "artificial-intelligence"], "entities": ["Rana Ahmed Hamdy", "AI-Workflow", "Room", "SQLite", "ViewModel", "Android"], "alternates": {"html": "https://wpnews.pro/news/i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and", "markdown": "https://wpnews.pro/news/i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and.md", "text": "https://wpnews.pro/news/i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and.txt", "jsonld": "https://wpnews.pro/news/i-built-a-routing-cli-so-ai-agents-don-t-skip-room-migrations-coroutine-and.jsonld"}}