AgentStack
SKILL verified MIT Self-run

Pr

skill-thettwe-nyann-pr · by thettwe

>

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-thettwe-nyann-pr

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

Are you the author of Pr? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

pr

Wraps bin/pr.sh. Two modes:

  1. Context-only (--context-only). Collects branch + commit range
  • suggested title without any network calls. The gh auth check is

skipped entirely in this mode (the script exits with the JSON summary before reaching the gh guard), so context-only also works when gh isn't installed or authenticated. Use this when the user wants you to synthesize a PR title and body from the commits before shipping.

  1. Create (default). Pushes the current branch with -u tracking

and invokes gh pr create with your title + body. Returns the PR URL.

0. Drift check (quick, non-blocking)

Run bash bin/session-check.sh --flow=pr. If it produces output, surface the line to the user verbatim. Do not block the flow.

1. Pre-flight

  • Verify gh is installed and authenticated. bin/pr.sh does this

and emits {skipped, reason} with reason gh-not-installed or gh-not-authenticated. If you see a skip, relay it cleanly; don't try to install gh for the user.

  • Verify the current branch is not main/master. If it is, refuse

and suggest /nyann:branch to create a feature branch first.

  • Verify there are commits ahead of the base. If ahead == 0, tell

the user there's nothing to PR and suggest they commit first.

Pre-action guards

bash bin/pre-action-guard.sh --flow pr --target  [--profile ]

| Exit | Meaning | Action | |---|---|---| | 0 | Pass (or advisory warnings) | Surface advisory message lines, continue | | 3 | Critical guard failed | Refuse to open the PR unless the user passes --skip-guards. Re-ask via AskUserQuestion. | | 4 | Confirm-severity guard failed | AskUserQuestion: "Proceed despite the warnings?" — explicit confirm required. |

Built-in PR guards include branch-pushed (advisory if upstream missing or ahead/behind) and wip-commits (advisory if the commit range still contains WIP/fixup commits). Profiles can promote either to confirm or critical via guards.pr in the profile.

coverage-delta is an opt-in guard — off by default. Note guards.pr REPLACES the built-in list (subset semantics — it does not append), so enable it by re-listing the built-ins alongside it: "guards":{"pr":[{"name":"branch-pushed"},{"name":"wip-commits"},{"name":"coverage-delta"}]}. Naming only coverage-delta would silently drop branch-pushed and wip-commits. It warns (advisory by default; promote to confirm via the profile) when the branch lowers test coverage versus the cached .nyann/coverage-baseline.json, tolerant up to guards.coverage_delta_threshold percentage points (default 0 = any drop warns). It reuses an existing CI coverage artifact (coverage/coverage-summary.json, coverage.xml, a Go coverprofile, a tarpaulin report) and soft-skips when none is present — it never runs the suite, so it's best paired with a profile/CI that already produces coverage. Refresh the baseline on the base branch / post-merge with bash bin/guards/coverage-delta.sh --update-baseline.

2. Decide base branch

bin/pr.sh resolves base in this order: --base arg > upstream tracking ref > origin/HEAD > main. Normally don't pass --base; trust the resolution. Override only when the user explicitly names a different target (e.g. "PR into develop").

3. Generate title + body

Run bin/pr.sh --target --context-only first. Read the commit list from the JSON. Then synthesize:

  • Title: single Conventional-Commits line. If the branch has one

commit, use that commit's subject verbatim. If many commits, pick the dominant type/scope and write a summary line. Keep it under ~70 chars for GitHub's UI.

  • Body: GitHub-flavored markdown. Use this skeleton:

``` ## Summary

## Test plan

``` When the user has shared context in the session (e.g. "I verified X locally"), fold it into the Test plan. Don't invent tests that weren't run.

4. Confirm before shipping

Show the user the proposed title and body. Ask "Ship it?" before calling the create path. Exceptions: if the user's original phrasing was "just open the PR" / "ship it now" / "don't ask, just PR it", skip the confirmation.

5. Invoke create

bin/pr.sh \
  --target  \
  --title "" \
  --body "" \
  [--base ] \
  [--draft]

--draft when the user says "draft PR" / "WIP PR" / "not ready for review yet". Relay the URL from {url} in the output back to the user.

6. Handling errors

  • gh pr create can fail if a PR already exists for this branch. In

that case, suggest the user switch to gh pr edit or /nyann:commit to add more commits — don't retry the create.

  • git push can fail if the remote is ahead. Surface the error

verbatim and suggest /nyann:sync or a manual pull+rebase.

When to hand off

  • "now merge it" / "approve it" → out of scope; explain nyann doesn't

do merge/approve.

  • "update my branch with main first" → sync skill.
  • "write a commit message first" → commit skill.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.