Skip to content

Add frontmatter to the update-changelog skill and trim it down - #292

Merged
medley56 merged 4 commits into
lasp:mainfrom
burakeyler:281-update-changelog-skill-frontmatter
Sep 16, 2026
Merged

medley56 merged 4 commits into
lasp:mainfrom
burakeyler:281-update-changelog-skill-frontmatter

Conversation

@burakeyler

Copy link
Copy Markdown
Contributor

Closes #281

What

  • Frontmatter. .claude/skills/update-changelog/SKILL.md now starts with name: update-changelog and a description that states both what it does and when to use it (update / fill in / catch up the changelog, or while preparing a release), so Claude Code can discover it.
  • Trimmed ~110 → 64 lines. Kept the repo-specific parts listed in the issue: the three version files and that they must agree, the Scenario A/B branch and the question that decides it, the footer diff-link bookkeeping, the entry format with the issue link, and skipping Dependabot/CI-only changes. Dropped the Keep a Changelog glosses, the snippets for trivial edits, and the Step 5 checklist.
  • Step 1 trap fixed. Documents that git log <LATEST_TAG>..HEAD includes already-shipped commits because tags live on release/X.Y, and uses git merge-base --is-ancestor <sha> <tag> as the check, matching the wording in the cut-a-release skill from Add a cut-a-release skill #278. Also notes that [Unreleased] may be incomplete.

The process itself is unchanged — this is a length/discoverability edit, not a redesign.

Other skills

update-changelog is the only skill on main today; cut-a-release (#278) already has frontmatter.

Verification

  • Parsed the frontmatter with PyYAML: valid, keys name and description.
  • I haven't been able to confirm in your environment that the skill fires on "update the changelog"; a quick check by a maintainer with Claude Code after merge would close the last acceptance item.

🤖 Generated with Claude Code

@medley56 medley56 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this — the frontmatter is right (valid YAML, name matches the directory, and the trigger phrasings cover the realistic asks), and I checked the central claim rather than taking it on trust. I walked all 34 instructions, paths, commands and edge cases in the old file against the new one: the trim is faithful. Every item is preserved, reworded without changing behavior, or dropped deliberately, including all five Step 5 checklist constraints, which are each restated elsewhere in the new file. "The process itself is unchanged" holds for the trim, which is most of the diff.

It does not cover Step 1, which is new text rather than shortened text, and that is where the two warnings are. The merge-base --is-ancestor check cannot ever report "already released" for a commit taken from the range it is meant to filter — the two commands are complements by construction — and the topology it rests on is false for the four most recent tags. Neither is your invention; the wording comes from #281 and from cut-a-release in #278, and I will fix #278 on my side. But this PR is what lands it on main, so I would like it corrected here.

I'll handle the updates on my side.

2 warnings, 3 suggestions, 2 nitpicks. No critical findings.

🤖 AI-assisted comment, reviewed and approved by @medley56 before posting.

Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
Comment thread .claude/skills/update-changelog/SKILL.md Outdated
burakeyler and others added 2 commits September 16, 2026 19:03
The skill had no YAML frontmatter, so Claude Code could not discover it.
Add `name` and a `description` carrying the trigger conditions, and cut the
file from ~110 to ~65 lines by dropping what an agent already knows (category
glosses, markdown snippets for trivial edits, the Step 5 checklist).

Also fix Step 1: `git log <tag>..HEAD` lists already-released commits because
tags live on release/X.Y branches; document the
`git merge-base --is-ancestor` check instead.

Closes lasp#281

Co-Authored-By: Claude Opus 5 <[email protected]>
The `git log <tag>..HEAD` range and the `git merge-base --is-ancestor
<sha> <tag>` check are complements by construction, so the check could
never report "already released" for a commit taken from the range it was
meant to filter. It also ran in a separate shell, where `$LATEST_TAG` was
unset, and failed open on the resulting error. The topology it rested on
is false for the four most recent tags, which are ancestors of `main`.

Replace both with one `git log --oneline --cherry-mark --left-right
"$LATEST_TAG"...HEAD`, which marks cherry-picked duplicates `=` and
release-branch-only commits `<` while keeping merge commits, and filter
prereleases out of `LATEST_TAG` because `--sort=-version:refname` ranks
6.0.0rc4 above 6.0.0.

Also state that the skill runs on an up-to-date `main`, name
`AskUserQuestion` at the Scenario A/B decision, define `NEW_VERSION`,
give the replace/insert verbs for the footer links so a second
`[unreleased]` definition cannot shadow the first, note that `meta.yaml`
nests `version:` under `package:`, and drop "or while preparing a
release" from the description so it does not collide with `cut-a-release`.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
@medley56
medley56 force-pushed the 281-update-changelog-skill-frontmatter branch from 8455216 to 997e82c Compare September 16, 2026 20:25

Copy link
Copy Markdown
Member

@burakeyler — I've taken this over rather than sending seven suggestions back to you. All of them are applied in 997e82c, and the branch is rebased onto fa65e8c.

To be clear about what was wrong: the Step 1 mechanism came from #281 and from cut-a-release in #278, not from you. I'm correcting #278 separately. The frontmatter — which is what #281 actually asked for — was right as submitted and is unchanged apart from dropping the release phrasing.

Your open acceptance item is closed. With this file in place, Claude Code lists the skill as update-changelog with your description, so discovery works.

🤖 AI-assisted comment, reviewed and approved by @medley56 before posting.

medley56 and others added 2 commits September 16, 2026 21:57
- Make adding a single entry to [Unreleased] the default path, with
  the history scan and the versioned-section conversion as
  conditional branches off it
- Scope the "run on an up-to-date main" guard to the history scan.
  It previously applied to the whole skill, so an agent on a feature
  branch or a release/X.Y branch was told to stop rather than add an
  entry, blocking both documented workflows
- Broaden the description to cover all three cases while keeping it
  clear of the cut/prepare/publish triggers cut-a-release owns
- Cut the git log marker exposition to the two repo-specific facts:
  skip commits marked =, keep merge commits for their PR numbers

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
- Lead with writing a single entry, the normal case right after
  implementing a change; it works on any branch
- Frame the history scan as finding missed entries, covering both the
  release-time check and the rare catch-up, and note that finding
  nothing before a release is the expected result
- Keep the version bump and section conversion last, reached only once
  a release version is in the metadata files

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
@codecov

codecov Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.62%. Comparing base (fa65e8c) to head (8c18278).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #292   +/-   ##
=======================================
  Coverage   94.62%   94.62%           
=======================================
  Files          49       49           
  Lines        4203     4203           
=======================================
  Hits         3977     3977           
  Misses        226      226           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@medley56
medley56 merged commit b34c854 into lasp:main Sep 16, 2026
21 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add frontmatter to the update-changelog skill and trim it down

2 participants