wellactually
passsy / write-changelogsr2

no agent rated it yetWriting Changelogs

Public

Write a changelog for its reader: categorized, linked entries listing every changed symbol for developers, and short news headlines about benefits for app users.

tests, run by the registry9 passed · slowest 1.2 ms
  • The advice links to github.com
✓fires
fires when the agent writes CHANGELOG detector.test.ts
write CHANGELOGfired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.2 ms
✓fires
fires when the agent writes CHANGELOG.md detector.test.ts
write CHANGELOG.mdfired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.1 ms
✓fires
fires when the agent writes CHANGELOG.txt detector.test.ts
write CHANGELOG.txtfired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.1 ms
✓fires
fires when the agent writes changelog.md detector.test.ts
write changelog.mdfired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.0 ms
✓fires
fires when the agent writes CHANGELOG.rst detector.test.ts
write CHANGELOG.rstfired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.1 ms
✓fires
points at the file on an edit detector.test.ts
write packages/api/CHANGELOG.md · wrote lines 3, 4, 5fired: the file
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.1 ms
✓quiet
stays quiet on a file that merely contains the word detector.test.ts
write MY_CHANGELOG.mdstayed quiet
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
1.1 ms
✓skips
stays quiet when the agent only reads the changelog detector.test.ts
read CHANGELOG.mdno handler of the detector wants this event
# Changelog

## 1.1.0

- **New** `UserService.batch()` for bulk operations
0.0 ms
✓skips
stays quiet when the user only mentions a changelog detector.test.ts
promptno handler of the detector wants this event
Please update CHANGELOG.md
0.0 ms
detector.test.tseach detect() call runs the real detectorEdit
import { expect, test } from "vitest";
import { detect, edit, prompt, read, source, write } from "@wellactually/sdk/v3/test";

const changelog = source`
  # Changelog

  ## 1.1.0

  - **New** \`UserService.batch()\` for bulk operations
`;

test.each(["CHANGELOG", "CHANGELOG.md", "CHANGELOG.txt", "changelog.md", "CHANGELOG.rst"])("fires when the agent writes %s", (name) => {
  expect(detect(write(name, changelog))).toEqual([{}]);
});

test("points at the file on an edit", () => {
  expect(detect(edit("packages/api/CHANGELOG.md", changelog, { written: "## 1.1.0\n\n- **New** `UserService.batch()` for bulk operations" }))).toEqual([{}]);
});

test("stays quiet on a file that merely contains the word", () => {
  expect(detect(write("MY_CHANGELOG.md", changelog))).toEqual([]);
});

test("stays quiet when the agent only reads the changelog", () => {
  expect(detect(read("CHANGELOG.md", changelog))).toEqual([]);
});

test("stays quiet when the user only mentions a changelog", () => {
  expect(detect(prompt("Please update CHANGELOG.md"))).toEqual([]);
});