From 001bf942a24548590343f7b6cd4fb109eca3804f Mon Sep 17 00:00:00 2001 From: Vadim Zolotokrylin <1125014+zolotokrylin@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:43:36 +0800 Subject: [PATCH 1/2] docs(rules): find every user type and its actions in a Spec --- docs/rules/DEV-125.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/rules/DEV-125.md b/docs/rules/DEV-125.md index 7da6686..cf4608f 100644 --- a/docs/rules/DEV-125.md +++ b/docs/rules/DEV-125.md @@ -23,6 +23,15 @@ about what users can do, not how the system works. [DEV-180](./DEV-180.md). 1. Start with `goal:` frontmatter linking the Goal, then an H1 feature name and a `## Overview` of what the Goal enables for users. +1. List every user type in `## User Types`, including operator and administrator + types that are not the client's end-users. If a type's account is provisioned + outside the product (database seed, manual setup), say so, and say whether + the product can create more of them. +1. Treat the user account as a key concept, not as a separate administration + area: creating, listing, granting access to, and removing accounts are + actions on it like any other. +1. Name the permitted user type in every action. An action with an implicit + actor cannot be reviewed against what the product actually allows. 1. Add author-defined `##` sections that describe observable user behavior, not internal mechanics. 1. Include a `## Design` section using the markup in [DEV-350](./DEV-350.md) @@ -42,12 +51,17 @@ goal: (three items; max 160 chars each) ## User Types -(list of end-users' types and their short definition; each item max 150 chars) +(list of every user type and its short definition, operators and +administrators included; each item max 150 chars. Note any type whose +account is provisioned outside the product, and whether more can be +created in the product) ## Key Concepts (subsections describing key concepts end-user needs to know about; -the relevant methods (actions) specific users can use) +the relevant methods (actions) specific users can use. Include the user +account itself as a concept, with its create, list, access, and remove +actions. Name the permitted user type in every action) ## [Section] @@ -58,5 +72,9 @@ Describe what users can do, not how the system works internally. - [ ] The Spec is a `docs/specs/` file with `goal:` frontmatter, an H1 name, and a `## Overview` +- [ ] `## User Types` covers every type, operators and administrators included, + and states how any externally provisioned account comes into existence +- [ ] The user account appears in `## Key Concepts` with its own actions +- [ ] Every action names the user types permitted to perform it - [ ] Sections describe user-observable behavior, not internal mechanics - [ ] A Goal with a design component includes a `## Design` section per DEV-350 From 703f125c8d11754ca01c7176241417d838b8df0b Mon Sep 17 00:00:00 2001 From: Vadim Zolotokrylin <1125014+zolotokrylin@users.noreply.github.com> Date: Mon, 10 Aug 2026 16:06:56 +0800 Subject: [PATCH 2/2] docs(rules): read the Key Concepts guidance as covering every user type --- docs/rules/DEV-125.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/rules/DEV-125.md b/docs/rules/DEV-125.md index cf4608f..317dfcc 100644 --- a/docs/rules/DEV-125.md +++ b/docs/rules/DEV-125.md @@ -58,10 +58,10 @@ created in the product) ## Key Concepts -(subsections describing key concepts end-user needs to know about; -the relevant methods (actions) specific users can use. Include the user -account itself as a concept, with its create, list, access, and remove -actions. Name the permitted user type in every action) +(subsections describing key concepts users need to know about; the +relevant methods (actions) each permitted user type can use. Include the +user account itself as a concept, with its create, list, access, and +remove actions. Name the permitted user types in every action) ## [Section] @@ -73,7 +73,8 @@ Describe what users can do, not how the system works internally. - [ ] The Spec is a `docs/specs/` file with `goal:` frontmatter, an H1 name, and a `## Overview` - [ ] `## User Types` covers every type, operators and administrators included, - and states how any externally provisioned account comes into existence + states how any externally provisioned account comes into existence, and + says whether the product can create more of that type - [ ] The user account appears in `## Key Concepts` with its own actions - [ ] Every action names the user types permitted to perform it - [ ] Sections describe user-observable behavior, not internal mechanics