Repository navigation
[finding] PR #18769's PENDING changeset declines the BREAKING banner on the ground that the narrowing "could not be exhibited" — an at-tier review exhibited it, and the file is still unreleased #18823
Description
Filed by the domain:cli execution PM seat (pm:seat #6024, session session_01DvvamiacK328idtBYJBxV3) out of the isolated at-tier contract review of PR #18813 (record 5722342660, its finding F2). ⛔ Filed bare — finding only; domain:*, type and priority are triage's.
The shape
.changeset/18677-validate-per-package-authoring-pass.md — PR #18769's changeset, still pending and unreleased — declares its own change not breaking, and gives as the reason that the narrowing could not be exhibited. Verified by this seat at origin/main ad1f94e8ec, quoted verbatim from line 20:
No newly-refused input could be exhibited on any fixture — across the repo's own two-package example and three constructed variants the observable change is advisory-only … ⛔ not declared breaking, because the narrowing could not be exhibited and is bounded by an existing gate.
It is graded minor, and carries ⛔ no **BREAKING** banner and ⛔ no adr-0087: disposition marker — both absences measured by grep over the file at origin/main, ⛔ not recalled.
⭐ The newly-refused input WAS exhibited — on a fixture that card did not have
The reviewer drove os validate over CONFIG_FLIP — the two-package fixture shipped in PR #18813's packages/cli/test/lint-per-package-authoring-parity.test.ts, in which core owns pp_account and a sibling package owns the view displaying pp_account.industry, so the union fold sees a consumer and the per-package run does not:
os validate --json --strict on CONFIG_FLIP |
exit | warnings |
|---|---|---|
validate.ts restored to the pre-#18769 blob (095c7f60ae^, blob bafa54b07f verified) |
0 | 0 |
| at head | 1 | 1 (the per-package survivor) |
⇒ os validate --strict gained a newly-refused input in #18769. The clause that declines the BREAKING banner rests on a negative — "could not be exhibited" — and the negative is false; the fixture that exhibits it simply did not exist when that changeset was written. ⭐ A property that could not be exhibited with the fixtures on hand is UNEXHIBITED, ⛔ not absent — which is this family's own governing lesson, turned on the family.
⚠️ Why this is worth a card rather than a shrug
The changeset is pending: it has not been consumed by a release, so what it says is still what the next @objectstack/cli CHANGELOG will tell an upgrader. An upgrader reading "nothing that builds today stops validating" and running os validate --strict in CI over a multi-package project can have that CI step start failing with no banner having warned them.
⇒ the repair is forward and cheap while the changeset is still pending: add the **BREAKING** banner and the ADR-0087 disposition the yes (narrowing) arm owes, and replace the "could not be exhibited" clause with the reading above. ⛔ That is an amendment to an unreleased file, ⛔ not a rewrite of landed history.
⛔ Not asserted
- ⛔ Whether the clause-② DECLARATION on [finding]
os buildruns a per-package authoring-rule walkos validatedoes not — the residue #17069 left, in the same false-clean direction #18677 / PR fix(cli):os validateruns the per-package author-time rule passos buildalready ran #18769 should be retro-corrected, and what a landedyes (narrowing)that shipped declarednoowes beyond this changeset — the mandatory contract review for that PR was, in consequence, never performed. That is a governance question above this card and above the seat that filed it; ⛔ this card does not answer it and ⛔ must not be read as answering it. - ⛔ Whether the level moves.
minoris already what ayesarm owes at least; ⛔ nothing here asks formajor(the launch window refuses it). - ⛔ Whether PR fix(cli):
os lintruns the per-package author-time rule pass the other two doors already ran #18813's own declaration is affected. It is not: that PR declaresyes (narrowing)with the banner and the ADR-0087 marker, and the review that measured this exhibited it while confirming that PR's arm. This card is strictly about the sibling changeset already onmain.
Dedupe words: 18677-validate-per-package-authoring-pass · narrowing could not be exhibited · pending changeset BREAKING banner · os validate --strict newly-refused input · ADR-0087 disposition missing
Dedupe run before filing, ⛔ not from memory: complete repo-scoped enumeration of 518 open issues over 6 pages (/search/* answers 403 for this seat — «sessions are bound to their configured repositories» — so enumeration plus local match is the only instrument). 18677-validate-per-package-authoring-pass → 0; narrowing could not be exhibited → 0; os validate --strict → 0; BREAKING banner → 1 (#18124, a spec duration-rows card — ⛔ not this); ADR-0087 disposition → 8, nearest read and rejected: #18745 (the detector missing a FROM → TO line — a different instrument), #18815 (the four-doors table documenting rule FAMILIES not stack TIERS — same family, ⛔ different artefact). ⭐ Lit control per-package → 13 hits, so the zeros above are discriminations; negative control → 0.
Generated by Claude Code
Activity
os-support-ai commentedon Sep 18, 2026
认领 —
domain:cli执行 PM 席 #6024Claim: session
session_01DvvamiacK328idtBYJBxV3Branch:
claude/issue-18823-pending-changeset-breaking-bannerClause-②: no
Clause-②-correction: <本评论 id>评论(带Clause-②:与Session:行)。⛔ 永不发第二条Claim:——check-clause2-carriers.mjs原文禁止。分诊
5722459190写明:.changeset/18677-validate-per-package-authoring-pass.md仍 pending、仍未发布 ⇒ 现在动只是改一份待发条目;发布之后动,那个版本号已经错了、收不回来。⇒ 第一件事是现读确认它仍未被发布消费(
origin/main上该文件是否还在、npm 上@objectstack/cli的当前版本)。若它已经被某次发版吃掉,立刻停手并回报 —— 那时补法完全不同,⛔ 不是你该自己改的。⛔ 本席与本卡有利益关系,这件事写在明处
是本席在 #18677 上接受了那条
Clause-②: no。 把它接受错了的是我。⇒ 下面每一条围栏你都该当成一个有前科的席位写的来读,⛔ 不要因为它来自派发令就继承。围栏
**BREAKING**横幅 +adr-0087:处置标记,并把那句以否定为据的话换成实测读数。⛔ 不动validate.ts、⛔ 不动任何已落地的代码。yes (narrowing)申报成no落地还欠什么」 —— 那是卡面明写「Not asserted」的治理问题,归维护者。你把 changeset 改诚实即可。os lintruns the per-package author-time rule pass the other two doors already ran #18813 记录5722342660的 finding F2)的,⛔ 不是本席的,也 ⛔ 不是你的。第一件事是自己复现那张表:在 PR fix(cli):os lintruns the per-package author-time rule pass the other two doors already ran #18813 自带的CONFIG_FLIP双包 fixture 上,os validate --json --strict把validate.ts还原到 fix(cli):os validateruns the per-package author-time rule passos buildalready ran #18769 之前的 blob(bafa54b07f)时 exit 0 / 0 warning,在 head 上 exit 1 / 1 warning。⭐ 不复现就是一条值得写下来的发现,⛔ 不要在未复现的前提上动手。skip-changeset,它必须基于测量。content/docs/releases/、⛔ 不动packages/*/CHANGELOG.md。packages/cli/src/commands/compile.ts、packages/qa/vitest-filter-preflight/**、packages/cli/vitest.config.ts—— PR fix(cli): os build's text face renders every author-time advisory its summary line counts #18857、fix(qa): refuse a vitest CLI timeout override that cannot reach aprojectspackage #18853 正在队列里。dispatch-gates.mjs不点名pnpm lint家族 —— 照跑。git stash;⛔ 不--no-verify;⛔ 不 force-push。已带读数 —— ⛔ 不要重新推导,但要复核
'@objectstack/cli': minor,无**BREAKING**横幅、无adr-0087:标记(本席在origin/main上 grep 实测,⛔ 非回忆 —— 但你自己再测一遍)。Generated by Claude Code
os-support-ai commentedon Sep 18, 2026
os-dev-report
{
"issue": 18823,
"status": "done",
"branch": "claude/issue-18823-pending-changeset-breaking-banner",
"pr": "#18867",
"session": "session_01DvvamiacK328idtBYJBxV3",
"premise_still_valid": true,
"summary": "The pending, unreleased entry
.changeset/18677-validate-per-package-authoring-pass.mdnow carries the BREAKING banner, the measured before/after table, the mechanism that explains why the union fold cannot see the finding, and anadr-0087: not-required (no-migration-prescription)disposition; the clause that declined the banner on the ground that the narrowing 'could not be exhibited', and the sentence 'nothing that builds today stops validating', are both gone. The clock premise was re-confirmed here before any edit: the file is on origin/main, npm @objectstack/cli is 17.4.0 equal to the manifest version, and the entry's own text has 0 hits in packages/cli/CHANGELOG.md, so the entry is unconsumed and this is a forward edit to an unpublished file. Surface is that one file, +16/-1; no landed code, no landed declaration and no history is touched, and the governance question the card marks 'Not asserted' is left alone. THIS REPORT SUPERSEDES ITS OWN FIRST VERSION on one point, stated rather than quietly dropped: the changeset-route decision isskip-changeset, and the reason the first version gave for withholding it was falsified by a measurement of this PR's own failing job - see open_questions.","tests": "REPRODUCTION (the card's first act, done before any edit): CONFIG_FLIP planted verbatim from packages/cli/test/lint-per-package-authoring-parity.test.ts lines 115-166 (sha256 d5fb835ac5...), driven through packages/cli/bin/run-dev.js with tsx.
os validate --json --strictreads exit 1 / 1 warning at head (validate.ts blob 340cec6253) and exit 0 / 0 warnings with validate.ts restored to the pre-#18769 blob bafa54b07f. IT REPRODUCES; the one warning isfield-no-consumersat package 'com.example.ppflip.core' - object pp_account - field industry. Extra reading the record did not take: the DEFAULT (non-strict) face at head is exit 0 with 1 warning, so on this fixture only the --strict door moved. ABLATION HYGIENE: mutation proven on disk before the CLI ran (git hash-object == bafa54b07f, markerrunPerPackageAuthoringRules3 -> 0 in that file); restore viagit checkout HEAD -- packages/cli/src/commands/validate.tsfrom a trap ... EXIT INT TERM with absolute paths, verified by hash equality back to 340cec6253 AND by an emptygit diff HEAD, not by an exit code;git status --porcelainempty afterwards; no build/dist is involved because bin/run-dev.js runs packages/cli from src through tsx. CHANGESET-LEVEL MEASUREMENT, controls both ways:changeset versionrun in a throwaway comparison worktree at the base, reading packages/cli/CHANGELOG.md (shipped by files[]). base = sha256 d132f18a05, version 17.5.0. NEGATIVE CONTROL (base + an edit to a file no package ships) = byte-identical to base. THIS PR (base + the changeset amendment only) = sha256 10ccd96910, 20 diff lines, all inside the entry #18677 already schedules, version still 17.5.0. POSITIVE CONTROL (base + a NEW changeset at patch) = one new CHANGELOG bullet appears, version still 17.5.0. So a changeset-only edit DOES move shipped bytes AND declares no release of its own; adding a real changeset would publish a release note announcing a correction to the release note above it. JOB-STEP MEASUREMENT (read from the Actions API on this PR's own failing run, job 105457719184, not inferred from a check name): step 11 'Require a changeset (or the skip-changeset label)' FAILURE, and steps 12-15 SKIPPED - including step 12, where check-empty-changeset --base runs, and step 13, the live check-adr-0087-registration --base. So the foreign-changeset refusal never executes on CI, labelled or not; withholding the label hides nothing and only leaves a misleading headline red. GATES: dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 18 commands; 18 run, reconciled with --ran carrying every exit code (0 NOT-MEASURED, derived not claimed). 17 exit 0, including check-adr-0087-registration --base origin/main reading '.changeset/18677-...md [BREAKING] not-required (no-migration-prescription)', check-changeset-no-major, check:nul-bytes, check:published-files. The one non-zero isnode scripts/check-empty-changeset.mjs --base origin/main:: exit 1 - BY DESIGN for the DELIBERATE CORRECTION class, whose remedy is 'say so on the PR and get it confirmed'; the PR body does that in prose.pnpm lint(eslint . --no-inline-config, the WHOLE repo, not narrowed) exit 0 at final commit 1056c00. Control characters: grep -naP over the changed file for the C0/C1 class, no hits. check-clause2-carriers.mjs --pair 18867 exit 0: declaration readable, both carriers agree onno, no widening tell;needs:contract-reviewis absent from the PR and was neither added nor removed by this dev. No package test or typecheck is owed - the diff touches no package source, no exports, no spec contract and no built artefact. CI at report time: 25 check runs, 10 success, 8 skipped, 7 in_progress, 1 failure (Check Changeset, the step-11 red above).","mcp_calls": "0 - no MCP GitHub tool was called, read or write; every GitHub read and write went through the REST proxy with $GITHUB_TOKEN",
"api_writes": "4 REST proxy writes: POST /repos/objectstack-ai/objectstack/pulls (draft PR #18867); POST /repos//issues/18823/comments (this report); PATCH /repos/objectstack-ai/objectstack/pulls/18867 (body corrected - sent with NO footer, which is that cell's measured prescription, and read back carrying exactly one platform bare footer); PATCH /repos/objectstack-ai/objectstack/issues/comments/5724194929 (this report, corrected - stored body re-sent with its trailing footer block byte-identical, the measured idempotent form). 0 label writes - see open_questions. 2
git pushon the branch (the empty-branch routing probe, then the commit).","open_questions": [
{
"question": "The route is decided and declared (
skip-changeset, by the measurement in the PR body), but the LABEL IS NOT ON THE PR.node scripts/pm/label-write.mjs --issue 18867 --repo objectstack-ai/objectstack --add skip-changesetwas refused by this session's local permission classifier with reason[CI Bypass], before any HTTP request was issued - so there is no endpoint and no status code to report, and this dev did NOT route around the refusal through a second channel. Separately, the pending-note correction still owes a person's confirmation, which check-empty-changeset asks for in prose ('say so on the PR and get it confirmed') and which the PR body §5 supplies.","options": [
"A - the dispatching seat applies
skip-changesetto PR #18867 with that same label-write command, and confirms the pending-note correction in a comment; the PR then goes green and stays draft until the confirmation is on record","B - the seat judges the route wrong and asks for a real changeset instead, accepting that it publishes one new CHANGELOG bullet announcing a correction to the bullet above it (measured: that is the only thing it adds; no version moves)",
"C - restore the note from base and drop the correction"
],
"recommendation": "A. C is the one thing the refusal's own text forbids ('restoring it from the base would put the false sentence back'). B is measurable noise in a published release note for no release. A is what the log's own remedy names and what the measurement supports. Note for whoever applies it: with the label on, the whole changeset-check job is exempt, so check-empty-changeset (step 12) and the live check-adr-0087-registration (step 13) do not run on this PR - both were run locally at 1056c00, exit 1 by design and exit 0 respectively, and cut-rc.yml re-runs the ADR-0087 check over the whole pending stock before any release consumes the entry."
}
],
"out_of_scope_findings": [
"noted, not filed:
.changeset/18778-lint-per-package-authoring-pass.mdcarries itsClause-2: yes (narrowing)line inside the changeset BODY, i.e. in text that ships verbatim into the published CHANGELOG. No gate reads it there and nothing is falsified by it, so this is a convention question, not a defect, and it is outside this card's one-file surface. Carrier: the next PR to touch changeset conventions; none is in flight on it.","noted, not filed: the generalization this card turns on - a property that could not be exhibited with the fixtures on hand is UNEXHIBITED, not absent - lives only in card prose (#18823 and triage 5722459190, which asks for it on the discriminant list). It has no home in AGENTS.md or any gate. Placing it is a governed-surface edit, so not this PR's to make. Carrier: the triage seat that asked for it.",
"noted, not filed:
check-empty-changeset's DELIBERATE CORRECTION refusal is unreachable on CI as wired. It lives at step 12 of the changeset-check job, behind step 11 (the added-changeset count), and a PR that modifies a changeset without adding one necessarily fails step 11 first - which is the only shape that can reach the refusal at all. Measured on job 105457719184: step 11 failure, step 12 skipped. So the refusal's own closing argument ('this gate stays red either way, and staying red is what puts the decision in front of a person') is not true of any PR it is written for, and its practical channel is the PR body. Not filed as a defect because it needs a workflow-ordering judgement this dev is not scoped to make. Carrier: the seat that owns pr-automation.yml.","noted, not filed: the dispatch order's criterion for
skip-changeset('nothing published moves', published = what each package's files[] ships) and this repo's mechanism disagree on a changeset-only PR - measured here, shipped bytes DO move while no release of its own is declared, and the changeset-check gate can only ever count ADDED changesets (--diff-filter=A), so a modify-only PR cannot satisfy it. Flagged rather than silently resolved. Carrier: the dispatching seat, on the criterion's wording."]
}
Generated by Claude Code
os-support-ai commentedon Sep 18, 2026
domain:cli执行 PM 席 #6024 ·session_01DvvamiacK328idtBYJBxV3· 读数 2026-09-18T03:55Z · 对 GitHub 与工作树核验,⛔ 不对 dev 报告自述核验Maintainer-action: confirm that PR #18769's pending, unreleased
.changeset/18677-validate-per-package-authoring-pass.mdmay be corrected in place as PR #18867 §5 states it — done when a comment on this card gives or refuses that confirmation要答的就这一句
#18769 那条还没发布的 changeset,可以就地改吗?
答「可以」⇒ 本席挂
skip-changeset、转 ready、按常规入队。答「不可以」⇒ 本席关掉 PR #18867 并把卡送回改判。本席先前把问题问错了,更正在此
我此前记的是「两个问题:① 挂不挂
skip-changeset② 那句人工确认」。实测下来 ① 根本不是一个问题。PR #18867 head
1056c00195的Check Changeset作业,步骤逐条从 Actions API 读出(⛔ 不从 check 名推断):check-empty-changeset --base在这里跑步骤 11 一红即短路。那道在问确认的门(step 12 的 foreign-changeset 拒绝)在本 PR 的 CI 上从来没有执行过一次 —— 而挂上标签的话,step 12 的
if:(steps.labels.outputs.skip != 'true' && steps.labels_settled.outputs.skip != 'true',pr-automation.yml:850-858)又正好豁免它。两条路都不跑。⇒ 扣着标签保护不了任何东西。它只是把一句误导性的头条红(「This PR adds no changeset … run
pnpm changeset」)留在一个正确地没有加 changeset 的 PR 上。⇒ 本席先前「扣着标签是为了让人工通道保持点亮」的判断是错的。dev 先测出来,本席独立复测同意。⛔ 而且这条规则至今没有先例 —— 这才是要人来答的真正理由
本席本来找到四个「同类已落地」的 PR,准备据此自决。用祖先性测了一遍,全废。
foreign-changeset 规则落地于
0ffb4963e52026-09-14T06:56:58Z(git log -S scanForeign --reverse -- scripts/check-empty-changeset.mjs,首条)。merge-base --is-ancestor <规则> <该提交>8d1f22f7e39ac5eee3e212babac137a5d4e286b62cc4884d1ff3b41e87d4空对照:规则提交对自身
--is-ancestorexit 0(⇒ 上面六个 exit 1 不是工具没跑)。⇒ PR #18867 会是第一个从这条规则底下过去的 PR。 ⛔ 没有任何一张已合入的 PR 可以被援引成「这样做过」。dev 用同样的方法否掉了它自己援引的 #18126 / #17851;本席对自己找的四个用同一把尺子,结果一样。
门禁自己把这件事划给了人
check-empty-changeset.mjs对 DELIBERATE CORRECTION 类的原话:「说」的那一半 PR #18867 §5 已经完整做了,而且点名了关键处:改的是证据,不是代码 ——
CONFIG_FLIPfixture 由 PR #18813 带来,它把那条说明声称「could not be exhibited」的新拒绝输入展示了出来。「get it confirmed」的那一半只能由人给。而门禁把它定性为发布决定,本席的硬约束里 ⛔ 不做发布决定 —— 所以这一句我不代答。
挂标签的代价,已测,免得把绿板读大
skip-changeset一挂,整个changeset-check作业豁免,step 12 与 13 也都不跑。本席在1056c00195上自己跑了:ADR-0087 另外在
cut-rc.yml以--base $SNAPSHOT_SHA对整个待发布库存重跑,所以在任何发布消费这条 entry 之前它仍会被检查一次。⇒ 标签的真实代价是 step 12 那一次拒绝不再出现在 CI 上 —— 而它本来也没出现过。时钟 —— entry 未被消费,本席独立重测
per-package,读出 7 命中 —— 那是别的已发布 entry 的通用词,不是这条 entry 的句子。换成本 entry 自己的独特句才是读数。记在这里:⛔ 探针要瞄准这张卡自己的文本。⇒ 现在改,代价是一个 diff;等发布消费了它再改,代价是一个收不回的版本号。
⛔ 权限不外洗,记录在案
dev 报告:
label-write.mjs --add skip-changeset被它自己会话的本地权限分类器以[CI Bypass]拒绝,在发出任何请求之前;dev ⛔ 没有换第二条通道绕过,把标签留给了派发席。本席的处置:现在的读数
PR #18867 head
1056c00195:26 个 check NAME,25 绿,唯一非绿是Check Changeset(step 11)。⛔ 不是 flake,是按构造红 ——git diff --diff-filter=A be7aeb8275..1056c00195 -- .changeset/返回空,同范围--name-status返回一个M。本卡由
pm:dispatched改为pm:awaiting-maintainer,assignee 保留 —— 分支与 PR 仍在本席手上,确认一到即续。本评论来自
domain:cli执行 PM 席Generated by Claude Code
os-support-ai commentedon Sep 18, 2026
追加读数 —— 要改的那条 entry 会再多一句假话,请把它一并纳入同一次回答
domain:cli执行 PM 席 #6024 ·session_01DvvamiacK328idtBYJBxV3· 读数 2026-09-18T04:01Z · ⛔ 不改变上一条的Maintainer-action:,只把它要覆盖的面写全PR #18878(卡 #18779,本席本轮刚复核 ACCEPT,尚未落地)把逐包去重键里的顶层集合索引中和掉,于是
examples/app-multi-package上每扇门都少报一条回声。对.changeset/18677-validate-per-package-authoring-pass.md的影响,现测于origin/main::16:7compile.ts' own description the survivors of that second pass are "exactly the set the union could not see"⇒ 那条待发布 entry 届时会带三处问题,而不是本卡立卡时的一处:
⛔ **not** declared breaking, because the narrowing could not be exhibited(PR docs(cli): #18769's pending changeset declares theos validate --strictnarrowing an at-tier review exhibited #18867 已备好修法);:16的both report 4;:7的失效署名引用。这不改变要答的那一句,只把它的射程写清楚
Maintainer-action:行不变(见上一条5724913518)。os validate --strictnarrowing an at-tier review exhibited #18867 的修法应在 fix(cli): the per-package de-duplication key ignores the top-level collection index, so an echo no longer survives it #18878 落地之后重新推导一次再落地,否则它会把4原样发出去。本席会按这个次序办 —— fix(cli): the per-package de-duplication key ignores the top-level collection index, so an echo no longer survives it #18878 先入队,docs(cli): #18769's pending changeset declares theos validate --strictnarrowing an at-tier review exhibited #18867 后重测。顺带,#18779 的交付方独立问到了同一件事,本席已按 A 答复
它问那两条待发布 changeset(
18677-…与18778-lint-…)里被证伪的句子怎么办,给了 A/B/C。本席取 A(原样留着,更正由 #18878 自己的 changeset 在同一个 release 里给出),理由恰恰是本卡:18677-…这个文件已经停在维护者手上等同一句确认,取 B 等于为同一个文件、同一道门禁再花一次同样的确认。⇒ ⛔ 没有第二条通道被打开,也 ⛔ 没有人替维护者答。本评论来自
domain:cli执行 PM 席Generated by Claude Code
os-support-ai commentedon Sep 18, 2026
⭐ 姊妹卡 #18652 刚拿到裁决,它证实了本卡的扣留是对的,并给出了本卡欠的那句话该走的机制
domain:cli执行 PM 席 #6024 ·session_01DvvamiacK328idtBYJBxV3· 读数 2026-09-18T05:42Z · ⛔ 本条不改上一条的Maintainer-action:,也 ⛔ 不据此挂标裁决在 #18652 的
5725677335(batch #156 item 1,维护者「同意」2026-09-18T05:36Z)。同一道门禁、同一个 DELIBERATE CORRECTION 类,PR #18765。原话两句,都要紧:这对本卡意味着两件事,方向相反,都写出来
① 本席的扣留被证实是对的,⛔ 不是过度谨慎。 那句 「⛔ No seat applies that label on its own authority again」 正是本席
5724913518里拒绝挂标的理由,现在有了明文。⇒ 本卡继续停在pm:awaiting-maintainer,⛔ 本席仍然不挂skip-changeset。② 欠的那句话现在有了已走通一次的机制:维护者确认 → 总监席把确认原样记在 PR 上(按门禁自己的措辞点名那条 note 与它底下变了什么)→ 总监席以维护者的权威挂标 → 执行席按常规入队落地。⇒ 本卡的
Maintainer-action:不必改写,但它要的东西可以说得更短:一个「同意」,剩下的按 #18652 的路子走。按〈新支复用母单裁决〉的判据,继承的是裁决连同理由,而母单理由被实测为分支特有时本条不适用。两卡的机制同形,实质不同:
**BREAKING**横幅与 ADR-0087 处置⇒ #18867 做的是更大的一个发布决定:它把 #18677 那条 entry 从「⛔ not declared breaking」翻成 declared breaking。#18652 的裁决没有、也不可能顺带答这一条。⇒ ⛔ 本席不把它当成本卡的答案。
本卡的读数,重测于 2026-09-18T05:42Z
PR #18867 head
1056c00195:26 个 NAME,25 绿,唯一非绿是Check Changeset(step 11,按构造红 ——--diff-filter=A在.changeset/上为 0,一个M)。⛔ 不是 flake。⭐ 另外补一条上一条评论里没有的:#18878 已于 2026-09-18T05:34:21Z 落地,它让
.changeset/18677-…md的:16那句After: both report 4变成了 3。⇒ 若答案是「可以就地改」,PR #18867 的修法要在此之后重新推导一次再落地,否则会把4原样发出去。本席会按这个次序办。本评论来自
domain:cli执行 PM 席Generated by Claude Code
docs(deployment): state the per-package walk de-duplication bound as …
docs(cli): objectstack-ai#18769's pending changeset declares the `os …