用途:为当前分支编写 changelog/YYYYMMDD-HHMMSS-<slug>.md 条目。从 git 与 diff 推导元数据,写入 frontmatter 和按 ## Added / ## Changed / ## Fixed 分组的正文,运行确定性富化脚本并校验。它是“有效变更日志条目”的唯一事实来源,同一契约由下游 CI 与合并后富化器执行。
主要能力:按 branch: 幂等判定更新或新建(一分支一条目,重跑更新同一文件);分析 origin/<base>..HEAD 的提交与文件差异;推导 issues、author、co_authors、category、breaking、release_note;仅当 affectedPackages 开启时由脚本写入 affected_packages;把正文中的裸 issue ID 改写为 Linear URL;按契约校验 frontmatter、文件名、字段类型、ISO 时间戳、Breaking 段与 issue ID。
使用方式:独立调用 /changelog 执行 Step 1–6,条目留在工作区不提交;也可嵌入 ship 流程在 push 前运行,由 ship 流程提交、推送并开 PR。配置在 config.json(issueKeys 与 linearWorkspaceSlug 必填,baseBranch 默认 main,可经 BASE_REF 覆盖)。脚本仅用 Node 内置模块,从仓库根运行: node skills/changelog/scripts/set-affected-packages.mjs node skills/changelog/scripts/add-links.mjs node skills/changelog/scripts/validate-changelog.mjs 可选 pnpm 专用:node skills/changelog/scripts/preflight-changelog-ci.mjs。两富化脚本支持 --check(别名 --dry-run),只读预览,需改写时退出 1,可作 CI 门禁。
限制:本技能只负责编写与校验,created_at 创建时设定后不可改;stats 与 merged_at / commit / pr 等合并后字段不在此编写,留空占位,由合并后的 changelog-core(经 reusable-changelog-enrich.yml)填写。pr 不由 ship 流程写入。正文语言按消费仓库文档约定。脚本单元测试在 agent-skills 仓库,不随技能打包。