@microi.net/cli 4.9.0 → 4.9.2

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.
@@ -1,13 +1,13 @@
1
1
  {
2
- "builtAt": "2026-08-10T16:08:59.027Z",
2
+ "builtAt": "2026-08-11T04:06:59.529Z",
3
3
  "source": "../microi.skills",
4
4
  "extension": {
5
5
  "name": "v8-engine",
6
- "version": "4.9.0",
6
+ "version": "4.9.2",
7
7
  "publisher": "Microi"
8
8
  },
9
9
  "skills": {
10
- "version": "4.9.0",
10
+ "version": "4.9.2",
11
11
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
12
12
  "managedBy": "Microi.VSCode/bump-version.js"
13
13
  },
@@ -15,14 +15,14 @@
15
15
  "dir": "dist/microi.skills",
16
16
  "files": 108,
17
17
  "skills": 60,
18
- "bytes": 1698860
18
+ "bytes": 1710834
19
19
  },
20
20
  "fileHashes": {
21
- ".microi-skills-version.json": "12a369d587a33db27db9f348c1cc9495ad8c4a53cbcb7a7abc353ca25c62bf06",
21
+ ".microi-skills-version.json": "06d11c8c52c2c3279ae8ed380511de8e27a67aa5145b4122495674c30d02f9f5",
22
22
  "README.md": "020086cc87e3f1c02cdaac86fe1a0ae58f16f0b1bb854d7a52f3e8f966f58bd7",
23
23
  "ai-engine/SKILL.md": "be814942df611fa72fbd86ad67ac2cd0aa519cd348bcc085dd03e8ac81b7ec4b",
24
24
  "ai-engine/agents/openai.yaml": "40deb07801006a46b9a7f0020d13251955eeadd04c8e591160210479936f8b5b",
25
- "ai-platform-governance/SKILL.md": "2ad285895b287acf00150d0e3a0465bb0219d04f372c851ca5fd257ac6fc09cf",
25
+ "ai-platform-governance/SKILL.md": "94034e05ef0910a2c8bcc5b43e05ac29c834da1157f6e467ffba73492d4aa1c0",
26
26
  "app-store/SKILL.md": "c4b76981b10eb1fad373272ecb6a14f358b36d1863507cfad48bb21e07c69206",
27
27
  "app-store/agents/openai.yaml": "eda8f5cf043e7b8fb0e4fb3acf0625fef95eb49586b43187ced277cd0ae4a2c4",
28
28
  "business-blueprint/SKILL.md": "d81311a84a32c942588b39d91e8601bf3687c2e8840f7a188742d816538da115",
@@ -39,7 +39,7 @@
39
39
  "microi-ai-application/SKILL.md": "ae4f7768b4f70038ee67fd5844b6e4f9ca3243516cd0aaf795f40ffe3add9505",
40
40
  "microi-ai-application/agents/openai.yaml": "d3dfc4d0f2fda3391e90e661ca9d8d051cb43824b011d1a88e99db135870454f",
41
41
  "microi-ai-application/references/frontend-baseline.md": "c21a2d38292fd8d445a7538afb45d609881f624f32d39c0fc4bbbb3c2fa64a74",
42
- "microi-client-frontend/SKILL.md": "8e9f3392bb94c74d43b252cc9238b6ea38742a3ee8403d241643e738edcac899",
42
+ "microi-client-frontend/SKILL.md": "0fdaddb167e55f6ea88ae71e4a0074f578ec38dc35f13ff3055f6adc865fcef0",
43
43
  "microi-codex-installer/SKILL.md": "ae7ab91948227a165094e5f88380e264c19c51d42f22ec2a92bd13507f8fce36",
44
44
  "microi-codex-installer/agents/openai.yaml": "e531219b74a70204893a156b1c22c69013a4c9d24b132ead912746b1b312cf80",
45
45
  "microi-datasource-mapping/SKILL.md": "1626bdf242038838028aa1235c5a6262e22680984583c47a8fc4e5fffb24b7df",
@@ -55,24 +55,24 @@
55
55
  "microi-docs-coverage/SKILL.md": "36cefec16edc68f52682a93a1179b6c7d20f55ea8d217a7708136440be768ac2",
56
56
  "microi-docs-coverage/references/capability-map.md": "2cfc6a10ca017519b1b6ba9d4a33c2055f6793162a36b511ba319945f08972e1",
57
57
  "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "ebd57f17f2ebae499bfa59ad17830db458590feb76f7f0f20219ff0987b33af3",
58
- "microi-form-engine/SKILL.md": "e2bff491312643b16383c91280d81e3985cf81a70c10c5c366623601df7325ed",
58
+ "microi-form-engine/SKILL.md": "6daa341083974bdb09f85a3615e3a9ccb985f66878e6d4737cc6f9635ff9cc7f",
59
59
  "microi-form-engine/references/component-catalog.md": "68963c2d5211a4610c09fab1fa127a349339abbb7427509b183d4be72e977c7b",
60
60
  "microi-form-engine/references/data-source-events.md": "59a95a36624476b12cdc84e4c23975d074b1f115df19992fd0fd075bb982e7cb",
61
61
  "microi-form-layout/SKILL.md": "48814c2c138e2c0fb6a11d39cf458df6a1cc28a3156c7540db1fa482a2ce6aec",
62
62
  "microi-frontend-sdk/SKILL.md": "06f5d51605c6cceef35b986062dcfae76a8fe4efce28a93f267ec1fd2dc28372",
63
63
  "microi-left-right-layout/SKILL.md": "d8c482224846477b6c3068bdf94930cca6d699570f59b09f946601b0a65715f6",
64
- "microi-microservice/SKILL.md": "5f73a351d7ed17395c631524defab72155c7fe2db576785a2926d639453b659a",
65
- "microi-microservice/references/runtime-delivery.md": "f6f90258a8be86e5d10837c68de70cbad4d2efb4333966891105da7ddc0c5ca5",
64
+ "microi-microservice/SKILL.md": "a6dfd0616186dad0809510449e557845b7361640b741b922d730fdffb3870324",
65
+ "microi-microservice/references/runtime-delivery.md": "d21e759aee023dd3a1e9a3dd3bba26a38a5be6c2342d5aecf27901cd97a8ab6d",
66
66
  "microi-mobile-app-quality/SKILL.md": "3d7c4e89a5abe98658ebce0a31f3db05ff5e38b3f1ac5957aa44ebef9ae282ee",
67
67
  "microi-solution-quotation/SKILL.md": "1bd47bd019a62bdc904612a7d8e2501c76df66eed9ef247544dd7fe38eba02e4",
68
68
  "microi-solution-quotation/agents/openai.yaml": "9e3f994cc842c927ca25e23216f6ce5e8f8313fc39b1c7142d9b652ca73e7dd1",
69
69
  "microi-solution-quotation/scripts/build_solution_quote.py": "2a8a90ed95308b900da3db433402d857f838b594df624f5a83b62307471a31e7",
70
- "microi-system-delivery/SKILL.md": "1b54fa69f9469a177076cefac46e17a4e867a81d77d8b7379185fa1ce70cb3f2",
70
+ "microi-system-delivery/SKILL.md": "e82f269d81b8a0775baa66dd894a37787e9735b341b8db84ab07c035b69da1de",
71
71
  "microi-ui/SKILL.md": "606a9cfc2e9cbcb41e9e26ef9c09bb2ca31c4edc24af00058aa059b54a01f2fe",
72
72
  "microi-uniapp-frontend/SKILL.md": "546dff148306ab94beb57e12f303770eeb6959475d3005954e0314c11271fac2",
73
73
  "microi.v8.js": "25ff9e9aca3ff5167a1f3f06e262e3389a6d732cb12b9a3ddb4f218fb331ef53",
74
- "module-engine/SKILL.md": "1dff1029df854cddc39d721cd2b91723d4c919662f493de7efbf9d0361f5424c",
75
- "module-engine/references/module-config.md": "3d88cf18f97d08279bc73f2f9a16d23cdce657b171e58dcc2ab277d617bb53fc",
74
+ "module-engine/SKILL.md": "6c74925a8d7597266b0e7c01e78972a4afa9ef5a294c7f2cb4bff78dd91ef513",
75
+ "module-engine/references/module-config.md": "900f3baf7ae8d1311b1e1b8553aeae2ece4d8260fea29a1bd4237f3f9f35fe7d",
76
76
  "ocr-engine/SKILL.md": "16f7ee8d3485f47d2cb524f0c3fdea609f7de5581ba46da9f34d32772422c050",
77
77
  "ocr-engine/agents/openai.yaml": "3a6cc9984a246c41332c5f53d1badef31b78f81324333ea0d6337cb20c7fc898",
78
78
  "page-engine/SKILL.md": "8e8dfd456c8925db9ed6a483e2f4e3a8c7317194ec81b75195385ad267e7961b",
@@ -112,7 +112,7 @@
112
112
  "v8-image-processing/SKILL.md": "69fc700953ceec455604666e15a46a5d665cfc1e7c5134d0d47f2b0f938197cb",
113
113
  "v8-image-processing/agents/openai.yaml": "009d8b643bea6203a8056c7323b68fbe6a92c594809415cf657868074e52a576",
114
114
  "v8-image-processing/references/api-reference.md": "f8f293f64749d9681a1d4d5c25d5ef85ae1cfb7523487c43d08a03e9ebe36fb6",
115
- "v8-menu-buttons/SKILL.md": "fc933bf7685db029517f05df5e75560118ceb90a4a9d52922f046d34334a3082",
115
+ "v8-menu-buttons/SKILL.md": "ee1485e85b967c5b51e43d90d37aa17097d20b2d40cda49fe24f4de12a8e5ebd",
116
116
  "v8-mongodb/SKILL.md": "7da703b5dc9fb9613cca1929fd854e3d333ad7d86200b839bb78ccdc8e0cc6cf",
117
117
  "v8-mq-mqtt/SKILL.md": "3894fc353a3e9896b16b54b9e12758f0aea950968f80b7f3ec86c6652040341c",
118
118
  "v8-saas-multi-tenant/SKILL.md": "92663c00834d0070e145a84da15519d1d5c6aa77d733df09b51bdd221a262bdf",
@@ -128,114 +128,114 @@
128
128
  "workspace-conventions/SKILL.md": "a8bb98c6abc109394208af83052b5cf646ce4c91c969a8358a1265c5e61b314b"
129
129
  },
130
130
  "fileVersions": {
131
- ".microi-skills-version.json": "4.9.0",
132
- "README.md": "4.9.0",
133
- "ai-engine/SKILL.md": "4.9.0",
134
- "ai-engine/agents/openai.yaml": "4.9.0",
135
- "ai-platform-governance/SKILL.md": "4.9.0",
136
- "app-store/SKILL.md": "4.9.0",
137
- "app-store/agents/openai.yaml": "4.9.0",
138
- "business-blueprint/SKILL.md": "4.9.0",
139
- "datasource-engine/SKILL.md": "4.9.0",
140
- "datasource-engine/agents/openai.yaml": "4.9.0",
141
- "dos-orm/SKILL.md": "4.9.0",
142
- "dos-orm/references/api-reference.md": "4.9.0",
143
- "job-engine/SKILL.md": "4.9.0",
144
- "job-engine/agents/openai.yaml": "4.9.0",
145
- "message-notification/SKILL.md": "4.9.0",
146
- "message-notification/agents/openai.yaml": "4.9.0",
147
- "message-notification/references/contracts.md": "4.9.0",
148
- "microi-ai-app-auth.js": "4.9.0",
149
- "microi-ai-application/SKILL.md": "4.9.0",
150
- "microi-ai-application/agents/openai.yaml": "4.9.0",
151
- "microi-ai-application/references/frontend-baseline.md": "4.9.0",
152
- "microi-client-frontend/SKILL.md": "4.9.0",
153
- "microi-codex-installer/SKILL.md": "4.9.0",
154
- "microi-codex-installer/agents/openai.yaml": "4.9.0",
155
- "microi-datasource-mapping/SKILL.md": "4.9.0",
156
- "microi-db-schema/SKILL.md": "4.9.0",
157
- "microi-db-schema/agents/openai.yaml": "4.9.0",
158
- "microi-db-schema/references/core-tables.md": "4.9.0",
159
- "microi-db-schema/references/form-component-options.md": "4.9.0",
160
- "microi-db-schema/references/schema-overview.md": "4.9.0",
161
- "microi-db-schema/references/schema.md": "4.9.0",
162
- "microi-db-schema/references/table-catalog.md": "4.9.0",
163
- "microi-deployment/SKILL.md": "4.9.0",
164
- "microi-deployment/references/deployment-matrix.md": "4.9.0",
165
- "microi-docs-coverage/SKILL.md": "4.9.0",
166
- "microi-docs-coverage/references/capability-map.md": "4.9.0",
167
- "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.9.0",
168
- "microi-form-engine/SKILL.md": "4.9.0",
169
- "microi-form-engine/references/component-catalog.md": "4.9.0",
170
- "microi-form-engine/references/data-source-events.md": "4.9.0",
171
- "microi-form-layout/SKILL.md": "4.9.0",
172
- "microi-frontend-sdk/SKILL.md": "4.9.0",
173
- "microi-left-right-layout/SKILL.md": "4.9.0",
174
- "microi-microservice/SKILL.md": "4.9.0",
175
- "microi-microservice/references/runtime-delivery.md": "4.9.0",
176
- "microi-mobile-app-quality/SKILL.md": "4.9.0",
177
- "microi-solution-quotation/SKILL.md": "4.9.0",
178
- "microi-solution-quotation/agents/openai.yaml": "4.9.0",
179
- "microi-solution-quotation/scripts/build_solution_quote.py": "4.9.0",
180
- "microi-system-delivery/SKILL.md": "4.9.0",
181
- "microi-ui/SKILL.md": "4.9.0",
182
- "microi-uniapp-frontend/SKILL.md": "4.9.0",
183
- "microi.v8.js": "4.9.0",
184
- "module-engine/SKILL.md": "4.9.0",
185
- "module-engine/references/module-config.md": "4.9.0",
186
- "ocr-engine/SKILL.md": "4.9.0",
187
- "ocr-engine/agents/openai.yaml": "4.9.0",
188
- "page-engine/SKILL.md": "4.9.0",
189
- "performance-testing/SKILL.md": "4.9.0",
190
- "playwright-e2e/SKILL.md": "4.9.0",
191
- "print-engine/SKILL.md": "4.9.0",
192
- "production-readonly-audit/SKILL.md": "4.9.0",
193
- "report-engine/SKILL.md": "4.9.0",
194
- "report-engine/agents/openai.yaml": "4.9.0",
195
- "search-engine/SKILL.md": "4.9.0",
196
- "search-engine/agents/openai.yaml": "4.9.0",
197
- "spider-engine/SKILL.md": "4.9.0",
198
- "translate-engine/SKILL.md": "4.9.0",
199
- "translate-engine/agents/openai.yaml": "4.9.0",
200
- "ui-design/SKILL.md": "4.9.0",
201
- "ui-design/assets/pattern-showcase/app.js": "4.9.0",
202
- "ui-design/assets/pattern-showcase/index.html": "4.9.0",
203
- "ui-design/assets/pattern-showcase/styles.css": "4.9.0",
204
- "ui-design/assets/templates/MCI-DESIGN.md": "4.9.0",
205
- "ui-design/references/design-pattern-library.md": "4.9.0",
206
- "ui-design/references/mci-design-contract.md": "4.9.0",
207
- "ui-design/references/motion-and-media.md": "4.9.0",
208
- "ui-design/references/product-flow-recipes.md": "4.9.0",
209
- "uniapp-mall-assets/SKILL.md": "4.9.0",
210
- "v8-api-config/SKILL.md": "4.9.0",
211
- "v8-cache-pattern/SKILL.md": "4.9.0",
212
- "v8-crud-api/SKILL.md": "4.9.0",
213
- "v8-debugging/SKILL.md": "4.9.0",
214
- "v8-explorer-tree/SKILL.md": "4.9.0",
215
- "v8-export-import/SKILL.md": "4.9.0",
216
- "v8-file-upload/SKILL.md": "4.9.0",
217
- "v8-formengine-http/SKILL.md": "4.9.0",
218
- "v8-frontend-events/SKILL.md": "4.9.0",
219
- "v8-frontend-events/references/bluetooth-print-api.md": "4.9.0",
220
- "v8-frontend-events/references/bluetooth-print.md": "4.9.0",
221
- "v8-http-integration/SKILL.md": "4.9.0",
222
- "v8-image-processing/SKILL.md": "4.9.0",
223
- "v8-image-processing/agents/openai.yaml": "4.9.0",
224
- "v8-image-processing/references/api-reference.md": "4.9.0",
225
- "v8-menu-buttons/SKILL.md": "4.9.0",
226
- "v8-mongodb/SKILL.md": "4.9.0",
227
- "v8-mq-mqtt/SKILL.md": "4.9.0",
228
- "v8-saas-multi-tenant/SKILL.md": "4.9.0",
229
- "v8-security/SKILL.md": "4.9.0",
230
- "v8-sql-query/SKILL.md": "4.9.0",
231
- "v8-table-event/SKILL.md": "4.9.0",
232
- "v8-template-engine/SKILL.md": "4.9.0",
233
- "v8-utilities/SKILL.md": "4.9.0",
234
- "v8-utilities/references/client-api-index.md": "4.9.0",
235
- "v8-utilities/references/platform-http-routes.md": "4.9.0",
236
- "v8-utilities/references/server-api-index.md": "4.9.0",
237
- "v8-workflow/SKILL.md": "4.9.0",
238
- "workspace-conventions/SKILL.md": "4.9.0"
131
+ ".microi-skills-version.json": "4.9.2",
132
+ "README.md": "4.9.2",
133
+ "ai-engine/SKILL.md": "4.9.2",
134
+ "ai-engine/agents/openai.yaml": "4.9.2",
135
+ "ai-platform-governance/SKILL.md": "4.9.2",
136
+ "app-store/SKILL.md": "4.9.2",
137
+ "app-store/agents/openai.yaml": "4.9.2",
138
+ "business-blueprint/SKILL.md": "4.9.2",
139
+ "datasource-engine/SKILL.md": "4.9.2",
140
+ "datasource-engine/agents/openai.yaml": "4.9.2",
141
+ "dos-orm/SKILL.md": "4.9.2",
142
+ "dos-orm/references/api-reference.md": "4.9.2",
143
+ "job-engine/SKILL.md": "4.9.2",
144
+ "job-engine/agents/openai.yaml": "4.9.2",
145
+ "message-notification/SKILL.md": "4.9.2",
146
+ "message-notification/agents/openai.yaml": "4.9.2",
147
+ "message-notification/references/contracts.md": "4.9.2",
148
+ "microi-ai-app-auth.js": "4.9.2",
149
+ "microi-ai-application/SKILL.md": "4.9.2",
150
+ "microi-ai-application/agents/openai.yaml": "4.9.2",
151
+ "microi-ai-application/references/frontend-baseline.md": "4.9.2",
152
+ "microi-client-frontend/SKILL.md": "4.9.2",
153
+ "microi-codex-installer/SKILL.md": "4.9.2",
154
+ "microi-codex-installer/agents/openai.yaml": "4.9.2",
155
+ "microi-datasource-mapping/SKILL.md": "4.9.2",
156
+ "microi-db-schema/SKILL.md": "4.9.2",
157
+ "microi-db-schema/agents/openai.yaml": "4.9.2",
158
+ "microi-db-schema/references/core-tables.md": "4.9.2",
159
+ "microi-db-schema/references/form-component-options.md": "4.9.2",
160
+ "microi-db-schema/references/schema-overview.md": "4.9.2",
161
+ "microi-db-schema/references/schema.md": "4.9.2",
162
+ "microi-db-schema/references/table-catalog.md": "4.9.2",
163
+ "microi-deployment/SKILL.md": "4.9.2",
164
+ "microi-deployment/references/deployment-matrix.md": "4.9.2",
165
+ "microi-docs-coverage/SKILL.md": "4.9.2",
166
+ "microi-docs-coverage/references/capability-map.md": "4.9.2",
167
+ "microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs": "4.9.2",
168
+ "microi-form-engine/SKILL.md": "4.9.2",
169
+ "microi-form-engine/references/component-catalog.md": "4.9.2",
170
+ "microi-form-engine/references/data-source-events.md": "4.9.2",
171
+ "microi-form-layout/SKILL.md": "4.9.2",
172
+ "microi-frontend-sdk/SKILL.md": "4.9.2",
173
+ "microi-left-right-layout/SKILL.md": "4.9.2",
174
+ "microi-microservice/SKILL.md": "4.9.2",
175
+ "microi-microservice/references/runtime-delivery.md": "4.9.2",
176
+ "microi-mobile-app-quality/SKILL.md": "4.9.2",
177
+ "microi-solution-quotation/SKILL.md": "4.9.2",
178
+ "microi-solution-quotation/agents/openai.yaml": "4.9.2",
179
+ "microi-solution-quotation/scripts/build_solution_quote.py": "4.9.2",
180
+ "microi-system-delivery/SKILL.md": "4.9.2",
181
+ "microi-ui/SKILL.md": "4.9.2",
182
+ "microi-uniapp-frontend/SKILL.md": "4.9.2",
183
+ "microi.v8.js": "4.9.2",
184
+ "module-engine/SKILL.md": "4.9.2",
185
+ "module-engine/references/module-config.md": "4.9.2",
186
+ "ocr-engine/SKILL.md": "4.9.2",
187
+ "ocr-engine/agents/openai.yaml": "4.9.2",
188
+ "page-engine/SKILL.md": "4.9.2",
189
+ "performance-testing/SKILL.md": "4.9.2",
190
+ "playwright-e2e/SKILL.md": "4.9.2",
191
+ "print-engine/SKILL.md": "4.9.2",
192
+ "production-readonly-audit/SKILL.md": "4.9.2",
193
+ "report-engine/SKILL.md": "4.9.2",
194
+ "report-engine/agents/openai.yaml": "4.9.2",
195
+ "search-engine/SKILL.md": "4.9.2",
196
+ "search-engine/agents/openai.yaml": "4.9.2",
197
+ "spider-engine/SKILL.md": "4.9.2",
198
+ "translate-engine/SKILL.md": "4.9.2",
199
+ "translate-engine/agents/openai.yaml": "4.9.2",
200
+ "ui-design/SKILL.md": "4.9.2",
201
+ "ui-design/assets/pattern-showcase/app.js": "4.9.2",
202
+ "ui-design/assets/pattern-showcase/index.html": "4.9.2",
203
+ "ui-design/assets/pattern-showcase/styles.css": "4.9.2",
204
+ "ui-design/assets/templates/MCI-DESIGN.md": "4.9.2",
205
+ "ui-design/references/design-pattern-library.md": "4.9.2",
206
+ "ui-design/references/mci-design-contract.md": "4.9.2",
207
+ "ui-design/references/motion-and-media.md": "4.9.2",
208
+ "ui-design/references/product-flow-recipes.md": "4.9.2",
209
+ "uniapp-mall-assets/SKILL.md": "4.9.2",
210
+ "v8-api-config/SKILL.md": "4.9.2",
211
+ "v8-cache-pattern/SKILL.md": "4.9.2",
212
+ "v8-crud-api/SKILL.md": "4.9.2",
213
+ "v8-debugging/SKILL.md": "4.9.2",
214
+ "v8-explorer-tree/SKILL.md": "4.9.2",
215
+ "v8-export-import/SKILL.md": "4.9.2",
216
+ "v8-file-upload/SKILL.md": "4.9.2",
217
+ "v8-formengine-http/SKILL.md": "4.9.2",
218
+ "v8-frontend-events/SKILL.md": "4.9.2",
219
+ "v8-frontend-events/references/bluetooth-print-api.md": "4.9.2",
220
+ "v8-frontend-events/references/bluetooth-print.md": "4.9.2",
221
+ "v8-http-integration/SKILL.md": "4.9.2",
222
+ "v8-image-processing/SKILL.md": "4.9.2",
223
+ "v8-image-processing/agents/openai.yaml": "4.9.2",
224
+ "v8-image-processing/references/api-reference.md": "4.9.2",
225
+ "v8-menu-buttons/SKILL.md": "4.9.2",
226
+ "v8-mongodb/SKILL.md": "4.9.2",
227
+ "v8-mq-mqtt/SKILL.md": "4.9.2",
228
+ "v8-saas-multi-tenant/SKILL.md": "4.9.2",
229
+ "v8-security/SKILL.md": "4.9.2",
230
+ "v8-sql-query/SKILL.md": "4.9.2",
231
+ "v8-table-event/SKILL.md": "4.9.2",
232
+ "v8-template-engine/SKILL.md": "4.9.2",
233
+ "v8-utilities/SKILL.md": "4.9.2",
234
+ "v8-utilities/references/client-api-index.md": "4.9.2",
235
+ "v8-utilities/references/platform-http-routes.md": "4.9.2",
236
+ "v8-utilities/references/server-api-index.md": "4.9.2",
237
+ "v8-workflow/SKILL.md": "4.9.2",
238
+ "workspace-conventions/SKILL.md": "4.9.2"
239
239
  },
240
240
  "files": [
241
241
  ".microi-skills-version.json",
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "4.9.0",
2
+ "version": "4.9.2",
3
3
  "versionRule": "Microi version uses three numeric parts. Each publish increments the last part; when a part exceeds 9 it carries to the previous part: 1.0.9 -> 1.1.0, 1.9.9 -> 2.0.0.",
4
4
  "managedBy": "Microi.VSCode/bump-version.js",
5
- "updatedAt": "2026-08-10T16:08:41.170Z"
5
+ "updatedAt": "2026-08-11T04:06:42.498Z"
6
6
  }
@@ -31,13 +31,14 @@ description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用
31
31
 
32
32
  ## 官方应用事实
33
33
 
34
- 应用 Key:`ai-platform-studio`,当前资源合同版本:`v2.0.3`。
34
+ 应用 Key:`ai-platform-studio`,当前资源合同版本:`v2.0.4`。
35
35
 
36
36
  - 40 张 `mci_` 治理表和 5 张运行基础表,应用包共 45 张表、873 个字段;
37
37
  - 42 个后台菜单:1 个 `AI平台治理` 父菜单、1 个 `AI平台治理工作台` 微服务菜单和 40 个数据菜单;
38
38
  - 64 个接口引擎:57 个 `Managed`,7 个 `CreateIfMissing`;
39
39
  - 1 个 `MciAiPlatformMinuteSweep` 维护任务;
40
40
  - 10 个微服务路由:`overview`、`portal`、`identity`、`access`、`configuration`、`release`、`services`、`observability`、`assets`、`import`。
41
+ - v2.0.4 保持数据资源合同不变;内部菜单只切换异步内容区并显示局部骨架屏,主题/reset/装饰样式限定在 `[data-mci-ui-root="ai-platform-studio"]`,不得重挂宿主 Tab 或污染吾码 Logo 与主菜单。
41
42
 
42
43
  租户 Hook:
43
44
 
@@ -43,6 +43,8 @@ description: Microi.Client 源码架构指南。用于修改 Microi.Client Vue
43
43
 
44
44
  - Detail/Edit/List/Card 视图属于 `sys_menu`,使用物理字段 `EnableViewSchema`、`ViewSchemaVersion`、`ViewConfigVersion`、`ViewSchema`。其中 `EnableViewSchema` 只控制 Detail/Edit 自定义表单视图,List/Card 有有效配置时始终生效;两个版本字段可空,默认按 `1.0/1` 处理。
45
45
  - 顶层 PC `diy-table` 即使没有 List ViewSchema,也默认显示约 40 至 52px 的紧凑模块标题。`selectModuleView()` 只能对 List/Card 绕过 `EnableViewSchema`;Detail/Edit 必须继续显式启用,不能被列表 fallback 误接管。
46
+ - 存量模块没有 Hero 配置时,PC/移动端从真实 `StatisticsFields`、`DataCount/PageCount`、当前页数值求和或当前页真实状态分布生成兜底指标;当前页口径必须写进标签,严禁随机值或伪造全表汇总。
47
+ - `Layout.List.Columns[].MinWidth` 优先于普通 `diy_field.TableWidth` 和末列自适应;缺少持久宽度时按标题/地址、日期/编码、数值、状态等字段语义稳定推断。
46
48
  - `diy_table.DiyConfig`、`diy_field.DiyConfig`、`sys_menu.DiyConfig` 均为废弃兼容字段;禁止向其中写入任何新功能配置。
47
49
  - Text、Select、ImgUpload、Map 等数据控件继续放在 `diy-field-component`。
48
50
  - EntityHero、MetricStrip、ActionGrid、ResponsiveSection 是独立展示区块,放在 `form-view-blocks`,禁止用虚拟字段或 DevComponent 模拟。
@@ -372,7 +374,7 @@ DiyCommon.FormEngine.AddFormData("table_name", { Field: "value" }, function (res
372
374
  - 官方文档:`microi.doc/docs/doc/v8-engine/v8-client.md`。
373
375
  - Skills:`v8-frontend-events`、`v8-table-event`、`v8-menu-buttons`、`v8-template-engine`、`v8-formengine-http` 和本 Skill。
374
376
 
375
- `sys_menu.ViewSchema` 使用 `DiyModulePresentationDesigner` 作为配置入口,聚合 `EnableViewSchema / ViewSchemaVersion / ViewConfigVersion / ViewSchema`。设计器可视化编辑默认 List-PC 与 Card-Mobile 视图,以独立的自定义表单视图 JSON 编辑 Detail/Edit,并由高级 JSON 保留完整协议、角色视图和未知字段;运行时的 EntityHero/MetricStrip 等仍是独立展示区块,不由 DevComponent 参与渲染。
377
+ `sys_menu.ViewSchema` 使用 `DiyModulePresentationDesigner` 作为配置入口,聚合 `EnableViewSchema / ViewSchemaVersion / ViewConfigVersion / ViewSchema`。设计器固定提供“模块标题与统计 / PC 复合列 / 移动端卡片 / 自定义表单 / 高级 JSON”五个 Tab;可视化编辑默认 List-PC 与 Card-Mobile 视图,以独立的“自定义表单”JSON 编辑 Detail/Edit,并由高级 JSON 保留完整协议、角色视图和未知字段;运行时的 EntityHero/MetricStrip 等仍是独立展示区块,不由 DevComponent 参与渲染。
376
378
 
377
379
  固定高度的 `diy-form-full` 弹窗只能有一个纵向滚动容器:由弹窗直属 `.el-dialog__body` 承载滚动,Element Plus 的 overlay 和表单顶层 `.el-tabs__content` 必须禁用独立滚动。禁止同时保留 overlay、dialog body、tabs content 三层纵向滚动条;切换表单 Tab 时弹窗外框高度不得变化。
378
380
 
@@ -471,6 +473,13 @@ DiyCommon.FormEngine.AddFormData("table_name", { Field: "value" }, function (res
471
473
  内部 redirect,并在跳转前用当前 Router 解析,404/未注册动态路由失败关闭。宿主结果用
472
474
  `micro-app:host-action-result` 尽力回传,但关闭或跳转会卸载子应用,不能承诺结果事件必达。
473
475
 
476
+ `navigate/replaceTab` 只用于主框架级跳转;同一微服务内部菜单必须在子应用内用 Vue Router、
477
+ 状态或 iframe Hash 切换,并将异步页面的 `Suspense` 骨架屏限制在内容区域。不得通过改变主框架
478
+ `$route.fullPath` 实现内部页面切换,否则 TagsView 会重建整个微服务。宿主根节点与 `<micro-app>`
479
+ 元素必须建立 `contain: layout paint`、`isolation:isolate` 的绘制边界;子应用仍必须把主题/reset/
480
+ 元素选择器限定在 AppKey 唯一的 `[data-mci-ui-root="{AppKey}"]`,不能只写宿主也会命中的裸属性
481
+ 选择器,禁止以 `:root/html/body` 或固定全屏装饰污染主框架。
482
+
474
483
  `OpenAppDialog` 不暴露 Tab 模式能力;弹窗成功/取消/失败继续使用
475
484
  `app-dialog:success/cancel/error`。修改桥接时至少运行
476
485
  `node --test tests/micro-app-host-bridge.spec.mjs tests/micro-app-runtime-contract.spec.mjs`,并同步
@@ -164,10 +164,13 @@ MCP 建模只使用:
164
164
  优先使用现有 44 类标准控件。只有标准控件无法表达交互、且该交互会长期复用时,
165
165
  才使用 `DevComponent`:
166
166
 
167
- - Vue 组件路径必须稳定并纳入 `Microi.Client` 源码/构建。
167
+ - 多租户共用且与主框架强耦合的 Vue 组件,路径必须稳定并纳入 `Microi.Client` 源码/构建。
168
168
  - 支持 Add/Edit/View、只读、必填、清空、校验、移动端和暗色主题。
169
169
  - 不在组件内绕过 FormEngine 权限直接访问任意表。
170
- - 复杂但租户独有的页面优先使用 MicroService + `V8.OpenAppDialog`,避免把客户逻辑打进主前端。
170
+ - 复杂但租户独有、需要固定嵌入表单的区域,优先使用 `DevComponent` + MicroService 路由;临时打开的复杂页面使用 `V8.OpenAppDialog`,都避免把客户逻辑打进主前端。
171
+ - MicroService 表单嵌入使用 `microi.routes.json` 页面级 `LegacyComponentPaths` 作为稳定别名,字段 `Config.DevComponentPath` 与其匹配。主前端存在同路径 Vue 文件时本地优先;不存在时平台自动加载对应 `sys_microiservice_page.RoutePath`。新别名不得与 `/src/views` 真实文件冲突。
172
+ - 组件宿主下发 `componentMode=true`、可序列化 `componentData` 与 `permissionContext`;子应用用 `dev-component:resize` 同步高度,用 `dev-component:event` 回传 `update:modelValue`、`CallbackFormValueChange`、`FormSet` 或 `ParentFormSet`。不传 Vue 实例、函数、循环引用或 `ParentV8`,不直接操作父页面 DOM。
173
+ - 表单嵌入验收必须覆盖 Add/Edit/View/只读、初始值与回写、自动高度、窄屏、暗色主题,以及当前菜单 `ModuleEngineKey` 下的有权/无权账号。
171
174
  - `DevComponent` 配置了非空字段标题时必须正常渲染 Label;只有标题本身为空时才允许隐藏,
172
175
  不能按组件类型全局吞掉业务标题。`el-form--label-top` 下的字段级 `Button` 仍保留与其它
173
176
  控件等高的不可见 Label 占位,使按钮对齐控件区而不是对齐标题行。
@@ -19,6 +19,7 @@ description: Microi 前端微服务 MicroService 开发与交付指南。用于
19
19
  | 标准单表新增/编辑/查看 | FormEngine / `V8.OpenAnyForm` |
20
20
  | 主前端已注册组件 | `V8.OpenDialog` |
21
21
  | 3 个以上字段、联动、上传、表格、Tab、步骤条、代码编辑 | MicroService + `V8.OpenAppDialog` |
22
+ | 复杂区域需要固定嵌入表单、独立发布且不进入主前端 | `DevComponent` + MicroService 路由 |
22
23
  | 独立菜单、多页面、AI 在线编辑、本地 Vite、独立发布 | MicroService |
23
24
 
24
25
  ## 默认发现顺序
@@ -101,22 +102,24 @@ AppKey 稳定且只含安全字符。`microi.routes.json` 是页面事实源,
101
102
  - 服务器暂未部署修复且产物很小时,可把 `StorageMode=db` 与内联 `ContentBase64` 作为短期恢复手段;必须明确记录为临时方案。修复部署后重新流式发布到公有 HDFS,并恢复 `StorageMode=file`,禁止长期把大 JS/CSS 放在数据库 JSON。
102
103
  - 子租户发布时,源码、版本资产、回读验签、页面与缓存全部绑定当前 Token 的 `OsClient`;禁止回退到主租户或宿主服务器默认租户。切换前必须由当前 API 节点通过该子租户 HDFS 配置读回每个版本文件并校验大小/SHA-256。
103
104
 
104
- ## 菜单与弹窗
105
+ ## 菜单、弹窗与表单嵌入
105
106
 
106
107
  菜单 `OpenType=MicroService` 时一次绑定 `MicroServiceId`、
107
108
  `MicroServicePageId`、`MicroServiceRoutePath`、`MicroServiceKey`。
108
109
  完整系统 Manifest 不得固化不同租户会变化的两个 Id;模块声明 `openType=MicroService`、`microServiceKey` 和 `microServiceRoutePath` 即可,由 `microi_generate_system` 在任何写入前回读 `sys_microiservice/sys_microiservice_page`,解析并校验当前租户的 `MicroServiceId/MicroServicePageId`。微服务或页面不存在时必须在首个写操作前失败,不能留下半套系统。
109
110
  复杂弹窗用 `V8.OpenAppDialog`,业务参数放 `Data`,回调放顶层。
110
111
 
111
- ### 独立、菜单与弹层三种入口
112
+ ### 独立、菜单、弹层与表单嵌入四种入口
112
113
 
113
- - 同一发布物必须支持:直接打开独立运行、`sys_menu` 使用 `/micro-app/{AppKey}/{RoutePath}` 打开指定路由、`V8.OpenAppDialog` 按 AppKey/RoutePath 以 Dialog 或 Drawer 打开。
114
- - 菜单路由必须同时回读并传入 `SysMenuId`、`ModuleEngineKey`、`DiyTableId`;弹层默认继承调用菜单,也允许跨模块时显式传真实授权模块。宿主统一下发 `{ sysMenuId, moduleEngineKey, diyTableId }` `permissionContext`。
114
+ - 同一发布物必须支持:直接打开独立运行、`sys_menu` 使用 `/micro-app/{AppKey}/{RoutePath}` 打开指定路由、`V8.OpenAppDialog` 按 AppKey/RoutePath 以 Dialog 或 Drawer 打开、表单 `DevComponent` 按组件路径别名嵌入指定 RoutePath。
115
+ - 表单嵌入时,在 `microi.routes.json` 的目标页面声明稳定、唯一的 `LegacyComponentPaths`;字段 `Config.DevComponentPath` 与其归一化后匹配。主前端存在同路径 Vue 文件时本地组件优先;不存在时 `DynamicComponentCache` 才交给 MicroService 组件宿主。新项目使用不与 `/src/views` 真实文件冲突的虚拟路径,历史字段无需逐租户改配置。
116
+ - 组件宿主必须下发 `componentMode=true`、可序列化的 `componentData`、当前路由和权限上下文;子应用用 `dev-component:resize` 同步 80~1600px 高度,用 `dev-component:event` 回传 `update:modelValue`、`CallbackFormValueChange`、`FormSet` 或 `ParentFormSet`。禁止依赖父页面 DOM、Vue 实例、函数或 `ParentV8` 跨 iframe 传递。
117
+ - 菜单路由必须同时回读并传入 `SysMenuId`、`ModuleEngineKey`、`DiyTableId`;弹层与表单组件默认继承调用菜单,也允许跨模块时显式传真实授权模块。宿主统一下发 `{ sysMenuId, moduleEngineKey, diyTableId }` 的 `permissionContext`。
115
118
  - `permissionContext` 只是选择正确 API 调用上下文,不是授权凭证。后端仍依据 DiyToken、OsClient、角色、菜单、表、按钮和数据范围校验;禁止删除权限参数、改成匿名接口或写死管理员 Token 来消除“没权限”。
116
119
 
117
120
  ### 独立运行的认证门
118
121
 
119
- - 嵌入菜单或 `V8.OpenAppDialog` 时直接复用宿主 Token,不显示第二套登录页;同一个 V8 SDK 实例继续处理 Token 轮换。
122
+ - 嵌入菜单、表单定制组件或 `V8.OpenAppDialog` 时直接复用宿主 Token,不显示第二套登录页;同一个 V8 SDK 实例继续处理 Token 轮换。
120
123
  - 独立访问时先配置当前 `apiBase/osClient` 并复用本地有效 Token;没有有效 Token 才显示吾码帐号密码登录。
121
124
  - 页面启动时调用 `V8.GetSysConfig(true)`,用统一 `isEnabledFlag` 解析 `EnableCaptcha`。开启时请求 `GET /api/Captcha/GetCaptcha?OsClient=...`、读取响应头 `captchaid`,登录提交 `_CaptchaId/_CaptchaValue`;关闭时不渲染、不提交验证码字段。
122
125
  - 登录使用统一 `V8.Login` 与 DiyToken,不创建第二套用户体系。Token 失效后回到认证门;禁止在 URL、日志、源码、`.env` 或业务数据中保存 Token。
@@ -147,6 +150,21 @@ AI 生成菜单微服务时,应优先封装一个 `callMicroiHost(action, data
147
150
  宿主桥接不授予菜单或数据权限。业务保存成功后才能关闭/跳转,不能把尽力返回的
148
151
  `micro-app:host-action-result` 当作业务持久化确认。
149
152
 
153
+ 微服务自己的左侧菜单、页签和详情层级属于**子应用内部路由**,必须由子应用 Vue Router、
154
+ 状态机或 iframe 内 Hash 管理;禁止为 `/overview`、`/portal` 等同一 AppKey 页面调用宿主
155
+ `navigate/replaceTab`。吾码 TagsView 以主框架 `$route.fullPath` 作为组件 key,修改宿主路由会
156
+ 卸载并重新挂载整个微服务。内部页面较多时使用 `defineAsyncComponent`,并把 `Suspense` 骨架屏
157
+ 放在右侧内容容器内,使微服务导航栏和顶部栏保持挂载;浏览器 `popstate/hashchange` 要能恢复
158
+ 内部路由。只有确实要离开当前微服务、打开另一个吾码后台菜单或替换顶部 Tab 时才调用宿主路由动作。
159
+
160
+ 微服务所有主题变量、reset、通用元素规则必须限定在 AppKey 唯一根容器(推荐
161
+ `[data-mci-ui-root="{AppKey}"]`)下,不能只用宿主也会命中的裸 `[data-mci-ui-root]`;禁止用
162
+ `:root/html/body/#app`、裸 `*`、裸 `button/input` 污染宿主。
163
+ 背景网格、光晕等全屏装饰在微服务根节点内使用 `position:absolute`,禁止
164
+ `position:fixed; inset:0` 越界覆盖吾码 Logo 与主菜单。宿主使用 `contain: layout paint` 和
165
+ `isolation:isolate` 作为第二道边界,但不能代替子应用命名空间。验收需检查宿主 Logo/菜单样式、
166
+ 内部导航不重挂微服务、内容区局部骨架屏,以及前进/后退恢复。
167
+
150
168
  `closeTab` 与 TagsView 当前页签关闭语义一致,固定页签和最后一个页签拒绝关闭;顶部 Tab
151
169
  右键刷新与 `reloadTab` 都应重载当前微服务。`OpenAppDialog` 页面不使用 Tab 动作,继续发送
152
170
  `app-dialog:success/cancel/error` 关闭弹窗并回传结果。
@@ -177,6 +195,7 @@ AI 生成菜单微服务时,应优先封装一个 `callMicroiHost(action, data
177
195
  - 组合发布成功前,私有源码回读必须与本地源码在路径集合、文件数、字节数、逐文件 SHA-256 和规范化清单哈希上完全一致;任何缺失、多余或读取错误都要阻止运行版本切换。
178
196
  - 直接刷新友好路由与连续切换多个微应用不 404、白屏或实例名冲突。
179
197
  - Dialog/Drawer 成功、取消、错误和关闭协议正确。
198
+ - 表单 `DevComponentPath` 能匹配页面 `LegacyComponentPaths`,指定路由正常加载;Add/Edit/View/只读、字段值回写和自动高度均通过。
180
199
  - 独立地址覆盖“已有 Token 自动进入”和“无 Token 显示帐号密码”;`EnableCaptcha` 开/关各验一次,验证码响应头和登录参数正确。
181
200
  - 宿主 API 请求携带当前 Token/OsClient/`permissionContext`,普通用户用真实授权模块成功、未授权模块仍明确拒绝。
182
201
  - 至少验证桌面和窄屏;上传、表格、滚动、弹窗底部操作不被截断。
@@ -8,7 +8,7 @@
8
8
  ├─ 私有源码 -> mci_ai_app_file -> 私有 HDFS
9
9
  └─ 构建发布 -> sys_microiservice + sys_microiservice_page
10
10
  └-> 公有构建产物
11
- 后台菜单 / V8.OpenAppDialog -> 微应用宿主
11
+ 后台菜单 / 表单 DevComponent / V8.OpenAppDialog -> 微应用宿主
12
12
  ```
13
13
 
14
14
  `ApplicationType=MicroService` 表示运行类型;官方/社区来源是独立字段,不能混用。
@@ -51,7 +51,8 @@
51
51
  ```
52
52
 
53
53
  路径必须稳定并以 `/` 开头。迁移历史内置页面时可维护
54
- `LegacyMenuUrls/LegacyComponentPaths`,让新旧书签在过渡期共存。
54
+ `LegacyMenuUrls/LegacyComponentPaths`,让新旧书签在过渡期共存;
55
+ `LegacyComponentPaths` 也作为表单 `DevComponentPath` 到微服务页面 RoutePath 的稳定别名。
55
56
 
56
57
  ## MCP 读取/写入
57
58
 
@@ -124,6 +125,30 @@ V8.OpenAppDialog({
124
125
  回调函数必须在顶层,不放 `Data`。`OpenAppDialog` 只加载已发布 MicroService;
125
126
  `OpenDialog` 加载主前端注册组件。
126
127
 
128
+ ## 表单引擎定制组件
129
+
130
+ 需要把复杂区域固定嵌入表单时,字段使用 `Component=DevComponent`,并让
131
+ `Config.DevComponentPath` 匹配目标页面 `RouteMetaJson.LegacyComponentPaths`。主前端能找到
132
+ 同路径 Vue 文件时仍加载本地组件;找不到时才查询启用的 `sys_microiservice_page` 并由
133
+ `micro-app/dev-component.vue` 加载该页面 `RoutePath`。新项目应使用不会与 `/src/views` 真实文件
134
+ 冲突的虚拟路径。
135
+
136
+ 组件宿主下发 `componentMode=true`、`componentData`、`microRoute`、当前 Token/OsClient 和
137
+ `permissionContext`。`componentData` 仅包含可序列化表单上下文,不传函数、Vue 实例、循环引用或
138
+ `ParentV8`。子应用使用:
139
+
140
+ ```javascript
141
+ window.microApp.dispatch({ type: 'dev-component:resize', height: 520 });
142
+ window.microApp.dispatch({
143
+ type: 'dev-component:event',
144
+ event: 'update:modelValue',
145
+ args: [{ status: 'passed' }]
146
+ });
147
+ ```
148
+
149
+ 高度限制为 80~1600px;表单联动还可上报 `CallbackFormValueChange`、`FormSet`、
150
+ `ParentFormSet`。验收覆盖 Add/Edit/View/只读、字段值回写、窄屏/暗色以及有权/无权账号。
151
+
127
152
  ## 子应用宿主数据
128
153
 
129
154
  ```javascript
@@ -131,11 +156,12 @@ const host = window.microApp?.getData?.() || {};
131
156
  ```
132
157
 
133
158
  常见字段:`apiBase`、`osClient`、`token`、`menuId`、`moduleEngineKey`、`diyTableId`、
134
- `permissionContext`、`appKey`、`version`、`microRoute`、`dialog`、`dialogData`。只在内存中使用 Token。
159
+ `permissionContext`、`appKey`、`version`、`microRoute`、`dialog`、`dialogData`、
160
+ `componentMode`、`componentData`。只在内存中使用 Token。
135
161
 
136
162
  独立访问时没有宿主 Token:先配置清单中的 `apiBase/osClient`,读取 `V8.GetSysConfig(true)`,
137
163
  没有有效本地 Token 才显示吾码帐号密码登录;按 `EnableCaptcha` 动态请求验证码并向 `V8.Login`
138
- 提交 `_CaptchaId/_CaptchaValue`。嵌入菜单或弹层时复用宿主身份,不显示第二套登录。
164
+ 提交 `_CaptchaId/_CaptchaValue`。嵌入菜单、表单定制组件或弹层时复用宿主身份,不显示第二套登录。
139
165
 
140
166
  `permissionContext={sysMenuId,moduleEngineKey,diyTableId}` 只帮助子应用选择正确的 FormEngine
141
167
  模块上下文,不能授予权限。无权限时依次核对 Token/OsClient、模块 Key、宿主上下文和角色授权;
@@ -70,9 +70,17 @@ description: Microi 吾码从自然语言交付完整系统的总控规范。用
70
70
  - EntityHero、MetricStrip、ActionGrid、ResponsiveSection 是独立视图区块,不是 `diy_field` 数据字段,也不能用 DevComponent 或虚拟字段模拟。
71
71
  - 小程序仅执行白名单 ActionSchema 和声明式显隐/参数映射,不执行任意前端 V8。复杂业务动作调用接口引擎,重要校验进入后端表单事件。
72
72
 
73
- 绑定 `diyTableId` 创建 CRUD 菜单时,必须配置或允许 MCP/后端自动推断 `TableDiyFieldIds`、`SelectFields`、`SearchFieldIds`、`SortFieldIds`、`NotShowFields`、`StatisticsFields`、`MobileListFields`、`CardTitleTagFields`、`CardBottomTagFields`、`DefaultOrderBy`。列表列、搜索列、移动端卡片列不能为空白;`Id/XxxId/XxxIds`、系统字段、布局控件和富文本/上传/地图/子表等重字段默认不展示在列表。
74
-
75
- 搜索字段默认覆盖名称/标题/编号、状态/类型/分类、负责人/部门/客户、日期时间;金额、价格、数量、积分、余额、人数等数值字段默认进入 `StatisticsFields`。选择类、开关、部门、树、级联、地址等字段应尽量使用等值筛选。
73
+ 绑定 `diyTableId` 创建 CRUD 菜单时,必须配置或允许 MCP/后端自动推断 `TableDiyFieldIds`、`SelectFields`、`SearchFieldIds`、`SortFieldIds`、`NotShowFields`、`StatisticsFields`、`MobileListFields`、`CardTitleTagFields`、`CardBottomTagFields`、`DefaultOrderBy`。列表列、搜索列、移动端卡片列不能为空白;`Id/XxxId/XxxIds`、系统字段、布局控件和富文本/上传/地图/子表等重字段默认不展示在列表。
74
+
75
+ 搜索字段默认覆盖名称/标题/编号、状态/类型/分类、负责人/部门/客户、日期时间;金额、价格、数量、积分、余额、人数等数值字段默认进入 `StatisticsFields`。选择类、开关、部门、树、级联、地址等字段应尽量使用等值筛选。
76
+
77
+ 每个可见业务模块还必须通过视觉交付门禁:逐字段设置合理列表宽度;每个模块都有紧凑
78
+ 标题、业务副标题和 2~4 个真实动态指标;只给少量重要菜单设置行动型侧栏角标;为状态
79
+ PageTabs 和有决策价值的更多按钮设置批量统计角标;PC 至少一个合理宽度且去重普通列的
80
+ 复合主列;移动端按图片/标题/副标题/顶部/状态/右侧金额/正文/Meta/底部规划动态区域。
81
+ 自动生成只是最低兜底,AI 必须按业务表、状态机和数据口径精调。禁止用随机数、固定演示数
82
+ 或无来源值装饰指标;当前页求和必须明确标注“本页”。`EnableViewSchema` 只控制
83
+ Detail/Edit 自定义表单,不能用它关闭 List/Card 展示设计。
76
84
 
77
85
  字段较多的表单必须做视觉分组,但**优先用 `CollapseGroup` 折叠分组**,**只有大业务域(≥8 字段)才用 Tabs**。详细决策表、Config JSON 示例、字段数阈值和回读验收必须先读 `microi-form-layout/SKILL.md`,再按以下快速决策表执行:
78
86
 
@@ -48,6 +48,33 @@ description: Microi 模块引擎与 sys_menu 配置指南。用于创建或修
48
48
  普通状态、开关等低基数字段不能机械创建单列索引。只有真实查询、关联、唯一约束
49
49
  或扫描需要的索引才进入 Manifest 并通过 MCP 创建、回读。
50
50
 
51
+ ## AI 模块视觉交付门禁(强制)
52
+
53
+ 对每个 `Display=1` 或 `AppDisplay=1` 且绑定业务表的 Diy 模块,AI 不能只依赖 CRUD
54
+ 默认页,也不能只写 `Name/DiyTableId` 后结束。至少完成以下设计和回读:
55
+
56
+ 1. 每个列表字段都给出符合内容长度的 `TableWidth`;标题/名称/地址较宽,日期/编码居中,
57
+ 金额/数量/状态较紧凑。PC 复合列必须另给合理的 `MinWidth`,不得让末列自适应覆盖它。
58
+ 2. 每个模块都配置紧凑 Hero 的业务标题、简短副标题和 2~4 个动态指标。优先统计待处理、
59
+ 逾期、金额、容量、风险、完成率等当前表真正有意义的业务数据,不能全部退化为总记录数。
60
+ 3. 指标只能来自 `StatisticsFields`、当前列表 `DataCount/PageCount` 或一个批量聚合接口。
61
+ 禁止随机数、伪统计、静态演示数字和没有口径的“看起来好看”数值。无法推断时允许用
62
+ `DataCount + PageCount` 做诚实最低兜底,并在后续由业务人员补充口径。
63
+ 4. 左侧菜单角标只给少量有行动含义的重要菜单,例如待办、未读、逾期、低库存;禁止每个
64
+ 菜单都加。`PageTabs` 的状态数量、`MoreBtns/PageBtns/FormBtns/BatchSelectMoreBtns/
65
+ ExportMoreBtns` 的有用数量也应设计角标,但同页统计必须批量返回,禁止 N+1。
66
+ 5. PC 至少设计一个 `Field + Lines + TrailingFields` 复合主列。已放入次要行或右侧图标/
67
+ 状态的字段必须从普通独立列去重;主字段、次要行、右侧字段及其 `RequiredFields` 都要
68
+ 进入查询结果,宽度必须足以容纳多行和尾随标签。
69
+ 6. 移动端卡片按真实字段规划图片/头像、标题、副标题、顶部标签、状态、右侧金额、正文、
70
+ Meta、底部区域;同一字段不得在多个区域机械重复,空区域应隐藏而不是留下占位。
71
+ 7. `EnableViewSchema` 只控制 Detail/Edit 自定义表单。Hero、指标、列表密度、PC 复合列、
72
+ 移动端卡片只要有配置就始终生效;设计器必须提供独立的“自定义表单”Tab。
73
+
74
+ 平台自动生成的 List/Card 配置只是防止空白界面的最低值,不能替代 AI 对业务状态、金额、
75
+ 时效和操作路径的分析。显式配置优先于自动值;写后用 `microi_get_module` 回读 ViewSchema、
76
+ 列宽、统计列、卡片区域和角标配置。
77
+
51
78
  ## 打开方式
52
79
 
53
80
  | OpenType | 用途 |
@@ -113,6 +140,9 @@ PC 列表的固定结构顺序是“模块 Hero(标题/副标题/动态指标
113
140
  `Data.Buttons` 与 `Data.Rows`,禁止逐行调用。
114
141
  - 能直接用字段表达的信息优先配置复合列/卡片字段;只有确需 HTML 样式或组合逻辑时
115
142
  才使用字段的 `V8TmpEngineTable`,且仍需遵守 DOMPurify 和查询字段范围。
143
+ - 存量菜单没有 Hero.Metrics 时,客户端只允许根据真实后端汇总、当前筛选总数、本页加载数
144
+ 和本页真实状态分布生成兜底指标;不得用随机值装饰页面。字段聚合缺少全量口径时必须明确
145
+ 标注“本页”,不能把当前页求和冒充全表汇总。
116
146
 
117
147
  ### 表单布局协同
118
148