You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository has spent several cards fixing documents that described code wrongly. These two are the mirror: code quoting a document, where the document has since moved and the quote has not.
Neither is a runtime defect. Both are comments, invisible to every gate and to the product. They are filed because this repo's standing position — src/data/keys.ts, #26, #46, #52, #54 — is that a comment carrying more authority than its evidence is worse than no comment, and both of these carry the authority of a §-reference.
1. src/dashboards/legal.dashboard.ts:3–5 — stale three ways
The file header quotes §09's 法务工作台 list to identify which dashboard it implements:
⚠️The dev on #63 reported two of these; the third (超 SLA) is the PM seat's own reading. The quote is a snapshot of a §09 that has not existed since PR #40 landed — and it is the first thing a reader of that file sees.
Worse than merely stale: it names 平均周转 and 超 SLA, which §09 now explicitly declines to deliver (maintainer ruling 2026-09-09, tracked upstream at objectstack-ai/objectstack#16737). A reader who trusts the header concludes the dashboard is supposed to ship two metrics the design authority has ruled out.
2. src/datasets/cycle-time.dataset.ts:42–45
* Those five are deliberately NOT read as a monotone funnel: `signed_at` (72)
* exceeds `submitted_at` (60) because the demo's in-force book was backfilled
* with signature dates and no intake. The status funnel on the legal workbench
* is the honest funnel; these are per-stage coverage counts.
The contrast this paragraph is built on — that is a funnel, this is not — stopped holding at PR #57 (#48), which made the status widget a horizontal-bar precisely because the book does not decline monotonically. So the sentence now points at a funnel that does not exist, to explain why these numbers are not one.
The underlying observation is still correct and worth keeping: signed_at (72) exceeding submitted_at (60) is real, and the reason (backfilled in-force book, no intake) is right. Only the comparison needs rewriting — ⛔ do not delete the paragraph.
What to change
Two comments. ⛔ No behaviour, no metadata, no DESIGN.md.
legal.dashboard.ts's header — bring the quoted list into line with §09 as merged, or stop quoting the list. Prefer the second. A quoted list is a copy that has now drifted three times in two days; a pointer (「DESIGN.md §09 的第一个看板」) cannot drift at all. Say which you chose and why.
cycle-time.dataset.ts — rewrite the comparison so it no longer asserts a funnel exists on the legal workbench. Keep the measurement and its explanation.
Constraints
⛔ Comments only. No type, no filter, no options, no dataset field, no dimension. If you find yourself editing anything that lowers into metadata, stop.
Verify the edits landed by before/after counts of the old and new spellings — never by an editor's exit code.
Re-read §09 on the tree you branch from and quote what you actually find; ⛔ do not copy the table above into the code.
Grep src/ for any other comment quoting a DESIGN.md § list rather than pointing at it, and report what you find, including "nothing else". This card exists because two such quotes drifted at once.
No browser run owed: the diff changes no runnable surface.
Provenance
Found by the dev on #63 while grepping for other descriptions of the stage widget, correctly left untouched (the card and its dispatch both said ⛔ do not touch the app) and named rather than silently dropped, with a suggestion of one card covering both. The third staleness in item 1, and both readings, confirmed by the PM seat on 9b7538a.
Related
#63 / PR #70 (§09's own fix, where this was found) · #48 / PR #57 · #59 / PR #62 (the widget) · PR #40 (296fab8, which changed the other two items) · #26 · #54 (why a stale annotation is filed rather than tolerated)
The defect
This repository has spent several cards fixing documents that described code wrongly. These two are the mirror: code quoting a document, where the document has since moved and the quote has not.
Neither is a runtime defect. Both are comments, invisible to every gate and to the product. They are filed because this repo's standing position —
src/data/keys.ts, #26, #46, #52, #54 — is that a comment carrying more authority than its evidence is worse than no comment, and both of these carry the authority of a §-reference.1.
src/dashboards/legal.dashboard.ts:3–5— stale three waysThe file header quotes §09's 法务工作台 list to identify which dashboard it implements:
Every one of the three italicised items has since changed in §09:
超 SLA296fab8)平均周转(本月 vs 上月)compareTo)296fab8)各阶段合同数漏斗超 SLA) is the PM seat's own reading. The quote is a snapshot of a §09 that has not existed since PR #40 landed — and it is the first thing a reader of that file sees.Worse than merely stale: it names
平均周转and超 SLA, which §09 now explicitly declines to deliver (maintainer ruling 2026-09-09, tracked upstream atobjectstack-ai/objectstack#16737). A reader who trusts the header concludes the dashboard is supposed to ship two metrics the design authority has ruled out.2.
src/datasets/cycle-time.dataset.ts:42–45The contrast this paragraph is built on — that is a funnel, this is not — stopped holding at PR #57 (#48), which made the status widget a
horizontal-barprecisely because the book does not decline monotonically. So the sentence now points at a funnel that does not exist, to explain why these numbers are not one.The underlying observation is still correct and worth keeping:
signed_at(72) exceedingsubmitted_at(60) is real, and the reason (backfilled in-force book, no intake) is right. Only the comparison needs rewriting — ⛔ do not delete the paragraph.What to change
Two comments. ⛔ No behaviour, no metadata, no
DESIGN.md.legal.dashboard.ts's header — bring the quoted list into line with §09 as merged, or stop quoting the list. Prefer the second. A quoted list is a copy that has now drifted three times in two days; a pointer (「DESIGN.md §09 的第一个看板」) cannot drift at all. Say which you chose and why.cycle-time.dataset.ts— rewrite the comparison so it no longer asserts a funnel exists on the legal workbench. Keep the measurement and its explanation.Constraints
type, nofilter, nooptions, no dataset field, no dimension. If you find yourself editing anything that lowers into metadata, stop.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; this card brings the code's quotes into line with it, never the reverse.options.stageOrderwas removed deliberately (objectstack-ai/objectstack#17344).stage_funnel— it is the key both translation bundles address it by, it is not user-visible, andtypestates the mark. Settled in PR Draw 「Pipeline by Stage」 as a ranked bar, not a funnel #57 and reaffirmed in Plot 「Pipeline by Stage」 over the six in-flight stages, not seven #62; ⛔ do not reopen it.Acceptance
DESIGN.mdcards, these files ARE in the gates' surface (src/**/*is intsconfig's include and the metadata graph) — so the gates genuinely apply here, andpnpm typecheckreally does read both files. Say that accurately rather than copying the "no gate reads this" framing fromDESIGN.md§09 still specifies 各阶段合同数**漏斗** — the app stopped shipping a funnel in #48 and narrowed what it plots in #59 #63/docs: the position census disagrees with itself in three places — README says seven over a table of six, DESIGN.md §11 says both 7 and 8 #58/§06 F14 says an archived contract stays editable 「除 notes 外」, butclm_contracthas nonotesfield — §03 gives itsummary#44, which does not transfer.src/for any other comment quoting aDESIGN.md§ list rather than pointing at it, and report what you find, including "nothing else". This card exists because two such quotes drifted at once.Provenance
Found by the dev on #63 while grepping for other descriptions of the stage widget, correctly left untouched (the card and its dispatch both said ⛔ do not touch the app) and named rather than silently dropped, with a suggestion of one card covering both. The third staleness in item 1, and both readings, confirmed by the PM seat on
9b7538a.Related
#63 / PR #70 (§09's own fix, where this was found) · #48 / PR #57 · #59 / PR #62 (the widget) · PR #40 (
296fab8, which changed the other two items) · #26 · #54 (why a stale annotation is filed rather than tolerated)