From 1e29dcd514f50f23d9b790fedb1eadcaa2fb2549 Mon Sep 17 00:00:00 2001 From: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Date: Mon, 20 Jul 2026 13:09:14 +0800 Subject: [PATCH] fix(create-objectstack): exclude CHANGELOG.md from the skills-catalog-boundary ratchet (main red) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `no customer-facing surface advertises a repo-root skills install` guard (template-consistency.test.ts) grepped `content/docs`/`skills`/ `packages/create-objectstack` for `skills add objectstack-ai/framework` not followed by `/skills`, excluding only the test file — not CHANGELOG.md. When Changesets versioned create-objectstack in RC mode, it baked #3101's changeset prose into packages/create-objectstack/CHANGELOG.md. That entry documents the fix by quoting the removed command in past tense ("…advertised `skills add objectstack-ai/framework --all` … now scoped to the /skills subpath"), which tripped the ratchet and turned Test Core red on main (pre-existing; first seen at e412fb676 / 631debac5, before any of my changes). A CHANGELOG documenting the REMOVAL of an anti-pattern is not advertising it — only real customer-facing surfaces (docs, README, index.ts, AGENTS.md, which all correctly use the /skills subpath) should count. Exclude `**/CHANGELOG.md` from the guard's grep surfaces. Test-only change; no shipped behavior. Co-Authored-By: Claude Opus 4.8 --- .../create-objectstack/src/template-consistency.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/create-objectstack/src/template-consistency.test.ts b/packages/create-objectstack/src/template-consistency.test.ts index 8331e65559..5df264eb6b 100644 --- a/packages/create-objectstack/src/template-consistency.test.ts +++ b/packages/create-objectstack/src/template-consistency.test.ts @@ -318,6 +318,12 @@ describe('skills catalog boundary', () => { 'packages/create-objectstack', // this file mentions the bare form on purpose (needle + error message) ':(exclude)packages/create-objectstack/src/template-consistency.test.ts', + // CHANGELOGs are auto-generated from changeset prose and legitimately + // quote a removed command in past tense while documenting its removal + // (#3101: "…advertised `skills add objectstack-ai/framework --all` … now + // scoped to the /skills subpath"). Documenting a fix is not advertising + // the anti-pattern — only real customer-facing surfaces count. + ':(exclude)**/CHANGELOG.md', ]; let candidates = ''; try {