Default templates
Product repositories can post a Slack changelog message when a customer-visible PR is merged:
name: CSM changelog
on:
pull_request:
types: [closed]
jobs:
csm-changelog:
if: ${{ github.event.pull_request.merged == true }}
uses: kindly-ai/.github/.github/workflows/(reusable) csm-changelog.yml@master
with:
pr-number: ${{ github.event.pull_request.number }}
secrets:
slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }}
anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }}The @master reference intentionally gives callers automatic updates when this reusable workflow changes.
Only the merged PR passed by pr-number is considered. The workflow sends the PR's title, body, labels, and changed file names to Anthropic, which decides whether the PR is CSM/customer-visible and writes a short changelog entry. The action also verifies that the PR is merged before posting, so accidental calls for open or closed-unmerged PRs fail.
A test script lets you run the action from your machine against a real merged PR without needing to merge a branch first.
Prerequisites: gh CLI (logged in) and Node.js.
Fill in .github/actions/csm-changelog/.env:
PR_NUMBER=
ANTHROPIC_API_KEY=
ANTHROPIC_MODEL=claude-sonnet-4-6
SLACK_WEBHOOK_URL=
REPO_OWNER=kindly-ai
REPO_NAME=kindly
Then run from the repo root:
node .github/actions/csm-changelog/test-local.js