#RELEASE — Repository Release Contract
Use this prompt to plan, document, review, publish, correct, and hand off a GitHub release for any product or feature in devs-guide/openai.
RELEASE-002 — Review the complete release range
Before writing, inspect the complete previous-tag-to-candidate commit range, diff summary, operator-facing sources, schemas, configuration, publication manifest, runtime dependencies, migrations, and validation evidence. Read at least one prior well-structured release from the same repository for tone and layout.
Build a release inventory that separates included behavior, supporting changes, important exclusions, compatibility effects, safety effects, and unresolved limitations. Every material release claim must be traceable to the reviewed range or recorded validation; never infer completion from a branch name, pull-request title, or draft note.
RELEASE-003 — Version, tag, and correction integrity
Use the repository's approved semantic-version policy and bare numeric tags. Treat every published tag and its target commit as immutable. Never move, delete, recreate, or silently retarget a published tag, and never replace its assets under the same version.
A reviewed title or body may be corrected in place only when the tag, target, release state, and assets remain unchanged. A behavioral correction creates a new version. Preserve declared migration baselines and distinguish the current release, immediate predecessor, and older historical baselines.
RELEASE-004 — Reader-focused language
Lead with the practical outcome and why it matters. Use plain, specific language for the affected operator, developer, researcher, or reader. Describe reusable behavior rather than centering a hostname, account, workstation, private incident, or one deployment. Define uncommon terms and keep claims proportional to the evidence.
Prefer a compact release that can be understood quickly. Do not pad notes with raw diff statistics, exhaustive mechanical changes, private process history, credentials, unverifiable superlatives, or generic celebration. Use tables, diagrams, examples, and longer explanations only when they materially improve operation, migration, or review.
RELEASE-005 — Adaptive release body
Every body contains, in this order: ## X.Y.Z; one or two summary paragraphs; ### Scope; ### Highlights; ### Added; ### Changed; ### Fixed; ### #COMMIT; ### Notable commits since <previous-tag>; and ### Assets. Write None under an applicable change category with no entries rather than removing its heading.
Add only the modules triggered by the release:
Who should use this releaseandQuick startfor a new user workflow.Operator workflow and safetyfor privileged, destructive, storage, authentication, network, purchase, or external-sharing behavior.Interfaces and compatibilityfor APIs, schemas, configuration, routes, file formats, or changed defaults.Migration and recoverywhen existing users must transition or can fail partway through an upgrade.Validation evidencewhen runtime, hardware, data, or human acceptance materially supports the claims.Known boundarieswhen exclusions or unsupported cases could otherwise be mistaken for supported behavior.
Keep the compact core when none of these modules is triggered. Never add a module merely to make the release look larger.
RELEASE-006 — Scope, history, and assets
Scope states the reviewed release range, product or feature boundary, published entrypoints, and important exclusions. Highlights contain only the highest-signal outcomes. Added, Changed, and Fixed explain behavior and impact, not filenames without context.
The commit section records the approved release commit subject. Notable commits use hashes verified from the actual release range and exact subjects; select meaningful commits rather than dumping mechanical history. Assets distinguish GitHub-generated source archives, Pages-published material, attached artifacts, and artifacts intentionally absent. Never claim that source-only documentation is an executable or binary asset.
RELEASE-007 — Documentation and publication graph
Update every applicable source index, version record, feature record, publication-manifest entry, rendered route, raw route, dependency declaration, and validator in the same candidate. Keep source and rendered documentation distinct, and publish byte-exact raw sources where the repository contract requires them.
Do not publish generated build output on the source branch. A release is not ready while a required entrypoint is absent from the publication graph, a live route represents another commit, or documentation promises behavior that the tagged source does not contain.
RELEASE-008 — Pull request and candidate gate
Use a reviewable release branch and pull request. Freeze the exact candidate commit, confirm the effective diff and dependency ancestry, and require the repository's GitHub checks. For stacked releases, merge, deploy, tag, and publish each predecessor before retargeting and advancing its dependent pull request.
Use the approved merge strategy and release commit subject. Do not publish from an unmerged branch, a moving reference, a dirty worktree, a failed check, or a candidate whose reviewed notes describe another source state.
For a release that consolidates related edge cases, maintain one tracked acceptance ledger mapping each case to its canonical contract owner, configuration or schema representation, validator, result, and evidence. Do not create an intermediate tag, prerelease, or partial public release while an in-scope case remains open. A newly discovered in-scope case before publication joins the same candidate and restarts the affected review gates.
RELEASE-009 — Draft, approval, and publication
Store the complete proposed body in a normal tracked Markdown file. Present the exact title and body for human review before changing GitHub release state. After approval, use that file without publication-time rewriting.
Deploy and validate the exact candidate before creating its tag. Create or converge a draft first, verify its annotated tag, target commit, title, body, draft and prerelease state, and asset list, then publish the same reviewed draft. Read the public release back through the GitHub API. An idempotent retry must fail closed when an existing release or tag points somewhere else.
Create the GitHub draft only after every canonical prompt, configuration, schema, Template, publication route, acceptance-ledger case, and required check belongs to one frozen candidate. A tracked proposed body is not an early release; a tag, GitHub draft, prerelease, or public release is prohibited before that freeze.
RELEASE-010 — Completion, handoff, and later changes
Complete only when the pull request is merged, required checks pass, Pages or other publication surfaces match the tagged commit, the release is public, and the live title, body, tag, target, state, and assets match the approved record. Return links for the pull request, validation runs, deployment, tag, release, and supported source archives plus any material limitation.
When the release enables a separate manual acceptance test, hand off the exact tag, commit, immutable input, entrypoint, expected identities, bootstrap instruction, and test boundary. Do not claim the downstream test passed until its own evidence exists. Later behavioral fixes, refreshed artifacts, or changed release inputs require a successor release.