@shanyucoder/flowgrid 0.1.12 → 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.
- package/engines/spec/lib/audit-interaction-cases.mjs +2 -1
- package/harness/be/adapters/dotnet-integration/skills/framework-rules-be/SKILL.md +2 -2
- package/harness/be/adapters/fastapi/skills/framework-rules-be/SKILL.md +3 -3
- package/harness/be/adapters/laravel/skills/framework-rules-be/SKILL.md +3 -3
- package/harness/be/skills/api/SKILL.md +4 -4
- package/harness/be/skills/api-unit/SKILL.md +4 -4
- package/harness/be/skills/audit-api/SKILL.md +3 -3
- package/harness/be/skills/grill-api-unit/SKILL.md +2 -2
- package/harness/common/rules/artifactgraph.mdc +2 -2
- package/harness/common/rules/cross-repo-index.mdc +2 -2
- package/harness/common/rules/platform-code-size.mdc +5 -5
- package/harness/common/rules/team-flow-harness-state.mdc +4 -4
- package/harness/common/skills/business-impact-review/SKILL.md +1 -1
- package/harness/common/skills/configure-repo-maps/SKILL.md +1 -1
- package/harness/common/skills/docs-mark/SKILL.md +4 -4
- package/harness/docs/extracts/agent-design-context.md +17 -5
- package/harness/docs/extracts/extract-registry.docs.json +5 -2
- package/harness/docs/extracts/ir-read-only.md +42 -0
- package/harness/docs/rules/agent-compliance.mdc +5 -1
- package/harness/docs/rules/docs-hub.mdc +6 -6
- package/harness/docs/rules/flowgrid-process.mdc +5 -5
- package/harness/docs/rules/team-flow-grill.mdc +1 -1
- package/harness/docs/rules/team-flow-spec.mdc +5 -5
- package/harness/docs/skills/adopt/SKILL.md +1 -1
- package/harness/docs/skills/api/SKILL.md +2 -2
- package/harness/docs/skills/build-templates/SKILL.md +1 -1
- package/harness/docs/skills/call-external/SKILL.md +1 -1
- package/harness/docs/skills/cross-entity-service/SKILL.md +1 -1
- package/harness/docs/skills/db-erd/SKILL.md +2 -2
- package/harness/docs/skills/grill/SKILL.md +1 -1
- package/harness/docs/skills/grill-api-spec/SKILL.md +3 -3
- package/harness/docs/skills/grill-bqa/SKILL.md +2 -2
- package/harness/docs/skills/grill-dev/SKILL.md +9 -4
- package/harness/docs/skills/grill-docs/SKILL.md +2 -2
- package/harness/docs/skills/grill-hub-prd/SKILL.md +1 -1
- package/harness/docs/skills/openapi/SKILL.md +3 -3
- package/harness/docs/skills/risk-register/SKILL.md +8 -8
- package/harness/docs/skills/spec/SKILL.md +13 -8
- package/harness/docs/skills/update-spec/SKILL.md +17 -7
- package/harness/fe/adapters/dotnet-line/skills/framework-rules/SKILL.md +2 -2
- package/harness/fe/adapters/nextjs/skills/framework-rules/SKILL.md +2 -2
- package/harness/fe/adapters/nuxt4/skills/framework-rules/SKILL.md +2 -2
- package/harness/fe/rules/cross-repo-index-routing.mdc +1 -1
- package/harness/fe/rules/flowgrid-test-optional-accelerators.mdc +3 -3
- package/harness/fe/rules/team-flow-prototype.mdc +13 -13
- package/harness/fe/rules/team-flow-unit.mdc +6 -6
- package/harness/fe/skills/grill-prototype/SKILL.md +2 -2
- package/harness/fe/skills/grill-test/SKILL.md +1 -1
- package/harness/fe/skills/grill-unit/SKILL.md +2 -2
- package/harness/fe/skills/grill-wire/SKILL.md +1 -1
- package/harness/fe/skills/model/SKILL.md +4 -4
- package/harness/fe/skills/prototype/SKILL.md +1 -1
- package/harness/fe/skills/test/SKILL.md +3 -3
- package/harness/fe/skills/unit/SKILL.md +4 -4
- package/harness/fe/skills/wire/SKILL.md +5 -5
- package/harness/shared/rules/flowgrid-code-optional-integrations.mdc +7 -7
- package/harness/tests/rules/cross-repo-index-routing.mdc +1 -1
- package/harness/tests/rules/flowgrid-test-optional-accelerators.mdc +3 -3
- package/harness/tests/rules/plans-docs-first.mdc +5 -5
- package/harness/tests/skills/grill-testcase/SKILL.md +4 -4
- package/harness/tests/skills/scenario/SKILL.md +3 -3
- package/harness/tests/skills/testcase/SKILL.md +2 -2
- package/package.json +1 -1
- package/templates/shared/bundle-authoring.md +11 -5
- package/templates/shared/tpl-runtime-sequence.md +0 -56
|
@@ -12,7 +12,7 @@ disable-model-invocation: true
|
|
|
12
12
|
|
|
13
13
|
# /grill-api-spec — API Contract Audit
|
|
14
14
|
|
|
15
|
-
After `/api-spec`. Before
|
|
15
|
+
After `/api-spec`. Before BE code repo `/api`. No code implementation on docs hub.
|
|
16
16
|
|
|
17
17
|
Shared extracts: `spec-evolution.md`, `api-spec-sync.md`, `entity-relationship.md`, `api-codegen-readiness.md`, `api-codegen-tags.md`, `call-external.md`, `agent-discipline.md`, `verify-gate.md`
|
|
18
18
|
|
|
@@ -46,7 +46,7 @@ Shared extracts: `spec-evolution.md`, `api-spec-sync.md`, `entity-relationship.m
|
|
|
46
46
|
|
|
47
47
|
Run from docs hub cwd (or pass `--docs-root`); paths relative to docs hub:
|
|
48
48
|
|
|
49
|
-
**Deterministic audit (
|
|
49
|
+
**Deterministic audit (quantitative):**
|
|
50
50
|
|
|
51
51
|
1. `flowgrid audit api <path-to-01-backend-spec.yaml>` — consume `gaps[]` / `confirms[]` on the contract.
|
|
52
52
|
2. When portal-backed and sibling `*.bundle.yaml` exists: `flowgrid audit fe-be <bundle.yaml>` — `apiRef` ↔ `01` parity.
|
|
@@ -74,4 +74,4 @@ Re-run steps 1–5 after patching `01` until audit gaps are resolved or logged a
|
|
|
74
74
|
|
|
75
75
|
## Handoff
|
|
76
76
|
|
|
77
|
-
- `approval.status: approved` →
|
|
77
|
+
- `approval.status: approved` → BE code repo `/api` with `--spec …/01-backend-spec.yaml`
|
|
@@ -22,13 +22,13 @@ disable-model-invocation: true
|
|
|
22
22
|
| Read (whole file) | Write | NEVER Read |
|
|
23
23
|
|---|---|---|
|
|
24
24
|
| **`ir/design.yaml`** (UI inventory, copy, visual, actions) | After Confirm: patch `*.bundle.yaml` → `pnpm spec:split` | Generated `*.md` |
|
|
25
|
-
| **`ir/spec.yaml`** (
|
|
25
|
+
| **`ir/spec.yaml`** (prose mirror after split — read for BQA review; **audit CLI stays on bundle**) | | `bundle.gen` |
|
|
26
26
|
|
|
27
27
|
---
|
|
28
28
|
|
|
29
29
|
## Rule: Audit Interlock (`flowgrid audit spec`)
|
|
30
30
|
|
|
31
|
-
- **[MANDATORY]** Before Step A: run `flowgrid audit spec <*.bundle.yaml> --type <pageType
|
|
31
|
+
- **[MANDATORY]** Before Step A: run `flowgrid audit spec <*.bundle.yaml> --type <pageType>` (never `ir/spec.yaml` / `ir/design.yaml`).
|
|
32
32
|
- `<pageType>` from `gen.codegen.profile` when set; else infer from prompt (list | create | detail | auth | admin-crud | …) — same table as `docs/workflows/grill-and-human-review.md`.
|
|
33
33
|
- If profile unknown → AskQuestion to lock profile **before** audit (do not use `--type unknown`).
|
|
34
34
|
- **[MANDATORY]** Consume `gaps[]` (patch bundle) and `confirms[]` (AskQuestion with `(Recommended)` from audit): `CONFIRM_UX_*` + **`CONFIRM_DB_*`** (`db-audit-wizard.md`).
|
|
@@ -21,10 +21,15 @@ disable-model-invocation: true
|
|
|
21
21
|
|
|
22
22
|
## Rule: Load Policy
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**IR is read-only** (`ir-read-only.md`). Writes go to **`*.bundle.yaml`** (+ `01` for endpoints), then **split**.
|
|
25
|
+
|
|
26
|
+
| Read (whole file) | Write | NEVER write |
|
|
25
27
|
|---|---|---|
|
|
26
|
-
| **`ir/design.yaml`** (
|
|
27
|
-
| **`
|
|
28
|
+
| **`ir/design.yaml`** (tech SSOT after split) | `bundle.gen` on `*.bundle.yaml` → `flowgrid split` | `ir/spec.yaml`, `ir/design.yaml`, `ir/generated/*` |
|
|
29
|
+
| **`ir/generated/design.md`** — L2 mermaid when `interactionCases.policy: required` (ACP only) | | |
|
|
30
|
+
| **`api/<seq>/01-backend-spec.yaml`** | `action` / path on **01** only — NOT `bundle.spec.api` | |
|
|
31
|
+
|
|
32
|
+
ACP fields (`userFlows`, `nfr`, `interactionCases`) are **authored on the bundle**; after split, read mirrors on `ir/*` — still **never write** IR.
|
|
28
33
|
|
|
29
34
|
---
|
|
30
35
|
|
|
@@ -167,7 +172,7 @@ Print checklist in chat: FLOW ids read · NFR read · L2 design.md yes/no.
|
|
|
167
172
|
|
|
168
173
|
## Handoff
|
|
169
174
|
|
|
170
|
-
-
|
|
175
|
+
- FE code repo dry pass → `/prototype`
|
|
171
176
|
- BQA↔Dev conflict → `/grill-docs`
|
|
172
177
|
- Legacy fact gap → `/legacy /spec` or `/update-spec` (legacy evidence delta)
|
|
173
178
|
- Confirmed common promote → `/docs-mark` (same session or before `/prototype`)
|
|
@@ -63,7 +63,7 @@ disable-model-invocation: true
|
|
|
63
63
|
3. Reconcile `#reuse-api` on page actions/items (no duplicate `api/<seq>/` for reused APIs).
|
|
64
64
|
4. Verify codegen gate: `bundle.gen.codegen.profile` set correctly.
|
|
65
65
|
5. Write/fix `bundle.gen` → `flowgrid audit spec` → `flowgrid_docs_bundle_split` → `docs_render`.
|
|
66
|
-
6. Handoff ID/path + recommendation to
|
|
66
|
+
6. Handoff ID/path + recommendation to FE code repo (`gen:dry` on FE repo).
|
|
67
67
|
|
|
68
68
|
---
|
|
69
69
|
|
|
@@ -75,7 +75,7 @@ disable-model-invocation: true
|
|
|
75
75
|
|
|
76
76
|
## Handoff
|
|
77
77
|
|
|
78
|
-
→ `/prototype` after
|
|
78
|
+
→ `/prototype` after FE code repo dry-run passes.
|
|
79
79
|
|
|
80
80
|
---
|
|
81
81
|
|
|
@@ -20,7 +20,7 @@ disable-model-invocation: true
|
|
|
20
20
|
- **[MANDATORY]** Run `flowgrid audit hub-prd <path-to.md>` before editing.
|
|
21
21
|
- **[MANDATORY]** Fix all `gaps[]`; resolve `warnings[]` via patch or `AskQuestion` (Recommended / Other / Log as Tech Debt → `qa/` per `qa-authoring.md`).
|
|
22
22
|
- **[MANDATORY]** Re-run audit until `totalGaps === 0` or gaps deferred to `qa/*.yaml`.
|
|
23
|
-
- **[STRICTLY FORBIDDEN]** Author Personas tables or Success metrics on hub — KPI/persona
|
|
23
|
+
- **[STRICTLY FORBIDDEN]** Author Personas tables or Success metrics on hub — KPI/persona belong off-hub.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: openapi
|
|
3
|
-
description: /openapi — generate 02-openapi.yaml from 01-backend-spec.yaml on the docs hub (
|
|
3
|
+
description: /openapi — generate 02-openapi.yaml from 01-backend-spec.yaml on the docs hub (docs hub).
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ disable-model-invocation: true
|
|
|
9
9
|
|
|
10
10
|
# /openapi — OpenAPI YAML (docs hub)
|
|
11
11
|
|
|
12
|
-
**Owner:**
|
|
12
|
+
**Owner:** docs hub (`--type=docs`). OpenAPI is a **docs artifact**, not code repo.
|
|
13
13
|
|
|
14
14
|
One generator: **OpenAPI 3.0.3** from `01-backend-spec.yaml`. Merge/UI stays `openapi:render` + Redocly bundle.
|
|
15
15
|
|
|
@@ -34,5 +34,5 @@ One generator: **OpenAPI 3.0.3** from `01-backend-spec.yaml`. Merge/UI stays `op
|
|
|
34
34
|
|
|
35
35
|
- **[MANDATORY]** If fragment is too thin (error $refs, missing examples): patch **`01-backend-spec.yaml`** and regenerate.
|
|
36
36
|
- **[STRICTLY FORBIDDEN]** Do NOT hand-edit `02-openapi.yaml` as SSOT.
|
|
37
|
-
- **[STRICTLY FORBIDDEN]** Do NOT run
|
|
37
|
+
- **[STRICTLY FORBIDDEN]** Do NOT run code repo `--type=docs` or `nestjs --openapi`. Do NOT invent a second generator per stack.
|
|
38
38
|
- **[STRICTLY FORBIDDEN]** BE `/api` generates implementation code from the contract — it does NOT own OpenAPI YAML.
|
|
@@ -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 —
|
|
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
|
-
**
|
|
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`
|
|
19
|
-
- **[MANDATORY]**
|
|
20
|
-
- **[STRICTLY FORBIDDEN]**
|
|
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
|
-
|
|
24
|
+
Missing numbers (quota, peak): wizard ≥3 options (Recommended / Other / Tech debt → `qa/`).
|
|
25
25
|
|
|
26
26
|
## Verification
|
|
27
27
|
|
|
28
|
-
- [ ]
|
|
29
|
-
- [ ] Audit `risks`
|
|
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`, `agent-design-context.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,14 +52,14 @@ 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
|
-
- **
|
|
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
|
|
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
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).
|
|
@@ -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
|
-
- **
|
|
100
|
-
|
|
101
|
-
- **[
|
|
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):
|
|
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).
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: update-spec
|
|
3
3
|
extractBundle: update-spec
|
|
4
|
-
description: /update-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
|
-
|
|
20
|
+
See **`ir-read-only.md`**. One write path: **bundle → split → render**.
|
|
21
|
+
|
|
22
|
+
| Read (for gap analysis) | Write | NEVER |
|
|
21
23
|
|---|---|---|
|
|
22
|
-
| **`ir/
|
|
23
|
-
| **`ir/spec.yaml`** —
|
|
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
|
|
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
|
|
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
|
|
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
|
|
|
@@ -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 ·
|
|
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
|
|
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
|
|
15
|
+
## Gen first (code)
|
|
16
16
|
|
|
17
|
-
1.
|
|
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
|
|
15
|
+
## Gen first (code)
|
|
16
16
|
|
|
17
|
-
1.
|
|
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
|
|
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:
|
|
2
|
+
description: tests hub optional accelerator fallback and event contract
|
|
3
3
|
alwaysApply: true
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
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
|
|
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`
|
|
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
|
-
|
|
19
|
+
docs hub (`FLOWGRID_DOCS_ROOT`); never CodeGraph for C4/architecture.
|
|
20
20
|
|
|
21
|
-
##
|
|
21
|
+
## Order
|
|
22
22
|
|
|
23
|
-
0. Docs hub `common/` = `processes/` + `patterns/` (Markdown) —
|
|
24
|
-
1. `npm run codegen:dry`
|
|
25
|
-
2.
|
|
26
|
-
3.
|
|
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
|
-
##
|
|
28
|
+
## After prototype
|
|
29
29
|
|
|
30
|
-
4.
|
|
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
|
|
34
|
-
- **
|
|
35
|
-
- `data-testid`
|
|
36
|
-
- **
|
|
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 →
|
|
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
|
-
-
|
|
19
|
-
-
|
|
20
|
-
- Logic only — **
|
|
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
|
-
-
|
|
27
|
-
-
|
|
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:**
|
|
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 →
|
|
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:**
|
|
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:**
|
|
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 →
|
|
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:**
|
|
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/ (
|
|
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:**
|
|
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` (
|
|
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
|
|
47
|
+
Canonical IR/registry evidence always comes through the code repo docs pointer,
|
|
48
48
|
not through ArtifactGraph.
|
|
@@ -34,7 +34,7 @@ Per **`agent-design-context.md`** (resolve `W-*` via `flowgrid_docs_route` → `
|
|
|
34
34
|
|
|
35
35
|
Print checklist in chat: FLOW ids read · NFR · L2 design.md yes/no.
|
|
36
36
|
|
|
37
|
-
**Docs hub is read-only for this skill.** Never Write/patch `*.bundle.yaml`, `ir/*`,
|
|
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)`.
|
|
38
38
|
|
|
39
39
|
Do not invent sibling docs-hub paths. Pass `FLOWGRID_DOCS_ROOT` or `--docs-root`.
|
|
40
40
|
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: true
|
|
|
6
6
|
|
|
7
7
|
# /test
|
|
8
8
|
|
|
9
|
-
**Owner:**
|
|
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
|
-
|
|
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
|
|
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
|
|
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:**
|
|
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 →
|
|
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
|
|
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 (
|
|
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:**
|
|
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
|
|
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
|
|
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
|
|
48
|
+
## Post-wire (output audit)
|
|
49
49
|
|
|
50
50
|
- **[MANDATORY]** After mocks are removed and real API is connected, run:
|
|
51
51
|
|