Uh oh!
There was an error while loading. Please reload this page.
docs(agents): os-dev applies skip-changeset at PR-open time, with the releases-nothing test stated once - #12890
Merged
Conversation
… releases-nothing test stated once The delivery contract already said the label is the dev's step and goes on at PR creation, but its qualifying list was open and incomplete (tests/workflow/ `.claude/`), so an ADR-only companion PR read as uncovered and met Check Changeset as a red instead of as a label. State the test once — the diff publishes nothing from any package — and close the category list. Funded in place, net 0 lines against the 470 ceiling: the restated phantom-label parenthetical and the 'declaration varies by repo' clause both carry their meaning elsewhere in the same bullet. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MnijPVVDakqK2J335JoJtq
…ip-changeset-at-birth
This was referenced Aug 28, 2026
os-zhuang
approved these changes
Aug 28, 2026
os-zhuang
marked this pull request as ready for review
August 28, 2026 07:15
os-zhuang
enabled auto-merge
August 28, 2026 07:15
github-merge-queueBot
removed this pull request from the merge queue due to failed status checks
Aug 28, 2026
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#12876
The
skip-changesetbullet in.claude/agents/os-dev.mdalready said the label is thedev's own step, not CI's, and that it goes on when the PR is created. What it did not
carry was a qualifying test and a closed category list — it named only
"tests/workflow/
.claude/", so an ADR-only companion PR read as uncovered, metCheck Changesetas a red, and was recovered with a label edit plus a re-run. Cheap,but pure waste, and once per releases-nothing PR.
The sentence as landed
Both clauses live inside the existing bullet, beside the guidance they qualify:
docs/adr/**·.claude/**·scripts/pm/**· tests/workflow · 注释 的 diff。The list is a superset of what the bullet named before, not a swap:
docs/adr/**(the shape that produced this finding),
scripts/pm/**and comments-only are added;tests/workflow and
.claude/**are the two it already had, kept.The cut ledger — net 0 against a zero-headroom ceiling
The file sits at 470/470, headroom 0, so both clauses are funded in place, same file and
same bullet. Neither cut removes a rule; each is a restatement whose meaning survives at
a named address:
(挂上去只是给 PR 挂一个假状态,再铸一次幻影), −61 B. Surviving home: the samesentence already states it as a rule —
但零 workflow/脚本读它、豁免不了任何东西,pin 测试钉着这条— and the sentence immediately before it is the phantom-gate warning读回验的是「写落了」,验不出「有门在读」——幻影门标签读回同样成功. The⛔ 永不在那边 施加该标签prohibition it trailed is untouched.但「不发布」的声明方式因仓库而异。Surviving home: the bullet's own boldedheadline, one sentence earlier —
标签按仓库分流——先认清目标仓库有没有这个机制. Theper-repo split it announced (
**本仓库**/**objectui**) is untouched.Arithmetic: paragraph 1467 B → 1486 B (+19 B), 13 lines → 13 lines, file 470 → 470.
Incidental, and disclosed rather than hidden
The bullet was re-flowed with the ratchet's own
wrapLine, and the re-flow was provedcontent-preserving by whitespace normalization before it was written. Two consequences
are visible in the diff and are not content changes:
quotationexemption (it opened a 「…」 it closed on the next line). Every line of thebullet now sits at or under the 120-byte rule on its own merit, using no exemption.
仅含 tests/|workflow/...(a break inside a Latin run) and必要不充分:|实测(a Han + ASCII-punctuation break, the [finding] The #11106 mechanical re-wrap left 45 soft breaks sitting after an ASCII comma between Chinese clauses — each renders as a stray mid-sentence space #12081 class). Both rendered as a stray space;
neither adds or removes a character of content.
This PR practices what it preaches
The diff is
.claude/**-only. It publishes nothing from any package, so it takes theskip-changesetlabel, applied at PR-open time — not a changeset file, and not anempty one. No
Check Changesetred was waited for.Gates — run on
8b02f78c7, the final commitThe branch merges
origin/mainat93a554d71; the diff againstmainis this one file(13 insertions, 13 deletions). Union derived from the real changeset, not from memory:
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstacknamed 10 families.Exit codes captured before any pipe; the verdict lines below are each gate's own.
✓ check-skill-line-ratchet: .claude/agents/os-dev.md is 470 lines (ceiling 470; headroom 0).✓ check-skill-line-ratchet: .claude/agents/os-dev.md: widest table row is 0 bytes (pin 0; headroom 0).✓ check-skill-frame-sync: 4 copies of the decision frame are structurally isomorphic across 3 files—the enforced copy of the decision frame was not touched.
✓ check-skill-id-lint: 23 file(s) clean (pattern /#[0-9]{3,}/g).✓ check:doc-formula-expressions: 22 record-scoped formula example(s) across 425 files / 1453 TS blocks judged clean by @objectstack/formula.check:agent-model-declared,check:agent-test-spelling,check:doc-authoring,check:nul-bytes,check:pm-governed-merges,check:skill-frame-freshness— all exit 0.check-governed-queue-guard— not measured locally: it reads the workflow eventpayload and there is none outside CI, so it exits 1 saying "could not look". That is a
prerequisite miss, not a finding. CI runs it.
check:doc-formula-expressionsfirst exited 1 withPREREQUISITE NOT METtwice(
@objectstack/formula, then@objectstack/lintnot built); both were built and the gatethen measured clean. Recorded because an unbuilt prerequisite is not a red gate.
Governed surface: no reviewer requested from here — the PM runs the four-piece review.
Tier: this path is clause-① mandated, taken under the recorded exit for a
one-sentence-class mechanical governed edit, compensated by the PM's collection review at
the mandated
claude-fable-5tier.Session: https://claude.ai/code/session_01MnijPVVDakqK2J335JoJtq
Generated by Claude Code