brave/force-push-downstream
'Force-push a branch and all its downstream branches to origin. Auto-detects push downstream, push chain, push all branches.'
npx skills add https://github.com/brave/brave-core --skill force-push-downstream
Force-push a branch and all its downstream branches to their respective remotes.
Skips branches whose local and remote tips already match.
starting-branch (optional) — The branch to start from. Defaults to thecurrent branch if not specified.
Examples:
/force-push-downstream — push current branch + all downstream/force-push-downstream candle-service-webui — push from that branch downgit branch --show-currentgit status --shortIf an argument was provided, use it as the starting branch. Otherwise use the
current branch.
git branch --show-current
Run the detect-chain script (shared with rebase-downstream) to find all
downstream branches:
bash .claude/skills/rebase-downstream/detect-chain.sh <starting-branch>
The push list is: the starting branch itself, followed by every downstream
branch in tree order (from detect-chain output).
Display the branches that will be pushed:
Force push plan:
candle-service-background-webcontents
→ background-webcontents-timer
→ candle-service-webui
→ candle-service-model-loading
→ brave-history-embeddings
→ local-ai-internals
For each branch, check if it is already up-to-date with origin:
# Get local and remote SHAs
local_sha=$(git rev-parse <branch>)
remote_sha=$(git rev-parse origin/<branch> 2>/dev/null || echo "none")
If local_sha == remote_sha, mark as (up-to-date, will skip). If the remote
branch doesn't exist, mark as (new, will push). Otherwise mark as
(diverged, will force-push).
Ask the user to confirm before pushing.
For each branch in the push list:
and move on.
git push --force-with-lease origin <branch>
Use --force-with-lease for safety — it fails if someone else pushed to the
remote since our last fetch, preventing accidental overwrites of others'
work.
git push -u origin <branch>
After all pushes complete, show a summary:
Force push results:
✓ candle-service-background-webcontents (pushed)
- background-webcontents-timer (skipped, up-to-date)
✓ candle-service-webui (pushed)
✓ candle-service-model-loading (pushed)
✓ brave-history-embeddings (pushed, new)
✗ local-ai-internals (failed: ...)
--force-with-lease instead of --force for safetyTake brave/force-push-downstream from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.