跳到正文
cccskills
免费在 GitHub 公开

rea-changelog-update

Prepare or rewrite REA release changelogs and GitHub release notes from pinned Git history, with verified contributor thanks and Release Please synchronization.

中文简介正在准备中。当前显示原文说明。

集成工具GitHub

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md10.3 KB

SKILL.md(原文)

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

REA changelog update

Use this for release-note preparation and contributor attribution. Read docs/releasing.md from the repository root for publication authority and the existing checkpoint checks. This skill prepares notes; it does not authorize merging, tagging, or publishing.

Inventory before prose

Fetch complete history and tags. Select the published baseline tag from .release-please-manifest.json on the release PR's base branch, and pin that branch's exact SHA as the editorial target. REA tags are rea-agents-VERSION. Use the proposed version, including its prerelease suffix; do not change the always-bump-minor strategy to imitate OpenClaw's calendar versions.

node scripts/release-notes.mjs inventory \
  --repository morluto/rea --base rea-agents-PREVIOUS \
  --target FULL_BASE_BRANCH_SHA --version VERSION \
  --manifest /tmp/rea-VERSION.contributions.json
node scripts/release-notes.mjs record \
  --manifest /tmp/rea-VERSION.contributions.json \
  --summary \
  --output /tmp/rea-VERSION.record.md

Read the inventory, not just the existing bot draft. It includes side-branch commits, GitHub-associated PRs whose merge commits are in the range, commit authors/co-authors, and confirmed closing issues with their reporters. GitHub connections are paginated. Network errors stop generation; rerun into a new output file after recovery. Existing output files are never overwritten.

Unresolved commit identities are retained as names/emails with user: null; never guess a handle or thank the merger as a substitute. The report preserves unknowns. This is a reviewed metadata snapshot, not independent proof that a human authored a patch. For unattributed identities, unusual merge strategies, backports, reversions, or references that GitHub did not associate, inspect the source PRs and diffs and report the limitation. The current collector uses confirmed PR-closing relationships for issue-reporter credit; unrelated issue mentions are not automatically credited. Do not claim that merely inventoried work still ships after a revert.

Write for users and retain credit

Rewrite only the newest ## [VERSION] section in CHANGELOG.md, preserving its version/date/link heading. Use single-line Markdown list items under:

  • ### Highlights: a few release-defining user outcomes; no quota for small releases.
  • ### Changes: capabilities and meaningful behavior changes.
  • ### Fixes: reliability, correctness, compatibility, and safety fixes.
  • ### ⚠ BREAKING CHANGES: retain when applicable, with migrations and original PR/commit references required by the existing checkpoint validator.

Group related work by analyst workflow or user impact. Explain the resulting behavior in short, concrete entries. Highlights summarize the release; avoid repeating their full descriptions in Changes. Internal cleanup, tests, CI, and routine documentation generally belong only in the provenance file. Read ambiguous PRs/diffs before making claims. Distinguish simulated-provider checks from real-provider verification.

Credit each represented contribution once in the public notes with its link and Thanks @... for its verified human author, known co-authors, and confirmed closing-issue reporters. Grouping preserves all those credits in one line. When Highlights, detailed entries or migrations reference the same work, put its thanks in one of those entries, not all of them. Include issue links. Direct-commit bullets carry the commit link and known human credit. Exclude GitHub bots and known agent accounts. REA's observed Anthropic, Cursor and Codex co-author trailers resolve to @claude, @cursoragent and @codex with GitHub type User; the credit policy excludes them while retaining their metadata. At the REA maintainer's request, omit @morluto self-thanks while preserving authorship in the inventory. Other human contributors remain eligible. Use explicit GitHub links for cross-repository references to avoid ambiguous #NNN numbers. Unknown handles stay unknown; they are not fabricated credit.

Append the generated record --summary provenance link verbatim at the end of this release. The linked inventory accounts for every discovered in-range PR and direct contribution, including internal work omitted from the prose. Do not paste the full record output into public notes: it duplicates thanks and obscures the user-facing changes. Full records remain available for review. Do not hand-edit generated credits to make validation pass. Refresh the inventory when product history changes; a prose-only correction can reuse the snapshot.

Finalize with Release Please

Before changing the live release PR, have authorization for that PR update. Local preparation and validation can proceed independently.

  1. Add rea:release-notes-finalized to the selected open release PR before editing its branch/body. Main proposal pushes respect this label. This is our workflow guard, not Release Please's autorelease: snooze mechanism. A proposal already running must finish before editing. Do not dispatch manual preparation over finalized notes.

  2. On that release branch, save the reviewed inventory as docs/releases/VERSION.contributions.json. This is durable public release provenance, not a temporary planning file. Do not add credentials or local environment dumps. Keep the existing version artifacts aligned.

  3. Run the existing checkpoint validator and the new checker:

    node scripts/release-notes.mjs check \
      --manifest docs/releases/VERSION.contributions.json
    node scripts/release-notes.mjs render \
      --manifest docs/releases/VERSION.contributions.json \
      --output /tmp/rea-VERSION.notes.md
    

    The checker supports inline PR bodies, including their surrounding metadata, up to GitHub's 65,536-character limit. It fails on larger notes rather than truncating credit; Release Please's overflow-link bodies are not integrated.

  4. Update the release PR body with the rendered section while preserving its Release Please header/footer and component/version structure. Use a body file for gh pr edit --body-file; changing only CHANGELOG.md does not change Release Please's release body. Push only authorized changes.

  5. Freshly fetch the PR body to a file and run check --pr-body FILE. Review the complete diff and wait for current CI. Publication checks the body again before release creation. Avoid further body edits while publishing.

The finalization label freezes bot refreshes, not main. New product changes after the inventory target require refreshing the notes before publication. The workflow checks target ancestry and allows only release metadata paths after that target. It also requires the inventory target to equal the reviewed merge's first parent, so intervening main commits require a fresh inventory. Review diffs within the allowed release metadata paths too: the path guard does not prove that package dependency/script edits are version-only changes. To resume automatic proposals, remove the finalization label and let the bot regenerate; expect editorial changes to be replaced.

Existing releases without a contribution inventory retain their current publication path. Never retag or republish a package to correct release prose.


1. Contributor Attribution & Bot-Exclusion Policy Engine (TypeScript)

export interface RawContributionRecord {
  readonly prOrCommitUrl: string;
  readonly authorHandles: readonly string[];
  readonly issueReporterHandles: readonly string[];
  readonly revertedInRange: boolean;
}

const EXCLUDED_HANDLES = new Set([
  'claude',
  'cursoragent',
  'codex',
  'dependabot[bot]',
  'github-actions[bot]',
  'release-please[bot]',
  'morluto'
]);

export function formatVerifiedThanksClause(record: RawContributionRecord): string | null {
  if (record.revertedInRange) {
    return null;
  }
  const eligible = new Set<string>();
  for (const raw of [...record.authorHandles, ...record.issueReporterHandles]) {
    const clean = raw.replace(/^@/, '').trim();
    if (clean && !EXCLUDED_HANDLES.has(clean.toLowerCase())) {
      eligible.add(`@${clean}`);
    }
  }
  if (eligible.size === 0) {
    return null;
  }
  return `Thanks ${Array.from(eligible).join(', ')}`;
}

2. Release Please PR Body & Ancestry Guard Validator (TypeScript)

export interface ReleasePrValidationInput {
  readonly prBodyText: string;
  readonly labels: readonly string[];
  readonly inventoryTargetSha: string;
  readonly baseBranchHeadSha: string;
}

export interface ReleasePrValidationResult {
  readonly valid: boolean;
  readonly errors: readonly string[];
}

export function validateReleasePleaseFinalization(
  input: ReleasePrValidationInput
): ReleasePrValidationResult {
  const errors: string[] = [];
  const GITHUB_MAX_BODY_CHARS = 65536;

  if (!input.labels.includes('rea:release-notes-finalized')) {
    errors.push('Missing mandatory "rea:release-notes-finalized" workflow guard label on release PR.');
  }
  if (input.inventoryTargetSha !== input.baseBranchHeadSha) {
    errors.push(
      `Inventory target SHA (${input.inventoryTargetSha}) does not match base branch HEAD (${input.baseBranchHeadSha}). Refresh inventory before publishing.`
    );
  }
  if (input.prBodyText.length > GITHUB_MAX_BODY_CHARS) {
    errors.push(
      `Release PR body length (${input.prBodyText.length}) exceeds GitHub 65,536-character limit.`
    );
  }

  return {
    valid: errors.length === 0,
    errors
  };
}

Orchestration & Integration

English & Bahasa Indonesia: Release changelogs and GitHub release notes for REA. / Changelog rilis dan catatan rilis GitHub untuk REA.

  • reverse-engineer-anything — product whose releases are documented / produk yang rilisnya didokumentasikan.
  • prd-architect — continuous documentation sync after code changes / sinkronisasi dokumentasi kontinu pasca perubahan kode.
  • github-actions-expert — Release Please workflow integration / integrasi workflow Release Please.
  • brainstorming, deep-research-analyst — ideation routing and verification of pinned Git history / perutean ideasi dan verifikasi riwayat Git.

评价

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

评论

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

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

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

0 / 1000 字

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

同一仓库的技能

Expert guide for Agent-to-Agent (A2A) Protocol interoperability, /.well-known/agent.json Agent Cards, cross-vendor swarm task negotiation, and bridging A2A with Model Context Protocol (MCP) / Panduan ahli protokol interoperabilitas antar-agen (A2A), Agent Cards, dan integrasi A2A + MCP.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

Expert guide for automated and manual Web Accessibility (a11y) testing — axe-core, Pa11y, Playwright a11y, screen reader testing, and WCAG 2.2 Level AA/AAA compliance / Panduan ahli pengujian aksesibilitas web.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

Expert guide for intelligent model cascading and routing — complexity-scored task routing from Flash/Haiku to Sonnet/Opus/Astra, dynamic escalation with quality gates, 40-60% token cost reduction while maintaining output quality / Panduan ahli untuk kaskade dan routing model cerdas — routing tugas berbasis skor kompleksitas dari Flash/Haiku ke Sonnet/Opus/Astra, eskalasi dinamis dengan gerbang kualitas, pengurangan biaya token 40-60% dengan kualitas output terjaga.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

Expert guide for intelligent model cascading and routing — complexity-scored task routing from Fast (Composer 2.5, Grok 4.7/4.6) to Medium (Gemini 4 Argon, GPT-5.6 Sol, Claude Opus 5.5) and High (Claude Sonnet 5.5, Claude Fable 5.1, Muse Wonder) / Panduan ahli untuk kaskade dan routing model cerdas.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

Master guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan utama komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

Expert guide for Affective Computing, emotional AI, and real-time sentiment analysis through native multimodal tokens (voice intonation and facial micro-expressions) / Panduan ahli komputasi afektif, AI emosional, dan analisis sentimen real-time melalui token multimodal native.

中文简介正在准备中。当前显示原文说明。

roedyrustam/vibes-plug1132026年10月25日 更新

查看 roedyrustam 的全部技能

报告此技能的问题