remove-feature-flag
Skill627 starsChanged 8 days agoMITView on GitHub
Remove a Ledger Wallet feature flag while preserving its resolved production behavior, then validate, create a draft PR, and watch CI to green. Use when the user runs /remove-feature-flag, and only then; it may stash local work, push a new branch, create or update Jira work, and publish a PR.
7 other projects use a version of this.
Adopted by
Most recently taken up by
- dominikmartn/harptheir own version, first seen Oct 20, 2026
- zerx-lab/zaptheir own version, first seen Oct 8, 2026
- zerx-lab/warptheir own version, first seen Oct 8, 2026
- warpdotdev/Warptheir own version, first seen Oct 8, 2026
- androidx/androidxtheir own version, first seen Oct 8, 2026
- warpdotdev/warptheir own version, first seen Oct 8, 2026
Used with
Projects with it also use classify-changelog-pr, cross-platform-cloud-verification and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
black12-agSkillclassify-changelog-pr
Reference guidance for classifying whether an unmarked PR should appear in the changelog and under which category. Used inline by the changelog-draft skill — not dispatched as a separate agent.
Also in 4 projects that use this
black12-agSkillcross-platform-cloud-verification
Orchestrates cost-conscious cloud verification across available operating-system and architecture runners after cheaper checks pass. Use whenever a code change, bug fix, build, packaging flow, native dependency, UI behavior, filesystem behavior, or test has material cross-platform implications, even if the user only asks to verify or test the change. Consult domain verification skills for what to test; use this skill to choose and access the smallest relevant set of platforms.
Also in 4 projects that use this
- +10 more from black12-ag
Other versions7 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 7
- warpdotdev/Warp★ 66ksame name
- warpdotdev/warp★ 66ksame name
- androidx/androidx★ 6.1ksame name
- zerx-lab/warp★ 2.1ksame name
- zerx-lab/zap★ 2.1ksame name
- dominikmartn/harp★ 698same name
- black12-ag/weft★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository70 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- .github/copilot-instructions.mdCopilot instructions
- analyticsSkill
- batch-feature-devSkill
- ci-runnersSkill
- ci-workflow-refsSkill
- cleanupSkill
- client-idsSkill
- cloud-sync-moduleSkill
- codeownershipSkill
- coin-families-contractSkill
- coin-modulesSkill
- commentsSkill
- configurationSkill
- console-logSkill
- create-changesetSkill
- create-prSkill
- data-layer-advancedSkill
- debug-rn-native-crashSkill
- dependency-patchesSkill
- detect-data-leaksSkill
- device-intent-executorSkill
- devtools-import-boundarySkill
- dialogs-sliceSkill
- docs-migrateSkill
- docs-update-or-createSkill
- domain-dataSkill
- e2e-desktop-add-or-updateSkill
- e2e-desktop-onboardSkill
- e2e-earnSkill
- e2e-mobile-add-or-updateSkill
- e2e-mobile-onboardSkill
- e2e-swapSkill
- errorsSkill
- feature-devSkill
- fix-ciSkill
- flow-packageSkill
- get-pr-commentsSkill
- git-conventionsSkill
- i18n-keysSkill
- impacting-prsSkill
- knip-migrationSkill
- ldls-nativeSkill
- ldls-webSkill
- ledger-wallet-cliSkill
- legacy-migrationSkill
- mvvm-architectureSkill
- new-packageSkill
- package-public-apiSkill
- pnpm-resolutionSkill
- prefer-set-hasSkill
- pre-reviewSkill
- react-generalSkill
- rebuild-to-fix-lib-import-errorsSkill
- run-buildsSkill
- run-e2e-ciSkill
- runner-imagesSkill
- run-testsSkill
- slack-pr-messageSkill
- The first 60 shown.
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. 0 are common, 10 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 7 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 13
Run the complete removal workflow.
- Very specific: line 27
Only FEATURE_ID is required.
- Distinctive: line 48
If the lookup is unavailable, missing, malformed, or unauthorized, ask the user for the production value.
- Distinctive: line 50
If Firebase reports conditional values, or the JSON describes A/B variants, show them and ask which behavior to preserve.
- Very specific: line 69
Create it directly from the freshly fetched origin/develop.
- Distinctive: line 77
When no ticket is supplied and Jira tools are available:
- Distinctive: line 79
Search the owning team's backlog by feature id and Firebase key.
- Very specific: line 81
If none match, create an unassigned Task in project LIVE for the owning team.
- Very specific: line 84
If Jira is unavailable, continue without a ticket and add this to the PR description: No Jira linked: Jira access was unavailable during PR …
- Distinctive: line 89
Search tracked source across the whole repository for the feature id and Firebase key.
- Distinctive: line 93
Delete the flag definition and barrel export.
- Very specific: line 94
Remove legacy types-live, defaults, devtools, analytics, E2E, mocks, and test references when present.
- Distinctive: line 97
Update focused tests and snapshots without weakening coverage.
- Distinctive: line 98
Keep the change isolated from unrelated cleanup.
- Very specific: line 105
Use validate-changes for the affected packages and files, including @shared/feature-flags checks when its registry changes.
- Very specific: line 126
Use fix-ci for related failures, with at most three diagnose/fix/push cycles.
- Distinctive: line 130
When required draft checks pass, mark the PR Ready for review.
“Common” is measured: kept by at least 6 in 10 of the 7 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Remove Feature Flag
Run the complete removal workflow. Never write to Firebase.
Invocation
/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 CI
Only 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.
1. Resolve the production behavior
Derive the Firebase key with the repository's canonical snake-case mapping.
- Parse and use
FLAG_VALUE_JSONwhen supplied. Validate it against the flag definition and consumers. If it is invalid, lacks a booleanenabled, or omitsparamsthat code consumes, ask for a corrected production value. - Otherwise run:
node .agents/skills/remove-feature-flag/scripts/read-production-flag.mjs "$FEATURE_ID" - If the lookup is unavailable, missing, malformed, or unauthorized, ask the user for the production value. Never fall back to development.
- If Firebase reports conditional values, or the JSON describes A/B variants, 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.
2. Protect local work and create the branch
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, named per
git-conventions (chore, never the legacy support):
chore/feature-flags-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.
3. Resolve Jira context
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:
- Search the owning team's backlog by feature id and Firebase key.
- Reuse one clearly relevant removal ticket; ask if several match.
- If none match, create an unassigned
Taskin projectLIVEfor the owning team.
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.
4. Remove the flag
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.
- Delete the flag definition and barrel export.
- Remove legacy
types-live, defaults, devtools, analytics, E2E, mocks, and test references when present. - Inline only the selected production behavior; remove unreachable branches.
- Update focused tests and snapshots without weakening coverage.
- Keep the change isolated from unrelated cleanup.
Firebase remains read-only. Add a post-release PR note to delete the remote key manually.
5. Validate and publish
Use validate-changes for the affected packages and files, including
@shared/feature-flags checks when its registry changes. When a package has no
nx target for a step, read its README and package.json and run the
equivalent scoped command 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.
6. Watch CI
Skip this section for no pr or no watch.
- Watch required checks on the draft PR. Accept
skippedorneutralonly for optional checks. - Use
fix-cifor related failures, with at most three diagnose/fix/push cycles. - Re-run an apparently unrelated failure once. If it fails again, report it and stop without changing unrelated code.
- When required draft checks pass, mark the PR Ready for review.
- Continue watching checks triggered by that transition under the same rules.
- Finish only when all required checks are green, or when a guardrail stops the workflow.
7. Restore the workspace
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.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

