@microi.net/cli 4.9.6 → 4.9.8

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 (93) hide show
  1. package/.codebuddy-plugin/marketplace.json +2 -2
  2. package/.codebuddy-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.workbuddy-plugin/marketplace.json +2 -2
  5. package/.workbuddy-plugin/plugin.json +1 -1
  6. package/assets/build-meta.json +6 -5
  7. package/package.json +1 -1
  8. package/scripts/mcp-server.js +83 -83
  9. package/scripts/microi-cli.js +55 -85
  10. package/scripts/microi-codex-broker.js +418 -0
  11. package/scripts/microi-codex-router.js +129 -65
  12. package/scripts/microi-skills.meta.json +310 -151
  13. package/skills/.microi-skills-version.json +2 -2
  14. package/skills/.progressive-disclosure-manifest.json +3566 -0
  15. package/skills/ai-platform-governance/SKILL.md +21 -166
  16. package/skills/ai-platform-governance/references/progressive-01-/345/212/237/350/203/275/345/274/200/345/205/263.md +190 -0
  17. package/skills/microi-client-frontend/SKILL.md +17 -434
  18. package/skills/microi-client-frontend/references/progressive-01-3-/345/212/250/346/200/201/346/214/211/351/222/256/347/263/273/347/273/237.md +144 -0
  19. package/skills/microi-client-frontend/references/progressive-02-8-/350/277/220/350/241/214/346/227/266/351/253/230/351/242/221/345/235/221/345/244/215/347/233/230.md +178 -0
  20. package/skills/microi-client-frontend/references/progressive-03-vue3-/345/211/215/347/253/257/345/276/256/346/234/215/345/212/241/345/256/277/344/270/273/350/247/204/345/210/231.md +144 -0
  21. package/skills/microi-db-schema/SKILL.md +3 -3
  22. package/skills/microi-db-schema/references/schema-overview.md +1 -1
  23. package/skills/microi-db-schema/references/schema.md +1 -1
  24. package/skills/microi-db-schema/references/table-catalog.md +1 -1
  25. package/skills/microi-form-engine/SKILL.md +1 -1
  26. package/skills/microi-form-layout/SKILL.md +19 -225
  27. package/skills/microi-form-layout/references/progressive-01-3-/344/270/211/347/247/215/345/210/206/347/273/204/347/232/204/345/255/230/345/202/250/344/270/216/351/205/215/347/275/256.md +235 -0
  28. package/skills/microi-frontend-sdk/SKILL.md +17 -151
  29. package/skills/microi-frontend-sdk/references/progressive-01-token-/345/275/223/345/211/215/347/231/273/345/275/225/347/224/250/346/210/267/344/270/216/345/275/223/345/211/215/347/273/210/347/253/257/347/231/273/345/275/225/345/215/217/350/256/256.md +171 -0
  30. package/skills/microi-mobile-app-quality/SKILL.md +22 -288
  31. package/skills/microi-mobile-app-quality/references/progressive-01-4-/351/207/215/350/246/201/346/214/211/351/222/256/345/277/205/351/241/273/345/270/246/345/233/276/346/240/207.md +209 -0
  32. package/skills/microi-mobile-app-quality/references/progressive-02-9-/344/270/273/351/242/230/345/210/207/346/215/242/345/277/205/351/241/273/347/234/237/345/256/236/344/270/224/345/205/250/345/261/200/347/224/237/346/225/210.md +117 -0
  33. package/skills/microi-system-delivery/SKILL.md +16 -380
  34. package/skills/microi-system-delivery/references/progressive-01-/346/240/207/345/207/206/345/267/245/344/275/234/346/265/201.md +186 -0
  35. 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 +210 -0
  36. package/skills/microi-ui/SKILL.md +19 -169
  37. package/skills/microi-ui/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/234/272/346/231/257/350/223/235/345/233/276.md +183 -0
  38. package/skills/microi-uniapp-frontend/SKILL.md +26 -335
  39. package/skills/microi-uniapp-frontend/references/progressive-01-/347/247/273/345/212/250/347/253/257/345/210/206/347/261/273-/345/217/214/346/240/217/345/210/227/350/241/250/347/213/254/347/253/213/346/273/232/345/212/250.md +225 -0
  40. package/skills/microi-uniapp-frontend/references/progressive-02-/345/205/263/351/224/256/344/270/232/345/212/241/350/265/204/344/272/247/344/270/215/345/276/227/351/273/230/350/256/244/351/200/211/344/270/255.md +154 -0
  41. package/skills/page-engine/SKILL.md +23 -271
  42. package/skills/page-engine/references/progressive-01-/346/211/200/346/234/211/347/273/204/344/273/266/347/261/273/345/236/213.md +234 -0
  43. package/skills/page-engine/references/progressive-02-/347/211/210/346/234/254/345/216/206/345/217/262-/345/271/266/345/217/221/344/277/235/345/255/230/344/270/216/345/233/236/346/273/232.md +60 -0
  44. package/skills/playwright-e2e/SKILL.md +24 -590
  45. package/skills/playwright-e2e/references/progressive-01-/345/205/250/350/207/252/345/212/250/347/231/273/345/275/225-/345/205/215/351/252/214/350/257/201/347/240/201-/344/275/206/344/270/215/345/205/215/345/257/206/347/240/201-/345/277/205/350/257/273.md +173 -0
  46. package/skills/playwright-e2e/references/progressive-02-/346/226/207/345/255/227/345/257/271/346/257/224/345/272/246/344/270/216/345/217/257/350/257/273/346/200/247/350/207/252/345/212/250/345/214/226/346/243/200/346/237/245-/345/277/205/345/201/232.md +183 -0
  47. package/skills/playwright-e2e/references/progressive-03-microi-helper-/346/250/241/346/235/277.md +221 -0
  48. package/skills/playwright-e2e/references/progressive-04-ci-/345/273/272/350/256/256.md +69 -0
  49. package/skills/scripts/optimize-progressive-disclosure.mjs +204 -0
  50. package/skills/scripts/refresh-progressive-disclosure.mjs +64 -0
  51. package/skills/scripts/validate-progressive-disclosure.mjs +52 -0
  52. package/skills/ui-design/SKILL.md +26 -1461
  53. package/skills/ui-design/references/progressive-01-/351/242/234/350/211/262/344/275/223/347/263/273-css-variables-/346/224/257/346/214/201/344/270/273/351/242/230/345/210/207/346/215/242.md +218 -0
  54. package/skills/ui-design/references/progressive-02-/345/255/227/344/275/223.md +155 -0
  55. package/skills/ui-design/references/progressive-03-/345/212/250/346/225/210/350/247/204/350/214/203-/344/270/260/345/257/214/344/275/206/344/270/215/345/215/241.md +235 -0
  56. package/skills/ui-design/references/progressive-04-/347/273/204/344/273/266/351/243/216/346/240/274/351/200/237/346/237/245.md +152 -0
  57. package/skills/ui-design/references/progressive-05-/347/247/273/345/212/250/347/253/257/344/270/223/347/224/250/350/247/204/350/214/203.md +238 -0
  58. package/skills/ui-design/references/progressive-06-/344/270/273/351/242/230/345/210/207/346/215/242/345/256/236/347/216/260.md +194 -0
  59. package/skills/ui-design/references/progressive-07-/351/200/237/346/237/245-/344/273/216/345/244/264/346/220/255/345/273/272/344/270/200/344/270/252/347/247/273/345/212/250/347/253/257/351/241/265/351/235/242.md +207 -0
  60. package/skills/ui-design/references/progressive-08-/350/241/250/345/215/225/345/210/206/347/273/204/350/247/204/350/214/203-tabs-vs-collapsegroup-/345/274/272/345/210/266.md +142 -0
  61. package/skills/v8-crud-api/SKILL.md +20 -245
  62. package/skills/v8-crud-api/references/progressive-01-/346/237/245/350/257/242/345/210/227/350/241/250-/345/210/206/351/241/265.md +226 -0
  63. package/skills/v8-crud-api/references/progressive-02-where-/346/235/241/344/273/266/350/257/255/346/263/225/351/200/237/346/237/245.md +49 -0
  64. package/skills/v8-export-import/SKILL.md +15 -425
  65. package/skills/v8-export-import/references/progressive-01-excellayout-/351/253/230/347/272/247/350/207/252/347/224/261/345/270/203/345/261/200.md +211 -0
  66. package/skills/v8-export-import/references/progressive-02-powerpoint-/345/257/274/345/207/272.md +202 -0
  67. package/skills/v8-export-import/references/progressive-03-/345/256/211/345/205/250-/346/200/247/350/203/275/346/263/250/346/204/217.md +42 -0
  68. package/skills/v8-file-upload/SKILL.md +16 -354
  69. package/skills/v8-file-upload/references/progressive-01-/345/205/254/346/234/211/346/241/266-vs-/347/247/201/346/234/211/346/241/266.md +227 -0
  70. package/skills/v8-file-upload/references/progressive-02-office-/346/226/207/344/273/266/345/234/250/347/272/277/347/274/226/350/276/221/347/211/210/346/234/254/345/217/267/350/247/204/345/210/231.md +149 -0
  71. package/skills/v8-frontend-events/SKILL.md +19 -205
  72. package/skills/v8-frontend-events/references/progressive-01-/345/210/227/350/241/250/344/272/213/344/273/266.md +219 -0
  73. package/skills/v8-http-integration/SKILL.md +14 -236
  74. package/skills/v8-http-integration/references/progressive-01-get-/350/257/267/346/261/202.md +220 -0
  75. package/skills/v8-http-integration/references/progressive-02-/351/224/231/350/257/257/345/244/204/347/220/206/346/250/241/345/274/217.md +44 -0
  76. package/skills/v8-menu-buttons/SKILL.md +15 -511
  77. package/skills/v8-menu-buttons/references/progressive-01-2-/346/214/211/351/222/256/345/257/271/350/261/241-schema.md +221 -0
  78. package/skills/v8-menu-buttons/references/progressive-02-8-/346/250/241/345/274/217-f-/345/220/216/345/217/260/344/273/273/345/212/241/346/214/211/351/222/256-/351/225/277/344/273/273/345/212/241.md +224 -0
  79. package/skills/v8-menu-buttons/references/progressive-03-10-/345/217/215/346/250/241/345/274/217-/351/201/277/345/205/215.md +104 -0
  80. package/skills/v8-mq-mqtt/SKILL.md +11 -175
  81. package/skills/v8-mq-mqtt/references/progressive-01-v8-mqtt-iot-/347/211/251/350/201/224/347/275/221.md +181 -0
  82. package/skills/v8-security/SKILL.md +16 -329
  83. package/skills/v8-security/references/progressive-01-2-/346/235/203/351/231/220/346/240/241/351/252/214.md +199 -0
  84. package/skills/v8-security/references/progressive-02-7-/346/227/245/345/277/227/350/256/260/345/275/225.md +158 -0
  85. package/skills/v8-table-event/SKILL.md +16 -236
  86. package/skills/v8-table-event/references/progressive-01-informv8-js-/350/241/250/345/215/225/346/211/223/345/274/200/344/272/213/344/273/266.md +216 -0
  87. package/skills/v8-table-event/references/progressive-02-/345/211/215/347/253/257/344/272/213/344/273/266/345/220/215-v8-eventname-/345/217/257/350/203/275/347/232/204/345/200/274.md +46 -0
  88. package/skills/v8-workflow/SKILL.md +19 -160
  89. package/skills/v8-workflow/references/progressive-01-/350/212/202/347/202/271/345/274/200/345/247/213-v8-/344/272/213/344/273/266.md +180 -0
  90. package/skills/workspace-conventions/SKILL.md +29 -361
  91. package/skills/workspace-conventions/references/progressive-01-/347/211/210/346/234/254/346/233/264/346/226/260/346/227/245/345/277/227/344/277/235/346/212/244/350/247/204/345/210/231-/345/274/272/345/210/266.md +208 -0
  92. 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 +196 -0
  93. package/skills/workspace-conventions/references/progressive-03-cli-/344/270/216-ide-/346/217/222/344/273/266/351/224/231/347/211/210/345/205/261/345/255/230/347/272/246/345/256/232.md +27 -0
@@ -7,6 +7,8 @@ description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用
7
7
 
8
8
  # Microi吾码 AI 平台治理中心
9
9
 
10
+ <!-- microi-progressive:begin -->
11
+ <!-- microi-progressive:chunk id=ai-platform-governance-000 sha256=48b82af9f11388d6872cf90aa2c74a1d35c1db948483f30615ce054989ef0d77 -->
10
12
  ## 何时使用
11
13
 
12
14
  以下任一需求都应使用本 Skill:
@@ -21,6 +23,8 @@ description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用
21
23
  - JSON/CSV/Excel 可恢复导入;
22
24
  - 发布或安装官方应用 `ai-platform-studio`。
23
25
 
26
+ <!-- /microi-progressive:chunk -->
27
+ <!-- microi-progressive:chunk id=ai-platform-governance-001 sha256=47197af80919be7e08ef051884e70900714bdf53f551fad16e119a86d6efb63c -->
24
28
  ## 不可破坏的边界
25
29
 
26
30
  - DiyToken 是唯一会话入口;继续复用现有用户、角色、部门、菜单、表权限和数据范围,禁止建立第二套 Token/RBAC。
@@ -31,6 +35,8 @@ description: Microi吾码 AI 平台治理中心设计、调用、扩展、应用
31
35
  - 锁只解决并发,不代替稳定幂等键、唯一约束、状态机、outbox/inbox 或条件写入。
32
36
  - Secret 只保存引用;列表、Diff、错误、日志、截图、导出和运行台账不得出现密码、Token、私钥或连接串原文。
33
37
 
38
+ <!-- /microi-progressive:chunk -->
39
+ <!-- microi-progressive:chunk id=ai-platform-governance-002 sha256=682eba607296c69de8b3dd9b6d0e72dadf380f839b15f66b5ff271b3d2bae0a9 -->
34
40
  ## 官方应用事实
35
41
 
36
42
  应用 Key:`ai-platform-studio`,当前资源合同版本:`v2.0.4`。
@@ -56,6 +62,8 @@ mci-release-execute-extension
56
62
 
57
63
  Hook 首次创建后归租户维护,升级永不覆盖,也不得把同 Key 改回 `Managed`。
58
64
 
65
+ <!-- /microi-progressive:chunk -->
66
+ <!-- microi-progressive:chunk id=ai-platform-governance-003 sha256=d70597d2cd0cdc2cf7e96d18613a3a65ba8da5c28312bf913f6abe1c0850cf9d -->
59
67
  ## 菜单层级与语义
60
68
 
61
69
  应用安装或升级后必须形成以下层级,禁止把 40 个数据菜单平铺到根级或直接平铺在系统引擎下:
@@ -83,6 +91,8 @@ Hook 首次创建后归租户维护,升级永不覆盖,也不得把同 Key
83
91
 
84
92
  向用户解释时必须区分页面类型:`配置` 是日常维护入口,`审批/处置` 在有待办或异常时使用,`运行` 用于观察和恢复任务,`台账` 主要供审计与排错。不得把台账页描述成需要人工逐项维护的业务模块。
85
93
 
94
+ <!-- /microi-progressive:chunk -->
95
+ <!-- microi-progressive:chunk id=ai-platform-governance-004 sha256=f4fbda7d2522d95e4aaa6f010637b6dfe652a7871614177ce489df7830b9c911 -->
86
96
  ## 通用调用规则
87
97
 
88
98
  1. 通过 MCP 回读当前表结构、菜单、接口、应用和微服务事实。
@@ -94,6 +104,8 @@ Hook 首次创建后归租户维护,升级永不覆盖,也不得把同 Key
94
104
 
95
105
  旧 Hash、旧 RowVersion、旧 fencing token、未知状态、未知步骤或未知字段一律失败关闭。
96
106
 
107
+ <!-- /microi-progressive:chunk -->
108
+ <!-- microi-progressive:chunk id=ai-platform-governance-005 sha256=6298a32cb0b0c2f226485697bba306936265dab62248bb48a1709e36f73241e9 -->
97
109
  ## 门户与资源版本
98
110
 
99
111
  调用顺序:
@@ -110,6 +122,8 @@ mci-portal-publish-plan
110
122
  - `mci-resource-compare` 做语义比较。
111
123
  - `mci-resource-rollback` 校验 `ExpectedCurrentHash` 并创建新回滚版本,不能删除历史。
112
124
 
125
+ <!-- /microi-progressive:chunk -->
126
+ <!-- microi-progressive:chunk id=ai-platform-governance-006 sha256=ec5c949ac0615c9917ce1910a397f5ab1e7878fb56a35cb761cd5ebbdf96c714 -->
113
127
  ## 身份与访问治理
114
128
 
115
129
  ### 身份同步
@@ -135,6 +149,8 @@ mci-identity-sync-plan → 人工处置冲突 → mci-identity-sync-apply
135
149
 
136
150
  `mci-permission-explain` 必须调用 `V8.Method.ExplainAuthorizationDecision` 复用真实 FormEngine 授权逻辑;禁止从菜单/角色表重新拼近似结论。
137
151
 
152
+ <!-- /microi-progressive:chunk -->
153
+ <!-- microi-progressive:chunk id=ai-platform-governance-007 sha256=64f2699d58860ed29782136673b51bdb1488b87cd17b24b761e9d22479902ae5 -->
138
154
  ## 配置模板与漂移
139
155
 
140
156
  `mci-configuration-publish` 输入要点:
@@ -154,171 +170,10 @@ mci-identity-sync-plan → 人工处置冲突 → mci-identity-sync-apply
154
170
  - `mci-configuration-drift-scan` 生成有界语义差异。
155
171
  - `mci-configuration-drift-transition` 使用 `ExpectedRowVersion` 完成 Ignore/Reopen/Resolve;摘要仍不一致时不能 Resolve。
156
172
 
157
- ## 功能开关
173
+ <!-- /microi-progressive:chunk -->
174
+ ## 详细参考路由(渐进披露)
158
175
 
159
- 发布调用 `mci-feature-flag-publish`,求值调用 `mci-feature-flag-evaluate`。
176
+ 仅在当前任务涉及对应主题时读取;下列文件合计保留了原 SKILL.md 的全部详细知识。
160
177
 
161
- - 规则只允许 `UserIds/ExcludedUserIds/DeptIds/RoleIds`。
162
- - 灰度比例 0—100,按稳定主体 Hash 分桶,禁止 `Math.random()`。
163
- - 普通用户只能使用当前 DiyToken 的权威 `UserId/RoleIds/DeptIds`;只有超级管理员可模拟其它主体。
164
- - 开关内容生成 `FeatureFlag` 不可变版本;无变化复用,版本号冲突拒绝。
165
- - 功能开关不能代替任何权限、状态机、幂等或审计。
166
-
167
- ## 发布状态机
168
-
169
- ### 固定计划
170
-
171
- 使用 `mci-release-plan-publish`,不要直接 Add/Upt `mci_release_plan`。
172
-
173
- 允许发布步骤:
174
-
175
- - `Verify`:`FeatureFlag/ConfigurationProfile/ServicePolicy/AssetVersion/Portal/ChangeSet`;
176
- - `PortalPublish`;
177
- - `Extension`:由 `mci-release-execute-extension` 处理并使用 `StepIdempotencyKey`。
178
-
179
- 允许回滚步骤:`Verify`、`PortalRollback`、`Extension`。
180
-
181
- 生产计划至少包含发布步骤、回滚步骤、测试/回读证据和审批策略。计划中发现疑似 Secret 失败关闭。
182
-
183
- ### 审批
184
-
185
- `mci-release-transition` 支持:
186
-
187
- ```text
188
- Submit / Approve / Reject / Cancel / Reopen
189
- ```
190
-
191
- 每次调用必须传 `ExpectedPlanHash + ExpectedRowVersion`。审批记录按计划 Hash、轮次和审批人生成不可变 `ApprovalKey`。职责分离开启时创建人不能审批自己的计划。
192
-
193
- ### 门禁
194
-
195
- `mci-release-validate` 可检查:
196
-
197
- - 计划完整性、发布/回滚步骤、证据和审批;
198
- - `NoCriticalAlerts`、`NoIdentityConflicts`、`NoConfigurationDrift`;
199
- - `PortalVersion`、`FeatureFlag`、`ChangeSet`;
200
- - `Extension` 门禁。
201
-
202
- 通过只进入 `Ready`,不等于已发布。
203
-
204
- ### 执行与恢复
205
-
206
- `mci-release-execute` 输入:
207
-
208
- ```js
209
- {
210
- ReleasePlanId,
211
- Direction: 'Release' | 'Rollback',
212
- IdempotencyKey,
213
- ExpectedPlanHash,
214
- Resume: false
215
- }
216
- ```
217
-
218
- - 每次调用只提交一个步骤;调用方依据 `HasMore` 继续。
219
- - 运行台账保存 RunKey、Checkpoint、LeaseToken/Expiry、FencingToken、RowVersion 和结果摘要。
220
- - 失败返回 `Code=1, Data.Status='Failed', ResumeRequired=true`,以便失败事实提交;业务成功不能只看 `Code`。
221
- - 续跑必须使用同一 IdempotencyKey 且 `Resume=true`。
222
- - 变更子步骤使用独立事务;成功后台账中断时用 `StepIdempotencyKey` 重试。
223
-
224
- ## 服务治理
225
-
226
- ### 实例协议
227
-
228
- - `mci-service-instance-register`:生成实例令牌,数据库只存摘要。
229
- - `mci-service-instance-heartbeat`:实例身份或管理员更新租约,使用 RowVersion/FencingToken。
230
- - `mci-service-instance-drain`:先排空再退出流量。
231
-
232
- ### 策略与调用闭环
233
-
234
- - `mci-service-policy-publish`:版本/区域/标签/权重、限流、熔断、重试、降级;DryRun/CAS/不可变 `ServicePolicy` 版本。
235
- - `mci-service-resolve`:按权威角色/主体与稳定 Hash 选择单个端点,普通调用方不返回全部候选。
236
- - `mci-service-policy-acquire`:共享 Redis 固定窗口、持久 Outcome 重建熔断、半开共享许可。
237
- - `mci-service-policy-outcome`:Permit 归属校验、稳定 OutcomeKey、持久结果与调用边聚合。
238
- - `mci-service-topology`:从持久调用边读取运行拓扑。
239
-
240
- V8 业务只能使用租户隔离的 `SetIfNotExists/Expire/HashIncrement` 原子能力,不能获得原始 Redis 客户端或自定义 Key 前缀逃逸租户边界。
241
-
242
- ## Trace、告警与日志
243
-
244
- ### 可信原子能力
245
-
246
- - `V8.Method.QuerySystemLogSignal`:有界日志计数、错误率、P95 和样例;
247
- - `V8.Method.GetTraceTimeline`:跨月 Trace/Span 时间线;
248
- - `V8.Method.PlanSystemLogLifecycle`:只读生命周期估算;
249
- - `V8.Method.RunSystemLogLifecycle`:仅可信持久后台任务可调用的物理执行器。
250
-
251
- ### 告警
252
-
253
- - `mci-alert-evaluate` 使用持久窗口台账,覆盖连续触发/恢复、去重和抑制。
254
- - `mci-alert-scan`、`mci-alert-dispatch`、`mci-alert-delivery-send` 均为内部任务接口。
255
- - Dispatch 只写 Outbox;Sender 以 ClaimToken、LeaseExpiresAt、RowVersion 和 DeliveryKey 送达。
256
- - `mci_alert_route` 可配置值班排班、升级链和 SLA。
257
- - 渠道发送只写 `mci-alert-notify-extension`。
258
-
259
- ### 日志生命周期
260
-
261
- `mci_log_policy` 包含匹配/采样、脱敏规则、热温冷天数、日/总配额、超限动作、归档模式和法律保留。
262
-
263
- - 先 `mci-log-lifecycle-plan` 获取 PlanHash/估算。
264
- - 再通过持久后台任务调用 `mci-log-lifecycle-execute`。
265
- - 每片归档为 gzip JSONL,私有 HDFS 必须回读长度和 SHA-256。
266
- - 先写 `ArchiveVerified` 收据,再条件删除,再回读为零,最后标记 `Committed`。
267
- - `Extension` 模式由 `mci-log-archive-extension` 处理;法律保留不能删除。
268
-
269
- ## 资产、协作和变更集
270
-
271
- - `mci-asset-publish` 使用 `microi.asset.v1`,声明 Component、Props、Setters、DataAdapters、Platforms、DependencyPackages。
272
- - 校验语义版本范围、缺失依赖、循环、最大深度、规范化摘要、DryRun 和 CAS。
273
- - `mci-asset-resolve` 验证内容 Hash,返回 `ResolvedDependencies/DependencyGraph/LoadOrder`。
274
- - `mci-collaboration-lease` 使用共享租约和 fencing token;旧编辑者不能保存。
275
- - `mci-change-set-validate` 检查资源、PlanHash、生产证据和回滚计划。
276
- - Page JSON ↔ Vue SFC 只处理平台生成的受控标记,不执行任意 Vue/JavaScript,也不承诺任意源码无损反编译。
277
-
278
- ## 可恢复导入
279
-
280
- - `mci-import-plan`:JSON/CSV/Excel 解析、字段元数据校验、文件/计划/行 Hash、公式注入与敏感字段拒绝。
281
- - `mci-import-stage`:按 ExpectedPlanHash 幂等写暂存行。
282
- - `mci-import-execute`:必须通过持久后台任务;每片独立提交 Checkpoint/FencingToken。
283
- - `mci-import-control`:Pause/Resume/Cancel/Retry,使用状态条件更新。
284
- - `mci-import-rollback`:只恢复当前值仍等于 After 基线的记录;冲突不覆盖。
285
-
286
- 单批最多 2,000 行。更大数据应拆批或使用专用迁移作业,不提高内存上限硬顶。
287
-
288
- ## 页面与蓝图版本
289
-
290
- 页面工具:
291
-
292
- ```text
293
- microi_list_page_history
294
- microi_get_page_history
295
- microi_compare_page_versions
296
- microi_export_page_design
297
- microi_rollback_page_design
298
- ```
299
-
300
- 蓝图提供对应的历史、读取、比较、导出和回滚工具。修改前读取 CurrentHash,保存传 ExpectedHash,写后回读新 Hash 与不可变历史。回滚创建新版本,不删除旧历史。
301
-
302
- ## 应用商城发布
303
-
304
- - 官方发布使用绑定 `https://api.itdos.com`、`OsClient=iTdos` 的 `microi_itdos`。
305
- - 先构建 Manifest、22 项应用契约、微服务类型检查/契约/生产构建。
306
- - 发布请求版本、资产准备版本和包内 `PackageInfo.Version` 必须精确相同;42 个菜单、40 张治理表和 64 个接口引擎的选择必须来自当前包正文。
307
- - 包内 `ResourcePolicies.ApiEngines` 必须精确为 57 个 Managed + 7 个 CreateIfMissing。
308
- - 发布后独立回读应用版本、状态、包内容、45 表/873 字段、42 菜单(含已绑定 `/overview` 的治理工作台)、64 接口、任务、10 路由和构建资产 Hash。
309
- - 定时任务必须在 `PostSchema` 后通过独立 `ScheduleJobs` checkpoint 安装并回读;成功版本只能在任务阶段之后写入。
310
- - 官方发布源禁止自安装和 `ValidateOnly`;发布源做精确包回读,安装验证在非官方目标租户或本地非发布源环境完成。
311
- - 目标安装/更新后再次回读,并做管理员 PC/390px 浏览器冒烟。
312
- - 商城发布不等于生产 API/Web 容器部署。
313
-
314
- ## 双节点与浏览器验收
315
-
316
- 至少覆盖:
317
-
318
- - 两节点同时心跳、同一策略解析、同一限流窗口和熔断半开;
319
- - 同一发布幂等键并发执行、租约竞争、步骤失败、台账提交前中断、同键续跑与回滚;
320
- - Redis/MongoDB 短暂故障、锁持有者退出、重复消息和滚动版本共存;
321
- - PC 10 路由、失败态、空态、重复动作;390×844 下移动导航、对话框、表单和无整页横向溢出;
322
- - 页面源码桥、资产依赖循环、协作旧 fencing、导入暂停/恢复和条件回滚。
323
-
324
- 最终报告必须分别列出源码/测试、远端写入、真实浏览器、应用商城、正式发布和生产部署证据;没有执行的层不能声称通过。
178
+ - [references/progressive-01-功能开关.md](references/progressive-01-功能开关.md):功能开关;发布状态机;服务治理;Trace、告警与日志;资产、协作和变更集;可恢复导入;页面与蓝图版本;应用商城发布;双节点与浏览器验收
179
+ <!-- microi-progressive:end -->
@@ -0,0 +1,190 @@
1
+ # ai-platform-governance 详细参考 1
2
+
3
+ > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
+
5
+ <!-- microi-progressive:chunk id=ai-platform-governance-008 sha256=e3927151358f0c9e801c1027edb877332c8e148f245d58eade2eaae53ddb7948 -->
6
+ ## 功能开关
7
+
8
+ 发布调用 `mci-feature-flag-publish`,求值调用 `mci-feature-flag-evaluate`。
9
+
10
+ - 规则只允许 `UserIds/ExcludedUserIds/DeptIds/RoleIds`。
11
+ - 灰度比例 0—100,按稳定主体 Hash 分桶,禁止 `Math.random()`。
12
+ - 普通用户只能使用当前 DiyToken 的权威 `UserId/RoleIds/DeptIds`;只有超级管理员可模拟其它主体。
13
+ - 开关内容生成 `FeatureFlag` 不可变版本;无变化复用,版本号冲突拒绝。
14
+ - 功能开关不能代替任何权限、状态机、幂等或审计。
15
+
16
+ <!-- /microi-progressive:chunk -->
17
+ <!-- microi-progressive:chunk id=ai-platform-governance-009 sha256=ca73d439788b802c1b999c0a7973e735caf8b4149d4be116511e470ca93d728e -->
18
+ ## 发布状态机
19
+
20
+ ### 固定计划
21
+
22
+ 使用 `mci-release-plan-publish`,不要直接 Add/Upt `mci_release_plan`。
23
+
24
+ 允许发布步骤:
25
+
26
+ - `Verify`:`FeatureFlag/ConfigurationProfile/ServicePolicy/AssetVersion/Portal/ChangeSet`;
27
+ - `PortalPublish`;
28
+ - `Extension`:由 `mci-release-execute-extension` 处理并使用 `StepIdempotencyKey`。
29
+
30
+ 允许回滚步骤:`Verify`、`PortalRollback`、`Extension`。
31
+
32
+ 生产计划至少包含发布步骤、回滚步骤、测试/回读证据和审批策略。计划中发现疑似 Secret 失败关闭。
33
+
34
+ ### 审批
35
+
36
+ `mci-release-transition` 支持:
37
+
38
+ ```text
39
+ Submit / Approve / Reject / Cancel / Reopen
40
+ ```
41
+
42
+ 每次调用必须传 `ExpectedPlanHash + ExpectedRowVersion`。审批记录按计划 Hash、轮次和审批人生成不可变 `ApprovalKey`。职责分离开启时创建人不能审批自己的计划。
43
+
44
+ ### 门禁
45
+
46
+ `mci-release-validate` 可检查:
47
+
48
+ - 计划完整性、发布/回滚步骤、证据和审批;
49
+ - `NoCriticalAlerts`、`NoIdentityConflicts`、`NoConfigurationDrift`;
50
+ - `PortalVersion`、`FeatureFlag`、`ChangeSet`;
51
+ - `Extension` 门禁。
52
+
53
+ 通过只进入 `Ready`,不等于已发布。
54
+
55
+ ### 执行与恢复
56
+
57
+ `mci-release-execute` 输入:
58
+
59
+ ```js
60
+ {
61
+ ReleasePlanId,
62
+ Direction: 'Release' | 'Rollback',
63
+ IdempotencyKey,
64
+ ExpectedPlanHash,
65
+ Resume: false
66
+ }
67
+ ```
68
+
69
+ - 每次调用只提交一个步骤;调用方依据 `HasMore` 继续。
70
+ - 运行台账保存 RunKey、Checkpoint、LeaseToken/Expiry、FencingToken、RowVersion 和结果摘要。
71
+ - 失败返回 `Code=1, Data.Status='Failed', ResumeRequired=true`,以便失败事实提交;业务成功不能只看 `Code`。
72
+ - 续跑必须使用同一 IdempotencyKey 且 `Resume=true`。
73
+ - 变更子步骤使用独立事务;成功后台账中断时用 `StepIdempotencyKey` 重试。
74
+
75
+ <!-- /microi-progressive:chunk -->
76
+ <!-- microi-progressive:chunk id=ai-platform-governance-010 sha256=cb8f46acd05462f4fb99d52517b34f9f9a7ae785f44d6ea0c0f1e79f050068d0 -->
77
+ ## 服务治理
78
+
79
+ ### 实例协议
80
+
81
+ - `mci-service-instance-register`:生成实例令牌,数据库只存摘要。
82
+ - `mci-service-instance-heartbeat`:实例身份或管理员更新租约,使用 RowVersion/FencingToken。
83
+ - `mci-service-instance-drain`:先排空再退出流量。
84
+
85
+ ### 策略与调用闭环
86
+
87
+ - `mci-service-policy-publish`:版本/区域/标签/权重、限流、熔断、重试、降级;DryRun/CAS/不可变 `ServicePolicy` 版本。
88
+ - `mci-service-resolve`:按权威角色/主体与稳定 Hash 选择单个端点,普通调用方不返回全部候选。
89
+ - `mci-service-policy-acquire`:共享 Redis 固定窗口、持久 Outcome 重建熔断、半开共享许可。
90
+ - `mci-service-policy-outcome`:Permit 归属校验、稳定 OutcomeKey、持久结果与调用边聚合。
91
+ - `mci-service-topology`:从持久调用边读取运行拓扑。
92
+
93
+ V8 业务只能使用租户隔离的 `SetIfNotExists/Expire/HashIncrement` 原子能力,不能获得原始 Redis 客户端或自定义 Key 前缀逃逸租户边界。
94
+
95
+ <!-- /microi-progressive:chunk -->
96
+ <!-- microi-progressive:chunk id=ai-platform-governance-011 sha256=db964d7f412ce56112c7a8173a10a6a1f33c762761747b6db780463a0e07f79d -->
97
+ ## Trace、告警与日志
98
+
99
+ ### 可信原子能力
100
+
101
+ - `V8.Method.QuerySystemLogSignal`:有界日志计数、错误率、P95 和样例;
102
+ - `V8.Method.GetTraceTimeline`:跨月 Trace/Span 时间线;
103
+ - `V8.Method.PlanSystemLogLifecycle`:只读生命周期估算;
104
+ - `V8.Method.RunSystemLogLifecycle`:仅可信持久后台任务可调用的物理执行器。
105
+
106
+ ### 告警
107
+
108
+ - `mci-alert-evaluate` 使用持久窗口台账,覆盖连续触发/恢复、去重和抑制。
109
+ - `mci-alert-scan`、`mci-alert-dispatch`、`mci-alert-delivery-send` 均为内部任务接口。
110
+ - Dispatch 只写 Outbox;Sender 以 ClaimToken、LeaseExpiresAt、RowVersion 和 DeliveryKey 送达。
111
+ - `mci_alert_route` 可配置值班排班、升级链和 SLA。
112
+ - 渠道发送只写 `mci-alert-notify-extension`。
113
+
114
+ ### 日志生命周期
115
+
116
+ `mci_log_policy` 包含匹配/采样、脱敏规则、热温冷天数、日/总配额、超限动作、归档模式和法律保留。
117
+
118
+ - 先 `mci-log-lifecycle-plan` 获取 PlanHash/估算。
119
+ - 再通过持久后台任务调用 `mci-log-lifecycle-execute`。
120
+ - 每片归档为 gzip JSONL,私有 HDFS 必须回读长度和 SHA-256。
121
+ - 先写 `ArchiveVerified` 收据,再条件删除,再回读为零,最后标记 `Committed`。
122
+ - `Extension` 模式由 `mci-log-archive-extension` 处理;法律保留不能删除。
123
+
124
+ <!-- /microi-progressive:chunk -->
125
+ <!-- microi-progressive:chunk id=ai-platform-governance-012 sha256=82e059f90494a679d4073693b83904826841a7c87e0ed1e5ab0e28575eedffac -->
126
+ ## 资产、协作和变更集
127
+
128
+ - `mci-asset-publish` 使用 `microi.asset.v1`,声明 Component、Props、Setters、DataAdapters、Platforms、DependencyPackages。
129
+ - 校验语义版本范围、缺失依赖、循环、最大深度、规范化摘要、DryRun 和 CAS。
130
+ - `mci-asset-resolve` 验证内容 Hash,返回 `ResolvedDependencies/DependencyGraph/LoadOrder`。
131
+ - `mci-collaboration-lease` 使用共享租约和 fencing token;旧编辑者不能保存。
132
+ - `mci-change-set-validate` 检查资源、PlanHash、生产证据和回滚计划。
133
+ - Page JSON ↔ Vue SFC 只处理平台生成的受控标记,不执行任意 Vue/JavaScript,也不承诺任意源码无损反编译。
134
+
135
+ <!-- /microi-progressive:chunk -->
136
+ <!-- microi-progressive:chunk id=ai-platform-governance-013 sha256=b286f47071ac64e9e7d75929134123e8a3ef65a05ddb86007554ae05099e1445 -->
137
+ ## 可恢复导入
138
+
139
+ - `mci-import-plan`:JSON/CSV/Excel 解析、字段元数据校验、文件/计划/行 Hash、公式注入与敏感字段拒绝。
140
+ - `mci-import-stage`:按 ExpectedPlanHash 幂等写暂存行。
141
+ - `mci-import-execute`:必须通过持久后台任务;每片独立提交 Checkpoint/FencingToken。
142
+ - `mci-import-control`:Pause/Resume/Cancel/Retry,使用状态条件更新。
143
+ - `mci-import-rollback`:只恢复当前值仍等于 After 基线的记录;冲突不覆盖。
144
+
145
+ 单批最多 2,000 行。更大数据应拆批或使用专用迁移作业,不提高内存上限硬顶。
146
+
147
+ <!-- /microi-progressive:chunk -->
148
+ <!-- microi-progressive:chunk id=ai-platform-governance-014 sha256=9c5387dccbc2ff092470edc70b9600416700ac734f15df2c2e775bae0adf00c4 -->
149
+ ## 页面与蓝图版本
150
+
151
+ 页面工具:
152
+
153
+ ```text
154
+ microi_list_page_history
155
+ microi_get_page_history
156
+ microi_compare_page_versions
157
+ microi_export_page_design
158
+ microi_rollback_page_design
159
+ ```
160
+
161
+ 蓝图提供对应的历史、读取、比较、导出和回滚工具。修改前读取 CurrentHash,保存传 ExpectedHash,写后回读新 Hash 与不可变历史。回滚创建新版本,不删除旧历史。
162
+
163
+ <!-- /microi-progressive:chunk -->
164
+ <!-- microi-progressive:chunk id=ai-platform-governance-015 sha256=6fafd84efd63a1607c4c98c4a173d755b2ba22fb7a251a21ed4d4699556656a7 -->
165
+ ## 应用商城发布
166
+
167
+ - 官方发布使用绑定 `https://api.itdos.com`、`OsClient=iTdos` 的 `microi_itdos`。
168
+ - 先构建 Manifest、22 项应用契约、微服务类型检查/契约/生产构建。
169
+ - 发布请求版本、资产准备版本和包内 `PackageInfo.Version` 必须精确相同;42 个菜单、40 张治理表和 64 个接口引擎的选择必须来自当前包正文。
170
+ - 包内 `ResourcePolicies.ApiEngines` 必须精确为 57 个 Managed + 7 个 CreateIfMissing。
171
+ - 发布后独立回读应用版本、状态、包内容、45 表/873 字段、42 菜单(含已绑定 `/overview` 的治理工作台)、64 接口、任务、10 路由和构建资产 Hash。
172
+ - 定时任务必须在 `PostSchema` 后通过独立 `ScheduleJobs` checkpoint 安装并回读;成功版本只能在任务阶段之后写入。
173
+ - 官方发布源禁止自安装和 `ValidateOnly`;发布源做精确包回读,安装验证在非官方目标租户或本地非发布源环境完成。
174
+ - 目标安装/更新后再次回读,并做管理员 PC/390px 浏览器冒烟。
175
+ - 商城发布不等于生产 API/Web 容器部署。
176
+
177
+ <!-- /microi-progressive:chunk -->
178
+ <!-- microi-progressive:chunk id=ai-platform-governance-016 sha256=76dab40556ce9a5a732c398d2f534c16478a1a88d4c1efdcdeaa6ba76d4339df -->
179
+ ## 双节点与浏览器验收
180
+
181
+ 至少覆盖:
182
+
183
+ - 两节点同时心跳、同一策略解析、同一限流窗口和熔断半开;
184
+ - 同一发布幂等键并发执行、租约竞争、步骤失败、台账提交前中断、同键续跑与回滚;
185
+ - Redis/MongoDB 短暂故障、锁持有者退出、重复消息和滚动版本共存;
186
+ - PC 10 路由、失败态、空态、重复动作;390×844 下移动导航、对话框、表单和无整页横向溢出;
187
+ - 页面源码桥、资产依赖循环、协作旧 fencing、导入暂停/恢复和条件回滚。
188
+
189
+ 最终报告必须分别列出源码/测试、远端写入、真实浏览器、应用商城、正式发布和生产部署证据;没有执行的层不能声称通过。
190
+ <!-- /microi-progressive:chunk -->