一键导入
release-notes
Drafts FRB1 release notes from commits/PRs since the last release. Triggers: cutting an FRB1 release, drafting release notes, /release-notes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Drafts FRB1 release notes from commits/PRs since the last release. Triggers: cutting an FRB1 release, drafting release notes, /release-notes.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Glue↔running-game live edit (drag/resize/tweak a live game, changes flow back to Glue). Triggers: GlueControl, GameConnectionManager, CommandReceiver, VariableAssignmentLogic, EmbeddedCodeManager, ActivityEditMode, edit mode.
How FlatRedBall integrates the Gum UI layout/rendering library — plugin structure, .gumx projects, runtime wrapper. Triggers: GumPlugin, GraphicalUiElement, GUE, .gumx, .gusx, Gum.Wireframe, PositionedObjectGueWrapper, RenderingLibrary.
FRB vs MonoGameGum source-sharing model — same .cs files, separate .csproj, and where the two diverge. Triggers: Compile Include Gum, GumRuntime, MonoGameGum, Cursor, shared source file missing on FRB side.
FRB1 (engine + Glue) release runbook — gh CLI sequence for Engine.yml/glue.yml, version scheme, release notes. Triggers: cutting a release, IsBeta, BuildServerUploaderConsole, NuGet publish, changeengineversion.
Glue's editor-side file watcher — detects external edits to project/content files and reacts (reload glux, regen code, notify plugins). Triggers: FileWatchManager, ChangedFileGroup, UpdateReactor, IgnoreChangeOnFileUntil, IgnoreNextChangeOnFile, FileSystemWatcher, self-save suppression.
Creates and updates skill files (.claude/skills/*/SKILL.md). Triggers: creating/updating a skill, documenting a subsystem for agent context.
| name | release-notes |
| description | Drafts FRB1 release notes from commits/PRs since the last release. Triggers: cutting an FRB1 release, drafting release notes, /release-notes. |
Drafts the release notes markdown from git history since the previous release. Does not bump versions, trigger workflows, or publish the release — that's [[release]]. Only writes the draft.
Modeled on the Gum repo's gum-monthly-release skill (same hybrid curated + full changelog format, same fan-out-to-avoid-summarization fix), adapted for one structural difference: FRB1's history is not PR-only. A recent 3.5-month window had 88 commits but only 16 carried a (#N) PR suffix — the rest are direct commits, mostly by vchelaru. So commits, not PRs, are the canonical unit here; PR numbers are used opportunistically for the ~15-20% that have one, not as the primary iteration axis.
Same collaboration stance as Gum's skill: when categorization, intent, or which commits belong together is unclear, stop and ask, or drop it in ## Open Questions. Don't invent user-impact descriptions from a one-line commit message.
Ask up front, one message, numbered:
Release_<Month>_<DD>_<YYYY> (e.g. Release_September_23_2025) — some older tags drop the Release_ prefix, ignore those as precedent.gh release list --repo vchelaru/FlatRedBall --limit 5 and confirm. Cross-check it: if a newer published release exists between the proposed boundary and main, flag it before proceeding (using a stale boundary double-counts commits already shipped).The canonical set is every commit between the boundary tag and main, not a PR search:
git fetch origin --tags -q
git log --no-merges <prev-tag>..origin/NetStandard --format="%H|%an|%s"
For the ~15-20% of subjects ending in (#N), that's a real PR — gh pr view N --repo vchelaru/FlatRedBall --json title,body,author,files gets richer context if the subject alone is too sparse. For the rest, there is no PR to look up; read the commit itself (git show <hash>) for diff context when the subject line alone doesn't say enough.
No proven noise-filter list exists for FRB1 yet (unlike Gum's GITBOOK-/FRB fixes exclusions, which came from repeated real drafts). Don't invent exclusion patterns — if a commit looks like repo housekeeping (version bumps, merge artifacts, CI-only), flag it in Open Questions rather than silently dropping it or silently keeping it.
Same structural fix as Gum's skill, adapted to commits: the main agent never reads the full commit list itself. Batch the canonical commit set into groups of ~8-10, spawn one subagent per batch in parallel, each returning finished user-impact bullets for its batch.
The FRB1-specific judgment call, different from Gum's PRs-only case: since commits (not PRs) are the unit, a run of several small sequential commits often builds one feature incrementally (e.g. "First pass at collision fixes" → "Improved camera controlling entity to properly use padding..." → "Handle passing back and forth now works"). The subagent should consolidate adjacent same-theme commits into one bullet when they clearly form a single unit of work, and keep them separate when they're genuinely distinct changes that happen to be adjacent in history. This cuts both ways versus Gum's rule (which only ever expands a roll-up PR into more bullets, never consolidates) — judge each batch on its own merits.
Subagent prompt should cover: the batch's commit hashes+subjects+authors, instruction to run git show <hash> for any commit whose subject doesn't already say what changed, the consolidate-vs-separate judgment above, and the same user-impact-first clarity bar as Step 5 below. Return one JSON object per resulting bullet: { "commits": ["<hash>", ...], "author": "name", "section": "...", "bullet": "...", "confidence": "high"|"medium"|"low", "note": "..." }.
Recurring sections seen in past releases (confirm against a couple of gh release view <recent-tag> calls before drafting, since this list isn't guaranteed exhaustive):
Attribution: default primary author is vchelaru (79 of 88 commits in the sampled window) — no (thanks @...) for their own commits. Everyone else gets (thanks @author), matching the trailing-space style already used in past releases ((thanks @vicdotexe )).
Same bar as Gum's skill — re-read every bullet as a user who's never seen the codebase:
Below the curated sections, list every commit in the canonical set (newest first), one line each, for verifiability:
git log --no-merges <prev-tag>..origin/NetStandard --format="- %s (thanks @author, only if not vchelaru)"
Then a placeholder line directly after:
PLACEHOLDER!!!! Full Changelog link
This is https://github.com/vchelaru/FlatRedBall/compare/<prev-tag>...<new-tag> — only resolvable once the new tag exists, filled in after the release is cut, not missing content.
Use the same loud plain-text placeholder style for any spotlight-feature images in Biggest Changes: PLACEHOLDER!!!! IMAGE/GIF for <feature name>.
Write to temp/release-notes-YYYY-MM-DD.md at the repo root (date from the release tag), then open it (start temp/release-notes-YYYY-MM-DD.md) and confirm the path in chat.
Work through ## Open Questions one at a time with the user, editing the file directly as each resolves. The skill is done when the file has only the release notes - no Open Questions block left.