feat(android): add auth0-android-major-migration skill#129
feat(android): add auth0-android-major-migration skill#129sanchitmehtagit wants to merge 2 commits into
Conversation
Adds a spec-driven skill that upgrades an existing com.auth0.android:auth0 (v3) integration to the next major version (v4), the Android counterpart to auth0-swift-major-migration. The skill is source-driven and grep-gated: it fetches the v4 SDK's actual Kotlin source to confirm signatures, audits which Auth0 APIs the project actually calls, and applies only the breaking changes that affect real call sites — then builds until green and emits a migration summary. Target version is argument-based: an optional version argument is validated (must be a published tag, within the next major, and not a downgrade) and the skill stops and asks on failure; when omitted it auto-resolves the latest v4 release (including pre-releases). Covers the v4 prerequisite gate (minSdk 26, Java 17, Gradle/AGP/Kotlin) and the documented breaking and behavioral changes. Includes references (process, security), an eval suite, and registers the skill across the plugin manifests and READMEs.
|
Warning Review limit reached
More reviews will be available in 28 minutes and 53 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughAdds the Changesauth0-android-major-migration skill
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/auth0/skills/auth0-android-major-migration/references/process.md`:
- Around line 14-17: The markdown file contains three formatting issues that
need to be addressed for consistency with markdown linting standards. First, add
blank lines before and after the fenced code block containing the gh api command
(lines 14-17) and the code block at lines 96-97 to improve readability. Second,
add the language specifier "text" to the code block at line 157 that shows the
App and Backend architecture diagram pattern. These changes ensure the markdown
is properly formatted and maintains consistency throughout the documentation.
In `@plugins/auth0/skills/auth0-android-major-migration/references/security.md`:
- Around line 13-19: The markdown file has formatting inconsistencies flagged by
the linter. Add the language specifier `text` to all checklist code blocks (the
ones containing [ ] checkboxes at lines 13-19, 29-33, 46-50, and 54-58) by
changing ``` to ```text. Additionally, ensure blank lines exist before and after
the code blocks at lines 22 and 36 to comply with MD031 markdown rule for proper
spacing around code blocks.
- Around line 73-77: The three consecutive bullet points about scopes, audience,
and callback URL scheme (lines 74-76) all begin with the verb "Verify", creating
repetitive sentence structure that reduces readability. Vary the opening verbs
by replacing "Verify" in the second bullet point with "Confirm" and in the third
bullet point with "Check" to maintain clarity while improving the flow and
readability of the list.
In `@plugins/auth0/skills/auth0-android-major-migration/SKILL.md`:
- Around line 245-260: The markdown formatting requires blank lines between
block-level elements to pass the markdownlint-cli2 linter. In the SKILL.md file,
add a blank line after each of the three section headers (the ones ending with
"build.gradle):**", "build.gradle.kts):**", and "libs.versions.toml):**") before
the opening of their respective code fences (groovy, kotlin, and toml). This
will ensure proper separation between the bold introductory text and the fenced
code blocks that follow.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 762a67b2-3cfe-40a2-85c0-c1fa05383d95
📒 Files selected for processing (15)
.claude-plugin/marketplace.json.cursor-plugin/marketplace.jsonPLUGIN.mdREADME.mdplugins/auth0/.codex-plugin/plugin.jsonplugins/auth0/.cursor-plugin/plugin.jsonplugins/auth0/README.mdplugins/auth0/skills/auth0-android-major-migration/SKILL.mdplugins/auth0/skills/auth0-android-major-migration/references/process.mdplugins/auth0/skills/auth0-android-major-migration/references/security.mdplugins/auth0/skills/auth0-android-major-migration/tests/benchmark-config.jsonplugins/auth0/skills/auth0-android-major-migration/tests/evals.jsonplugins/auth0/skills/auth0-android-major-migration/tests/graders.jsonplugins/auth0/skills/auth0-android-major-migration/tests/graders.tsplugins/auth0/skills/auth0-android-major-migration/tests/package.json
Tested against a sample scaffoldRan the skill's full workflow against a realistic v3 scaffold — a Kotlin app on Workflow results:
Correctness checks: no removed-v3 API names remain in source; new Result: a minimal, correct changeset that touched only the four APIs the project actually uses. |
Add blank lines around fenced code blocks (MD031) and language specifiers on checklist/diagram fences (MD040) in SKILL.md, process.md, and security.md. Docs-only; no behavioral change.
✅ skillsaw — All checks passedFull report
|
Description
Adds the auth0-android-major-migration skill — the Android counterpart to
auth0-swift-major-migration(#104) — for upgrading an existingcom.auth0.android:auth0(v3) integration to the next major version (v4).The skill is source-driven and grep-gated: it fetches the v4 SDK's actual Kotlin source to confirm signatures, audits which Auth0 APIs the project actually calls, and applies only the breaking changes that affect real call sites — then builds until green and emits a migration summary.
Argument-based version selection (improvement over the Swift sibling):
/auth0-android-major-migration 4.0.0) — it's validated (published tag, within the next major, not a downgrade) and the skill stops and asks on failure.4.0.0-beta.1today).Prerequisite gate (RAPID "block until satisfied"): minSdk 26, Java 17, Gradle 8.11.1+, AGP 8.10.1+, Kotlin 2.0.21 — checked and applied before any API migration.
Breaking changes covered (all grep-gated):
PasskeyAuthProviderremoved →AuthenticationAPIClientpasskey APIsUsersAPIClient) →// TODO:+ backend follow-upmfaClient(mfaToken)/MfaApiClientWebAuthProvider.useDPoP(context)moved to the login builderDPoPException.UNSUPPORTED_ERRORremovedSSOCredentials.expiresIn: Int→expiresAt: DateSecureCredentialsManagerAuth0-based constructors removedBehavioral changes (surfaced, no code change): default
minTtl0 → 60s,clearCredentials()now clears all storage,CredentialsManageruses the global executor.Structure
SKILL.md— argument-based version resolution + validation, prerequisite gate, source fetch, grep-gated audit, build-until-green, migration summaryreferences/process.md— version validation, prerequisite handling, build-system edge cases, MFA map, backend pattern, Gson notes, rollbackreferences/security.md— Android security invariantstests/— eval suite (evals.json,graders.json,graders.ts,benchmark-config.json,package.json)Registers the skill across the plugin manifests and READMEs.
Testing
skillsaw --strictpasses: A+, 0 errors, 0 warnings (43 skills)v4_developmentChecklist
Summary by CodeRabbit
New Features
auth0-android-major-migrationskill enabling automated migration of Auth0.Android projects from v3 to v4.Documentation