Skip to content

feat(ci): require a Changelog section on every PR - #164

Merged
crs48 merged 1 commit into
mainfrom
feat/require-changelog-section-0197
Jun 17, 2026
Merged

feat(ci): require a Changelog section on every PR#164
crs48 merged 1 commit into
mainfrom
feat/require-changelog-section-0197

Conversation

@crs48

@crs48 crs48 commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Makes the changelog required, so agents (and humans) can't merge a PR that silently skips it — addressing the "what if an agent forgets the Changelog section" concern.

What

A new required check, changelog-section (.github/workflows/changelog-check.yml), fails a PR unless its body has a ## Changelog section or it carries the skip-changelog label. It:

  • runs on body/label edits, so it clears the moment the PR is fixed,
  • posts a sticky help comment explaining exactly how to fix (great for agents, who read PR comments),
  • shares its parsing with the on-merge writer via a new scripts/changelog/lib.mjs, so "has a changelog?" is decided by the same logic that produces the entry (from-pr.mjs refactored onto it).

AGENTS.md now states the requirement up front. Three layers now communicate it: the PR template, the AGENTS.md instruction, and — the backstop — a blocking check.

Making it blocking

The workflow ships here; the final step is adding changelog-section to the main ruleset's required status checks (an admin/API action). I'll do that right after this merges, then verify with a quick test PR.

Verification (local)

  • gate: has block → pass; no block → fail (with help text); skip-changelog label → pass; empty block (only the template comment) → fail ✓
  • refactored from-pr.mjs still writes correct fragments ✓
  • workflow YAML parses ✓

This PR is internal contributor tooling (no user-facing change), so it carries the skip-changelog label — which also exercises the label path of the new check.

🤖 Generated with Claude Code

New changelog-section check (.github/workflows/changelog-check.yml) fails a PR
unless its body has a ## Changelog section or it carries the skip-changelog
label, and posts a help comment explaining how to fix. Re-runs on body/label
edits so it clears the moment the PR is updated. Shared parsing (lib.mjs) keeps
the gate and the on-merge writer in agreement; from-pr.mjs refactored onto it.
AGENTS.md now states the requirement explicitly. Make it blocking by adding
'changelog-section' to the main ruleset's required checks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@crs48 crs48 added the skip-changelog Exclude this PR from the changelog label Jun 17, 2026
@crs48
crs48 temporarily deployed to pr-164 June 17, 2026 21:29 — with GitHub Actions Inactive
@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Preview removed for PR #164.

github-actions Bot added a commit that referenced this pull request Jun 17, 2026
@crs48
crs48 merged commit 5404dee into main Jun 17, 2026
9 of 11 checks passed
@crs48
crs48 deleted the feat/require-changelog-section-0197 branch June 17, 2026 21:35
github-actions Bot added a commit that referenced this pull request Jun 17, 2026
crs48 added a commit that referenced this pull request Jun 18, 2026
…193/0194) (#201)

The `changelog-section` required check was only added in #164, so the
0192/0193/0194 feature batch merged before it never got changelog
entries. This backfills the 12 user-facing features that were missing,
each dated to its merge day with its PR number and contributors:

| PR | Entry |
|----|-------|
| #138 | A safer foundation for plugins |
| #145 | One trust model across plugins and Labs |
| #146 | Reliability you can see for managed hubs |
| #148 | Drive your own coding agent from xNet |
| #149 | AI that can act on your workspace |
| #150 | Your Labs become AI tools |
| #152 | Your agent can use your workspace |
| #154 | AI edits, right inside the editor |
| #155 | An agentic dev loop in your terminal |
| #158 | Review AI edits before they apply |
| #159 | Kick off agentic code tasks from xNet |
| #162 | Plugins run on the Labs runtime |

Skipped: PRs already covered by umbrella entries (#142 plugin ecosystem,
#144 extensibility fabric, #147 automated changelog, #163 agent panel,
#180 changelog gallery), internal-only changes (#139 schema authz — zero
user-facing effect), and meta/test/docs PRs.

🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip-changelog Exclude this PR from the changelog

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant