open-pr
SkillDev toolsCreate a draft PR with an AngriestBird-style summary, link issues, update Changelog.txt for unlisted changes, and report what issue numbers are needed.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the open-pr skill
What this skill tells your AI
The instructions your AI receives, as published by millenniumdawn/millennium-dawn in .claude/skills/open-pr/SKILL.md and read by ahel’s review.
Create a draft PR for the current branch with an AngriestBird-style summary, linked GitHub issues, and changelog entries for any changes not yet listed in Changelog.txt.
Arguments (optional, space-separated):
- Issue numbers to close, e.g.
1354 1261 - A quoted PR title override, e.g.
"Fix Cuba AI and Egypt bugs"
Requested arguments: $ARGUMENTS
Steps
1. Read branch state
git rev-parse --abbrev-ref HEAD
git log origin/main..HEAD --oneline
git diff origin/main...HEAD --stat
git diff origin/main...HEAD
If the branch has no commits ahead of main, stop: "No commits ahead of main, nothing to open a PR for."
2. Parse arguments
From $ARGUMENTS:
- Bare integers are issue numbers to close.
- Any double-quoted string is the PR title override.
If no issue numbers were given: scan the step-1 commit messages for #N patterns and collect them as candidates. Do NOT fail; continue without Closes #N lines. At the end, tell the user which issue numbers you found in commits and prompt them to re-run as /open-pr N M to link them.
3. Fetch linked issues
For each issue number from step 2, run:
gh issue view <N> --repo MillenniumDawn/Millennium-Dawn --json number,title,body,labels
Use the title and body to name the change accurately in one bullet. If gh errors (not found or private), note the failure and skip that number.
4. Derive the PR title
If the user supplied a quoted title, use it verbatim.
Otherwise: strip a fix/, feature/, chore/, or content/ prefix from the branch name, replace hyphens and underscores with spaces, title-case each word, then append (#N, #M) if issue numbers were given.
Examples:
- Branch
fix/cuba-egypt-bugs+ issues 1354, 1261 →"Fix Cuba Egypt Bugs (#1354, #1261)" - Branch
thegeneral-uk(no prefix): prefer the most descriptive commit subject line as the title.
For a personal fork branch with no clear description (e.g. thegeneral-uk), derive the title from the most descriptive commit subject in the log. Keep it under 70 characters.
5. Compose the PR body
Use this exact structure (the project's real format, confirmed across recent merged PRs):
### Changes
- Adds Overall Productivity + Monthly Productivity Growth to toolbar options
- Adds lists of all options for any dropdown menu list
Closes #N
Rules:
- Single
### Changesheading. No### Summary, no####subsections, no grouping by category. - One bullet per user-visible change, one line each. Plain sentence, no bold prefixes, no quoted issue titles, no root-cause narration, no file paths, no
file:line, no commit hashes, no focus/event/decision IDs unless the ID is the only way to name the thing. - Describe the outcome the player sees, not the implementation.
- Group micro-changes (e.g. "Fixed 12 log copy-paste errors") into a single bullet.
- Default placement:
Closes #Ngoes at the bottom, one blank line after the last bullet, oneCloses #Nper line for multiple issues (see PR #2523). - If different bullets close different issues, skip the trailing block instead: append the closure to the bullet it belongs to, either on the same line (
- Fixed the debt repayment bug - Closes #2486) or, when one bullet closes more than one issue, as indented sub-lines (- Closes #2492/- Closes #2355). See PR #2598 and #2515. - Never use em dashes (
—, U+2014) anywhere: not in the PR title, body, bullets, Changelog.txt, or any.ymlfile. Standing user rule, no exceptions. - The test plan is not part of the PR body. After creating the PR, run
/test-planto generate and attach an approximate playthrough checklist (.claude/skills/test-plan/SKILL.md).
6. Check and update Changelog.txt
Apply the /changelog process (.claude/skills/changelog/SKILL.md) to add entries for any branch changes not already listed: identify the top-most version heading, reuse only the file's existing categories (never invent one), and insert past-tense - [TAG] ... bullets with no em dashes. Skip changes already present (grep the focus/event/decision ID or Issue #N).
If entries were added, stage and commit them separately before creating the PR:
git add Changelog.txt
git commit -m "Update Changelog.txt"
If Changelog.txt is already up to date, skip this step and note "Changelog already up to date."
7. Push and create the draft PR
Push the branch if not already on the remote:
git push -u origin HEAD
Then create the draft PR:
gh pr create --draft \
--repo MillenniumDawn/Millennium-Dawn \
--title "<title from step 4>" \
--body "$(cat <<'EOF'
<body from step 5>
EOF
)"
8. Report back
Output:
- The PR URL.
- Whether
Changelog.txtwas updated and which entries were added, or "Changelog already up to date." - If no issue numbers were provided: list any
#Nreferences found in commits and tell the user: "To link these issues, re-run as/open-pr N M." - Remind the user the PR body has no test plan by design: "Run
/test-planto generate and attach an approximate playthrough checklist."
Signals
- GitHub stars
- 116
- Forks
- 77
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
open-pr-millenniumdawn- Source
- github.com/millenniumdawn/millennium-dawn