Polish the automated CHANGELOG on develop before the next stable build.

BSD-3-ClauseAuto-check passedDevelopment

Install Changelog

skills CLI
$ npx skills add forcedotcom/salesforcedx-vscode --skill changelog -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install forcedotcom/salesforcedx-vscode changelog --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/forcedotcom/salesforcedx-vscode.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/changelog .claude/skills/changelog && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
changelog
GitHub stars
1k
Token cost
~3.3k tokens
SKILL.md length
1,495 words
Files
1
Skills in repo
37
Repo updated
First seen
Licence
BSD-3-Clause

At a glance

Polish the automated CHANGELOG on develop before the next stable build.

  • Works in 5 steps: Remove GUS work item references → Classify entries as customer-facing or… → Deduplicate multi-package entries → …
  • Preparing/reviewing the changelog after a weekly prerelease promotion
  • SKILL.md covers When to use, File location, Workflow and Rules, plus 3 more sections
  • Calls git and gh

What it does

Changelog is an agent skill from forcedotcom/salesforcedx-vscode. Polish the automated CHANGELOG on develop before the next stable build. Removes GUS refs, categorizes under-the-cover changes, improves customer-facing descriptions. Use when preparing/reviewing the changelog after a weekly prerelease promotion, or when user mentions changelog quality.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Visual Studio Code. The repository describes itself as: Salesforce Extensions for VS Code. The licence is BSD-3-Clause.

When your agent uses it

  • Preparing/reviewing the changelog after a weekly prerelease promotion
  • User mentions changelog quality

Example prompts

  • “/changelog”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Remove GUS work item references
  2. Classify entries as customer-facing or under-the-cover
  3. Deduplicate multi-package entries
  4. Improve customer-facing descriptions
  5. Verify categories

What it can do on your machine

Read from SKILL.md and the folder at commit 27807f6. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Changelog loads about 3.3k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 1,495 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from forcedotcom/salesforcedx-vscode at commit 27807f6, republished under its BSD-3-Clause licence (© forcedotcom). 1,495 words, ~3,332 tokens.

Download SKILL.mdSave it as .claude/skills/changelog/SKILL.md (or your agent's skills folder).
name
changelog
description
Polish the automated CHANGELOG on develop before the next stable build. Removes GUS refs, categorizes under-the-cover changes, improves customer-facing descriptions. Use when preparing/reviewing the changelog after a weekly prerelease promotion, or when user mentions changelog quality.
review
never

Changelog Polish

Improve the automated changelog delta committed to develop by promote-to-prerelease.yml.

Scope: the all-extensions release changelog at packages/salesforcedx-vscode/CHANGELOG.md. Root CHANGELOG.md contains full historical changelog (automatically prepended by scripts/prepend-release-changelog.js, run as part of the same promote job) — do not edit manually. Per-package CHANGELOG.md files (e.g. packages/salesforcedx-vscode-i18n/CHANGELOG.md) are scoped to their own package and out of scope here.

When to use

  • User invokes /changelog or asks to prepare/review the changelog
  • On develop, after a chore: changelog for prerelease vX.Y.Z commit lands
  • Timing matters: polish it before build-github-release.yml's next scheduled run (Wednesdays, 7 AM UTC). That job reads develop's current packages/salesforcedx-vscode/CHANGELOG.md, relabels the header to the stable version, and bakes it into the stable VSIX. Once that's run, the content is frozen inside the built artifact — fixing it afterward means manually re-injecting into the release's VSIX asset, not editing this file.

File location

packages/salesforcedx-vscode/CHANGELOG.md on develop

Workflow

  1. Checkout/pull develop and read the current changelog file
  2. Identify the automated commit: git log --oneline -- packages/salesforcedx-vscode/CHANGELOG.md | grep "changelog for prerelease"
  3. For each entry, fetch PR context: gh pr view <number> --json title,body,commits,labels. In the body, look for a "What issues does this PR fix or reference?" section and extract any issue or discussion numbers linked there.
  4. Apply the rules below to produce a polished draft
  5. Present the revised changelog to the user for approval before writing

Rules

1. Remove GUS work item references

Strip any W-NNNNNNN or - W-NNNNNNN text from entries. These are internal tracking IDs not meaningful to customers.

Before: - Add a Max Rows input to SOQL Builder UI - W-22199672 ([PR #7261](... After: - We added a **Max Rows** input to SOQL Builder UI so you can limit the number of rows retrieved. ([PR #7261](...

2. Classify entries as customer-facing or under-the-cover

Under-the-cover (not visible to users):

  • Test infrastructure (E2E suites, unit tests, test utilities)
  • Internal telemetry/observability (span attributes, logging)
  • Refactoring with no behavior change
  • CI/CD pipeline changes
  • Dependency bumps with no user-visible effect
  • Internal API changes between packages

Customer-facing (visible to users):

  • New commands, UI elements, or features
  • Bug fixes that affected user workflows
  • Performance improvements users would notice
  • Behavior changes in existing features

Use PR commits, title, body, and labels to decide. When uncertain, check the diff: gh pr diff <number> --name-only to see which files changed.

Under-the-cover entries go under a dedicated ## Under the Hood section (no package sub-headers needed). Consolidate all under-the-cover PRs into one or a few lines: - We made some under the hood changes. ([PR #NNNN](...), [PR #MMMM](...)).

3. Deduplicate multi-package entries

The automation lists the same PR under every package it touched. Consolidate to the most relevant user-facing package. If a change touched salesforcedx-vscode-services plus a feature extension, list it under the feature extension only.

4. Improve customer-facing descriptions
  • Write from the user's perspective: "We added...", "We fixed...", "You can now..."
  • Describe what the user can do or what changed for them, not the implementation
  • Start with We added…, We fixed a bug where…, We improved…, We reverted…, or The <X> now…. Full sentences ending in .
  • Bold user-facing names: extensions (Salesforce Metadata Visualizer), commands (SFDX: Create Project), UI elements (Run button, Org Differences view, Ready for Review)
  • Backticks for code identifiers, file names, config keys: jsconfig.json, sourceApiVersion, MetadataRegistryService, .soql
  • Keep entries to 1-2 sentences max
  • For opaque/internal fixes where customer impact is unclear: We made some changes under the hood.
  • For reverts: We reverted <X> because <reason>.
  • For setting/option additions: name the setting in bold, describe default behavior
  • For extension-pack additions: include extension id in parens, e.g. **Salesforce Live Preview** (salesforce.salesforcedx-vscode-ui-preview)
  • Prefer VS Code over VSCode; on Windows not in Windows
  • After the PR link(s), append issue and discussion links found in the "What issues does this PR fix or reference?" section of the PR body:
    • Issues: [ISSUE #NNNN](https://github.com/forcedotcom/salesforcedx-vscode/issues/NNNN)
    • Discussions: [DISCUSSION #NNNN](https://github.com/forcedotcom/salesforcedx-vscode/discussions/NNNN)
    • Format: ([PR #7517](...), [ISSUE #4065](...))
    • Only include issues/discussions explicitly listed in that section; do not infer from commit messages or other body text
5. Verify categories
  • ## Added — new features, new commands, new UI
  • ## Fixed — bug fixes
  • ## Changed — behavior changes to existing features (add section if needed)
  • ## Under the Hood — internal changes not visible to users (CI, telemetry, refactoring, dep bumps). No package sub-headers needed.
  • Remove empty package sections (header with no entries)

Example transformation

Automated:

markdown
## Added

#### salesforcedx-vscode-metadata

- Filter packageDirs to those containing target folder - W-22049669 ([PR #7225](...))

#### salesforcedx-vscode-services

- Filter packageDirs to those containing target folder - W-22049669 ([PR #7225](...))

- Replace static activationEvents with programmatic activation W-21956120 ([PR #7154](...))

Polished:

markdown
## Added

#### salesforcedx-vscode-metadata

- When creating an Apex class or LWC component, the output directory picker now lists only package directories that contain the relevant folder. ([PR #7225](...))

## Under the Hood

- We made some under the hood changes. ([PR #7154](...))

Commit and push

After user approves the polished changelog:

  1. Make sure you're on develop and up to date: git checkout develop && git pull
  2. Stage only the changelog file: git add packages/salesforcedx-vscode/CHANGELOG.md
  3. Verify no other files are staged: git diff --cached --name-only must show only packages/salesforcedx-vscode/CHANGELOG.md. If other files appear, unstage them before committing.
  4. Commit: git commit -m "chore: polish changelog [skip ci]"
  5. Push: git push origin develop

Never include other file changes in this commit.

Use these chore: subjects for polish commits on develop:

  • chore: polish changelog
  • chore: write into sentences
  • chore: changelog improvements
  • chore: update changelog
  • chore: missing changelog entry
  • chore: clean up duplicate entries
  • chore: merge vX.Y.A and vX.Y.B changelogs (when prior patch's entries need to roll into current)

Reference: changelog lifecycle

promote-to-prerelease.yml runs 3-stage pipeline to generate & polish changelog before commit to develop. Background context; typically not interacted with during manual polish.

Show full SKILL.md (640 more words)Show less
Compute → Polish (AI) → Commit → Review (human)
  1. compute-changelog-range (promote-to-prerelease.yml): Outputs fromRef = newest marketplace-prerelease-* tag (set by last week's promote run) or latest stable v* tag (correct fallback before any tracking tag exists). Empty fromRef (identical to this week's nightly commit — a manual re-run or hotfix) skips changelog-body instead of feeding it an identical range.
  2. changelog-body (reusable workflow .github/workflows/changelog-body.yml): Calls Cursor-backed AI (guided by .cursor/skills/changelog-judgment/SKILL.md) to produce polished, customer-facing markdown body from commits in range (fromRef, toRef]. Already removes GUS refs, rewrites sentences ("We added/fixed/improved..."), dedupes multi-package PRs, consolidates Under-the-Hood. Returns body output.
  3. write-changelog (promote-to-prerelease.yml): Writes header # <version> - <date> + body to packages/salesforcedx-vscode/CHANGELOG.md. Immediately runs scripts/prepend-release-changelog.js to copy same content to root CHANGELOG.md. Both labeled with prerelease version (e.g. 67.17.9). Committed directly to develop.
  4. Polish (optional) (develop, this skill): Human review/touch-up before next build-github-release.yml run. Model-generated body is typically ready, but catch edge cases/errors using Rules 1–5 as checklist. Note: because prepend already ran in step 3, root CHANGELOG.md's copy of this version's section is not automatically re-synced by a polish edit.
  5. Relabel to stable (build-github-release.yml, next Wednesday 7 AM UTC): Pulls develop's current packages/salesforcedx-vscode/CHANGELOG.md (picking up any polish from step 4), relabels header from prerelease → stable version, bakes into stable VSIX.
  6. Relabel history (publishVSCode.yml, on final stable publish): Relabels same header in both changelogs from prerelease → stable, so history matches what shipped.

prepend-release-changelog.js validates structure (version format, file existence, non-empty), runs idempotent (skips if already in root), reports errors (ENOSPC, EACCES, missing files).

Commit details
  • Commit: chore: changelog for prerelease vXX.YY.ZZ [skip ci]
  • Range: previous week's promoted prerelease to nightly SHA (disjoint by construction — changelog-body doesn't read the existing file, so there's nothing to dedupe against)
  • Skipped if changelog-body returns an empty body (no feat/fix/perf commits in range)
Format
# XX.YY.ZZ - Month DD, YYYY

## Added

#### <package-name>

- <message> ([PR #<num>](https://github.com/forcedotcom/salesforcedx-vscode/pull/<num>))

## Fixed

#### <package-name>

- <message> ([PR #<num>](...))

## Under the Hood

- We made some under the hood changes. ([PR #<num>](...), [PR #<num>](...))
  • Top header: # <version> - <release date>; date is +7 days from this Wednesday's prerelease (next Wednesday's stable release), written by the write-changelog job, not changelog-body
  • Sections, in order: Added, Fixed, Changed, Under the Hood. Section is an AI judgment call per .cursor/skills/changelog-judgment/SKILL.md (Added = new capability, Fixed = bugfix, Changed = behavior change, Under the Hood = invisible to users), not a fixed commit-type mapping — see scripts/changelogBody/changelogBody.mts
  • Kept commit types: feat, fix, perf (everything else, e.g. chore/refactor/test/ci, is dropped before the AI step ever sees it)
  • Under the Hood entries are consolidated into one bullet with all their PR links, no package sub-header
  • Package sections: #### <package-name>, alphabetical within a type
  • Bullet entries: - <message> ([PR #N](url)); PR url format https://github.com/forcedotcom/salesforcedx-vscode/pull/<num>
  • Multiple PRs for one entry: comma-separate ([PR #A](...), [PR #B](...), [ISSUE #C](...), [DISCUSSION #D](...))
  • Include [ISSUE #N](https://github.com/forcedotcom/salesforcedx-vscode/issues/N) or [DISCUSSION #N](https://github.com/forcedotcom/salesforcedx-vscode/discussions/N) when listed in the PR's "What issues does this PR fix or reference?" section
Package filtering (auto)
  • If salesforcedx-vscode-core is touched, all other touched packages (except docs) are dropped for that commit
  • If salesforcedx-vscode-services is touched alongside exactly one other (non-docs) package, salesforcedx-vscode-services is dropped and the other package keeps the entry
  • Only packages starting with salesforce or docs count; path segments named images or test are ignored when detecting touched packages
  • A commit whose surviving paths touch no qualifying package has an empty package set and goes to Under the Hood
Commit parsing (auto)
  • Requires conventional type(scope): message + trailing (#PR) to appear in the commit subject
  • Strips [W-XXXXXXXX] GUS refs from the subject before it reaches the AI step
  • No dedupe against the existing changelog file — the range is disjoint by construction (see Commit details above)
Dedupe / merge rules (post-generation)
  • Same PR listed under multiple packages: keep under the most user-relevant package, delete others (see Rule 3 above)
  • Same PR listed twice in a section: collapse to one bullet
  • Empty #### <package> subsections: leave in place if auto-generated (keeps structure obvious), or remove during polish — match surrounding style
  • Patch release rolling into next: if v66.Y.A shipped but entries were missing, merge into v66.Y.B section and update the header date; see chore: merge ... changelogs

© forcedotcom, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/changelog of forcedotcom/salesforcedx-vscode.

Open the folder on GitHubat commit 27807f6

Compare with similar skills

Changelog next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Changelog compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Changelog this skillforcedotcom/salesforcedx-vscode1k—~3.3kAutomated safety check: PassBSD-3-Clause
Release Roslynatordotnet/roslynator3.5k—~1kAutomated safety check: PassCustom licence
Releasesignageos/vscode-sops122—~2.2kAutomated safety check: NotesMIT
Releasequerylenshq/ef-querylens225—~887Automated safety check: PassMIT
Changelog Entrycertinia/debug-log-analyzer114—~1.9kAutomated safety check: PassCustom licence
Releaseryu1kn/vscode-partial-diff222—~830Automated safety check: PassMIT

Similar skills

  • Release Roslynator

    dotnet/roslynator

    Official

    A skill your agent uses when shipping a roslynator release, rolling CHANGELOG.md [Unreleased], updating the VS Code extension changelog, creating a GitHub v release, or optionally tagging cli-v.

    3.5k GitHub stars~1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Release

    signageos/vscode-sops

    Releases the vscode-sops extension end-to-end: determines the next version from the bump history, updates CHANGELOG.md and package.json/package-lock.json, builds via vscode:prepublish, publishes to…

    122 GitHub stars~2.2k tokensUpdated 6 mo ago
    DevelopmentAuto-check: notes
  • Release

    querylenshq/ef-querylens

    A skill your agent uses when: creating a release, publishing a version, cutting a release, tagging a release, releasing plugin, release workflow, prepare release, create git tag, create GitHub…

    225 GitHub stars~887 tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Changelog Entry

    certinia/debug-log-analyzer

    Write, review or trim CHANGELOG.md entries. An agent skill from certinia/debug-log-analyzer.

    114 GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed
  • Release

    ryu1kn/vscode-partial-diff

    Cut a new release of the Partial Diff VS Code extension - guides through version bump, changelog, validation, and publish

    222 GitHub stars~830 tokensUpdated 25 days ago
    DevelopmentAuto-check passed
  • Release

    devlint/GitWand

    Guide a clean GitWand release end-to-end: bump version, update CHANGELOG, commit, tag, and push.

    180 GitHub stars~1.8k tokensUpdated today
    DevelopmentAuto-check passed

More from forcedotcom/salesforcedx-vscode

All 37 skills in this repo
  • Command UI

    forcedotcom/salesforcedx-vscode

    Command palette, CodeLens, context menus, package.nls titles, and NotificationModeService.

    1k GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Services Extension Consumption

    forcedotcom/salesforcedx-vscode

    Consume the salesforcedx-vscode-services extension API. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~5k tokensUpdated today
    Auto-check passed
  • Core Extension API

    forcedotcom/salesforcedx-vscode

    Public API exported by salesforcedx-vscode-core activate(). An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~842 tokensUpdated today
    Auto-check passed
  • Drivable Vscode

    forcedotcom/salesforcedx-vscode

    Operate a real VS Code instance through drivable-vscode. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Effect Best Practices

    forcedotcom/salesforcedx-vscode

    Enforces Effect-TS patterns for services, errors, layers, atoms, and Effect.pipe composition.

    1k GitHub stars~6.2k tokensUpdated today
    Auto-check passed
  • External Consumers

    forcedotcom/salesforcedx-vscode

    Known external consumers of APIs from this monorepo's extensions.

    1k GitHub stars~1.8k tokensUpdated today
    Auto-check passed

Categories

Questions about Changelog

What does Changelog do?

Polish the automated CHANGELOG on develop before the next stable build. Changelog is an agent skill from forcedotcom/salesforcedx-vscode. Polish the automated CHANGELOG on develop before the next stable build.

When should I use Changelog?

Changelog fits situations like: preparing/reviewing the changelog after a weekly prerelease promotion; user mentions changelog quality.

How do I install Changelog in Claude Code?

Run `npx skills add forcedotcom/salesforcedx-vscode --skill changelog -a claude-code`. Or copy the skill folder (.claude/skills/changelog in forcedotcom/salesforcedx-vscode) into .claude/skills/changelog in your project. Claude Code loads it when a task matches its description.

How do I install Changelog in Codex?

Run `npx skills add forcedotcom/salesforcedx-vscode --skill changelog -a codex`. Or copy the skill folder (.claude/skills/changelog in forcedotcom/salesforcedx-vscode) into .agents/skills/changelog in your project. Codex loads it when a task matches its description.

Can I use Changelog in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/salesforcedx-vscode --skill changelog -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/changelog, .gemini/skills/changelog, .github/skills/changelog and .opencode/skills/changelog in your project.

What does Changelog need to run?

Going by SKILL.md and its folder, Changelog needs the command-line tools its instructions call (git and gh).

Does Changelog access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Changelog safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Changelog use?

Changelog is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Changelog use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Changelog?

Skills that share tags, products or a category with Changelog: Release Roslynator (dotnet/roslynator, 3.5k stars), Release (signageos/vscode-sops, 122 stars), Release (querylenshq/ef-querylens, 225 stars) and Changelog Entry (certinia/debug-log-analyzer, 114 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Changelog?

forcedotcom (a GitHub organization) maintains it in forcedotcom/salesforcedx-vscode, which has 1,035 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 8, 2026.

Source: forcedotcom/salesforcedx-vscode on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.