bl-sync

Sync git-branchless stack with main branch - fetch, rebase, and handle merges

9 stars

Best use case

bl-sync is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sync git-branchless stack with main branch - fetch, rebase, and handle merges

Teams using bl-sync should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/bl-sync/SKILL.md --create-dirs "https://raw.githubusercontent.com/jpoutrin/product-forge/main/plugins/git-workflow/skills/bl-sync/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/bl-sync/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How bl-sync Compares

Feature / Agentbl-syncStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sync git-branchless stack with main branch - fetch, rebase, and handle merges

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# /bl-sync - Git-Branchless Stack Sync

**Category:** Git Workflow

Sync your commit stack with the main branch. Fetches remote changes, rebases your stack, and handles post-merge cleanup.

## Usage

```
/bl-sync [options]
```

## Options

| Option | Description |
|--------|-------------|
| (none) | Sync with local main branch |
| `--pull` | Fetch remote + sync with updated main |
| `--after-merge` | Clean up after a PR was merged |

## Examples

```bash
# Sync with local main
/bl-sync

# Fetch and sync (most common)
/bl-sync --pull

# After your PR was merged on GitHub
/bl-sync --after-merge
```

## Execution

This command delegates to the `bl-sync-expert` agent:

```
Task(subagent_type="git-workflow:bl-sync-expert",
     prompt="Execute sync: <options>")
```

## Execution Instructions

1. **Verify Prerequisites**
   - Check git-branchless is installed
   - Check working directory is clean

2. **Show Current State**
   - Run `git sl` to display the stack
   - Show divergence from main if any

3. **Execute Sync**
   - For basic sync: `git sync`
   - For pull + sync: `git sync --pull`
   - For after-merge: `git pull origin main` then `git move`

4. **Handle Conflicts**
   - Show conflicting files
   - Guide through resolution
   - Continue with `git rebase --continue`

5. **Remind About PRs**
   - If branches exist, suggest `git submit` to update PRs

6. **Confirm Result**
   - Show final state with `git sl`

## Interactive Flow

```
User: /bl-sync --pull

Agent: Fetching and syncing with main...

Fetching from origin...
remote: Counting objects: 5, done.

Current stack:
◆ old-main (main) old commit
┃
◯ abc123 feat: add User class
┃
● def456 feat: add validation

Syncing onto updated main...
[1/2] feat: add User class - ✓
[2/2] feat: add validation - ✓

◆ new-main (main) teammate's feature  ← Updated
┃
◯ xyz789 feat: add User class
┃
● uvw012 feat: add validation

Stack synced! 2 commits rebased onto updated main.

Note: Run `git submit` to update your PRs.
```

```
User: /bl-sync --after-merge

Agent: Cleaning up after PR merge...

Pulling latest main...
Already up to date with merge commit.

Current state:
◆ merge123 (main) Merge pull request #1
┃
✕ old-abc feat: add User class (merged)
┃
◯ def456 feat: add validation  ← Needs moving
┃
● ghi789 feat: add repository

Moving remaining commits onto merge...
git move -s def456 -d merge123

◆ merge123 (main) Merge pull request #1
┃
◯ new-def feat: add validation  ← Moved
┃
● new-ghi feat: add repository

Cleanup complete!

Next steps:
1. Recreate branch: git switch -c pr/validation
2. Push to remote: git submit -c @
3. Update PR base branch on GitHub
```

```
User: /bl-sync --pull
(with conflicts)

Agent: Fetching and syncing with main...

Syncing onto updated main...
[1/2] feat: add User class - ✓
[2/2] feat: add validation - CONFLICT

Conflict in: src/validation.py

<<<<<<< HEAD
def validate_email(email):
    # teammate's version
=======
def validate_email(email):
    # your version
>>>>>>> feat: add validation

To resolve:
1. Edit src/validation.py - choose correct version
2. git add src/validation.py
3. git rebase --continue

Or to abort: git rebase --abort
```

## Error Handling

| Error | Resolution |
|-------|------------|
| Dirty working directory | Prompt to commit or stash |
| No remote configured | Suggest `git remote add origin <url>` |
| Conflicts during sync | Guide through resolution |
| Lost commits | Use `git undo -i` to recover |

Related Skills

sync-feedback

9
from jpoutrin/product-forge

Review and sync captured feedback to Product Forge

zod

9
from jpoutrin/product-forge

Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.

typescript-import-style

9
from jpoutrin/product-forge

Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.

setup-mcp-auth

9
from jpoutrin/product-forge

Configure authentication for an existing FastMCP server

fastmcp

9
from jpoutrin/product-forge

FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.

add-mcp-tool

9
from jpoutrin/product-forge

Add a new tool to an existing FastMCP server with guided configuration

add-mcp-resource

9
from jpoutrin/product-forge

Add a new resource or resource template to an existing FastMCP server

plan-with-team

9
from jpoutrin/product-forge

Validate plan file ownership

privacy-compliance

9
from jpoutrin/product-forge

GDPR, CCPA, and privacy compliance guidance for data protection. Use when handling personal data, implementing consent management, or ensuring regulatory compliance across jurisdictions.

oauth

9
from jpoutrin/product-forge

OAuth 2.0 and OpenID Connect implementation patterns. Use when implementing authentication, authorization flows, or integrating with OAuth providers like Google, GitHub, or custom identity providers.

mcp-security

9
from jpoutrin/product-forge

Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.

rag-cag-security

9
from jpoutrin/product-forge

Security patterns for RAG and CAG systems with multi-tenant isolation. Use when building retrieval-augmented or cache-augmented generation systems that require tenant isolation, access control, and secure data handling.