Draft or improve a reviewer-ready pull request title and body from an exact revision, linked issue, implementation context, and verification evidence. Use when the user says "create a PR", "draft a PR", "write the PR body", "improve this pull request description", or "update the PR title and body".
Write a concise pull request that lets reviewers distinguish intended behavior
from verified facts. This skill drafts the title and body; it does not create a
branch, commit, request review, merge, deploy, or mutate a pull request without
the user's confirmation immediately before that action.
Resolve the PR route and linked issue
Read repository agent guidance, contribution and release documentation, CI
branch filters, branch protection when visible, and recent merged pull
requests. Establish and show:
Decision
Required evidence
Source and immutable head
Current branch and commit identifier
PR base
Documented allowed source-to-base route
Promotion path
Required integration, release, backport, or merge sequence
Linked issue
Supplied issue URL/identifier or a verified existing closing reference
Issue/project fields
Documented project, field, allowed value, and trigger
Do not infer that a feature branch can target main because it is the default
branch. Use a direct feature-to-main route only when repository evidence permits
it. If the route is absent or conflicting, show it as unresolved for a draft;
before creating or editing a pull request, ask the user for the exact base and
promotion path.
Resolve the linked issue before preparing a mutation. If it is not supplied and
cannot be verified from the existing pull request, ask the user for its link or
identifier; do not create or edit the pull request until it is known. Do not
guess from a branch name, commit message, or similar issue title. A
specification may provide additional requirements, but never substitutes for
the linked issue at the mutation gate.
When repository guidance maps a linked issue to project or issue metadata, plan
that update explicitly. For example, a documented mapping may require
Status = Development when a delivery pull request is opened. Never invent a
field, value, project, trigger, or permission from a familiar workflow. If the
mapping is absent, state that field provisioning is unresolved and ask for the
mapping before a mutation that requires it.
Ground the draft
Confirm the established PR route, linked issue, and immutable head. For an
existing PR, read its stored title/body and confirm that its head and base
match the route being described.
Read the exact diff, linked issue, relevant surrounding code, and relevant
tests. Read a specification as supplementary context when available.
Do not rely on an unrelated local working tree or authored PR text as proof.
Build a compact evidence ledger before drafting. Classify each material
statement by its strongest source:
Claim
Evidence
Evidence kind
Status
<behavior>
<pinned file/symbol or diff>
implementation
verified
<coverage intent>
<test path/name>
test source
verified coverage source
<check result>
<command output or pinned CI run>
executed verification
verified
<rollout state>
<runtime/deployment record>
deployed state
verified
Treat authored descriptions as claims to check, test source as evidence of
coverage intent rather than a passing result, configuration as intended
setup rather than deployed state, and missing evidence as unknown. Do not
infer a rollout, test result, benchmark, or user impact from the diff alone.
Identify the reviewer-relevant narrative: problem, observable behavior,
direct or indirect user impact, important boundaries/non-goals, rollout,
risks, and evidence. Preserve accurate issue links, required metadata, and
useful operational details from an existing body; remove stale claims and
duplication.
Draft
Use the repository's established title convention when one exists (such as
feat:, fix:, docs:, or chore:). Make the title name the primary
observable change, not the files changed. Keep it to one concern.
Use this body shape, omitting a section only when it is genuinely inapplicable:
Closes #<issue>
## Problem
<Why this change is needed.>
## Behavior
<What changes for users, operators, API consumers, or downstream systems. Say
"No direct user-facing impact" when accurate, then name the indirect impact.>
## Scope
- <Important implementation or contract detail>
- <Deliberate boundary or non-goal>
## Rollout and risks
<Only verified deployment, compatibility, migration, flag, monitoring, and
rollback facts. State an unknown rollout state or remaining risk explicitly.>
## Verification
- `<executed command or pinned CI run>` — <observed result>
- `<test source>` — <coverage it defines; not a claimed result>
Do not mark a checklist item complete or say a test is green without executed
evidence. Prefer durable file, symbol, test, configuration, run, or revision
references where they help review; avoid file-by-file narration and
implementation history that does not affect review or rollback.
Confirm before mutation
Show the title, body, pinned head revision, PR route, linked issue, proposed
field updates, and any unknown or unverified claims. For a proposal or wording
review, stop there.
Create or edit the host pull request only after the user explicitly confirms
the final draft, base branch, and any issue/project field updates immediately
before the mutation. Then read the saved title and body back from the host,
verify the issue link, route, required headings, and requested field values,
and report the URL and exact head revision. If the head, route, or issue changed,
repeat the grounding and drafting steps before asking for confirmation again.
Final check
The title describes one observable primary change.
Every behavior, scope, rollout, risk, and verification claim has a
classified evidence source or is marked unknown.
Authored claims, test sources, configuration, executed verification, and
deployed state are not conflated.
The body names the problem, behavior, scope, rollout and risks, and
verification without overstatement.
The base and promotion path are supported by repository evidence or
explicitly supplied by the user.
The linked issue is verified; any field update names its project, field,
value, and documented trigger.
No PR or issue/project metadata mutation occurs without fresh, explicit
confirmation.
Built by aictrl.dev. This skill teaches the workflow; aictrl operationalizes it — grounded in your backlog, team standards, and codebase knowledge graph. See how →
1---2name: create-pr3description: Draft or improve a reviewer-ready pull request title and body from an exact revision, linked issue, implementation context, and verification evidence. Use when the user says "create a PR", "draft a PR", "write the PR body", "improve this pull request description", or "update the PR title and body".4---56# Create a Pull Request78Write a concise pull request that lets reviewers distinguish intended behavior9from verified facts. This skill drafts the title and body; it does not create a10branch, commit, request review, merge, deploy, or mutate a pull request without11the user's confirmation immediately before that action.1213## Resolve the PR route and linked issue1415Read repository agent guidance, contribution and release documentation, CI16branch filters, branch protection when visible, and recent merged pull17requests. Establish and show:1819| Decision | Required evidence |20|---|---|21| Source and immutable head | Current branch and commit identifier |22| PR base | Documented allowed source-to-base route |23| Promotion path | Required integration, release, backport, or merge sequence |24| Linked issue | Supplied issue URL/identifier or a verified existing closing reference |25| Issue/project fields | Documented project, field, allowed value, and trigger |2627Do not infer that a feature branch can target `main` because it is the default28branch. Use a direct feature-to-main route only when repository evidence permits29it. If the route is absent or conflicting, show it as unresolved for a draft;30before creating or editing a pull request, ask the user for the exact base and31promotion path.3233Resolve the linked issue before preparing a mutation. If it is not supplied and34cannot be verified from the existing pull request, ask the user for its link or35identifier; do not create or edit the pull request until it is known. Do not36guess from a branch name, commit message, or similar issue title. A37specification may provide additional requirements, but never substitutes for38the linked issue at the mutation gate.3940When repository guidance maps a linked issue to project or issue metadata, plan41that update explicitly. For example, a documented mapping may require42`Status = Development` when a delivery pull request is opened. Never invent a43field, value, project, trigger, or permission from a familiar workflow. If the44mapping is absent, state that field provisioning is unresolved and ask for the45mapping before a mutation that requires it.4647## Ground the draft48491. Confirm the established PR route, linked issue, and immutable head. For an50 existing PR, read its stored title/body and confirm that its head and base51 match the route being described.522. Read the exact diff, linked issue, relevant surrounding code, and relevant53 tests. Read a specification as supplementary context when available.54 Do not rely on an unrelated local working tree or authored PR text as proof.553. Build a compact evidence ledger before drafting. Classify each material56 statement by its strongest source:5758 | Claim | Evidence | Evidence kind | Status |59 |---|---|---|---|60 | `<behavior>` | `<pinned file/symbol or diff>` | implementation | verified |61 | `<coverage intent>` | `<test path/name>` | test source | verified coverage source |62 | `<check result>` | `<command output or pinned CI run>` | executed verification | verified |63 | `<rollout state>` | `<runtime/deployment record>` | deployed state | verified |6465 Treat authored descriptions as claims to check, test source as evidence of66 coverage intent rather than a passing result, configuration as intended67 setup rather than deployed state, and missing evidence as unknown. Do not68 infer a rollout, test result, benchmark, or user impact from the diff alone.694. Identify the reviewer-relevant narrative: problem, observable behavior,70 direct or indirect user impact, important boundaries/non-goals, rollout,71 risks, and evidence. Preserve accurate issue links, required metadata, and72 useful operational details from an existing body; remove stale claims and73 duplication.7475## Draft7677Use the repository's established title convention when one exists (such as78`feat:`, `fix:`, `docs:`, or `chore:`). Make the title name the primary79observable change, not the files changed. Keep it to one concern.8081Use this body shape, omitting a section only when it is genuinely inapplicable:8283```markdown84Closes #<issue>8586## Problem8788<Why this change is needed.>8990## Behavior9192<What changes for users, operators, API consumers, or downstream systems. Say93"No direct user-facing impact" when accurate, then name the indirect impact.>9495## Scope9697- <Important implementation or contract detail>98- <Deliberate boundary or non-goal>99100## Rollout and risks101102<Only verified deployment, compatibility, migration, flag, monitoring, and103rollback facts. State an unknown rollout state or remaining risk explicitly.>104105## Verification106107- `<executed command or pinned CI run>` — <observed result>108- `<test source>` — <coverage it defines; not a claimed result>109```110111Do not mark a checklist item complete or say a test is green without executed112evidence. Prefer durable file, symbol, test, configuration, run, or revision113references where they help review; avoid file-by-file narration and114implementation history that does not affect review or rollback.115116## Confirm before mutation117118Show the title, body, pinned head revision, PR route, linked issue, proposed119field updates, and any unknown or unverified claims. For a proposal or wording120review, stop there.121122Create or edit the host pull request only after the user explicitly confirms123the final draft, base branch, and any issue/project field updates immediately124before the mutation. Then read the saved title and body back from the host,125verify the issue link, route, required headings, and requested field values,126and report the URL and exact head revision. If the head, route, or issue changed,127repeat the grounding and drafting steps before asking for confirmation again.128129## Final check130131- [ ] The title describes one observable primary change.132- [ ] Every behavior, scope, rollout, risk, and verification claim has a133 classified evidence source or is marked unknown.134- [ ] Authored claims, test sources, configuration, executed verification, and135 deployed state are not conflated.136- [ ] The body names the problem, behavior, scope, rollout and risks, and137 verification without overstatement.138- [ ] The base and promotion path are supported by repository evidence or139 explicitly supplied by the user.140- [ ] The linked issue is verified; any field update names its project, field,141 value, and documented trigger.142- [ ] No PR or issue/project metadata mutation occurs without fresh, explicit143 confirmation.144145---146**Built by [aictrl.dev](https://aictrl.dev/?utm_source=oss-skills&utm_medium=skill&utm_campaign=create-pr&utm_listing=github-skills&utm_platform=portable&utm_skill=create-pr).** This skill teaches the workflow; aictrl *operationalizes* it — grounded in your backlog, team standards, and codebase knowledge graph. [See how →](https://aictrl.dev/features?utm_source=oss-skills&utm_medium=skill&utm_campaign=create-pr&utm_listing=github-skills&utm_platform=portable&utm_skill=create-pr)
Run npx skillmds@latest add aictrl-dev/create-pr in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Draft or improve a reviewer-ready pull request title and body from an exact revision, linked issue, implementation context, and verification evidence. Use when the user says "create a PR", "draft a PR", "write the PR body", "improve this pull request description", or "update the PR title and body". It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
aictrl-dev (@aictrl-dev) published this skill. Their other Agent Skills are listed on their SkillMD profile.