Agent skill

bl-stack

Manage git-branchless commit stacks - view, navigate, and edit commits

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/bl-stack

SKILL.md

/bl-stack - Git-Branchless Stack Management

Category: Git Workflow

Manage commit stacks using git-branchless. View your stack, navigate between commits, and edit any commit in the stack with automatic restacking.

Usage

/bl-stack [action] [options]

Actions

Action Description
show Display the commit stack (default)
prev [N] Move to parent commit (N commits up)
next [N] Move to child commit (N commits down)
amend Amend current commit + restack descendants
reword Change commit message + restack descendants
restack Rebase descendants onto amended commit
reorder Interactive rebase to reorder/squash commits

Examples

bash
# View current stack
/bl-stack
/bl-stack show

# Navigate
/bl-stack prev      # Go up one commit
/bl-stack prev 2    # Go up two commits
/bl-stack next      # Go down one commit

# Edit commits
/bl-stack amend     # After making changes, amend current commit
/bl-stack reword    # Change current commit's message

# Reorganize
/bl-stack reorder   # Interactive rebase (pick, squash, drop, reorder)
/bl-stack restack   # Fix abandoned commits after manual amend

Execution

This command delegates to the bl-stack-expert agent:

Task(subagent_type="git-workflow:bl-stack-expert",
     prompt="Execute stack operation: <action>")

Execution Instructions

  1. Verify Prerequisites

    • Check git-branchless is installed
    • Check repository is initialized for branchless
  2. Show Current State

    • Run git sl to display the stack
    • Explain smartlog icons (◆ ◯ ● ✕)
  3. Execute Action

    • For show: Display and explain the stack
    • For prev/next: Navigate and confirm position
    • For amend: Stage changes and run git amend
    • For reword: Open editor for message change
    • For restack: Rebase descendants onto current commit
    • For reorder: Run git rebase -i main
  4. Confirm Result

    • Show final state with git sl

Interactive Flow

User: /bl-stack

Agent: Showing your commit stack...

◆ abc1234 (main) initial commit
┃
◯ def5678 feat: add User class
┃
◯ ghi9012 feat: add validation
┃
● jkl3456 feat: add repository

Stack has 3 draft commits (◯) above main (◆).
You are at: feat: add repository (● = current position)

Commands:
- /bl-stack prev   : Go to "feat: add validation"
- /bl-stack amend  : Amend current commit
- /bl-stack reword : Change commit message
User: /bl-stack prev 2

Agent: Navigating up 2 commits...

◆ abc1234 (main) initial commit
┃
● def5678 feat: add User class  ← You are now here
┃
◯ ghi9012 feat: add validation
┃
◯ jkl3456 feat: add repository

Moved from "feat: add repository" to "feat: add User class"
User: /bl-stack amend

Agent: Amending current commit...

Changes staged:
  M src/user.py (+15 lines)

Running git amend...
Restacking 2 descendant commits...

◆ abc1234 (main) initial commit
┃
● xyz9999 feat: add User class  ← Amended
┃
◯ abc1111 feat: add validation  ← Restacked
┃
◯ def2222 feat: add repository  ← Restacked

Commit amended and stack updated.

Error Handling

Error Resolution
git-branchless not installed Provide installation command
Not a git repository Inform user
Repo not initialized Suggest git branchless init
Dirty working directory Prompt to commit or stash
Conflicts during restack Guide through resolution

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results