@shanyucoder/flowgrid 0.1.11 → 0.1.12
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/adapters/shared/resolve-hub-id.mjs +5 -1
- package/dist/docs/mcp/tools.js +59 -6
- package/dist/docs/mcp/tools.js.map +1 -1
- package/dist/docs/scan/screen-to-flows.d.ts +3 -0
- package/dist/docs/scan/screen-to-flows.js +18 -0
- package/dist/docs/scan/screen-to-flows.js.map +1 -0
- package/engines/docs/lib/render-bundle-markdown.mjs +19 -0
- package/engines/docs/lib/render-design-markdown.mjs +56 -0
- package/engines/docs/lib/screen-to-flows-index.mjs +121 -0
- package/engines/docs/vitepress/surfaces-nav.mjs +7 -0
- package/engines/spec/lib/audit-bundle-gaps.mjs +15 -3
- package/engines/spec/lib/audit-interaction-cases.mjs +185 -0
- package/engines/spec/lib/bundle-ir.mjs +7 -0
- package/engines/spec/lib/bundle-schema.mjs +1 -0
- package/engines/spec/lib/interaction-cases.mjs +46 -0
- package/engines/spec/split-bundle.mjs +1 -1
- package/harness/docs/extracts/agent-design-context.md +124 -0
- package/harness/docs/extracts/extract-registry.docs.json +6 -3
- package/harness/docs/skills/api-spec/SKILL.md +4 -0
- package/harness/docs/skills/grill-dev/SKILL.md +22 -9
- package/harness/docs/skills/spec/SKILL.md +8 -5
- package/harness/docs/skills/user-flow/SKILL.md +4 -2
- package/harness/fe/skills/prototype/SKILL.md +22 -10
- package/package.json +1 -1
- package/templates/shared/bundle-authoring.md +2 -1
- package/templates/shared/default-layout.ejs +47 -2
- package/templates/shared/feature.bundle.yaml +29 -1
- package/templates/shared/tpl-runtime-sequence.md +56 -0
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { existsSync, readFileSync, readdirSync, statSync } from 'node:fs'
|
|
6
6
|
import path from 'node:path'
|
|
7
|
+
import { buildScreenToFlows } from '../../../engines/docs/lib/screen-to-flows-index.mjs'
|
|
7
8
|
|
|
8
9
|
function loadJson(file) {
|
|
9
10
|
if (!existsSync(file)) return null
|
|
@@ -42,6 +43,9 @@ export function loadDocsIndex(docsRoot) {
|
|
|
42
43
|
if (!idx) {
|
|
43
44
|
return buildDocsIndexFallback(docsRoot)
|
|
44
45
|
}
|
|
46
|
+
if (!idx.screenToFlows || typeof idx.screenToFlows !== 'object') {
|
|
47
|
+
return { ...idx, screenToFlows: buildScreenToFlows(docsRoot) }
|
|
48
|
+
}
|
|
45
49
|
return idx
|
|
46
50
|
}
|
|
47
51
|
|
|
@@ -83,7 +87,7 @@ function buildDocsIndexFallback(docsRoot) {
|
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
scanSurfaces(surfacesDir)
|
|
86
|
-
return { version: 1, codeIds, modules }
|
|
90
|
+
return { version: 1, codeIds, modules, screenToFlows: buildScreenToFlows(docsRoot) }
|
|
87
91
|
}
|
|
88
92
|
|
|
89
93
|
export function loadTestsIndex(testsRoot) {
|
package/dist/docs/mcp/tools.js
CHANGED
|
@@ -5,6 +5,7 @@ import { resolveDocsRoot } from '../config/docs-root.js';
|
|
|
5
5
|
import { CANONICAL_DIR, expectedCanonicalPath, indexIds, isRedirectStub, kindOf, relToRoot, walkMdFiles, SCAN_MD_DIRS, listFlowProcessFiles, } from '../scan/ids.js';
|
|
6
6
|
import { depsFromFiles, dependentsOf, validateMdLinks } from '../scan/links.js';
|
|
7
7
|
import { routeTopic } from '../scan/route.js';
|
|
8
|
+
import { linkedFlowsForScreen } from '../scan/screen-to-flows.js';
|
|
8
9
|
import { runEngine } from '../cli/engines.js';
|
|
9
10
|
function text(data) {
|
|
10
11
|
return {
|
|
@@ -93,11 +94,13 @@ export function registerTools(server) {
|
|
|
93
94
|
return { file: rel, excerpt: body.slice(0, cap) };
|
|
94
95
|
});
|
|
95
96
|
const expected = expectedCanonicalPath(root, id);
|
|
97
|
+
const linkedFlows = meta.kind === 'W' ? await linkedFlowsForScreen(root, id) : undefined;
|
|
96
98
|
return text({
|
|
97
99
|
ok: true,
|
|
98
100
|
...meta,
|
|
99
101
|
canonicalHome: CANONICAL_DIR[meta.kind] ?? null,
|
|
100
102
|
expectedPath: expected ? relToRoot(root, expected) : null,
|
|
103
|
+
linkedFlows,
|
|
101
104
|
excerpts,
|
|
102
105
|
});
|
|
103
106
|
}
|
|
@@ -225,22 +228,72 @@ export function registerTools(server) {
|
|
|
225
228
|
return text({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
226
229
|
}
|
|
227
230
|
});
|
|
228
|
-
server.tool('flowgrid_docs_route', 'Map
|
|
229
|
-
topic: z.string().describe('e.g. "login sequence", "
|
|
230
|
-
|
|
231
|
-
|
|
231
|
+
server.tool('flowgrid_docs_route', 'Map topic or product id (W-*, FLOW-*) to paths/skills; W-* includes linkedFlows[] from userFlows index', {
|
|
232
|
+
topic: z.string().describe('e.g. "login sequence", "W-ADM-ORD-01", "FLOW-checkout"'),
|
|
233
|
+
docsRoot: z.string().optional(),
|
|
234
|
+
}, async ({ topic, docsRoot }) => {
|
|
235
|
+
try {
|
|
236
|
+
const root = resolveDocsRoot(docsRoot);
|
|
237
|
+
const trimmed = topic.trim();
|
|
238
|
+
if (/^W-/i.test(trimmed)) {
|
|
239
|
+
const linkedFlows = await linkedFlowsForScreen(root, trimmed);
|
|
240
|
+
const exp = expectedCanonicalPath(root, trimmed);
|
|
241
|
+
return text({
|
|
242
|
+
ok: true,
|
|
243
|
+
topic: trimmed,
|
|
244
|
+
kind: 'W',
|
|
245
|
+
expectedPath: exp ? relToRoot(root, exp) : null,
|
|
246
|
+
linkedFlows,
|
|
247
|
+
skill: '/grill-dev',
|
|
248
|
+
note: 'Read FLOW §6 + bundle nfr before codegen (agent-design-context ACP)',
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
if (/^FLOW-/i.test(trimmed)) {
|
|
252
|
+
const exp = expectedCanonicalPath(root, trimmed);
|
|
253
|
+
return text({
|
|
254
|
+
ok: true,
|
|
255
|
+
topic: trimmed,
|
|
256
|
+
kind: 'FLOW',
|
|
257
|
+
expectedPath: exp ? relToRoot(root, exp) : null,
|
|
258
|
+
skill: '/user-flow',
|
|
259
|
+
routes: routeTopic('flow journey'),
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
return text({ ok: true, topic, routes: routeTopic(topic) });
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
return text({ ok: false, error: err instanceof Error ? err.message : String(err) });
|
|
266
|
+
}
|
|
232
267
|
});
|
|
233
|
-
server.tool('flowgrid_docs_user_flows', 'List FLOW-*
|
|
268
|
+
server.tool('flowgrid_docs_user_flows', 'List FLOW-* or fetch one FLOW markdown body (architecture/03-user-flows + surfaces/**/common/user-flows)', {
|
|
234
269
|
docsRoot: z.string().optional(),
|
|
235
|
-
|
|
270
|
+
id: z.string().optional().describe('FLOW-* id — when set, returns file body excerpt'),
|
|
271
|
+
maxChars: z.number().optional().default(12000),
|
|
272
|
+
}, async ({ docsRoot, id, maxChars }) => {
|
|
236
273
|
try {
|
|
237
274
|
const root = resolveDocsRoot(docsRoot);
|
|
238
275
|
const processes = listFlowProcessFiles(root);
|
|
276
|
+
if (id) {
|
|
277
|
+
const hit = processes.find((p) => p.id === id || p.id.toLowerCase() === id.toLowerCase());
|
|
278
|
+
if (!hit)
|
|
279
|
+
return text({ ok: false, error: 'not_found', id });
|
|
280
|
+
const abs = path.join(root, hit.file);
|
|
281
|
+
const body = fs.existsSync(abs) ? fs.readFileSync(abs, 'utf8') : '';
|
|
282
|
+
const cap = Math.min(maxChars ?? 12000, 80000);
|
|
283
|
+
return text({
|
|
284
|
+
ok: true,
|
|
285
|
+
id: hit.id,
|
|
286
|
+
file: hit.file,
|
|
287
|
+
excerpt: body.slice(0, cap),
|
|
288
|
+
hasSequenceSection: /##\s+6\.\s+/i.test(body) || /sequenceDiagram/i.test(body),
|
|
289
|
+
});
|
|
290
|
+
}
|
|
239
291
|
return text({
|
|
240
292
|
ok: true,
|
|
241
293
|
count: processes.length,
|
|
242
294
|
catalog: 'architecture/03-user-flows/index.md',
|
|
243
295
|
processes,
|
|
296
|
+
screenToFlowsHint: 'registries/docs-index.json screenToFlows or flowgrid_docs_route W-*',
|
|
244
297
|
});
|
|
245
298
|
}
|
|
246
299
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/docs/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/docs/mcp/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Lazy-load engine implementation (package ships `engines/`). */
|
|
2
|
+
let mod = null;
|
|
3
|
+
async function load() {
|
|
4
|
+
if (!mod) {
|
|
5
|
+
const url = new URL('../../../engines/docs/lib/screen-to-flows-index.mjs', import.meta.url);
|
|
6
|
+
mod = (await import(url.href));
|
|
7
|
+
}
|
|
8
|
+
return mod;
|
|
9
|
+
}
|
|
10
|
+
export async function buildScreenToFlows(docsRoot) {
|
|
11
|
+
const m = await load();
|
|
12
|
+
return m.buildScreenToFlows(docsRoot);
|
|
13
|
+
}
|
|
14
|
+
export async function linkedFlowsForScreen(docsRoot, screenId) {
|
|
15
|
+
const m = await load();
|
|
16
|
+
return m.linkedFlowsForScreen(docsRoot, screenId);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=screen-to-flows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screen-to-flows.js","sourceRoot":"","sources":["../../../src/docs/scan/screen-to-flows.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAOlE,IAAI,GAAG,GAA4B,IAAI,CAAA;AAEvC,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,qDAAqD,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC3F,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAqB,CAAA;IACpD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAA;IACtB,OAAO,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAgB,EAAE,QAAgB;IAC3E,MAAM,CAAC,GAAG,MAAM,IAAI,EAAE,CAAA;IACtB,OAAO,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -7,6 +7,7 @@ import { renderDataModelMarkdown } from './render-data-model-markdown.mjs'
|
|
|
7
7
|
import { renderApiSummaryMarkdown } from './render-api-summary-markdown.mjs'
|
|
8
8
|
import { resolveBackendSpecForBundle } from '../../spec/lib/audit-db-tables.mjs'
|
|
9
9
|
import { loadDocsHubLocale } from './docs-hub-locale.mjs'
|
|
10
|
+
import { renderDesignMarkdown, irGeneratedDesignMarkdownPath } from './render-design-markdown.mjs'
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* Flatten bundle → spec shape (tests / fallback). Prefer ir/spec.yaml for site MD.
|
|
@@ -104,9 +105,27 @@ export async function writeBundleMarkdownFile(bundleFile, context = {}) {
|
|
|
104
105
|
const specOut = await writeIrSpecMarkdownFile(specFile, irGeneratedMarkdownPath(bundleFile), context)
|
|
105
106
|
await writeDataModelMarkdownFile(bundleFile)
|
|
106
107
|
await writeApiMarkdownFile(bundleFile)
|
|
108
|
+
await writeDesignMarkdownFile(bundleFile)
|
|
107
109
|
return specOut
|
|
108
110
|
}
|
|
109
111
|
|
|
112
|
+
export async function writeDesignMarkdownFile(bundleFile) {
|
|
113
|
+
const designFile = designIrPathForBundle(bundleFile)
|
|
114
|
+
if (!existsSync(designFile)) return null
|
|
115
|
+
const design = parse(await readFile(designFile, 'utf8')) ?? {}
|
|
116
|
+
const specFile = irSpecPathForBundle(bundleFile)
|
|
117
|
+
const spec = existsSync(specFile) ? parse(await readFile(specFile, 'utf8')) ?? {} : {}
|
|
118
|
+
const markdown = renderDesignMarkdown(design, {
|
|
119
|
+
pageId: spec['page-id'] ?? spec.id ?? design.id,
|
|
120
|
+
title: spec.title ?? design.title,
|
|
121
|
+
})
|
|
122
|
+
if (!markdown) return null
|
|
123
|
+
const out = irGeneratedDesignMarkdownPath(bundleFile)
|
|
124
|
+
await mkdir(path.dirname(out), { recursive: true })
|
|
125
|
+
await writeFile(out, markdown, 'utf8')
|
|
126
|
+
return out
|
|
127
|
+
}
|
|
128
|
+
|
|
110
129
|
export async function writeApiMarkdownFile(bundleFile) {
|
|
111
130
|
const resolved = path.resolve(bundleFile)
|
|
112
131
|
const backendPath = resolveBackendSpecForBundle(resolved, null)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ir/generated/design.md — interaction case sequence diagrams only (from ir/design.yaml).
|
|
3
|
+
*/
|
|
4
|
+
import path from 'node:path'
|
|
5
|
+
|
|
6
|
+
function stripMermaidFence(text) {
|
|
7
|
+
const t = String(text ?? '').trim()
|
|
8
|
+
const m = t.match(/^```(?:mermaid)?\s*([\s\S]*?)```$/m)
|
|
9
|
+
if (m) return m[1].trim()
|
|
10
|
+
return t
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @param {object} design ir/design.yaml shape
|
|
15
|
+
* @param {{ pageId?: string, title?: string }} meta
|
|
16
|
+
*/
|
|
17
|
+
export function renderDesignMarkdown(design, meta = {}) {
|
|
18
|
+
const items = design?.interactionCases?.items
|
|
19
|
+
if (!Array.isArray(items) || !items.length) return null
|
|
20
|
+
|
|
21
|
+
const lines = []
|
|
22
|
+
lines.push(`# Design sequences — ${meta.pageId || design.id || 'screen'}`)
|
|
23
|
+
lines.push('')
|
|
24
|
+
if (meta.title) {
|
|
25
|
+
lines.push(`> ${meta.title}`)
|
|
26
|
+
lines.push('')
|
|
27
|
+
}
|
|
28
|
+
lines.push(
|
|
29
|
+
'> Generated from `ir/design.yaml` (`interactionCases`). Prose: [spec.md](./spec.md#interaction-cases). Do not edit this file.',
|
|
30
|
+
)
|
|
31
|
+
lines.push('')
|
|
32
|
+
|
|
33
|
+
for (const item of items) {
|
|
34
|
+
const id = item?.id || 'IC-UNKNOWN'
|
|
35
|
+
lines.push(`## ${id} {#${id.toLowerCase()}}`)
|
|
36
|
+
lines.push('')
|
|
37
|
+
const body = stripMermaidFence(item.sequenceDiagram)
|
|
38
|
+
if (!body.includes('sequenceDiagram')) {
|
|
39
|
+
lines.push('```mermaid')
|
|
40
|
+
lines.push(body)
|
|
41
|
+
lines.push('```')
|
|
42
|
+
} else {
|
|
43
|
+
lines.push('```mermaid')
|
|
44
|
+
lines.push(body)
|
|
45
|
+
lines.push('```')
|
|
46
|
+
}
|
|
47
|
+
lines.push('')
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return lines.join('\n')
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function irGeneratedDesignMarkdownPath(bundleFile) {
|
|
54
|
+
const dir = path.dirname(path.resolve(bundleFile))
|
|
55
|
+
return path.join(dir, 'ir', 'generated', 'design.md')
|
|
56
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reverse index: W-* screen id → FLOW-* ids (from bundle userFlows + FLOW markdown traceability).
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'node:fs'
|
|
5
|
+
import path from 'node:path'
|
|
6
|
+
|
|
7
|
+
const SCREEN_ID_RE = /W-[A-Z0-9][\w-]*/gi
|
|
8
|
+
|
|
9
|
+
function addLink(map, screenId, flowId) {
|
|
10
|
+
const flow = normalizeFlowToken(flowId)
|
|
11
|
+
if (!screenId || !flow) return
|
|
12
|
+
if (!map.has(screenId)) map.set(screenId, new Set())
|
|
13
|
+
map.get(screenId).add(flow)
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function normalizeFlowToken(raw) {
|
|
17
|
+
const m = raw.match(/FLOW-[A-Z0-9][\w-]*/i)
|
|
18
|
+
if (!m) return null
|
|
19
|
+
const tail = m[0].slice(5)
|
|
20
|
+
return `FLOW-${tail}`
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/** Parse bullets from userFlows block text (YAML literal or list lines). */
|
|
24
|
+
export function parseUserFlowsText(text) {
|
|
25
|
+
const links = []
|
|
26
|
+
if (!text || !text.trim()) return links
|
|
27
|
+
for (const line of text.split('\n')) {
|
|
28
|
+
const trimmed = line.replace(/^\s*-\s*/, '').trim()
|
|
29
|
+
if (!/FLOW-/i.test(trimmed)) continue
|
|
30
|
+
const flowId = normalizeFlowToken(trimmed)
|
|
31
|
+
if (!flowId) continue
|
|
32
|
+
const screens = []
|
|
33
|
+
const screensPart = trimmed.match(/screens:\s*(.+)/i)?.[1] ?? trimmed
|
|
34
|
+
for (const sm of screensPart.match(SCREEN_ID_RE) ?? []) screens.push(sm)
|
|
35
|
+
links.push({ flowId, screenIds: screens })
|
|
36
|
+
}
|
|
37
|
+
return links
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function extractUserFlowsFromBundleFile(raw) {
|
|
41
|
+
const block = raw.match(/^userFlows:\s*\|\s*\n([\s\S]*?)(?=^[a-zA-Z][\w.-]*:|\s*$)/m)?.[1]
|
|
42
|
+
if (block) return parseUserFlowsText(block)
|
|
43
|
+
const inline = raw.match(/^userFlows:\s*(.+)$/m)?.[1]
|
|
44
|
+
if (inline) return parseUserFlowsText(inline)
|
|
45
|
+
const listBlock = raw.match(/^userFlows:\s*\n((?:\s+-\s+.+\n?)+)/m)?.[1]
|
|
46
|
+
if (listBlock) return parseUserFlowsText(listBlock)
|
|
47
|
+
return []
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function walkBundleFiles(docsRoot, onBundle) {
|
|
51
|
+
const roots = [
|
|
52
|
+
path.join(docsRoot, 'surfaces'),
|
|
53
|
+
path.join(docsRoot, 'product'),
|
|
54
|
+
]
|
|
55
|
+
const visit = (dir) => {
|
|
56
|
+
if (!fs.existsSync(dir)) return
|
|
57
|
+
for (const ent of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
58
|
+
if (ent.name.startsWith('.') || ent.name === 'node_modules') continue
|
|
59
|
+
const p = path.join(dir, ent.name)
|
|
60
|
+
if (ent.isDirectory()) visit(p)
|
|
61
|
+
else if (ent.name.endsWith('.bundle.yaml')) onBundle(p)
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (const r of roots) visit(r)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function walkFlowMarkdown(docsRoot, onFile) {
|
|
68
|
+
const catalog = path.join(docsRoot, 'architecture/03-user-flows')
|
|
69
|
+
if (fs.existsSync(catalog)) {
|
|
70
|
+
for (const n of fs.readdirSync(catalog)) {
|
|
71
|
+
if (n.startsWith('FLOW-') && n.endsWith('.md')) onFile(path.join(catalog, n))
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const walk = (dir) => {
|
|
75
|
+
if (!fs.existsSync(dir)) return
|
|
76
|
+
for (const ent of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
77
|
+
if (ent.name.startsWith('.') || ent.name === 'node_modules') continue
|
|
78
|
+
const p = path.join(dir, ent.name)
|
|
79
|
+
if (ent.isDirectory()) {
|
|
80
|
+
if (ent.name === 'user-flows' && path.basename(dir) === 'common') {
|
|
81
|
+
for (const n of fs.readdirSync(p)) {
|
|
82
|
+
if (n.startsWith('FLOW-') && n.endsWith('.md')) onFile(path.join(p, n))
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
walk(p)
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
walk(path.join(docsRoot, 'surfaces'))
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* @returns {Record<string, string[]>} screenToFlows sorted flow ids per W-*
|
|
94
|
+
*/
|
|
95
|
+
export function buildScreenToFlows(docsRoot) {
|
|
96
|
+
const map = new Map()
|
|
97
|
+
|
|
98
|
+
walkBundleFiles(docsRoot, (bundlePath) => {
|
|
99
|
+
const raw = fs.readFileSync(bundlePath, 'utf8')
|
|
100
|
+
for (const { flowId, screenIds } of extractUserFlowsFromBundleFile(raw)) {
|
|
101
|
+
for (const sid of screenIds) addLink(map, sid, flowId)
|
|
102
|
+
}
|
|
103
|
+
})
|
|
104
|
+
|
|
105
|
+
walkFlowMarkdown(docsRoot, (flowPath) => {
|
|
106
|
+
const flowId = path.basename(flowPath, '.md')
|
|
107
|
+
const body = fs.readFileSync(flowPath, 'utf8')
|
|
108
|
+
for (const sid of body.match(SCREEN_ID_RE) ?? []) addLink(map, sid, flowId)
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
const out = {}
|
|
112
|
+
for (const [screen, flows] of map) {
|
|
113
|
+
out[screen] = [...flows].sort((a, b) => a.localeCompare(b))
|
|
114
|
+
}
|
|
115
|
+
return out
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export function linkedFlowsForScreen(docsRoot, screenId, screenToFlows) {
|
|
119
|
+
const idx = screenToFlows ?? buildScreenToFlows(docsRoot)
|
|
120
|
+
return idx[screenId] ?? []
|
|
121
|
+
}
|
|
@@ -93,6 +93,7 @@ export function leafGeneratedNavNodes(leafDir, toHref) {
|
|
|
93
93
|
const specMd = path.join(leafDir, 'ir', 'generated', 'spec.md')
|
|
94
94
|
const dmMd = path.join(leafDir, 'ir', 'generated', 'data-model.md')
|
|
95
95
|
const apiMd = path.join(leafDir, 'ir', 'generated', 'api.md')
|
|
96
|
+
const designMd = path.join(leafDir, 'ir', 'generated', 'design.md')
|
|
96
97
|
const nodes = []
|
|
97
98
|
if (existsSync(specMd)) {
|
|
98
99
|
nodes.push({
|
|
@@ -112,6 +113,12 @@ export function leafGeneratedNavNodes(leafDir, toHref) {
|
|
|
112
113
|
link: toHref(apiMd),
|
|
113
114
|
})
|
|
114
115
|
}
|
|
116
|
+
if (existsSync(designMd)) {
|
|
117
|
+
nodes.push({
|
|
118
|
+
text: 'Design sequences',
|
|
119
|
+
link: toHref(designMd),
|
|
120
|
+
})
|
|
121
|
+
}
|
|
115
122
|
return nodes
|
|
116
123
|
}
|
|
117
124
|
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import fs from 'fs';
|
|
21
21
|
import path from 'path';
|
|
22
22
|
import { parse } from 'yaml';
|
|
23
|
+
import { auditInteractionCases } from './audit-interaction-cases.mjs';
|
|
23
24
|
import { auditUxAffordance } from './audit-ux-affordance.mjs';
|
|
24
25
|
import { auditDbTables, resolveBackendSpecForBundle } from './audit-db-tables.mjs';
|
|
25
26
|
|
|
@@ -581,11 +582,10 @@ function auditBundleContent(rawText, filePath, pageType) {
|
|
|
581
582
|
addWarning(
|
|
582
583
|
'WARN_NO_USER_FLOWS',
|
|
583
584
|
'userFlows',
|
|
584
|
-
'
|
|
585
|
-
'Declare userFlows: | —
|
|
585
|
+
'Screen has handoff / multi-screen navigation but userFlows is not declared.',
|
|
586
|
+
'Declare userFlows: | — FLOW-<id> — role: … — screens: W-* (this leaf).'
|
|
586
587
|
);
|
|
587
588
|
}
|
|
588
|
-
|
|
589
589
|
if (has(rawText, 'risks:')) {
|
|
590
590
|
addWarning(
|
|
591
591
|
'WARN_BUNDLE_RISKS_FORBIDDEN',
|
|
@@ -618,6 +618,18 @@ function auditBundleContent(rawText, filePath, pageType) {
|
|
|
618
618
|
);
|
|
619
619
|
}
|
|
620
620
|
|
|
621
|
+
// =========================================================================
|
|
622
|
+
// Interaction cases (L2) — two-step confirm + item keys
|
|
623
|
+
// =========================================================================
|
|
624
|
+
|
|
625
|
+
let bundleParsed = {};
|
|
626
|
+
try {
|
|
627
|
+
bundleParsed = parse(rawText) ?? {};
|
|
628
|
+
} catch {
|
|
629
|
+
/* keep empty */
|
|
630
|
+
}
|
|
631
|
+
auditInteractionCases(bundleParsed, { addGap, addConfirm, addWarning });
|
|
632
|
+
|
|
621
633
|
// =========================================================================
|
|
622
634
|
// Result
|
|
623
635
|
// =========================================================================
|