Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Remove a Ledger Wallet feature flag while preserving its resolved production behavior, then validate, create a draft PR, and watch CI to green. Invoke only through /remove-feature-flag; this command may stash local work, push a new branch, create or update Jira work, and publish a PR.
.claude/skills/ledgerhq-remove-feature-flag/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -5% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 102% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 41% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 18% | 0% |
Run the complete removal workflow. Never write to Firebase.
text/remove-feature-flag <FEATURE_ID> [FLAG_VALUE_JSON] [TICKET_URL]
Optional modifiers:
proposal only — analyze and propose without changing filesno pr — implement and validate without publishingno watch — create the PR without waiting for CIOnly FEATURE_ID is required. Treat invoking this command as authorization for the complete workflow unless a modifier limits it. Accept optional arguments in any trailing order: recognize the JSON object, an http(s) ticket URL, and the exact modifier phrases independently.
For proposal only, stop after read-only analysis. Do not create Jira work, stash files, create a branch, commit, push, or publish a PR. Report the resolved behavior, owner, affected scope, proposed edits, planned validation, and skipped Jira/PR/CI actions.
Derive the Firebase key with the repository's canonical snake-case mapping.
FLAG_VALUE_JSON when supplied. Validate it against the flagdefinition and consumers. If it is invalid, lacks a boolean enabled, or omits params that code consumes, ask for a corrected production value.
bash node .agents/skills/remove-feature-flag/scripts/read-production-flag.mjs "$FEATURE_ID"
user for the production value. Never fall back to development.
show them and ask which behavior to preserve. Do not choose a client-specific variant automatically.
Preserve the resolved production behavior whether enabled is true or false, including the selected production params.
Record the initial branch/ref and worktree state. If dirty, stash staged, unstaged, and untracked files with a unique descriptive message; do not ask.
Fetch the latest remote base and always create a new branch:
textsupport/remove-<feature-id>-flag-<YYYYMMDD-HHmm>
Create it directly from the freshly fetched origin/develop. If the name collides, append a numeric suffix. Never reuse an existing branch or PR.
Identify the owning team from flags/team-* and CODEOWNERS; use the codeownership skill when a team directory is involved.
When no ticket is supplied and Jira tools are available:
Task in project LIVE for the owningteam.
If Jira is unavailable, continue without a ticket and add this to the PR description: No Jira linked: Jira access was unavailable during PR creation.
Search tracked source across the whole repository for the feature id and Firebase key; ignore generated and build artifacts. Load and use all applicable repository skills for the files involved.
types-live, defaults, devtools, analytics, E2E, mocks, andtest references when present.
Firebase remains read-only. Add a post-release PR note to delete the remote key manually.
Use cleanup and run-tests for the affected packages and files, including @shared/feature-flags checks when its registry changes. Follow docs/validate-before-finishing.md. When those skills do not map a shared/, features/, domain/, or nested package, read its README and package.json and run the equivalent scoped commands directly.
Unless no pr is set, invoke create-pr end-to-end as the single source of truth for Git conventions, changesets, commits, push, draft PR content, browser opening, and the generated (not posted) Slack message. Pass it the resolved behavior, Firebase key, Jira result, validation evidence, affected flows, and the manual Firebase cleanup note.
For no pr, follow git-conventions, create a local commit after validation, and do not push. Preserve that commit on the removal branch before restoring the initial workspace.
Skip this section for no pr or no watch.
skipped or neutral only foroptional checks.
fix-ci for related failures, with at most three diagnose/fix/pushcycles.
and stop without changing unrelated code.
the workflow.
On success or early stop, preserve any removal work on its branch or a recovery stash, then return to the initial branch/ref and restore the saved stash so the workspace matches its starting state. Never discard work. If restoration conflicts, stop and report the conflict without resolving unrelated user changes.
Other measured skills in the registry, with their headline benchmark lift.