Skip to content

Add pr-tools plugin (create-pr, attach-github-assets)#3

Merged
MrDHat merged 5 commits into
mainfrom
akshay/open-source-pr-tools
Jul 9, 2026
Merged

Add pr-tools plugin (create-pr, attach-github-assets)#3
MrDHat merged 5 commits into
mainfrom
akshay/open-source-pr-tools

Conversation

@MrDHat

@MrDHat MrDHat commented Jul 9, 2026

Copy link
Copy Markdown
Member

Why?

First batch of an effort to open-source broadly-useful, well-adopted Claude Code skills. The two skills here are general-purpose GitHub PR-workflow tools with no organization-specific coupling — they belong in a public marketplace.

How?

Adds the pr-tools plugin to the fin-2x marketplace with two skills and an enforcement hook:

  • create-pr — open or update a well-formed PR for the current branch: gathers intent, validates the diff against it, applies public-repo safeguards, and writes a clean Why/How description.
  • attach-github-assets — upload local screenshots, recordings, and images to GitHub as user-attachment assets and return markdown-ready URLs for PR and issue bodies.
  • gh pr create interceptor hook — a PreToolUse hook that redirects direct gh pr create to the create-pr skill (stateful: unlocks once the skill is loaded, re-validates against the transcript on /rewind, and ignores the phrase inside quoted strings/heredocs). Ships with 62 bats tests.

Ported from an internal Claude Code plugin collection; internal integrations, tool references, and repo-specific logic were stripped so everything is vendor-neutral. Original authors are credited via Co-Authored-By trailers on each commit. Commit structure: one bootstrap commit, one per skill, one for the hook, one marketplace-registration commit.

Generated with Claude Code

MrDHat and others added 5 commits July 9, 2026 14:57
Scaffold the pr-tools plugin — the GitHub PR lifecycle from Claude Code.
Manifest, README, CHANGELOG, and MIT license. Skills added in follow-up commits.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Open or update a well-formed GitHub PR for the current branch: gather intent,
validate the diff against it, apply public-repo safeguards, and write a clean
Why/How description. Ported from an internal Claude Code plugin collection with
all organization-internal coupling removed (internal PR-review and CI
integrations, and hardcoded internal repo lists).

Co-Authored-By: Inokentii (Kesha) Mykhailov <287994+gregolsen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Upload local screenshots, recordings, and images to GitHub as user-attachment
assets and return markdown-ready URLs. Ported from an internal Claude Code
plugin collection.

Co-Authored-By: Jason Praful <32552408+jasonpraful@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add pr-tools to the marketplace manifest and root README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Add a PreToolUse hook that blocks direct `gh pr create` and redirects to the
create-pr skill, so PRs go through its intent-gathering and public-repo
safeguards. The guard is stateful: `track-skill-activation.sh` records when
create-pr loads (per session/agent), `clear-skill-markers-on-compact.sh` resets
it on compaction, and the interceptor re-validates the marker against the
transcript DAG so a /rewind can't leave the guard falsely satisfied. Two Python
helpers strip quoted/heredoc content (so a mentioned command isn't blocked) and
perform the transcript ancestry check. Ships with both bats suites (62 tests).

Ported from an internal Claude Code plugin collection and genericized.

Co-Authored-By: Américo Duarte <1478616+americodls@users.noreply.github.com>
Co-Authored-By: Inokentii (Kesha) Mykhailov <287994+gregolsen@users.noreply.github.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@MrDHat
MrDHat force-pushed the akshay/open-source-pr-tools branch from 128dac7 to 1d6cd41 Compare July 9, 2026 13:58
@MrDHat
MrDHat merged commit 02e4c98 into main Jul 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant