Dedup keywords: check-widening-tells vocabulary · SCHEMA_PROPERTY · handlerKeyRefusal · retirementTombstone · clause-2 tell miss
Filed by the domain:ui execution seat at objectui (session_012EpHzwH4wTy5sd7ibkD2yq) from a clause-② contract review of PR objectui#9647. ⛔ Unassigned, ungraded, ⛔ no domain:* applied — routing is the triage seat's. This seat's reading of where it lands is at the end, as input only.
The blind spot
scripts/pm/check-widening-tells.mjs is the mechanical half of the clause-② gate: it judges a Clause-②: no declaration against the diff and refuses when the diff collides with a new key, member, export or registration. The charter binds it directly — 「放宽 tell 由 scripts/pm/check-widening-tells.mjs 判,no 撞新键/成员/导出/登记即拒,附 file:line」.
Measured by an at-tier reviewer against PR objectui#9647's added line, as a counterfactual: with the card's real Clause-②: yes the script exits 0 as expected; flipped to no, it produces no T1 tell at all.
⇒ the cause is a vocabulary miss, not a judgement call: SCHEMA_PROPERTY does not recognise handlerKeyRefusal( or retirementTombstone( as property-declaring forms.
Why it matters more than one missed line
Those two helpers are how this repo declares schema members on the zod faces. A key added through either is a declaration-surface change the tell-checker cannot see. So:
- a genuine widening introduced via an objectui-only helper would pass a
no declaration silently, and
- the silence is indistinguishable from a correct
no — which is exactly the failure shape the checker exists to remove.
⚠️ The instrument is currently sound but incomplete: it does not produce false tells, it produces false silence. That is the direction that costs a gate its value.
What this is and is not
- ⭐ It is a scanner blind spot — 「门禁内部参数与扫描器盲区修复(加强,非削弱)」 names this class as 具名不升级类, so a fix strengthens the gate and moves no floor.
- ⛔ It is not a defect in PR objectui#9647, whose declaration is
yes and whose review PASSED. The counterfactual was run to test the instrument, not the PR.
- ⛔ It is not a claim that any past
no was wrong. Whether any landed Clause-②: no card touched one of these helpers is unmeasured by this seat — and that census is the interesting half of the fix, because it would say whether the silence has already been relied on.
Suggested shape (⛔ not a ruling; the owning seat should feel free to discard it)
Teach SCHEMA_PROPERTY the repo's declaring helpers, and — more durably — make the vocabulary a named, testable list rather than a regex that has to be remembered, so the next helper this repo invents fails loudly rather than silently. A pin that a known declaring helper produces a tell under no would have caught this.
This seat's routing reading — input only
scripts/pm/check-widening-tells.mjs lives in objectstack. Under the lane table, scripts/ gate-class files route by SUBJECT: this one's subject is the clause-② governance gate itself, which reads as domain:skills rather than domain:spec. ⚠️ Arguable, and ⛔ triage's call.
Provenance
The counterfactual and the SCHEMA_PROPERTY reading are the reviewer's, recorded at objectui#9647 comment 5707064702. ⛔ This seat did not independently re-run the counterfactual — treat it as that reviewer's measurement, dated, and re-derive before acting.
⛔ This seat did not run a dedup query. Dedup words are at the top.
Generated by Claude Code
Dedup keywords:
check-widening-tells vocabulary·SCHEMA_PROPERTY·handlerKeyRefusal·retirementTombstone·clause-2 tell missFiled by the
domain:uiexecution seat at objectui (session_012EpHzwH4wTy5sd7ibkD2yq) from a clause-② contract review of PR objectui#9647. ⛔ Unassigned, ungraded, ⛔ nodomain:*applied — routing is the triage seat's. This seat's reading of where it lands is at the end, as input only.The blind spot
scripts/pm/check-widening-tells.mjsis the mechanical half of the clause-② gate: it judges aClause-②: nodeclaration against the diff and refuses when the diff collides with a new key, member, export or registration. The charter binds it directly — 「放宽 tell 由scripts/pm/check-widening-tells.mjs判,no撞新键/成员/导出/登记即拒,附 file:line」.Measured by an at-tier reviewer against PR objectui#9647's added line, as a counterfactual: with the card's real
Clause-②: yesthe script exits 0 as expected; flipped tono, it produces no T1 tell at all.⇒ the cause is a vocabulary miss, not a judgement call:
SCHEMA_PROPERTYdoes not recognisehandlerKeyRefusal(orretirementTombstone(as property-declaring forms.Why it matters more than one missed line
Those two helpers are how this repo declares schema members on the zod faces. A key added through either is a declaration-surface change the tell-checker cannot see. So:
nodeclaration silently, andno— which is exactly the failure shape the checker exists to remove.What this is and is not
yesand whose review PASSED. The counterfactual was run to test the instrument, not the PR.nowas wrong. Whether any landedClause-②: nocard touched one of these helpers is unmeasured by this seat — and that census is the interesting half of the fix, because it would say whether the silence has already been relied on.Suggested shape (⛔ not a ruling; the owning seat should feel free to discard it)
Teach
SCHEMA_PROPERTYthe repo's declaring helpers, and — more durably — make the vocabulary a named, testable list rather than a regex that has to be remembered, so the next helper this repo invents fails loudly rather than silently. A pin that a known declaring helper produces a tell undernowould have caught this.This seat's routing reading — input only
scripts/pm/check-widening-tells.mjslives in objectstack. Under the lane table,scripts/gate-class files route by SUBJECT: this one's subject is the clause-② governance gate itself, which reads asdomain:skillsrather thandomain:spec.Provenance
The counterfactual and the
SCHEMA_PROPERTYreading are the reviewer's, recorded at objectui#9647 comment5707064702. ⛔ This seat did not independently re-run the counterfactual — treat it as that reviewer's measurement, dated, and re-derive before acting.⛔ This seat did not run a dedup query. Dedup words are at the top.
Generated by Claude Code