@shanyucoder/flowgrid 0.1.5 → 0.1.9

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 (169) hide show
  1. package/README.md +1 -1
  2. package/adapters/laravel/registries/codegen.registry.json +9 -9
  3. package/bin/flowgrid.mjs +326 -115
  4. package/bin/lib/agent-mcp.mjs +4 -0
  5. package/bin/lib/agent-profiles.mjs +30 -6
  6. package/bin/lib/audit-run.mjs +1 -1
  7. package/bin/lib/cli-update.mjs +48 -8
  8. package/bin/lib/doctor.mjs +90 -3
  9. package/bin/lib/harness-overlay.mjs +12 -5
  10. package/bin/lib/harness-sync.mjs +17 -3
  11. package/bin/lib/init-adapters.mjs +75 -0
  12. package/bin/lib/init-scaffold.mjs +9 -0
  13. package/bin/lib/inject-consumer-scripts.mjs +115 -0
  14. package/bin/lib/merge-stack-config.mjs +89 -0
  15. package/bin/lib/project-gitignore.mjs +1 -0
  16. package/bin/lib/repo-maps-align.mjs +203 -0
  17. package/dist/graph/config/load-config.js +7 -2
  18. package/dist/graph/config/load-config.js.map +1 -1
  19. package/dist/graph/mcp/tools.js +1 -1
  20. package/dist/graph/mcp/tools.js.map +1 -1
  21. package/dist/graph/registry/load-registries.d.ts +1 -0
  22. package/dist/graph/registry/load-registries.js +14 -1
  23. package/dist/graph/registry/load-registries.js.map +1 -1
  24. package/engines/cases/render-cases.mjs +67 -5
  25. package/engines/docs/lib/qa-item.mjs +91 -0
  26. package/engines/docs/lib/render-api-summary-markdown.mjs +28 -0
  27. package/engines/docs/lib/render-bundle-markdown.mjs +77 -2
  28. package/engines/docs/lib/render-data-model-markdown.mjs +171 -0
  29. package/engines/docs/lib/render-design-tables.mjs +89 -7
  30. package/engines/docs/lib/render-qa-list.mjs +123 -25
  31. package/engines/docs/lib/render-template.mjs +6 -0
  32. package/engines/docs/render-docs.mjs +6 -2
  33. package/engines/docs/vitepress/config.ts +7 -7
  34. package/engines/docs/vitepress/surfaces-nav.mjs +45 -14
  35. package/engines/openapi/check-backend-spec.mjs +2 -2
  36. package/engines/openapi/lib/markdown-table.mjs +8 -0
  37. package/engines/openapi/lib/render-backend-spec-markdown.mjs +78 -0
  38. package/engines/registry-sync/be-capabilities-sync.mjs +118 -0
  39. package/engines/registry-sync/fe-design-sync.mjs +258 -0
  40. package/engines/registry-sync/run-registry-sync.mjs +107 -0
  41. package/engines/shared/e2e-output-layout.mjs +68 -0
  42. package/engines/shared/flowgrid-e2e-root.mjs +19 -0
  43. package/engines/shared/resolve-flowgrid-context.mjs +176 -0
  44. package/engines/spec/lib/audit-api-gaps.mjs +1 -1
  45. package/engines/spec/lib/audit-bundle-gaps.mjs +92 -3
  46. package/engines/spec/lib/audit-db-tables.mjs +529 -0
  47. package/engines/spec/lib/audit-e2e-coverage.mjs +88 -30
  48. package/engines/spec/lib/bundle-schema.mjs +4 -1
  49. package/engines/spec/lib/open-qa.mjs +71 -21
  50. package/engines/spec/split-bundle.mjs +11 -1
  51. package/engines/testcase/runners/generate-api.mjs +23 -23
  52. package/engines/testcase/runners/generate.mjs +19 -17
  53. package/engines/testcase/runners/lib/bootstrap-context.mjs +44 -0
  54. package/engines/testcase/runners/lib/write-files.mjs +37 -9
  55. package/harness/agents/antigravity/rules/antigravity-mcp.mdc +12 -0
  56. package/harness/agents/gemini/rules/gemini-mcp.mdc +11 -0
  57. package/harness/agents/gemini_antigravity/rules/antigravity-mcp.mdc +8 -6
  58. package/harness/be/skills/{grill-api → audit-api}/SKILL.md +8 -7
  59. package/harness/common/extracts/artifact-graph.md +2 -2
  60. package/harness/common/extracts/artifactgraph-phase-hooks.md +2 -2
  61. package/harness/common/extracts/docs-mark-detect.md +2 -2
  62. package/harness/common/extracts/entity-relationship.md +23 -0
  63. package/harness/common/rules/flowgrid-ux-common.mdc +3 -3
  64. package/harness/common/skills/configure-repo-maps/SKILL.md +4 -2
  65. package/harness/docs/extracts/agent-execution-protocol.md +3 -3
  66. package/harness/docs/extracts/api-codegen-readiness.md +34 -0
  67. package/harness/docs/extracts/api-codegen-tags.md +30 -0
  68. package/harness/docs/extracts/api-contract.md +43 -0
  69. package/harness/docs/extracts/api-spec-sync.md +35 -0
  70. package/harness/docs/extracts/artifactgraph-hooks-docs.md +1 -1
  71. package/harness/docs/extracts/call-external.md +16 -0
  72. package/harness/docs/extracts/common-scope.md +9 -10
  73. package/harness/docs/extracts/db-audit-wizard.md +45 -0
  74. package/harness/docs/extracts/derived-data.md +18 -0
  75. package/harness/docs/extracts/design-leaf-signoff.md +16 -0
  76. package/harness/docs/extracts/extract-registry.docs.json +11 -2
  77. package/harness/docs/extracts/qa-inbox.md +19 -10
  78. package/harness/docs/extracts/qa-team.md +32 -0
  79. package/harness/docs/extracts/spec-core.md +7 -3
  80. package/harness/docs/extracts/spec-evolution.md +21 -0
  81. package/harness/docs/extracts/spec-prd-lite.md +19 -0
  82. package/harness/docs/extracts/spec-requirement.md +6 -2
  83. package/harness/docs/extracts/spec-ssot-prep.md +25 -0
  84. package/harness/docs/extracts/tpl-module.md +12 -0
  85. package/harness/docs/extracts/verify-gate.md +33 -0
  86. package/harness/docs/extracts/wire-spec-feedback.md +31 -0
  87. package/harness/docs/rules/agent-compliance.mdc +1 -1
  88. package/harness/docs/rules/team-flow-spec.mdc +3 -4
  89. package/harness/docs/schemas/flowgrid-docs/qa-item.schema.json +65 -0
  90. package/harness/docs/skills/adopt/SKILL.md +2 -0
  91. package/harness/docs/skills/api/SKILL.md +4 -5
  92. package/harness/docs/skills/api-spec/SKILL.md +19 -6
  93. package/harness/docs/skills/api-update/SKILL.md +4 -4
  94. package/harness/docs/skills/architecture/SKILL.md +1 -1
  95. package/harness/docs/skills/business-process/SKILL.md +2 -0
  96. package/harness/docs/skills/common/SKILL.md +2 -2
  97. package/harness/docs/skills/common-spec/SKILL.md +10 -47
  98. package/harness/docs/skills/db-erd/SKILL.md +26 -0
  99. package/harness/docs/skills/grill/SKILL.md +28 -22
  100. package/harness/docs/skills/grill-api/SKILL.md +4 -6
  101. package/harness/docs/skills/grill-api-spec/SKILL.md +44 -24
  102. package/harness/docs/skills/grill-bqa/SKILL.md +28 -13
  103. package/harness/docs/skills/grill-common-spec/SKILL.md +10 -35
  104. package/harness/docs/skills/grill-dev/SKILL.md +8 -7
  105. package/harness/docs/skills/grill-docs/SKILL.md +11 -4
  106. package/harness/docs/skills/module/SKILL.md +3 -1
  107. package/harness/docs/skills/openapi/SKILL.md +2 -1
  108. package/harness/docs/skills/overview/SKILL.md +7 -1
  109. package/harness/docs/skills/qa-resolve/SKILL.md +13 -12
  110. package/harness/docs/skills/qa-review/SKILL.md +45 -0
  111. package/harness/docs/skills/spec/SKILL.md +43 -10
  112. package/harness/docs/skills/update-spec/SKILL.md +5 -2
  113. package/harness/fe/extracts/wire-audit-loop.md +72 -0
  114. package/harness/fe/extracts/wire-phase.md +45 -0
  115. package/harness/fe/rules/platform-design-vocabulary.mdc +1 -1
  116. package/harness/fe/rules/team-flow-prototype.mdc +8 -4
  117. package/harness/fe/skills/gen-common/SKILL.md +11 -84
  118. package/harness/fe/skills/grill-prototype/SKILL.md +51 -25
  119. package/harness/fe/skills/grill-test/SKILL.md +78 -20
  120. package/harness/fe/skills/grill-wire/SKILL.md +81 -0
  121. package/harness/fe/skills/prototype/SKILL.md +3 -2
  122. package/harness/fe/skills/wire/SKILL.md +8 -3
  123. package/harness/shared/AGENTS.md +3 -3
  124. package/harness/shared/SSOT_AGENT_PROTOCOL.md +3 -3
  125. package/harness/tests/extracts/grill-api-hook.md +69 -0
  126. package/harness/tests/extracts/grill-scenario-flow.md +39 -0
  127. package/harness/tests/extracts/grill-screen-tc.md +40 -0
  128. package/harness/tests/extracts/testcase-gen-cli.md +57 -0
  129. package/harness/tests/extracts/testcase-plan.md +29 -0
  130. package/harness/tests/extracts/tests-verify-gate.md +29 -0
  131. package/harness/tests/extracts/wire-test-handoff.md +37 -0
  132. package/harness/tests/skills/grill-testcase/SKILL.md +1 -0
  133. package/harness/tests/skills/test-api/SKILL.md +14 -6
  134. package/harness/tests/skills/testcase/SKILL.md +3 -1
  135. package/harness/tests/templates/TC.example-api.yaml +7 -1
  136. package/harness/tests/templates/TC.example.yaml +4 -1
  137. package/harness/tests/templates/tpl-testcase-plan.md +75 -0
  138. package/package.json +1 -1
  139. package/stacks/fastapi.json +1 -0
  140. package/stacks/laravel.json +1 -0
  141. package/stacks/nestjs.json +72 -0
  142. package/stacks/nextjs-nest.json +1 -0
  143. package/stacks/nuxt4-nest.json +1 -0
  144. package/templates/project-skeleton/architecture/03-business-process/FLOW-template.md +2 -0
  145. package/templates/project-skeleton/overview/index.md +68 -2
  146. package/templates/project-skeleton/overview/operational-areas/_template.md +37 -0
  147. package/templates/project-skeleton/qa/README.md +4 -8
  148. package/templates/project-skeleton/surfaces/common/data-model/index.md +10 -2
  149. package/templates/schemas/qa-item.schema.json +98 -0
  150. package/templates/shared/api-03-mock.stub.yaml +14 -0
  151. package/templates/shared/backend-api.bundle.yaml +3 -0
  152. package/templates/shared/backend-api.yaml +4 -0
  153. package/templates/shared/be-capabilities.registry.base.json +8 -0
  154. package/templates/shared/bundle-authoring.md +44 -7
  155. package/templates/shared/default-layout.ejs +131 -18
  156. package/templates/shared/design-spec.yaml +2 -3
  157. package/templates/shared/design.registry.base.json +38 -0
  158. package/templates/shared/feature.bundle.yaml +16 -9
  159. package/templates/shared/ir/generated/spec.md +281 -0
  160. package/templates/shared/ir-spec.yaml +1 -1
  161. package/templates/shared/qa-authoring.md +78 -0
  162. package/templates/shared/qa-item.yaml +35 -14
  163. package/templates/shared/tpl-api-contract.md +133 -0
  164. package/templates/shared/tpl-screen-data-model.md +76 -0
  165. package/templates/tests-skeleton/cases/README.md +4 -0
  166. package/templates/tests-skeleton/catalog/locale.yaml +9 -0
  167. package/templates/tests-skeleton/tpl-testcase-plan.md +9 -0
  168. package/harness/docs/skills/api-integration/SKILL.md +0 -110
  169. package/harness/docs/skills/grill-integration-spec/SKILL.md +0 -51
@@ -0,0 +1,89 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+
4
+ /**
5
+ * Map init adapters → stacks/*.json preset key.
6
+ * @param {object} opts
7
+ * @param {string} opts.type
8
+ * @param {string} [opts.feAdapter]
9
+ * @param {string} [opts.beAdapter]
10
+ */
11
+ export function resolveStackPresetKey({ type, feAdapter, beAdapter }) {
12
+ if (type === 'Document') return 'docs';
13
+ if (type === 'Test') return 'generic';
14
+ const fe = feAdapter || '';
15
+ const be = beAdapter || '';
16
+ if (fe === 'nuxt4' && be === 'nestjs') return 'nuxt4-nest';
17
+ if (fe === 'nextjs' && be === 'nestjs') return 'nextjs-nest';
18
+ if (fe === 'nuxt4') return 'nuxt4';
19
+ if (fe === 'nextjs') return 'nextjs';
20
+ if (fe === 'dotnet-line') return 'dotnet-line';
21
+ if (be === 'nestjs') return 'nestjs';
22
+ if (be === 'fastapi') return 'fastapi';
23
+ if (be === 'laravel') return 'laravel';
24
+ if (be === 'dotnet-integration') return 'dotnet-integration';
25
+ return 'generic';
26
+ }
27
+
28
+ /**
29
+ * @param {string} packageRoot
30
+ * @param {string} stackKey
31
+ */
32
+ export function loadStackPresetJson(packageRoot, stackKey) {
33
+ const file = path.join(packageRoot, 'stacks', `${stackKey}.json`);
34
+ if (!fs.existsSync(file)) {
35
+ const generic = path.join(packageRoot, 'stacks', 'generic.json');
36
+ if (fs.existsSync(generic)) {
37
+ return JSON.parse(fs.readFileSync(generic, 'utf8'));
38
+ }
39
+ return null;
40
+ }
41
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
42
+ }
43
+
44
+ const STACK_FIELDS = [
45
+ 'version',
46
+ 'stack',
47
+ 'mode',
48
+ 'commands',
49
+ 'registries',
50
+ 'gapSources',
51
+ 'specRoots',
52
+ 'vocabularies',
53
+ 'dsl',
54
+ 'templates',
55
+ ];
56
+
57
+ /**
58
+ * Merge ArtifactGraph / codegen allowlist from stacks/*.json into flowgrid config.
59
+ * Preserves init fields (type, agents, frontend, backend, …).
60
+ *
61
+ * @param {object} projectConfig
62
+ * @param {object} stackPreset
63
+ * @param {string} projectRoot
64
+ */
65
+ export function mergeStackIntoFlowgridConfig(projectConfig, stackPreset, projectRoot) {
66
+ if (!stackPreset) return projectConfig;
67
+ for (const key of STACK_FIELDS) {
68
+ if (stackPreset[key] !== undefined) {
69
+ projectConfig[key] = stackPreset[key];
70
+ }
71
+ }
72
+ projectConfig.projectId = path.basename(projectRoot);
73
+ if (stackPreset.stack) {
74
+ projectConfig.stack = stackPreset.stack;
75
+ }
76
+
77
+ const hasTestsHub =
78
+ Boolean(projectConfig.frontend?.testsRoot) || Boolean(projectConfig.backend?.testsRoot);
79
+ if (hasTestsHub) {
80
+ const e2eReg = 'registries/e2e-test.registry.json';
81
+ const list = Array.isArray(projectConfig.registries) ? [...projectConfig.registries] : [];
82
+ if (!list.includes(e2eReg)) {
83
+ list.push(e2eReg);
84
+ projectConfig.registries = list;
85
+ }
86
+ }
87
+
88
+ return projectConfig;
89
+ }
@@ -1,6 +1,7 @@
1
1
  export const FLOWGRID_PROJECT_IGNORES = [
2
2
  '.flowgrid',
3
3
  '.agents',
4
+ '.antigravity',
4
5
  '.gemini',
5
6
  '.cursor',
6
7
  '.claude',
@@ -0,0 +1,203 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+
4
+ import { loadFlowgridConfig } from '../../engines/shared/resolve-flowgrid-context.mjs';
5
+
6
+ const LOCAL_FILE = 'platform-repos.local.json';
7
+
8
+ /** Hub keys in platform-repos.local.json ↔ .flowgrid/config.json */
9
+ const HUB_KEYS = [
10
+ { mapKey: 'docs', configPath: ['frontend', 'docsRoot'], configPathBe: ['backend', 'docsRoot'] },
11
+ { mapKey: 'tests', configPath: ['frontend', 'testsRoot'], configPathBe: ['backend', 'testsRoot'] },
12
+ ];
13
+
14
+ function readJson(file) {
15
+ if (!fs.existsSync(file)) return null;
16
+ try {
17
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
18
+ } catch {
19
+ return null;
20
+ }
21
+ }
22
+
23
+ function getConfigHubRel(config, hubKey) {
24
+ const def = HUB_KEYS.find((h) => h.mapKey === hubKey);
25
+ if (!def || !config) return null;
26
+ const fe = config.frontend?.[def.configPath[1]];
27
+ const be = config.backend?.[def.configPathBe[1]];
28
+ return fe || be || null;
29
+ }
30
+
31
+ function resolveConfigLane(config) {
32
+ if (config.frontend?.adapter || config.frontend?.docsRoot || config.frontend?.testsRoot) {
33
+ return 'frontend';
34
+ }
35
+ if (config.backend) return 'backend';
36
+ return 'frontend';
37
+ }
38
+
39
+ function setConfigHubRel(config, hubKey, rel) {
40
+ const lane = resolveConfigLane(config);
41
+ if (!config[lane]) config[lane] = {};
42
+ if (hubKey === 'docs') config[lane].docsRoot = rel;
43
+ if (hubKey === 'tests') config[lane].testsRoot = rel;
44
+ return config;
45
+ }
46
+
47
+ function normalizePath(p) {
48
+ if (!p) return null;
49
+ return path.resolve(p);
50
+ }
51
+
52
+ function pathsEqual(a, b) {
53
+ if (!a || !b) return false;
54
+ return normalizePath(a) === normalizePath(b);
55
+ }
56
+
57
+ /**
58
+ * @param {string} projectRoot
59
+ */
60
+ export function loadRepoMapsLocal(projectRoot) {
61
+ const file = path.join(projectRoot, LOCAL_FILE);
62
+ const doc = readJson(file);
63
+ return { file, doc: doc ?? { projects: {} } };
64
+ }
65
+
66
+ /**
67
+ * Expected absolute paths from init config (single-repo checkout).
68
+ * @param {string} projectRoot
69
+ * @param {object | null} config
70
+ */
71
+ export function expectedHubPathsFromConfig(projectRoot, config) {
72
+ const root = path.resolve(projectRoot);
73
+ const out = {};
74
+ for (const { mapKey } of HUB_KEYS) {
75
+ const rel = getConfigHubRel(config, mapKey);
76
+ if (rel) out[mapKey] = path.resolve(root, rel);
77
+ }
78
+ if (config?.type === 'Frontend' || config?.type === 'Fullstack') {
79
+ out.fe = root;
80
+ }
81
+ if (config?.type === 'Backend' || config?.type === 'Fullstack') {
82
+ out.be = root;
83
+ }
84
+ if (config?.type === 'Document') {
85
+ out.docs = root;
86
+ }
87
+ if (config?.type === 'Test') {
88
+ out.tests = root;
89
+ }
90
+ return out;
91
+ }
92
+
93
+ /**
94
+ * @param {string} projectRoot
95
+ * @returns {{ conflicts: Array<{ key: string; configPath: string | null; mapPath: string | null }>; missingInMap: string[]; missingInConfig: string[] }}
96
+ */
97
+ export function compareConfigAndRepoMaps(projectRoot) {
98
+ const config = loadFlowgridConfig(projectRoot);
99
+ const { doc } = loadRepoMapsLocal(projectRoot);
100
+ const expected = expectedHubPathsFromConfig(projectRoot, config);
101
+ const projects = doc.projects ?? {};
102
+
103
+ const conflicts = [];
104
+ const missingInMap = [];
105
+ const missingInConfig = [];
106
+
107
+ for (const [key, configAbs] of Object.entries(expected)) {
108
+ const mapRoot = projects[key]?.root;
109
+ if (!mapRoot) {
110
+ missingInMap.push(key);
111
+ continue;
112
+ }
113
+ const mapAbs = normalizePath(mapRoot.startsWith('~') ? mapRoot : path.resolve(projectRoot, mapRoot));
114
+ if (!pathsEqual(configAbs, mapAbs)) {
115
+ conflicts.push({
116
+ key,
117
+ configPath: configAbs,
118
+ mapPath: mapAbs,
119
+ });
120
+ }
121
+ }
122
+
123
+ for (const key of Object.keys(projects)) {
124
+ if (!expected[key] && (key === 'docs' || key === 'tests')) {
125
+ missingInConfig.push(key);
126
+ }
127
+ }
128
+
129
+ return { conflicts, missingInMap, missingInConfig, config, expected, projects };
130
+ }
131
+
132
+ /**
133
+ * Write platform-repos.local.json from .flowgrid/config.json pointers.
134
+ * @param {string} projectRoot
135
+ */
136
+ export function writeRepoMapsFromConfig(projectRoot) {
137
+ const config = loadFlowgridConfig(projectRoot);
138
+ if (!config) throw new Error('Missing .flowgrid/config.json — run flowgrid init first');
139
+ const expected = expectedHubPathsFromConfig(projectRoot, config);
140
+ const { file, doc } = loadRepoMapsLocal(projectRoot);
141
+ doc.projects = doc.projects ?? {};
142
+ for (const [key, abs] of Object.entries(expected)) {
143
+ doc.projects[key] = { ...(doc.projects[key] ?? {}), root: abs };
144
+ }
145
+ fs.writeFileSync(file, JSON.stringify(doc, null, 2) + '\n');
146
+ return { file, doc };
147
+ }
148
+
149
+ /**
150
+ * Update config.json hub relative paths from platform-repos.local.json (docs/tests only).
151
+ * @param {string} projectRoot
152
+ */
153
+ export function writeConfigFromRepoMaps(projectRoot) {
154
+ const config = loadFlowgridConfig(projectRoot);
155
+ if (!config) throw new Error('Missing .flowgrid/config.json');
156
+ const { doc } = loadRepoMapsLocal(projectRoot);
157
+ const root = path.resolve(projectRoot);
158
+ const projects = doc.projects ?? {};
159
+ const next = { ...config };
160
+
161
+ for (const { mapKey } of HUB_KEYS) {
162
+ const mapRoot = projects[mapKey]?.root;
163
+ if (!mapRoot) continue;
164
+ const abs = normalizePath(path.isAbsolute(mapRoot) ? mapRoot : path.join(root, mapRoot));
165
+ const rel = path.relative(root, abs).split(path.sep).join('/');
166
+ setConfigHubRel(next, mapKey, rel || '.');
167
+ }
168
+
169
+ const configPath = path.join(root, '.flowgrid', 'config.json');
170
+ fs.writeFileSync(configPath, JSON.stringify(next, null, 2) + '\n');
171
+ return next;
172
+ }
173
+
174
+ /**
175
+ * @param {string} projectRoot
176
+ * @param {Record<string, 'config' | 'map'>} choices
177
+ */
178
+ export function applyAlignChoices(projectRoot, choices) {
179
+ const root = path.resolve(projectRoot);
180
+ let config = loadFlowgridConfig(root);
181
+ if (!config) throw new Error('Missing .flowgrid/config.json');
182
+ const { file, doc } = loadRepoMapsLocal(root);
183
+ doc.projects = doc.projects ?? {};
184
+
185
+ for (const [key, pick] of Object.entries(choices)) {
186
+ const cmp = compareConfigAndRepoMaps(root);
187
+ const conflict = cmp.conflicts.find((c) => c.key === key);
188
+ if (!conflict) continue;
189
+ if (pick === 'config') {
190
+ doc.projects[key] = { ...(doc.projects[key] ?? {}), root: conflict.configPath };
191
+ } else {
192
+ const rel = path.relative(root, conflict.mapPath).split(path.sep).join('/');
193
+ if (key === 'docs' || key === 'tests') {
194
+ setConfigHubRel(config, key, rel || '.');
195
+ }
196
+ }
197
+ }
198
+
199
+ fs.writeFileSync(file, JSON.stringify(doc, null, 2) + '\n');
200
+ const configPath = path.join(root, '.flowgrid', 'config.json');
201
+ fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
202
+ return { config, doc };
203
+ }
@@ -45,7 +45,12 @@ export function defaultRepoConfig(projectId = path.basename(process.cwd())) {
45
45
  mode: 'brownfield',
46
46
  projectId,
47
47
  commands: {},
48
- registries: ['artifactgraph/registries'],
48
+ registries: [
49
+ 'registries/design.registry.json',
50
+ 'registries/common.registry.json',
51
+ 'registries/unit-test.registry.json',
52
+ 'registries/e2e-test.registry.json',
53
+ ],
49
54
  gapSources: [],
50
55
  specRoots: ['artifactgraph/specs'],
51
56
  vocabularies: {
@@ -72,7 +77,7 @@ export function loadEffectiveRepoConfig(repoRoot) {
72
77
  export function requireRepoConfig(repoRoot) {
73
78
  const cfg = loadRepoConfig(repoRoot);
74
79
  if (!cfg) {
75
- throw new Error(`Missing ${CONFIG_NAME} in ${repoRoot}. Run: artifactgraph init`);
80
+ throw new Error(`Missing ${CONFIG_NAME} in ${repoRoot}. Run: flowgrid init`);
76
81
  }
77
82
  return cfg;
78
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../../src/graph/config/load-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-config.js","sourceRoot":"","sources":["../../../src/graph/config/load-config.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export function registerTools(server) {
39
39
  /** Show the current repository used by this MCP process. */
40
40
  server.tool('artifactgraph_projects', 'Show the current repository (legacy compatibility; product tools use cwd directly)', {}, async () => text({ projects: [currentProject()] }));
41
41
  /** Rebuild SQLite index from registries on disk (SSOT = product git; MCP = index only). */
42
- server.tool('artifactgraph_rebuild', 'Rebuild .artifactgraph/index.db from product registries/*.json (git remains SSOT; MCP never owns registry files)', {}, async () => {
42
+ server.tool('artifactgraph_rebuild', 'Rebuild .flowgrid/index.db from product registries/*.json (git SSOT; lexicon backup under artifactgraph/lexicon/)', {}, async () => {
43
43
  const project = currentProject();
44
44
  const cfg = loadEffectiveRepoConfig(project.root);
45
45
  const store = new IndexStore(project.root);
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/graph/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/graph/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface LoadedRegistries {
10
10
  byFile: Record<string, unknown>;
11
11
  /** Flattened design shells / common ids for matching. */
12
12
  designShells: string[];
13
+ composableExports: string[];
13
14
  commonIds: string[];
14
15
  unitPatterns: string[];
15
16
  e2eBundles: string[];
@@ -10,6 +10,7 @@ import { indexApiRoutes } from '../analyze/api-routes.js';
10
10
  export function loadRegistries(repoRoot, cfg) {
11
11
  const byFile = {};
12
12
  const designShells = [];
13
+ const composableExports = [];
13
14
  const commonIds = [];
14
15
  const unitPatterns = [];
15
16
  const e2eBundles = [];
@@ -35,6 +36,13 @@ export function loadRegistries(repoRoot, cfg) {
35
36
  for (const [k, v] of Object.entries(aliasIndex)) {
36
37
  aliasToCanonical[k.toLowerCase()] = v;
37
38
  }
39
+ const composables = (data.composables ?? {});
40
+ composableExports.push(...Object.keys(composables));
41
+ for (const [id, row] of Object.entries(composables)) {
42
+ const exp = row.export ?? id;
43
+ aliasToCanonical[exp.toLowerCase()] = exp;
44
+ aliasToCanonical[id.toLowerCase()] = id;
45
+ }
38
46
  }
39
47
  if (base.includes('common')) {
40
48
  const entries = (data.entries ?? {});
@@ -53,13 +61,14 @@ export function loadRegistries(repoRoot, cfg) {
53
61
  Object.assign(codeIds, ids);
54
62
  }
55
63
  }
56
- return { byFile, designShells, commonIds, unitPatterns, e2eBundles, aliasToCanonical, codeIds };
64
+ return { byFile, designShells, composableExports, commonIds, unitPatterns, e2eBundles, aliasToCanonical, codeIds };
57
65
  }
58
66
  /** Counts returned to MCP status / rebuild (DSL index summary). */
59
67
  export function registryIndexSummary(loaded, apiRoutesCount) {
60
68
  return {
61
69
  files: Object.keys(loaded.byFile).length,
62
70
  designShells: loaded.designShells.length,
71
+ composables: loaded.composableExports.length,
63
72
  commonIds: loaded.commonIds.length,
64
73
  unitPatterns: loaded.unitPatterns.length,
65
74
  e2eBundles: loaded.e2eBundles.length,
@@ -81,6 +90,10 @@ export function indexRegistries(store, loaded, repoRoot, cfg) {
81
90
  for (const id of loaded.designShells) {
82
91
  store.upsertRegistryEntry('design.shells', id, { id });
83
92
  }
93
+ store.clearRegistry('design.composables');
94
+ for (const id of loaded.composableExports) {
95
+ store.upsertRegistryEntry('design.composables', id, { id });
96
+ }
84
97
  store.clearRegistry('common.entries');
85
98
  for (const id of loaded.commonIds) {
86
99
  store.upsertRegistryEntry('common.entries', id, { id });
@@ -1 +1 @@
1
- {"version":3,"file":"load-registries.js","sourceRoot":"","sources":["../../../src/graph/registry/load-registries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-registries.js","sourceRoot":"","sources":["../../../src/graph/registry/load-registries.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ async function main() {
56
56
  console.log(`cases:render: OK (${n} file(s))`)
57
57
  }
58
58
 
59
- function renderCaseMarkdown(tc, { h }) {
59
+ export function renderCaseMarkdown(tc, { h }) {
60
60
  const shortTitle = tc.title || tc.name || tc.summary || 'case'
61
61
  const title = tc.id ? `${tc.id}: ${shortTitle}` : shortTitle
62
62
  const story = tc.story?.trim()
@@ -89,6 +89,10 @@ function renderCaseMarkdown(tc, { h }) {
89
89
  '',
90
90
  bullets(Array.isArray(tc.expected) ? tc.expected : tc.expected ? [tc.expected] : []),
91
91
  '',
92
+ traceabilitySection(tc, h),
93
+ testMatrixSection(tc, h),
94
+ docsCrossRefSection(tc, h),
95
+ '',
92
96
  '<details>',
93
97
  `<summary>${h.technical || 'Technical details'}</summary>`,
94
98
  '',
@@ -116,11 +120,67 @@ function renderCaseMarkdown(tc, { h }) {
116
120
  return member.filter((x) => x !== null).join('\n')
117
121
  }
118
122
 
123
+ function traceabilitySection(tc, h) {
124
+ const tr = tc.traceability
125
+ if (!tr || typeof tr !== 'object') return ''
126
+ const lines = [
127
+ `## ${h.traceability || 'Traceability (docs SSOT)'}`,
128
+ '',
129
+ tr.bundleScreen ? `- **Screen:** \`${tr.bundleScreen}\`` : null,
130
+ tr.bundleScenarios?.length
131
+ ? `- **Scenarios:** ${tr.bundleScenarios.map((s) => `\`${s}\``).join(', ')}`
132
+ : null,
133
+ tr.acceptanceRefs?.length
134
+ ? `- **Acceptance:** ${tr.acceptanceRefs.map((s) => `\`${s}\``).join(', ')}`
135
+ : null,
136
+ tr.actionRefs?.length
137
+ ? `- **Actions:** ${tr.actionRefs.map((s) => `\`${s}\``).join(', ')}`
138
+ : null,
139
+ '',
140
+ ].filter((x) => x !== null)
141
+ if (lines.length <= 2) return ''
142
+ return lines.join('\n')
143
+ }
144
+
145
+ function testMatrixSection(tc, h) {
146
+ const matrix = Array.isArray(tc.testMatrix) ? tc.testMatrix : []
147
+ if (!matrix.length) return ''
148
+ const rows = matrix.map((row) => {
149
+ const id = row.caseId ?? '—'
150
+ const facet = row.facet ?? '—'
151
+ const desc = (row.description ?? '').replace(/\|/g, '\\|')
152
+ return `| ${id} | \`${facet}\` | ${desc} |`
153
+ })
154
+ return [
155
+ `## ${h.testMatrix || 'Ma trận kiểm thử (equivalence)'}`,
156
+ '',
157
+ '| Case | Facet | Mô tả |',
158
+ '| --- | --- | --- |',
159
+ ...rows,
160
+ '',
161
+ ].join('\n')
162
+ }
163
+
164
+ function docsCrossRefSection(tc, h) {
165
+ const screen = tc.refs?.screen || tc.traceability?.bundleScreen
166
+ if (!screen) return ''
167
+ return [
168
+ `## ${h.crossRefDocs || 'Đối chiếu docs hub'}`,
169
+ '',
170
+ `- **Function:** \`${screen}\` — đọc cùng VitePress docs hub: \`ir/generated/spec.md\` (nghiệp vụ) và bundle \`*.bundle.yaml\` (SSOT grill).`,
171
+ tc.refs?.scenario ? `- **Scenario:** \`${tc.refs.scenario}\`` : null,
172
+ '',
173
+ ]
174
+ .filter((x) => x !== null)
175
+ .join('\n')
176
+ }
177
+
119
178
  function stepsNarrative(tc) {
120
179
  const steps = tc.steps || []
121
180
  if (!steps.length) return MD_NONE
122
181
  return steps
123
182
  .map((step, i) => {
183
+ if (typeof step === 'string') return `${i + 1}. ${step}`
124
184
  if (step.as || step.label) return `${i + 1}. ${step.as || step.label}`
125
185
  if (step.action === 'goto') return `${i + 1}. Mở trang \`${step.path ?? ''}\``
126
186
  if (step.action === 'fill') return `${i + 1}. Nhập vào \`${step.testId ?? 'field'}\``
@@ -176,7 +236,9 @@ async function listEntries(dir) {
176
236
  }
177
237
  }
178
238
 
179
- main().catch((e) => {
180
- console.error(e)
181
- process.exit(1)
182
- })
239
+ if (process.argv[1] && process.argv[1].endsWith('render-cases.mjs')) {
240
+ main().catch((e) => {
241
+ console.error(e)
242
+ process.exit(1)
243
+ })
244
+ }