bl-submit
Submit git-branchless stack as PRs - create branches and push to remote
What this skill does
# /bl-submit - Git-Branchless PR Submission
**Category:** Git Workflow
Submit commits from your stack as pull requests. Creates branches, pushes to remote, and guides stacked PR configuration.
## Usage
```
/bl-submit [options]
```
## Options
| Option | Description |
|--------|-------------|
| (none) | Submit current commit (creates branch if needed) |
| `--all` | Create branches and submit entire stack |
| `--update` | Update all existing PR branches |
| `<name>` | Specify branch name for current commit |
## Examples
```bash
# Submit current commit with auto-generated branch name
/bl-submit
# Submit current commit with custom branch name
/bl-submit pr/user-authentication
# Submit entire stack (creates branches for all commits)
/bl-submit --all
# Update all existing PRs after changes
/bl-submit --update
```
## Execution
This command delegates to the `bl-submit-expert` agent:
```
Task(subagent_type="git-workflow:bl-submit-expert",
prompt="Execute submit: <options>")
```
## Execution Instructions
1. **Verify Prerequisites**
- Check git-branchless is installed
- Check remote is configured
2. **Show Current State**
- Run `git sl` to display stack with branches
- Identify commits without branches
3. **Execute Submission**
- For single: Create branch at current commit, push
- For all: Navigate stack, create branches, push each
- For update: Force-push all existing branches
4. **Guide PR Configuration**
- Explain stacked PR base branches
- Provide table of branch → base relationships
5. **Confirm Result**
- Show branches on remote
- Display final state with `git sl`
## Interactive Flow
```
User: /bl-submit pr/user-auth
Agent: Submitting current commit...
Current position:
● def5678 feat: add user authentication
Creating branch...
git switch -c pr/user-auth
Pushing to remote...
git submit -c @
✓ Branch pr/user-auth pushed to origin
◆ abc1234 (main) initial commit
┃
● def5678 (ᐅ pr/user-auth) feat: add user authentication
You can now create a PR on GitHub:
Base: main
Compare: pr/user-auth
```
```
User: /bl-submit --all
Agent: Submitting entire stack (3 commits)...
◆ abc1234 (main) initial commit
┃
◯ def5678 feat: add User class
┃
◯ ghi9012 feat: add validation
┃
● jkl3456 feat: add repository
[1/3] Creating branch at "feat: add User class"...
git switch -c pr/user-class
git submit -c @
✓ pr/user-class pushed
[2/3] Creating branch at "feat: add validation"...
git switch -c pr/validation
git submit -c @
✓ pr/validation pushed
[3/3] Creating branch at "feat: add repository"...
git switch -c pr/repository
git submit -c @
✓ pr/repository pushed
◆ abc1234 (main) initial commit
┃
◯ (pr/user-class) feat: add User class
┃
◯ (pr/validation) feat: add validation
┃
● (ᐅ pr/repository) feat: add repository
All 3 branches pushed!
Create stacked PRs on GitHub:
┌─────────────────┬──────────────────┐
│ Branch │ Base Branch │
├─────────────────┼──────────────────┤
│ pr/user-class │ main │
│ pr/validation │ pr/user-class │
│ pr/repository │ pr/validation │
└─────────────────┴──────────────────┘
```
```
User: /bl-submit --update
Agent: Updating all PR branches...
Branches to update:
- pr/user-class
- pr/validation
- pr/repository
Running git submit...
pr/user-class: abc123 → def456 (force-pushed)
pr/validation: ghi789 → jkl012 (force-pushed)
pr/repository: mno345 → pqr678 (force-pushed)
All 3 PR branches updated.
GitHub PRs will show new changes automatically.
```
## Stacked PRs Guide
When you submit a stack, you create **stacked PRs** on GitHub:
```
Commit Stack GitHub PRs
───────────── ──────────
pr/repository → PR #3: base = pr/validation
↓
pr/validation → PR #2: base = pr/user-class
↓
pr/user-class → PR #1: base = main
↓
main
```
**Important:** On GitHub, set each PR's base branch to its parent branch, not `main`. This ensures reviewers see only the diff for that specific commit.
**After a PR is merged:**
1. GitHub may auto-update child PR base branches
2. Locally, run `/bl-sync --after-merge` to clean up
3. Then `/bl-submit --update` to push changes
## Error Handling
| Error | Resolution |
|-------|------------|
| No remote configured | `git remote add origin <url>` |
| "Skipped - not on remote" | Use `/bl-submit` (creates with `-c`) |
| Branch already exists | Delete old: `git branch -D <name>` |
| Force-push rejected | Check repo branch protection |
| Detached HEAD | Creates branch automatically |
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.