跳到正文
cccskills
Codex 官方免费在 GitHub 公开

final-release-review

Review a JavaScript SDK release plan or final candidate against the previous release. Check compatibility, packaging, regressions, and Changesets version records, then recommend shipping or blocking with supporting evidence and a separate assessment of documentation coverage.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Assess a JS SDK release candidate or release plan against the previous release and recommend ship or block.

查看安装方法

适用场景

  • Review the next SDK release plan
  • Assess whether a final release candidate can ship
  • Check generated versions and changelogs for consistency
  • Review documentation coverage and draft minor-release notes

包含的文件(4)

  • SKILL.md15.8 KB
  • agents/openai.yaml289 B
  • references/review-checklist.md11.5 KB
  • scripts/find_latest_release_tag.sh422 B

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Final Release Review

Purpose

Audit BASE_TAG...TARGET in one of two modes:

  • Pre-release planning: use when the user asks to plan the next release or reviews origin/main before the Changesets version PR exists. Derive the planned release type from the active changesets in TARGET. Do not treat unchanged package versions as a blocker.
  • Final candidate: use when the user asks for a final candidate decision or TARGET contains a Changesets-generated version commit. Derive the candidate type from the consumed changesets, then verify the generated package versions and changelogs.

Treat Changesets as the source of truth for patch versus minor. Let $changeset-validation judge whether each changeset uses the correct bump for its package diff; do not independently replace a valid declared bump with a semantic-version judgment from this review. Independently audit runtime compatibility, regressions, packaging, and release risks. Keep documentation readiness separate from the release gate.

Quick start

  1. Ensure the repository root is openai-agents-js.
  2. Sync remote tags and choose the previous release:
    BASE_TAG="$(.agents/skills/final-release-review/scripts/find_latest_release_tag.sh origin 'v*')"
    
  3. Refresh and resolve the target, defaulting to origin/main:
    git fetch origin main --prune
    TARGET="$(git rev-parse origin/main)"
    
    Resolve an explicitly supplied tag or ref to its peeled commit with git rev-parse "${TARGET_REF}^{commit}"; use the commit SHA rather than an annotated tag object in the report and compare URL.
  4. Resolve review mode independently from the release type:
    1. Honor an explicit user request for pre-release planning or final-candidate review.
    2. Otherwise, use final-candidate mode when TARGET contains a Changesets-generated version commit or package versions have been bumped beyond BASE.
    3. Otherwise, use pre-release planning mode.
  5. Resolve the Changesets release state and type:
    1. In planning mode, inspect every active .changeset/*.md file at TARGET except .changeset/README.md.
    2. In final-candidate mode, identify the version commit and read each changeset it deleted from the commit's first parent. Also inspect generated packages/*/package.json and packages/*/CHANGELOG.md changes.
    3. Record every source changeset, package entry, and declared bump.
    4. Set the release-level type to the highest valid declared bump: minor over patch. Account for the fixed package group in .changeset/config.json; do not infer a lower type from an individual package version.
    5. Treat a major entry, malformed frontmatter, mixed active and consumed release sets, or package changes with no applicable changeset as an invalid release state. Do not coerce it to patch or minor.
  6. Snapshot the release diff:
    git diff --stat "${BASE_TAG}"..."${TARGET}"
    git diff --dirstat=files,0 "${BASE_TAG}"..."${TARGET}"
    git log --oneline --reverse "${BASE_TAG}".."${TARGET}"
    git diff --name-status "${BASE_TAG}"..."${TARGET}"
    
  7. Audit the diff with references/review-checklist.md and prove or dismiss each candidate against the released contract.
  8. Discover and review relevant open documentation PRs using current read-only GitHub state. Do not infer coverage from local branches, titles, or historical context.
  9. Report the Changesets release state, ship/block gate, risk assessment, documentation coverage, and conditional minor-release Key Changes draft.

Changesets release policy

  • Use active changeset frontmatter in pre-release planning and consumed changeset frontmatter in a generated final candidate as the authoritative release-type declaration.
  • Assume required changeset validation passed in CI unless current evidence says otherwise. If its status is unavailable, say so; do not silently rerun the semantic bump classification inside this skill.
  • When current evidence shows a missing, malformed, stale, or inconsistent changeset, report the release-preparation defect. In planning mode, give the exact correction without pretending a candidate exists. In final-candidate mode, block until the Changesets inputs and generated outputs agree.
  • A target with no releasable package changes and no changesets has release type none. Do not invent a patch release.
  • In planning mode, package versions may still match BASE. The Changesets workflow owns the later version bump.
  • In final-candidate mode, verify that the consumed release type, generated package versions, fixed-group propagation, changelogs, and version commit agree. A mismatch is blocking.
  • A user-supplied patch or minor label is context, not an override for repository Changesets state. Report disagreement and use the repository declaration.
  • Distinguish an undocumented migration from the absence of a usable migration or compatibility path. Missing documentation is non-blocking; an actual supported-path break with no usable migration or fallback can block regardless of the declared bump.

Deterministic gate policy

  • Default to 🟢 GREEN LIGHT TO SHIP unless at least one blocking trigger is proven.
  • Use 🔴 BLOCKED only with concrete release-blocking evidence and an actionable unblock condition.
  • Blocking triggers:
    • A confirmed regression or bug introduced in BASE_TAG...TARGET.
    • In final-candidate mode, invalid Changesets state or a mismatch between consumed changesets and generated versions, changelogs, or fixed-group updates.
    • A confirmed breaking public API, protocol, config, or durable-state change with no usable migration, fallback, or compatibility path.
    • A concrete data-loss, corruption, or security-impacting change with unresolved mitigation.
    • A release-critical packaging, build, or runtime path broken by the diff.
  • The following are never blocking by themselves:
    • Large diff size, broad refactoring, or many touched files.
    • Speculative "could regress" concerns without evidence.
    • Not rerunning CI checks locally.
    • Missing, incomplete, unmerged, stale, or post-release documentation.
    • Unchanged package version metadata in pre-release planning mode.
  • A documentation review may reveal an underlying runtime or compatibility defect. Block only for that defect, not for the documentation state.
  • A green gate must still explain important user-visible release surfaces.

Workflow

Prepare and map the diff

  • Fetch current remote tags and the target ref. Keep working-tree changes out of the comparison.
  • Prefer a user-specified base tag, but still refresh remote tags.
  • Assume the target passed repository CI, including $code-change-verification and $changeset-validation, unless told otherwise. Do not rerun routine unit, lint, formatting, type, coverage, or changeset checks by default.
  • Use diff stats, directory distribution, commit order, and name status to identify high-risk areas. Read changed tests as behavioral evidence, not as proof by themselves.

Audit contracts and prove findings

  • Compare BASE and TARGET rather than reviewing TARGET in isolation.
  • For public APIs, compare exports, identity, TypeScript signatures, parameter order, defaults, enums, and documented behavior.
  • For packages, compare supported Node.js and TypeScript versions, dependencies, peers, optional dependencies, package exports, published contents, version metadata, and ESM/CJS/type behavior.
  • For persisted state, schemas, protocols, config, and environment variables, identify the released durable boundary and verify backward reads or a usable migration path.
  • Route runtime changes through the owning reference in .agents/references/README.md and trace required consumers and symmetry axes.
  • Promote a candidate only when the diff proves a contract violation, reachable supported-path regression, or concrete user-visible release consideration.
  • Use the smallest identical BASE-versus-TARGET public-path or packed-artifact probe when static evidence cannot resolve a decision-relevant question.
  • Assign 🟢 LOW to verified safe considerations, 🟡 MODERATE to concrete unresolved regression signals, and 🔴 HIGH to confirmed blockers.
  • Include Evidence, Impact, Files, and Action for every risk item. Do not manufacture test or code work for a safe release consideration.

Review documentation coverage

  • First derive a documentation-obligation inventory from the runtime audit: breaking changes, migrations, defaults, opt-ins or opt-outs, major features, public APIs, provider and dependency compatibility, durable schemas, and changed user workflows.
  • Before reporting any obligation as uncovered, inspect current open PRs through approved read-only GitHub access. Never use gh in this repository and never mutate GitHub.
  • Discover candidates using the Changesets release type, likely version, feature names, linked implementation PRs, branch names, and changed documentation paths. Do not rely on the PR title alone.
  • For each candidate, record its PR number or URL and latest head SHA, then review its complete current diff and any discussion that materially affects a coverage claim. Several PRs may collectively cover the inventory.
  • Keep the release target diff and documentation-PR diffs separate. Do not imply that an open docs PR is already part of the release target.
  • Classify aggregate coverage as covered, partially covered, not covered, stale/conflicting, or unverified.
  • If current read-only GitHub access is unavailable, use unverified, explain the search limitation, and do not claim that no docs PR exists.
  • For every obligation that is not demonstrably covered, suggest the exact post-release file, section, example or claim, and required migration or compatibility wording. Mark suggestions provisional when coverage is unverified.
  • Treat an unmerged docs PR as an acceptable post-release handoff. Note when it should remain unmerged until the SDK release is available.

Draft minor-release Key Changes

  • Include a copy-ready Key Changes draft whenever the authoritative Changesets release type is minor. Omit it for patch or none unless the user requests it.

  • Derive the draft from verified user-facing contracts and changeset summaries, not raw commit counts or directory summaries.

  • Follow the established JS release format:

    ## Key Changes
    
    ### <User-facing theme>
    
    <A concise paragraph describing the behavior, exact public names, and migration or fallback when applicable.>
    
  • Use one section when there is one major theme and normally two to seven sections for a broader minor release. Do not add a synthetic Highlights list.

  • Put breaking behavior and the supported migration or fallback first. If the minor release has no breaking changes, say so in the relevant introductory section or first theme.

  • Cover the major release themes without reproducing the generated ## What's Changed list. Preserve exact public names, defaults, version bounds, opt-outs, and compatibility qualifiers.

  • Use only stable published documentation URLs. Do not include open branch links; mention open docs PRs separately in Documentation coverage.

  • Produce the draft even when the release is blocked, but do not let polished release copy hide the blocker.

Form the recommendation

  • State BASE_TAG, TARGET commit, review mode, Changesets state and source, authoritative release type, and generated candidate version when known.
  • Summarize key directories and file counts without turning every commit into a report item.
  • List only substantiated blockers and the most important verified release considerations, normally two to five grouped by user impact.
  • Keep documentation coverage in its own non-blocking section.
  • If blocked, include an exact unblock checklist and pass condition. If no concrete unblock action exists, do not block.
  • Do not include routine command results, pass counts, skips, deselections, or a validation-status inventory.

Output format (required)

Produce the report in English using this structure and the repository's AGENTS.md section "GitHub-ready Output". Deliver the entire report, including any Key Changes draft, inside one copyable markdown code block by default; the template below is the literal content of that block. Honor an explicit request for raw text without fences.

Inside the report, use the fixed compare URL https://github.com/openai/openai-agents-js/compare/<tag>...<target-commit> as a bare URL. Use native GitHub references such as #123 for documentation and version PRs. Do not create Markdown links or wrap an already rendered link again. Use repository-relative paths in inline code for file evidence, never absolute local paths or local-file links. If the user requests no file paths, use affected component or documentation section names, including in the Changesets source and risk fields. Keep host-specific citations and annotations outside the report's code block.

Before sending, check the copyable source for one intact compare URL, native PR references, portable file evidence, and absence of nested link wrappers or host-specific markup. Preserve the review's original evidence and scope when only correcting its formatting.

### Release readiness review (<tag> -> TARGET <ref>)

This is a release readiness report done by `$final-release-review` skill.

### Diff

https://github.com/openai/openai-agents-js/compare/<tag>...<target-commit>

### Release intent

- Review mode: <pre-release planning | final candidate>
- Changesets state: <active | consumed | none | invalid>
- Changesets source: <repository-relative changeset paths or version commit; use a release-set description when paths are excluded; include validation limitation when material>
- Release type: <patch | minor | none | invalid>
- Candidate version: <version when generated, or not yet generated in planning mode>
- Versioning verdict: <declared plan | generated candidate consistent | correction required | invalid candidate>

### Release call

**<🟢 GREEN LIGHT TO SHIP | 🔴 BLOCKED>** <one-line rationale>

### Scope summary

- <N files changed (+A/-D); key areas touched: ...>

### Risk assessment (ordered by impact)

1. **<Finding or release consideration title>**
   - Risk: **<🟢 LOW | 🟡 MODERATE | 🔴 HIGH>**. <Impact statement.>
   - Evidence: <specific BASE-versus-TARGET evidence>
   - Files: <repository-relative paths, or affected components when paths are excluded>
   - Action: <next step and pass condition>

### Documentation coverage (non-blocking)

- Coverage source: <native PR reference and head SHA, multiple PRs, none found after a successful search, or search unavailable or partial>
- Status: <covered | partially covered | not covered | stale/conflicting | unverified>
- Covered obligations: <concise list or none>
- Gaps or post-release suggestions: <exact files, sections, claims, or none>
- Publication timing: <merge after release when docs describe unreleased behavior, or not applicable>

### Unblock checklist

1. [ ] <required only when blocked>
   - Exit criteria: <what must be true>

### Key Changes draft

<Include the copy-ready `## Key Changes` block only for a Changesets-declared minor release.>

### Notes

- <Material assumptions only>
  • Omit Unblock checklist when the release is green.
  • Omit Key Changes draft for patch or none unless requested.
  • For a behavior-impacting green release, retain at least one 🟢 LOW consideration; do not return only "No material risks identified".
  • For a metadata-only release with no reportable user-facing contract, a concise empty-risk statement is acceptable.

Resources

  • scripts/find_latest_release_tag.sh: refresh remote tags and return the newest matching release tag.
  • references/review-checklist.md: detailed Changesets resolution, discovery signals, docs-coverage review, and evidence requirements.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

changeset-validation

Codex 官方免费

Check package changes against changesets, the files describing release updates, to assess summaries and required version increases. Use it to review pull requests or uncommitted changes and obtain a structured verdict with errors, warnings, and the required bump.

中文简介正在准备中。当前显示英语简介。

  • Reviewing changeset compliance in a pull request
  • Checking release notes against uncommitted changes
  • Choosing the appropriate version bump
openai/openai-agents-js39362026年10月22日 更新

code-change-verification

Codex 官方免费

Run final checks after reviewed SDK changes, covering dependency installation, builds, types, generated declarations, linting, tests, and formatting. The workflow requires every check to pass before the work is marked complete.

中文简介正在准备中。当前显示英语简介。

  • Final verification after SDK code changes
  • Checking changes to tests or build configuration
  • Rechecking the full validation sequence after fixes
openai/openai-agents-js39362026年10月22日 更新

credit-note-fixer

Codex 官方免费

Fix a small formatting bug in a credit note shell script while keeping the output label as credit and the amount positive. Run the specified targeted test and summarize the bug, fix, and verification command.

中文简介正在准备中。当前显示英语简介。

  • Fix a credit note output formatting bug
  • Check the credit label and positive amount
  • Run the specified test and report the fix
openai/openai-agents-js39362026年10月22日 更新

csv-workbench

Codex 官方免费

Analyze CSV files with Python and get concise numerical summaries. The skill checks column structure before calculating requested aggregates, includes units when available, and explains assumptions when data is missing or incorrectly formatted.

中文简介正在准备中。当前显示英语简介。

  • Quick summaries of CSV data
  • Calculating requested aggregates
  • Reporting assumptions about missing or malformed data
openai/openai-agents-js39362026年10月22日 更新

docs-sync

Codex 官方免费

Compare English SDK documentation with source code to find missing features, incorrect defaults, and outdated explanations. Produce evidence-backed findings or update the requested pages, with verification matched to the scope of the documentation changes.

中文简介正在准备中。当前显示英语简介。

  • Audit documentation for a specific SDK feature
  • Check documentation against branch changes
  • Correct outdated option names and defaults
openai/openai-agents-js39362026年10月22日 更新

examples-run-analysis

Codex 官方免费

Analyze existing logs and source files from a completed example run to verify that intended actions actually occurred. Review every entry, classify failures and skips, and report evidence without running examples, controlling processes, or modifying files.

中文简介正在准备中。当前显示英语简介。

  • Verify behavior after a completed example run
  • Check whether exit-zero examples performed their intended actions
  • Separate repository failures from environment restrictions
openai/openai-agents-js39362026年10月22日 更新

查看 openai 的全部技能

报告此技能的问题