vintasoftware/vinta-ai-workflows/open-pr-from-context

Claude Code and agent skill by vintasoftware/vinta-ai-workflows

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Publish one `.vinta-ai-workflows/prs-context/{feature-name}/{phase-name}.md` file as a real PR + inline review comments by invoking the bundled [open-pr.sh](scripts/open-pr.sh) shell script. The script handles all parsing + CLI calls (`gh` for GitHub, `glab` for GitLab); this skill is a thin wrapper that picks the file, runs the script, and reports the result. Use after `implement-plan` has pushed a phase branch + written the context file, or any time afterwards to publish a `status: pending` file. Does nothing else — no diff editing, no extra checks, no skill-side parsing.

Install

npx vskill@latest install vintasoftware/vinta-ai-workflows/open-pr-from-context

SKILL.md

Open PR from context

implement-plan writes per-phase PR drafts to .vinta-ai-workflows/prs-context/{feature-name}/{phase-name}.md (template) and (when a PR CLI is detected) calls this skill to publish them. When the runtime had no PR CLI at write time, the file sits as status: pending until someone runs this skill in an environment with the CLI.

The mechanical work — parse frontmatter, detect CLI, open PR, post each inline comment, rewrite frontmatter to published, append publish log — lives in `scripts/open-pr.sh`. This SKILL.md just wires the agent to it.

Dependencies

The script needs: bash 4+, git, yq (Mike Farah's), jq, and one of gh / glab. Install via the project's package manager / Homebrew / apt:

  • macOS: brew install yq jq gh (or glab).
  • Debian/Ubuntu: apt install yq jq + gh from cli.github.com (or glab from gitlab.com).
  • Inside CI runners: ensure these are present in the image.

The script bails early with missing dependency: <name> if any are absent. Surface the install command — don't auto-install.

Steps

1. Pick the file

If the user passed a file path → use it.

Otherwise list candidates: find .vinta-ai-workflows/prs-context -type f -name '*.md', read each one's frontmatter status field, prefer status: pending. Use AskUserQuestion to confirm if more than one is pending.

2. Run the script
bash
bash ai-tools/skills/open-pr-from-context/scripts/open-pr.sh <file>

(The script has the executable bit set, so ./ai-tools/skills/open-pr-from-context/scripts/open-pr.sh <file> also works.)

Optional flags:

  • --cli gh|glab — force a specific PR CLI. Default: auto-detect (gh first, then glab).
  • --dry-run / -n — print what would be posted; touch nothing remote and don't rewrite the file.

Pass through whatever the user explicitly asked for; otherwise no flags.

3. Report the result

Read the script's stdout + exit code:

  • Exit 0 — PR opened (or pre-existing detected); all comments posted. File rewritten to status: published + pr_url. Surface the URL to the user; you're done.
  • Exit 1 — PR opened, but one or more inline comments failed. The script's stderr lists which (file:line) failed, each one after a gh error: / glab error: line that holds the API's message (for example 422 Validation Failed). Forward both verbatim. Most common cause: a force-push between branch push and now invalidated the line position — re-run after pushing.
  • Exit 2 — Hard failure (file invalid, branch not pushed, CLI missing/unauthed, missing dependency). Forward the script's error message; do not improvise (don't push the branch, don't install CLIs, don't auth on the user's behalf).

Inputs the script expects

The bundled prs-context-template.md documents the file shape. The script verifies:

  • Frontmatter: branch, base (required); status, pr_url (read + written).
  • # Title section: single line, non-empty.
  • # Description section: markdown, non-empty.
  • # Comments section: a single fenced ```yaml list (may be empty — clean phases are valid).

A file at status: published with a populated pr_url is a no-op — the script prints the URL and exits 0 without touching anything.

What this skill / script do NOT do

  • Do not push the branch. implement-plan already pushed it. If the script reports branch not pushed, that's a setup bug — surface it.
  • Do not edit the diff. Comment placement is informational only.
  • Do not re-run tests / lint. Those happened in implement-plan before push.
  • Do not draft new descriptions or comments. The file is the source of truth — edit the file (or re-run implement-plan for that phase) before re-invoking.
  • Do not install or authenticate CLIs. Surfaces the gap, stops.
  • Do not delete the PR-context file. implement-plan cleans up at plan end; until then the file is durable history.

Pitfalls

  • Stacked phases. PR base is the previous phase's branch, not main. The file's base field has the right value; the script trusts it. Don't override.
  • Force-pushed branch. Inline comments target a SHA. If the branch was force-pushed between PR open and comment posting, GitHub/GitLab may reject specific lines as "no longer in the diff". Per-comment failures are reported but don't abort the run — the surviving comments still post. Re-run after pushing if you want the failed ones.
  • Empty `# Comments`. Valid; clean phases produce few or zero comments. Script no-ops the comment loop, still rewrites status to published.
  • Missing `yq` / `jq`. Script bails with missing dependency: yq (or jq) before doing anything. Install the missing tool, re-run.

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/vintasoftware/vinta-ai-workflows/open-pr-from-context/badge)](https://verified-skill.com/skills/vintasoftware/vinta-ai-workflows/open-pr-from-context)

Something wrong with this skill or its page? Tell us.