agentleFS
ultimatileultimatile/development-skills/skills/file-pullreq/SKILL.md

file-pullreq

Skill0 starsChanged 32 days agoMITView on GitHub

Draft and file a GitHub PR using gh-body-conventions and the PR body skeleton, via the gh-post wrapper. Supports a gate mode that stops at user approval.

  • Commits and pushes

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Linked issue: Read the issue body and comments — especially any research plan they carry — with …

    line 29
  2. Distinctive:

    Run this in main context: the record the rule compares against is the drafting session's own, which a subagent does not have.

    line 72
  3. Very specific:

    Run gh-body-audit against the drafted body with artifact kind pr.

    line 78
  4. Distinctive:

    If the user requests changes, revise, re-discharge its evidence claims, re-run the laundering pass, and re-show.

    line 86
  5. Very specific:

    Add --draft if the user wants a draft PR.

    line 104
  6. Very specific:

    Do not auto-add @copilot here.

    line 106
  7. Distinctive:

    After filing in standalone mode, show the user:

    line 137

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

File Pull Request

Draft a GitHub PR title and body that follow the user's conventions, show the draft for approval, then file via gh (or, in gate mode, hand off to a caller).

Conventions

Apply the rules in gh-body-conventions to both the title and body.

Length

A typical PR body is 10–40 lines pre-merge, plus a plan-vs-actual delta if one is appended later. Trivial fixes can be much shorter; major features or multi-file refactors can be longer. Every section in the skeleton below should earn its place — a one-line fix needs neither an Impact nor a Notes section.

Title

A single descriptive line under ~70 characters. Use a conventional commit prefix (feat:, fix:, refactor:, docs:, chore:, etc.) when the surrounding repo's existing PR titles use one; otherwise no prefix.

Procedure

1. Confirm scope

Before drafting, identify:

  • Target repo and base branch. gh repo view and git symbolic-ref --short refs/remotes/origin/HEAD if unclear.
  • Linked issue. Read the issue body and comments — especially any research plan they carry — with "${CLAUDE_SKILL_DIR}/../read-issue/scripts/read-issue.sh" <n> --repo <owner>/<repo>, <owner>/<repo> being the repo the link names, or the target repo above when the link is a bare #<n>. When the read exits nonzero, stop and report its message.
  • Whether the work went through research. When ## Impact is kept, fold the plan's Impact list into it if yes, and derive it from the local diff and commits if no. Report ## Verification against the plan's Test plan if yes, without copying the Test plan into it, and let it report the checks this run made if no. The plan's Checklist of changes goes into no section. Whether or not the work went through research, do not transcribe the plan's process bookkeeping — see the reader-facing note below the skeleton.

2. Draft

Produce a title and body following the conventions above and the skeleton below.

Body skeleton

## Summary

<one-paragraph problem statement and resolution, semantic line breaks>
<Closes #N> on its own line; <Depends on #M> if applicable.

## Impact

<callers / public APIs affected>
<omit when the change is genuinely local (single private function, etc.)>

## Verification

<invariants verified, tests added/modified, cross-API coverage>
<contract tests added during review, if any>
<verification results: cargo test / pytest / etc. — pass/fail summary>
<any check run against the tree, suite or not, backing a claim made in another section>

## Notes  (optional)

<known caveats, risks, follow-ups — including any behavior the plan
 deferred, framed as the limitation itself (what the PR does not do, and
 why), NOT as a "plan said X / actual Y" delta or a plan-comment link>

The PR body is reader-facing: it documents the merged artifact for a future bisect reader / maintainer, not the research process that produced it. Do not add a Plan reference, Discovery contract status, or Open questions from the research plan section even when the work went through research-and-implement — those transcribe plan-internal bookkeeping (opaque plan-comment IDs, inconclusive-item enumerations) that rots fast and means nothing to a reader without the plan in front of them. A deferred behavior a reader genuinely needs goes in Notes, framed as the code's own limitation rather than a plan delta. (A ## Plan-vs-actual delta appended later by the caller is the one sanctioned exception — it is the audit surface for umbrella-tracked work and lives at the bottom of the body.)

The ## Plan-vs-actual delta section is appended later by the caller; do not pre-create an empty delta section here.

Section headings are optional for trivial PRs — a 5-line body covering Summary + Verification often needs no headings.

3. Discharge evidence claims

Discharge every evidence claim in the draft, as gh-body-conventions § Evidence claims defines one — across all sections, not only ## Verification. Run this in main context: the record the rule compares against is the drafting session's own, which a subagent does not have.

Editing the body here is expected; the laundering pass runs on the result.

4. Laundering pass — run gh-body-audit

Run gh-body-audit against the drafted body with artifact kind pr. It returns a ✅ / ⚠ status. Mandatory before every gh-post pr create / gh-post pr edit. Any ⚠ blocks step 5 on gh-body-audit step 4's terms.

See gh-body-audit/SKILL.md for the procedure.

5. Show for approval

Present the laundered draft to the user verbatim before filing. Do not file without confirmation.

If the user requests changes, revise, re-discharge its evidence claims, re-run the laundering pass, and re-show. Do not file partially — the next step runs only after explicit approval.

6. File

Two modes, distinguished by the caller.

6a. Standalone mode (default)

Used when invoked directly by the user, not in gate mode. Write the laundered body to a temp file, then invoke the wrapper:

gh-post pr create \
  --repo <owner>/<repo> \
  --base <base-branch> \
  --title "<title>" \
  --body-file /tmp/<descriptive-name>.md

Add --draft if the user wants a draft PR; extra flags (--label, --reviewer <login>, etc.) are forwarded to gh verbatim.

Do not auto-add @copilot here.

6b. Gate mode

Used when invoked as a gate by a caller that creates the PR itself. Stop after approval; do NOT run gh pr create. Output the approved title and body for the caller to pass into its PR-creation step.

Output format:

APPROVED TITLE:
<title>

APPROVED BODY (HEREDOC-ready):
<body>

The caller then writes the approved body to a temp file and runs its PR-creation step, e.g.:

cat > /tmp/<descriptive-name>.md <<'EOF'
<approved body>
EOF

${CLAUDE_SKILL_DIR}/../copilot-review/scripts/pr-with-copilot-review.sh \
  --base <base-branch> \
  --title "<approved title>" \
  --body-file /tmp/<descriptive-name>.md

7. Report

After filing in standalone mode, show the user:

  • The PR number and URL.
  • Any follow-up actions (linking from a parent umbrella issue, triggering Copilot review separately via copilot-review, etc.).

In gate mode, just confirm the approval and hand off to the caller.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.