@microi.net/cli 5.9.5 → 5.9.7

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 (37) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +43 -43
  4. package/.mcp.json +1 -1
  5. package/.workbuddy-plugin/marketplace.json +2 -2
  6. package/.workbuddy-plugin/plugin.json +1 -1
  7. package/LICENSE +21 -21
  8. package/README.md +71 -71
  9. package/assets/build-meta.json +7 -7
  10. package/assets/feature-matrix.json +138 -138
  11. package/assets/logo.svg +4 -4
  12. package/cordis.patch.yml +1 -1
  13. package/package.json +82 -82
  14. package/scripts/codex-marketplace.json +20 -20
  15. package/scripts/mcp-codex-stdio-adapter.js +189 -189
  16. package/scripts/mcp-server.js +165 -435
  17. package/scripts/mcp-trae-windows-launcher.cmd +21 -21
  18. package/scripts/microi-cli-mcp.js +7 -7
  19. package/scripts/microi-cli.js +64 -673
  20. package/scripts/microi-codex-broker.js +466 -466
  21. package/scripts/microi-codex-router.js +635 -634
  22. package/scripts/microi-skills.meta.json +221 -212
  23. package/skills/.microi-skills-version.json +2 -2
  24. package/skills/.progressive-disclosure-manifest.json +62 -36
  25. package/skills/microi-codex/SKILL.md +3 -0
  26. package/skills/microi-codex-installer/SKILL.md +1 -1
  27. package/skills/microi-system-delivery/SKILL.md +20 -71
  28. package/skills/microi-system-delivery/references/context-quality.md +56 -0
  29. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +39 -1
  30. package/skills/microi-system-delivery/references/progressive-02-/350/207/252/345/212/250/345/214/226/346/265/213/350/257/225/345/277/205/351/241/273/350/246/206/347/233/226/347/232/204/345/235/221.md +3 -3
  31. package/skills/microi-system-delivery/references/progressive-03-/345/256/211/345/205/250/344/270/216/350/267/250/347/253/257/351/252/214/346/224/266.md +71 -0
  32. package/skills/module-engine/SKILL.md +26 -0
  33. package/skills/page-engine/SKILL.md +21 -0
  34. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +3 -3
  35. package/skills/report-engine/SKILL.md +12 -0
  36. package/skills/workspace-conventions/SKILL.md +13 -180
  37. package/skills/workspace-conventions/references/progressive-04-/345/267/245/344/275/234/345/214/272/344/270/216/345/271/263/345/217/260/344/270/223/351/241/271/344/277/235/351/232/234.md +180 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 1,
3
- "generatedAt": "2026-10-15T12:35:25.935Z",
3
+ "generatedAt": "2026-10-15T15:02:13.403Z",
4
4
  "policy": {
5
5
  "maxEntryLines": 285,
6
6
  "referenceBudgetLines": 245,
@@ -763,11 +763,11 @@
763
763
  ]
764
764
  },
765
765
  "microi-system-delivery": {
766
- "originalSha256": "1863eea393f9f59d2c8394676ed5b67c80e85fa5f7629193b67330662d75bdb4",
767
- "originalLines": 578,
768
- "prefixSha256": "af58f29dd31d1e292f187d31a6e71c6b5180481a4a5a23bbed5ca768cb221682",
769
- "prefixBytes": 3222,
770
- "entryLines": 157,
766
+ "originalSha256": "0012ea7107cb3ecf78339ec5fa1940819b742a4d4cd194db8d8aae6f341b8053",
767
+ "originalLines": 683,
768
+ "prefixSha256": "c6846a619a5b9291649fc44a36de5a0676ec2b1dfa94a57ad38f9620573cf4ff",
769
+ "prefixBytes": 4786,
770
+ "entryLines": 106,
771
771
  "chunks": [
772
772
  {
773
773
  "id": "microi-system-delivery-000",
@@ -788,7 +788,7 @@
788
788
  {
789
789
  "id": "microi-system-delivery-002",
790
790
  "ordinal": 3,
791
- "destination": "microi-system-delivery/SKILL.md",
791
+ "destination": "microi-system-delivery/references/progressive-03-安全与跨端验收.md",
792
792
  "sha256": "adeb9e4ec4beadf3b7ba33325e860b378b81f6d7e95b25879b64ca4ee1c91987",
793
793
  "lines": 52,
794
794
  "heading": "平台安全与存量兼容验收(强制)"
@@ -796,7 +796,7 @@
796
796
  {
797
797
  "id": "microi-system-delivery-003",
798
798
  "ordinal": 5,
799
- "destination": "microi-system-delivery/SKILL.md",
799
+ "destination": "microi-system-delivery/references/progressive-03-安全与跨端验收.md",
800
800
  "sha256": "8e2891f2a149d6828b653b9f0735ea39a4df5ba60178c79f0e5b0065ce72ee84",
801
801
  "lines": 13,
802
802
  "heading": "前端交付检查清单"
@@ -805,23 +805,23 @@
805
805
  "id": "microi-system-delivery-004",
806
806
  "ordinal": 6,
807
807
  "destination": "microi-system-delivery/SKILL.md",
808
- "sha256": "9a226a70ef240ce83151c140d002253dccbf7efa63653f61c8825f2b69c1c7d3",
809
- "lines": 14,
808
+ "sha256": "cc8ef54619f2f7a1dc3ba4268d02cbe678c855ba17e2d9e9ed3251ac0dc35e18",
809
+ "lines": 16,
810
810
  "heading": "交付完成定义"
811
811
  },
812
812
  {
813
813
  "id": "microi-system-delivery-005",
814
814
  "ordinal": 2,
815
815
  "destination": "microi-system-delivery/references/progressive-01-标准工作流.md",
816
- "sha256": "8f34122f08c3cee8f4aed5054c012cb560904442ea080fa2fc3d495b73b53a25",
817
- "lines": 229,
816
+ "sha256": "32039bfdbd18bb97f3f93974ace75169c9d90df4c0702ff76134f1c9a9282912",
817
+ "lines": 267,
818
818
  "heading": "标准工作流"
819
819
  },
820
820
  {
821
821
  "id": "microi-system-delivery-006",
822
822
  "ordinal": 4,
823
823
  "destination": "microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md",
824
- "sha256": "1dd7c9face286616c392ece855acac7d1a3358afbad904a4ff6da5f10c0a8e01",
824
+ "sha256": "bc1fbdecb428b0a94d04d55d22e5c14f61354097cbaa2a059574f47fb41f5bdc",
825
825
  "lines": 131,
826
826
  "heading": "自动化测试必须覆盖的坑"
827
827
  },
@@ -832,6 +832,14 @@
832
832
  "sha256": "67fa060b6520a80e41818ac0974c0b38ff3171c97a1c558a01667b854865fa7a",
833
833
  "lines": 82,
834
834
  "heading": "复盘记录格式"
835
+ },
836
+ {
837
+ "id": "microi-system-delivery-008",
838
+ "ordinal": 8,
839
+ "destination": "microi-system-delivery/references/context-quality.md",
840
+ "sha256": "0e9e14b98ac7ab7ca0bf1c4ef97bad2bf061d0c01b170325ddbaf961a02a0de4",
841
+ "lines": 54,
842
+ "heading": "质量优先的上下文与增量开发"
835
843
  }
836
844
  ],
837
845
  "references": [
@@ -847,6 +855,18 @@
847
855
  "自动化测试必须覆盖的坑",
848
856
  "复盘记录格式"
849
857
  ]
858
+ },
859
+ {
860
+ "path": "references/progressive-03-安全与跨端验收.md",
861
+ "headings": [
862
+ "安全与跨端验收"
863
+ ]
864
+ },
865
+ {
866
+ "path": "references/context-quality.md",
867
+ "headings": [
868
+ "质量优先的上下文与增量开发"
869
+ ]
850
870
  }
851
871
  ]
852
872
  },
@@ -1214,11 +1234,11 @@
1214
1234
  ]
1215
1235
  },
1216
1236
  "page-engine": {
1217
- "originalSha256": "08c2b53b016199e5495dae60e71a74b391d5f6923f66a95e002d2fd7a0df1b1b",
1218
- "originalLines": 455,
1219
- "prefixSha256": "78b807d6e6d56642b9a5a848d9fafa0a869eb43411a98a61aab36d058c4b6b86",
1220
- "prefixBytes": 4181,
1221
- "entryLines": 207,
1237
+ "originalSha256": "fce0a98e8b3b81ccf98cb20d5c93f0b53cfdab7da5050c7c2e94444d65e9aa48",
1238
+ "originalLines": 476,
1239
+ "prefixSha256": "6ae3962d142c190a5ba8a958d749759b6a4fd8266e6f965d4b6f726d7a6350f7",
1240
+ "prefixBytes": 6255,
1241
+ "entryLines": 228,
1222
1242
  "chunks": [
1223
1243
  {
1224
1244
  "id": "page-engine-000",
@@ -1362,7 +1382,7 @@
1362
1382
  ]
1363
1383
  },
1364
1384
  "playwright-e2e": {
1365
- "originalSha256": "b437da7ac5c22847c9f6f6f6c0ad67aab590f8d54901d5df9c141dd07705888d",
1385
+ "originalSha256": "2fd541de20b3517dc9442e635872e609b2708c7aedc1c5fb6477cf5ad9a649a3",
1366
1386
  "originalLines": 807,
1367
1387
  "prefixSha256": "5550e83bf4a6a2261ed5a65826a6799a3ad20f2f66b44b9f4308bc1bed6dc75d",
1368
1388
  "prefixBytes": 1914,
@@ -1532,7 +1552,7 @@
1532
1552
  "id": "playwright-e2e-020",
1533
1553
  "ordinal": 20,
1534
1554
  "destination": "playwright-e2e/references/progressive-03-microi-helper-模板.md",
1535
- "sha256": "a267a39f5fe3dab714c5275759f7bdd1b6150990fa00555e07c091aee5795a29",
1555
+ "sha256": "63b5c2374f7e011a927ebd751d01c50e2d54d9e746d4d47ddd1665779a4487b9",
1536
1556
  "lines": 48,
1537
1557
  "heading": "完整业务验收门槛"
1538
1558
  },
@@ -3221,17 +3241,17 @@
3221
3241
  ]
3222
3242
  },
3223
3243
  "workspace-conventions": {
3224
- "originalSha256": "968aedcd9fd9572ccdbf378cdfc5d9ee6e19f8445551e95e594851177593b4d5",
3225
- "originalLines": 638,
3226
- "prefixSha256": "b2c13c455cf052093f78881170151d3fb56c25cda2f837c9f6abc0c29e67fd30",
3227
- "prefixBytes": 310,
3228
- "entryLines": 285,
3244
+ "originalSha256": "d78e122d770720b37c4f8f387557e7a6a5eac491e080bdb2762b80b92fef2143",
3245
+ "originalLines": 646,
3246
+ "prefixSha256": "45acfafcda30d35e7cabefaa67f8b73697d0f93724733d2469386a54e3910b76",
3247
+ "prefixBytes": 1658,
3248
+ "entryLines": 118,
3229
3249
  "chunks": [
3230
3250
  {
3231
3251
  "id": "workspace-conventions-000",
3232
3252
  "ordinal": 0,
3233
3253
  "destination": "workspace-conventions/SKILL.md",
3234
- "sha256": "09810cd14d0b03a9b52469a851f851bb18f41aa8aad4ccdb4a59a97b006aa128",
3254
+ "sha256": "2e2e41e7a7a58a9e813b9eac157ff36dbd1e3a1d33cac597bd75b6975b9aa44d",
3235
3255
  "lines": 58,
3236
3256
  "heading": "任务启动前 Skill 读取规则(强制)"
3237
3257
  },
@@ -3246,7 +3266,7 @@
3246
3266
  {
3247
3267
  "id": "workspace-conventions-002",
3248
3268
  "ordinal": 2,
3249
- "destination": "workspace-conventions/SKILL.md",
3269
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3250
3270
  "sha256": "795821e68c0c347c68f8cdcb6e2f81defa9a172650216288c10d313075e3247d",
3251
3271
  "lines": 16,
3252
3272
  "heading": "分布式部署与重启安全规范(强制)"
@@ -3254,15 +3274,15 @@
3254
3274
  {
3255
3275
  "id": "workspace-conventions-003",
3256
3276
  "ordinal": 3,
3257
- "destination": "workspace-conventions/SKILL.md",
3258
- "sha256": "7e7a88134f51f7e5712e9a41cfe516bae45ea8e9cb418a93cc39adeff3f3cbb4",
3277
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3278
+ "sha256": "478664d863219c724b8d19d25e7ac17420add6229c9efab5b75823d815aede53",
3259
3279
  "lines": 19,
3260
3280
  "heading": "本地资源与 OOM 保护规范(强制)"
3261
3281
  },
3262
3282
  {
3263
3283
  "id": "workspace-conventions-004",
3264
3284
  "ordinal": 4,
3265
- "destination": "workspace-conventions/SKILL.md",
3285
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3266
3286
  "sha256": "093ef306e8f2f873b76524ce69ce7fd5194cfa0b361bd564f0c767f88439a817",
3267
3287
  "lines": 29,
3268
3288
  "heading": "临时文件与 AI 产物放置规则(强制)"
@@ -3270,7 +3290,7 @@
3270
3290
  {
3271
3291
  "id": "workspace-conventions-005",
3272
3292
  "ordinal": 5,
3273
- "destination": "workspace-conventions/SKILL.md",
3293
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3274
3294
  "sha256": "f627ee155b40014af76926b3a432601aa3f6bec5a7eb98ca0540c83fa41f1e5a",
3275
3295
  "lines": 32,
3276
3296
  "heading": "Microi 源码路径速查(工作区根相对路径)"
@@ -3278,7 +3298,7 @@
3278
3298
  {
3279
3299
  "id": "workspace-conventions-006",
3280
3300
  "ordinal": 6,
3281
- "destination": "workspace-conventions/SKILL.md",
3301
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3282
3302
  "sha256": "fb29cd39fe580e3e38df4c0483e5530f876697418f38b391aa421606c8fc6fe5",
3283
3303
  "lines": 12,
3284
3304
  "heading": "Skills 通用化原则"
@@ -3286,7 +3306,7 @@
3286
3306
  {
3287
3307
  "id": "workspace-conventions-007",
3288
3308
  "ordinal": 7,
3289
- "destination": "workspace-conventions/SKILL.md",
3309
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3290
3310
  "sha256": "c23d7942a3b6176b464fe267546c09dcadf990c2c243576c267c644b4502795d",
3291
3311
  "lines": 11,
3292
3312
  "heading": "Skills 中文优先规则"
@@ -3294,7 +3314,7 @@
3294
3314
  {
3295
3315
  "id": "workspace-conventions-008",
3296
3316
  "ordinal": 8,
3297
- "destination": "workspace-conventions/SKILL.md",
3317
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3298
3318
  "sha256": "cd38647f4ae3c186e247c06ce44b45e42ce7e664d58fbed82c93595547638a7c",
3299
3319
  "lines": 11,
3300
3320
  "heading": "官方文档原位增补与中文单源规则(强制)"
@@ -3302,8 +3322,8 @@
3302
3322
  {
3303
3323
  "id": "workspace-conventions-009",
3304
3324
  "ordinal": 9,
3305
- "destination": "workspace-conventions/SKILL.md",
3306
- "sha256": "43bdb1476a7751fbc251c933ccfbd1710c9269dec3e7e4b541cdaeea37d200f1",
3325
+ "destination": "workspace-conventions/references/progressive-04-工作区与平台专项保障.md",
3326
+ "sha256": "bec8162387c470c0cad1252645dbb4ecdafb0abb5f9b042525b6df8671e77ab0",
3307
3327
  "lines": 38,
3308
3328
  "heading": "多对话共享工作区变更归属保护(强制)"
3309
3329
  },
@@ -3593,6 +3613,12 @@
3593
3613
  "headings": [
3594
3614
  "CLI 与 IDE 插件错版共存约定"
3595
3615
  ]
3616
+ },
3617
+ {
3618
+ "path": "references/progressive-04-工作区与平台专项保障.md",
3619
+ "headings": [
3620
+ "工作区与平台专项保障"
3621
+ ]
3596
3622
  }
3597
3623
  ]
3598
3624
  }
@@ -91,6 +91,9 @@ Codex Router 启动后会异步调用 bundled CLI 的 `microi update --backgroun
91
91
 
92
92
  ## 功能路由
93
93
 
94
+ - 质量优先的上下文策略读取 `microi-system-delivery/references/context-quality.md`。完整系统读全原八项及增补;局部修改读取目标与依赖,歧义扩大。`microi_get_db_schema` 默认目录摘要,字段写入前使用 `detail:"fields"` 并遍历 `Paging.nextCursor`;应用清单和文件片段同样检查完整性,不能把摘要作为覆盖正文。
95
+ - 较大 Manifest 在 `microi_plan_system` 首次提交正文并传 `detail:"summary"` 获取 `manifestRef/manifestHash` 复用,执行与验收仍校验当前身份;引用过期、重启或凭据变化时重新提交正文,写入未知先回读。`microi_get_context_metrics` 只报告当前 MCP 工具载荷字节、调用和错误,不能冒充供应商 token/费用。外部宿主的历史摘要和缓存由宿主管理。
96
+
94
97
  - 连接、登录、拉取、推送、差异和 AI 初始化:使用 bundled CLI 的 `profile`、`auth`、`pull`、`push`、`sync status`、`ai init`、`mcp init`、`doctor`。
95
98
  - 接口引擎、表单事件、模块、字段、工作流和数据库结构:先用 `action="list_tools"` / `describe_tool`,再调用对应原始 `microi_*` 工具。写工具必须保留确认口令、审计与回读。
96
99
  - 远程执行与调试:读取 `v8-debugging/SKILL.md`。Codex 用“获取源码 → 远程执行 → 定位堆栈/日志 → 最小补丁 → 再执行”的结构化循环代替 VS Code DAP 的可视化逐行面板;不得把未执行的源码检查称为真机调试成功。
@@ -132,7 +132,7 @@ microi codex status --json
132
132
  microi dsh status --json
133
133
  ```
134
134
 
135
- 不得用单独的 `microi mcp init` 代替完整 AI 重新初始化;`ai init` 已默认包含 MCP 更新。只有诊断表明 MCP 仍有明确残留问题时,才追加 `microi mcp init` 做定向恢复。初始化写入采用幂等/原子方式,不终止已启动的 MCP;当前进程继续旧版本,新进程读取新版本。
135
+ 完整初始化优先使用 `microi ai init`,它默认包含 MCP 更新;旧版单独 `microi mcp init` 只配置连接,必须补 `ai init`。新版 MCP 初始化联动同一 AI 注入器,同时补齐 Skills 和宿主规则,仍保留用户自定义或已跟踪入口;不能把初始化成功解释为模型已读全部规则。开工应按基础规范回报实际读取的总控和完整清单。初始化写入采用幂等/原子方式,不终止已启动的 MCP;当前进程继续旧版本,新进程读取新版本。
136
136
 
137
137
  开发者从可信本地源码验收时,可以显式指定 marketplace 源:
138
138
 
@@ -11,23 +11,35 @@ description: 已初始化吾码工作区的默认 AI 开发总控入口,用户
11
11
 
12
12
  本 Skill 是已初始化吾码工作区的默认开发总控入口。用户直接描述需求即可,无需指定 Skill 名称;
13
13
  目标 MCP 连接可沿用当前项目或唯一已登录连接,需求文件/验收地址按需提供。
14
- 任何吾码开发任务先读本入口与八项清单,再按下表读取相关专项 Skill。
14
+ 任何吾码开发任务先读本入口和质量规范;完整系统必须完整读取八项清单及其增补要求,局部修改按目标与依赖读取对应专项 Skill。
15
15
  收到“完整开发/交付系统”请求时,必须先读取
16
16
  [完整系统开发默认交付清单(原推荐提示词 1–8)](references/progressive-01-标准工作流.md#完整系统开发默认交付清单原推荐提示词-18),
17
+ 并完整读取同一参考文件的[菜单先行与经营报表增补要求](references/progressive-01-标准工作流.md#菜单先行与经营报表增补要求强制),
17
18
  逐项执行并记录覆盖结果;不能只交方案、示例或待办。局部修改、只读分析按用户实际范围执行,
18
19
  这份默认清单不额外授权生产写入或客户部署。
19
20
 
21
+ 先读取 [质量优先的上下文与增量开发](references/context-quality.md)。完整系统在写入前必须读取 [安全与跨端验收](references/progressive-03-安全与跨端验收.md);局部涉及 FormEngine、菜单、权限、文件、登录或前端交互时读取对应安全/跨端章节。未知影响必须扩大检索,不能用少读资料换取不准确的修改。
22
+
20
23
  按本次实际能力读取相关 Skill,不能只读总控入口后凭记忆实现:
21
24
 
22
25
  | 工作内容 | 相关 Skill |
23
26
  |---|---|
24
27
  | 需求文档、成熟数据模型、表/字段/索引 | `business-blueprint`、`microi-db-schema`、`microi-form-engine` |
25
28
  | 表单宽度、分组、整行控件与视觉 | `microi-form-layout`、`ui-design` |
26
- | 菜单、PageTabs、统计角标、模块指标、复合列、移动卡片 | `module-engine`、`v8-menu-buttons` |
29
+ | 菜单骨架、AI 开发中占位、逐菜单切换、PageTabs、模块展示 | `module-engine`、`v8-menu-buttons` |
27
30
  | 选项 Key/Label、数据源、状态模板 | `microi-datasource-mapping`、`datasource-engine`、`v8-template-engine` |
28
- | 业务接口、表单事件、看板与报表 | `v8-crud-api`、`v8-table-event`、`page-engine`、`report-engine` |
31
+ | 业务接口、表单事件 | `v8-crud-api`、`v8-table-event` |
32
+ | 业务统计、老板经营、领导管理看板及明细报表 | `page-engine`、`report-engine`、`datasource-engine` |
29
33
  | 真实业务、截图、账号和跨端验收 | `playwright-e2e`;有独立前端时再读相应前端 Skill |
30
34
 
35
+ 完整开发按“需求与现状分析 → 菜单和报表规划 → 独立骨架 Manifest 检查与 dry-run →
36
+ 授权落地菜单骨架 → 分阶段实现最终资源并独立预验收 → 保持菜单身份切换 → 原入口最终验收”推进。
37
+ 仅用户可见的新业务/报表叶菜单先指向共享 AI 开发中组件(`IsMicroiService=0`),
38
+ 保留独立业务 URL、标题和菜单身份;隐藏数据/授权载体维持原绑定,骨架不预绑定不存在资源。
39
+ 候选预验收不依赖仍占位的原 URL,切换失败精确恢复本菜单原绑定并列为未完成;
40
+ 详情按增补要求及 `module-engine` 执行。经营、领导和业务统计看板默认基于界面引擎,
41
+ 不能以列表角标或占位页替代。局部改动只处理范围内菜单/报表,只读分析不创建占位资源。
42
+
31
43
  每张由 AI/MCP 创建的业务表都必须同时设计默认表单 Banner,不能只建字段和菜单。完整
32
44
  Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选择业务编号/名称标题、
33
45
  客户/项目副标题、首个 `ImgUpload`、状态/类型标签和真实数值指标,并写入 `diy_table`
@@ -65,74 +77,7 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
65
77
  最终回复必须按原始编号逐项汇总:哪些已实现、哪些未实现、是否通过全自动化测试、是否通过截图验证。不能只给总括性“都完成了”。如果某项没有测试或没有截图,必须明说“未覆盖/未截图”,并说明原因。
66
78
 
67
79
  <!-- /microi-progressive:chunk -->
68
- <!-- microi-progressive:chunk id=microi-system-delivery-002 sha256=adeb9e4ec4beadf3b7ba33325e860b378b81f6d7e95b25879b64ca4ee1c91987 -->
69
- ## 平台安全与存量兼容验收(强制)
70
-
71
- AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉及 FormEngine、菜单、角色、子表、文件、SaaS 或登录协议的交付,都必须按以下服务端边界设计和验收:
72
-
73
- ### FormEngine 混合授权
74
-
75
- - Token 只完成身份认证,不是任意表的访问凭证。浏览器、UniApp、SDK 等外部请求必须继续校验表、菜单、角色、操作权限和数据范围。
76
- - 显式 `_SysMenuId` / `ModuleEngineKey` 进入精确菜单校验;伪造、传错或借用其它表菜单时失败关闭,不能退回兼容推断。
77
- - 为兼容存量前端 V8,无菜单请求由后端从当前用户真正拥有的菜单授权快照中推断目标表权限。没有候选菜单、范围无法安全合并或解析失败时失败关闭;不要要求所有历史项目一次性补 `_SysMenuId`。
78
- - 标准 PC facade 只给当前菜单绑定的当前表注入菜单 Id,跨表调用不借用主表菜单。没有菜单入口的 SDK/定制页才使用最小【高级表权限】。
79
- - 后端接口引擎、后端表单 V8 和平台内部调用由服务端建立可信上下文,不要求 `_SysMenuId`;客户端伪造 `_TrustedServerInvocation` 或 `_InvokeType:'Server'` 不能获得信任。
80
- - `TableChild` 使用父记录范围内委托:验证父菜单、父表字段配置、子菜单、父记录数据范围和外键,并由服务端强制注入外键。隐藏子菜单不要求存量角色逐个补权限。
81
- - 菜单 `SqlWhere` / `SqlJoin` 只约束列表、计数、导出等集合查询;单行详情只校验同表菜单访问权。主表写入由 `Add` / `Edit` / `Del` / `Import` 专项权限控制,不把查询范围追加到写入 SQL,也不因查询 Join 拒绝。行级写业务限制放在后端表单 V8 或专用接口引擎。
82
-
83
- ### 保护表、控制面与缓存
84
-
85
- - SaaS、接口引擎、表/字段、菜单角色、用户、任务、数据源、MQ/MQTT、页面、打印、工作流、数据库、应用商城、AI 与安全审计等保护表,普通客户端 `Level < 9999` 硬拒绝;菜单或表权限不能覆盖。
86
- - 创建 V8、接口引擎、任务、数据源和 Redis 管理等控制面 API 继续要求 `Level >= 9999`。不能只靠前端隐藏菜单。
87
- - 权限缓存使用按 `OsClient` 隔离的共享 Redis `epoch`、用户快照、短 TTL L1/L2。用户/角色/菜单/权限变化后提升 `epoch`;验收至少使用两个节点确认无需清 Redis或重启即可生效。
88
- - Upgrade15 只清理普通角色的保护表直接授权,不能删除正常业务菜单权限。
89
-
90
- ### 上传、私有文件与 SaaS
91
-
92
- - 上传业务默认值为 100 MB/文件、200 MB/次、10 文件、2 GB/帐号/日、20 GB/租户/日。有效值只按当前租户 `sys_osclients` → 代码安全默认值解析,租户可以提高或降低业务默认值;不得为上传开关、额度或硬上限新增 API 环境变量或 `appsettings` 节点。最终仍受代码内不可突破的灾难保护、HTTP/Multipart/Form 和反向代理上限约束。共享 Redis 原子预留,Redis 故障失败关闭。
93
- - 无字段上下文的普通交互式上传默认私有桶,一级安全目录为 `file`、`img`、`avatar`、`editor`;可由管理员在普通 `sys_config.HdfsUploadRules` 按真实角色授权业务目录与公有权限。通配符必须有界并先校验实际路径,保留目录与跨租户不能放行。标准表单仍按权威字段配置执行。可信后端 V8 仍受全局文件大小硬上限。
94
- - 普通客户端私有文件签名必须提交 `FormEngineKey`、`FormDataId`、`FieldId`、`SysMenuId` 并验证记录字段真实引用;不能把后端 `V8.Method.GetPrivateFileUrl({FilePathName})` 的可信调用方式照搬到浏览器。
95
- - Upgrade16 六个上传字段全部可空,空值保持老租户兼容;升级后回读字段元数据、租户值并刷新 SaaS 缓存。
96
- - `V8.OsClientModel` / `V8.SysConfig` 只使用脱敏副本,不返回整个对象。新租户不能复制主租户整条 `sys_osclients`;数据库、认证、Redis、存储、MQ/MQTT、搜索凭据必须独立创建或由服务端托管。
97
- - Redis 管理器只允许超级管理员使用当前租户或已保存连接;匿名/temporary 任意 Host 连接必须拒绝,MCP 写操作必须 `confirmExecution`,禁止传递 Redis 密码。
98
-
99
- ### 网络、登录和发布兼容
100
-
101
- - `CorsAllowOrigins` 和全局 CORS 来源都为空时默认允许任意来源;配置后才按精确来源/通配符收紧。CORS 不是鉴权边界。
102
- - 严格 SSRF 默认关闭,未配置时不得拒绝存量非 HTTP(S)、URL 凭据、私网、云元数据和重定向调用;显式启用后才执行严格拦截与精确主机白名单。
103
- - 登录 RSA 仅避免密码在请求体直接显示,HTTPS 才是安全边界。必须保留历史 RSA fallback,专属公私钥成对切换,不能因删除旧常量造成所有客户无法登录。
104
- - 登录传 `_ClientType`,请求携带稳定 `did`,每次响应接收 `authorization`。多标签续签 single-flight;`TokenReplaced` 先检查新 Token,旧响应不能清掉新登录态。
105
- - 安全升级不得删除私有子 Git 的 `Microi.Server/Microi.net/License/keys/`。授权签名资产与登录 RSA 用途不同,禁止以安全清理为由混删。
106
- - 不得修改默认 CORS/SSRF/RSA 行为后只用新装环境验收;必须覆盖旧前端、历史 V8、滚动升级和至少两个节点。
107
-
108
- ### 安全自动化最低断言
109
-
110
- 1. 普通角色保护表读写、伪造菜单、伪造可信标记均失败。
111
- 2. 真实菜单、历史无菜单推断和父记录范围内 TableChild 均成功,跨父记录失败。
112
- 3. 查询范围在列表、计数、导出中生效;详情按同表菜单访问权成功;有写权限的单表/Join 模块写入成功,无写权限失败,后端 V8 行级业务校验可回滚。
113
- 4. 节点 A 改权限后节点 B 无需重启生效。
114
- 5. 上传大小/数量/双日额度、多节点并发和 Redis 故障行为正确。
115
- 6. 私有文件跨菜单/记录/字段失败,授权访问成功,匿名失败。
116
- 7. CORS 空配置兼容、配置后收紧;SSRF 默认兼容、严格模式拦截。
117
- 8. 历史 RSA fallback 和专属匹配密钥均可登录;并发续签不反复退出。
118
- 9. SaaS 脱敏投影不包含基础设施密钥,Redis anonymous/temporary/非管理员管理失败。
119
-
120
- <!-- /microi-progressive:chunk -->
121
- <!-- microi-progressive:chunk id=microi-system-delivery-003 sha256=8e2891f2a149d6828b653b9f0735ea39a4df5ba60178c79f0e5b0065ce72ee84 -->
122
- ## 前端交付检查清单
123
-
124
- - 底部 tabBar 图标不 404。
125
- - 首页、分类、详情、Banner、头像、订单凭证图全部真实加载。
126
- - 主题切换是全局生效,不是只对一个页面生效。
127
- - 列表页和详情页显示同一主体名称、头像、状态,不能列表对、详情错。
128
- - 关联人名不得退化成“卖家BMB9”“匿名卖家”等可推断 Id 的兜底,除非确实无数据。
129
- - 关键业务资产不得默认选中第一条,必须用户手动选择。
130
- - 自己不能抢自己的单,不能约自己的单,必须给明确提示。
131
- - 消息/待办/约单/审核类提醒必须有未读角标,已读后消失。
132
- - 订单状态角标只给需要处理的状态,不给“全部/已完成/已取消”等静态分类堆数字。
133
-
134
- <!-- /microi-progressive:chunk -->
135
- <!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=9a226a70ef240ce83151c140d002253dccbf7efa63653f61c8825f2b69c1c7d3 -->
80
+ <!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=cc8ef54619f2f7a1dc3ba4268d02cbe678c855ba17e2d9e9ed3251ac0dc35e18 -->
136
81
  ## 交付完成定义
137
82
 
138
83
  一次 Microi 全系统交付只有同时满足以下条件才算完成:
@@ -145,6 +90,8 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
145
90
  6. 后端和前端服务可自动启动。
146
91
  7. Playwright 账号登录、接口契约、网络守卫、业务闭环、截图复核均通过。
147
92
  8. 生成或修改的通用经验已写回 microi.skills,且不能包含项目专属措辞;不能只写本地 memory、聊天记录或项目临时文档。
93
+ 9. 菜单树包含范围内全部业务与报表入口;每个本次新增可见业务/报表叶菜单已从开发中占位切换到验收通过的真实页面,菜单 Id、业务 URL、层级、排序与权限关联保持正确。仍有占位或阻塞的菜单逐项标为未完成。
94
+ 10. 基于界面引擎的业务统计、老板经营与领导管理报表已接通当前租户真实业务数据;指标口径、筛选/时间、权限、穿透、空/失败状态与明细对账均有证据。
148
95
 
149
96
  <!-- /microi-progressive:chunk -->
150
97
  ## 详细参考路由(渐进披露)
@@ -153,4 +100,6 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
153
100
 
154
101
  - [references/progressive-01-标准工作流.md](references/progressive-01-标准工作流.md):标准工作流
155
102
  - [references/progressive-02-自动化测试必须覆盖的坑.md](references/progressive-02-自动化测试必须覆盖的坑.md):自动化测试必须覆盖的坑;复盘记录格式
103
+ - [references/progressive-03-安全与跨端验收.md](references/progressive-03-安全与跨端验收.md):安全与跨端验收
104
+ - [references/context-quality.md](references/context-quality.md):质量优先、精确检索、引用、局部变更及定制应用验收
156
105
  <!-- microi-progressive:end -->
@@ -0,0 +1,56 @@
1
+ # 质量优先的上下文与增量开发
2
+ <!-- microi-progressive:chunk id=microi-system-delivery-008 sha256=0e9e14b98ac7ab7ca0bf1c4ef97bad2bf061d0c01b170325ddbaf961a02a0de4 -->
3
+
4
+ 本规范用于降低重复读取和重复传输,不降低软件质量。准确性、权限、业务完整性和验收优先于 token、耗时和回复长度。摘要只用于发现目标,不能成为未经核实的写入依据。
5
+
6
+ ## 按任务确定必需知识
7
+
8
+ | 范围 | 必须读取与执行 | 扩大范围的条件 |
9
+ |---|---|---|
10
+ | 新建完整系统 | 基础入口、总控、标准工作流全文(原八项及菜单先行、经营报表增补)、相关专项 Skills、安全与交付检查 | 任何需求、角色、关系、端或外部服务未覆盖时补齐,不得以预算不足交付缩水系统 |
11
+ | 已有系统局部修改 | 基础入口、总控路由、本次领域 Skill、目标当前内容及直接依赖、相关安全规则、影响范围内的回读与回归 | 目标不唯一、关系不清、动态调用、跨表状态、权限、公共组件影响不明时继续检索;不能靠名称相似猜测 |
12
+ | 只读解释或诊断 | 基础入口、总控路由、支持结论的相关事实 | 证据不足先补读,不能把文档、缓存、旧会话或摘要冒充当前运行状态 |
13
+
14
+ 完整系统不因未出现“完整”二字就降级。对“开发一套系统”等新系统意图,默认按完整系统执行。任务范围判定与帐号身份分开:创始人身份不等于每项客户需求都在修改平台内核,但平台基础能力变更仍执行四项同步和平台回归。
15
+
16
+ 每次开工列明实际读取的基础入口、总控、适用参考和专项 Skills;只声称已经读取的内容。首次读取、版本变化或目标不明时扩大读取。同一会话中可复用已完整读取且内容哈希未变化的知识;新会话、压缩后无法确认读取记录或哈希变化时重新读取。
17
+
18
+ ## 先发现,再精确读取,再修改
19
+
20
+ 1. 确认实际服务器、完整租户坐标、当前身份和业务目标;不得为了减少读取切换到其它连接。
21
+ 2. 先获取目录或搜索结果,确认目标 Id、路径、版本与关系。目录摘要、行片段和字段投影不能表示全库、完整文件或完整业务模型。
22
+ 3. 修改前读取目标完整语义单元及必要依赖;金额、库存、权限、审批、关联字段和公共组件扩大到后端规则、调用方和跨端回显。仅改文案仍需确认实际按钮、角色条件与运行入口。
23
+ 4. 返回 `hasMore`、截断、未知完整性、错误或缺失依赖时继续分页或扩大查询。查无结果不证明资源不存在,必须检查过滤范围与权限。
24
+ 5. 按本次精确差异修改,保留其它正确配置;执行前检查当前版本和授权,执行后独立回读,再验证受影响业务和界面。
25
+
26
+ 完整新系统先完成可遍历的现有资源盘点与关系审查,避免重复建模;不能只看一页摘要就开始创建。局部修改不重复生成全库示例数据,也不跳过该改动的失败、边界、权限和兼容回归。
27
+
28
+ ## 不可变引用与结果证据
29
+
30
+ Manifest 正文可以一次提交,后续以同一内容哈希和会话引用执行 plan、dry-run、apply、validate。引用只是传输优化,不是授权票据、全局锁或幂等保证。
31
+
32
+ - 引用必须绑定当前服务器、完整租户坐标和身份,设容量与有效期;凭据变化、过期、重启或跨会话引用失败时重传已核对正文。
33
+ - 写入仍使用当前真实权限、确认参数、结构与引用校验;不得复用旧验收结论代替当前检查。
34
+ - 写入超时、断线或结果未知时先回读,不得换引用或幂等键盲目重试。
35
+ - 摘要保留状态、错误、警告、资源标识、版本/哈希、验证结果和完整证据引用;完整回执可按需取回。不能截断 JSON 后把片段作为可执行正文。
36
+ - 对权限变化、冲突、部分成功、回滚和未知状态明确区分;失败不能被压缩成成功数量。
37
+
38
+ ## 定制应用的最小充分接入
39
+
40
+ | 场景 | 读取范围与复用方式 | 必须保留的验收 |
41
+ |---|---|---|
42
+ | Vue / UniApp 定制前端 | 对应前端、SDK、资源与 UI Skills;现有微服务脚手架、登录、上传和 API 封装 | 真实登录、租户隔离、失败状态、跨端回显、构建和浏览器 |
43
+ | 游戏 / Unity / WebGL | 对应应用或 Unity Skill;仅按实际需要接入帐号、存档、排行、房间和支付 | 状态一致性、重连、并发、服务端防伪、设备/GPU 验收边界 |
44
+ | 算法工程 | 算法源码、数据契约和可重复样例;平台仅提供需要的数据、权限与任务能力 | 正确性、边界、性能和真实数据分布;不能只验示例 |
45
+ | 硬件 / IoT | 实际协议及对应 TCP、HTTP、MQTT Skill,受信配置和模拟器 | 幂等、超时、结果未知、真实设备执行;网络写入成功不等于设备已执行 |
46
+
47
+ 平台没有覆盖的能力必须明确实现和验收,不能用通用模板掩盖缺口。脚手架和模拟器减少重复建设,不能替代真实服务或硬件证据。
48
+
49
+ ## 计量与验收标准
50
+
51
+ 以同模型、同需求、同初始数据和同验收标准比较小修改、定制页面、完整系统。记录真实输入、缓存输入、输出、供应商报告的推理用量(如有)、工具轮数、重复读取、错误重试、耗时和完成率。多 Agent 的用量也计入总量。
52
+
53
+ MCP 可以准确统计传输字节和调用次数,不能据此声称供应商 token 或费用。缺少供应商 Usage 时标记未知;字符估算单独标记。缓存命中降低费用或延迟,不等于逻辑 token 消失。外部 Codex/IDE 的历史摘要与供应商缓存由宿主管理,吾码不得宣称已强制控制。
54
+
55
+ 评测必须同时检验资源完整、权限/事务/关系正确、局部差异精确和必要回归通过。任何质量退步都不接受;不通过删测试、减少验收或隐瞒失败来展示节省比例。
56
+ <!-- /microi-progressive:chunk -->
@@ -7,7 +7,7 @@
7
7
  统计都应来自真实字段或真实接口引擎;配置写 `diy_table`,禁止写入 `sys_menu`。即使用户
8
8
  没有逐项指定,也必须写入类型感知的合理默认值,不能交付空 Banner。
9
9
 
10
- <!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=8f34122f08c3cee8f4aed5054c012cb560904442ea080fa2fc3d495b73b53a25 -->
10
+ <!-- microi-progressive:chunk id=microi-system-delivery-005 sha256=32039bfdbd18bb97f3f93974ace75169c9d90df4c0702ff76134f1c9a9282912 -->
11
11
  ## 完整系统开发默认交付清单(原推荐提示词 1–8)
12
12
 
13
13
  以下八项来自官网最后编号版推荐提示词,是完整系统新建/开发的默认交付要求。
@@ -62,6 +62,42 @@
62
62
  - 页面、控制台或网络报错要定位并修复本次交付相关问题,回归后给出证据;外部服务阻断如实记录,不能声称未验证的路径已通过。
63
63
  - 完成后只关闭本次 AI 创建的临时浏览器、服务和进程,并回读清理结果;不得遗留孤儿进程,也不得结束用户或其它任务共享的服务。按 `playwright-e2e` 维护测试与截图产物。
64
64
 
65
+ ## 菜单先行与经营报表增补要求(强制)
66
+
67
+ 本节是原 1–8 项之外的必读增补,两项要求共同执行,不替换或删减上方清单。
68
+ 完整系统开发默认执行;局部修改只处理需求内菜单、页面和指标;只读分析不写菜单、页面或验收数据。
69
+ 默认规范不能代替开发租户写入授权,也不授权客户部署、生产数据变更或全库重建。
70
+
71
+ ### 先展示完整菜单,再逐项交付真实页面
72
+
73
+ 1. 需求分析结束、现有资源盘点完成后,在业务蓝图中列出本次完整菜单树:业务域父菜单、业务功能、统计看板、老板报表、领导报表及需求内日志/设置。每个叶菜单记录稳定 Key、标题、父级、排序、目标角色和最终页面类型;复用已有正确菜单,不把已交付功能切回开发中。
74
+ 2. 菜单骨架使用独立 Manifest,只包含 `SecondMenu` 父菜单、用户可见业务/报表的 `Component` 占位叶菜单及必要菜单权限,不预绑定尚不存在的业务表、页面或微服务。独立执行 `microi_plan_system` 和 `dryRun`,在已授权的开发租户范围内优先落地,让用户立即看见功能结构。占位叶菜单使用 `OpenType=Component`、`ComponentPath=/ai-engine/developing`、`IsMicroiService=0`,并保存各自独立、稳定的业务 `Url`。一个共享 Vue 组件服务多个菜单,不能共用业务 URL 或复制多份源码。隐藏 `TableChild` 等数据/授权载体不使用占位组件,仍按原规范保留 `Diy`、真实表绑定及 `Display=0/AppDisplay=0`。
75
+ 3. 共享页面在路由内容区按可用宽高 100% 展示“AI 正在开发中…”及当前菜单标题。菜单身份与名称来自平台生成的 `route.meta.Id/title`,不能从任意 URL 参数拼接 HTML。持续轻量动画必须支持平台明暗主题、窄屏和减少动态效果偏好;动画只表达等待,不模拟真实开发进度。没有可回读任务状态时不展示虚构百分比、完成数、倒计时或预计完成时间。
76
+ 4. 菜单写入后回读 `Id/ParentId/Url/OpenType/ComponentPath/IsMicroiService/Sort` 与角色权限,逐个点击检查身份、标题、访问标签、刷新及切换。随后用分阶段最终资源 Manifest 开发业务表、接口和页面;先回读真实资源 Id,再更新已有菜单绑定,不用尚不存在的资源约束阻塞菜单骨架生成。蓝图记录每个菜单的实际状态、最终绑定及证据;占位不计作已开发页面或已交付功能。
77
+ 5. 先在已授权且可访问的候选运行入口独立预验收该菜单的真实页面,覆盖业务、权限、数据及截图,不要求尚指向占位的原业务 URL 提前显示新页面。通过后记录本菜单切换前绑定,更新同一条 `sys_menu` 的 `OpenType`、`ComponentPath` 或真实 MicroService/界面引擎/报表绑定,并按最终打开方式设置 `IsMicroiService`。保持 `Id/ParentId/Url/Sort`、角色/按钮权限及关联,不删除重建或改变无关配置。刷新菜单并移除该菜单旧占位缓存,回读配置,再从原菜单及原 URL 做最终验收;微服务预验收前先发布并验证产物和页面绑定,不能只保存源码就切换。
78
+ 6. 切换或原入口最终验收失败时,仅恢复该菜单记录的占位绑定或原正确绑定,刷新并回读,保留失败证据与待完成记录。中断、失败或未完成均保持诚实状态,存量已完成页面继续可用;最终交付逐菜单核对,不能靠改文案、隐藏未完成菜单或把占位视为成功来清零。
79
+
80
+ 占位组件是吾码框架前端能力,目标前端版本必须实际包含 `/ai-engine/developing`。
81
+ 旧前端先按用户授权完成框架升级;未升级时先交付菜单规划并准确记录版本依赖,保留原可用路由,不能创建指向不存在组件的白屏菜单或把任意外部 URL 当作等价交付。检查版本不授权自动升级客户容器。具体配置读取 `module-engine`。
82
+
83
+ ### 默认交付业务统计、老板经营与领导管理报表
84
+
85
+ - 完整系统蓝图必须主动设计基于界面引擎(Page Engine)的统计报表,覆盖需求相关的业务运营统计、老板经营决策和领导管理分析,不等用户逐条要求。按业务域、角色和决策任务组织报表菜单;允许复用同一真实指标源并按角色提供视图,避免为了凑数量重复页面。逐项列出各类报表及适用指标;不适用指标说明业务依据,不伪造不存在的利润、成本、业绩或风险数据。
86
+ - 业务统计关注数量、金额、状态、趋势、分布、效率和异常;老板经营视角关注经营规模、收入/成本/利润(存在可核对来源时)、回款/现金与经营风险;领导管理视角关注部门/人员绩效、任务进展、待办/逾期、资源利用及达成情况。最终指标由需求与实际业务模型决定,不能机械套用无关行业指标,也不能只交一张无意义总数卡。
87
+ - 每项指标在蓝图中定义名称、数据源、计算公式、单位/精度、业务状态、时间字段、时区、区间边界、维度和可见角色;比较类指标明确同比/环比基期。前端筛选与后端查询口径一致,日期、部门/人员/项目等条件在服务端生效;统计接口继续按当前租户和真实用户数据范围授权,不能因老板/领导菜单名称就授予跨租户或全库读取。
88
+ - 使用真实业务表、数据源和接口引擎批量聚合,不下载全量明细在前端拼统计,不用随机数、模板演示数或本页合计冒充全量指标。界面引擎负责看板、图表、趋势与分析;需要分页明细、汇总表、查询和导出时配合 `report-engine` 的虚拟报表。列表 `StatisticsFields`、模块 Hero、菜单/按钮角标只是局部提示,不能替代这三类决策报表。
89
+ - 报表必须有合理的周期/维度筛选、加载、空数据、无权限和失败状态。真实零值显示为零;未配置、缺数据源或请求失败不能伪装为零。支持从指标/图表穿透到授权业务明细,带上同一筛选条件,并校验明细合计与统计一致;确无可穿透明细的汇总明确说明来源与限制。
90
+ - 先把报表入口纳入菜单骨架,再开发真实指标与界面引擎页面。通过管理员、老板/领导业务角色、普通及无权限角色测试,覆盖时间边界、筛选组合、零/空/失败、跨部门/跨租户拒绝、明细对账、电脑/移动与明暗主题截图;保存并回读 `mic_page`、绑定菜单、数据源及统计接口。示例 JSON 只证明排版,不能证明真实报表已交付。细节读取 `page-engine`、`report-engine` 和 `datasource-engine`。
91
+
92
+ ### 新增验收清单
93
+
94
+ - [ ] 原 1–8 项逐条仍有实现与验收记录,没有被两项增补取代。
95
+ - [ ] 菜单骨架独立 Manifest 通过 plan/dryRun 并在授权范围落地,没有预绑定不存在的资源;仅可见业务/报表叶菜单使用占位及 `IsMicroiService=0`,URL 各自独立,隐藏数据载体和存量已完成功能保持正确绑定。
96
+ - [ ] 开发中页填满可用内容区,当前菜单身份/标题正确;持续动画、明暗/窄屏和减少动态效果可用,无假进度。
97
+ - [ ] 候选真实页面先独立预验收,再以真实资源 Id 更新同一菜单及正确打开方式标记;保留 Id、URL、层级、排序、权限和关联,刷新菜单/旧缓存后通过原入口最终验收;失败精确恢复本菜单原绑定,仍在占位的菜单列为未完成。
98
+ - [ ] 三类界面引擎统计报表已按需求覆盖,指标口径与数据来源完整,筛选和权限在服务端生效。
99
+ - [ ] 统计与同口径明细对账,穿透、时间边界、零/空/失败、角色隔离及跨端截图通过;局部/只读任务没有超范围创建资源。
100
+
65
101
  ## 标准工作流
66
102
 
67
103
  ### 1. 需求蓝图阶段
@@ -70,6 +106,7 @@
70
106
  - 用 `business-blueprint` 或同等文档固定:角色、菜单、状态机、关键表、接口引擎、按钮、任务调度、业务时间窗口、费率和权限边界。
71
107
  - 用户新增或纠正规则后,立即同步到蓝图/方案文档,避免后续实现忘记业务口径。
72
108
  - 生成系统前,用 MCP 读取现有 `diy_table`、`diy_field`、`sys_menu`、`sys_apiengine`,不要重复造表或编造字段。
109
+ - 按上方增补要求形成完整菜单树、逐菜单最终页面计划,以及业务/老板/领导三类界面引擎统计报表和指标口径。
73
110
 
74
111
  ### 2. MCP 建模阶段
75
112
 
@@ -78,6 +115,7 @@
78
115
  - 创建复杂系统优先使用 Manifest:表、字段、菜单、按钮、接口引擎、权限、页面、打印、工作流、任务统一规划。
79
116
  - 先 dry-run:`microi_plan_system` / `microi_generate_system dryRun:true`。
80
117
  - 用户确认后真实写入,并立即 `microi_validate_system`。
118
+ - 真实写入先落地已授权的新菜单骨架,再逐项建模、实现与验收;菜单从共享开发中组件切到真实页面的时机与身份保护按上方增补要求执行,不把占位页当最终验收成功。
81
119
  - 所有写操作前必须确认 MCP 绑定的 API Server、OsClient 和用户指定租户一致;多个 MCP 同时存在时,读写不能跨服务器混用。
82
120
  - 对资金/资产类生产数据执行清理、重算、修复、补发、扣减前,必须留下可审计痕迹:中文备注 SQL、维护接口说明、执行时间、影响行数、回读验证结果。能用小范围条件时不要全表更新。
83
121
  - 写入菜单时,业务按钮一次性配齐 `MoreBtns`、`FormBtns`、`PageBtns`、`BatchSelectMoreBtns`、`PageTabs`,按钮前端只负责交互,后端逻辑放接口引擎。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=microi-system-delivery-006 sha256=1dd7c9face286616c392ece855acac7d1a3358afbad904a4ff6da5f10c0a8e01 -->
5
+ <!-- microi-progressive:chunk id=microi-system-delivery-006 sha256=bc1fbdecb428b0a94d04d55d22e5c14f61354097cbaa2a059574f47fb41f5bdc -->
6
6
  ## 自动化测试必须覆盖的坑
7
7
 
8
8
  ### 后端统一测试与发布门禁
@@ -69,8 +69,8 @@
69
69
  ### 网络与接口契约
70
70
 
71
71
  - 拦截全部请求,404、5xx、CORS/ORB、图片加载失败、字符串 `null`、空响应、非 JSON 全部失败。
72
- - 页面出现“请求失败”“网络错误”“开发中”“待开发”“null”等文案,默认失败。
73
- - 扫描源码禁止残留 `开发中|待开发`。
72
+ - 页面出现“请求失败”“网络错误”“null”等文案默认失败;最终业务入口出现“开发中”“待开发”判为未交付。菜单骨架阶段的预期占位可验证菜单身份、布局和动画,但不计已完成业务功能。
73
+ - 最终交付业务源码禁止残留 `开发中|待开发`;精确排除平台共享 `ai-engine/developing.vue` 及其专属占位测试,不扩大到业务页面或其它源码。
74
74
  - 所有 `callEngine('xxx')` 必须有接口契约测试覆盖:HTTP ok、标准 DosResult、必要字段非空。
75
75
 
76
76
  ### 真实业务闭环