- CLAUDE.md 工作约定新增「及时更新计划进度」:按 Plan 实施时主动更新 01_任务分解WBS 任务状态,与代码提交同节奏 - 01_任务分解WBS 新增「进度总览」:M0 全部 7 任务标记完成 ☑,M1~M6 未开始; 记录 M0 期间确立的项目决策(包名/横屏/验证策略/devecocli 无 test) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 KiB
01 · 任务分解(WBS)
全量任务清单。每个任务含:目标 / 产出物 / 依赖 / 验收 / 估时 / 角色。 角色缩写:桥=桥/容器、台=平台/领域、能=能力工程师、Q=QA。估时单位:人日(pd)。 验收一律以《契约规范》对应条目为准;通用 DoD 见 00_总体规划 §7。
进度总览
状态图例:☐ 未开始 / ◐ 进行中 / ☑ 完成 / ⚠ 受阻。每完成任务或里程碑及时更新(CLAUDE.md 工作约定)。最后更新:2026-06-25。
| 里程碑 | 状态 | 说明 |
|---|---|---|
| M0 脚手架 + 契约类型 | ☑ 完成 | 7 任务全完成并真机/模拟器验证 |
| M1 桥引擎 | ☐ 未开始 | 下一步;含 V1 阻塞性验证 |
| M2 容器 + 启动 + 资源 | ☐ 未开始 | 含 V2 阻塞性验证 |
| M3 本期能力 | ☐ 未开始 | — |
| M4 通用网页容器 | ☐ 未开始 | — |
| M5 性能与加固 | ☐ 未开始 | — |
| M6 暂缓能力集成 | ☐ 未开始 | 按需 |
M0 任务明细(全部 ☑):
- ☑ T-M0-01 多模块工程(entry + 6 HAR)
- ☑ T-M0-02 模块依赖与导出(单向向下、无环)
- ☑ T-M0-03 构建/签名/CI(签名已配
tsgames.p12;CI =scripts/ci.sh) - ☑ T-M0-04 契约类型 SSOT(45 入站 + 21 出站 + 17 DTO + Result/Errors)
- ☑ T-M0-05 公共设施 common(Logger/Tracer/EventBus/DI/ErrorCenter)
- ☑ T-M0-06 引入桥 JS(lzyzsd 原文件 + BridgeJsLoader)
- ☑ T-M0-07 App 入口与路由壳(Navigation;真机验证启动→路由→回传→横屏)
M0 期间确立的项目决策(超出原计划的补充):
- 包名
com.lobby.daoqi;横屏项目,module.json5配auto_rotation_landscape(横屏两朝向跟随旋转、不进竖屏,H5 显式方向控制保留)。 - ArkTS 验证用
devecocli build(其 CompileArkTS 为权威编译器);deveco-mcp 的 LSP check 因 70s 索引 / 20s 超时不可用。 devecocli无test子命令,单测运行方式待 M1 解决。
M0 · 工程脚手架 + 契约类型
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M0-01 | 创建多模块工程 | devecocli create 生成 entry + 6 HAR(feature_bridge/feature_capabilities/domain_resource/platform/contracts/common) |
— | 工程可 devecocli build(debug)通过 |
1 | 桥 |
| T-M0-02 | 模块依赖与导出 | 各 oh-package.json5 依赖关系(单向向下);index.ets 导出 |
T-M0-01 | 跨模块 import 无环、可编译 | 0.5 | 桥 |
| T-M0-03 | 构建/签名/CI | build-profile.json5(debug/release product);调试签名;CI 脚本(build+单测) |
T-M0-01 | PR 触发 CI 通过 | 1 | 桥 |
| T-M0-04 | 契约类型(SSOT) | contracts HAR:enum Handlers(全部入站/出站 handler 名常量,含 finsh/getcameraaAddress/backgameData- 等原样拼写);DTO interface(sharetypeBean/MaplocationInfo/phoneInfoBean/savephotoURLBean/videoinfobean/Othervideoinfo/GamePay/sharelogin/sharesuccess);Result<T>/Errors;每 handler 的 `payloadType:'raw' |
'json'` 标注 | T-M0-02 | 全量对照《契约规范》§8/§9/§12,零缺漏;编译通过 | 1.5 |
| T-M0-05 | 公共设施 | common HAR:Logger(分级)/BridgeTracer(traceId)/EventBus(emitter 封装)/DIContainer/ErrorCenter(异常收敛+弹窗/静默/上报策略)/Result<T> 配套 |
T-M0-02 | 单测覆盖;可被各模块引用(框架 §10) | 1.5 | 台 |
| T-M0-06 | 引入桥 JS | 把 lzyzsd WebViewJavascriptBridge.js 原文件放入 feature_bridge/assets,建读取/内联机制 |
T-M0-01 | 文件就位、可被注入流程读取 | 0.5 | 桥 |
| T-M0-07 | App 入口与路由壳 | EntryAbility(Stage 模型生命周期,含 onForeground/onBackground 钩子接口)+ Navigation/路由骨架(Splash↔BridgeGameContainer↔GenericWebContainer 跳转与回传通道)+ SplashPage 壳(框架 §4) |
T-M0-01 | 空壳可启动、可路由跳转;前后台钩子可触发 | 1 | 桥 |
M1 · 桥引擎(最高优先 ⭐)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M1-01 | Web 控制器抽象 | IWebController 接口 + WebviewControllerAdapter(包 webview.WebviewController)+ FakeWebController(测试用) |
T-M0-01 | 桥不直接依赖系统类;Fake 可记录脚本/模拟回执 | 1 | 桥 |
| T-M1-02 | 消息编解码 | Message(5 字段)+ MessageCodec:toJson/toArray/escape,与 lzyzsd 完全一致的二次转义(\、") |
T-M0-04 | 单测:与 Android 端样例字节级一致 | 1 | 桥 |
| T-M1-03 | Handler 注册表 | HandlerRegistry(put/get/default)+ DefaultHandler(空实现兜底) |
T-M0-04 | 未注册名落默认 handler 不抛错(框架 §5.2/§6.5) | 0.5 | 桥 |
| T-M1-04 | 桥控制器 | BridgeController:onLoadIntercept/callHandler/registerHandler/onPageEnd/flushMessageQueue/handleReturnData/dispatch/queue;_fetchQueue 走 yy://return/ 回传(非 runJavaScript 返回值);UI 线程守卫(§5.5) |
T-M1-01/02/03 | 单测(FakeWebController):模拟 H5 callHandler→handler 分发、原生 callHandler→下发、回执路由、启动队列补发 | 2.5 | 桥 |
| T-M1-05 | 桥 JS 注入 | onPageEnd 中 runJavaScript(BRIDGE_JS) + 启动消息补发 |
T-M1-04/T-M0-06 | 页面就绪后 window.WebViewJavascriptBridge 可用 |
0.5 | 桥 |
| T-M1-06 | 最小回显 H5 | 测试用 H5(registerHandler('echo')、callHandler('getTime'))+ 一个挂桥的最小测试页 |
T-M1-04 | 真机:H5↔原生双向回显成功 | 1 | 桥/Q |
| T-M1-07 ⚠ | 阻塞性验证 V1 | 真机验证 yy:// 的 iframe 导航被 onLoadIntercept 捕获;产出结论报告 |
T-M1-06 | V1 通过;若不通过,按 00 §5 回退方案并更新设计 | 1 | 桥/技术负责人 |
| T-M1-08 | 桥引擎单测 | BridgeController/MessageCodec/HandlerRegistry 单测套件 |
T-M1-04 | 覆盖率 ≥80%(框架 §13) | 1.5 | 桥/Q |
M1 出口:T-M1-06 跑通 + T-M1-07(V1)通过 + T-M1-08 达标。
M2 · 容器 + 启动 + 资源(轨道 A 容器 / 轨道 B 平台领域)
平台层(轨道 B,可与 M1 并行起步)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M2-01 | 存储/文件 | KvStore(@ohos.data.preferences)、FileSystem(@ohos.file.fs) |
T-M0-01 | 读写 urlpath/upurlpath;文件增删查 |
1 | 台 |
| T-M2-02 | 网络/下载 | HttpClient(@ohos.net.http 或 rcp)、Downloader(断点可选、进度回调) |
T-M0-01 | GET 禁缓存;大文件下载带进度 | 1.5 | 台 |
| T-M2-03 | 解压/并发 | Unzipper(@ohos.zlib decompressFile)、TaskScheduler(TaskPool/Worker) 仅传 Sendable + emitter 进度(§9.1) |
T-M0-01 | zip 解压成功;解压在子线程、UI 不阻塞 | 1.5 | 台 |
| T-M2-04 | 权限/上传服务 | PermissionGuard(存储/电话/定位/相机/麦克风 用时申请);LocalUploadServer(socket/NAPI 本机端口服务,截图上传用) |
T-M0-01 | 权限流程合规;本机端口可访问 | 1.5 | 台 |
配置/资源/启动(轨道 B)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M2-05 | 本地+远程配置 | ConfigManager:内置 rawfile/app_config.json(§4.2 全键);远程配置请求(http://gameconfig 去-换/ .txt?a=ts,禁缓存);showmessage 阻断、<30 错误文案 |
T-M2-02 | 配置键齐全;远程 JSON 正确解析、阻断逻辑生效 | 2 | 台 |
| T-M2-06 | 分层覆盖 | VersionResolver:agentlist/gamelist 两棵树 + 二级 url 二次请求 + agent→channel→market→game 后层覆盖(纯函数) |
T-M2-05 | 单测:多层样例覆盖结果正确(《契约规范》§4.4) | 2 | 台 |
| T-M2-07 | 资源管理 | ResourceManager:路径规范、内置包拷贝+解压、version.xml 解析(@ohos.xml)、远程 zip 下载/删旧/解压、版本比较 |
T-M2-03/06 | 首启拷贝、版本更新下载解压到正确目录(§5) | 2 | 台 |
| T-M2-08 ⚠ | 阻塞性验证 V2 | 真机验证 file:// 大厅页 XHR/fetch 取本地资源;结论报告 |
T-M2-07 + T-M2-10 | V2 通过;否则启用 §7.3 自定义协议方案并更新设计 | 1 | 台/桥 |
| T-M2-09 | app_data 注入 | AppDataInjector:加载前写 <urlpath>/gamehall/app_data.js(§6 全局变量同名同义) |
T-M2-07 | H5 加载时能读到 app_* 变量;时序在加载前(§7.1 铁律) |
1 | 台 |
| T-M2-11 | 启动状态机 | StartupOrchestrator:INIT→…→ENTER_HALL;可重试/降级/阻断 |
T-M2-05/07/09 | 真机按序走通;失败降级本地缓存 | 1.5 | 台 |
容器(轨道 A)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M2-13 | 能力插件框架骨架 | feature_capabilities:CapabilityProvider 接口、CapabilityContext、注册表对接桥、组装根 buildCapabilities()/AppModule(DI 装配)、Provider 样板(框架 §6.1/§6.2) |
T-M1-04、T-M0-05 | 一个示例 Provider 可注册并被桥分发;组装根可批量装配 | 1 | 桥 |
| T-M2-10 | 大厅/子游戏容器 | BridgeGameContainer:Web + 属性(JS/DOM/file/mixed/cache/geo/zoom)+ 生命周期接桥(onControllerAttached 注册能力、onLoadIntercept 接桥、onPageEnd 注桥)+ 首次进度 100% 推 appservice/setPostUrl + SwitchOverGameData 同容器 loadUrl 切换 + aboutToDisappear 清理 |
T-M1-08、T-M2-13、T-M0-07 | 入口 URL 规则正确(weburl 空→file://,非空→http://,带 ?Launchtype=0) |
2 | 桥 |
| T-M2-12 | 集成联调 | 大厅 H5 真机加载 + 进子游戏 | T-M2-08/10/11 | 现有大厅 index.html 正常显示、可进子游戏 |
1 | 桥/Q |
M2 出口:T-M2-12 跑通 + T-M2-08(V2)通过。 注:
T-M2-13能力插件框架骨架是 M3 全部 Provider 与 T-M2-10 容器注册能力的前置依赖,须先于铺开能力完成。
M3 · 本期能力(轨道 C,各 Provider 高度并行)
前置依赖:M3 全部 Provider 均依赖
T-M2-13(能力插件框架骨架)+T-M2-10(容器可加载)+T-M0-04(契约类型)。这三者就绪后,各 Provider 之间互不依赖、可多人并行。 通用验收(每个 Provider):入站 handler 名/参数解析、出站 handler 名/data 结构/时机逐条对照《契约规范》§8/§9/§12;异步回传经 UI 线程守卫;真机录用例。
| ID | Provider | 入站 handler | 出站 handler | 关键实现/SDK | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M3-01 | AppSystemProvider |
orientation、browser、finsh、openApplyDownloadpath、notification(空) |
— | 屏幕方向、拉起浏览器、退出、按包名启动/下载兜底 | 1.5 | 能 |
| T-M3-02 | DeviceProvider |
getTime、getphonestate、getbattery、getwifiLevel、getcompareCode、getphoneInfo、getmarketname、getothername、getOther |
getBattery、getwifiLevel、phonestate |
deviceInfo/telephony/batteryInfo/wifiManager;裸串 vs JSON 严格区分 | 2.5 | 能 |
| T-M3-03 | NetworkProvider |
getnetwork |
getnetwork(广播变化) |
NetworkKit 监听 | 1 | 能 |
| T-M3-04 | VibrateProvider |
vibrator、repeatvibrator、canclevibrator |
— | @ohos.vibrator | 0.5 | 能 |
| T-M3-05 | ClipboardProvider |
gameCopytext、gamepastetext |
—(gamepastetext 同步返回串) | @ohos.pasteboard | 0.5 | 能 |
| T-M3-06 | NavProvider |
OpenurlTitleData、SwitchOverGameData、getGameinstall(同步 0/1)、backgameData |
getWebdata |
打开通用容器(M4)、同容器切换、目录判断 | 1.5 | 能/桥 |
| T-M3-07 | PhotoProvider |
getphoto |
getphoto(下载完成数组) |
批量下载图片到本地 + Downloader | 1.5 | 能 |
| T-M3-08 | ShakeProvider |
startshake、SwitchShake、stopshake |
shakeEnd(空串,触发后~1s) |
@ohos.sensor 加速度 + 节流;声音可选 | 1.5 | 能 |
| T-M3-09 | LocationProvider |
startlocation(1连续/否单次)、getlocationinfo(同步) |
getlocationinfo(MaplocationInfo/错误码) |
geoLocationManager;隐私合规初始化;错误码 0/-1/-2 | 2 | 能 |
| T-M3-10 | AudioProvider |
prepareaudio(录音)、mediaTypeAudio、srcIsloop、voicePlaying |
getaudiourl({audiourl,time})、gameui_play_voice、gameui_stop_voice |
AVPlayer/SoundPool;录音上传(七牛等);wav 路径拼接 | 3 | 能 |
| T-M3-11 | ScanProvider |
opensaoma |
getsaomaData |
Scan Kit | 1 | 能 |
| T-M3-12 | CameraProvider |
opencamera |
getcameraaAddress |
Camera Picker | 1 | 能 |
| T-M3-13 | ShareProvider |
friendsSharetypeUrlToptitleDescript |
sharesuccess(仅微信) |
微信分享 SDK;type==2 截图:runJavaScript(canvas.toDataURL) + LocalUploadServer |
2.5 | 能 |
| T-M3-14 | LoginProvider |
accreditlogin |
sharelogin(用户资料) |
微信登录;建议 code 模式(密钥下沉) | 2 | 能 |
| T-M3-15 | RoomStubProvider/PayStubProvider |
createRoom/exitRoom/getVideoinfo/DragViewvideoIsshow;paybrowser/getGameplay |
—(不触发) | 占位桩:空实现 + 日志(§6.5) | 0.5 | 能 |
| T-M3-16 | 前后台联动 | — | appservice('1'/'2') |
UIAbility.onForeground/onBackground → callHandler |
0.5 | 桥 |
| T-M3-17 | 契约一致性回归 | 全 44 入站 + 全出站真机逐条核对 | — | 对照《契约规范》§8/§9,出回归报告 | 2 | Q |
M3 出口:本期能力真机逐条通过;视频房/支付桩被调用不报错不卡死(T-M3-17 含此项)。
M4 · 通用网页容器(轨道 A,可与 M3 尾段并行)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M4-01 | 通用容器 | GenericWebContainer:Web + cacheMode(有网 Default/无网 Only) + javaScriptProxy 注入 settings |
T-M2-10 | 打开任意 url、属性正确 | 1.5 | 桥 |
| T-M4-02 | settings 注入 + 直调 | SettingsProxy 6 方法(backgameData/loadurl/browser/finishweb/isexitdialogeshow/isbackfinishweb)+ 3 个 runJavaScript 直调(getWebdata/gamebackkeydown/backgameData) |
T-M4-01 | 逐一对照《契约规范》§11.3 | 1.5 | 桥 |
| T-M4-03 | 回传与返回键 | 101 结果经 router/emitter 回上层 → 上层 callHandler('getWebdata');返回键逻辑(isbackfinishweb/isexitdialogeshow) |
T-M4-02 | 活动页/收银台/客服打开、回传、返回正常 | 1 | 桥 |
M5 · 性能与加固(轨道 D,部分贯穿 M3/M4)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M5-01 | Web 保活/预热 | NodeController+BuilderNode 离屏预创建/保活;启动期预热空 Web |
T-M2-10 | 子游戏切换 <300ms、无白屏 | 2 | 桥 |
| T-M5-02 | 切换与桥重绑 | 子游戏切换走 loadUrl 复用;切换后桥/handler 重绑时序正确 |
T-M5-01 | 切换后桥功能正常 | 1 | 桥 |
| T-M5-03 | 高频节流/批处理 | 定位/电量等高频 handler 节流;出站批处理 | T-M3-* | 跨引擎调用次数下降、无卡顿 | 1 | 桥 |
| T-M5-04 | 崩溃兜底/内存 | onRenderExited 重载;aboutToDisappear 彻底清理 |
T-M2-10 | 渲染子进程崩溃可自恢复 | 1 | 桥 |
| T-M5-05 | 安全加固 | WebDebug 按 isDebug 守卫;密钥下沉服务端;明文 HTTP 域名白名单;file 跨域最小授权;自定义 scheme 注册(module.json5);日志脱敏 |
各能力就绪 | 安全审查清单(附录 B)全过 | 2 | 桥/台 |
| T-M5-06 | 可观测 | BridgeTracer 全链路 traceId;接 APM/Crash |
T-M0-05 | 能还原一条桥消息全链路 | 1 | 台 |
| T-M5-07 | 冷启动优化 | StartupOrchestrator 无依赖步骤并行化 | T-M2-11 | 冷启动到首帧达标(<2s 基线) | 1 | 台 |
| T-M5-08 | 包体/渠道裁剪(可选) | 能力 Provider 按渠道用 HSP 动态特性裁剪;包体瘦身(框架 §9 包体) | T-M3-* | 不同渠道包仅含所需能力,包体下降 | 1 | 桥/台 |
M6 · 暂缓能力集成(按需,可延后)
| ID | 目标 | 产出物 | 依赖 | 验收 | 估时 | 角色 |
|---|---|---|---|---|---|---|
| T-M6-01 | 视频房真实 | RoomProvider(声网 RTC HarmonyOS SDK)替换桩 |
M3 完成 | createRoom/exitRoom/getVideoinfo/DragViewvideoIsshow + 出站 getVideoinfo 真打通;H5 零改动 |
视 SDK | 能 |
| T-M6-02 | 支付真实 | PayProvider(浏览器收银台/或 App 内支付)替换桩;如启用 App 内支付则补 PayuserPaytypePaystate |
M3 完成 | 支付闭环;H5 零改动 | 视 SDK | 能 |
| T-M6-03 | 补齐项(可选) | 抖音/快手登录(code)、主动截图 getCanvasBase64、QQ/抖音分享回传统一 |
按需 | 对照框架 §6.4 | 视需求 | 能 |
任务总数与估时汇总
| 里程碑 | 任务数 | 估时(pd) |
|---|---|---|
| M0 | 7 | 7 |
| M1 | 8 | 9 |
| M2 | 13 | 19 |
| M3 | 17 | 24.5 |
| M4 | 3 | 4 |
| M5 | 8 | 10 |
| 合计(M0–M5) | 56 | ≈73.5 pd(含测试/缓冲) |
| M6 | 3 | 视集成 |
估时为"工作量"非"日历"。3 人并行、关键路径串行下,日历周期约 5–7 周(见 00 §1)。
附:框架设计 → 计划覆盖矩阵(完整性自检)
逐条证明《框架设计与开发指南》每个章节都有计划任务承接,无遗漏。
| 框架章节 | 计划任务 | 状态 |
|---|---|---|
| §1 设计原则 | 贯穿 DoD(00 §7)与代码规范(00 §6) | ✓ 原则类,非任务 |
| §2 能力映射总表 | 各能力/桥任务的实现依据(引用表) | ✓ 参考 |
| §3 分层架构 / §4 工程结构 | T-M0-01/02(建 entry+6 HAR)、T-M0-07(EntryAbility/路由/Splash) | ✓ |
| §5.1–5.2 桥协议/控制器 | T-M1-02/03/04/05 | ✓ |
| §5.3 同步/异步 | T-M1-04 + 各 Provider | ✓ |
| §5.4 裸串vsJSON | T-M0-04(payloadType) | ✓ |
| §5.5 线程模型 | T-M1-04(UI 守卫) | ✓ |
| §5.6 IWebController | T-M1-01 | ✓ |
| §6.1/6.2 插件框架/组装根/DI | T-M2-13(能力插件框架骨架) | ✓ 已补 |
| §6.3 Provider 样板/截图分享 | T-M3-09(样板)、T-M3-13(分享截图) | ✓ |
| §6.4 补齐项 | T-M6-03 | ✓ |
| §6.5 占位桩 | T-M3-15 | ✓ |
| §7.1 大厅/子游戏容器 | T-M2-10 | ✓ |
| §7.2 通用网页容器 | T-M4-01/02/03 | ✓ |
| §7.3 file:// 跨域 | T-M2-08(V2 阻塞验证) | ✓ |
| §8.1 启动状态机 | T-M2-11 | ✓ |
| §8.2 ConfigManager | T-M2-05 | ✓ |
| §8.2 分层覆盖 | T-M2-06(VersionResolver) | ✓ |
| §8.3 ResourceManager | T-M2-07 | ✓ |
| §8.4 AppDataInjector | T-M2-09 | ✓ |
| §9 性能(保活/并发/批处理/就绪渲染/内存/冷启动) | T-M5-01/02/03/04/07、T-M2-03 | ✓ |
| §9 包体/HSP 裁剪 | T-M5-08 | ✓ 已补 |
| §9.1 TaskPool Sendable | T-M2-03 | ✓ |
| §10 契约类型 SSOT | T-M0-04 | ✓ |
| §10 日志/追踪 | T-M0-05(Tracer)、T-M5-06 | ✓ |
| §10 ErrorCenter | T-M0-05(已含 ErrorCenter) | ✓ 已补 |
| §10 事件总线/DI | T-M0-05 | ✓ |
| §10 权限 | T-M2-04(PermissionGuard) | ✓ |
| §10 安全 | T-M5-05 | ✓ |
| §10 可测试 | T-M1-01/08 + 各单测 | ✓ |
| §11 可追溯矩阵 | 02 测试与验收 §4 契约核对清单 + 本矩阵 | ✓ |
| §12 路线图 M0–M6 | 本 WBS 全部里程碑 | ✓ |
| §13 验收标准 | 02 测试与验收计划 | ✓ |
| 附录 A ArkTS/ArkUI 适配 | 贯穿 DoD(00 §7 已引用 §5.5/§9.1)+ T-M0-07/T-M2-10 落地 | ✓ |
| 附录 B 生产加固合规 | T-M5-05(逐项)+ 02 §5 M5 Gate | ✓ |
结论:框架设计指南全部章节均有计划任务承接,覆盖完整。本次自检新增
T-M0-07、T-M2-13、T-M5-08及T-M0-05的 ErrorCenter,补齐了能力插件框架骨架、入口/路由壳、ErrorCenter、包体裁剪四处缺口。