@microi.net/cli 6.0.0 → 6.0.1

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,92 +1,106 @@
1
- ---
2
- name: workspace-conventions
3
- description: 每次 Microi 任务开始前必读的基础规范。用于识别创始人源码工作区,检查平台功能的应用商城、官方文档、Skills 与 MCP 交付,并遵守共享工作区、进程、资源和发布边界。
4
- ---
5
-
6
- # Microi 工作区全局约定
7
-
8
- ## 质量优先与适用范围
9
-
10
- 准确性、业务完整性、安全和真实验收优先于 token 与回复长度。先确定完整系统、局部修改或只读分析;新建系统意图按完整交付,不能因短提示词或预算缩小八项清单及菜单/报表增补。局部修改定位真实目标和依赖,信息不足、动态关系或影响不明时扩大读取,不凭摘要猜测或写入。
11
-
12
- 必须读取总控的 [质量与增量开发规范](../microi-system-delivery/references/context-quality.md),按任务映射实际读取与验收记录。同一会话只复用内容哈希未变且已完整读取的规范;首次、版本变化和读取记录不明时补读。权限、写入前检查和执行后回读不复用旧成功结论。
13
-
14
- 工作区保护始终有效:保留他人差异与共享进程,临时产物只放根 `.tmp/`,闭源源码只从独立内部仓提交。修改/提交前读取 [共享工作区与 Git 保障](references/progressive-04-工作区与平台专项保障.md#多对话共享工作区变更归属保护强制);启动构建、测试服务或浏览器前读取同文件资源/OOM规则并检查现有资源。后端/任务/权限变更读取分布式与安全章节;平台源码定位、文档和 Skills 修改读取对应章节。平台能力四项检查仍固定保留在本入口。
15
-
1
+ ---
2
+ name: workspace-conventions
3
+ description: 每次 Microi 任务开始前必读的基础规范。用于识别创始人源码工作区,检查平台功能的应用商城、官方文档、Skills 与 MCP 交付,并遵守共享工作区、进程、资源和发布边界。
4
+ ---
5
+
6
+ # Microi 工作区全局约定
7
+
8
+ ## 测试临时文件必须随任务清理(强制)
9
+
10
+ 本节适用于开发、测试、诊断和发布产生的全部自有临时资产,包括工作区根 `.tmp/`、宿主临时目录(如 `$CODEX_HOME/tmp`)和隔离 Git worktree,并替代历史“任务完成后可以不清理”的约定。目录位置和 `.gitignore` 不改变收尾责任。
11
+
12
+ - 创建前使用独立的 `.tmp/<任务标识>/`,登记本任务创建的目录、文件、进程及用途;不得混用其它任务目录。每轮测试成功、失败、取消或中断退出时都执行 `finally` / teardown,先关闭本任务的写入者、浏览器和临时服务,再删除本轮已无用途的临时文件;不能等用户再次要求清理磁盘。
13
+ - 默认删除本任务的一次性脚本、下载/解压副本、编译输出、隔离依赖、测试夹具和冗余截图/trace/video/日志。交付必需的少量报告、关键截图、发布哈希/回执先脱敏并归档到对应项目的长期交付目录,回读归档完整后再删临时副本;不得把完整构建树、源码副本或依赖目录当作验收证据长期留存。
14
+ - 失败仍需排查或下一阶段确实依赖的文件,只保留可解释的最小集合,记录路径、体积、原因、归属和清理时机;排查/依赖结束后立即删除。崩溃来不及执行 teardown 时,下次接续先核对自有清单并补清;不能以“测试失败”“以后可能有用”为由无限保留。
15
+ - 隔离副本只为实际并发冲突或构建输入冻结创建,优先复用合适的工作树、稀疏检出和最小夹具;禁止每次重试复制整套源码、Git 历史、依赖、SDK 和运行目录。创建前盘点源盘与目标盘可用空间及已有同类副本,按本轮实际需求估算新增体积;测试结束先回收旧运行/编译目录,再创建下一轮。不要把临时目录移到另一块盘当作清理。
16
+ - 工作树不是永久保留项:任务结束逐仓检查未提交、未跟踪、忽略文件和未推送提交,已合入/已归档且无活动引用的副本按 Git/宿主支持的方式移除并回读注册表;必要差异先最小归档并校验可恢复性,不复制完整构建树。嵌套独立 Git 仓库逐个核对;禁止因存在 `.git` 就跳过整个任务目录,也禁止把主工作区存在当成差异已安全保存的证明。
17
+ - **规则必须落到执行入口**:新增或维护测试、构建、发布脚本时,将自有临时资产回收写入实际的 `finally`、测试框架 teardown/after hook 或宿主归档流程,并验证成功与失败退出均回收。`Microi.Tests/run-tests.ps1` 的 Full 隔离 `.net-artifacts` 由入口自动回收,保留结果报告与 `artifact-cleanup.json`;已有共享目录不取得删除权。仅修改 Skill、模型读过规则或工具显示最新版,都不能声称自动清理已生效;须检查已安装正文及实际执行结果。硬崩溃/强杀可能跳过收尾,恢复时按归属清单补清,不能承诺任意中断都即时删除。
18
+ - 删除前核验解析后的绝对路径位于本任务 `.tmp` 子目录,检查重解析点/符号链接、当前进程 CWD/文件锁、Git worktree 与未提交源码、发布锁以及虚拟机/容器引用。保留用户文件、唯一源码/未提交改动、正式交付物、共享资源和其它任务资产;独占 Git 工作树先按 Git/宿主支持的移除方式完成检查,不能直接递归删除。
19
+ - 历史垃圾清理先做体积与引用盘点,只删已核验无引用、无跟踪源码且可再生成的产物;文件名含 `.tmp`、目录名为 `bin/obj` 或时间较旧都不能单独证明可删。禁止整体清空共享 `.tmp/`,禁止为了清理结束其它任务或重启 Docker/WSL。
20
+ - 清理后独立回读已删路径不存在、保护对象仍在和磁盘可用空间;收尾报告删除体积、剩余保留项和原因。遇到文件锁、权限或自动审批拒绝时保留目标并准确报告,禁止换工具绕过。测试通过与临时文件清理完成是两个验收项,不能互相代替。
21
+
22
+ ## 质量优先与适用范围
23
+
24
+ 准确性、业务完整性、安全和真实验收优先于 token 与回复长度。先确定完整系统、局部修改或只读分析;新建系统意图按完整交付,不能因短提示词或预算缩小八项清单及菜单/报表增补。局部修改定位真实目标和依赖,信息不足、动态关系或影响不明时扩大读取,不凭摘要猜测或写入。
25
+
26
+ 必须读取总控的 [质量与增量开发规范](../microi-system-delivery/references/context-quality.md),按任务映射实际读取与验收记录。同一会话只复用内容哈希未变且已完整读取的规范;首次、版本变化和读取记录不明时补读。权限、写入前检查和执行后回读不复用旧成功结论。
27
+
28
+ 工作区保护始终有效:保留他人差异与共享进程,临时产物只放根 `.tmp/`,闭源源码只从独立内部仓提交。修改/提交前读取 [共享工作区与 Git 保障](references/progressive-04-工作区与平台专项保障.md#多对话共享工作区变更归属保护强制);启动构建、测试服务或浏览器前读取同文件资源/OOM规则并检查现有资源。后端/任务/权限变更读取分布式与安全章节;平台源码定位、文档和 Skills 修改读取对应章节。平台能力四项检查仍固定保留在本入口。
29
+
16
30
  <!-- microi-progressive:begin -->
17
- <!-- microi-progressive:chunk id=workspace-conventions-000 sha256=0b8322a967e67a45f195860314357a7b974555b6f3d0b642fe910dc769bd7e23 -->
18
- ## 任务启动前 Skill 读取规则(强制)
19
-
20
- AI 处理任何 Microi 低代码、V8、MCP、OpenClaw、采集引擎、前端、后端、UniApp、文档、测试或交付任务前,必须先按任务类型读取相关 `microi.skills/**/SKILL.md`。不能等到写代码或出问题后才补读。
21
-
22
- - 任何吾码任务先读取本文件和 `microi-system-delivery/SKILL.md`,再按总控路由读取相关专项 Skill;无需用户指定 Skill 名称。
23
- - 涉及采集引擎、浏览器 Worker、验证码、站点规则、导出产物时,同时读取 `spider-engine`。
24
- - 涉及 V8 CRUD、SQL、上传下载、导入导出、菜单按钮、表单事件、前端页面或自动化测试时,继续读取对应专项 Skill。
25
- - 最终交付说明必须能逐条对应用户编号需求;不得遗漏、合并或把仍可执行的需求写成“下一步继续”。
26
-
27
- ### 吾码 AI 开发默认路由(强制)
28
-
29
- - 在已通过吾码插件或 CLI 初始化的工作区中,用户直接描述业务需求即可。即使用户未写“吾码”、`Microi`、`microi-system-delivery` 或任何 Skill 名称,AI 仍须根据当前项目和已配置连接识别吾码任务,自动读取本基础入口及 `microi-system-delivery/SKILL.md`,不能等用户提醒。
30
- - 完整系统开发必须完整读取总控中的[完整系统开发默认交付清单(原推荐提示词 1–8)](../microi-system-delivery/references/progressive-01-标准工作流.md#完整系统开发默认交付清单原推荐提示词-18),并按总控的相关 Skill 表继续读取表单、模块、数据源、V8、页面、报表及验收等实际涉及的专项规范。不得仅凭 Skill 名称、摘要或聊天记忆执行,也不把全部 Skills 全文拼进一个提示词。
31
- - 按用户意图确定执行范围:完整系统开发逐项执行八项清单;局部修改只执行相关条目,保留已有业务资源和无关配置;只读分析只读取规范和事实,不创建资源、验收数据或执行发布。需求明确表示新建完整系统时,不因省略“完整”二字就降为方案或样例。
32
- - 默认读取规则不额外授权生产数据写入、客户部署或全库重建。连接可由当前项目和唯一已登录 Profile 自动确定;多个目标无法唯一匹配时只澄清必要的连接信息,不要求用户选择或记住 Skill。明显属于其它平台或与吾码无关的任务按实际项目规范执行。
33
- - 生成的 `AGENTS.md`、`CLAUDE.md`、Copilot/Cursor 指令及可移植吾码 Skill 只保留默认入口指针和读取顺序;详细八项清单仍由总控参考文件唯一维护。工作区未初始化或必要 Skill 缺失时先按现有安装/初始化规范恢复,并准确说明实际可读取状态,不能声称 AI 已自动加载不存在的规则。默认路由不代表任意模型 100% 遵循;开工说明须列出实际读取的基础入口、总控、完整清单参考及本次专项 Skills,并映射到交付计划,不能只凭路径存在、MCP 连通或文件摘要声称已读。原八项及报表、菜单先行增补的详细要求统一读取总控参考文件。
34
-
35
- ### 吾码创建人身份识别(强制)
36
-
37
- - 每次新对话或接续 Microi 任务时,先检查工作区根的 `Microi.Server/Microi.net/`:目录必须存在,并且 `rg --files Microi.Server/Microi.net -g '*.cs'` 至少返回一个真实源码文件,空目录不成立。满足条件即按“吾码创始人(创建人)的官方完整源码工作区”处理;不要求本次代码恰好修改在该目录内。此标记决定开发交付规范,不代替真实 MCP 登录、官方发布权限或用户授权;目录缺失、为空或只有编译产物时按普通用户工作区处理。
38
- - 对平台级新增、增强或修复,无论改动位于前端、后端、MCP、插件还是内置应用,都必须在计划和收尾中执行下列四项检查。规则留在本入口,不得移入仅按需读取的参考文件、单个专项 Skill、项目说明或聊天记忆。
39
-
40
- ### 平台功能四项同步检查(强制)
41
-
42
- 确认创始人源码工作区后,平台能力变更必须同时读取 `app-store` 与 `microi-docs-coverage`;客户业务、局部修改及只读任务先作四项适用性判断,涉及商城或文档时再读对应专项,不因身份标记加载无关发布正文;对每个功能逐项记录“需要/无需修改 + 依据 + 完成证据”,不能因只改 C# 或只修一个客户问题而跳过平台能力的检查。
43
-
44
- | 检查项 | 何时必须完善 | 交付证据 |
45
- |---|---|---|
46
- | 官方应用商城 | 涉及系统设置、表/字段/Tab、菜单/权限、接口引擎/事件、数据源、页面、工作流、任务、内置应用或种子数据 | 通过已校验 `https://api.itdos.com + OsClient=iTdos` 的 `microi_itdos` 更新官方母版并发布归属应用,回读版本、状态、包正文与哈希;基础空库包和存量增量应用都相关时同时更新 |
47
- | 官方中文文档 | 新能力、配置入口、参数、兼容条件、权限、使用方式或可感知行为发生变化 | 原位补充 `microi.doc/docs/doc/` 对应页面,给出最小示例与升级要求,并完成相应文档检查;不手工维护英文副本 |
48
- | 吾码 Skills | AI 需要知道新的使用决策、配置方法、工具签名、限制、排错方式或验收条件 | 更新责任 Skill 及必要参考、能力映射,并验证基础入口、插件/CLI 分发与后端内嵌知识链路;不能只记在当前对话或本地 memory |
49
- | 吾码 MCP | AI 尚不能安全发现、配置、调用、发布或回读该能力,或现有工具的 Schema/说明缺失、过时 | 优先扩展现有通用工具及其 Schema、说明、测试;既有工具完整覆盖时无需新增工具,但必须列明可复用工具及验证依据 |
50
-
51
- - “无需修改”必须逐项有具体理由,例如纯内部优化无元数据变化可不升应用版本,现有 MCP 已支持该配置可不新增工具;不得默认四项都做,也不得默认四项都省略。需要修改的项目应在本次授权范围内完成并验证,受权限、网络或发布渠道阻挡时明确未完成项,不能用本地修改代替线上发布。
52
- - 任务若只要求分析、评审或制定规范,仍保持只读或仅修改指定规范;身份标记不授权无关线上写入。客户部署、容器更新和应用自动安装与官方发布是独立动作,服从用户指定的手动/自动边界;用户明确手动更新时不得擅自部署。
53
- - 收尾必须区分“源码/文档已修改、测试通过、应用已发布回读、Skills/插件已打包或已分发、镜像已推送、客户已安装或已部署”。只有实际渠道验收成功才能说其它用户已可获取;不得把文档本地构建或插件本地副本同步称为已上线。
54
-
55
- ### 平台回归与独立应用测试归属(强制)
56
-
57
- - 创始人源码工作区中的每个平台功能新增、缺陷修复和兼容性调整都必须同时交付可重复执行的回归测试;先证明旧行为失败,再验证修复成功,覆盖正常、边界、失败、安全与存量兼容路径。不得只改源码或用手工截图代替自动回归。
58
- - 平台 C# 单元/组件/集成测试归入 `Microi.Server/Microi.Tests`。平台前端、平台内置应用包与平台 V8 的 Node 行为测试可留在责任源码旁,由 `Microi.Tests/run-tests.ps1` 自动发现执行;平台真实浏览器、数据库及第三方集成归入 Full 或平台专项验收,不得冒充离线单测。新增公共后端能力同时补相应 HTTP 闭环。
59
- - 官方或社区独立业务应用、游戏及客户项目的测试归应用自身源码根的 `tests/` 或独立测试工程,由该应用自己的测试和发布入口执行;不得放入 `Microi.Tests`、创建转调包装或接入平台 Quick/Full。官方发布身份不改变测试归属。应用开发中涉及平台通用缺陷时,仅把通用最小回归夹具加入平台门禁,应用业务断言仍在应用项目维护。
60
- - `Microi一键编译发布.sh` 的所有 PC/API 镜像路径(包括仅推送、热修复)都必须先通过按指定 MCP 实际依赖选定的 Full 发布矩阵;选中范围内缺少环境、零用例、失败、取消、跳过、待办或无法解析测试结果一律停止。未纳入本次矩阵的提供商标为“不适用(未执行)”,不冒充通过,也不单独阻塞常规发布。禁止关闭断言、删测试、排除已选失败项目或修改门禁阈值来发布。
61
- - 测试成功必须绑定本次候选源码和实际构建上下文的内容哈希,构建后、每次推送前复核。旧产物没有可验证回执或源码/产物漂移时必须重建重测,禁止“当前源码通过测试 + 推送另一份旧 DLL/前端 dist”。 所有测试默认使用当前 MCP 经同源只读发现的 MongoDB 实际版本与当前租户实际生效的 HDFS 提供商;目标唯一时直接沿已授权隔离范围执行,不为旧 MongoDB 或其它 OSS/MinIO/S3 反复询问、新建服务或替换当前提供商。只有明确的兼容、迁移或提供商缺陷任务才扩展真实矩阵;未执行项如实记未覆盖,不以同一端点冒充多版本,也不因环境发现获得生产业务写入授权。
62
- - 常规发布只验证用户指定 MCP 对应的实际依赖:MySQL、MongoDB 实际版本、Redis,以及租户实际生效的 MinIO 或 OSS/HDFS 等存储;不默认同时验证所有数据库版本或所有存储提供商。先核实 Profile、ApiBase、OsClient 和依赖类型,在已授权隔离范围执行;依赖发现不扩大生产写入或新建 Docker 测试依赖的授权。
63
- - SQL Server 的真实连接、提供商兼容与专项验收默认不纳入常规发布矩阵;只有用户明确指定排查、修复或验收 SQL Server 问题时才执行。检测到 SQL Server 连接/驱动、旧 Full 清单或通用数据库代码变更都不能自行触发该专项,也不需要每次申请 SQL Server 免测。既有不连接 SQL Server 的离线单元断言照常保留,但不能据此声称 SQL Server 已实测。
64
- - 交付记录逐项列明修复与测试映射、执行数量、未覆盖边界和镜像摘要。覆盖率与 Full 都不能证明所有租户业务、任意生产数据和第三方系统绝对无误;真实客户路径仍需只读验收。详细矩阵见 `microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md`。
65
-
66
- ### Microi吾码非阻塞自动更新(强制)
67
-
68
- - 本规范与“Microi吾码工作进度播报规范”同属无条件基础规则,适用于任何 AI 模型与宿主,不限 Codex,也不要求用户提到安装、版本或更新。每次新建或接续 Microi 对话,AI 必须读取本节并检查版本;已有 CLI 时必须投递 `microi update --background --workspace "<工作区绝对路径>" --json`,由更新器去重、节流和重试,不得改写为“可选”“建议更新”或等用户提醒。后台任务与业务工作并行,不得等待更新完成才开始业务分析、MCP 调用、源码修改、构建或发布。
69
- - `@microi.net/cli` 必须自动升级到 npm 官方 `latest`,并使用新版包重新同步吾码 Skills、AI 宿主规则、插件与 MCP。不能只执行 `npx @latest`、只查询版本或只更新全局 CLI 后就声称完整升级;旧 CLI 缺少 `update` 时按 `microi-codex-installer` 的官方安装恢复路径更新。完全未安装且本次未授权初始化时准确记录缺失,不擅自创建服务器连接。
70
- - 首次工作过程说明必须包含一次版本播报,以“Microi吾码开发工具版本”开头,报告当前实际 CLI 版本、npm 官方最新版本(含查询时间)、自动更新是否启用及状态、Skills/MCP 是否已同步。读取 `microi version --json` 与后台状态文件,或 MCP `profiles.toolchain`;后者的 `loadedVersion` 只代表当前 MCP 提供者,`latestObservedVersion` 是带时间的历史查询结果,不能冒充全局 CLI 版本或刚刚在线查询的最新版。尚未确认的项必须写“检测中/未知/待回读”,后续回读补齐;禁止猜测、硬编码当前发布号或把 `expectedVersion` 当 npm 最新版。
71
- - CLI 最新版只从 npm 官方 registry 查询:`npm view '@microi.net/cli' version --json --prefer-online --registry=https://registry.npmjs.org/`;VS Code 扩展只使用官方扩展宿主的自动更新/安装命令。不得使用第三方 registry 或不明镜像冒充官方更新。
72
- - 后台更新完整闭环包含全局 CLI、已安装宿主的 `microi@microi-net` / DSH bundle,以及已配置连接工作区的 `microi ai init`、`microi doctor`、`microi codex status` / `microi dsh status`。回读全局版本、工作区 Skills bundle/file 版本及 MCP provider 版本,确认不低于本次官方查询版本;较新提供者保留。未安装的宿主安静跳过,未配置连接的目录不生成 AI/MCP 文件。完成后重新读取已更新的基础规范与本任务专项 Skill,并在收尾说明升级或延后结果。`codex install --yes` 的 `--yes` 只兼容旧脚本,不是用户继续工作的授权开关。
73
- - 当前运行中的 VS Code Extension Host、CLI、Codex Router、MCP 和对话继续使用已加载版本。禁止为了更新终止进程、强制重载、要求立即新建任务或拒绝新工作;新版只在后续新进程或宿主自然重启时接管。
74
- - npm 官方 registry 无法访问、权限不足、文件被运行中进程占用、安装失败或宿主不能热更新时,必须写入可诊断状态并延后重试。可以非模态提示“立即重试/查看日志”,但用户忽略、关闭或暂不处理时,当前、正在进行和新建的 Microi 工作仍必须继续。
75
- - 用户明确关闭自动更新或宿主不允许终端执行时,尊重该限制,报告具体未完成项和恢复命令;不能静默宣称已是最新版。自动更新只覆盖开发工具、Skills 和本机 MCP 入口,不授权升级客户 API/数据库、部署容器或安装业务应用;已签名 Microi Agent 安装目录仍通过桌面官方更新渠道升级。
76
- - 只有任务明确依赖旧版本不存在的具体能力时,才准确说明该能力边界与可用降级方案;不得用“最新版未通过”“尚未授权升级”作为整项任务的失败理由。
31
+ <!-- microi-progressive:chunk id=workspace-conventions-000 sha256=9e8585f04ec448154431f3f0c441697b57f16db77cee365788feb8e4bbf62e62 -->
32
+ ## 任务启动前 Skill 读取规则(强制)
33
+
34
+ AI 处理任何 Microi 低代码、V8、MCP、OpenClaw、采集引擎、前端、后端、UniApp、文档、测试或交付任务前,必须先按任务类型读取相关 `microi.skills/**/SKILL.md`。不能等到写代码或出问题后才补读。
35
+
36
+ - 任何吾码任务先读取本文件和 `microi-system-delivery/SKILL.md`,再按总控路由读取相关专项 Skill;无需用户指定 Skill 名称。
37
+ - 涉及采集引擎、浏览器 Worker、验证码、站点规则、导出产物时,同时读取 `spider-engine`。
38
+ - 涉及 V8 CRUD、SQL、上传下载、导入导出、菜单按钮、表单事件、前端页面或自动化测试时,继续读取对应专项 Skill。
39
+ - 最终交付说明必须能逐条对应用户编号需求;不得遗漏、合并或把仍可执行的需求写成“下一步继续”。
40
+
41
+ ### 吾码 AI 开发默认路由(强制)
42
+
43
+ - 在已通过吾码插件或 CLI 初始化的工作区中,用户直接描述业务需求即可。即使用户未写“吾码”、`Microi`、`microi-system-delivery` 或任何 Skill 名称,AI 仍须根据当前项目和已配置连接识别吾码任务,自动读取本基础入口及 `microi-system-delivery/SKILL.md`,不能等用户提醒。
44
+ - 完整系统开发必须完整读取总控中的[完整系统开发默认交付清单(原推荐提示词 1–8)](../microi-system-delivery/references/progressive-01-标准工作流.md#完整系统开发默认交付清单原推荐提示词-18),并按总控的相关 Skill 表继续读取表单、模块、数据源、V8、页面、报表及验收等实际涉及的专项规范。不得仅凭 Skill 名称、摘要或聊天记忆执行,也不把全部 Skills 全文拼进一个提示词。
45
+ - 按用户意图确定执行范围:完整系统开发逐项执行八项清单;局部修改只执行相关条目,保留已有业务资源和无关配置;只读分析只读取规范和事实,不创建资源、验收数据或执行发布。需求明确表示新建完整系统时,不因省略“完整”二字就降为方案或样例。
46
+ - 默认读取规则不额外授权生产数据写入、客户部署或全库重建。连接可由当前项目和唯一已登录 Profile 自动确定;多个目标无法唯一匹配时只澄清必要的连接信息,不要求用户选择或记住 Skill。明显属于其它平台或与吾码无关的任务按实际项目规范执行。
47
+ - 生成的 `AGENTS.md`、`CLAUDE.md`、Copilot/Cursor 指令及可移植吾码 Skill 只保留默认入口指针和读取顺序;详细八项清单仍由总控参考文件唯一维护。工作区未初始化或必要 Skill 缺失时先按现有安装/初始化规范恢复,并准确说明实际可读取状态,不能声称 AI 已自动加载不存在的规则。默认路由不代表任意模型 100% 遵循;开工说明须列出实际读取的基础入口、总控、完整清单参考及本次专项 Skills,并映射到交付计划,不能只凭路径存在、MCP 连通或文件摘要声称已读。原八项及报表、菜单先行增补的详细要求统一读取总控参考文件。
48
+
49
+ ### 吾码创建人身份识别(强制)
50
+
51
+ - 每次新对话或接续 Microi 任务时,先检查工作区根的 `Microi.Server/Microi.net/`:目录必须存在,并且 `rg --files Microi.Server/Microi.net -g '*.cs'` 至少返回一个真实源码文件,空目录不成立。满足条件即按“吾码创始人(创建人)的官方完整源码工作区”处理;不要求本次代码恰好修改在该目录内。此标记决定开发交付规范,不代替真实 MCP 登录、官方发布权限或用户授权;目录缺失、为空或只有编译产物时按普通用户工作区处理。
52
+ - 对平台级新增、增强或修复,无论改动位于前端、后端、MCP、插件还是内置应用,都必须在计划和收尾中执行下列四项检查。规则留在本入口,不得移入仅按需读取的参考文件、单个专项 Skill、项目说明或聊天记忆。
53
+
54
+ ### 平台功能四项同步检查(强制)
55
+
56
+ 确认创始人源码工作区后,平台能力变更必须同时读取 `app-store` 与 `microi-docs-coverage`;客户业务、局部修改及只读任务先作四项适用性判断,涉及商城或文档时再读对应专项,不因身份标记加载无关发布正文;对每个功能逐项记录“需要/无需修改 + 依据 + 完成证据”,不能因只改 C# 或只修一个客户问题而跳过平台能力的检查。
57
+
58
+ | 检查项 | 何时必须完善 | 交付证据 |
59
+ |---|---|---|
60
+ | 官方应用商城 | 涉及系统设置、表/字段/Tab、菜单/权限、接口引擎/事件、数据源、页面、工作流、任务、内置应用或种子数据 | 通过已校验 `https://api.itdos.com + OsClient=iTdos` 的 `microi_itdos` 更新官方母版并发布归属应用,回读版本、状态、包正文与哈希;基础空库包和存量增量应用都相关时同时更新 |
61
+ | 官方中文文档 | 新能力、配置入口、参数、兼容条件、权限、使用方式或可感知行为发生变化 | 原位补充 `microi.doc/docs/doc/` 对应页面,给出最小示例与升级要求,并完成相应文档检查;不手工维护英文副本 |
62
+ | 吾码 Skills | AI 需要知道新的使用决策、配置方法、工具签名、限制、排错方式或验收条件 | 更新责任 Skill 及必要参考、能力映射,并验证基础入口、插件/CLI 分发与后端内嵌知识链路;不能只记在当前对话或本地 memory |
63
+ | 吾码 MCP | AI 尚不能安全发现、配置、调用、发布或回读该能力,或现有工具的 Schema/说明缺失、过时 | 优先扩展现有通用工具及其 Schema、说明、测试;既有工具完整覆盖时无需新增工具,但必须列明可复用工具及验证依据 |
64
+
65
+ - “无需修改”必须逐项有具体理由,例如纯内部优化无元数据变化可不升应用版本,现有 MCP 已支持该配置可不新增工具;不得默认四项都做,也不得默认四项都省略。需要修改的项目应在本次授权范围内完成并验证,受权限、网络或发布渠道阻挡时明确未完成项,不能用本地修改代替线上发布。
66
+ - 任务若只要求分析、评审或制定规范,仍保持只读或仅修改指定规范;身份标记不授权无关线上写入。客户部署、容器更新和应用自动安装与官方发布是独立动作,服从用户指定的手动/自动边界;用户明确手动更新时不得擅自部署。
67
+ - 收尾必须区分“源码/文档已修改、测试通过、应用已发布回读、Skills/插件已打包或已分发、镜像已推送、客户已安装或已部署”。只有实际渠道验收成功才能说其它用户已可获取;不得把文档本地构建或插件本地副本同步称为已上线。
68
+
69
+ ### 平台回归与独立应用测试归属(强制)
70
+
71
+ - 创始人源码工作区中的每个平台功能新增、缺陷修复和兼容性调整都必须同时交付可重复执行的回归测试;先证明旧行为失败,再验证修复成功,覆盖正常、边界、失败、安全与存量兼容路径。不得只改源码或用手工截图代替自动回归。
72
+ - 平台 C# 单元/组件/集成测试归入 `Microi.Server/Microi.Tests`。平台前端、平台内置应用包与平台 V8 的 Node 行为测试可留在责任源码旁,由 `Microi.Tests/run-tests.ps1` 自动发现执行;平台真实浏览器、数据库及第三方集成归入 Full 或平台专项验收,不得冒充离线单测。新增公共后端能力同时补相应 HTTP 闭环。
73
+ - 官方或社区独立业务应用、游戏及客户项目的测试归应用自身源码根的 `tests/` 或独立测试工程,由该应用自己的测试和发布入口执行;不得放入 `Microi.Tests`、创建转调包装或接入平台 Quick/Full。官方发布身份不改变测试归属。应用开发中涉及平台通用缺陷时,仅把通用最小回归夹具加入平台门禁,应用业务断言仍在应用项目维护。
74
+ - `Microi一键编译发布.sh` 的所有 PC/API 镜像路径(包括仅推送、热修复)都必须先通过按指定 MCP 实际依赖选定的 Full 发布矩阵;选中范围内缺少环境、零用例、失败、取消、跳过、待办或无法解析测试结果一律停止。未纳入本次矩阵的提供商标为“不适用(未执行)”,不冒充通过,也不单独阻塞常规发布。禁止关闭断言、删测试、排除已选失败项目或修改门禁阈值来发布。
75
+ - 测试成功必须绑定本次候选源码和实际构建上下文的内容哈希,构建后、每次推送前复核。旧产物没有可验证回执或源码/产物漂移时必须重建重测,禁止“当前源码通过测试 + 推送另一份旧 DLL/前端 dist”。
76
+ - 常规发布只验证用户指定 MCP 对应的实际依赖:MySQL、MongoDB 实际版本、Redis,以及租户实际生效的 MinIO 或 OSS/HDFS 等存储;不默认同时验证所有数据库版本或所有存储提供商。先核实 Profile、ApiBase、OsClient 和依赖类型,在已授权隔离范围执行;依赖发现不扩大生产写入或新建 Docker 测试依赖的授权。
77
+ - SQL Server 的真实连接、提供商兼容与专项验收默认不纳入常规发布矩阵;只有用户明确指定排查、修复或验收 SQL Server 问题时才执行。检测到 SQL Server 连接/驱动、旧 Full 清单或通用数据库代码变更都不能自行触发该专项,也不需要每次申请 SQL Server 免测。既有不连接 SQL Server 的离线单元断言照常保留,但不能据此声称 SQL Server 已实测。
78
+ - 交付记录逐项列明修复与测试映射、执行数量、未覆盖边界和镜像摘要。覆盖率与 Full 都不能证明所有租户业务、任意生产数据和第三方系统绝对无误;真实客户路径仍需只读验收。详细矩阵见 `microi-system-delivery/references/progressive-02-自动化测试必须覆盖的坑.md`。
79
+
80
+ ### Microi吾码非阻塞自动更新(强制)
81
+
82
+ - 本规范与“Microi吾码工作进度播报规范”同属无条件基础规则,适用于任何 AI 模型与宿主,不限 Codex,也不要求用户提到安装、版本或更新。每次新建或接续 Microi 对话,AI 必须读取本节并检查版本;已有 CLI 时必须投递 `microi update --background --workspace "<工作区绝对路径>" --json`,由更新器去重、节流和重试,不得改写为“可选”“建议更新”或等用户提醒。后台任务与业务工作并行,不得等待更新完成才开始业务分析、MCP 调用、源码修改、构建或发布。
83
+ - `@microi.net/cli` 必须自动升级到 npm 官方 `latest`,并使用新版包重新同步吾码 Skills、AI 宿主规则、插件与 MCP。不能只执行 `npx @latest`、只查询版本或只更新全局 CLI 后就声称完整升级;旧 CLI 缺少 `update` 时按 `microi-codex-installer` 的官方安装恢复路径更新。完全未安装且本次未授权初始化时准确记录缺失,不擅自创建服务器连接。
84
+ - 首次工作过程说明必须包含一次版本播报,以“Microi吾码开发工具版本”开头,报告当前实际 CLI 版本、npm 官方最新版本(含查询时间)、自动更新是否启用及状态、Skills/MCP 是否已同步。读取 `microi version --json` 与后台状态文件,或 MCP `profiles.toolchain`;后者的 `loadedVersion` 只代表当前 MCP 提供者,`latestObservedVersion` 是带时间的历史查询结果,不能冒充全局 CLI 版本或刚刚在线查询的最新版。尚未确认的项必须写“检测中/未知/待回读”,后续回读补齐;禁止猜测、硬编码当前发布号或把 `expectedVersion` 当 npm 最新版。
85
+ - CLI 最新版只从 npm 官方 registry 查询:`npm view '@microi.net/cli' version --json --prefer-online --registry=https://registry.npmjs.org/`;VS Code 扩展只使用官方扩展宿主的自动更新/安装命令。不得使用第三方 registry 或不明镜像冒充官方更新。
86
+ - 后台更新完整闭环包含全局 CLI、已安装宿主的 `microi@microi-net` / DSH bundle,以及已配置连接工作区的 `microi ai init`、`microi doctor`、`microi codex status` / `microi dsh status`。回读全局版本、工作区 Skills bundle/file 版本及 MCP provider 版本,确认不低于本次官方查询版本;较新提供者保留。未安装的宿主安静跳过,未配置连接的目录不生成 AI/MCP 文件。完成后重新读取已更新的基础规范与本任务专项 Skill,并在收尾说明升级或延后结果。`codex install --yes` 的 `--yes` 只兼容旧脚本,不是用户继续工作的授权开关。
87
+ - 当前运行中的 VS Code Extension Host、CLI、Codex Router、MCP 和对话继续使用已加载版本。禁止为了更新终止进程、强制重载、要求立即新建任务或拒绝新工作;新版只在后续新进程或宿主自然重启时接管。
88
+ - npm 官方 registry 无法访问、权限不足、文件被运行中进程占用、安装失败或宿主不能热更新时,必须写入可诊断状态并延后重试。可以非模态提示“立即重试/查看日志”,但用户忽略、关闭或暂不处理时,当前、正在进行和新建的 Microi 工作仍必须继续。
89
+ - 用户明确关闭自动更新或宿主不允许终端执行时,尊重该限制,报告具体未完成项和恢复命令;不能静默宣称已是最新版。自动更新只覆盖开发工具、Skills 和本机 MCP 入口,不授权升级客户 API/数据库、部署容器或安装业务应用;已签名 Microi Agent 安装目录仍通过桌面官方更新渠道升级。
90
+ - 只有任务明确依赖旧版本不存在的具体能力时,才准确说明该能力边界与可用降级方案;不得用“最新版未通过”“尚未授权升级”作为整项任务的失败理由。
77
91
  <!-- /microi-progressive:chunk -->
78
- <!-- microi-progressive:chunk id=workspace-conventions-001 sha256=c3db79fb5f6f00a6ea619f7129f1e81259efe899256a5100f9c84a5b5dca58f4 -->
79
- ## Microi吾码工作进度播报规范(强制)
80
-
81
- AI 在任何新建或已有对话中处理 Microi吾码任务并向用户输出工作过程记录时,必须默认执行本规范,无需用户再次提醒:
82
-
83
- - 每累计输出 3-5 次面向用户的工作过程记录,根据任务复杂度和实际阶段选择合适时机,追加一次进度播报;首次播报不得晚于第 5 次工作过程记录。工具调用结果、系统消息和最终答复不计入次数。
84
- - 播报必须以“Microi吾码本次工作进度”开头,让用户明确知道这是【Microi吾码】规范;不得改成含义模糊的“当前进度”,也不得描述为 AI 自带功能。
85
- - 每次播报必须同时包含四项快速估算:已完成进度百分比、预计还需要多长时间结束、目前大概已消耗多少 token、预计总共需要消耗多少 token。
86
- - 预计剩余时间不足 60 分钟时使用分钟;达到 60 分钟后换算为“X小时Y分钟”;达到 24 小时后换算为“X天Y小时Z分钟”。为 0 的低位单位可以省略,禁止继续只显示累计分钟数。
87
- - 进度、时间和 token 只需快速估算,不得为了提高估算精度中断主要工作,也不得声称这些数据来自平台精确计量。token 较多时可用 `k` 简写。
88
- - 推荐使用紧凑格式:`Microi吾码本次工作进度:约 55%;预计还需 12 分钟;目前已消耗约 8k tokens;预计总计约 15k tokens。以上为快速估算。`
89
- - 短任务若在不足 3 次工作过程记录时已经完成,不得为了凑次数拆分无意义消息;可直接在最终交付中简要汇总。
92
+ <!-- microi-progressive:chunk id=workspace-conventions-001 sha256=8d8dfff420c0cc768bbeb13d94e9f77f52d5002fc61d93dc82d71b3a17f2eaa0 -->
93
+ ## Microi吾码工作进度播报规范(强制)
94
+
95
+ AI 在任何新建或已有对话中处理 Microi吾码任务并向用户输出工作过程记录时,必须默认执行本规范,无需用户再次提醒:
96
+
97
+ - 每累计输出 3-5 次面向用户的工作过程记录,根据任务复杂度和实际阶段选择合适时机,追加一次进度播报;首次播报不得晚于第 5 次工作过程记录。工具调用结果、系统消息和最终答复不计入次数。
98
+ - 播报必须以“Microi吾码本次工作进度”开头,让用户明确知道这是【Microi吾码】规范;不得改成含义模糊的“当前进度”,也不得描述为 AI 自带功能。
99
+ - 每次播报必须同时包含四项快速估算:已完成进度百分比、预计还需要多长时间结束、目前大概已消耗多少 token、预计总共需要消耗多少 token。
100
+ - 预计剩余时间不足 60 分钟时使用分钟;达到 60 分钟后换算为“X小时Y分钟”;达到 24 小时后换算为“X天Y小时Z分钟”。为 0 的低位单位可以省略,禁止继续只显示累计分钟数。
101
+ - 进度、时间和 token 只需快速估算,不得为了提高估算精度中断主要工作,也不得声称这些数据来自平台精确计量。token 较多时可用 `k` 简写。
102
+ - 推荐使用紧凑格式:`Microi吾码本次工作进度:约 55%;预计还需 12 分钟;目前已消耗约 8k tokens;预计总计约 15k tokens。以上为快速估算。`
103
+ - 短任务若在不足 3 次工作过程记录时已经完成,不得为了凑次数拆分无意义消息;可直接在最终交付中简要汇总。
90
104
  <!-- /microi-progressive:chunk -->
91
105
 
92
106
  ## AI 编写代码的意图注释规范(强制)
@@ -2,13 +2,16 @@
2
2
 
3
3
  > 按需读取;本文件由 SKILL.md 的原章节无损拆分。
4
4
 
5
- <!-- microi-progressive:chunk id=workspace-conventions-010 sha256=d4ee69df49b8cba8d6365f485bd44aab8f5fcccc4cc1c8394220af14ff68f83f -->
5
+ <!-- microi-progressive:chunk id=workspace-conventions-010 sha256=f123b0b70030df276188dbb77617c41f74767ab27ea38d5472634cc3b6beca8b -->
6
6
  ## 版本更新日志保护规则(强制)
7
7
 
8
8
  - 日常功能开发、缺陷修复、测试、普通文档补充、Skill 完善和代码重构期间,不得修改 `microi.doc/docs/doc/about/update-log.md`。
9
9
  - 只有用户明确提出“发布版本”“准备发版”“更新版本日志”或直接点名要求修改该文件时,才允许编辑更新日志;“完善文档”或“补充官网说明”不等于授权修改版本日志。
10
10
  - 如果本轮误改了更新日志,必须先按上节完成多对话归属核验;只撤回有本对话精确写入证据的 hunk。必须保留用户、其它对话或其它任务的已提交和未提交内容,归属不明时不得修改并应询问用户。
11
11
 
12
+ - 编写正式更新日志必须以“上一条已发布更新日志所对应的正式候选”为起点,逐仓核对到本次冻结候选之间的全部提交、合并和最终文件差异;不能只取最后一次提交、最后一次推送或仅看当前任务。历史改写导致的等价提交按内容去重,合并提交需要核对实际引入的功能。保留起止提交、逐项来源与纳入/排除原因的本地审计记录;客户私有业务、生成文件与重复提交不得凑成平台功能条目。
13
+ - 页面版本断档(例如 v8.5.6 后直接是 v8.5.11)时,查验中间各正式版本的候选及渠道回执并补齐可证实的遗漏,不能把当前候选新增功能倒写为历史版本已发布。历史条目补充需用户的更新日志授权;本次新版本单列,并区分代码已完成、制品已发布与客户部署。日志内容不能以“六条概括”替代完整区间核对,也不能因条数少直接推断缺失。
14
+
12
15
  <!-- /microi-progressive:chunk -->
13
16
  <!-- microi-progressive:chunk id=workspace-conventions-011 sha256=8e3904f45392b7c27746de274bbc4725a7eb0964f0aeab1d83918c0174336dc4 -->
14
17
  ## 配置文件说明中文优先规则
@@ -186,7 +189,7 @@ if (string.IsNullOrWhiteSpace(tableName)) { return; }
186
189
  如果方法内部只通过 `DynamicHelper` 读取对象字段,方法参数优先声明为 `object`,不要声明为 `dynamic`。这样可以减少 C# 运行时动态绑定进入普通字符串工具链的机会。
187
190
 
188
191
  <!-- /microi-progressive:chunk -->
189
- <!-- microi-progressive:chunk id=workspace-conventions-023 sha256=4ef009cbfca343640e69ccdb6be47f3cb13ad8a67f9ff770debce20c919f1bb3 -->
192
+ <!-- microi-progressive:chunk id=workspace-conventions-023 sha256=44d2ca45e8fb85bb86f2f84f3fad09abc0687fb89f9e0e4f624917d258d485c3 -->
190
193
  ## 根目录保留文件说明
191
194
 
192
195
  根目录只允许存在以下类型的文件和目录:
@@ -202,7 +205,7 @@ if (string.IsNullOrWhiteSpace(tableName)) { return; }
202
205
  | `microi-v8-engine/` | V8 接口引擎代码 | 否 |
203
206
  | `AI-Project/` | 各租户/项目 | 否 |
204
207
  | `switch-env.ps1` | 本地环境切换工具 | 否(有用) |
205
- | `.tmp/` | AI 临时文件(gitignored) | 可删整个目录 |
208
+ | `.tmp/` | AI 临时文件(gitignored) | 按任务归属清理,禁止整体清空共享目录 |
206
209
  | `.microi-e2e/` | Microi.Agent 插件 E2E 产物 | 可定期清理 |
207
210
  | `.microi-performance/` | 性能测试报告 | 可定期清理 |
208
211
 
@@ -39,7 +39,7 @@ AI 在用户本机启动 Node.js、Vite、Webpack、dotnet build、Java、Docker
39
39
  - Vite 热更新未生效时,先检查页面、控制台、文件监听和当前 61500 开发服务归属;确需重启时按共享进程与发布锁规范精确停止本工作区原有 `npm run dev`,再重新执行 `npm run dev`。不得用 `npm run build` 代替开发服务重启,也不得结束所有 `node`、浏览器或其它对话的进程。
40
40
  - 本规则只约束 `Microi.Client/` 吾码框架前端源码。独立 MicroService、Web、UniApp 等应用源码仍按其交付 Skill 在发布前执行自身必要的构建;不得因为本规则跳过微服务正式产物生成。
41
41
  <!-- /microi-progressive:chunk -->
42
- <!-- microi-progressive:chunk id=workspace-conventions-004 sha256=093ef306e8f2f873b76524ce69ce7fd5194cfa0b361bd564f0c767f88439a817 -->
42
+ <!-- microi-progressive:chunk id=workspace-conventions-004 sha256=443f093b8ae93e4f62df416006bc34969a6d8cde4741745acc5fdec829d957da -->
43
43
  ## 临时文件与 AI 产物放置规则(强制)
44
44
 
45
45
  - 长期交付资料归对应 `AI-Project/` 项目;不得重新生成公开根仓 `output/`。本工作区既有资料在 `AI-Project/microi/文档/历史交付资料/output/`,第三方推广 Skill 在 `AI-Project/microi/推广/skills/yixiaoer/`,均不随公开源码分发。
@@ -64,7 +64,7 @@ AI 在工作区任意任务中生成的**一次性临时脚本、诊断文件、
64
64
  - 孤立的 `node_modules/`(根目录没有 `package.json`,不应安装 npm 包)
65
65
  - 孤立的 `obj/`、`dist/`、`build/`(非对应项目文件)
66
66
 
67
- `.tmp/` 已在 `.gitignore` 中排除,可以随意创建临时文件。任务完成后如无保留价值可以不清理。
67
+ `.tmp/` 已在 `.gitignore` 中排除,但创建临时文件必须登记归属,并在每轮测试结束后按 [测试临时文件随任务清理](../SKILL.md#测试临时文件必须随任务清理强制) 删除已无用途的自有产物;必要证据先最小归档,确需暂留的文件记录原因与清理时机,不能无限堆积。
68
68
 
69
69
  **2026-06 强制补充**:AI 不得在任何子项目目录下放置一次性日志、自动化截图、接口回收文件或调试脚本。像 `Microi.Server/Microi.net.Api/.tmp-*.log`、`Microi.Client/*.png` 这类文件一律视为规范失败,必须移到 `<workspace-root>/.tmp/` 或 `<workspace-root>/.tmp/screenshots/`。正式 Playwright 工程由 Microi.Agent 插件生成时可以继续使用 `.microi-e2e/`,但 AI 为某个任务手写的一次性 Playwright 脚本、报告和截图仍然必须放在 `.tmp/`。
70
70
 
@@ -139,7 +139,7 @@ AI 在工作区任意任务中生成的**一次性临时脚本、诊断文件、
139
139
  - 文档改动后执行 `npm run docs:build`;验收时检查本次没有无理由新增 `.md` 页面或导航路由。
140
140
 
141
141
  <!-- /microi-progressive:chunk -->
142
- <!-- microi-progressive:chunk id=workspace-conventions-009 sha256=bec8162387c470c0cad1252645dbb4ecdafb0abb5f9b042525b6df8671e77ab0 -->
142
+ <!-- microi-progressive:chunk id=workspace-conventions-009 sha256=9ef3509bf1efdf2b04cce46f8f517ad5779de428d007cee08ce6fe41f1f9daa9 -->
143
143
  ## 多对话共享工作区变更归属保护(强制)
144
144
 
145
145
  ### 功能验收后的源码提交与推送(强制)
@@ -147,8 +147,8 @@ AI 在工作区任意任务中生成的**一次性临时脚本、诊断文件、
147
147
  - 每个已完成并通过相应验收的功能、修复或独立里程碑,必须把本任务源码、测试和必要文档按实际 Git 仓库分别提交并推送;不能仅保存在工作区、stash、临时目录或已发布产物中。用户明确要求不提交/不推送、只读任务和未完成的实验除外,不为无改动仓库制造空提交。
148
148
  - 提交前回读工作树、暂存区、上游和远端;按可核验的本任务 hunk 暂存,保留其它对话的改动与既有暂存项。公开根仓只提交公开代码;闭源目录只从各自独立仓库根提交并推送到其已有内部远端,严格执行公开仓闭源路径门禁,不能用 gitlink 或强制添加绕过隔离。
149
149
  - 推送前先获取上游的新提交并安全整合;共享工作区有并行改动时优先在隔离候选中合并,不用整树 stash/reset 覆盖他人成果,不强推共享分支,不绕过仓库 Hook。需要精确回滚时保留独立、说明清楚的功能提交;回滚已推送功能通常使用新的反向提交,不改写共享历史。
150
- - 正式发布的候选必须包含此前已交付功能和本任务已核验的源码,先按仓安全本地提交,再冻结完整构建输入与内容哈希;仅更新说明页面时也要核对整个站点候选。Git 远端推送与提交号回读默认在制品发布前完成;若用户明确授权“Git 推送失败不阻断 NuGet/Docker”,仅允许把这两类平台制品的远端推送移到并行或后续步骤,不放宽 Full、闭源隔离、加密、候选/产物一致性及渠道回读。隔离工作树没有未提交变更不等于已包含最新功能;发布锁也不能代替源码完整性检查。
151
- - 收尾逐仓记录本地提交号、远端分支和回读结果,区分源码、NuGet、Docker 与客户部署。远端网络、认证或容量故障时作有界诊断,保留本地提交、失败原因和待补推清单;在上述用户明确授权且本地候选已完成全部制品门禁时,可继续独立发布 NuGet/Docker,但必须如实标记源码尚未推送,不能宣称完整交付。源码冲突、归属不明、保护路径违规或候选漂移不是“Git 推送故障”,必须先处理,不能借例外发布不确定源码。
150
+ - 正式发布的候选必须包含此前已交付功能和本任务已核验的源码,先按仓安全本地提交,再冻结包含闭源源码在内的完整构建输入、提交号和内容哈希;仅更新说明页面时也要核对整个站点候选。Git 远端推送/回读与制品发布是独立交付步骤,默认可并行或在制品之后补推,不能把远端已包含 HEAD、推送成功或 Gitee/GitLab/GitHub 可达作为 NuGet、API/PC Docker、官网 Docker 等合格制品的上传前置条件。保留对应产品的 Full、闭源隔离、DLL 加密、候选/产物一致性、最终冒烟和渠道回读;官网继续执行整站构建与内容/入口验收。隔离工作树干净或持有发布锁,均不能代替源码完整性检查。
151
+ - 收尾逐仓记录本地提交号、远端分支和独立回读结果,分别报告源码、NuGet、Docker、官网及客户部署。远端网络、认证或容量故障首次失败后最多短重试一次,累计定向排障不超过 5 分钟;保存本地提交、失败原因和待补推清单,已通过全部制品门禁的渠道立即继续发布,不得反复请求同一例外授权。源码冲突、归属不明、保护路径违规、缺少实际构建输入或候选漂移必须先解决,不能当作可忽略的远端故障。后续合并改变源码/构建输入时重新冻结并按新候选验收,禁止将新提交冒充已发布制品来源;缺少远端回执仍标为源码未交付,不得宣称全部完成。
152
152
 
153
153
  - **Git 大文件推送确认(强制)**:每次 Git 推送前检查全部待推送提交中新引入的 Blob;单个达到 10 MiB 或合计达到 50 MiB 时,必须提供路径、实际大小、SHA-256 和目标仓库/分支,取得用户对具体清单的确认后才推送。一般提交推送授权不能代替大文件确认;完整检查、CDN 引用、历史瘦身与失败回执规则见[Git 大文件推送确认](progressive-03-cli-与-ide-插件错版共存约定.md#git-大文件推送确认强制)。
154
154