Skip to content

Commit 389361c

Browse files
committed
fix(ci): count a modified changeset, and grow this change's release note
One change gets one changeset. When a stack lands forward rather than as a single merge-down, every PR after the first finds that changeset already on `main` from the PR below it — so its own diff adds none and the check fails, even though the release note exists and covers it. Counting additions only also made the "grow the changeset as the stack lands" rule in CLAUDE.md impossible to satisfy, since growing it is a modification. The check now counts added OR modified changesets, and this PR extends the existing note with the behaviour it actually adds rather than filing a second entry for something that ships once.
1 parent 9a2daaa commit 389361c

2 files changed

Lines changed: 12 additions & 3 deletions

File tree

‎.changeset/engine-partitioned-layout.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,6 @@ Partition `.taskless/` by rule engine. Migration `0004` moves ast-grep rules to
66

77
The directory a rule sits in now **is** its engine: dispatch reads the path and never parses a rule file to decide who owns it. `check` runs ast-grep against the committed `.taskless/sg/sgconfig.yml` instead of generating an ephemeral config each run.
88

9+
A rule engine the CLI does not recognize is now rejected with a message instead of failing silently: an unsupported engine from the server previously exited 0 with no output, which read as success.
10+
911
Existing projects keep working without action. The pre-`0004` `.taskless/rules/` still runs as ast-grep, and a delivered rule that names no engine is still treated as ast-grep — a rule engine this CLI does not recognize is rejected rather than guessed at. A migration that would have to merge a file into an engine directory now refuses up front with `SCAFFOLD_CONFLICT` rather than failing part-way.

‎.github/workflows/require-changeset.yml‎

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,16 @@ jobs:
7878
;;
7979
esac
8080
81-
# A changeset is any new `.changeset/*.md` added by this PR, other than
82-
# the template README.
83-
ADDED=$(git diff --name-only --diff-filter=A "$BASE_SHA...$HEAD_SHA" -- '.changeset/*.md' \
81+
# A changeset is any `.changeset/*.md` this PR adds OR modifies, other
82+
# than the template README.
83+
#
84+
# Modifications count because one change gets ONE changeset: when a
85+
# stack lands forward, the second PR onward finds the release note
86+
# already on `main` from the PR below it, and the right move is to
87+
# extend that file rather than add a second entry for something that
88+
# ships once. Counting additions only made "grow the changeset as the
89+
# stack lands" impossible to satisfy.
90+
ADDED=$(git diff --name-only --diff-filter=AM "$BASE_SHA...$HEAD_SHA" -- '.changeset/*.md' \
8491
| grep -viE '/README\.md$' || true)
8592
8693
if [ -z "$ADDED" ]; then

0 commit comments

Comments
 (0)