smoke

Manage stacked pull requests by treating each commit as a distinct PR.

Updated May 29, 2023
One-click install
npx skills add https://github.com/nosnaws/dotfiles --skill smoke
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: smoke
Source: https://github.com/nosnaws/dotfiles/tree/main/agent-skills/smoke
Command: npx skills add https://github.com/nosnaws/dotfiles --skill smoke

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Coordinating multiple commits that each require their own pull request in a single feature workflow, reducing manual overhead and drift between PRs.

Core Features & Use Cases

  • Stacked Diffs management: Treats each commit as an individual PR in a stack, with the bottom PR ready for review and the rest as drafts.
  • PR lifecycle automation: Pushes and updates PRs for every commit, pulls latest main, and rebases the stack automatically.
  • Amending and inspecting: Allows selecting a commit to amend and rebases the remaining stack on top to maintain linear history.
  • Local state and traceability: Stores stack state in .smoke/state.json and uses smoke/<branch>/<position> remote heads for PRs.
  • Guardrails: Enforces a clean working tree before push/pull/amend and integrates with GitHub via gh.

Quick Start

Create a feature branch, commit changes as separate logical steps, then run smoke push to generate and manage a PR stack.

Frequently Asked Questions about smoke

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I manage stacked diffs as separate pull requests in git?

To manage stacked diffs, you treat each commit as an individual PR within a stack. The bottom PR is marked ready for review while subsequent PRs remain drafts, automating the coordination of multiple commits requiring separate pull requests.

What is the best way to rebase a stack of commits when an earlier PR is amended?

When you amend a commit in a stack, the remaining commits are automatically rebased on top to maintain a linear history. This ensures the stack stays aligned without requiring manual rebase operations.

Do I need the gh CLI to automate pull request lifecycle management for commit stacks?

Yes, you need the gh CLI installed to automate the pull request lifecycle. The workflow integrates with GitHub via gh to push, update, and create remote branches for every commit in the stack.

Can I pull the latest main and automatically rebase my entire PR stack?

Yes, you can pull the latest main and automatically rebase the entire PR stack. The automation pulls recent main changes and applies them across the stack to prevent drift between dependent pull requests.

Why does stacked diff management require a clean working tree before pushing or amending?

Stacked diff management requires a clean working tree to enforce guardrails before push, pull, or amend operations. This prevents local uncommitted changes from interfering with automated rebase and PR update processes.