Skip to content

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

Description

@zhuangjianguo

The defect

src/sharing/positions.ts defines seven positions and src/profiles/ defines five permission sets. Three passages state those counts and only one of them is right.

Reading — the ground truth

src/sharing/positions.ts, CLM_POSITION:

# name
1 clm_legal_counsel
2 clm_legal_head
3 clm_finance_controller
4 clm_executive
5 clm_general_manager
6 clm_records_manager
7 clm_admin

src/profiles/ = 5 permission sets: clm_admin · clm_finance · clm_legal · clm_records · clm_requester.

Defect 1 — README.md, the operator setup section

The instruction reads:

create accounts in Setup → Users and assign the seven positions:

and is followed by a table of seven rows — but the seventh row is:

| (business requesters) | 3 | The default clm_requester set — launches contracts, sees their own |

That is a permission set, not a position. So the table lists six real positions and one set, under a sentence that says "seven positions". The seventh real position, clm_admin, is absent from the table entirely.

The count is arithmetically reconcilable — 6 positions + 1 set row = 7 rows — which is exactly why it survived: it reads correct. It is not correct, and it costs the reader in two ways:

  • an operator following it literally never assigns clm_admin and never learns the position exists;
  • the row that is not a position sits in a table whose header column is Position, so (business requesters) reads as a position name to anyone scanning the table for what to type into sys_user_position.position.

The paragraph two screens below — "The other five positions are named however you like" — is consistent with the table's six, not with the tree's seven.

Defect 2 — DESIGN.md §11, layout block vs M1 row

The same section states the census twice and disagrees with itself:

where text verdict
§11 layout block src/profiles/ src/sharing/ 5 permission set · 7 position · 6 sharing rule · FLS right on both counts
§11 M1 milestone row 11 对象 · 状态机守卫 · 8 position / 6 set · 共享与 FLS · 配置域种子 wrong on both — the tree has 7 positions and 5 sets

Same section, same document, two numbers each. The M1 row is the one that is wrong.

What to change

Three edits, all prose. No metadata, no code, no behaviour.

  1. README.md — make the sentence and the table agree with the tree. Either say what the table actually contains (six positions plus the default requester set) or add the seventh position and keep the sentence; the constraint is that the Position column must contain only position names, so the (business requesters) row needs to be visibly not-a-position — a separate row group, a separate small table, or moved into the naming paragraph below it. clm_admin must appear somewhere the operator can find it, with what it actually grants (src/sharing/positions.ts: "Maintains the configuration objects and holds full reach over every CLM object"). Whether an operator setting up the demo should assign clm_admin at all is a judgement call — the dev admin already holds no clm_* set, so a real administrator account is arguably exactly what the section is missing — state your reading and say why.
  2. README.md — the "other five positions" sentence follows from whatever count edit 1 lands on; keep it consistent.
  3. DESIGN.md §11 M1 row8 position / 6 set → the real counts. The layout block above it is already right and must not be touched.

Constraints

Acceptance

  • pnpm validate && pnpm lint && pnpm typecheck all 0, exit codes captured before any pipe. None of them reads either file, so none can move — say so rather than implying the gates verified anything.
  • Every count in the PR body backed by a reading from this tree, in a claim → reading table.
  • README.md's Position column contains only strings that are real values of sys_user_position.position.
  • DESIGN.md §11 states one census, and it matches src/sharing/positions.ts and src/profiles/.
  • Every occurrence found, not just the three named here: grep both files for position and permission-set counts before declaring done. This card exists because a count drifted in three places at once.

Provenance

Found by the dev on #46 while verifying PR #56, reported as an out-of-scope finding and correctly left unfixed there (README.md's table is off that card's edit surface and DESIGN.md is off its file surface). The clm_admin and src/profiles/ readings above are the PM seat's own, taken on d34b225; DESIGN.md's blob on main is df0269af, so the §11 quotes are current.

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