Skip to content

feat: add dryrun-pr-review plugin with permission prompt optimizations#7

Open
zdfowler wants to merge 15 commits intomainfrom
zacf/feat/add-multiple-skills
Open

feat: add dryrun-pr-review plugin with permission prompt optimizations#7
zdfowler wants to merge 15 commits intomainfrom
zacf/feat/add-multiple-skills

Conversation

@zdfowler
Copy link
Copy Markdown

@zdfowler zdfowler commented Apr 8, 2026

Summary

  • Add new dryrun-pr-review plugin: full PR/MR lifecycle automation for DryRunSecurity users (branch, commit, push, open PR/MR, poll for DryRunSecurity review comments, present findings, loop until satisfied)
  • Detects GitHub vs GitLab automatically from git remote get-url origin
  • Discovers and caches repo conventions (branch naming, commit format, PR/MR body style) to .claude/pr-conventions.md — skips re-detection on subsequent runs
  • All four standalone files (.cursorrules, .windsurfrules, RULES.md, copilot-instructions.md) updated to include Workflow 2 (PR Review) alongside Workflow 1 (Remediation)
  • Reduced permission prompts: merged Platform Detection + Repo Info into one script, consolidated convention discovery from 3 bash blocks into 1, fixed missing Write/Edit/Glob/Grep in allowed_tools frontmatter
  • README: added recommended Claude Code permission pre-approvals (git, gh, glab) to reduce session-level prompts
  • CONTRIBUTING, CHANGELOG, README updated to reflect two-plugin structure

Test plan

  • Install plugin locally in a GitHub repo and trigger with "create a PR"
  • Verify platform detection works for both GitHub and GitLab remotes
  • Verify convention discovery runs and prompts to save .claude/pr-conventions.md
  • Verify cached conventions are used on second run (no re-detection)
  • Verify DryRunSecurity polling loop runs and presents comments correctly
  • Test in Claude Code: confirm no unexpected permission prompts during normal flow
  • Verify all four standalone files contain both Workflow 1 and Workflow 2

🤖 Generated with Claude Code

zdfowler added 10 commits March 31, 2026 15:11
Add new dryrun-pr-review plugin that handles full PR lifecycle:
- Branch creation with {user}/{type}/{name} convention
- Conventional commit messages with co-author attribution
- PR/MR creation for both GitHub and GitLab
- Timestamp-based polling for DryRunSecurity review comments
- Presents findings to user for decisions (no auto-fix)
- Iterative fix-push-poll loop until review complete

Update README with plugin comparison table and usage
Replace hardcoded Conventional Commits format with auto-detection:
- Check for saved conventions in .claude/pr-conventions.md
- Discover branch naming from git branch -r patterns
- Discover commit format from git log history
- Discover PR/MR structure from gh/glab list output
- Prompt user to save detected conventions for reuse
- Fall back to sensible defaults if no patterns found
- Apply discovered conventions to branches, commits, and PR
- Expand intro and philosophy to cover both remediation and PR review workflows
- Add PR review usage examples alongside remediation usage
- Update dryrun-pr-review Features to reflect convention discovery (not hardcoded conventions)
- Fix version header example to match current standalone file header name
- Add copilot-instructions.md to directory structure tree
- Add dryrun-pr-review SKILL.md to the Making Changes file list
- Add copilot-instructions.md to file list
- Update 'Keep files in sync' description for combined standalone format
- Add dryrun-pr-review plugin.json to manifest versions section
- Split File Sync Checklist by workflow with copilot-instructions.md added
- Update quick version grep to include pr-review SKILL.md
…it format

- Add full frontmatter (version, triggers, compatibility, allowed_tools, output, license)
  to match dryrun-remediation skill consistency
- Fix Step 6 commit message to follow discovered conventions instead of
  hardcoded conventional commits format
- Update marketplace.json description to reflect both plugins
@zdfowler zdfowler marked this pull request as ready for review April 8, 2026 20:23
zdfowler and others added 2 commits April 9, 2026 08:10
- Remove convention discovery section; rely on agent's in-flight judgment
  for branch naming, commit format, and PR/MR body style
- Replace multi-step platform detection script with a single
  `git remote get-url origin` call — agent derives PLATFORM, OWNER,
  REPO/PROJECT from the URL directly, eliminating subshell $() calls
  that triggered permission prompts
- Drop Write from allowed_tools (no longer writing a conventions file)
- Sync all changes to standalone .cursorrules, .windsurfrules, RULES.md,
  and copilot-instructions.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
zdfowler and others added 3 commits April 9, 2026 13:39
…-review

- Exit polling loop immediately when DryRunSecurity comments are detected
- Check for existing PR/MR before creating to avoid duplicate creation
- Replace glab api --jq flag with pipe to jq (glab does not support --jq)
- Fix decline reply to use issue comments endpoint, not inline review replies,
  since DryRunSecurity only posts on the PR thread

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Apply consistent fixes across SKILL.md and all four standalone agent files
(.cursorrules, .windsurfrules, RULES.md, copilot-instructions.md):
- Exit polling loop immediately when DryRunSecurity comments are detected
- Check for existing PR/MR before creating to avoid duplicate creation
- Replace glab api --jq flag with pipe to jq (glab does not support --jq)
- Fix decline reply to use issue comments endpoint, not inline review replies
- Clarify timeout message: inform user the review period is complete

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

2 participants