@shanyucoder/flowgrid 0.1.10 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/adapters/nextjs/codegen/runners/lib/resolve-hub-id.mjs +7 -4
  2. package/adapters/nextjs/unitgen/runners/README.md +4 -4
  3. package/adapters/nextjs/unitgen/runners/generate.mjs +1 -1
  4. package/adapters/nuxt4/codegen/runners/lib/resolve-hub-id.mjs +7 -4
  5. package/adapters/nuxt4/unitgen/runners/README.md +4 -4
  6. package/adapters/nuxt4/unitgen/runners/generate.mjs +1 -1
  7. package/adapters/shared/common-gen.mjs +1 -1
  8. package/adapters/shared/resolve-hub-id.mjs +7 -4
  9. package/dist/docs/scan/ids.js +3 -2
  10. package/dist/docs/scan/ids.js.map +1 -1
  11. package/dist/graph/mcp/tools.js +1 -1
  12. package/dist/graph/mcp/tools.js.map +1 -1
  13. package/engines/cases/render-cases.mjs +1 -1
  14. package/engines/spec/lib/audit-legacy-gaps.mjs +10 -0
  15. package/engines/testcase/_staging-from-portal/runners/README.md +3 -3
  16. package/engines/testcase/_staging-from-portal/runners/generate.mjs +2 -2
  17. package/engines/testcase/_staging-from-portal/runners/lib/read-testcase.mjs +1 -1
  18. package/engines/testcase/runners/README.md +3 -3
  19. package/engines/testcase/runners/generate.mjs +2 -2
  20. package/engines/testcase/runners/lib/read-testcase.mjs +1 -1
  21. package/engines/testcase/runners/lib/resolve-hub-id.mjs +3 -3
  22. package/harness/be/skills/audit-api/SKILL.md +1 -1
  23. package/harness/be/skills/grill-api-unit/SKILL.md +1 -1
  24. package/harness/docs/extracts/architecture-core.md +2 -0
  25. package/harness/docs/extracts/extract-registry.docs.json +7 -3
  26. package/harness/docs/extracts/product-id-convention.md +58 -0
  27. package/harness/docs/extracts/spec-requirement.md +1 -1
  28. package/harness/docs/extracts/tpl-adoption-inventory.md +32 -0
  29. package/harness/docs/extracts/tpl-module.md +1 -1
  30. package/harness/docs/rules/agent-compliance.mdc +1 -1
  31. package/harness/docs/skills/adopt/SKILL.md +42 -10
  32. package/harness/docs/skills/api-update/SKILL.md +1 -1
  33. package/harness/docs/skills/module/SKILL.md +1 -1
  34. package/harness/docs/skills/spec/SKILL.md +2 -1
  35. package/harness/docs/skills/surfaces/SKILL.md +1 -0
  36. package/harness/fe/skills/grill-prototype/SKILL.md +1 -1
  37. package/harness/fe/skills/prototype/SKILL.md +6 -6
  38. package/harness/fe/skills/unit/SKILL.md +4 -4
  39. package/harness/shared/SSOT_AGENT_PROTOCOL.md +1 -1
  40. package/harness/tests/skills/grill-testcase/SKILL.md +1 -1
  41. package/harness/tests/skills/scenario/SKILL.md +2 -2
  42. package/harness/tests/skills/testcase/SKILL.md +1 -1
  43. package/harness/tests/templates/SC.example.md +11 -11
  44. package/harness/tests/templates/TC.example.yaml +3 -3
  45. package/package.json +1 -1
  46. package/templates/project-skeleton/architecture/03-user-flows/FLOW-login.md +10 -10
  47. package/templates/project-skeleton/architecture/04-solution-strategy/index.md +1 -1
  48. package/templates/project-skeleton/architecture/08-cross-cutting/security.md +1 -1
  49. package/templates/project-skeleton/architecture/12-glossary/index.md +3 -2
  50. package/templates/project-skeleton/architecture/model/workspace.dsl +7 -7
  51. package/templates/project-skeleton/surfaces/_module-index.template.md +2 -2
  52. package/templates/project-skeleton/surfaces/_surface-index.template.md +1 -0
  53. package/templates/shared/bundle-authoring.md +1 -1
  54. package/templates/tests-skeleton/cases/README.md +1 -1
@@ -203,7 +203,10 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
203
203
  }
204
204
 
205
205
  // Screen / API / UI code folder on docs
206
- if (/^(W|API|UI)-/i.test(id) || /^[a-z]+-[a-z]+-\d{3}(-\d{2,3})+$/i.test(id)) {
206
+ if (
207
+ /^(W|API|UI)-/i.test(id) ||
208
+ /^cmp-[a-z0-9]+(?:-[a-z0-9]+)+-\d{2}(?:-\d{2})+$/i.test(id)
209
+ ) {
207
210
  if (mode === 'testcase') {
208
211
  const screenRel = testsIdx.codeIds?.[id] || `cases/${id}`
209
212
  const screenDir = absUnder(testsRoot, screenRel)
@@ -229,8 +232,8 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
229
232
  return { kind: 'code', id, paths: [spec], notes, codeDir }
230
233
  }
231
234
 
232
- // Cluster, Module, or Submodule (e.g. CMP-ADM, CMP-ADM-001, CMP-ADM-001-A)
233
- if (/^[A-Z]+-[A-Z]+(?:-\d{3})?(?:-[A-Z0-9]+)?$/i.test(id)) {
235
+ // CMP module / prefix (e.g. CMP-ADM-AUTH-01, CMP-ADM-AUTH)
236
+ if (/^CMP-[A-Z0-9]+(?:-[A-Z0-9]+)+$/i.test(id)) {
234
237
  const matchedModules = (docsIdx.modules || []).filter(
235
238
  (c) => c.id === id || c.id.startsWith(`${id}-`) || c.id.startsWith(id) || (c.slug && id.toLowerCase().includes(c.slug)),
236
239
  )
@@ -283,6 +286,6 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
283
286
  }
284
287
 
285
288
  throw new Error(
286
- `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-001-01-01), or module ID (CMP-ADM-001), or suite id (smoke, regression-auth).`,
289
+ `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-auth-01-01-01), or module ID (CMP-ADM-AUTH-01), or suite id (smoke, regression-auth).`,
287
290
  )
288
291
  }
@@ -3,10 +3,10 @@
3
3
  Reads hub Code `ir/design.yaml` + `generated/codegen.manifest.json` (after `flowgrid gen`) → writes `tests/unit/`.
4
4
 
5
5
  ```bash
6
- flowgrid unit-gen:dry --id W-AD-AUTH-001
7
- flowgrid unit-gen --id W-AD-AUTH-001
8
- flowgrid unit-gen --id W-AD-AUTH-001 --force
9
- flowgrid unit-gen --spec /path/to/docs-hub/surfaces/.../CMP-01-auth/.../ir/design.yaml
6
+ flowgrid unit-gen:dry --id W-ADM-AUTH-01
7
+ flowgrid unit-gen --id W-ADM-AUTH-01
8
+ flowgrid unit-gen --id W-ADM-AUTH-01 --force
9
+ flowgrid unit-gen --spec /path/to/docs-hub/surfaces/.../CMP-ADM-AUTH-01/.../ir/design.yaml
10
10
  ```
11
11
 
12
12
  Form/create pages (`profile: create|auth|change-password|public`) generate tests against `src/services/{entity}Form.service.ts` (`create{Entity}FormService`), not the list service. List-column model tests are not emitted for those profiles.
@@ -34,7 +34,7 @@ function parseArgs(argv) {
34
34
 
35
35
  if (!options.spec && !options.id) {
36
36
  throw new Error(
37
- 'Usage: flowgrid unit-gen --id W-AD-AUTH-001 [--dry-run] [--force] [--phase prototype|wire]\n' +
37
+ 'Usage: flowgrid unit-gen --id W-ADM-AUTH-01 [--dry-run] [--force] [--phase prototype|wire]\n' +
38
38
  ' flowgrid unit-gen --spec <path-to-ir/design.yaml> …',
39
39
  )
40
40
  }
@@ -203,7 +203,10 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
203
203
  }
204
204
 
205
205
  // Screen / API / UI code folder on docs
206
- if (/^(W|API|UI)-/i.test(id) || /^[a-z]+-[a-z]+-\d{3}(-\d{2,3})+$/i.test(id)) {
206
+ if (
207
+ /^(W|API|UI)-/i.test(id) ||
208
+ /^cmp-[a-z0-9]+(?:-[a-z0-9]+)+-\d{2}(?:-\d{2})+$/i.test(id)
209
+ ) {
207
210
  if (mode === 'testcase') {
208
211
  const screenRel = testsIdx.codeIds?.[id] || `cases/${id}`
209
212
  const screenDir = absUnder(testsRoot, screenRel)
@@ -229,8 +232,8 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
229
232
  return { kind: 'code', id, paths: [spec], notes, codeDir }
230
233
  }
231
234
 
232
- // Cluster, Module, or Submodule (e.g. CMP-ADM, CMP-ADM-001, CMP-ADM-001-A)
233
- if (/^[A-Z]+-[A-Z]+(?:-\d{3})?(?:-[A-Z0-9]+)?$/i.test(id)) {
235
+ // CMP module / prefix (e.g. CMP-ADM-AUTH-01, CMP-ADM-AUTH)
236
+ if (/^CMP-[A-Z0-9]+(?:-[A-Z0-9]+)+$/i.test(id)) {
234
237
  const matchedModules = (docsIdx.modules || []).filter(
235
238
  (c) => c.id === id || c.id.startsWith(`${id}-`) || c.id.startsWith(id) || (c.slug && id.toLowerCase().includes(c.slug)),
236
239
  )
@@ -283,6 +286,6 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
283
286
  }
284
287
 
285
288
  throw new Error(
286
- `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-001-01-01), or module ID (CMP-ADM-001), or suite id (smoke, regression-auth).`,
289
+ `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-auth-01-01-01), or module ID (CMP-ADM-AUTH-01), or suite id (smoke, regression-auth).`,
287
290
  )
288
291
  }
@@ -3,10 +3,10 @@
3
3
  Reads hub Code `ir/design.yaml` + `generated/codegen.manifest.json` (after `flowgrid gen`) → writes `tests/unit/`.
4
4
 
5
5
  ```bash
6
- flowgrid unit-gen:dry --id W-AD-AUTH-001
7
- flowgrid unit-gen --id W-AD-AUTH-001
8
- flowgrid unit-gen --id W-AD-AUTH-001 --force
9
- flowgrid unit-gen --spec /path/to/docs-hub/Surfaces/.../Modules/CMP-01-auth/Functions/W-AD-AUTH-001/ir/design.yaml
6
+ flowgrid unit-gen:dry --id W-ADM-AUTH-01
7
+ flowgrid unit-gen --id W-ADM-AUTH-01
8
+ flowgrid unit-gen --id W-ADM-AUTH-01 --force
9
+ flowgrid unit-gen --spec /path/to/docs-hub/Surfaces/.../Modules/CMP-ADM-AUTH-01/Functions/W-ADM-AUTH-01/ir/design.yaml
10
10
  ```
11
11
 
12
12
  Form/create pages (`profile: create|auth|change-password|public`) generate tests against `services/{entity}Form.service.ts`. List-column model tests are not emitted for those profiles.
@@ -34,7 +34,7 @@ function parseArgs(argv) {
34
34
 
35
35
  if (!options.spec && !options.id) {
36
36
  throw new Error(
37
- 'Usage: flowgrid unit-gen --id W-AD-AUTH-001 [--dry-run] [--force] [--phase prototype|wire]\n' +
37
+ 'Usage: flowgrid unit-gen --id W-ADM-AUTH-01 [--dry-run] [--force] [--phase prototype|wire]\n' +
38
38
  ' flowgrid unit-gen --spec <path-to-ir/design.yaml> …',
39
39
  )
40
40
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Inventory + stub codegen for docs common UI (surface or module).
3
3
  *
4
- * node adapters/shared/common-gen.mjs [--surface=admin-web] [--module=CMP-ADM-009]
4
+ * node adapters/shared/common-gen.mjs [--surface=admin-web] [--module=CMP-ADM-DEMO-01]
5
5
  * [--id=common-status-chip] [--dry-run] [--force] [--json] [--all-surfaces] [--all-modules]
6
6
  */
7
7
  import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from 'node:fs'
@@ -270,7 +270,10 @@ export function resolveHubId(repoRoot, id, mode = 'api-codegen') {
270
270
  }
271
271
 
272
272
  // Screen / API / UI code folder on docs
273
- if (/^(W|API|UI)-/i.test(id) || /^[a-z]+-[a-z]+-\d{3}(-\d{2,3})+$/i.test(id)) {
273
+ if (
274
+ /^(W|API|UI)-/i.test(id) ||
275
+ /^cmp-[a-z0-9]+(?:-[a-z0-9]+)+-\d{2}(?:-\d{2})+$/i.test(id)
276
+ ) {
274
277
  if (mode === 'testcase') {
275
278
  const screenRel = testsIdx.codeIds?.[id] || `cases/${id}`
276
279
  const screenDir = absUnder(testsRoot, screenRel)
@@ -307,8 +310,8 @@ export function resolveHubId(repoRoot, id, mode = 'api-codegen') {
307
310
  return { kind: 'code', id, paths: [spec], notes, codeDir }
308
311
  }
309
312
 
310
- // Cluster, Module, or Submodule (e.g. CMP-ADM, CMP-ADM-001, CMP-ADM-001-A)
311
- if (/^[A-Z]+-[A-Z]+(?:-\d{3})?(?:-[A-Z0-9]+)?$/i.test(id)) {
313
+ // CMP module / prefix (e.g. CMP-ADM-AUTH-01, CMP-ADM-AUTH)
314
+ if (/^CMP-[A-Z0-9]+(?:-[A-Z0-9]+)+$/i.test(id)) {
312
315
  const matchedModules = (docsIdx.modules || []).filter(
313
316
  (c) => c.id === id || c.id.startsWith(`${id}-`) || c.id.startsWith(id) || (c.slug && id.toLowerCase().includes(c.slug)),
314
317
  )
@@ -376,6 +379,6 @@ export function resolveHubId(repoRoot, id, mode = 'api-codegen') {
376
379
  }
377
380
 
378
381
  throw new Error(
379
- `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-001-01-01), or module ID (CMP-ADM-001), or suite id (smoke, regression-auth).`,
382
+ `Unrecognized id "${id}". Use W-|API-|UI-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-auth-01-01-01), or module ID (CMP-ADM-AUTH-01), or suite id (smoke, regression-auth).`,
380
383
  )
381
384
  }
@@ -2,7 +2,8 @@ import fs from 'node:fs';
2
2
  import path from 'node:path';
3
3
  /** Old flat C4 + ADR paths — redirect stubs only (not SSOT). */
4
4
  const REDIRECT_STUB_RE = /(?:^|\/)architecture\/(?:landscape|context|containers|dynamics|deployments)(?:\/|$)|(?:^|\/)product\/shared\/adr(?:\/|$)/;
5
- const ID_RE = /\b((?:CMP|FLOW|DEP|ADR|SC|TC)-[A-Za-z0-9][A-Za-z0-9_-]*|(?:W|API|UI)-[A-Z]{2}-[A-Z0-9]+-\d{3})\b/g;
5
+ /** Product codes: CMP-{SURF}-{DOMAIN}-{NN}; W|API|UI-{SURF}-{DOMAIN}-{NN} — see product-id-convention.md */
6
+ const ID_RE = /\b((?:CMP|FLOW|DEP|ADR|SC|TC)-[A-Za-z0-9][A-Za-z0-9_-]*|(?:W|API|UI)-[A-Z]{2,4}-[A-Z][A-Z0-9]*-\d{2,3})\b/g;
6
7
  /** Scan roots for MD (arc42 × product). */
7
8
  export const SCAN_MD_DIRS = [
8
9
  'architecture',
@@ -111,7 +112,7 @@ export function indexIds(docsRoot) {
111
112
  add(map, short[1], f);
112
113
  }
113
114
  // Code folders: surfaces/.../CMP-*/<slug>/code/{W|API|UI}-*
114
- const codeFolder = f.match(/[\\/]code[\\/]((?:W|API|UI)-[A-Z]{2}-[A-Z0-9]+-\d{3})[\\/]/i);
115
+ const codeFolder = f.match(/[\\/]code[\\/]((?:W|API|UI)-[A-Z]{2,4}-[A-Z][A-Z0-9]*-\d{2,3})[\\/]/i);
115
116
  if (codeFolder)
116
117
  add(map, codeFolder[1], f);
117
118
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/docs/scan/ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../src/docs/scan/ids.ts"],"names":[],"mappings":"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"}
@@ -127,7 +127,7 @@ export function registerTools(server) {
127
127
  moduleDir: z
128
128
  .string()
129
129
  .optional()
130
- .describe('CMP module root, e.g. surfaces/admin-web/CMP-01-auth/ (legacy .../modules/CMP-01-auth/ also accepted)'),
130
+ .describe('CMP module root, e.g. surfaces/admin-web/CMP-ADM-AUTH-01/ (legacy .../modules/CMP-ADM-AUTH-01/ also accepted)'),
131
131
  findingsPath: z.string().optional().describe('YAML/JSON with parityFindings[] from cloud'),
132
132
  findingsJson: z.string().optional().describe('Inline JSON: { parityFindings: [...] }'),
133
133
  }, async ({ moduleDir, findingsPath, findingsJson }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/graph/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/graph/mcp/tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EACL,uBAAuB,EACvB,cAAc,GACf,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACtG,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC3E,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAChB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AAExD,SAAS,IAAI,CAAC,IAAa;IACzB,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAA;AACH,CAAC;AAED,SAAS,cAAc;IACrB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAClF,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO;QACL,EAAE,EAAE,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC5C,IAAI;QACJ,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,WAAW,CAAC,IAAI,CAAC;QACzC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;KAC1B,CAAA;AACH,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,aAAa,CAAC,MAAiB;IAC7C,4DAA4D;IAC5D,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAClC,oFAAoF,EACpF,EAAE,EACF,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CACnD,CAAA;IAID,2FAA2F;IAC3F,MAAM,CAAC,IAAI,CAAC,uBAAuB,EACjC,mHAAmH,EACnH,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,MAAM,CAAA;QACV,IAAI,OAAO,CAAA;QACX,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;gBACrC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBACpD,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBACrD,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBACvD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,CAAA;gBAC7C,MAAM,WAAW,GAAG,EAAE,GAAG,oBAAoB,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;gBACvF,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;gBAC1D,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;gBACpD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,CAAA;YACrD,CAAC,CAAC,CAAA;YACF,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YACvB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAC3B,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,EAAE,CAAA;QACf,CAAC;QACD,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,OAAO;YACd,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;YAC/C,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,IAAI;YACpB,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;SACvC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,uBAAuB,EACjC,2FAA2F,EAC3F;QACE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,oIAAoI,CACrI;QACH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACxF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,IAAI,MAAM,CAAA;QACV,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC7D,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;aAAM,IAAI,OAAO;YAAE,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;aACzE,CAAC;YACJ,KAAK,CAAC,KAAK,EAAE,CAAA;YACb,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC,CACF,CAAA;IAED,wDAAwD;IACxD,MAAM,CAAC,IAAI,CAAC,2BAA2B,EACrC,4HAA4H,EAC5H;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxF,MAAM,MAAM,GAAG,UAAU,CAAC;YACxB,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,GAAG;YACH,QAAQ,EAAE,YAAY;YACtB,OAAO;YACP,KAAK;SACN,CAAC,CAAA;QACF,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC,CACF,CAAA;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,EACtC,+FAA+F,EAC/F;QACE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+GAA+G,CAChH;QACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC1F,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACvF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE;QAClD,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACzE,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,SAAS;YACT,YAAY;YACZ,YAAY;YACZ,KAAK;SACN,CAAC,CAAA;QACF,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC,CACF,CAAA;IAED,mDAAmD;IACnD,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAClC,kFAAkF,EAClF;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC9E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;aACzB,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC3E,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC/C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC1D,IAAI,IAAI,KAAK,QAAQ;YAAE,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;;YACvE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QACzD,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO,EAAE,CAAC,CAAA;IACnE,CAAC,CACF,CAAA;IAED,yEAAyE;IACzE,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAC3C,mIAAmI,EACnI;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAC/D,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,OAAO,IAAI,CACT,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE;YACvD,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB,CAAC,CACH,CAAA;IACH,CAAC,CACF,CAAA;IAED,8DAA8D;IAC9D,MAAM,CAAC,IAAI,CAAC,+BAA+B,EACzC,iHAAiH,EACjH;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QACvB,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAA;QAC1E,OAAO,IAAI,CAAC;YACV,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,UAAU;YACV,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,eAAe,EAAE,SAAS,CAAC,eAAe;YAC1C,cAAc,EAAE,SAAS,CAAC,cAAc;SACzC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,mBAAmB,EAC7B,4JAA4J,EAC5J;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACrE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KACxG,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE;YAClE,IAAI,EAAE,IAAI,IAAI,EAAE;SACjB,CAAC,CAAA;QACF,OAAO,IAAI,CAAC;YACV,GAAG,MAAM;YACT,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE;gBACX,iCAAiC;gBACjC,+BAA+B;gBAC/B,uBAAuB;aACxB;SACF,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED,gDAAgD;IAChD,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAC9B,6EAA6E,EAC7E;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;YACzF,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAA;QAC3D,KAAK,CAAC,KAAK,EAAE,CAAA;QACb,OAAO,IAAI,CAAC;YACV,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED;;;;OAIG;IACH,MAAM,CAAC,IAAI,CAAC,+BAA+B,EACzC,+JAA+J,EAC/J;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QAClF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KAC1G,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1C,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;QAC1F,KAAK,CAAC,KAAK,EAAE,CAAA;QAEb,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;QAChC,iFAAiF;QACjF,6CAA6C;QAC7C,OAAO,IAAI,CAAC;YACV,KAAK;YACL,OAAO;YACP,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE;YACtC,UAAU,EAAE,KAAK;gBACf,CAAC,CAAC,2BAA2B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC;gBACxG,CAAC,CAAC,oCAAoC;YACxC,gBAAgB,EAAE,KAAK;gBACrB,CAAC,CAAC,2CAA2C,OAAO,oBAAoB,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,oCAAoC;gBACzM,CAAC,CAAC,2CAA2C,OAAO,sCAAsC;SAC7F,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,4BAA4B,EACtC,2FAA2F,EAC3F;QACE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,wEAAwE,CAAC;QAC9H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;KAC/E,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACjD,MAAM,MAAM,GAAG,WAAW,CAAC;YACzB,QAAQ,EAAE,OAAO,CAAC,IAAI;YACtB,GAAG;YACH,IAAI;YACJ,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,KAAK;SACN,CAAC,CAAA;QACF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;IACrB,CAAC,CACF,CAAA;IAID,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAChC,yFAAyF,EACzF,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,OAAO,GAAG,cAAc,EAAE,CAAA;QAChC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,KAAK,GAAkC,IAAI,CAAA;QAC/C,IAAI,SAAS,GAAkB,IAAI,CAAA;QACnC,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAC1C,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAA;gBAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;gBACzC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC,CAAC,CAAC,IAAI,CAAA;gBAChE,KAAK,CAAC,KAAK,EAAE,CAAA;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACjF,OAAO,IAAI,CAAC;YACV,OAAO;YACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC;YACnB,IAAI,EAAE;gBACJ,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,EAAE;gBACjC,SAAS,EAAE,GAAG,EAAE,SAAS,IAAI,IAAI;gBACjC,IAAI,EAAE,sHAAsH;aAC7H;YACD,KAAK;YACL,eAAe,EAAE,QAAQ;YACzB,YAAY,EAAE,GAAG,EAAE,YAAY,IAAI,IAAI;YACvC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI;YACrB,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;YACjD,KAAK;YACL,SAAS;SACV,CAAC,CAAA;IACJ,CAAC,CACF,CAAA;AACH,CAAC"}
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Render tests hub case YAML → Markdown (member-first, locale-aware).
4
4
  * Usage: pnpm cases:render
5
- * pnpm cases:render -- cases/W-AD-AUTH-001
5
+ * pnpm cases:render -- cases/W-ADM-AUTH-01
6
6
  */
7
7
  import { readdir, readFile, writeFile } from 'node:fs/promises'
8
8
  import path from 'node:path'
@@ -42,6 +42,16 @@ function auditLegacyInventory(inventoryPath, targetId) {
42
42
 
43
43
  const rawText = fs.readFileSync(inventoryPath, 'utf8');
44
44
 
45
+ if (targetId?.startsWith('FLOW-') && !/##\s+4\.\s+User flows/i.test(rawText)) {
46
+ addGap(
47
+ 'ADOPT_MISSING_USER_FLOW_SECTION',
48
+ 'warning',
49
+ 'adoption-inventory.md#user-flows',
50
+ 'Inventory has no "## 4. User flows" section — cross-surface FLOW-* may be missing.',
51
+ 'Re-run /adopt with user-flow discovery; see tpl-adoption-inventory.md (tiers A/B/C).'
52
+ );
53
+ }
54
+
45
55
  if (targetId) {
46
56
  if (!rawText.includes(targetId)) {
47
57
  addGap(
@@ -4,10 +4,10 @@ Reads **plans** from sibling `base-tests/` → writes `tests/e2e/` on this FE re
4
4
 
5
5
  ```bash
6
6
  pnpm testcase:gen:dry --id TC-LOGIN-VALID
7
- pnpm testcase:gen --id W-AD-AUTH-001
7
+ pnpm testcase:gen --id W-ADM-AUTH-01
8
8
  pnpm testcase:gen --id smoke
9
- pnpm testcase:gen --testcase ../base-tests/cases/W-AD-AUTH-001/TC-LOGIN-VALID.yaml
10
- pnpm testcase:gen --feature W-AD-AUTH-001 # all TC-* under cases/{id}/
9
+ pnpm testcase:gen --testcase ../base-tests/cases/W-ADM-AUTH-01/TC-LOGIN-VALID.yaml
10
+ pnpm testcase:gen --feature W-ADM-AUTH-01 # all TC-* under cases/{id}/
11
11
  ```
12
12
 
13
13
  Author/edit plans on **base-tests** (`/testcase`), not on this code repo.
@@ -37,8 +37,8 @@ function parseArgs(argv) {
37
37
 
38
38
  if (!options.testcase && !options.feature && !options.id) {
39
39
  throw new Error(
40
- 'Usage: pnpm testcase:gen --id W-AD-AUTH-001|TC-LOGIN-VALID|smoke|CMP-01|SC-LOGIN\n' +
41
- ' pnpm testcase:gen --testcase <path> | --feature W-AD-AUTH-001 (screen under base-tests/cases)',
40
+ 'Usage: pnpm testcase:gen --id W-ADM-AUTH-01|TC-LOGIN-VALID|smoke|CMP-ADM-AUTH-01|SC-LOGIN\n' +
41
+ ' pnpm testcase:gen --testcase <path> | --feature W-ADM-AUTH-01 (screen under base-tests/cases)',
42
42
  )
43
43
  }
44
44
 
@@ -145,7 +145,7 @@ export async function readTestcaseFile(testcasePath, opts = {}) {
145
145
  /**
146
146
  * List TC-*.yaml under base-tests/cases/{screenId}/ (prefer --id).
147
147
  * @param {string} root FE repo root
148
- * @param {string} screenId e.g. W-AD-AUTH-001
148
+ * @param {string} screenId e.g. W-ADM-AUTH-01
149
149
  */
150
150
  export async function listFeatureTestcases(root, screenId) {
151
151
  const testsRoot = resolveProjectRoot(root, 'base-tests')
@@ -4,10 +4,10 @@ Reads **plans** from the tests hub → writes `tests/e2e/` in the FE project.
4
4
 
5
5
  ```bash
6
6
  pnpm testcase:gen:dry --id TC-LOGIN-VALID
7
- pnpm testcase:gen --id W-AD-AUTH-001
7
+ pnpm testcase:gen --id W-ADM-AUTH-01
8
8
  pnpm testcase:gen --id smoke
9
- pnpm testcase:gen --testcase "$FLOWGRID_TESTS_DOC/cases/W-AD-AUTH-001/TC-LOGIN-VALID.yaml"
10
- pnpm testcase:gen --feature W-AD-AUTH-001 # all TC-* under cases/{id}/
9
+ pnpm testcase:gen --testcase "$FLOWGRID_TESTS_DOC/cases/W-ADM-AUTH-01/TC-LOGIN-VALID.yaml"
10
+ pnpm testcase:gen --feature W-ADM-AUTH-01 # all TC-* under cases/{id}/
11
11
  ```
12
12
 
13
13
  Author/edit plans in the **tests hub** (`/testcase`), not in the code project.
@@ -51,8 +51,8 @@ function parseArgs(argv) {
51
51
 
52
52
  if (!options.testcase && !options.feature && !options.id && !options.all) {
53
53
  throw new Error(
54
- 'Usage: pnpm testcase:gen --id W-AD-AUTH-001|TC-LOGIN-VALID|smoke|CMP-01|SC-LOGIN\n' +
55
- ' pnpm testcase:gen --testcase <path> | --feature W-AD-AUTH-001 (screen under tests hub cases/)\n' +
54
+ 'Usage: pnpm testcase:gen --id W-ADM-AUTH-01|TC-LOGIN-VALID|smoke|CMP-ADM-AUTH-01|SC-LOGIN\n' +
55
+ ' pnpm testcase:gen --testcase <path> | --feature W-ADM-AUTH-01 (screen under tests hub cases/)\n' +
56
56
  ' pnpm testcase:gen --all\n' +
57
57
  ' Optional: --tests-docs <hub> or FLOWGRID_TESTS_DOC',
58
58
  )
@@ -158,7 +158,7 @@ export async function readTestcaseFile(testcasePath, opts = {}) {
158
158
  /**
159
159
  * List TC-*.yaml under the tests hub cases/{screenId}/ (prefer --id).
160
160
  * @param {string} root FE repo root
161
- * @param {string} screenId e.g. W-AD-AUTH-001
161
+ * @param {string} screenId e.g. W-ADM-AUTH-01
162
162
  */
163
163
  export async function listFeatureTestcases(root, screenId) {
164
164
  const testsRoot = process.env.FLOWGRID_TESTS_DOC ? path.resolve(process.env.FLOWGRID_TESTS_DOC) : resolveProjectRoot(root, 'tests')
@@ -263,8 +263,8 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
263
263
  return { kind: 'code', id, paths: [spec], notes, codeDir }
264
264
  }
265
265
 
266
- // Module (e.g. CMP-ADM-001) → all code children
267
- if (/^[A-Z]+-[A-Z]+-\d{3}$/i.test(id)) {
266
+ // Module (e.g. CMP-ADM-AUTH-01) → all code children
267
+ if (/^CMP-[A-Z0-9]+(?:-[A-Z0-9]+)+$/i.test(id)) {
268
268
  const { index: docsIdx } = getDocs()
269
269
  const cmp = (docsIdx.modules || []).find(
270
270
  (c) => c.id === id || c.id.startsWith(id) || (c.slug && id.toLowerCase().includes(c.slug)),
@@ -319,6 +319,6 @@ export function resolveHubId(repoRoot, id, mode = 'testcase') {
319
319
  }
320
320
 
321
321
  throw new Error(
322
- `Unrecognized id "${id}". Use W-|API-|UI-|FLOW-|DEP-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-001-01-01), or module ID (CMP-ADM-001), or suite id (smoke, regression-auth).`,
322
+ `Unrecognized id "${id}". Use W-|API-|UI-|FLOW-|DEP-|TC-|SC-* or hierarchical ID (e.g. cmp-adm-auth-01-01-01), or module ID (CMP-ADM-AUTH-01), or suite id (smoke, regression-auth).`,
323
323
  )
324
324
  }
@@ -12,7 +12,7 @@ Run after `npm run codegen:api:dry` / `flowgrid api-gen:dry` and after implement
12
12
 
13
13
  ## Target / ID Resolution Rule
14
14
 
15
- - User prompt MAY specify a function ID, API slug, or short name (e.g. `API-AUTH-001`, `login`, `CMP-ADM-009`).
15
+ - User prompt MAY specify a function ID, API slug, or short name (e.g. `API-AUTH-001`, `login`, `CMP-ADM-DEMO-01`).
16
16
  - Agent MUST resolve **`…/api/<seq>/01-backend-spec.yaml`** via `FLOWGRID_DOCS_ROOT` or `flowgrid_docs_route` (screen leaf `CMP-*/<NN…>/api/<seq>/`, or `common/yaml/<slug>/`, or external-channel surface `…/api/<seq>/`).
17
17
  - **Read the entire `01-backend-spec.yaml`**. Do **not** use `ir/design.yaml` or `ir/spec.yaml` as BE contract.
18
18
  - Compare generated routes/code against that 01 file. Missing 01 → STOP, hand off to docs `/grill-api-spec`.
@@ -13,7 +13,7 @@ before committing generated test code.
13
13
 
14
14
  ## Target / ID Resolution Rule
15
15
 
16
- - User prompt MAY specify a function ID, API slug, or short name (e.g. `API-AUTH-001`, `login`, `CMP-ADM-009`).
16
+ - User prompt MAY specify a function ID, API slug, or short name (e.g. `API-AUTH-001`, `login`, `CMP-ADM-DEMO-01`).
17
17
  - Agent MUST resolve **`…/api/<seq>/01-backend-spec.yaml`** via `FLOWGRID_DOCS_ROOT` or `flowgrid_docs_route`.
18
18
  - **Read the entire `01-backend-spec.yaml`**. Do **not** use `ir/design.yaml` or `ir/spec.yaml` as BE contract.
19
19
  - Compare generated unit tests against that 01 file. Missing 01 → STOP, hand off to docs `/grill-api-spec`.
@@ -36,6 +36,8 @@ No **dynamics** wording on new trees — use **flow** / `FLOW-*` / `/journey`.
36
36
 
37
37
  ## ID rules
38
38
 
39
+ **Product IDs (global):** `product-id-convention.md` — `surfaceCode` on each surface; `CMP-{SURF}-{DOMAIN}-{NN}`, `W-{SURF}-{DOMAIN}-{NN}`, `API-{SURF}-{DOMAIN}-{NN}`.
40
+
39
41
  | Prefix | Path | Notes |
40
42
  |--------|------|-------|
41
43
  | `LND-*` `CTX-*` | `architecture/03-context/` | Overview / landscape + context |
@@ -10,7 +10,9 @@
10
10
  ".cursor/extracts/tpl-deployment.md",
11
11
  ".cursor/extracts/tpl-adr.md",
12
12
  ".cursor/extracts/tpl-cross-cutting.md",
13
- ".cursor/extracts/common-scope.md"
13
+ ".cursor/extracts/common-scope.md",
14
+ ".cursor/extracts/tpl-adoption-inventory.md",
15
+ ".cursor/extracts/product-id-convention.md"
14
16
  ],
15
17
  "docs-hub": [
16
18
  ".cursor/extracts/docs-phase-hooks.md",
@@ -25,11 +27,13 @@
25
27
  ".cursor/extracts/design-leaf-signoff.md",
26
28
  ".cursor/extracts/db-audit-wizard.md",
27
29
  ".cursor/extracts/agent-execution-protocol.md",
28
- ".cursor/extracts/common-scope.md"
30
+ ".cursor/extracts/common-scope.md",
31
+ ".cursor/extracts/product-id-convention.md"
29
32
  ],
30
33
  "spec-core": [
31
34
  ".cursor/extracts/spec-core.md",
32
- ".cursor/extracts/common-scope.md"
35
+ ".cursor/extracts/common-scope.md",
36
+ ".cursor/extracts/product-id-convention.md"
33
37
  ],
34
38
  "bqa-grill": [
35
39
  ".cursor/extracts/grill/validation.md",
@@ -0,0 +1,58 @@
1
+ # Product ID convention (global SSOT)
2
+
3
+ English **structure**; prose locale is separate (`contentLocale`).
4
+
5
+ ## Why surface code is mandatory
6
+
7
+ IDs are **globally unique** across the docs hub (CLI `--id`, registries, tests mirror). The same capability on two channels (e.g. Login on admin vs customer) MUST be two IDs. Path `surfaces/<slug>/` alone is not enough when referencing without a path.
8
+
9
+ ## Surface code (`surfaceCode`)
10
+
11
+ - Declare on every `surfaces/<slug>/index.md` frontmatter: `surfaceCode: ADM` (2–4 uppercase letters).
12
+ - Register once per channel; reuse the **same token** in every `CMP-*` / `W-*` / `API-*` / `UI-*` on that surface.
13
+ - Folder slug stays human (`admin`, `customer-web`); **IDs embed `surfaceCode`**, not the slug.
14
+
15
+ | Surface folder | Example `surfaceCode` |
16
+ | --- | --- |
17
+ | `surfaces/admin` | `ADM` |
18
+ | `surfaces/customer-web` | `CUS` |
19
+ | `surfaces/workforce-app` | `WRK` |
20
+
21
+ ## Patterns
22
+
23
+ | Kind | Pattern | Example |
24
+ | --- | --- | --- |
25
+ | Module (folder name) | `CMP-{SURF}-{DOMAIN}-{NN}` | `CMP-ADM-AUTH-01` |
26
+ | Screen | `W-{SURF}-{DOMAIN}-{NN}` | `W-ADM-AUTH-01` |
27
+ | API | `API-{SURF}-{DOMAIN}-{NN}` | `API-ADM-AUTH-01` |
28
+ | UI code leaf | `UI-{SURF}-{DOMAIN}-{NN}` | `UI-ADM-EMPTY-01` |
29
+ | User flow | `FLOW-{slug}` | `FLOW-checkout` (no surface — scope in doc body) |
30
+ | Common | `CMN-UI-*` / `CMN-API-*` / `CMN-DTO-*` | No surface prefix |
31
+
32
+ - `{SURF}` = `surfaceCode` (2–4 chars).
33
+ - `{DOMAIN}` = short capability token (`AUTH`, `ORD`, `CART`, `USR`, …).
34
+ - `{NN}` = two digits `01`–`99` per domain on that surface (pad with zero).
35
+
36
+ ## Module folder = global module ID
37
+
38
+ `surfaces/<slug>/CMP-ADM-AUTH-01/` — folder name **equals** global `CMP-*` id (tooling SSOT).
39
+
40
+ ## Bundle / path slug (lowercase)
41
+
42
+ `CMP-ADM-ORD-01` + draft `02-01-02` → `page-id: cmp-adm-ord-01-02-01-02` (lowercase, same tokens).
43
+
44
+ ## Hierarchical CLI alias
45
+
46
+ Lowercase path encoding: `cmp-adm-auth-01-01-01-01` (= module + numeric segments under `CMP-*`).
47
+
48
+ ## Same business name, two surfaces
49
+
50
+ - Admin login: `W-ADM-AUTH-01`
51
+ - Customer login: `W-CUS-AUTH-01`
52
+ Shared spec → `CMN-*` or explicit cross-reference; **never** one `W-*` for both.
53
+
54
+ ## Forbidden
55
+
56
+ - `W-AUTH-01` without `{SURF}` (collision risk).
57
+ - Mixed tokens on one surface (`W-AD-*` vs `W-ADM-*`) — pick one `surfaceCode` and stick to it.
58
+ - Renaming IDs for arc42-only refactors (see `architecture/02-constraints`).
@@ -6,4 +6,4 @@ Required business keys when info exists: `summary`, `userStories` (+ `screenAcce
6
6
 
7
7
  After patch: `flowgrid split` → `flowgrid render` → BA reads `ir/generated/spec.md` (not hand-written `.md`).
8
8
 
9
- Path SSOT: `surfaces/<surface>/CMP-*/<NN…>/` — resolve IDs with `flowgrid_docs_route` on consumer repo.
9
+ Path SSOT: `surfaces/<surface>/CMP-*/<NN…>/` — resolve IDs with `flowgrid_docs_route` on consumer repo. ID shape: `product-id-convention.md`.
@@ -0,0 +1,32 @@
1
+ # Adoption inventory — section template (`adoption-inventory.md`)
2
+
3
+ Workspace root SSOT after `/adopt`. English **IDs**; prose may follow hub `contentLocale` later. ID shape: `product-id-convention.md` (`surfaceCode`, `CMP|W|API-{SURF}-{DOMAIN}-{NN}`).
4
+
5
+ ## Required sections
6
+
7
+ 1. **Surfaces** — channel / app → legacy repo path
8
+ 2. **Modules (`CMP-*`)** — feature groups → legacy module folder
9
+ 3. **Screens & APIs (`W-*`, `API-*`)** — leaf functions → legacy file paths
10
+ 4. **User flows (`FLOW-*`)** — see placement tiers below (mandatory when scan finds multi-step / cross-app journeys)
11
+ 5. **Common catalog (`CMN-*`)** — only if Common Analysis mode
12
+ 6. **Handoff** — `/legacy /spec`, `/legacy /user-flow`
13
+
14
+ ## User flow placement (maps to new docs hub)
15
+
16
+ | Tier | When to list | Target path after `/legacy /user-flow` |
17
+ | --- | --- | --- |
18
+ | **A — Cross-surface / org** | Same journey touches **≥2 surfaces** or **≥2 CMP owners** (checkout admin→customer, ops→partner API, SSO handoff) | `architecture/03-user-flows/FLOW-*.md` |
19
+ | **B — Surface shared** | Journey shared by **≥2 modules** on **one** surface | `surfaces/<surface>/common/user-flows/FLOW-*.md` |
20
+ | **C — Module / cluster** | Journey stays inside **one CMP** (or one cluster `CMP-*/NN/`) | `surfaces/<surface>/<CMP>/common/user-flows/FLOW-*.md` or `…/<CMP>/<NN>/common/user-flows/` |
21
+ | **D — Not a FLOW** | Single screen CRUD, one API call | Document only `W-*` / `API-*` — **do not** invent `FLOW-*` |
22
+
23
+ Each `FLOW-*` line MUST include:
24
+
25
+ - **Surfaces / CMPs involved** (e.g. `admin`, `CMP-ADM-ORD-01`, `customer-web`, `CMP-CUS-CART-01`)
26
+ - **Screen/API steps** (ordered `W-*` / `API-*` refs or legacy route names)
27
+ - **Legacy evidence** (router guards, saga classes, shared session keys, event names — file paths)
28
+ - **Suggested tier** (A / B / C)
29
+
30
+ ## Legacy scan hints (cross-surface)
31
+
32
+ Look for: redirect chains across subdomains/apps, shared `orderId`/`session` in multiple repos, BPM/orchestrator, “checkout” spanning cart (FE) + payment (API) + notification (worker), duplicate route names in 2+ legacy apps for one business journey.
@@ -1,6 +1,6 @@
1
1
  # Module index template
2
2
 
3
- Path: `surfaces/<surface>/CMP-{NN}-{slug}/index.md` — **MD only**.
3
+ Path: `surfaces/<surface>/CMP-{SURF}-{DOMAIN}-{NN}/index.md` — **MD only** (`product-id-convention.md`).
4
4
 
5
5
  Copy from: `templates/project-skeleton/surfaces/_module-index.template.md`
6
6
 
@@ -23,4 +23,4 @@ When executing any skill (`/spec`, `/grill`, `/grill-bqa`, etc.):
23
23
  6. **DSL / COMMON:** Human lead decides common promotions. The agent only executes `/common` (Markdown patterns), `/docs-mark`, custom-base handoff, or confirmation post-grill. `/spec` consumes patterns + FE base via `flowgrid-ux-common.mdc`. **[STRICTLY FORBIDDEN]** `common/yaml`, `/common-spec`, `/gen-common`.
24
24
  7. **ISOLATION:** Execute strictly within the invoked skill scope. **[STRICTLY FORBIDDEN]** to merge sibling features or output fake Markdown reports when YAML contracts are required.
25
25
 
26
- **Path SSOT:** `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment).
26
+ **Path SSOT:** `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment). **IDs:** `product-id-convention.md` (`surfaceCode` + `CMP|W|API-{SURF}-{DOMAIN}-{NN}`).
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: adopt
3
- description: "/adopt — Scan legacy repositories and generate a high-level index mapping catalog & common candidates at root."
3
+ description: "/adopt — Scan legacy repositories and generate a high-level index mapping catalog, user flows (incl. cross-surface), and common candidates at root."
4
4
  disable-model-invocation: true
5
5
  extractBundle: architecture-core
6
6
  ---
@@ -14,6 +14,8 @@ extractBundle: architecture-core
14
14
 
15
15
  **Handoff SSOT spec:** Sau adopt, member drill [spec-ssot-prep.md](../../../docs/workflows/spec-ssot-prep.md) — Phase 0 → `/legacy /spec` per `W-*` (không nhảy thẳng bundle không có ID trong inventory).
16
16
 
17
+ **Inventory template:** `.cursor/extracts/tpl-adoption-inventory.md` — section layout + **user-flow placement tiers** (cross-surface → `architecture/03-user-flows/`).
18
+
17
19
  ---
18
20
 
19
21
  ## Rule: Pre-Scan Mode Selection (AskQuestion Wizard)
@@ -71,16 +73,35 @@ extractBundle: architecture-core
71
73
  - **Surfaces**: Application and channel names (Admin Portal, Customer Web, Gateway…)
72
74
  - **Modules (`CMP-*`)**: Primary feature groups (Auth, Orders, Profile…)
73
75
  - **Screens (`W-*`) & APIs (`API-*`)**: UI screens + API endpoints with legacy file paths (`ID → Legacy File Path`)
74
- - **Cross-Flow Candidates (`FLOW-*`)**: Business flows spanning multiple screens or services
76
+ - **User flows (`FLOW-*`)**: Multi-step business journeys — **classify every candidate** (see Rule: User flow discovery)
75
77
  - **Common Candidates (`CMN-UI-*`, `CMN-API-*`, `CMN-DTO-*`)**: (If Common Analysis mode selected)
76
78
 
77
79
  ---
78
80
 
81
+ ## Rule: User flow discovery (incl. cross-surface)
82
+
83
+ - **[MANDATORY]** Section **4. User flows (`FLOW-*`)** in `adoption-inventory.md` is **not optional** when the legacy scan finds any journey that spans **more than one screen** or **more than one deployable app/repo** in one business outcome.
84
+ - **[MANDATORY]** For each `FLOW-*`, assign a **placement tier** (target path in the **new** docs hub after `/legacy /user-flow`):
85
+
86
+ | Tier | Label | List under inventory subsection | New hub path |
87
+ | --- | --- | --- | --- |
88
+ | **A** | Cross-surface / org catalog | `### A — Cross-surface (org catalog)` | `architecture/03-user-flows/FLOW-*.md` |
89
+ | **B** | Surface-shared | `### B — Shared on one surface` | `surfaces/<surface>/common/user-flows/FLOW-*.md` |
90
+ | **C** | Module / cluster | `### C — Module or cluster scope` | `surfaces/.../CMP-*/common/user-flows/` (or `…/<NN>/common/user-flows/`) |
91
+ | **D** | (omit) | — | Single `W-*` only — **no** `FLOW-*` |
92
+
93
+ - **[MANDATORY]** Each `FLOW-*` bullet MUST state: **surfaces + CMPs involved**, **ordered steps** (`W-*` / `API-*` or legacy route names), **legacy evidence paths** (routers, orchestrators, saga/worker, shared tokens), **tier A/B/C**.
94
+ - **[MANDATORY]** **Cross-surface (tier A)** examples: checkout/payment across customer web + admin ops; partner webhook + internal portal; SSO/login handoff across two SPAs in different legacy repos; order fulfillment touching warehouse API + customer notification app.
95
+ - **[STRICTLY FORBIDDEN]** Listing only `W-*`/`API-*` while ignoring obvious multi-app journeys (tier A/B/C) — Tier 2 audit (`/legacy /user-flow`) depends on this index.
96
+
97
+ ---
98
+
79
99
  ## Rule: ID Standardization
80
100
 
101
+ - **[MANDATORY]** Follow `.cursor/extracts/product-id-convention.md` — declare `surfaceCode` per surface; `CMP-{SURF}-{DOMAIN}-{NN}`, `W-{SURF}-{DOMAIN}-{NN}`, `API-{SURF}-{DOMAIN}-{NN}` (duplicate capability across surfaces ⇒ distinct IDs).
81
102
  - **[MANDATORY]** All items MUST use standardized IDs: `CMP-*`, `W-*`, `API-*`, `FLOW-*`, `CMN-UI-*`, `CMN-API-*`, `CMN-DTO-*`.
82
103
  - **[MANDATORY]** Every ID MUST map to its corresponding legacy file or directory path.
83
- - ✅ `W-AD-AUTH-001: Login → admin-fe/src/pages/Login.tsx`
104
+ - ✅ `W-ADM-AUTH-01: Login → admin-fe/src/pages/Login.tsx`
84
105
  - ✅ `CMN-UI-001: Filter Toolbar → duplicated in admin-fe/src/pages/Orders.tsx, Users.tsx`
85
106
 
86
107
  ---
@@ -96,15 +117,25 @@ extractBundle: architecture-core
96
117
  - **Admin Portal** (`surfaces/admin`) → Legacy repo: `admin-fe`
97
118
 
98
119
  ## 2. Modules Catalog (`CMP-*`)
99
- - **CMP-ADM-001**: Auth & Identity Management → Legacy: `admin-fe/src/modules/auth/`
120
+ - **CMP-ADM-AUTH-01**: Auth & Identity Management → Legacy: `admin-fe/src/modules/auth/`
100
121
 
101
122
  ## 3. Screens & API Function Inventory (`W-*`, `API-*`)
102
- ### Admin Portal (`surfaces/admin/CMP-ADM-001`)
103
- - **W-AD-AUTH-001**: Login → Legacy: `admin-fe/src/pages/Login.tsx`
123
+ ### Admin Portal (`surfaces/admin/CMP-ADM-AUTH-01`)
124
+ - **W-ADM-AUTH-01**: Login → Legacy: `admin-fe/src/pages/Login.tsx`
104
125
  - **API-ADM-AUTH-01**: Auth Services → Legacy: `auth-service/src/controllers/AuthController.java`
105
126
 
106
- ## 4. Cross-Flow Candidates (`FLOW-*`)
107
- - **FLOW-checkout**: Checkout & Payment Flow → across `CMP-ADM-002` & `CMP-CUS-001`
127
+ ## 4. User flows (`FLOW-*`)
128
+
129
+ ### A — Cross-surface (org catalog) → `architecture/03-user-flows/`
130
+ - **FLOW-checkout**: Checkout & payment — Surfaces: `customer-web` (`CMP-CUS-CART-01`), `admin` (`CMP-ADM-ORD-01`) — Steps: cart `W-CUS-CART-01` → pay `API-CUS-PAY-01` → ops `W-ADM-ORD-01` — Legacy: `customer-fe/src/routes/checkout/*`, `admin-fe/src/pages/Orders.tsx`, `payment-svc/...` — Tier: **A**
131
+
132
+ ### B — Shared on one surface → `surfaces/<surface>/common/user-flows/`
133
+ - **FLOW-onboard-admin**: Admin onboarding — Surface: `admin` only — CMPs: `CMP-ADM-AUTH-01`, `CMP-ADM-USR-01` — Steps: … — Legacy: … — Tier: **B**
134
+
135
+ ### C — Module / cluster scope → `…/CMP-*/common/user-flows/`
136
+ - **FLOW-password-reset**: Reset password — Surface: `admin` — CMP: `CMP-ADM-AUTH-01` — Steps: … — Legacy: … — Tier: **C**
137
+
138
+ > If no multi-step journeys found, write: `_(none detected — screen-only inventory in §3)_`
108
139
 
109
140
  ## 5. Common Catalog Candidates (Anti-Copy-Paste Guard)
110
141
  > **Purpose**: Reuse for specs and code of new features / spec updates.
@@ -122,11 +153,11 @@ extractBundle: architecture-core
122
153
 
123
154
  ### ⚠️ Whole Page Duplication Warnings
124
155
  > **Note**: Do not create `CMN-*` for full pages. Recommend consolidating into a single polymorphic spec (`mode: create | edit`).
125
- - **W-AD-USER-001 (Create User)** & **W-AD-USER-002 (Edit User)**: 95% identical → *Recommendation: Consolidate into single Form Spec `CMP-ADM-USER-FORM`*
156
+ - **W-ADM-USR-01 (Create User)** & **W-ADM-USR-02 (Edit User)**: 95% identical → *Recommendation: Consolidate into single Form Spec `CMP-ADM-USR-FORM`*
126
157
 
127
158
  ---
128
159
  ## 6. Handoff Usage Guide
129
- - `/legacy /spec W-AD-AUTH-001` — spec a legacy screen (MUST reuse CMN-* if applicable)
160
+ - `/legacy /spec W-ADM-AUTH-01` — spec a legacy screen (MUST reuse CMN-* if applicable)
130
161
  - `/legacy /user-flow FLOW-checkout` — map a legacy flow
131
162
  ```
132
163
 
@@ -138,5 +169,6 @@ extractBundle: architecture-core
138
169
  - [ ] Audit script run; index checked or gaps reported.
139
170
  - [ ] `adoption-inventory.md` created directly at workspace root.
140
171
  - [ ] All items use standardized `CMP-*`, `W-*`, `API-*`, `FLOW-*`, `CMN-*` IDs.
172
+ - [ ] Section 4 lists user flows with tier **A/B/C** when multi-step/cross-app journeys exist; tier **A** cross-surface rows are explicit.
141
173
  - [ ] Common Catalog Candidates listed with source files if Common mode selected.
142
174
  - [ ] Anti-Copy-Paste Guard enforced for new spec/code.
@@ -28,7 +28,7 @@ Shared extracts: `api-spec-sync.md`, `spec-evolution.md`, `entity-relationship.m
28
28
 
29
29
  ## Rule: ID Resolution & Folder Location
30
30
 
31
- - **[MANDATORY]** If an ID is provided (e.g. `CMP-ADM-000-001`, `W-AD-AUTH-001`) → use `flowgrid_docs_route` or glob to resolve to `…/api/<seq>/01-backend-spec.yaml`. Do NOT force user to provide full filesystem path.
31
+ - **[MANDATORY]** If an ID is provided (e.g. `CMP-ADM-AUTH-01-001`, `W-ADM-AUTH-01`) → use `flowgrid_docs_route` or glob to resolve to `…/api/<seq>/01-backend-spec.yaml`. Do NOT force user to provide full filesystem path.
32
32
  - **[MANDATORY]** Trio lives under `api/<seq>/` — never adjacent to `*.bundle.yaml`.
33
33
  - Common APIs: `…/common/yaml/<slug>/01-backend-spec.yaml` (one trio per API).
34
34
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: module
3
- description: EXCLUSIVE /module — Handles business modules (CMP-*). DO NOT output fake Markdown reports.
3
+ description: EXCLUSIVE /module — Handles business modules (CMP-{SURF}-{DOMAIN}-{NN}). DO NOT output fake Markdown reports.
4
4
  disable-model-invocation: true
5
5
  extractBundle: architecture-core
6
6
  ---
@@ -85,9 +85,10 @@ Hub: [spec-ssot-prep.md](../../../docs/workflows/spec-ssot-prep.md) · extract `
85
85
 
86
86
  ## Rule: Target / ID Resolution
87
87
 
88
+ - **[MANDATORY]** Product IDs per `product-id-convention.md` (`surfaceCode`, `CMP-{SURF}-{DOMAIN}-{NN}`, `W-{SURF}-{DOMAIN}-{NN}`).
88
89
  - **[MANDATORY]** Resolve screen ID, module ID, slug, or Draft ID before generating any file.
89
90
  - Draft ID `1-1-2` → pad each segment → `01/01/02/`
90
- - Bundle ID: module prefix + padded segments, e.g. `CMP-ADM-002` + `02-01-02` → `page-id: cmp-adm-002-02-01-02`
91
+ - Bundle ID: module prefix + padded segments, e.g. `CMP-ADM-ORD-01` + `02-01-02` → `page-id: cmp-adm-ord-01-02-01-02`
91
92
  - **[MANDATORY]** Search for input `.md` file at resolved path. If found, read it as primary requirement source — do NOT say "I cannot hallucinate" or ask user for input that is already present.
92
93
  - **[STRICTLY FORBIDDEN]** Do NOT demand full filesystem path from user when ID or slug is given.
93
94
 
@@ -16,6 +16,7 @@ extractBundle: architecture-core
16
16
 
17
17
  ## Rule: Target Resolution
18
18
 
19
+ - **[MANDATORY]** On create: set `surfaceCode` (2–4 uppercase letters) in `surfaces/<slug>/index.md` frontmatter — SSOT for all `CMP-*` / `W-*` / `API-*` on this channel (`product-id-convention.md`).
19
20
  - **[MANDATORY]** Use `flowgrid_docs_route` or `flowgrid_docs_get_element` (or glob) to resolve the target surface directory under `surfaces/[Surface Name]/`.
20
21
  - **[STRICTLY FORBIDDEN]** Do NOT confuse an API with a surface. APIs belong to architecture containers or function-level API contracts.
21
22
 
@@ -14,7 +14,7 @@ disable-model-invocation: true
14
14
 
15
15
  ## Target / ID Resolution Rule
16
16
 
17
- - User prompt MAY specify screen ID, function ID, or slug (e.g. `W-AD-AUTH-001`, `login`).
17
+ - User prompt MAY specify screen ID, function ID, or slug (e.g. `W-ADM-AUTH-01`, `login`).
18
18
  - **Read the entire `ir/design.yaml`** on the screen leaf (`…/CMP-*/<NN…>/ir/design.yaml`). Do **not** use `01-backend-spec.yaml` as FE input.
19
19
  - Docs hub is **read-only**. Do not patch `*.bundle.yaml` or `ir/*`.
20
20
  - Compare route + rendered UI to `ir/design.yaml` (actions, validation copy, states, testIds).
@@ -10,7 +10,7 @@ disable-model-invocation: true
10
10
 
11
11
  ## Artifact & Target ID Resolution Rule
12
12
 
13
- - User prompt MAY specify a screen ID, function ID, or slug (e.g. `W-AD-AUTH-001`, `login`).
13
+ - User prompt MAY specify a screen ID, function ID, or slug (e.g. `W-ADM-AUTH-01`, `login`).
14
14
  - Agent MUST use `--id` or resolve `surfaces/<surface>/CMP-*/<NN…>/ir/design.yaml` via `FLOWGRID_DOCS_ROOT` or `flowgrid_docs_route` (same leaf as the bundle; API trio is sibling `api/<seq>/`, not this file).
15
15
  - Shared UI (list shell, chips, delete flow, …) is **already in the FE base** — do not run `/gen-common` (deprecated).
16
16
  - `surfaces/…/common/` on the docs hub is **Markdown only** (`processes/FLOW-*.md`, `patterns/`) — read for context; never codegen from `common/yaml`.
@@ -18,7 +18,7 @@ disable-model-invocation: true
18
18
 
19
19
  ```text
20
20
  surfaces/<surface>/CMP-*/<NN…>/ir/design.yaml
21
- # e.g. …/CMP-ADM-009/01/01/01/ir/design.yaml
21
+ # e.g. …/CMP-ADM-DEMO-01/01/01/01/ir/design.yaml
22
22
  ```
23
23
 
24
24
  Read the **entire** `ir/design.yaml` (script + agent inspection). Do not filter keys from `*.bundle.yaml`. **`ir/spec.yaml`** is business prose only.
@@ -47,12 +47,12 @@ only.
47
47
  ## Workflow
48
48
 
49
49
  ```bash
50
- npm run codegen:dry -- --id W-AD-AUTH-001
51
- npm run codegen -- --id W-AD-AUTH-001
50
+ npm run codegen:dry -- --id W-ADM-AUTH-01
51
+ npm run codegen -- --id W-ADM-AUTH-01
52
52
 
53
53
  # Fallback direct CLI if wrappers missing:
54
- flowgrid gen:dry --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
55
- flowgrid gen --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
54
+ flowgrid gen:dry --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-ADM-AUTH-01
55
+ flowgrid gen --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-ADM-AUTH-01
56
56
 
57
57
  flowgrid gen:dry --adapter=nextjs -- --spec ir/design.yaml
58
58
  flowgrid gen --adapter=nextjs -- --spec ir/design.yaml
@@ -9,12 +9,12 @@ disable-model-invocation: true
9
9
  **Owner:** bộ code (`--type=fe`)
10
10
 
11
11
  ```bash
12
- npm run codegen:unit:dry -- --id W-AD-AUTH-001
13
- npm run codegen:unit -- --id W-AD-AUTH-001
12
+ npm run codegen:unit:dry -- --id W-ADM-AUTH-01
13
+ npm run codegen:unit -- --id W-ADM-AUTH-01
14
14
 
15
15
  # Fallback direct CLI if wrappers missing:
16
- flowgrid unit-gen:dry --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
17
- flowgrid unit-gen --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-AD-AUTH-001
16
+ flowgrid unit-gen:dry --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-ADM-AUTH-01
17
+ flowgrid unit-gen --adapter=nuxt4 --docs-root=/path/to/docs-hub -- --id W-ADM-AUTH-01
18
18
  flowgrid unit-registry --adapter=nuxt4
19
19
  ```
20
20
 
@@ -4,7 +4,7 @@
4
4
  > These are **PHYSICAL INTERLOCKS**, not casual reminders.
5
5
  > Any violation of these laws → run **FAILED**. Chat-only "done" = **STRICTLY REJECTED**.
6
6
  >
7
- > Path SSOT: `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment).
7
+ > Path SSOT: `surfaces/<surface>/CMP-*/<slug>/` (NO `modules/` segment). Product IDs: `product-id-convention.md` (`surfaceCode`, `CMP-{SURF}-{DOMAIN}-{NN}`, `W-{SURF}-{DOMAIN}-{NN}`).
8
8
 
9
9
  ---
10
10
 
@@ -21,7 +21,7 @@ query a workspace-parent graph.
21
21
 
22
22
  ## Target / ID Resolution Rule
23
23
 
24
- - User prompt MAY specify a screen ID, module ID, or short slug (e.g. `W-AD-AUTH-001`, `CMP-ADM-000`, `login`).
24
+ - User prompt MAY specify a screen ID, module ID, or short slug (e.g. `W-ADM-AUTH-01`, `CMP-ADM-AUTH-01`, `login`).
25
25
  - **[MANDATORY]** Agent MUST use `flowgrid_docs_route` or `flowgrid_docs_get_element` (or glob search under `FLOWGRID_DOCS_ROOT` / `surfaces/...`) to resolve target paths.
26
26
  - **[MANDATORY]** Read the entire function **`*.bundle.yaml`** (sibling of `ir/`). Cross-reference plans against bundle `userStories`, `acceptanceCriteria`, `spec.ui`, and `design.*` — not split IR files.
27
27
  - If scenarios/acceptance are thin or missing → hand off docs-hub `/update-spec` or `/spec` (paste-ready prompt). Do not patch bundle from tests hub.
@@ -49,8 +49,8 @@ Mirror the FLOW file path onto the tests hub. Strip **only** these prefixes:
49
49
 
50
50
  Examples:
51
51
 
52
- - Docs `surfaces/admin/CMP-ADM-002/02/common/user-flows/FLOW-checkout.md` → `scenarios/admin/CMP-ADM-002/02/common/user-flows/FLOW-checkout/SC-*.yaml`
53
- - Docs `surfaces/admin/CMP-ADM-002/common/user-flows/FLOW-onboard.md` → `scenarios/admin/CMP-ADM-002/common/user-flows/FLOW-onboard/SC-*.yaml`
52
+ - Docs `surfaces/admin/CMP-ADM-ORD-01/02/common/user-flows/FLOW-checkout.md` → `scenarios/admin/CMP-ADM-ORD-01/02/common/user-flows/FLOW-checkout/SC-*.yaml`
53
+ - Docs `surfaces/admin/CMP-ADM-ORD-01/common/user-flows/FLOW-onboard.md` → `scenarios/admin/CMP-ADM-ORD-01/common/user-flows/FLOW-onboard/SC-*.yaml`
54
54
 
55
55
  Do **not** flatten to `scenarios/auth/…`. Do **not** use `common/` (legacy). Keep numeric cluster folders (`02/`) in the tests path.
56
56
 
@@ -49,7 +49,7 @@ disable-model-invocation: true
49
49
  ## Rule: Directory Mirroring (Docs SSOT)
50
50
 
51
51
  - **[MANDATORY]** Mirror function folder: `cases/<relative-path>/TC-*.yaml`.
52
- - ✅ `surfaces/admin/CMP-ADM-002/02/01/login/` → `cases/admin/CMP-ADM-002/02/01/login/TC-*.yaml`
52
+ - ✅ `surfaces/admin/CMP-ADM-ORD-01/02/01/login/` → `cases/admin/CMP-ADM-ORD-01/02/01/login/TC-*.yaml`
53
53
  - ❌ `cases/admin/auth/W-…` — invented path not matching docs structure.
54
54
  - Cross-flow plans → `/scenario` (mirror `common/user-flows/FLOW-*` or `architecture/03-user-flows/FLOW-*`).
55
55
 
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  id: SC-EXAMPLE
3
- module: CMP-01-auth
3
+ module: CMP-ADM-AUTH-01
4
4
  surface: admin
5
- screen: W-AD-AUTH-001
5
+ screen: W-ADM-AUTH-01
6
6
  screens:
7
- - W-AD-AUTH-001
7
+ - W-ADM-AUTH-01
8
8
  rules:
9
9
  - RUL-00-example
10
10
  coverage_plan:
@@ -17,15 +17,15 @@ coverage_plan:
17
17
 
18
18
  # SC-EXAMPLE — Xác Thực & Khởi Tạo Hồ Sơ Khách Hàng
19
19
 
20
- Scenario thuộc **CMP-01-auth** · Tính năng năng lực **CAP-AUTH-001**.
20
+ Scenario thuộc **CMP-ADM-AUTH-01** · Tính năng năng lực **CAP-AUTH-001**.
21
21
  Quy tắc chi tiết và schema cơ sở dữ liệu tham chiếu tại **Docs Hub** (cite ID: `spec.yaml`).
22
22
 
23
23
  | Attribute | Value |
24
24
  | --- | --- |
25
25
  | **Scenario ID** | `SC-EXAMPLE` |
26
- | **Module** | `CMP-01-auth` |
26
+ | **Module** | `CMP-ADM-AUTH-01` |
27
27
  | **Surface** | `admin` |
28
- | **Screen** | `W-AD-AUTH-001` (`/admin/records/create`) |
28
+ | **Screen** | `W-ADM-AUTH-01` (`/admin/records/create`) |
29
29
  | **Priority** | `High` |
30
30
 
31
31
  ## 1. Business context & risk analysis
@@ -79,8 +79,8 @@ stateDiagram-v2
79
79
 
80
80
  | Case ID | Facets | Priority | Tests hub path |
81
81
  | --- | --- | --- | --- |
82
- | `TC-EXAMPLE-VALID` | happy, boundary | Critical | `cases/admin/CMP-01-auth/01/create/` |
83
- | `TC-EXAMPLE-INVALID` | validation, boundary | High | `cases/admin/CMP-01-auth/01/create/` |
84
- | `TC-EXAMPLE-DUPLICATE` | concurrency, remote_unique | High | `cases/admin/CMP-01-auth/01/create/` |
85
- | `TC-EXAMPLE-CONCURRENCY` | interaction, double_submit | High | `cases/admin/CMP-01-auth/01/create/` |
86
- | `TC-EXAMPLE-OFFLINE` | reliability, offline_resilience | Medium | `cases/admin/CMP-01-auth/01/create/` |
82
+ | `TC-EXAMPLE-VALID` | happy, boundary | Critical | `cases/admin/CMP-ADM-AUTH-01/01/create/` |
83
+ | `TC-EXAMPLE-INVALID` | validation, boundary | High | `cases/admin/CMP-ADM-AUTH-01/01/create/` |
84
+ | `TC-EXAMPLE-DUPLICATE` | concurrency, remote_unique | High | `cases/admin/CMP-ADM-AUTH-01/01/create/` |
85
+ | `TC-EXAMPLE-CONCURRENCY` | interaction, double_submit | High | `cases/admin/CMP-ADM-AUTH-01/01/create/` |
86
+ | `TC-EXAMPLE-OFFLINE` | reliability, offline_resilience | Medium | `cases/admin/CMP-ADM-AUTH-01/01/create/` |
@@ -10,11 +10,11 @@ story: |
10
10
  When thực hiện thao tác nhập liệu và nhấn lưu
11
11
  Then hệ thống tạo mới thành công và chuyển trạng thái
12
12
  refs:
13
- module: CMP-01-auth
13
+ module: CMP-ADM-AUTH-01
14
14
  surface: admin
15
15
  scenario: SC-EXAMPLE
16
16
  example: EX-EXAMPLE-01
17
- screen: W-AD-AUTH-001
17
+ screen: W-ADM-AUTH-01
18
18
  coverage: [happy, boundary, validation, concurrency, exception]
19
19
  priority: high
20
20
  automation: automated
@@ -123,7 +123,7 @@ testIds:
123
123
 
124
124
  # Fill when bundle is available (required for `flowgrid cases:gate --strict`).
125
125
  traceability:
126
- bundleScreen: W-AD-AUTH-001
126
+ bundleScreen: W-ADM-AUTH-01
127
127
  bundleScenarios: []
128
128
  acceptanceRefs: []
129
129
  actionRefs:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shanyucoder/flowgrid",
3
- "version": "0.1.10",
3
+ "version": "0.1.11",
4
4
  "description": "Unified Local MCP Toolkit (Graph, DNA, Docs, Test, Codegen)",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,7 +18,7 @@ status: "approved"
18
18
  * **Ma trận Vai trò & Quyền hạn:**
19
19
  | Tác nhân (Actor) | Vai trò trong Quy trình | Quyền hạn trên Màn hình |
20
20
  | :--- | :--- | :--- |
21
- | **Quản trị viên (Admin)** | Đăng nhập tài khoản | Nhập thông tin trên `[W-AD-AUTH-01]`, truy cập `[W-AD-DASH-01]` |
21
+ | **Quản trị viên (Admin)** | Đăng nhập tài khoản | Nhập thông tin trên `[W-ADM-AUTH-01]`, truy cập `[W-ADM-DASH-01]` |
22
22
 
23
23
  ---
24
24
 
@@ -26,8 +26,8 @@ status: "approved"
26
26
 
27
27
  ### Story 1: Xác thực & Truy cập Hệ thống (Primary Action Story)
28
28
  > **Là một** Quản trị viên hệ thống,
29
- > **Tôi muốn** nhập tên đăng nhập và mật khẩu hợp lệ trên màn hình đăng nhập `[W-AD-AUTH-01]`,
30
- > **Để** hệ thống xác thực danh tính và cấp quyền truy cập vào trang tổng quan `[W-AD-DASH-01]`.
29
+ > **Tôi muốn** nhập tên đăng nhập và mật khẩu hợp lệ trên màn hình đăng nhập `[W-ADM-AUTH-01]`,
30
+ > **Để** hệ thống xác thực danh tính và cấp quyền truy cập vào trang tổng quan `[W-ADM-DASH-01]`.
31
31
 
32
32
  ### Story 2: Xử lý Sai Thông tin & Khóa Tài khoản (Security Fallback Story)
33
33
  > **Là một** Quản trị viên hệ thống,
@@ -55,11 +55,11 @@ status: "approved"
55
55
 
56
56
  ## 4. Step-by-step journey
57
57
 
58
- ### Chặng 1: Nhập thông tin trên `[W-AD-AUTH-01]`
58
+ ### Chặng 1: Nhập thông tin trên `[W-ADM-AUTH-01]`
59
59
  1. **Thao tác:** Quản trị viên mở trang đăng nhập, điền `username` và `password`.
60
60
  2. **Bấm "Đăng nhập":**
61
61
  * Hệ thống kiểm tra xác thực thông tin đối soát với cơ sở dữ liệu tài khoản.
62
- * **Nếu hợp lệ:** Khởi tạo phiên làm việc an toàn, điều hướng sang `[W-AD-DASH-01] Dashboard`.
62
+ * **Nếu hợp lệ:** Khởi tạo phiên làm việc an toàn, điều hướng sang `[W-ADM-DASH-01] Dashboard`.
63
63
  * **Nếu sai thông tin:** Giữ nguyên màn hình đăng nhập, xóa trắng trường mật khẩu và hiển thị cảnh báo đỏ theo BR-03.
64
64
 
65
65
  ---
@@ -68,9 +68,9 @@ status: "approved"
68
68
 
69
69
  | Bước trong User Story | Màn hình liên quan | Hành động trên Sequence Diagram | Thành phần kỹ thuật đảm nhiệm |
70
70
  | :--- | :--- | :--- | :--- |
71
- | **Story 1 (Đăng nhập)** | `[W-AD-AUTH-01]` | `Admin ->> W_Auth ->> Core: Xác thực` | Auth Service, User Table |
72
- | **Story 1 (Điều hướng)** | `[W-AD-DASH-01]` | `W_Auth -->> W_Dash: Mở Dashboard` | Router & Session Storage |
73
- | **Story 2 (Sai mật khẩu)** | `[W-AD-AUTH-01]` | `W_Auth -->> Admin: Báo lỗi` | Form State & Error Alert |
71
+ | **Story 1 (Đăng nhập)** | `[W-ADM-AUTH-01]` | `Admin ->> W_Auth ->> Core: Xác thực` | Auth Service, User Table |
72
+ | **Story 1 (Điều hướng)** | `[W-ADM-DASH-01]` | `W_Auth -->> W_Dash: Mở Dashboard` | Router & Session Storage |
73
+ | **Story 2 (Sai mật khẩu)** | `[W-ADM-AUTH-01]` | `W_Auth -->> Admin: Báo lỗi` | Form State & Error Alert |
74
74
 
75
75
  ---
76
76
 
@@ -80,10 +80,10 @@ status: "approved"
80
80
  sequenceDiagram
81
81
  autonumber
82
82
  actor Admin as Quản trị viên
83
- participant W_Auth as [W-AD-AUTH-01] Màn hình Đăng nhập
83
+ participant W_Auth as [W-ADM-AUTH-01] Màn hình Đăng nhập
84
84
  participant Core as Dịch vụ Xác thực (Auth Service)
85
85
  participant Storage as Cơ sở dữ liệu Người dùng
86
- participant W_Dash as [W-AD-DASH-01] Bàn làm việc (Dashboard)
86
+ participant W_Dash as [W-ADM-DASH-01] Bàn làm việc (Dashboard)
87
87
 
88
88
  Admin->>W_Auth: 1. Mở trang đăng nhập
89
89
  Admin->>W_Auth: 2. Nhập tên tài khoản, mật khẩu & bấm "Đăng nhập"
@@ -12,7 +12,7 @@ High-level approach: docs hub as arc42 TOC + C4 views; product Code under `CMP-*
12
12
  |-------|----------|
13
13
  | Docs structure | [ADR-001](../09-decisions/ADR-001-arc42-toc) — arc42 TOC over flat C4 folders |
14
14
  | Admin runtime | Admin Web + Admin API ([§07](../07-deployment/)) |
15
- | Auth entry | [CMP-01](/surfaces/CMP-01-auth/) · [FLOW-login](../06-runtime/journeys/FLOW-login) |
15
+ | Auth entry | [CMP-ADM-AUTH-01](/surfaces/admin/CMP-ADM-AUTH-01/) · [FLOW-login](../03-user-flows/FLOW-login) |
16
16
 
17
17
  Further ADRs land in [§09](../09-decisions/).
18
18
 
@@ -11,7 +11,7 @@ Authenticate admin operators and protect Admin API (session/token). Details evol
11
11
 
12
12
  ## Approach
13
13
 
14
- TBD — link ADR / CMP-01 / FLOW-login when expanded.
14
+ TBD — link ADR / CMP-ADM-AUTH-01 / FLOW-login when expanded.
15
15
 
16
16
  ## Out of scope
17
17
 
@@ -9,8 +9,9 @@ status: active
9
9
  | `LND-*` | Landscape |
10
10
  | `DEP-*` | Deployment node |
11
11
  | `CTR-*` | Container |
12
- | `CMP-*` | Component (product) |
13
- | `W-*` / `API-*` | Screen / API Code |
12
+ | `surfaceCode` | 2–4 letter token on `surfaces/*/index.md` — embedded in all product IDs on that channel |
13
+ | `CMP-*` | Component (product) — folder name = id, pattern `CMP-{SURF}-{DOMAIN}-{NN}` |
14
+ | `W-*` / `API-*` | Screen / API — `W-{SURF}-{DOMAIN}-{NN}` (globally unique) |
14
15
  | `FLOW-*` | Product journey (runtime) |
15
16
  | `DEP-*` | Deployment (optional) |
16
17
  | `ADR-*` | Architecture decision |
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Structurizr DSL — pilot skeleton (Phase B).
3
3
  * SSOT for prose/IDs remains MD under architecture/ + surfaces/ (see MODEL.md).
4
- * IDs mirror docs hub: admin, web, CMP-01.
4
+ * IDs mirror docs hub: admin, CMP-ADM-AUTH-01, W-ADM-AUTH-01.
5
5
  */
6
6
  workspace "base-docs platform" "arc42 × C4 pilot model" {
7
7
 
@@ -12,10 +12,10 @@ workspace "base-docs platform" "arc42 × C4 pilot model" {
12
12
 
13
13
  admin = softwareSystem "Admin Product" "Admin product boundary" {
14
14
  web = container "Admin Web" "Admin SPA / FE" "Nuxt/Next" {
15
- auth = component "CMP-01 Auth" "Authentication module" "Vue/React"
15
+ auth = component "CMP-ADM-AUTH-01" "Authentication module" "Vue/React"
16
16
  }
17
17
  api = container "Admin API" "Admin HTTP API" "Nest/FastAPI" {
18
- authApi = component "CMP-01 Auth API" "Auth endpoints" "Node"
18
+ authApi = component "API-ADM-AUTH-01" "Auth endpoints" "Node"
19
19
  }
20
20
  db = container "Admin DB" "Storage" "PostgreSQL" "Database"
21
21
  }
@@ -46,19 +46,19 @@ workspace "base-docs platform" "arc42 × C4 pilot model" {
46
46
  autoLayout tb
47
47
  }
48
48
 
49
- component web "CMP-01-web" {
49
+ component web "CMP-ADM-AUTH-01-web" {
50
50
  include *
51
51
  autoLayout lr
52
52
  }
53
53
 
54
- component api "CMP-01-api" {
54
+ component api "API-ADM-AUTH-01-api" {
55
55
  include *
56
56
  autoLayout lr
57
57
  }
58
58
 
59
59
  dynamic admin "FLOW-login" {
60
- op -> web "Open login W-AD-AUTH-001"
61
- web -> api "POST login API-AD-AUTH-001"
60
+ op -> web "Open login W-ADM-AUTH-01"
61
+ web -> api "POST login API-ADM-AUTH-01"
62
62
  api -> idp "Validate credentials"
63
63
  api -> web "session / token"
64
64
  web -> op "Authenticated shell"
@@ -1,11 +1,11 @@
1
1
  ---
2
- id: CMP-NN-slug
2
+ id: CMP-ADM-DOMAIN-01
3
3
  title: "Module name"
4
4
  status: draft
5
5
  contentLocale: vi
6
6
  ---
7
7
 
8
- # CMP-{NN} — [Name]
8
+ # CMP-ADM-DOMAIN-01 — [Name]
9
9
 
10
10
  > Section titles are **English**. Prose uses `contentLocale` / `docs-hub.locale.yaml`.
11
11
 
@@ -1,5 +1,6 @@
1
1
  ---
2
2
  id: SURFACE-TEMPLATE
3
+ surfaceCode: ADM
3
4
  title: "Surface channel name"
4
5
  status: draft
5
6
  contentLocale: vi
@@ -288,7 +288,7 @@ actions:
288
288
  trigger: button_click
289
289
  apiRefs: [ feature.create ]
290
290
  # tags: ["#reuse-api"]
291
- # reuseFrom: surfaces/admin/CMP-01/auth/01/01/01/api/01/01-backend-spec.yaml
291
+ # reuseFrom: surfaces/admin/CMP-ADM-AUTH-01/01/01/01/api/01/01-backend-spec.yaml
292
292
  onSuccess:
293
293
  - Navigate to list page
294
294
  - Show success toast "Created successfully"
@@ -2,7 +2,7 @@
2
2
 
3
3
  Đặt `TC-*.yaml` mirror path function trên docs-hub (bỏ prefix `surfaces/`).
4
4
 
5
- Ví dụ docs: `surfaces/admin/CMP-ADM-002/02/01/login/` → `cases/admin/CMP-ADM-002/02/01/login/TC-*.yaml`
5
+ Ví dụ docs: `surfaces/admin/CMP-ADM-ORD-01/02/01/login/` → `cases/admin/CMP-ADM-ORD-01/02/01/login/TC-*.yaml`
6
6
 
7
7
  - SSOT ghi: `TC-*.yaml` (`schemaVersion: 2`) — copy mẫu từ `../_templates/TC.example.yaml` (init từ harness).
8
8
  - SSOT đọc QA/Dev: `pnpm cases:render` → `TC-*.md` cùng thư mục — **không sửa tay** MD.