Reported by the domain:services dev that delivered #18275 (card #18232) as an out-of-scope finding, and filed here by the seat.
⚠️ Same provenance caveat as its sibling: the dev's dedupe control failed — its one targeted search did not return #18232 itself, the known-must-hit control — so it refused to file on an empty result that was not a reading. ⛔ This card carries NO dedupe claim.
The finding
describeRefusedDateRange in packages/spec/src/data/analytics.zod.ts cannot describe ['', '']. Its comment states why such an input supposedly cannot arise:
Two bounds is the arity the contract asks for, so the only way such an array reaches a refusal is a bound that is not a string
⇒ measurably false. Every face also refuses an EMPTY string bound, and @objectstack/core's own header names ['', ''] as precisely the residue that reaches them. So the author of ['', ''] reads:
...must be ... the two-element array [start, end] ...; received a two-element array.
— a sentence that describes the shape they already know and says nothing about what is wrong with it.
⚠️ PR #18275 makes this reachable at one more face, and the seat weighed that before landing
The seat's own reading, taken because the consequence decides whether that PR should land:
| input kind |
what analyticsDateRangeRefusalMessage does |
| a string |
interpolates JSON.stringify(input) — the caller sees their value |
| a non-string (an array) |
received (describeRefusedDateRange(input)) — a DESCRIPTION, ⛔ never the value |
The service-analytics wording that #18275 removes DID echo the value (JSON.stringify(dateRange)). ⇒ the loss is ⛔ not confined to ['', '']: every array shape that face refuses stops echoing the value, and ['', ''] is simply where the description carries the least.
⛔ That is not an argument against #18275: adopting the shared sentence is what the #5240 convention and the ruling require, and the description-instead-of-echo behaviour is this builder's, not that PR's. It is an argument for fixing the builder.
Successor
domain:spec — the file is packages/spec/src/data/analytics.zod.ts, which was out of bounds for the card that surfaced this. ⚠️ Two things are owed together: the description itself, and the COMMENT that asserts the case cannot arise, since a false explanation is what kept it unexamined.
Dedupe words: describeRefusedDateRange empty string bound analytics.zod.ts two-element array #5240
⛔ Ungraded on purpose, and ⛔ no domain: label — routing and grading are triage's.
Generated by Claude Code
Reported by the
domain:servicesdev that delivered #18275 (card #18232) as an out-of-scope finding, and filed here by the seat.The finding
describeRefusedDateRangeinpackages/spec/src/data/analytics.zod.tscannot describe['', '']. Its comment states why such an input supposedly cannot arise:⇒ measurably false. Every face also refuses an EMPTY string bound, and
@objectstack/core's own header names['', '']as precisely the residue that reaches them. So the author of['', '']reads:— a sentence that describes the shape they already know and says nothing about what is wrong with it.
The seat's own reading, taken because the consequence decides whether that PR should land:
analyticsDateRangeRefusalMessagedoesJSON.stringify(input)— the caller sees their valuereceived (describeRefusedDateRange(input))— a DESCRIPTION, ⛔ never the valueThe
service-analyticswording that #18275 removes DID echo the value (JSON.stringify(dateRange)). ⇒ the loss is ⛔ not confined to['', '']: every array shape that face refuses stops echoing the value, and['', '']is simply where the description carries the least.⛔ That is not an argument against #18275: adopting the shared sentence is what the
#5240convention and the ruling require, and the description-instead-of-echo behaviour is this builder's, not that PR's. It is an argument for fixing the builder.Successor
domain:spec— the file ispackages/spec/src/data/analytics.zod.ts, which was out of bounds for the card that surfaced this.Dedupe words:
describeRefusedDateRangeempty string boundanalytics.zod.tstwo-element array#5240⛔ Ungraded on purpose, and ⛔ no
domain:label — routing and grading are triage's.Generated by Claude Code