@microi.net/cli 5.9.4 → 5.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codebuddy-plugin/marketplace.json +2 -2
- package/.codebuddy-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/.mcp.json +1 -1
- package/.workbuddy-plugin/marketplace.json +2 -2
- package/.workbuddy-plugin/plugin.json +1 -1
- package/LICENSE +21 -21
- package/README.md +71 -71
- package/assets/build-meta.json +7 -7
- package/assets/feature-matrix.json +138 -138
- package/assets/logo.svg +4 -4
- package/cordis.patch.yml +1 -1
- package/package.json +1 -1
- package/scripts/codex-marketplace.json +20 -20
- package/scripts/mcp-codex-stdio-adapter.js +189 -189
- package/scripts/mcp-server.js +1 -0
- package/scripts/mcp-trae-windows-launcher.cmd +21 -21
- package/scripts/microi-cli-mcp.js +7 -7
- package/scripts/microi-cli.js +44 -49
- package/scripts/microi-codex-broker.js +466 -466
- package/scripts/microi-codex-router.js +635 -634
- package/scripts/microi-skills.meta.json +248 -248
- package/skills/.microi-skills-version.json +2 -2
- package/skills/.progressive-disclosure-manifest.json +55 -46
- package/skills/ai-engine/agents/openai.yaml +4 -4
- package/skills/app-store/agents/openai.yaml +4 -4
- package/skills/datasource-engine/agents/openai.yaml +4 -4
- package/skills/job-engine/agents/openai.yaml +4 -4
- package/skills/message-notification/agents/openai.yaml +5 -5
- package/skills/microi-ai-app-auth.js +652 -652
- package/skills/microi-ai-application/agents/openai.yaml +4 -4
- package/skills/microi-codex/SKILL.md +11 -6
- package/skills/microi-codex-installer/SKILL.md +1 -1
- package/skills/microi-codex-installer/agents/openai.yaml +7 -7
- package/skills/microi-db-schema/agents/openai.yaml +4 -4
- package/skills/microi-deployment/SKILL.md +6 -4
- package/skills/microi-docs-coverage/references/capability-map.md +1 -1
- package/skills/microi-docs-coverage/scripts/audit-doc-skill-coverage.mjs +894 -894
- package/skills/microi-microservice/SKILL.md +5 -0
- package/skills/microi-solution-quotation/agents/openai.yaml +4 -4
- package/skills/microi-solution-quotation/scripts/build_solution_quote.py +296 -296
- package/skills/microi-system-delivery/SKILL.md +18 -6
- 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
- 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 +5 -3
- package/skills/microi-uniapp-frontend/SKILL.md +3 -1
- package/skills/microi.v8.js +1921 -1921
- package/skills/module-engine/SKILL.md +26 -0
- package/skills/ocr-engine/agents/openai.yaml +4 -4
- package/skills/page-engine/SKILL.md +21 -0
- package/skills/page-engine/examples/compact-dashboard.json +1444 -1444
- package/skills/playwright-e2e/SKILL.md +5 -4
- package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +3 -3
- package/skills/report-engine/SKILL.md +12 -0
- package/skills/report-engine/agents/openai.yaml +4 -4
- package/skills/scripts/optimize-progressive-disclosure.mjs +204 -204
- package/skills/scripts/refresh-progressive-disclosure.mjs +64 -64
- package/skills/scripts/sync-embedded-skills.mjs +46 -46
- package/skills/scripts/validate-progressive-disclosure.mjs +57 -57
- package/skills/search-engine/agents/openai.yaml +4 -4
- package/skills/translate-engine/agents/openai.yaml +4 -4
- package/skills/ui-design/assets/pattern-showcase/app.js +54 -54
- package/skills/ui-design/assets/pattern-showcase/index.html +163 -163
- package/skills/ui-design/assets/pattern-showcase/styles.css +311 -311
- package/skills/unity-integration/agents/openai.yaml +4 -4
- package/skills/v8-file-upload/SKILL.md +2 -0
- package/skills/v8-image-processing/agents/openai.yaml +4 -4
- package/skills/v8-mongodb/SKILL.md +2 -1
- package/skills/v8-mq-mqtt/scripts/check-mqtt-skill-coverage.mjs +203 -203
- package/skills/v8-security/SKILL.md +6 -0
- package/skills/v8-tcp-integration/agents/openai.yaml +4 -4
- package/skills/vision-engine/agents/openai.yaml +4 -4
- package/skills/workspace-conventions/SKILL.md +5 -4
- package/skills/workspace-conventions/references/progressive-02-microi-net-api-/346/234/254/345/234/260/345/220/257/345/212/250/347/272/246/345/256/232.md +13 -0
|
@@ -11,9 +11,10 @@ description: 已初始化吾码工作区的默认 AI 开发总控入口,用户
|
|
|
11
11
|
|
|
12
12
|
本 Skill 是已初始化吾码工作区的默认开发总控入口。用户直接描述需求即可,无需指定 Skill 名称;
|
|
13
13
|
目标 MCP 连接可沿用当前项目或唯一已登录连接,需求文件/验收地址按需提供。
|
|
14
|
-
|
|
14
|
+
任何吾码开发任务先读本入口、八项清单及其增补要求,再按下表读取相关专项 Skill。
|
|
15
15
|
收到“完整开发/交付系统”请求时,必须先读取
|
|
16
16
|
[完整系统开发默认交付清单(原推荐提示词 1–8)](references/progressive-01-标准工作流.md#完整系统开发默认交付清单原推荐提示词-18),
|
|
17
|
+
并完整读取同一参考文件的[菜单先行与经营报表增补要求](references/progressive-01-标准工作流.md#菜单先行与经营报表增补要求强制),
|
|
17
18
|
逐项执行并记录覆盖结果;不能只交方案、示例或待办。局部修改、只读分析按用户实际范围执行,
|
|
18
19
|
这份默认清单不额外授权生产写入或客户部署。
|
|
19
20
|
|
|
@@ -23,11 +24,20 @@ description: 已初始化吾码工作区的默认 AI 开发总控入口,用户
|
|
|
23
24
|
|---|---|
|
|
24
25
|
| 需求文档、成熟数据模型、表/字段/索引 | `business-blueprint`、`microi-db-schema`、`microi-form-engine` |
|
|
25
26
|
| 表单宽度、分组、整行控件与视觉 | `microi-form-layout`、`ui-design` |
|
|
26
|
-
|
|
|
27
|
+
| 菜单骨架、AI 开发中占位、逐菜单切换、PageTabs、模块展示 | `module-engine`、`v8-menu-buttons` |
|
|
27
28
|
| 选项 Key/Label、数据源、状态模板 | `microi-datasource-mapping`、`datasource-engine`、`v8-template-engine` |
|
|
28
|
-
|
|
|
29
|
+
| 业务接口、表单事件 | `v8-crud-api`、`v8-table-event` |
|
|
30
|
+
| 业务统计、老板经营、领导管理看板及明细报表 | `page-engine`、`report-engine`、`datasource-engine` |
|
|
29
31
|
| 真实业务、截图、账号和跨端验收 | `playwright-e2e`;有独立前端时再读相应前端 Skill |
|
|
30
32
|
|
|
33
|
+
完整开发按“需求与现状分析 → 菜单和报表规划 → 独立骨架 Manifest 检查与 dry-run →
|
|
34
|
+
授权落地菜单骨架 → 分阶段实现最终资源并独立预验收 → 保持菜单身份切换 → 原入口最终验收”推进。
|
|
35
|
+
仅用户可见的新业务/报表叶菜单先指向共享 AI 开发中组件(`IsMicroiService=0`),
|
|
36
|
+
保留独立业务 URL、标题和菜单身份;隐藏数据/授权载体维持原绑定,骨架不预绑定不存在资源。
|
|
37
|
+
候选预验收不依赖仍占位的原 URL,切换失败精确恢复本菜单原绑定并列为未完成;
|
|
38
|
+
详情按增补要求及 `module-engine` 执行。经营、领导和业务统计看板默认基于界面引擎,
|
|
39
|
+
不能以列表角标或占位页替代。局部改动只处理范围内菜单/报表,只读分析不创建占位资源。
|
|
40
|
+
|
|
31
41
|
每张由 AI/MCP 创建的业务表都必须同时设计默认表单 Banner,不能只建字段和菜单。完整
|
|
32
42
|
Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选择业务编号/名称标题、
|
|
33
43
|
客户/项目副标题、首个 `ImgUpload`、状态/类型标签和真实数值指标,并写入 `diy_table`
|
|
@@ -35,14 +45,14 @@ Manifest 使用 `tables[].formBanner`;未显式配置时仍按字段类型选
|
|
|
35
45
|
模块引擎或 `sys_menu`。逐步建模在字段完成后调用 `microi_configure_form_banner` 回读验收。
|
|
36
46
|
|
|
37
47
|
<!-- microi-progressive:begin -->
|
|
38
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-000 sha256=
|
|
48
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-000 sha256=04f08fdc316d253f167e26923066e134763ab129dd830f833c762214613c607f -->
|
|
39
49
|
## 交付总原则
|
|
40
50
|
|
|
41
51
|
1. **先事实源,后建模**:先读需求文档、截图、现有蓝图、数据库结构和菜单结构,形成业务蓝图;不要边猜边建表、边猜边写接口。
|
|
42
52
|
2. **先平台能力,后临时绕路**:能用 MCP/平台 API 修改元数据、字段、菜单、事件、接口引擎、数据源、任务调度,就不要新建临时 `_fix_*`、`_mcp_*` 接口引擎绕过平台能力。MCP 缺能力时优先补 MCP/后端,再补 Skill。
|
|
43
53
|
3. **平台通用层禁止项目定制**:Microi.Server、Microi.Client、MCP、VS Code 插件、microi.skills 中不得写某个项目专属文案、专属上传限制、专属业务规则。项目规则应在租户表、接口引擎、业务配置、前端项目或业务蓝图中。
|
|
44
54
|
4. **本地改完必须远端验收**:V8 文件、表单事件、菜单按钮、数据源、工作流、页面配置等不能只改本地文件。必须写入远端数据库,并通过 HTTP 或平台工具回读确认。
|
|
45
|
-
5. **测试不等于接口能通**:交付前必须跑构建、接口契约、真实登录、核心写流程、截图、人眼复核、网络 404/5xx
|
|
55
|
+
5. **测试不等于接口能通**:交付前必须跑构建、接口契约、真实登录、核心写流程、截图、人眼复核、网络 404/5xx 守卫、远端同步状态。依赖默认按 `workspace-conventions` 的“平台回归与独立应用测试归属”使用当前 MCP 实际 MongoDB 版本与 HDFS 提供商;明确的兼容任务才扩展矩阵,未执行项如实记录。
|
|
46
56
|
6. **生产数据谨慎优先**:涉及真实会员、余额、积分、订单、库存、卡券、收益、佣金、分润等资金/资产数据时,先确认服务器、租户、目标表、筛选条件和影响范围,再执行 MCP、接口引擎或 SQL 写操作。除用户明确要求清理/重置或必须修复错误数据外,不得擅自批量改真实数据。
|
|
47
57
|
7. **默认按分布式交付**:任何后端能力都假设会有至少两个节点连接同一数据库和 Redis,并经历滚动升级、重复投递与节点硬重启。定时任务/消费者使用分布式租约且业务本身幂等;会话、票据和任务状态使用共享存储;新旧版本并存时采用“先扩展、后迁移、再收缩”。只在单节点验证通过不能视为完整交付。
|
|
48
58
|
8. **业务逻辑默认接口引擎、元数据升级默认应用商城**:先用低代码 CRUD/事件,再用接口引擎;只缺底层原子能力时先扩展 V8,只有协议/鉴权/密钥隔离/运行时内核才进入 C#。表、字段、Tab、菜单、权限、引擎、页面和任务等可打包资源不得新增 `Microi.Upgrade` 定制类;官方开发者通过 `microi_itdos` 发布官方应用后再由目标租户 MCP 更新,无官方权限时只升级自己的租户。
|
|
@@ -132,7 +142,7 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
|
|
|
132
142
|
- 订单状态角标只给需要处理的状态,不给“全部/已完成/已取消”等静态分类堆数字。
|
|
133
143
|
|
|
134
144
|
<!-- /microi-progressive:chunk -->
|
|
135
|
-
<!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=
|
|
145
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-004 sha256=cc8ef54619f2f7a1dc3ba4268d02cbe678c855ba17e2d9e9ed3251ac0dc35e18 -->
|
|
136
146
|
## 交付完成定义
|
|
137
147
|
|
|
138
148
|
一次 Microi 全系统交付只有同时满足以下条件才算完成:
|
|
@@ -145,6 +155,8 @@ AI 零代码交付不能只验证管理员帐号和页面能打开。任何涉
|
|
|
145
155
|
6. 后端和前端服务可自动启动。
|
|
146
156
|
7. Playwright 账号登录、接口契约、网络守卫、业务闭环、截图复核均通过。
|
|
147
157
|
8. 生成或修改的通用经验已写回 microi.skills,且不能包含项目专属措辞;不能只写本地 memory、聊天记录或项目临时文档。
|
|
158
|
+
9. 菜单树包含范围内全部业务与报表入口;每个本次新增可见业务/报表叶菜单已从开发中占位切换到验收通过的真实页面,菜单 Id、业务 URL、层级、排序与权限关联保持正确。仍有占位或阻塞的菜单逐项标为未完成。
|
|
159
|
+
10. 基于界面引擎的业务统计、老板经营与领导管理报表已接通当前租户真实业务数据;指标口径、筛选/时间、权限、穿透、空/失败状态与明细对账均有证据。
|
|
148
160
|
|
|
149
161
|
<!-- /microi-progressive:chunk -->
|
|
150
162
|
## 详细参考路由(渐进披露)
|
|
@@ -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=
|
|
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=
|
|
5
|
+
<!-- microi-progressive:chunk id=microi-system-delivery-006 sha256=bc1fbdecb428b0a94d04d55d22e5c14f61354097cbaa2a059574f47fb41f5bdc -->
|
|
6
6
|
## 自动化测试必须覆盖的坑
|
|
7
7
|
|
|
8
8
|
### 后端统一测试与发布门禁
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
`MICROI_TEST_ALLOW_WRITES=YES`。只有用户明确授权时才可对真实租户执行;
|
|
25
25
|
真实租户默认只做登录和只读烟测,写入必须限定到名称/说明明确为自动化
|
|
26
26
|
测试用途的专用表,并使用唯一前缀、`finally` 清理和清理回读。
|
|
27
|
+
- Full 的本地程序与依赖按 `../../workspace-conventions/SKILL.md` 的“本地测试程序与依赖生命周期”执行:优先复用健康的本地源码程序、隔离目录中的编译产物和同组既有依赖,以租户、数据库或命名空间隔离测试,不按任务重复创建 Docker/Compose。每次测试成功、失败、取消或因资源不足暂停时,都结束本次自有测试进程并收回新建临时容器,独立回读进程、端口和容器状态;既有共享服务保持原状。这些生命周期要求不减少 Full 的用例、断言或发布门禁。
|
|
27
28
|
- Full 至少覆盖完整 Release 构建、FormEngine 单条/批量/按条件 CRUD、
|
|
28
29
|
查询和计数、ApiEngine GET/JSON POST、API 实际启动与健康检查、真实登录、
|
|
29
30
|
匿名系统配置脱敏、清理回读、NuGet 漏洞/弃用审计。NuGet 全面升级后不能
|
|
@@ -38,6 +39,7 @@
|
|
|
38
39
|
- 即使 Full 通过,涉及定时任务、消息消费、共享缓存、迁移或滚动发布时,
|
|
39
40
|
仍需两个节点连接同一 Redis/数据库,覆盖重复投递、锁持有者退出、
|
|
40
41
|
Redis/MongoDB 短暂故障、响应前重启和新旧版本共存。
|
|
42
|
+
两节点默认是两个本机源码或编译产物程序进程连接同组依赖,不等于两套 Docker 环境;破坏性故障测试仅作用于明确归属的隔离资源,不能停止复用的共享数据库或缓存。
|
|
41
43
|
|
|
42
44
|
### 登录与账号密码
|
|
43
45
|
|
|
@@ -67,8 +69,8 @@
|
|
|
67
69
|
### 网络与接口契约
|
|
68
70
|
|
|
69
71
|
- 拦截全部请求,404、5xx、CORS/ORB、图片加载失败、字符串 `null`、空响应、非 JSON 全部失败。
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
+
- 页面出现“请求失败”“网络错误”“null”等文案默认失败;最终业务入口出现“开发中”“待开发”判为未交付。菜单骨架阶段的预期占位可验证菜单身份、布局和动画,但不计已完成业务功能。
|
|
73
|
+
- 最终交付业务源码禁止残留 `开发中|待开发`;精确排除平台共享 `ai-engine/developing.vue` 及其专属占位测试,不扩大到业务页面或其它源码。
|
|
72
74
|
- 所有 `callEngine('xxx')` 必须有接口契约测试覆盖:HTTP ok、标准 DosResult、必要字段非空。
|
|
73
75
|
|
|
74
76
|
### 真实业务闭环
|
|
@@ -26,7 +26,7 @@ UniApp/H5/小程序必须通过项目统一 `microi.v8.js` 的 `V8.uploadFile` /
|
|
|
26
26
|
创建、重构或修复任何 Microi 移动端项目前,必须同时应用 `microi.skills/microi-mobile-app-quality/SKILL.md`,并读取其[首版交付与外部服务验收](../microi-mobile-app-quality/references/mobile-first-delivery.md)。手机号快捷登录、会话续签、导航几何、真实地图、页面动效和公开发布回读从首版纳入需求与测试,不能先交静态占位版,再等待用户逐页指出问题。涉及后台与第三方服务时按实际业务范围执行,既有授权和租户策略优先。
|
|
27
27
|
|
|
28
28
|
<!-- /microi-progressive:chunk -->
|
|
29
|
-
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=
|
|
29
|
+
<!-- microi-progressive:chunk id=microi-uniapp-frontend-001 sha256=5d3fe408d73474b25414ae370e94503aa6f0b05a419c4dd758ad7f9e58905fc8 -->
|
|
30
30
|
## 标准产品、视图协议与租户扩展
|
|
31
31
|
|
|
32
32
|
动态表单的组织/树字段优先复用原生 `mci-native-field` 树形下拉与 `native-tree-options.mjs`,无需为小程序把后台 `Department` 改为普通 Select。读取 `Config.<Component>.Multiple/EmitPath`:组织单选叶值保存 Id,多选叶值保存 Id 数组,路径模式保存完整路径/路径数组,数组统一 JSON 序列化。支持祖先展开、搜索、清空、禁用、重试和只读回显;数据源旧模板不能代替当前授权组织树。业务字段联动放租户扩展,不执行任意前端 V8;验收覆盖保存格式、旧数据回显、失败/迟到响应及最近公司祖先联动。
|
|
@@ -44,9 +44,11 @@ Microi 标准小程序必须采用“平台内核 + 版本化元数据 + Profile
|
|
|
44
44
|
- 表单元数据必须通过 `V8.FormEngine.GetDiyTableModel/GetDiyFieldList` 访问当前 FormEngine 缓存入口,并携带真实菜单授权上下文;页面和控件不得用普通 `GetFormData/GetTableData` 直查受保护的 `diy_table/diy_field`,也不得散落裸元数据接口 URL。
|
|
45
45
|
- ViewSchema 未配置、配置不完整或网络暂时失败时,必须回退到菜单移动字段和完整 `diy_field` 定义;定制详情还必须把未显式编排的新字段追加到折叠分组,不能静默丢字段。
|
|
46
46
|
- 列表、详情、编辑和保存请求应携带真实授权 `_SysMenuId`;客户端不能自行声明角色、数据范围或表权限,服务端仍是最终权限边界。
|
|
47
|
+
- 动态列表和子表必须读取授权菜单的 `SelectApi`,单条详情读取表级 `ApiReplace.Select`;接口缺失时沿用普通查询,接口失败时保留错误,不能回退到空物理表伪装暂无数据。子表继续传完整 `_TableChildAuth`、父子外键条件和分页参数;虚拟记录 Id 原样传递,分区月份由后端解析。接口地址只允许当前 API 同源,并委托已配置 SDK 处理租户与续签。只读日志的月份字段和支持的筛选能力由租户插件声明,普通表编辑权限保持原契约;验收覆盖预览、分页、详情、历史月份、跨设备拒绝及普通子表。
|
|
47
48
|
- 原生详情进入编辑后,取消丢弃未保存字段并返回同一详情/Tab,保存成功后回读服务端结果并通知来源列表刷新;直接新增/编辑仍返回来源列表。验收覆盖系统返回、保存/子表失败、迟到响应和权限撤销,不能用重复压入详情页替代原实例恢复。
|
|
48
49
|
- IoT/关联快照的“记录不存在”应展示业务空状态并隐藏表名/SQL,权限与网络失败仍保留真实错误;未知遥测使用占位值,零值和离线不能被当作缺失。依赖租户 V8 的契约测试从授权同步目录按唯一 ApiEngineKey 定位,测试前核验源码完整性与哈希,不靠旧分类文件夹名定位或跳过缺失依赖。
|
|
49
50
|
- 小程序不得下载或执行任意前端 V8,不得使用 `eval/new Function`。字段显隐和联动使用白名单声明式规则,按钮使用 ActionSchema,复杂事务和校验进入 ApiEngine 或后端表单事件。
|
|
51
|
+
- 分片日志的时间筛选复用后台 SearchFieldIds 和统一筛选弹窗,不增加重复的月份、开始日期和结束日期控件。月份从已选时间推导,未筛选时查询当月;虚拟文本时间发送完整边界,缺省精度可按接口能力使用分钟,显式 DateTimeType 优先。草稿确认后生效、关闭取消、重置清空条件;结束包含整个所选精度。服务端在存储层过滤、计数和分页,缓存及迟到响应按已生效条件隔离;接口不支持跨月时在提交前明确提示。
|
|
50
52
|
- ActionSchema 只能描述文字、图标、颜色、确认提示、参数映射、ApiEngineKey、原生 ActionType 和成功后的刷新/跳转;扫码、定位、拍照、拨号、导航等由受控原生适配器执行。
|
|
51
53
|
|
|
52
54
|
仓库必须提供 AI 与人工协作约束文件、租户脚手架、Profile 构建/同步命令和架构检查。平台层改动至少同时构建标准 Profile 与默认交付 Profile;租户视觉改动还要执行多视口截图回归。这样其他同事使用 Codex、Claude、Copilot、Cursor 等工具继续开发时,会先读取相同规则,而不是依赖某次对话记忆。
|