← ClerkCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Clerk
Snapshot Sep 30, 2026 · 23:09 UTC · version 0.1.0
Collection source: not recorded for this historical snapshot.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"name": "clerk-android",
"description": "Implement Clerk authentication for native Android apps using Kotlin and Jetpack Compose with clerk-android source-guided patterns. Use for prebuilt AuthView/UserButton or custom API-driven auth flows. Do not use for Expo or React Native projects.",
"included_files": [
{
"relative_path": "references/custom.md",
"size_in_bytes": 3869
},
{
"relative_path": "references/prebuilt.md",
"size_in_bytes": 2760
}
],
"skill_md_contents": "---\nname: clerk-android\ndescription: Implement Clerk authentication for native Android apps using Kotlin and\n Jetpack Compose with clerk-android source-guided patterns. Use for prebuilt AuthView/UserButton\n or custom API-driven auth flows. Do not use for Expo or React Native projects.\nlicense: MIT\nallowed-tools: WebFetch\nmetadata:\n author: clerk\n version: 1.2.0\ncompatibility: Requires Android Studio and clerk-android Gradle dependency\n---\n\n# Clerk Android (Native)\n\nThis skill implements Clerk in native Android projects by following current `clerk-android` SDK and docs patterns.\n\n## Activation Rules\n\nActivate this skill when either condition is true:\n- The user explicitly asks for Android, Kotlin, Jetpack Compose, or native mobile Clerk implementation on Android.\n- The project appears to be native Android (for example `build.gradle(.kts)` with Android plugins, `AndroidManifest.xml`, `app/src/main/java`, Compose UI files).\n\nDo not activate this skill when either condition is true:\n- The project is Expo.\n- The project is React Native.\n\nIf Expo/React Native signals are present, route to the general setup skill instead.\n\n## What Do You Need?\n\n| Task | Reference |\n|------|-----------|\n| Prebuilt AuthView / UserButton (fastest) | references/prebuilt.md |\n| Custom API-driven auth flows (full control) | references/custom.md |\n\n## Quick Start\n\n| Step | Action |\n|------|--------|\n| 1 | Confirm project type is native Android and not Expo/React Native |\n| 2 | Determine flow type (`prebuilt` or `custom`) and load the matching reference file |\n| 3 | Ensure a real Clerk publishable key exists (or ask developer) |\n| 4 | Ensure correct Clerk artifacts are installed for the selected flow |\n| 5 | Read official Android quickstart and verify required setup (Native API, min SDK/Java, manifest, initialization) |\n| 6 | Inspect `clerk-android` source/sample patterns relevant to selected flow |\n| 7 | Implement flow by following only the selected reference checklist |\n\n## Decision Tree\n\n```text\nUser asks for Clerk in Android/Kotlin\n |\n +-- Expo/React Native project detected?\n | |\n | +-- YES -> Do not use this skill\n | |\n | +-- NO -> Continue\n |\n +-- Existing auth UI detected?\n | |\n | +-- Prebuilt views detected -> Load references/prebuilt.md\n | |\n | +-- Custom flow detected -> Load references/custom.md\n | |\n | +-- New implementation -> Ask developer prebuilt/custom, then load matching reference\n |\n +-- Ensure publishable key and SDK initialization path\n |\n +-- Ensure correct Android artifacts are installed\n |\n +-- Verify quickstart prerequisites in project\n |\n +-- Implement using selected flow reference\n```\n\n## Flow References\n\nAfter flow type is known, load exactly one:\n- Prebuilt flow: [references/prebuilt.md](references/prebuilt.md)\n- Custom flow: [references/custom.md](references/custom.md)\n\nDo not blend the two references in a single implementation unless the developer explicitly asks for a hybrid approach.\n\n## Interaction Contract\n\nBefore any implementation edits, the agent must have both:\n- flow choice: `prebuilt` or `custom`\n- a real Clerk publishable key\n\nIf either value is missing from the user request/context:\n- ask the user for the missing value(s)\n- pause and wait for the answer\n- do not edit files or install dependencies yet\n\nOnly skip asking when the user has already explicitly provided the value in this conversation.\n\n## Source-Driven Templates\n\nDo not hardcode implementation examples in this skill. Inspect current `clerk-android` source/docs for the installed SDK version before implementing.\n\n| Use Case | Source of Truth |\n|----------|-----------------|\n| SDK artifacts and dependency split (`clerk-android-api` vs `clerk-android-ui`) | `clerk-android` README and Android install docs |\n| SDK initialization and publishable key wiring | Android quickstart and `source/api/.../Clerk.kt` |\n| Prebuilt auth and profile behavior | `source/ui/.../AuthView.kt`, `source/ui/.../UserButton.kt`, and prebuilt sample |\n| Custom auth sequencing and factor handling | `source/ui/auth/*`, `source/api/auth/*`, and custom-flows sample |\n| Capability/feature gating from instance settings | `Clerk` public fields (for example `enabledFirstFactorAttributes`, `socialProviders`, `isGoogleOneTapEnabled`, `mfaIsEnabled`) and environment model source |\n| Required Android setup checklist | Official Android quickstart (`/docs/android/getting-started/quickstart`) |\n\n## Execution Gates (Do Not Skip)\n\n1. No implementation edits before prerequisites\n- Do not edit project files until flow type is confirmed and a valid publishable key is available.\n\n2. Missing flow or key must trigger a question\n- If flow choice is missing, explicitly ask: prebuilt views or custom flow.\n- If publishable key is missing/placeholder/invalid, explicitly ask for a real key.\n- Do not continue until both answers are provided.\n\n3. Publishable key wiring mode is mandatory\n- By default, wire the developer-provided key directly in `Clerk.initialize(...)`.\n- Do not introduce secret-management indirection unless explicitly requested.\n\n4. Artifact install policy is mandatory\n- Prebuilt flow: use `clerk-android-ui` (includes API).\n- Custom flow: use `clerk-android-api` unless prebuilt components are explicitly requested.\n- If Clerk artifacts are missing, add the latest stable release available.\n\n5. Android quickstart compliance is mandatory\n- Verify Native API is enabled for the Clerk app.\n- Verify Android requirements from quickstart are implemented in project (minimum SDK and Java target, manifest internet permission, app-level Clerk initialization).\n- Verify app waits for SDK initialization (`Clerk.isInitialized`) before assuming auth-ready state.\n\n6. Capability-driven behavior is mandatory\n- Use Clerk runtime capability/settings state (for example enabled factors/social providers/MFA flags) to gate flow behavior.\n- Do not hardcode factor assumptions that may conflict with dashboard configuration.\n\n7. Reference-file discipline is mandatory\n- Once flow is selected, follow only that flow reference file for implementation and verification.\n\n8. Custom-flow structure parity is mandatory\n- For `custom` flow, preserve multi-step auth progression and factor-specific handling (no single all-fields form by default).\n- Keep UI, state orchestration, and Clerk API integration in separate modules.\n\n9. Prebuilt preference is mandatory when selected\n- For `prebuilt` flow, do not rebuild auth forms with custom API calls unless explicitly requested.\n- Use `AuthView`/`UserButton` as default building blocks.\n\n## Workflow\n\n1. Detect native Android vs Expo/React Native.\n2. If flow type is not explicitly provided, ask user for `prebuilt` or `custom`.\n3. If publishable key is not explicitly provided, ask user for it.\n4. Wait for both answers before changing files.\n5. Load matching flow reference file.\n6. Ensure `Clerk.initialize(...)` path and publishable key wiring are valid.\n7. Ensure dependencies/artifacts match selected flow.\n8. Review Android quickstart requirements and apply missing setup in project.\n9. Implement using selected reference checklist.\n10. Verify using selected reference checklist plus shared gates.\n\n## Common Pitfalls\n\n| Level | Issue | Prevention |\n|-------|-------|------------|\n| CRITICAL | Not asking for missing flow choice before implementation | Ask for `prebuilt` vs `custom` and wait before edits |\n| CRITICAL | Not asking for missing publishable key before implementation | Ask for key and wait before edits |\n| CRITICAL | Starting implementation before flow type is confirmed | Confirm flow first and load matching reference |\n| CRITICAL | Skipping Android quickstart prerequisites | Verify and apply required setup from official Android quickstart |\n| CRITICAL | Missing app-level `Clerk.initialize(...)` call | Initialize Clerk from `Application` startup path |\n| HIGH | Wrong artifact for chosen flow | Prebuilt: `clerk-android-ui`; custom: `clerk-android-api` |\n| HIGH | Rendering auth UI before SDK initialization completes | Gate UI with `Clerk.isInitialized` state |\n| HIGH | Hardcoding auth factors/social providers | Drive behavior from Clerk runtime capability fields |\n| HIGH | Using this skill for Expo/React Native | Detect and route away before implementation |\n\n## See Also\n\n- `clerk` skill for top-level Clerk routing\n- `clerk-setup` skill for cross-framework quickstart setup\n- `https://github.com/clerk/clerk-android`\n- `https://clerk.com/docs/android/getting-started/quickstart`\n"
}SHA-256: 62818dcae4689c7a579bdb536d5c6a7480484ca009078d9972296cff9397b425