[PR #6238] [CLOSED] Teach Claude how to create feature flags for Android #25804

Closed
opened 2026-04-17 01:24:59 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/bitwarden/android/pull/6238
Author: @SaintPatrck
Created: 12/5/2025
Status: Closed

Base: mainHead: claude-skill/creating-feature-flags


📝 Commits (1)

  • ed095e5 Add creating-feature-flags skill

📊 Changes

6 files changed (+1647 additions, -0 deletions)

View changed files

.claude/skills/creating-feature-flags/README.md (+101 -0)
.claude/skills/creating-feature-flags/SKILL.md (+344 -0)
.claude/skills/creating-feature-flags/examples/scenarios.md (+361 -0)
.claude/skills/creating-feature-flags/reference/file-templates.md (+364 -0)
.claude/skills/creating-feature-flags/reference/naming-conventions.md (+136 -0)
.claude/skills/creating-feature-flags/reference/troubleshooting.md (+341 -0)

📄 Description

🎟️ Tracking

TBD

📔 Objective

Adds a new Claude Code skill that automates feature flag creation for Bitwarden Android.

Problem: Creating feature flags currently requires manually updating 4 different files (FlagKey.kt, FlagKeyTest.kt, FeatureFlagListItems.kt, strings_non_localized.xml) following specific naming conventions and patterns. This is repetitive, error-prone, and requires knowledge of the established conventions.

Solution: This skill automates the entire process by:

  • Gathering requirements through interactive prompts
  • Generating correct naming variants (kebab-case, PascalCase, snake_case)
  • Validating uniqueness before making changes
  • Updating all required files following established patterns from PR #6235
  • Running tests and compilation verification
  • Providing a complete summary of changes

Benefits:

  • Reduces feature flag creation time from ~10-15 minutes to ~2-3 minutes
  • Eliminates common mistakes (naming format errors, missing commas, incorrect ordering)
  • Ensures consistency across all feature flags
  • Provides progressive disclosure documentation with examples and troubleshooting
  • Supports Boolean, Int, and String flag types for both Password Manager and Authenticator

The skill includes comprehensive documentation with a user-facing README, detailed reference materials, and real-world examples.

📸 Screenshots

Compare Claude changes (below) to changes in PR #6235

FeatureFlagListItems.kt

image image

FlagKeyTest.kt

image

FlagKey.kt

image image

strings_non_localized.xml

image

Reminders before review

  • Contributor guidelines followed
  • All formatters and local linters executed and passed
  • Written new unit and / or integration tests where applicable
  • Protected functional changes with optionality (feature flags)
  • Used internationalization (i18n) for all UI strings
  • CI builds passed
  • Communicated to DevOps any deployment requirements
  • Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team

🦮 Reviewer guidelines

  • 👍 (:+1:) or similar for great changes
  • 📝 (:memo:) or ℹ️ (:information_source:) for notes or general info
  • (:question:) for questions
  • 🤔 (:thinking:) or 💭 (:thought_balloon:) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion
  • 🎨 (:art:) for suggestions / improvements
  • (:x:) or ⚠️ (:warning:) for more significant problems or concerns needing attention
  • 🌱 (:seedling:) or ♻️ (:recycle:) for future improvements or indications of technical debt
  • ⛏ (:pick:) for minor or nitpick changes

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/bitwarden/android/pull/6238 **Author:** [@SaintPatrck](https://github.com/SaintPatrck) **Created:** 12/5/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `claude-skill/creating-feature-flags` --- ### 📝 Commits (1) - [`ed095e5`](https://github.com/bitwarden/android/commit/ed095e5b301ca5b3e1d4007e8b826e0cf298a81c) Add creating-feature-flags skill ### 📊 Changes **6 files changed** (+1647 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `.claude/skills/creating-feature-flags/README.md` (+101 -0) ➕ `.claude/skills/creating-feature-flags/SKILL.md` (+344 -0) ➕ `.claude/skills/creating-feature-flags/examples/scenarios.md` (+361 -0) ➕ `.claude/skills/creating-feature-flags/reference/file-templates.md` (+364 -0) ➕ `.claude/skills/creating-feature-flags/reference/naming-conventions.md` (+136 -0) ➕ `.claude/skills/creating-feature-flags/reference/troubleshooting.md` (+341 -0) </details> ### 📄 Description ## 🎟️ Tracking TBD ## 📔 Objective Adds a new Claude Code skill that automates feature flag creation for Bitwarden Android. **Problem:** Creating feature flags currently requires manually updating 4 different files (FlagKey.kt, FlagKeyTest.kt, FeatureFlagListItems.kt, strings_non_localized.xml) following specific naming conventions and patterns. This is repetitive, error-prone, and requires knowledge of the established conventions. **Solution:** This skill automates the entire process by: - Gathering requirements through interactive prompts - Generating correct naming variants (kebab-case, PascalCase, snake_case) - Validating uniqueness before making changes - Updating all required files following established patterns from PR #6235 - Running tests and compilation verification - Providing a complete summary of changes **Benefits:** - Reduces feature flag creation time from ~10-15 minutes to ~2-3 minutes - Eliminates common mistakes (naming format errors, missing commas, incorrect ordering) - Ensures consistency across all feature flags - Provides progressive disclosure documentation with examples and troubleshooting - Supports Boolean, Int, and String flag types for both Password Manager and Authenticator The skill includes comprehensive documentation with a user-facing README, detailed reference materials, and real-world examples. ## 📸 Screenshots Compare Claude changes (below) to changes in PR #6235 ### `FeatureFlagListItems.kt` <img width="1167" height="94" alt="image" src="https://github.com/user-attachments/assets/95a48497-498c-460c-9a95-9e0cd9c3409a" /> <img width="1619" height="109" alt="image" src="https://github.com/user-attachments/assets/4dc8860c-52f8-4676-9394-6144724c8e7c" /> --- ### `FlagKeyTest.kt` <img width="1342" height="420" alt="image" src="https://github.com/user-attachments/assets/6073f9e5-88e5-4e7e-994d-62b9ecde7c1a" /> --- ### `FlagKey.kt` <img width="1564" height="192" alt="image" src="https://github.com/user-attachments/assets/d07e5e12-0f89-4995-a137-249ac27001bf" /> <img width="1064" height="92" alt="image" src="https://github.com/user-attachments/assets/76082523-532f-4de4-a258-69b61d3edf03" /> --- ### `strings_non_localized.xml` <img width="1467" height="128" alt="image" src="https://github.com/user-attachments/assets/9db3754a-43ff-48f1-a1c8-b8931d9442c6" /> ## ⏰ Reminders before review - Contributor guidelines followed - All formatters and local linters executed and passed - Written new unit and / or integration tests where applicable - Protected functional changes with optionality (feature flags) - Used internationalization (i18n) for all UI strings - CI builds passed - Communicated to DevOps any deployment requirements - Updated any necessary documentation (Confluence, contributing docs) or informed the documentation team ## 🦮 Reviewer guidelines <!-- Suggested interactions but feel free to use (or not) as you desire! --> - 👍 (`:+1:`) or similar for great changes - 📝 (`:memo:`) or ℹ️ (`:information_source:`) for notes or general info - ❓ (`:question:`) for questions - 🤔 (`:thinking:`) or 💭 (`:thought_balloon:`) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion - 🎨 (`:art:`) for suggestions / improvements - ❌ (`:x:`) or ⚠️ (`:warning:`) for more significant problems or concerns needing attention - 🌱 (`:seedling:`) or ♻️ (`:recycle:`) for future improvements or indications of technical debt - ⛏ (`:pick:`) for minor or nitpick changes --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-17 01:24:59 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#25804