Add implementing-android-code skill and deduplicate CLAUDE.md#6534
Add implementing-android-code skill and deduplicate CLAUDE.md#6534SaintPatrck merged 8 commits intomainfrom
Conversation
|
Claude finished @SaintPatrck's task in 4m 31s —— View job Re-Review Summary (commit
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6534 +/- ##
=======================================
Coverage 86.47% 86.47%
=======================================
Files 786 786
Lines 56754 56754
Branches 8253 8253
=======================================
Hits 49077 49077
Misses 4817 4817
Partials 2860 2860 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Great job! No new security vulnerabilities introduced in this pull request |
02ba491 to
a3cd5c7
Compare
65b54f0 to
acc9c0e
Compare
theMickster
left a comment
There was a problem hiding this comment.
Only a couple minor specific observations.
In general, I think it wise to keep considering opportunities to reduce duplication and overly wordy explanations. Between the new Skill and the Claude.md itself, there's a lot of information that feels like it could be simplified or even moved into child Claude.md files closer to code.
If your CLAUDE.md is too long, Claude ignores half of it because important rules get lost in the noise.
|
|
||
| Use the `reviewing-changes` skill for structured code review checklists covering MVVM/Compose patterns, security validation, and type-specific review guidance. | ||
|
|
||
| ### Codebase Discovery |
There was a problem hiding this comment.
♻️ Reading the items in this section feels like a new skill that Claude should invoke when exploring the codebase.
There was a problem hiding this comment.
💡 I like that idea. I'll experiment and see what I can put together.
| --- | ||
| name: implementing-android-code | ||
| version: 0.1.0 | ||
| description: This skill should be used when implementing Android code in Bitwarden. Covers critical patterns, gotchas, and anti-patterns unique to this codebase. Triggered by "How do I implement a ViewModel?", "Create a new screen", "Add navigation", "Write a repository", "BaseViewModel pattern", "State-Action-Event", "type-safe navigation", "@Serializable route", "SavedStateHandle persistence", "process death recovery", "handleAction", "sendAction", "Hilt module", "Repository pattern", "implementing a screen", "adding a data source", "handling navigation", "encrypted storage", "security patterns", "Clock injection", "DataState", or any questions about implementing features, screens, ViewModels, data sources, or navigation in the Bitwarden Android app. |
There was a problem hiding this comment.
💡 The skill description here is very long. I recommend that the team make note of times when Claude Code didn't invoke the skill when it should have and maybe consider trimming this down a tad.
…AUDE.md Create new skill covering ViewModel SAE pattern, type-safe navigation, data layer patterns, security, and testing with copy-pasteable templates. Codebase discovery commands moved to CLAUDE.md. Deduplicate anti-patterns that restated key principles, consolidate doc references, and compact the references section. Co-Authored-By: Claude <noreply@anthropic.com>
Replace args.initialData with args.itemId to match ExampleArgs definition in the Navigation template. Co-Authored-By: Claude <noreply@anthropic.com>
…kill - Add missing ErrorDialogDismiss action, handler, and when branch referenced by the Screen template but absent from the ViewModel template - Correct hiltViewModel import to match codebase convention (androidx.hilt.lifecycle.viewmodel.compose) Co-Authored-By: Claude <noreply@anthropic.com>
Co-authored-by: claude[bot] <209825114+claude[bot]@users.noreply.github.com>
- Remove hardcoded storage prefixes from disk source key constants (BaseDiskSource/BaseEncryptedDiskSource auto-prepend via withBase()) - Fix getBoolean signature to match BaseDiskSource API (no defaultValue param) - Remove @Inject from ExampleRepositoryImpl in SKILL.md (provided via Hilt modules) - Remove @Inject from ExampleDiskSource and rename to ExampleDiskSourceImpl in SKILL.md Co-Authored-By: Claude <noreply@anthropic.com>
Add README.md, CHANGELOG.md, and CONTRIBUTING.md for marketplace preparation. Set version to 0.1.0 as initial pre-release. Co-Authored-By: Claude <noreply@anthropic.com>
- Add missing handleDataReceived function to ViewModel pattern summary - Remove paddingValues from BitwardenScaffold content lambda (handled internally) - Use actual typographic quote characters in string resource examples - Update DiskSource pattern to extend BaseEncryptedDiskSource with correct API Co-Authored-By: Claude <noreply@anthropic.com>
acc9c0e to
0252cac
Compare

🎟️ Tracking
N/A — Internal Claude Code skill and configuration improvement.
📔 Objective
Add a new
implementing-android-codeClaude Code skill with supporting templates, and clean up duplication in.claude/CLAUDE.md.New skill (
.claude/skills/implementing-android-code/):SKILL.md— Quick reference for Bitwarden-specific patterns: ViewModel SAE, type-safe navigation, Screen/Compose, data layer, security (encrypted storage, input validation), testing, and Clock injectiontemplates.md— Copy-pasteable code templates derived from actual codebase examples (LoginViewModel, LoginNavigation, LoginScreen, GeneratorRepositoryModule, AuthDiskModule, GeneratorViewModelTest)CLAUDE.md changes:
implementing-android-codeskill reference in Development Guidedocs/ARCHITECTURE.mdreferences from 5 to 2