@shanyucoder/flowgrid 0.1.11 → 0.1.13

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 (83) hide show
  1. package/adapters/shared/resolve-hub-id.mjs +5 -1
  2. package/dist/docs/mcp/tools.js +59 -6
  3. package/dist/docs/mcp/tools.js.map +1 -1
  4. package/dist/docs/scan/screen-to-flows.d.ts +3 -0
  5. package/dist/docs/scan/screen-to-flows.js +18 -0
  6. package/dist/docs/scan/screen-to-flows.js.map +1 -0
  7. package/engines/docs/lib/render-bundle-markdown.mjs +19 -0
  8. package/engines/docs/lib/render-design-markdown.mjs +56 -0
  9. package/engines/docs/lib/screen-to-flows-index.mjs +121 -0
  10. package/engines/docs/vitepress/surfaces-nav.mjs +7 -0
  11. package/engines/spec/lib/audit-bundle-gaps.mjs +15 -3
  12. package/engines/spec/lib/audit-interaction-cases.mjs +186 -0
  13. package/engines/spec/lib/bundle-ir.mjs +7 -0
  14. package/engines/spec/lib/bundle-schema.mjs +1 -0
  15. package/engines/spec/lib/interaction-cases.mjs +46 -0
  16. package/engines/spec/split-bundle.mjs +1 -1
  17. package/harness/be/adapters/dotnet-integration/skills/framework-rules-be/SKILL.md +2 -2
  18. package/harness/be/adapters/fastapi/skills/framework-rules-be/SKILL.md +3 -3
  19. package/harness/be/adapters/laravel/skills/framework-rules-be/SKILL.md +3 -3
  20. package/harness/be/skills/api/SKILL.md +4 -4
  21. package/harness/be/skills/api-unit/SKILL.md +4 -4
  22. package/harness/be/skills/audit-api/SKILL.md +3 -3
  23. package/harness/be/skills/grill-api-unit/SKILL.md +2 -2
  24. package/harness/common/rules/artifactgraph.mdc +2 -2
  25. package/harness/common/rules/cross-repo-index.mdc +2 -2
  26. package/harness/common/rules/platform-code-size.mdc +5 -5
  27. package/harness/common/rules/team-flow-harness-state.mdc +4 -4
  28. package/harness/common/skills/business-impact-review/SKILL.md +1 -1
  29. package/harness/common/skills/configure-repo-maps/SKILL.md +1 -1
  30. package/harness/common/skills/docs-mark/SKILL.md +4 -4
  31. package/harness/docs/extracts/agent-design-context.md +136 -0
  32. package/harness/docs/extracts/extract-registry.docs.json +9 -3
  33. package/harness/docs/extracts/ir-read-only.md +42 -0
  34. package/harness/docs/rules/agent-compliance.mdc +5 -1
  35. package/harness/docs/rules/docs-hub.mdc +6 -6
  36. package/harness/docs/rules/flowgrid-process.mdc +5 -5
  37. package/harness/docs/rules/team-flow-grill.mdc +1 -1
  38. package/harness/docs/rules/team-flow-spec.mdc +5 -5
  39. package/harness/docs/skills/adopt/SKILL.md +1 -1
  40. package/harness/docs/skills/api/SKILL.md +2 -2
  41. package/harness/docs/skills/api-spec/SKILL.md +4 -0
  42. package/harness/docs/skills/build-templates/SKILL.md +1 -1
  43. package/harness/docs/skills/call-external/SKILL.md +1 -1
  44. package/harness/docs/skills/cross-entity-service/SKILL.md +1 -1
  45. package/harness/docs/skills/db-erd/SKILL.md +2 -2
  46. package/harness/docs/skills/grill/SKILL.md +1 -1
  47. package/harness/docs/skills/grill-api-spec/SKILL.md +3 -3
  48. package/harness/docs/skills/grill-bqa/SKILL.md +2 -2
  49. package/harness/docs/skills/grill-dev/SKILL.md +31 -13
  50. package/harness/docs/skills/grill-docs/SKILL.md +2 -2
  51. package/harness/docs/skills/grill-hub-prd/SKILL.md +1 -1
  52. package/harness/docs/skills/openapi/SKILL.md +3 -3
  53. package/harness/docs/skills/risk-register/SKILL.md +8 -8
  54. package/harness/docs/skills/spec/SKILL.md +20 -12
  55. package/harness/docs/skills/update-spec/SKILL.md +17 -7
  56. package/harness/docs/skills/user-flow/SKILL.md +4 -2
  57. package/harness/fe/adapters/dotnet-line/skills/framework-rules/SKILL.md +2 -2
  58. package/harness/fe/adapters/nextjs/skills/framework-rules/SKILL.md +2 -2
  59. package/harness/fe/adapters/nuxt4/skills/framework-rules/SKILL.md +2 -2
  60. package/harness/fe/rules/cross-repo-index-routing.mdc +1 -1
  61. package/harness/fe/rules/flowgrid-test-optional-accelerators.mdc +3 -3
  62. package/harness/fe/rules/team-flow-prototype.mdc +13 -13
  63. package/harness/fe/rules/team-flow-unit.mdc +6 -6
  64. package/harness/fe/skills/grill-prototype/SKILL.md +2 -2
  65. package/harness/fe/skills/grill-test/SKILL.md +1 -1
  66. package/harness/fe/skills/grill-unit/SKILL.md +2 -2
  67. package/harness/fe/skills/grill-wire/SKILL.md +1 -1
  68. package/harness/fe/skills/model/SKILL.md +4 -4
  69. package/harness/fe/skills/prototype/SKILL.md +23 -11
  70. package/harness/fe/skills/test/SKILL.md +3 -3
  71. package/harness/fe/skills/unit/SKILL.md +4 -4
  72. package/harness/fe/skills/wire/SKILL.md +5 -5
  73. package/harness/shared/rules/flowgrid-code-optional-integrations.mdc +7 -7
  74. package/harness/tests/rules/cross-repo-index-routing.mdc +1 -1
  75. package/harness/tests/rules/flowgrid-test-optional-accelerators.mdc +3 -3
  76. package/harness/tests/rules/plans-docs-first.mdc +5 -5
  77. package/harness/tests/skills/grill-testcase/SKILL.md +4 -4
  78. package/harness/tests/skills/scenario/SKILL.md +3 -3
  79. package/harness/tests/skills/testcase/SKILL.md +2 -2
  80. package/package.json +1 -1
  81. package/templates/shared/bundle-authoring.md +13 -6
  82. package/templates/shared/default-layout.ejs +47 -2
  83. package/templates/shared/feature.bundle.yaml +29 -1
@@ -4,26 +4,26 @@ description: /risk-register — Maintain architecture/11-risks/risk-register.md
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- # /risk-register — Sổ rủi ro tổng hợp
7
+ # /risk-register — Consolidated risk register
8
8
 
9
9
  **SSOT:** `architecture/11-risks/risk-register.md`
10
10
  **Template:** `harness/docs/extracts/tpl-risk-register.md`
11
11
 
12
- **Khi dùng:** Rủi ro **không gắn một màn** — hạn mức email/SMS/API, license, SLA vendor, capacity cao điểm.
12
+ **When to use:** Risks **not tied to a single screen** — email/SMS/API quotas, licenses, vendor SLA, peak capacity.
13
13
 
14
14
  ---
15
15
 
16
16
  ## Rule: Audit interlock
17
17
 
18
- - **[MANDATORY]** `flowgrid audit risks architecture/11-risks/risk-register.md` trước/sau sửa.
19
- - **[MANDATORY]** Mỗi dòng: so sánh **Hạn mức** vs **Nhu cầu** → **Chênh lệch** → **Ảnh hưởng** → **Phương án**.
20
- - **[STRICTLY FORBIDDEN]** Ghi `risks:` trên `*.bundle.yaml` — SSOT chỉ file này.
18
+ - **[MANDATORY]** `flowgrid audit risks architecture/11-risks/risk-register.md` before/after edits.
19
+ - **[MANDATORY]** Each row: compare **Limit** vs **Need** → **Gap** → **Impact** → **Mitigation**.
20
+ - **[STRICTLY FORBIDDEN]** Put `risks:` on `*.bundle.yaml` — SSOT is this file only.
21
21
 
22
22
  ## Rule: AskQuestion (Law 2)
23
23
 
24
- Thiếu số (quota, peak): wizard ≥3 options (Recommended / Other / Tech debt → `qa/`).
24
+ Missing numbers (quota, peak): wizard ≥3 options (Recommended / Other / Tech debt → `qa/`).
25
25
 
26
26
  ## Verification
27
27
 
28
- - [ ] Ít nhất một rủi ro thật (không chỉ RISK-EXAMPLE).
29
- - [ ] Audit `risks` trên register: gaps = 0 hoặc defer qa.
28
+ - [ ] At least one real risk (not only RISK-EXAMPLE).
29
+ - [ ] Audit `risks` on register: gaps = 0 or deferred via qa.
@@ -9,7 +9,7 @@ disable-model-invocation: true
9
9
  > **[MANDATORY]** Re-read this entire `SKILL.md` via file-read tool. **STRICTLY FORBIDDEN** to rely on memory.
10
10
  > **[MANDATORY]** Read `.flowgrid/templates/feature.bundle.yaml` + `.flowgrid/templates/bundle-authoring.md` BEFORE generating any YAML. **Do NOT** use `design-spec.yaml` (deprecated).
11
11
  > If templates are missing → STOP: *"Template missing. Run `flowgrid init` to generate templates."*
12
- > **Extract:** `spec-ssot-prep.md`, `spec-prd-lite.md`, `db-audit-wizard.md`, `design-leaf-signoff.md`.
12
+ > **Extract:** `spec-ssot-prep.md`, `spec-prd-lite.md`, `db-audit-wizard.md`, `design-leaf-signoff.md`, `agent-design-context.md`, `ir-read-only.md`.
13
13
  > Physical interlocks: `AGENTS.md` + `SSOT_AGENT_PROTOCOL.md` (Laws 1–7). Chat-only done = **FAILED**.
14
14
 
15
15
  # /spec — Function detail (design)
@@ -52,17 +52,17 @@ Hub: [spec-ssot-prep.md](../../../docs/workflows/spec-ssot-prep.md) · extract `
52
52
  - **[MANDATORY]** Before first leaf on a **custom/maintain** project: confirm **custom-base** (`build-template-code`) or **standard** `registry:sync` — agent must map `#ui:` / `#shell:` from real `design.registry.json`, not invent `#needs-component`.
53
53
  - **[MANDATORY]** **Brownfield workspace:** `/adopt` + `audit legacy` on inventory **before** `/legacy /spec` on any `W-*` (see `/legacy` modifier below).
54
54
  - **[MANDATORY]** When `adoption-inventory.md` exists at workspace root: read **Section 5 (Common Catalog Candidates)** on every `/spec` and `/legacy /spec` — inherit `CMN-*`; **STRICTLY FORBIDDEN** copy-paste legacy files into new bundles.
55
- - **Greenfield hub mới (no legacy):** skip `/adopt`; prep = nhánh A/B only.
55
+ - **New greenfield docs hub (no legacy):** skip `/adopt`; prep = branch A/B only.
56
56
 
57
57
  ---
58
58
 
59
59
  ## Rule: Audit Interlock
60
60
 
61
- - **[MANDATORY]** If bundle file already exists: run `flowgrid audit spec <path-to-bundle.yaml> --type <pageType>` first.
62
- - `<pageType>` = page type đã xác định ở bước trên (list | create | detail | admin-crud | auth | ...).
61
+ - **[MANDATORY]** If bundle file already exists: run `flowgrid audit spec <path-to-bundle.yaml> --type <pageType>` first — **bundle path only** (includes `interactionCases`, `userFlows`, UX/DB confirms); never point audit at `ir/spec.yaml` or `ir/design.yaml`.
62
+ - `<pageType>` = page type determined in the step above (list | create | detail | admin-crud | auth | ...).
63
63
  - Script output:
64
64
  - `gaps[]` → required fields missing → Agent patches bundle directly.
65
- - `warnings[]` → **quality hints** (`scopeIn`, `nonGoals`, `nfr`, `userFlows`, placeholders) — fix when info exists; **does not** block split. Rủi ro → `/risk-register` only (`WARN_BUNDLE_RISKS_FORBIDDEN` if `risks:` on bundle).
65
+ - `warnings[]` → **quality hints** (`scopeIn`, `nonGoals`, `nfr`, `userFlows`, placeholders) — fix when info exists; **does not** block split. Risks → `/risk-register` only (`WARN_BUNDLE_RISKS_FORBIDDEN` if `risks:` on bundle).
66
66
  - `confirms[]` → AskQuestion wizard (one question at a time, ≥3 options):
67
67
  - UX: `category: ux`, `UX_*`, `CONFIRM_UX_*` — `flowgrid-ux-common.mdc`
68
68
  - **DB:** `category: db`, `CONFIRM_DB_*` — `.cursor/extracts/db-audit-wizard.md` (entities, multi-table, `db` vs `01`, `#derived-data`)
@@ -96,9 +96,14 @@ Hub: [spec-ssot-prep.md](../../../docs/workflows/spec-ssot-prep.md) · extract `
96
96
 
97
97
  ## Rule: Load Policy
98
98
 
99
- - **[MANDATORY]** Write the **entire** `*.bundle.yaml` (authoring SSOT).
100
- - **[MANDATORY]** After split exists: re-read **entire** `ir/design.yaml` + `ir/spec.yaml`; do not skim partial keys.
101
- - **[STRICTLY FORBIDDEN]** Do NOT read generated `*.md` files.
99
+ See **`ir-read-only.md`**: **bundle → split → render**; IR and generated MD are **read-only**.
100
+
101
+ - **[MANDATORY]** **Write** only `*.bundle.yaml` on the leaf (authoring SSOT).
102
+ - **[MANDATORY]** `userFlows`, `nfr`, `interactionCases`, `design.stateMatrix` / `actions` → write on **`*.bundle.yaml`** only; `flowgrid split` projects them to `ir/*`.
103
+ - **[OPTIONAL]** After split: re-read `ir/design.yaml` + `ir/spec.yaml` to **verify** projection — **never patch** IR to “fix” content.
104
+ - **[STRICTLY FORBIDDEN]** Write or patch `ir/spec.yaml`, `ir/design.yaml`, or any `ir/generated/*`.
105
+ - **[STRICTLY FORBIDDEN]** Use `spec:merge` / `flowgrid merge` instead of editing the bundle.
106
+ - Member review of **`ir/generated/spec.md`** (VitePress) → hand off gaps to **`/update-spec`**, not to IR edits.
102
107
 
103
108
  ---
104
109
 
@@ -108,7 +113,7 @@ Hub: [spec-ssot-prep.md](../../../docs/workflows/spec-ssot-prep.md) · extract `
108
113
  2. Detect page type from prompt or existing bundle's `codegen.profile`.
109
114
  3. Run audit: `flowgrid audit spec <bundle> --type <pageType>` (if bundle exists).
110
115
  4. Process audit output: fill `gaps[]` directly; **`confirms[]` (UX + DB)** → `AskQuestion` wizard per `db-audit-wizard.md` / `flowgrid-ux-common.mdc`.
111
- 5. **Zone-based multi-turn authoring** (see rule below): chia page thành zones, phân tích từng zone trong turn riêng.
116
+ 5. **Zone-based multi-turn authoring** (see rule below): split the page into zones; analyze each zone in a separate turn.
112
117
  6. Write/update `*.bundle.yaml` with `specOrigin: requirement`.
113
118
  7. Apply **DSL/registry** + `flowgrid-ux-common.mdc` (FE base patterns — no `common/yaml` / gen-common).
114
119
  8. Run `pnpm docs:split -- <bundle>` → `pnpm docs:render` (design MD only).
@@ -149,11 +154,14 @@ Each zone turn — **in order**:
149
154
  - **[MANDATORY]** List columns: `key` consistent with `bind.field`; computed-only columns → document `#derived-data` (see `common/data-model/derived-data.md`), no fake `db`.
150
155
  - **[STRICTLY FORBIDDEN]** Empty `entities: []` while form/list has multiple persisted `db.field` without QA defer.
151
156
  - **Authoring detail:** [bundle-authoring.md § Data model](../../../templates/shared/bundle-authoring.md#data-model--phase-0-erd-vs-screen-detail) · [tpl-screen-data-model.md](../../../templates/shared/tpl-screen-data-model.md) (multi-table).
152
- - **Sau split:** `ir/generated/data-model.md` cho review. **Audit:** `CONFIRM_DB_*` → member wizard; sau chốt → re-audit. BE SSOT: `01` khớp `db` (drift → `/api-update`).
157
+ - **After split:** `ir/generated/data-model.md` for review. **Audit:** `CONFIRM_DB_*` → member wizard; re-audit after confirm. BE SSOT: `01` must match `db` (drift → `/api-update`).
153
158
 
154
159
  ### Rule: Summary extensions (PRD lite)
155
160
  - **[MANDATORY]** `summary` bullets: business_goals, stakeholders, user_journey, context (input/output), optional solution.
156
- - **[RECOMMENDED]** Fill `scopeIn`, `nonGoals`, `userFlows`, `nfr` when PO/BA có thông tin. Rủi ro dự án → **`/risk-register`** (`architecture/11-risks/risk-register.md`), never `risks:` on bundle.
161
+ - **[RECOMMENDED]** Fill `scopeIn`, `nonGoals`, `userFlows`, `nfr` when PO/BA provide facts. Complex single-screen flows → `interactionCases` (L2) or resolve audit `CONFIRM_INTERACTION_CASES_POLICY`. Project risks → **`/risk-register`**, never `risks:` on bundle.
162
+ - **[MANDATORY]** `userFlows:` bullets link **`FLOW-*`** (`FLOW-id — role: … — screens: W-* (this leaf)`). Journey sequence lives in **`FLOW-*.md` §6** — not in bundle.
163
+ - **[RECOMMENDED]** Multi-state / multi-case on **one screen:** optional top-level **`interactionCases`** (`policy`, `items[]` with `IC-*`, `description`, `sequenceDiagram`) — see `agent-design-context.md`. After split: prose → `spec.md`, diagrams → `design.md`.
164
+ - **[MANDATORY]** Consume `confirms[]` **`CONFIRM_INTERACTION_CASES_POLICY`** from audit — set `policy: required` or `policy: skip` + `skipReason`.
157
165
  - **[MANDATORY]** Replace template `[placeholder]` brackets in `summary` / metrics / non-goals before handoff grill.
158
166
 
159
167
  ### Rule: User Stories (`userStories`)
@@ -269,6 +277,6 @@ Each zone turn — **in order**:
269
277
  - [ ] UX gap questions used checklist-backed `(Recommended)` options (`flowgrid-ux-common.mdc`), not open brainstorming.
270
278
  - [ ] `userStories` scenarios/AC reflect UX affordances patched in `design` (incl. audit `suggestedStoryPatch`).
271
279
  - [ ] YAML strings with `:` or `[]` are double-quoted. No `.md` written by hand.
272
- - [ ] PRD fields (`scopeIn`, `nonGoals`, `userFlows`, `nfr`) filled or deferred via `qa/` (no template brackets). Rủi ro không trên bundle.
280
+ - [ ] PRD fields (`scopeIn`, `nonGoals`, `userFlows`, `nfr`) filled or deferred via `qa/` (no template brackets). No project risks on bundle (`/risk-register` only).
273
281
  - [ ] `pnpm docs:split` + `pnpm docs:render` run with zero errors; `ir/generated/spec.md` has TOC + overview sections.
274
282
  - [ ] Handoff → `/testcase` created.
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: update-spec
3
3
  extractBundle: update-spec
4
- description: /update-spec — delta update bundle/spec.
4
+ description: /update-spec — patch bundle after VitePress review; split+render (never edit ir/*).
5
5
  disable-model-invocation: true
6
6
  ---
7
7
 
@@ -17,10 +17,20 @@ Doc hub: `platform/toolchain/UPDATE-SPEC-FLOW.md` · `platform/toolchain/FEATURE
17
17
 
18
18
  ## Rule: Load Policy
19
19
 
20
- | Read (whole file) | Write | NEVER |
20
+ See **`ir-read-only.md`**. One write path: **bundle → split → render**.
21
+
22
+ | Read (for gap analysis) | Write | NEVER |
21
23
  |---|---|---|
22
- | **`ir/design.yaml`** — current tech/UI | Patch `*.bundle.yaml` → then split | Write generated `*.md`; write to `ir/*` directly |
23
- | **`ir/spec.yaml`** — ONLY when delta involves requirements/acceptance prose | | Read only `design.sections` / `spec.ui` partial slices |
24
+ | **`ir/generated/spec.md`** — primary review surface (VitePress) | **`*.bundle.yaml`** only | **`ir/spec.yaml`**, **`ir/design.yaml`**, any **`ir/generated/*`** |
25
+ | **`ir/design.yaml`** + **`ir/spec.yaml`** — whole file when delta touches tech vs prose | Then `flowgrid split` + `flowgrid render` | `spec:merge` / `flowgrid merge` for review fixes |
26
+
27
+ ---
28
+
29
+ ## Rule: Review → delta (member loop)
30
+
31
+ - **[MANDATORY]** Assume the member found gaps while reading **`ir/generated/spec.md`** (and `design.md` / `api.md` when relevant) — **read-only** artifacts.
32
+ - **[MANDATORY]** Translate every fix into a **minimal bundle patch**, then audit → split → render.
33
+ - **[STRICTLY FORBIDDEN]** Patch `ir/*` or `ir/generated/*` to “save time”.
24
34
 
25
35
  ---
26
36
 
@@ -28,7 +38,7 @@ Doc hub: `platform/toolchain/UPDATE-SPEC-FLOW.md` · `platform/toolchain/FEATURE
28
38
 
29
39
  - **[MANDATORY]** Scope: patch bundle (delta only); emit `#update:*` tags; bump `specRevision`; run `flowgrid split/check`.
30
40
  - **[STRICTLY FORBIDDEN]** Full rewrite → `/spec`. Close `qa` item → `/qa-resolve`. Production code → NOT this skill.
31
- - **[MANDATORY]** Legacy re-mine / trace lại từ code cũ: dùng **`/legacy /spec`** (adopt lại) hoặc **`/update-spec`** với delta `legacy` / `legacyEvidence` + `#update:*` — **không** skill riêng.
41
+ - **[MANDATORY]** Legacy re-mine / re-trace from old code: use **`/legacy /spec`** (re-adopt) or **`/update-spec`** with delta `legacy` / `legacyEvidence` + `#update:*` — not a separate skill.
32
42
 
33
43
  ---
34
44
 
@@ -48,7 +58,7 @@ Doc hub: `platform/toolchain/UPDATE-SPEC-FLOW.md` · `platform/toolchain/FEATURE
48
58
  - **[MANDATORY]** Patch minimal YAML sections in **bundle** only (not `ir/*`).
49
59
  - **[MANDATORY]** When the delta touches scope or acceptance: update `summary`, `successMetrics`, or `nonGoals` if PO changed goals/out-of-scope; sync `userStories` / AC.
50
60
  - **[MANDATORY]** When the delta touches `design.actions`, `design.sections`, or `spec.ui` (list/form/detail, filters, row actions): run the **UX ↔ userStories** checklist in `templates/shared/bundle-authoring.md` — sync `userStories.scenarios` / `acceptanceCriteria` prose when behavior or affordances change (do not leave business story stale).
51
- - **[MANDATORY]** Before split/merge: run `flowgrid audit spec <bundle.yaml> --type <pageType>` and resolve or explicitly defer `UX_*` / gap codes; do not hand off FE/tests with a fresh structural delta and no re-audit.
61
+ - **[MANDATORY]** Before split: run `flowgrid audit spec <bundle.yaml> --type <pageType>` and resolve or explicitly defer `UX_*` / gap codes; do not hand off FE/tests with a fresh structural delta and no re-audit.
52
62
  - **[MANDATORY]** Preserve error matrices: when patching actions/API endpoints, ensure `onSuccess`, `onCommonError`, `onSpecificError` + `#err:*` tags are preserved and updated accordingly.
53
63
  - ✅ Add new `onSpecificError.409` entry alongside existing `onSuccess` block.
54
64
  - ❌ Overwrite or delete existing error handling blocks that are unrelated to this delta.
@@ -71,7 +81,7 @@ Doc hub: `platform/toolchain/UPDATE-SPEC-FLOW.md` · `platform/toolchain/FEATURE
71
81
  8. `flowgrid_docs_bundle_check` / `flowgrid split --check -- <bundle>` (fallback: `pnpm docs:check`).
72
82
  9. User runs `docs_render` / `flowgrid render` (fallback: `pnpm docs:render`).
73
83
  10. Follow-up per patch type: handoff FE `/prototype` or `/grill-dev` / `/grill-bqa`; if API contract changed → `/api-update` before `openapi:gen`.
74
- 11. When delta originated from wire/`audit fe-be` on FE: read `.cursor/extracts/wire-spec-feedback.md`; after merge handoff tests-hub `/grill-testcase` then FE `/wire` or `/grill-wire`.
84
+ 11. When delta originated from wire/`audit fe-be` on FE: read `.cursor/extracts/wire-spec-feedback.md`; after bundle patch + split handoff tests-hub `/grill-testcase` then FE `/wire` or `/grill-wire`.
75
85
 
76
86
  ---
77
87
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: user-flow
3
- description: /user-flow — Luồng người dùng (FLOW-*) trên surfaces.
3
+ description: /user-flow — Author cross-surface user journeys (FLOW-*.md) on the docs hub.
4
4
  disable-model-invocation: true
5
5
  extractBundle: architecture-core
6
6
  ---
@@ -12,7 +12,9 @@ extractBundle: architecture-core
12
12
 
13
13
  **Mindset:** Model the process by **business actions on surfaces**, not by repository or service topology.
14
14
 
15
- **Template:** `architecture/03-user-flows/FLOW-template.md` (or `**/common/user-flows/FLOW-*.md`) — **Non-goals** in §1 when information exists (KPI ngoài hub).
15
+ **Template:** `architecture/03-user-flows/FLOW-template.md` (or `**/common/user-flows/FLOW-*.md`) — **Non-goals** in §1 when information exists (out-of-hub KPIs).
16
+
17
+ **Leaf link:** Bundles reference this file via `userFlows:` (`FLOW-* — role — screens`). Agents read FLOW **before** codegen (`agent-design-context.md`). **Do not** put single-screen multi-state cases here — use bundle `interactionCases` (L2).
16
18
 
17
19
  ---
18
20
 
@@ -8,10 +8,10 @@ disable-model-invocation: true
8
8
 
9
9
  **Owner:** Platform DNA (`--type=fe|monolith --fe-adapter=dotnet-line`)
10
10
 
11
- WinForms Line client · bộ code grill/gen first when applicable.
11
+ WinForms Line client · code repo grill/gen first when applicable.
12
12
  Not Nuxt/Next — do not apply web FE layer rules here.
13
13
 
14
- ## Gen trước (code)
14
+ ## Gen first (code)
15
15
 
16
16
  1. Prefer codegen / existing Line templates before free-form UI scaffolding
17
17
  2. AI fills gaps only — do not duplicate generated surfaces
@@ -12,9 +12,9 @@ Auth-first Next.js · App Router · shadcn · Playwright. Code under `src/`.
12
12
 
13
13
  **Rules (FE globs):** `platform-invariants.mdc` · contract-naming · `framework-rules-*` · size/split/import · design-vocab (product repo).
14
14
 
15
- ## Gen trước (code)
15
+ ## Gen first (code)
16
16
 
17
- 1. bộ code `gen` / repo shim from IR already grilled
17
+ 1. code repo `gen` / repo shim from IR already grilled
18
18
  2. AI only fills gaps: Mo* / `#needs-*` not yet in registries
19
19
  3. Do not write boilerplate when codegen already covers it
20
20
 
@@ -12,9 +12,9 @@ Auth-first Nuxt 4 · Pinia · vee-validate+Zod · shadcn · Playwright.
12
12
 
13
13
  **Rules (FE globs):** `platform-invariants.mdc` · `platform-contract-naming.mdc` · `framework-rules-*` · size/split/import · design-vocab (product repo).
14
14
 
15
- ## Gen trước (code)
15
+ ## Gen first (code)
16
16
 
17
- 1. bộ code `gen` / repo shim from IR already grilled
17
+ 1. code repo `gen` / repo shim from IR already grilled
18
18
  2. AI only fills gaps: Mo* / `#needs-*` not yet in `registries/`
19
19
  3. Do not write layer boilerplate when codegen already covers it
20
20
 
@@ -5,7 +5,7 @@ alwaysApply: true
5
5
 
6
6
  # Cross-repo index routing
7
7
 
8
- - Architecture IDs and Functions/W-* paths belong to bộ docs through `FLOWGRID_DOCS_ROOT`.
8
+ - Architecture IDs and Functions/W-* paths belong to docs hub through `FLOWGRID_DOCS_ROOT`.
9
9
  Never use CodeGraph as the architecture index.
10
10
  - Test plans use `FLOWGRID_TESTS_DOC`; docs evidence uses
11
11
  `FLOWGRID_DOCS_ROOT`; IR/registry/generation follows its owning pointer such as
@@ -1,9 +1,9 @@
1
1
  ---
2
- description: bộ test optional accelerator fallback and event contract
2
+ description: tests hub optional accelerator fallback and event contract
3
3
  alwaysApply: true
4
4
  ---
5
5
 
6
- # bộ test optional accelerators
6
+ # tests hub optional accelerators
7
7
 
8
8
  ArtifactGraph accelerates coverage and search but is never required. When it is
9
9
  missing or fails, continue with deterministic local coverage/search. Assign one
@@ -13,7 +13,7 @@ stable `runId` per run and emit exactly one `flowgrid.missing-optional` event pe
13
13
  ArtifactGraph is local-only: in this repo it indexes this repo's own data
14
14
  (taxonomy/coverage hints) and never follows `FLOWGRID_DOCS_ROOT` or
15
15
  `FLOWGRID_TESTS_DOC`. Canonical docs/tests-hub evidence always flows through
16
- those bộ test pointers, never through ArtifactGraph.
16
+ those tests hub pointers, never through ArtifactGraph.
17
17
 
18
18
  Events must conform to
19
19
  `.cursor/schemas/flowgrid-test/missing-optional-event.schema.json`. Metrics count only
@@ -6,7 +6,7 @@ alwaysApply: false
6
6
 
7
7
  # Team Flow — Prototype
8
8
 
9
- Active: `/prototype` và `/grill-prototype` — **hai** session (prototype trước, grill-prototype sau).
9
+ Active: `/prototype` and `/grill-prototype` — **two** sessions (prototype first, then grill-prototype).
10
10
 
11
11
  | Command | Skill |
12
12
  |---------|-------|
@@ -16,21 +16,21 @@ Active: `/prototype` và `/grill-prototype` — **hai** session (prototype trư
16
16
  Prerequisite: member-configured `FLOWGRID_DOCS_ROOT` points to the grilled
17
17
  docs registry hub → `npm run codegen:dry -- --id …` OK. Never infer a sibling docs
18
18
  checkout; local ArtifactGraph is not the docs bridge. Architecture IDs →
19
- bộ docs (`FLOWGRID_DOCS_ROOT`); never CodeGraph for C4/architecture.
19
+ docs hub (`FLOWGRID_DOCS_ROOT`); never CodeGraph for C4/architecture.
20
20
 
21
- ## Thứ tự
21
+ ## Order
22
22
 
23
- 0. Docs hub `common/` = `processes/` + `patterns/` (Markdown) — tham chiếu nghiệp vụ; **không** gen-common.
24
- 1. `npm run codegen:dry` rồi `npm run codegen -- --id W-…` (hoặc MCP `gen`) — đọc `…/code/{W-…}/generated/HANDOFF.md`.
25
- 2. Quét `#needs-component` — implement từ FE base + shadcn; template/registry mới → `docs/workflows/custom-base.md` (toolkit SSOT).
26
- 3. Vá slot · auth bypass · gap; **không** sửa YAML business trên hub khi prototype.
23
+ 0. Docs hub `common/` = `processes/` + `patterns/` (Markdown) — business reference; **no** gen-common.
24
+ 1. `npm run codegen:dry` then `npm run codegen -- --id W-…` (or MCP `gen`) — read `…/code/{W-…}/generated/HANDOFF.md`.
25
+ 2. Scan `#needs-component` — implement from FE base + shadcn; new template/registry → `docs/workflows/custom-base.md` (toolkit SSOT).
26
+ 3. Fill slots · auth bypass · gaps; **do not** edit business YAML on the hub during prototype.
27
27
 
28
- ## Sau prototype
28
+ ## After prototype
29
29
 
30
- 4. Session mới: `/grill-prototype` — checklist UI (design.md bước 6); không chạy `gen:dry` lại trừ khi đổi IR.
30
+ 4. New session: `/grill-prototype` — UI checklist (design.md step 6); do not re-run `gen:dry` unless IR changed.
31
31
 
32
32
  - Source: grill-approved hub `ir/design.yaml`
33
- - Real UI; mock chỉ API boundary
34
- - **Không** backend thật — `/wire` thay mock
35
- - `data-testid` sớm (`E2E-TESTIDS.md` trên hub)
36
- - **Không** viết lại scaffold đã gen
33
+ - Real UI; mock API boundary only
34
+ - **No** real backend — `/wire` replaces mocks
35
+ - Early `data-testid` (`E2E-TESTIDS.md` on hub)
36
+ - **Do not** rewrite generated scaffold
@@ -9,19 +9,19 @@ alwaysApply: false
9
9
  Skills: `.cursor/skills/unit/SKILL.md` · `.cursor/skills/grill-unit/SKILL.md`
10
10
  Extract: `.cursor/extracts/portal-unit-workflow.md`, `portal-unit-test-tags.md`, `verify-gate.md`
11
11
 
12
- Canonical IR via `FLOWGRID_DOCS_ROOT`; architecture → bộ docs; cross-repo
12
+ Canonical IR via `FLOWGRID_DOCS_ROOT`; architecture → docs hub; cross-repo
13
13
  symbols → Platform DNA-wired `codegraph-<key>`; ArtifactGraph local-only.
14
14
 
15
15
  ## `/unit`
16
16
 
17
17
  - Manifest-first: `unit.manifest.json` + `UNIT-HANDOFF.md`
18
- - Gọi `npm run codegen:unit` khi thiếu smoke; xử lý `needsUnit[]` / `#needs-unit-test:*`
19
- - Tách file test thiếu theo registry (1 source logic → 1 test file)
20
- - Logic only — **không** mount page/component; mock the selected adapter's
18
+ - Run `npm run codegen:unit` when smoke is missing; handle `needsUnit[]` / `#needs-unit-test:*`
19
+ - Split missing test files per registry (1 logic source → 1 test file)
20
+ - Logic only — **do not** mount page/component; mock the selected adapter's
21
21
  transport and framework globals at the unit boundary.
22
22
  - Done: `needsUnit` clear, vitest scoped green → **`/grill-unit`**
23
23
 
24
24
  ## `/grill-unit`
25
25
 
26
- - Sau `/unit` — coverage scoped + map `reqIds`; **không** gọi `portal:unit-gen`
27
- - Thiếu file test → báo quay `/unit`
26
+ - After `/unit` — scoped coverage + map `reqIds`; **do not** call `portal:unit-gen`
27
+ - Missing test file → report and return to `/unit`
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
 
7
7
  # /grill-prototype — UI checklist (post-prototype)
8
8
 
9
- **Owner:** bộ code FE · **When:** After `/prototype` session has run `gen:dry` → `gen` and filled HANDOFF slots — **before** demo, `/test`, or `/wire`.
9
+ **Owner:** FE code repo · **When:** After `/prototype` session has run `gen:dry` → `gen` and filled HANDOFF slots — **before** demo, `/test`, or `/wire`.
10
10
 
11
11
  **Not this skill:** `flowgrid gen:dry` gate — that runs at the **start** of `/prototype` ([team-flow-prototype.mdc](../rules/team-flow-prototype.mdc)). This skill audits the **built** UI against docs IR.
12
12
 
@@ -45,7 +45,7 @@ Work through in order; fix **only** in FE repo when issue is clear. Otherwise li
45
45
  1. `FLOWGRID_DOCS_ROOT` (non-empty) → canonical pointer for `ir/design.yaml`.
46
46
  2. Else Platform DNA (`platform-dna`) — slower; prefer explicit env.
47
47
 
48
- Architecture IDs → bộ docs; symbols in other repos → `codegraph-<key>` only.
48
+ Architecture IDs → docs hub; symbols in other repos → `codegraph-<key>` only.
49
49
 
50
50
  Optional: local ArtifactGraph allowlist hint — never blocks checklist. Telemetry: `flowgrid-code-optional-integrations.mdc` once per run.
51
51
 
@@ -10,7 +10,7 @@ disable-model-invocation: true
10
10
 
11
11
  # /grill-test — E2E Traceability Audit (FE repo)
12
12
 
13
- **Owner:** bộ test (`--type=fe`). Plan SSOT stays on tests-docs hub — grill plans with `/grill-testcase`, not here.
13
+ **Owner:** tests hub (`--type=fe`). Plan SSOT stays on tests-docs hub — grill plans with `/grill-testcase`, not here.
14
14
 
15
15
  **Mindset:** Audit only — **no** fixing production code like `/test`, **no** bulk `testcase:gen` regen.
16
16
 
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
 
7
7
  # /grill-unit
8
8
 
9
- **Owner:** bộ code · optional local ArtifactGraph allowlist check before unit dry-gen.
9
+ **Owner:** code repo · optional local ArtifactGraph allowlist check before unit dry-gen.
10
10
 
11
11
  ```text
12
12
  if local ArtifactGraph available: check the FE repo's allowlist for unitGenDry
@@ -23,7 +23,7 @@ else: npm run codegen:unit:dry -- --id …
23
23
  an explicit `FLOWGRID_DOCS_ROOT` when available.
24
24
 
25
25
  Canonical IR/registries come from `FLOWGRID_DOCS_ROOT`; ArtifactGraph does
26
- not follow that pointer. Architecture IDs → bộ docs (`FLOWGRID_DOCS_ROOT`); symbols
26
+ not follow that pointer. Architecture IDs → docs hub (`FLOWGRID_DOCS_ROOT`); symbols
27
27
  in other repos → `codegraph-<key>` only.
28
28
 
29
29
  Missing ArtifactGraph never blocks the grill. Complete the deterministic dry
@@ -10,7 +10,7 @@ disable-model-invocation: true
10
10
 
11
11
  # /grill-wire — Wire Convergence Audit (FE repo)
12
12
 
13
- **Owner:** bộ code (`--type=fe`)
13
+ **Owner:** code repo (`--type=fe`)
14
14
 
15
15
  **Mindset:** Audit and gap routing only — **no** bulk `/wire` implementation, **no** `/test` fixes inline unless member explicitly runs `/test` in same session.
16
16
 
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: model
3
- description: /model — Zod models and TS types in models/ / validations/ (bộ code FE).
3
+ description: /model — Zod models and TS types in models/ / validations/ (FE code repo).
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
7
  # /model — FE contract models
8
8
 
9
- **Owner:** bộ code (`--type=fe`) · Adapters: `nuxt4` | `nextjs`
9
+ **Owner:** code repo (`--type=fe`) · Adapters: `nuxt4` | `nextjs`
10
10
  Not synced for `dotnet-line` (WinForms contracts live outside Zod `models/`).
11
11
 
12
12
  ## Scope
@@ -35,7 +35,7 @@ Docs hub (`FLOWGRID_DOCS_ROOT`): **Read the entire `ir/design.yaml`**. Do not ch
35
35
  ## Handoff
36
36
 
37
37
  → `/wire` when forms/services need the updated schemas
38
- → `/api` (bộ code BE) when the backend contract must catch up
38
+ → `/api` (BE code repo) when the backend contract must catch up
39
39
 
40
40
  ## Accelerators (optional)
41
41
 
@@ -44,5 +44,5 @@ if local ArtifactGraph available: local FE tag/allowlist hints only
44
44
  else: scoped IR + registry evidence only
45
45
  ```
46
46
 
47
- Canonical IR/registry evidence always comes through the bộ code docs pointer,
47
+ Canonical IR/registry evidence always comes through the code repo docs pointer,
48
48
  not through ArtifactGraph.
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: prototype
3
- description: /prototype — UI from FLOWGRID_DOCS_ROOT ir/design.yaml with mock API via bộ code.
3
+ description: /prototype — UI from FLOWGRID_DOCS_ROOT ir/design.yaml with mock API via the FE code repo.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
7
  # /prototype — UI Prototype (Mock API Boundary)
8
8
 
9
- **Owner:** bộ code (`--type=fe`) · Adapters: `nuxt4` | `nextjs` | `dotnet-line`
9
+ **Owner:** FE code repo (`--type=fe`) · Adapters: `nuxt4` | `nextjs` | `dotnet-line`
10
10
 
11
11
  ## Artifact & Target ID Resolution Rule
12
12
 
@@ -23,7 +23,18 @@ surfaces/<surface>/CMP-*/<NN…>/ir/design.yaml
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.
25
25
 
26
- **Docs hub is read-only for this skill.** Never Write/patch `*.bundle.yaml`, `ir/*`, or any file under `FLOWGRID_DOCS_ROOT`. Missing `ir/design.yaml`, empty `codegen.profile`, or `flowgrid gen` failure → **STOP**, quote the CLI error, hand off to docs-hub `/grill-dev` (or `/spec`). Do not invent SSOT to make gen pass. Login/forgot/reset must be `codegen.profile: auth` (not `create`) or gen writes `(dashboard)`.
26
+ ## Agent context (ACP) before gen
27
+
28
+ Per **`agent-design-context.md`** (resolve `W-*` via `flowgrid_docs_route` → `linkedFlows[]`):
29
+
30
+ 1. **`userFlows` / linked `FLOW-*.md`** — §6 sequence for journey context.
31
+ 2. **`bundle.nfr`** (from bundle or `ir/spec.yaml` mirror).
32
+ 3. **`ir/generated/design.md`** when `interactionCases.policy: required`.
33
+ 4. Then **`ir/design.yaml`**.
34
+
35
+ Print checklist in chat: FLOW ids read · NFR · L2 design.md yes/no.
36
+
37
+ **Docs hub is read-only for this skill.** Never Write/patch any file under `FLOWGRID_DOCS_ROOT` (including `*.bundle.yaml`, `ir/*`, `ir/generated/*`). Hub fixes → `/update-spec` on bundle in a docs session. Missing `ir/design.yaml`, empty `codegen.profile`, or `flowgrid gen` failure → **STOP**, quote the CLI error, hand off to docs-hub `/grill-dev` (or `/spec`). Do not invent SSOT to make gen pass. Login/forgot/reset must be `codegen.profile: auth` (not `create`) or gen writes `(dashboard)`.
27
38
 
28
39
  Do not invent sibling docs-hub paths. Pass `FLOWGRID_DOCS_ROOT` or `--docs-root`.
29
40
 
@@ -38,7 +49,7 @@ Do not invent sibling docs-hub paths. Pass `FLOWGRID_DOCS_ROOT` or `--docs-root`
38
49
 
39
50
  ## Route
40
51
 
41
- Architecture/C4 → bộ docs (`FLOWGRID_DOCS_ROOT`); IR/registry/gen →
52
+ Architecture/C4 → docs hub (`FLOWGRID_DOCS_ROOT`); IR/registry/gen →
42
53
  `FLOWGRID_DOCS_ROOT`; symbols/call-graph for repo X → Platform DNA-wired
43
54
  `codegraph-<repo-key>`. Never workspace-parent graphs, sibling-path inference,
44
55
  or member-edited MCP. Local ArtifactGraph is allowlist/tag hints for this repo
@@ -75,7 +86,7 @@ For each HANDOFF / `#needs-component: Mo…` after gen:
75
86
  4. Re-run `flowgrid gen` so slots bind to the new file.
76
87
  5. Dotnet-line / no `components.json`: skip this section; do not invent React/shadcn APIs.
77
88
 
78
- Do not copy the shadcn skill into bộ docs. Do not author `#ui:` tags from memory if `shadcn search` can name the registry item.
89
+ Do not copy the shadcn skill into the docs hub. Do not author `#ui:` tags from memory if `shadcn search` can name the registry item.
79
90
 
80
91
  `dotnet-line` requires the .NET 8 SDK (`FLOWGRID_DOTNET`, then `dotnet`) and
81
92
  is limited to the pilot-specific `kiosk-check-in` profile. Its main pass also
@@ -88,14 +99,15 @@ if local ArtifactGraph available: recommend/check the FE repo's allowlisted gen
88
99
  else: run flowgrid gen:dry / gen directly
89
100
 
90
101
  Missing ArtifactGraph never blocks prototype generation. Complete the direct,
91
- deterministic bộ code fallback first, then follow
102
+ deterministic FE-repo fallback first, then follow
92
103
  `.cursor/rules/flowgrid-code-optional-integrations.mdc` for once-per-run telemetry.
93
104
  ```
94
105
 
95
- Docs render / `spec:split` remain flowgrid / bộ docs handoffs.
106
+ Docs render / `spec:split` remain flowgrid / docs-hub handoffs.
96
107
 
97
108
  ## Translation Rule
98
- Luôn bọc text tĩnh bằng i18n helper native của framework.
99
- - Đọc block `i18n` từ `ir/design.yaml`.
100
- - Tự động sinh/cập nhật file ngôn ngữ tương ứng (`.json` cho FE/NodeJS, hoặc `.resx` cho Dotnet).
101
- - KHÔNG viết gộp ngôn ngữ lên giao diện (ví dụ không dùng `login / đăng nhập`).
109
+
110
+ - Wrap all static UI copy with the framework’s native i18n helper.
111
+ - Read the `i18n` block from `ir/design.yaml`.
112
+ - Generate or update locale files (`.json` for FE/Node, `.resx` for dotnet-line).
113
+ - Do **not** hard-code mixed languages in UI (e.g. avoid `login / đăng nhập` in one string).
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
 
7
7
  # /test
8
8
 
9
- **Owner:** bộ test (`--type=fe`)
9
+ **Owner:** tests hub (`--type=fe`)
10
10
 
11
11
  ```bash
12
12
  flowgrid testcase:gen:dry --tests-docs=/path/to/tests-hub --docs-root=/path/to/docs-hub -- --id TC-…
@@ -15,7 +15,7 @@ flowgrid testcase:gen --tests-docs=/path/to/tests-hub --docs-root=/path/to/docs-
15
15
 
16
16
  Use `FLOWGRID_TESTS_DOC` (or `--tests-docs`) when the tests hub is not local.
17
17
  Use `FLOWGRID_DOCS_ROOT` for docs evidence. Route Functions/W-* evidence through
18
- bộ docs, and symbols or call graphs for repo X through the Platform DNA-wired
18
+ docs hub, and symbols or call graphs for repo X through the Platform DNA-wired
19
19
  `codegraph-<repo-key>` server for checkout X. Never use a workspace-parent
20
20
  graph or ask the member to hand-edit MCP configuration.
21
21
 
@@ -27,7 +27,7 @@ else: local deterministic search, then run flowgrid testcase:gen directly
27
27
  ```
28
28
 
29
29
  ArtifactGraph never follows `FLOWGRID_DOCS_ROOT` / `FLOWGRID_TESTS_DOC`; plan
30
- YAML and docs evidence flow only through those bộ test pointers.
30
+ YAML and docs evidence flow only through those tests hub pointers.
31
31
 
32
32
  Assign one stable `runId` at run start. If ArtifactGraph is missing, complete
33
33
  the local fallback, count successful file reads and exact raw bytes read into
@@ -1,12 +1,12 @@
1
1
  ---
2
2
  name: unit
3
- description: /unit — unit test generation from codegen manifests via bộ code.
3
+ description: /unit — unit test generation from codegen manifests via code repo.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
7
  # /unit
8
8
 
9
- **Owner:** bộ code (`--type=fe`)
9
+ **Owner:** code repo (`--type=fe`)
10
10
 
11
11
  ```bash
12
12
  npm run codegen:unit:dry -- --id W-ADM-AUTH-01
@@ -35,7 +35,7 @@ local ArtifactGraph never replaces it.
35
35
 
36
36
  ## Route
37
37
 
38
- Architecture/C4 → bộ docs (`FLOWGRID_DOCS_ROOT`); IR/registry/gen →
38
+ Architecture/C4 → docs hub (`FLOWGRID_DOCS_ROOT`); IR/registry/gen →
39
39
  `FLOWGRID_DOCS_ROOT`; symbols/call-graph for repo X → Platform DNA-wired
40
40
  `codegraph-<repo-key>`. Never workspace-parent graphs or member-edited MCP.
41
41
  Local ArtifactGraph is allowlist/tag hints for this repo only.
@@ -51,5 +51,5 @@ else: run flowgrid unit-gen directly
51
51
  ```
52
52
 
53
53
  Missing ArtifactGraph never blocks unit generation. Complete the direct,
54
- deterministic bộ code fallback first, then follow
54
+ deterministic code repo fallback first, then follow
55
55
  `.cursor/rules/flowgrid-code-optional-integrations.mdc` for once-per-run telemetry.
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  name: wire
3
- description: /wire — replace prototype mocks with real API wiring (bộ code FE lane).
3
+ description: /wire — replace prototype mocks with real API wiring (FE code repo lane).
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
7
  # /wire
8
8
 
9
- **Owner:** bộ code (`--type=fe`)
9
+ **Owner:** code repo (`--type=fe`)
10
10
 
11
11
  > **[MANDATORY]** Read `.cursor/extracts/wire-phase.md`, `.cursor/extracts/wire-audit-loop.md`, and hub `docs/workflows/wire.md` (wire cycle) before wiring.
12
12
 
13
13
  Use after `/prototype` when tags/handoff mark `#wire-only` or real API integration is required.
14
- Keep generation through bộ code adapters; resolve canonical docs evidence
14
+ Keep generation through code repo adapters; resolve canonical docs evidence
15
15
  through `FLOWGRID_DOCS_ROOT` and do not invent sibling layout.
16
16
 
17
17
  ## Docs Root Resolution
@@ -25,7 +25,7 @@ through `FLOWGRID_DOCS_ROOT` and do not invent sibling layout.
25
25
 
26
26
  ## Route
27
27
 
28
- IR/handoff via `FLOWGRID_DOCS_ROOT`; architecture IDs via bộ docs
28
+ IR/handoff via `FLOWGRID_DOCS_ROOT`; architecture IDs via docs hub
29
29
  (`FLOWGRID_DOCS_ROOT`); BE/FE symbols via per-repo `codegraph-<key>`; ArtifactGraph
30
30
  local tags only. Never workspace-parent graphs or member-edited MCP.
31
31
 
@@ -45,7 +45,7 @@ once-per-run telemetry with observed metrics only.
45
45
  - **[MANDATORY]** Resolve **tests-docs** (`FLOWGRID_TESTS_DOC`) and **e2e-root** (FE `tests/e2e` or project convention).
46
46
  - **[MANDATORY]** `flowgrid cases:gate --strict` on TC YAML for the screen being wired (when gate is enabled for the team).
47
47
 
48
- ## Post-wire (audit đầu ra)
48
+ ## Post-wire (output audit)
49
49
 
50
50
  - **[MANDATORY]** After mocks are removed and real API is connected, run:
51
51