planning-android-implementation

bởi bitwarden

Thiết kế kiến trúc và lập kế hoạch triển khai theo giai đoạn cho Bitwarden Android. Sử dụng khi lập kế hoạch triển khai, thiết kế kiến trúc, tạo tệp…

npx skills add https://github.com/bitwarden/android --skill planning-android-implementation

Implementation Planning

This skill takes a refined specification (ideally from the refining-android-requirements skill) and produces a phased implementation plan with architecture design, file inventory, and risk assessment.

Prerequisite: A clear set of requirements. If requirements are vague or incomplete, invoke the refining-android-requirements skill first.


Step 1: Classify Change

Determine the change type to guide scope and planning depth:

TypeDescriptionTypical Scope
New FeatureEntirely new functionality, screens, or flowsNew files + modifications, multi-phase
EnhancementExtending existing feature with new capabilitiesMostly modifications, 1-2 phases
Bug FixCorrecting incorrect behaviorTargeted modifications, single phase
RefactoringRestructuring without behavior changeModifications only, migration-aware
InfrastructureBuild, CI, tooling, or dependency changesConfig files, minimal code changes

State the classification and rationale before proceeding.


Step 2: Codebase Exploration

Search the codebase to find reference implementations and integration points. Use the discovery commands from the build-test-verify skill as needed.

Find Pattern Anchors

Identify 2-3 existing files that serve as templates for the planned work:

**Pattern Anchors:**
1. [file path] — [why this is a good reference]
2. [file path] — [why this is a good reference]
3. [file path] — [why this is a good reference]

Map Integration Points

Identify files that must be modified to integrate the new work:

  • Navigation: Nav graph registrations, route definitions
  • Dependency Injection: Hilt modules, @Provides / @Binds functions
  • Data Layer: Repository interfaces, data source interfaces, Room DAOs
  • API Layer: Retrofit service interfaces, request/response models
  • Feature Flags: Feature flag definitions and checks
  • Managers: Single-responsibility data layer classes (see docs/ARCHITECTURE.md Managers section)
  • Test Fixtures: Shared test utilities in src/testFixtures/ directories
  • Product Flavor Source Sets: Code in src/standard/ vs src/main/ for Play Services dependencies

Document Existing Patterns

Note the specific patterns used by the pattern anchors:

  • State class structure (sealed class, data class fields)
  • Action/Event naming conventions
  • Repository method signatures and return types
  • Test structure and assertion patterns

Step 3: Architecture Design

Produce an ASCII diagram showing component relationships for the planned work:

┌─────────────────┐
│   Screen        │ ← Compose UI
│  (Composable)   │
└────────┬────────┘
         │ State / Action / Event
┌────────▼────────┐
│   ViewModel     │ ← Business logic orchestration
└────────┬────────┘
         │ Repository calls
┌────────▼────────┐
│   Repository    │ ← Data coordination (sealed class results)
└───┬────┬────┬───┘
    │    │    │
┌───▼───┐ │ ┌─▼──────┐
│Manager│ │ │Manager │ ← Single-responsibility (optional)
└───┬───┘ │ └─┬──────┘
    │     │   │
┌───▼─────▼───▼────┐
│   Data Sources   │ ← Raw data (Result<T>, never throw)
└─┬────┬────┬──────┘
  │    │    │
 Room Retrofit SDK

Adapt the diagram to show the actual components planned. Consult docs/ARCHITECTURE.md for full data layer patterns and conventions.

Design Decisions

Document key architectural decisions in a table:

DecisionResolutionRationale
[What needed deciding][What was chosen][Why]

Step 4: File Inventory

Files to Create

File PathTypePattern Reference
[full path][ViewModel / Screen / Repository / etc.][pattern anchor file]

Include in file inventory:

  • ...Navigation.kt files for new screens
  • ...Module.kt Hilt module files for new DI bindings
  • Paired test files (...Test.kt) for each new class

Files to Modify

File PathChange DescriptionRisk Level
[full path][what changes]Low / Medium / High

Risk levels:

  • Low: Additive changes (new entries in nav graph, new bindings in Hilt module)
  • Medium: Modifying existing logic (adding parameters, new branches)
  • High: Changing interfaces, data models, or shared utilities

Step 5: Implementation Phases

Break the work into sequential phases. Each phase should be independently testable and committable.

Phase ordering principle: Foundation → SDK/Data → Network → UI (tests accompany each phase)

For each phase:

### Phase N: [Name]

**Goal**: [What this phase accomplishes]

**Files**:
- Create: [list]
- Modify: [list]

**Tasks**:
1. [Specific implementation task]
2. [Specific implementation task]
3. ...

**Verification**:
- [Test command or manual verification step]

**Skills**: [Which workflow skills apply — e.g., `implementing-android-code`, `testing-android-code`]

Phase Guidelines

  • Each phase should be small enough to be independently testable and committable
  • Tests are written within the same phase as the code they verify (not deferred to a "testing phase")
  • UI phases come after their data dependencies are in place
  • If a phase has more than 5 tasks, consider splitting it

Step 6: Risk & Verification

Risk Assessment

RiskLikelihoodImpactMitigation
[What could go wrong]Low/Med/HighLow/Med/High[How to prevent or handle]

Verification Plan

Automated Verification:

  • Unit test commands (from build-test-verify skill)
  • Lint/detekt commands
  • Build verification

Manual Verification:

  • [Specific manual test scenarios]
  • [Edge cases to manually verify]
  • Verify ViewModel state survives process death (test via SavedStateHandle persistence and Don't keep activities developer option)

Thêm skills từ bitwarden

figma-to-angular
bitwarden
Kỹ năng này chuyển đổi bản thiết kế Figma thành một component Angular được triển khai đầy đủ với các story Storybook trong monorepo Bitwarden Clients. Đầu ra phải khớp với thiết kế về mặt hình ảnh đồng thời tuân thủ tất cả các quy ước codebase.
force-multiplier
bitwarden
Áp dụng một ý định trên nhiều mục tiêu cùng lúc — một loạt kho lưu trữ trong hệ sinh thái Bitwarden, hoặc nhiều dự án trong một monorepo — như N nhất quán,…
analyzing-git-sessions
bitwarden
Phân tích các commit git và thay đổi trong một khung thời gian hoặc phạm vi commit, cung cấp các bản tóm tắt có cấu trúc cho việc xem xét mã, hồi tưởng, nhật ký công việc hoặc phiên làm việc…
coordinating-cross-team-breakdown
bitwarden
Phối hợp đánh giá và phê duyệt giữa các nhóm cho một Bản Phân Tích Kỹ Thuật Bitwarden. Sử dụng khi xác định các nhóm bị ảnh hưởng, xây dựng bảng phê duyệt Phần 3, theo dõi…
assessing-jira-issue-relevance
bitwarden
Sử dụng khi người dùng cung cấp một mã số vấn đề Jira duy nhất và hỏi liệu vấn đề đó có còn liên quan, còn áp dụng, còn đang chờ xử lý, còn là lỗi, đã được sửa, hay có thể…
assessing-test-coverage
bitwarden
Sử dụng khi xác định mức độ bao phủ kiểm thử ĐÃ tồn tại cho một thay đổi cụ thể (một PR, khóa Jira, tài liệu Tech Breakdown, CSV Testmo, các đường dẫn đã thay đổi, hoặc các mục được đặt tên…
retrospecting
bitwarden
Thực hiện phân tích toàn diện các phiên Claude Code, xem xét lịch sử git, nhật ký hội thoại, thay đổi mã nguồn và thu thập phản hồi từ người dùng để tạo ra…
reviewing-incremental-changes
bitwarden
Sử dụng kỹ năng này khi xem lại một PR đã có bình luận hoặc khi phản hồi các thay đổi của nhà phát triển sau lần xem xét ban đầu. Áp dụng khi có các luồng thảo luận trong PR hoặc…