Conversation
Teaches Claude to diagnose and resolve build failures from Bitwarden SDK (com.bitwarden:sdk-android) version updates with a five-phase workflow: identify, diagnose, investigate, fix, and assess behavioral impact.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6650 +/- ##
==========================================
- Coverage 85.80% 85.09% -0.71%
==========================================
Files 848 934 +86
Lines 58851 59649 +798
Branches 8351 8415 +64
==========================================
+ Hits 50497 50761 +264
- Misses 5455 5955 +500
- Partials 2899 2933 +34
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Claude finished @SaintPatrck's task in 2m 18s —— View job I'll analyze this and get back to you. |
Code Review SummaryPR: llm: Add resolving-sdk-updates skill OverviewThis PR adds a well-structured Claude Code skill for diagnosing and resolving build failures caused by Bitwarden SDK version updates. The five-phase workflow (identify, diagnose, investigate, fix, assess) is thorough and the reference material in common-fix-patterns.md covers the common error categories well. Strengths:
Findings
No critical, important, or correctness issues found. |
|
Fixed Issues (1)Great job! The following issues were fixed in this Pull Request
|
|
@claude |
Code Review SummaryPR: llm: Add resolving-sdk-updates skill OverviewThis PR adds a well-structured Claude Code skill for diagnosing and resolving build failures caused by Bitwarden SDK version updates. The five-phase workflow (identify, diagnose, investigate, fix, assess) is thorough and the reference material in common-fix-patterns.md covers the common error categories well. Strengths:
Re-review (commit 90b8806)Reviewed the incremental changes adding preprocessed context injection. The three shell commands are safe and appropriate, and the updated Proactive Behavior / Phase 1 sections correctly reference the preprocessed data. No issues found. FindingsNo actionable findings. Both previously suggested items were addressed by the author. Result: Approved -- clean PR with no critical, important, or correctness issues. |
- Replace $(git branch --show-current) with hardcoded sdlc/sdk-update branch name to avoid $() command substitution blocked by permission checks - Add allowed-tools frontmatter for git and gh commands used in preprocessed context
Code Review SummaryOverall Assessment: APPROVE Re-reviewed incremental commit b31c448 (Fix skill preprocessing: remove command substitution and add allowed-tools). The two changes are sound: Code Review Details
No actionable findings. |
|
|
||
| CRITICAL: Before applying any fix, always read the `sdk-internal` PR diff to understand the author's intent. A compile fix alone may be insufficient if the SDK change introduces new behavior that requires a dedicated code path. | ||
|
|
||
| ## Current State (preprocessed) |
There was a problem hiding this comment.
💭 We can cut most of these setup steps if we assume this runs when sdlc-sdk-update.yml fails, SDK Update PR description will have the changelog as a list of sdk-internal PRs and we have the build run failure logs / know which run failed. We can then focus tokens and runtime on (1) preliminary diagnose based on common errors and if that isn't enough, (2) analysing the PRs in the changelog and how they may have influenced the build failure.
There was a problem hiding this comment.
I don't want to assume that this is run only when the update fails. Since we mock the SDK behavior in tests there's a real risk of behavior changes in the SDK going unnoticed even when our tests pass. The sdk update workflow only catches breaking code changes so, imo, it's important that the SDK pull requests are always reviewed. Just like a Human contributor/maintainer is expected to do.
There was a problem hiding this comment.
Also, side note: the !<command> syntax I'm using below doesn't have a significant impact on token usage. The preceding ! indicates the <command> is executed as a raw bash command and the result is injected into the content. My understanding is it's not executed by the LLM so there's not overhead of invoking tools and parsing responses. More about ! in the Advanced Patterns docs.
Co-authored-by: Álison Fernandes <vvolkgang@users.noreply.github.com>


🎟️ Tracking
Internal tooling — no Jira ticket.
Used to resolve breaking changes in #6615
📔 Objective
Adds a new Claude Code skill (
resolving-sdk-updates) that teaches Claude to diagnose and resolve build failures from Bitwarden SDK (com.bitwarden:sdk-android) version updates.The skill provides a five-phase workflow:
sdk-internalPR references and Jira ticketswhen, removed API, renamed type, new required parameter, new error type)sdk-internalPR diffs to understand the author's intent behind breaking changesPreprocessed context injection:
git branch,git diff, andgh run liston load to detect current branch, SDK version delta, and CI failuresAllowed-tools (least-privilege):
git branch --show-current,git diff *gh run list *,gh run view *,gh pr view *,gh pr diff *Files added:
.claude/skills/resolving-sdk-updates/SKILL.md— main skill instructions with preprocessed context and allowed-tools frontmatter.claude/skills/resolving-sdk-updates/references/common-fix-patterns.md— error category to fix strategy quick-reference