Skip to content

Add changelog and prototype scripts+workflows for autogenerated entries and Slack digest - #637

Open
hey-august wants to merge 28 commits into
mainfrom
august-20260813-auto-changelog
Open

Add changelog and prototype scripts+workflows for autogenerated entries and Slack digest#637
hey-august wants to merge 28 commits into
mainfrom
august-20260813-auto-changelog

Conversation

@hey-august

@hey-august hey-august commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Description

Summary

This PR's goals:

  1. turn on the changelog feature
  2. populate with recent history
  3. add tools for generating changelog entries
  4. add workflows to wire those tools into CI (after testing)

User-facing: Enable Fern's Changelog feature. Populate it with a few weeks' worth of entries.

Not user-facing: Inert scripts and workflows (not yet wired into CI) for auto-generating changelog entries based on merged docs PRs. These are intended to run weekly. For current testing purposes, they can be invoked manually.

Pipeline

When invoked, this pipeline does the following:

  • Collect changes from merged PRs on signalwire/docs
  • Rank each PR as notable, minor, or skip against a rubric
  • Open a PR with this digest. A DevEx human reviews/edits the PR
  • On PR merge, the notable items publish to the Changelog on the docs
  • Also on PR merge, both notable + minor entries get sent as a digest to configurable internal SignalWire Slack channels

During the testing phase, the pipeline should be run manually each week.

During the test phase, the LLM step that classifies changes against the rubric is currently manual, and requires the reviewing DevEx human to run a generated prompt through Claude. Once we have a Gemini key, we can uncomment the relevant portion of changelog-draft.yml.

.github/
├── changelog-state/                    # pipeline state tracking
│   ├── README.md
│   ├── reported-prs.json               # idempotency ledger, keyed by PR number
│   └── batches/2026-08-{11,18,27}/     # batch folders
│       ├── input.json                  # aggregate PR data, page URLs, merge dates
│       ├── prompt.md                   # generated prompt (gitignored, rebuilt on demand)
│       ├── classified.json             # tiering decisions
│       ├── digest.md                   # internal digest, notable + minor
│       └── manifest.json               # entry files belonging to the batch
├── scripts/
│   ├── changelog-criteria.cjs          # tiering rubric + audience routing
│   └── changelog-prompt.cjs            # prompt builder
└── workflows/
    ├── changelog-draft.yml             # collect, open draft PR, manual dispatch
    └── changelog-publish.yml           # post the Slack digest, manual dispatch

fern/products/platform/changelog/       # customer-facing
├── overview.mdx                        # Changelog homepage
└── 2026-08-{05,06,10,...}.mdx          # dated changelog entries

scripts/changelog/
├── config.js                           # paths, docs-path filters, shared contracts
├── collect.js                          # gather PRs, resolve page URLs
├── prompt.js                           # rebuild prompt.md from input.json
├── render.js                           # validate, write entries + digest
├── slack-digest.js                     # Block Kit payload from merged markdown
└── {config,collect,render,slack-digest}.test.js   # fixture tests

Open questions

  • Right now the Changelog lives on the Platform page right under the "Get started" guide. Do you like this placement?
  • I added a navbar link for the Changelog. Warranted?

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Code cleanup / refactor

Related Issues

Closes #636
(and goes well beyond it)

Testing

Tested with yarn test:scripts (74), yarn fern-check, yarn fern-md-check. No workflow has run against the real repo yet.

  • Added/updated unit tests
  • Tested manually
  • Tested with live SignalWire credentials (if applicable)

Checklist

  • I have read the CONTRIBUTING guidelines
  • My code follows the project's style guidelines
  • I have added tests for my changes (if applicable)
  • I have updated documentation (if applicable)
  • All existing tests pass

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@hey-august hey-august changed the title Add changelog and prototype digest scripts+workflows Add changelog and prototype Slack digest scripts+workflows Aug 27, 2026
@hey-august hey-august changed the title Add changelog and prototype Slack digest scripts+workflows Add changelog and prototype scripts+workflows for autogenerated entries and Slack digest Aug 27, 2026
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.

Enable Changelog

1 participant