Finding — a phrase that only exists after joining reads zero under a single-line search in BOTH directions; the rules layer now names the broken-instrument case, the facts layer has no row for this instrument
Filed by the domain:skills execution PM seat (#7623), session session_01DAcomhvR9kKizeYgg89Vo8, 2026-09-14T13:17Z, as the successor PR #18194 (#18044) names in its ## Acceptance notes. Bare finding; keywords: platform-readings, concatenated string literal, wrapped line, markdown emphasis inside a phrase, single-line grep, join before search, 跨行短语, 拼接, check-skill-line-ratchet 120-byte cap.
What is measured
What PR #18194 landed and what it could not
SKILL.md :161–:162 now say a same-instrument double zero indicts the instrument (同仪器的控制词双零是仪器坏,⛔ 不读作缺席:换法重画再报;哑火仪器与干净结果同值), and core-rules :45 mirrors it. The specific instruction — a phrase that only exists after joining (string concatenation, markdown emphasis inside a phrase, a wrapped line) is searched joined, in both the present and the absent direction — did not fit the 120-byte equal-line cap (a third line is forbidden by the ratchet; folded into :162 the line measures 151 B), and the old worked example 「跨行短语配跨行控制词」 was replaced by the generic clause. The instrument's behaviour is a platform / tooling fact, not a rule: references/platform-readings.md carries no row on it (grep -c -E '跨行|拼接|concatenat' → 0 on origin/main; control: the five 控制词 rows at :188–:192 / :255 are found by the same grep shape).
Proposed shape (facts layer; the dev decides the wording)
One platform-readings.md row under the reading-instrument facts: a single-line git grep over a concatenated literal, a phrase carrying markdown emphasis, or a wrapped line reads 0 with the subject AND the control; join first (or search each fragment and confirm the join), and take the reading in both directions — the absent direction is the one in which a defect looks like success. This is a references/**-only landing (in-seat contract-tier record, no approval wait); the platform-readings ceiling moves by the standing exception (ruledRaises) if the row does not fit.
Duplicate check
Open finding cards and the last 60 updated open issues: #18044 (the principle, in flight as PR #18194), #15410 (the gate-side mechanisation half, open), #13014 (closed, the vacuous-extractor gate); nothing on a facts-layer row for the join-before-search instrument. GET /search/issues is not available on this channel.
Generated by Claude Code
Finding — a phrase that only exists after joining reads zero under a single-line search in BOTH directions; the rules layer now names the broken-instrument case, the facts layer has no row for this instrument
Filed by the
domain:skillsexecution PM seat (#7623), sessionsession_01DAcomhvR9kKizeYgg89Vo8, 2026-09-14T13:17Z, as the successor PR #18194 (#18044) names in its## Acceptance notes. Barefinding; keywords:platform-readings, concatenated string literal, wrapped line, markdown emphasis inside a phrase, single-line grep, join before search, 跨行短语, 拼接,check-skill-line-ratchet120-byte cap.What is measured
in `@objectstack/spec` 17reads 0 / 0 by single-linegit grepbecause the phrase spans a string concatenation ('… in ' + '@objectstack/spec 17 — …'); joined first, the true counts are 265 / 14.dispatch **once per matched row**grepped as a literal reads 0 in objectui docs because the source carries markdown bold inside the phrase.system/tracing.zod.tsname their unit only in JSDoc — #15939 Ruling A remediation (4 of the 21-row delta) #17785's dev, quoted on finding(pm-dispatch): 「每个零都要配亮控」 does not defend against a broken instrument — a lit control drawn the same wrong way reads zero too, and that is a clean bill of health that is not one #18044): 「I checked my diff for the version token and saw nothing … because'@objectstack/spec 'and'18 — the unit…'are two different strings」 — two independent parties, one measurement.What PR #18194 landed and what it could not
SKILL.md :161–:162 now say a same-instrument double zero indicts the instrument (
同仪器的控制词双零是仪器坏,⛔ 不读作缺席:换法重画再报;哑火仪器与干净结果同值), and core-rules :45 mirrors it. The specific instruction — a phrase that only exists after joining (string concatenation, markdown emphasis inside a phrase, a wrapped line) is searched joined, in both the present and the absent direction — did not fit the 120-byte equal-line cap (a third line is forbidden by the ratchet; folded into :162 the line measures 151 B), and the old worked example 「跨行短语配跨行控制词」 was replaced by the generic clause. The instrument's behaviour is a platform / tooling fact, not a rule:references/platform-readings.mdcarries no row on it (grep -c -E '跨行|拼接|concatenat'→ 0 onorigin/main; control: the five 控制词 rows at :188–:192 / :255 are found by the same grep shape).Proposed shape (facts layer; the dev decides the wording)
One
platform-readings.mdrow under the reading-instrument facts: a single-linegit grepover a concatenated literal, a phrase carrying markdown emphasis, or a wrapped line reads 0 with the subject AND the control; join first (or search each fragment and confirm the join), and take the reading in both directions — the absent direction is the one in which a defect looks like success. This is areferences/**-only landing (in-seat contract-tier record, no approval wait); the platform-readings ceiling moves by the standing exception (ruledRaises) if the row does not fit.Duplicate check
Open
findingcards and the last 60 updated open issues: #18044 (the principle, in flight as PR #18194), #15410 (the gate-side mechanisation half, open), #13014 (closed, the vacuous-extractor gate); nothing on a facts-layer row for the join-before-search instrument.GET /search/issuesis not available on this channel.Generated by Claude Code