{"id":53596,"plugin_id":"plugins_6abcb949170081919055247eaf18cfc0","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:54:35.134Z","digest":"2eb35e46020c64c90ed0144119fb0ef99ecdc53c54a907177ce64e41d2756fca","against":null,"payload":{"description":"Design, implement, and validate Android deep links, verified App Links, launcher shortcuts, external intents, and Assistant-facing actions through one typed and sanitized routing model.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":208}],"name":"android-app-actions","skill_md_contents":"---\nname: android-app-actions\ndescription: Design, implement, and validate Android deep links, verified App Links, launcher shortcuts, external intents, and Assistant-facing actions through one typed and sanitized routing model.\n---\n\n# Android App Actions\n\nUse one routing model for every external entry into the app. Prefer a small\nsurface over exposing the full navigation graph.\n\n## Steps\n\n1. List one to three high-value destinations or verbs the user actually needs.\n2. Map each to the thinnest surface that fits: App Link / deep link, static or\n   dynamic shortcut, notification action, widget action, or Assistant capability.\n3. Funnel all external entry points through a single typed destination or\n   domain-command type.\n4. Validate and sanitize host, path, and query parameters before navigation or\n   business logic runs.\n5. Exercise cold start, warm start, duplicate launch, back stack, bad input, and\n   missing content on a real device.\n\n## Smoke invocation\n\n```bash\nadb -s <serial> shell am start -W \\\n  -a android.intent.action.VIEW \\\n  -d \"https://example.com/path?item=123\" \\\n  <package>\n```\n\nFor Flutter, keep URI parsing and destination mapping unit-testable in Dart;\nmanifest verification and system launch remain Android concerns.\n\n## Hard rules\n\n- Do not open the entire navigation tree to the outside world.\n- Do not invent parallel routers for links, shortcuts, notifications, and widgets.\n- Never trust inbound ids, hosts, paths, or query values.\n- Compilation of XML or manifests is not proof — invoke the action on a target\n  and confirm the destination.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}