agentleFS
a2ui-projecta2ui-project/a2ui/.agents/skills/update-changelog/SKILL.md

update-changelog

Skill17k starsChanged 6 days agoApache-2.0View on GitHub

Instructions and best practices for updating CHANGELOG.md files across A2UI packages. Use when adding or modifying a CHANGELOG.md file, when a PR adds, modifies, deprecates, or removes public exports or consumer-observable behavior in a published package, or when resolving merge conflicts in a CHANGELOG.md file.

37 other projects use a version of this; 1 new project in the last 4 weeks, against 0 the 4 before.

Adopted by

Surging: 1 new project took it in the last 4 weeks, none the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 0 new projectsWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 1 new projectWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 1 in all, so this is a hint, not a trend.

Most recently taken up by

Who's talking about a2ui-project/a2ui

The biggest 5 of 55 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 55

Talked about on GitHub and YouTube (55 times).

On GitHub · 50

45 more on GitHub

On YouTube · 5

Used with

Projects with it also use clack-cli-patterns, drag-to-reorder and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • openchamberSkill

    clack-cli-patterns

    Use when creating or modifying OpenChamber CLI commands, prompts, terminal output, non-TTY behavior, `--quiet`, or `--json` behavior.

    Also in 3 projects that use this

  • openchamberSkill

    drag-to-reorder

    Use when implementing or modifying OpenChamber sortable or drag-to-reorder behavior, especially `@dnd-kit`, touch/mobile interactions, variable-width items, or wrapping layouts.

    Also in 3 projects that use this

  • mitsuhikoSkill

    oebb-scotty

    Austrian rail travel planner (ÖBB Scotty). Use when planning train journeys in Austria, checking departures/arrivals at stations, or looking for service disruptions. Covers ÖBB trains, S-Bahn, regional trains, and connections to neighboring countries.

    Also in 3 projects that use this

  • mitsuhikoSkill

    pi-share

    Load and parse session transcripts from shittycodingagent.ai/buildwithpi.ai/buildwithpi.com/pi.dev (pi-share) URLs. Fetches gists, decodes embedded session data, and extracts conversation history.

    Also in 3 projects that use this

  • +8 more from openchamber

The file

We split this skill into the rules it gives an agent

8 rules. 0 are common, 3 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 35 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Before editing a CHANGELOG.md file, check which language directory the modified package belongs to:

    line 16
  2. Very specific:

    Follow the core rules below for ## Unreleased entries during feature or bugfix PRs.

    line 21
  3. Distinctive:

    Follow all core rules, formatting conventions, and workflows in this document.

    line 23
  4. Very specific:

    Place every new changelog entry under the top-level ## Unreleased heading at the top of the modified package's CHANGELOG.md file.

    line 38
  5. Very specific:

    If the ## Unreleased heading does not exist, create it at the top of the file before the latest released version.

    line 39
  6. Very specific:

    Never create or bump a version header (e.g.

    line 40
  7. Distinctive:

    Keep each entry to one or two sentences stating _what_ changed and _how_ callers should update their code.

    line 66
  8. Distinctive:

    If a breaking change is introduced, provide a brief migration note.

    line 68

“Common” is measured: kept by at least 6 in 10 of the 35 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Updating Changelogs (CHANGELOG.md)

Progressive Discoverability: Language-Specific Routing

Before editing a CHANGELOG.md file, check which language directory the modified package belongs to:

  • Dart / Flutter packages (dart/*/CHANGELOG.md):
    • Load and follow dart/versioning-and-releases.md, which defines Dart-specific Breaking: annotations, ## Unreleased consolidation rules, and pubspec.yaml versioning conventions.
  • Python packages (python/*/CHANGELOG.md):
    • Follow the core rules below for ## Unreleased entries during feature or bugfix PRs. When cutting a Python package release, load a2ui-release-python.
  • TypeScript / Web packages (typescript/*/*/CHANGELOG.md):
    • Follow all core rules, formatting conventions, and workflows in this document.

Core Rules

  1. Preserve Unrelated Entries and All Version Headers:

    [!CAUTION] Preserve Unrelated Entries: NEVER delete, overwrite, or clear unrelated items under ## Unreleased or any items under past release sections. Other merged branches, concurrent PRs, or foundational commits have their own entries under ## Unreleased. However, read the entire ## Unreleased section before adding your entry: if your PR supersedes, renames, or modifies a change introduced earlier in the same ## Unreleased cycle, update or merge that unreleased entry so ## Unreleased describes the net changes since the last published release rather than a chronological log of contradicting pull requests. When merging, keep every PR link the merged entries carried (for example [#123](...), [#456](...)) so each change stays traceable to its pull request.

    [!CAUTION] Preserve All Version Headers: NEVER delete a ## <version> heading (for example ## 0.10.6). Removing one moves every entry beneath it into the section above, so released changes reappear as unreleased and that version's history is lost. This most often happens while resolving a merge conflict at the top of the file, or when inserting an entry overwrites the lines that follow ## Unreleased. After any conflict resolution, re-read the top of the file and confirm the version headers are still present and in descending order.

  2. Always Target the ## Unreleased Section:
    • Place every new changelog entry under the top-level ## Unreleased heading at the top of the modified package's CHANGELOG.md file.
    • If the ## Unreleased heading does not exist, create it at the top of the file before the latest released version.
    • Never create or bump a version header (e.g. ## 0.10.6) during feature or bugfix development unless explicitly executing a release workflow.
  3. Focus Exclusively on Public API Surface Changes:
    • DO Document:
      • New or modified public exports, classes, functions, components, directives, traits, or services.
      • Additions, removals, or changes to component schemas, properties, inputs, outputs, or events.
      • Bug fixes that alter consumer-facing behavior, rendering output, or public type definitions.
      • Dependency changes affecting consumers (e.g. optional peer dependencies).
      • Breaking changes (marked prominently with **BREAKING CHANGE**:).
    • DO NOT Document:
      • Internal implementation details, classes, algorithms, data structures, or mechanics (e.g. private helper functions, internal variable renames, internal state/undo-log mechanics, micro-optimizations, or narrations of how the previous implementation worked).
      • Changes strictly confined to unit tests, integration tests, conformance suite filenames, benchmark numbers, mock data, sample/explorer applications, or internal scripts.
      • Pure refactorings that preserve identical public API behavior and types.
  4. Clearly Annotate and Group BREAKING CHANGE Entries First:

    [!IMPORTANT] Mandatory **BREAKING CHANGE**: Annotation and Ordering: Place all **BREAKING CHANGE**: entries at the top of the ## Unreleased section, with non-breaking additions and fixes below them. Annotate entries with **BREAKING CHANGE**: whenever there is:

    1. Public API Surface Change: Any removal, rename, or incompatible signature/type change in the public API surface of the library or package (e.g., exported functions, classes, interfaces, component schemas, properties, signatures, or public types).
    2. Meaningful Behavioral Change: Any meaningful change in behavior that is not purely an internal refactor (e.g., changes to default property values, alterations to DOM tree structure or class names, changes to CSS custom properties or styling inheritance contracts that consumers depend on, modifications to validation rules, or changes to event dispatch semantics).

    Provide a concise explanation of what changed, why, and a recommended migration note so consumers can upgrade cleanly.

  5. Be Concise and Complete:
    • Keep each entry to one or two sentences stating what changed and how callers should update their code. Do not narrate why the previous implementation worked the way it did.
    • Prefix version-specific changes with the target protocol version (e.g. (v0_9) or (v0_8)) when working within multi-version renderers or packages.
    • If a breaking change is introduced, provide a brief migration note.
  6. Always End Entries with a Link to the PR:
    • Conclude each entry with a clickable link to its associated GitHub Pull Request: [#<pr-number>](https://github.com/a2ui-project/a2ui/pull/<pr-number>)

Format & Examples (TypeScript / Web & Python)

Single Feature or Bug Fix

## Unreleased

- (v0_9) Add universal markdown fallback in `Text` component when optional `@a2ui/markdown-it` is available. [#2272](https://github.com/a2ui-project/a2ui/pull/2272)
- (v0_9) Fix null de-referencing TypeError in `ComponentBinder` when `children` property is null or undefined. [#1472](https://github.com/a2ui-project/a2ui/pull/1472)

Multi-Item Feature Group

## Unreleased

- (v0_9) Support universal Web Components in the v0.9 renderer:
  - Add `UniversalBasicCatalog`, `NativeBasicCatalog`, and `BasicCatalogBase` supporting both universal Web Components from `@a2ui/web_core` and native Angular `@Component` implementations.
  - Add `toWebComponent` adapter to convert custom Angular `@Component` implementations into W3C Custom Elements.
  - Add standalone `provideA2Ui` configuration helper and `A2UI_USE_UNIVERSAL_COMPONENTS` injection token for Angular applications. [#2273](https://github.com/a2ui-project/a2ui/pull/2273)

Breaking Changes (Public API Surface & Meaningful Behavioral Changes)

## Unreleased

- **BREAKING CHANGE**: `BoundProperty.raw` is now `unknown` instead of `any`. Recommended migration: replace `raw` access with typed sibling fields where available (e.g. use `template` instead of `raw.componentId`/`raw.path`). [#1312](https://github.com/a2ui-project/a2ui/pull/1312)
- **BREAKING CHANGE**: (v0_9) `Image` component now defaults `fit` to `"cover"` (previously `"fill"`) to match responsive catalog container layouts. Recommended migration: explicitly set `fit: "fill"` if previous stretching behavior is required. [#2205](https://github.com/a2ui-project/a2ui/pull/2205)

Step-by-Step Workflow

  1. Identify Affected Packages: Find the CHANGELOG.md in the root of each published package modified in the PR (e.g. typescript/core/web_core/CHANGELOG.md, typescript/renderers/angular/CHANGELOG.md, typescript/renderers/lit/CHANGELOG.md, typescript/renderers/react/CHANGELOG.md, dart/a2ui_core/CHANGELOG.md). If modifying a Dart package under dart/, follow dart/versioning-and-releases.md.
  2. Retrieve Current PR Number:

    gh pr view --json number --jq '.number'
  3. Check for Public API Surface or Meaningful Behavioral Changes: Review git diff on exported symbols, types, components, schemas, defaults, and rendering behaviors:

    git diff main --stat

    Determine whether the diff introduces a public API change or a meaningful change in behavior that requires a **BREAKING CHANGE**: annotation (or Breaking: for Dart packages). For TypeScript packages, see Inspecting TypeScript Public API (AST Approach).

  4. Add or Update the ## Unreleased Entry: Draft concise, complete descriptions following the core rules above, placing **BREAKING CHANGE**: entries at the top of ## Unreleased and non-breaking entries below them, and append [#<pr-number>](https://github.com/a2ui-project/a2ui/pull/<pr-number>).
  5. Verify No Unrelated Entries or Version Headers Were Removed:

    git diff main -- '**/CHANGELOG.md' | grep '^-' | grep -v '^---'

    The only acceptable output is a revision or consolidation of an ## Unreleased entry modified or superseded by the current PR. Any deleted version header or unrelated pre-existing entry must be restored immediately.

  6. Format the Repository:
    ./scripts/fix_format.sh

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.