agentsclimarketplace

Publish pr

Skill ethanaubuchon/dossier-tradecraft/skills/publish-pr

Claude Code workflow recipes built on dossier-mcp — research → design → scope → decompose → implement as overridable slash commands and skills.

Install
npx -y skills add ethanaubuchon/dossier-tradecraft --skill publish-pr

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use in /implement at the draft→ready boundary to squash the branch's review-iteration commits into one (non-interactive soft-reset + recommit + force-with-lease) and mark the draft PR ready. Takes the commit message as input (sourced from the plan-file before cleanup). GitHub-specific (gh) behind a host-neutral contract.

SKILL.md

3.2 KB, as published. Nobody here has run it

Publish PR

The finalize step of /implement's repo path: collapse the review-iteration commit noise into one clean commit, then mark the draft PR ready for humans. Runs after cleanup-artifacts (so a tracked plan-file deletion folds into the squashed commit).

The squash is a non-interactive local rewrite — git rebase -i isn't available in this harness, and isn't needed.

Input

  • branch — the current feature branch (committed; reviewed in its draft PR).
  • commit message — the final squashed-commit message. The recipe sources it from the plan-file (story ref + change summary) before cleanup-artifacts deletes that file.
  • PR ref — the draft PR to mark ready (from open-draft-pr).

Steps

  1. Squash the branch to one commit:
    git reset --soft "$(git merge-base origin/main HEAD)"
    git add -A
    git commit -m "<commit message>"
    
    Soft-reset to the branch point keeps the branch's work staged; git add -A then folds in working-tree changes the index doesn't yet reflect — notably cleanup-artifacts' plan-file deletion, so a tracked plan file isn't re-committed into the squash (the reset --soft index still holds it otherwise). No-op for the gitignored default. One commit then collapses the WIP + review-feedback commits. The goal is eliminating review-iteration noise, not single-commit dogma — squash-to-one is just the simplest mechanism that guarantees no feedback-churn commits survive. If the branch has no changes vs the merge-base, there's nothing to finalize — treat it as a no-op rather than letting git commit error on an empty index. (git add -A assumes the finalize tree is clean apart from cleanup-artifacts' deletions; stray untracked scratch/build files would otherwise be swept into the squash.)
  2. Force-push the rewritten branch with an explicit refspec: git push --force-with-lease origin <branch> (explicit so it doesn't depend on a configured upstream; the lease guards against clobbering an unexpected remote update; safe on a solo feature branch).
  3. Mark the PR ready: gh pr ready <PR ref>.

Output / contract

  • In: (branch, commit message, PR ref).
  • Out: a single-commit branch, force-pushed; the PR marked ready for review.
  • Side effects: rewrites branch history (force-push); changes PR state draft→ready. No merge — merging stays a human action.

Project overrides

  • A repo that prefers GitHub's squash-at-merge over a local pre-ready squash overrides steps 1–2; the contract (clean history at draft→ready) still holds.

Future scope

  • Absorb PR creation (post-v1). Under the flow simplification, open-draft-pr goes away and publish-pr creates the PR at the end (review having happened on the branch). Don't hard-assume a pre-existing draft beyond the gh pr ready step, so that shift stays cheap.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.