Skip to content

DESIGN.md §09 still specifies 各阶段合同数**漏斗** — the app stopped shipping a funnel in #48 and narrowed what it plots in #59 #63

Description

@zhuangjianguo

The defect

DESIGN.md §09 specifies the Legal Workbench widget as 各阶段合同数漏斗 — a funnel. Two merged cards have since moved the app away from that, in two independent ways:

Change Merged What §09 now misdescribes
#48 / PR #57 (2b74c4f) the mark stopped being a funnel — type: 'horizontal-bar', ordered by the measure the word 漏斗
#59 / PR #62 (b667fda) the filter dropped active; it plots the six in-flight stages, not seven what the widget covers

So the design authority and the tree disagree twice over, and §09 is the section a reader consults to learn what the analytics layer is supposed to be.

The rulings behind both changes are sound and are not in question here. A funnel encodes monotonic decline over a distribution that does not decline (draft 10 · submitted 6 · in_review 12 · in_approval 8 · approved 4 · signing 6 · active 60), and one stage of 60 was setting the axis for six stages of 4–12. This card only brings the document up to what shipped.

What to change

DESIGN.md §09's entry for this widget:

  1. Stop calling it a funnel. It is a ranked horizontal bar ordered by the measure.
  2. Say what it plots — the six in-flight stages, not every lifecycle stage. The criterion the widget's own comment now states is whether legal still has work to do on the stage, which is why active and the four terminal outcomes are all out.
  3. Do not re-promise an authored stage order. options.stageOrder was removed deliberately: it is honoured only by the funnel branch of console 17.4.0 and is silently dropped in every non-en locale (Dashboard widgets: options.stageOrder is declared for every chart type, documented for a chart type that does not exist, and silently dropped in every non-en locale objectstack#17344). §09 must not describe a lifecycle ordering this platform version cannot deliver — that is the same defect class as the 「各段时长」 promise PR Record four maintainer rulings in DESIGN.md §03, §06 and §09 #40 is removing from the same section.

Read the merged widget before you write: src/dashboards/legal.dashboard.ts, the stage_funnel entry. Its comment block carries the reasoning and the measurements, and the document should agree with it rather than paraphrase this card.

Constraints

Acceptance

  • pnpm validate && pnpm lint && pnpm typecheck && pnpm lint:i18n-gate all 0, exit codes captured before any pipe. None of them reads DESIGN.md — say that plainly rather than implying the gates verified the change.
  • Every claim in the new text traceable to src/dashboards/legal.dashboard.ts as merged, in a claim → reading table.
  • No browser run owed: the diff changes no runnable surface.
  • Grep §09 and §02 for any other description of this widget before declaring done. PR Record four maintainer rulings in DESIGN.md §03, §06 and §09 #40 already found that §02's Insights row was pointing at a §09 promise that had changed; the same pointer pattern could exist for this one.

Provenance

Found by the dev on #59 while implementing PR #62, reported as an out-of-scope finding and correctly neither edited nor filed there — §09 is the maintainer's wording, DESIGN.md was held, and no PR trips over it. Confirmed by the PM seat against both merge commits.

Related

#48 / PR #57 (the mark) · #59 / PR #62 (the filter) · PR #40 (holds DESIGN.md; rewrites §09's neighbouring paragraph) · #44 · #58 (the other two queued DESIGN.md items) · objectstack-ai/objectstack#17344 (why no stage order is promised)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions