Install
$ agentstack add skill-ethanaubuchon-dossier-tradecraft-publish-pr ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
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) beforecleanup-artifactsdeletes that file. - PR ref — the draft PR to mark ready (from
open-draft-pr).
Steps
- Squash the branch to one commit:
`` git reset --soft "$(git merge-base origin/main HEAD)" git add -A git commit -m "" ` 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.)
- Force-push the rewritten branch with an explicit refspec:
git push --force-with-lease origin(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). - Mark the PR ready:
gh pr ready.
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-prgoes away andpublish-prcreates the PR at the end (review having happened on the branch). Don't hard-assume a pre-existing draft beyond thegh pr readystep, so that shift stays cheap.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ethanaubuchon
- Source: ethanaubuchon/dossier-tradecraft
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.