The defect
DESIGN.md §09 changed direction on 2026-09-09: 1127e52 (PR #40) recorded the maintainer ruling that 各段时长 and 按类型的「超 SLA」 are not in the V1.0 delivery surface, rewrote the 法务工作台 bricks to 审查超 30 天 and 审批吞吐, changed the contract_cycle_time bullet to 各阶段到达数 … 不含任何时长度量, and added that 「§09 原列的「审批瓶颈(各台阶平均停留)」同样不交付」.
Five comments under src/ still describe the §09 that existed before that ruling. They read as "§09 asks for X and we cannot deliver it", when §09 now declines X for the very reasons those comments give. The authority runs backwards: the source file is presented as falling short of the design, while it is in fact what the design settled on.
Sibling of #71 (PR #74), found by that card's mandated sweep of src/ for comments quoting §09 rather than pointing at it. #71 fixed the two locations its scope named; these five were left because the fix is a reframe of a multi-paragraph argument, not the mechanical substitution #71's two were, and the card said two comments.
The five, with what §09 says now
Line numbers on 96e83ad (PR #74's head).
| where |
what the comment says |
§09 on 30fd863 |
src/dashboards/executive.dashboard.ts:4–5 |
header quotes §09's 管理层 list including 审批瓶颈(各台阶平均停留) |
各台阶路由量(四级台阶各一块砖,读 F2 盖的 route_* 标志;是流量,不是停留), plus an explicit 同样不交付 for the old item |
src/dashboards/executive.dashboard.ts:139–141 |
§09's 审批瓶颈 · §09 asks for 各台阶平均停留 |
same as above — §09 asks for the routing volume, which this board already builds |
src/dashboards/legal.dashboard.ts:143 |
§09's 超 SLA tile |
审查超 30 天(固定阈值,写进砖的标题); 按类型的「超 SLA」 is outside V1.0 |
src/dashboards/legal.dashboard.ts:182 |
§09 asks for 平均周转(本月 vs 上月) |
审批吞吐(本月 vs 上月,用平台 compareTo) |
src/datasets/cycle-time.dataset.ts:7 |
⚠️ §09 asks for 各段时长 (per-stage DURATIONS) |
各阶段到达数 …;不含任何时长度量 |
The executive.dashboard.ts header is the worst of the five in the same way #71's header was: it advertises a brick the file below it does not build. The board ships route_legal_head · route_finance · route_executive · route_gm, which is §09's current text, not the dwell the header promises.
⛔ What must NOT happen to these comments
Their substance is correct and load-bearing — the measured reasons a duration cannot be computed (a Field.datetime stored as ISO text, AVG() returning an average year, no SQL and no expressions in the semantic layer per ADR-0021, sys_approval_request holding zero rows on a stock demo). §09 now cites those same reasons. ⛔ Do not delete the measurements. What has to change is only the framing that attributes the demand to §09.
Suggested shape
Point at §09 and state the agreement, rather than restating what §09 asks: "§09 places 各段时长 outside the V1.0 surface (维护者裁定 2026-09-09, upstream objectstack-ai/objectstack#16737); this is the measurement behind that ruling." The executive.dashboard.ts header takes #71's remedy — drop the copied list, keep a pointer.
Constraints
Acceptance
- All four gates 0 (
validate · lint · typecheck · lint:i18n-gate), exit codes captured before any pipe. These files are inside the gates' surface — src/**/* is in tsconfig's include and in the metadata graph — so no "no gate reads this" framing applies.
- Verify the edits landed by before/after counts of the old and new spellings, never by an editor's exit code.
- No browser run owed if the diff stays comment-only.
Related
#71 / PR #74 (the two comments already fixed, and the sweep that found these) · PR #40 (1127e52, the ruling) · PR #70 (30fd863, §09's final state) · #31 (the still-open decision card that ruling answers — noted, not acted on here) · #26 · #54 (why a stale annotation is filed rather than tolerated)
Generated by Claude Code
The defect
DESIGN.md§09 changed direction on 2026-09-09:1127e52(PR #40) recorded the maintainer ruling that 各段时长 and 按类型的「超 SLA」 are not in the V1.0 delivery surface, rewrote the 法务工作台 bricks to 审查超 30 天 and 审批吞吐, changed thecontract_cycle_timebullet to 各阶段到达数 … 不含任何时长度量, and added that 「§09 原列的「审批瓶颈(各台阶平均停留)」同样不交付」.Five comments under
src/still describe the §09 that existed before that ruling. They read as "§09 asks for X and we cannot deliver it", when §09 now declines X for the very reasons those comments give. The authority runs backwards: the source file is presented as falling short of the design, while it is in fact what the design settled on.Sibling of #71 (PR #74), found by that card's mandated sweep of
src/for comments quoting §09 rather than pointing at it. #71 fixed the two locations its scope named; these five were left because the fix is a reframe of a multi-paragraph argument, not the mechanical substitution #71's two were, and the card said two comments.The five, with what §09 says now
Line numbers on
96e83ad(PR #74's head).30fd863src/dashboards/executive.dashboard.ts:4–5审批瓶颈(各台阶平均停留)route_*标志;是流量,不是停留), plus an explicit 同样不交付 for the old itemsrc/dashboards/executive.dashboard.ts:139–141§09's 审批瓶颈·§09 asks for 各台阶平均停留src/dashboards/legal.dashboard.ts:143§09's 超 SLA tilesrc/dashboards/legal.dashboard.ts:182§09 asks for 平均周转(本月 vs 上月)compareTo)src/datasets/cycle-time.dataset.ts:7⚠️ §09 asks for 各段时长 (per-stage DURATIONS)The
executive.dashboard.tsheader is the worst of the five in the same way #71's header was: it advertises a brick the file below it does not build. The board shipsroute_legal_head·route_finance·route_executive·route_gm, which is §09's current text, not the dwell the header promises.⛔ What must NOT happen to these comments
Their substance is correct and load-bearing — the measured reasons a duration cannot be computed (a
Field.datetimestored as ISO text,AVG()returning an average year, no SQL and no expressions in the semantic layer per ADR-0021,sys_approval_requestholding zero rows on a stock demo). §09 now cites those same reasons. ⛔ Do not delete the measurements. What has to change is only the framing that attributes the demand to §09.Suggested shape
Point at §09 and state the agreement, rather than restating what §09 asks: "§09 places 各段时长 outside the V1.0 surface (维护者裁定 2026-09-09, upstream
objectstack-ai/objectstack#16737); this is the measurement behind that ruling." Theexecutive.dashboard.tsheader takes #71's remedy — drop the copied list, keep a pointer.Constraints
type,filter,options, dataset field, dimension or widget id.DESIGN.md; §09 is correct as of PR docs(design): §09 still specifies 各阶段合同数漏斗 — the app stopped shipping a funnel in #48 and narrowed what it plots in #59 #70.objectstack-ai/objectstack#17344).Acceptance
validate·lint·typecheck·lint:i18n-gate), exit codes captured before any pipe. These files are inside the gates' surface —src/**/*is intsconfig's include and in the metadata graph — so no "no gate reads this" framing applies.Related
#71 / PR #74 (the two comments already fixed, and the sweep that found these) · PR #40 (
1127e52, the ruling) · PR #70 (30fd863, §09's final state) · #31 (the still-open decision card that ruling answers — noted, not acted on here) · #26 · #54 (why a stale annotation is filed rather than tolerated)Generated by Claude Code