cannbot-dsl-unit-planner
根据 CANNBotDSL 算子的规格和调用方提供的设计资料,规划有依赖关系、可实现并独立验收的纵向实现 Unit,识别关键能力缺口和设计偏离风险,输出 U*.yaml。当用户要求拆分算子实现任务或编写 Unit 时使用。
SKILL.mdops/cannbot-dsl-unit-planner/SKILL.md
GitHubCANNBotDSL 实现单元规划
输入与输出
- 算子规格:数学、接口和边界语义的来源。
- 设计资料:调用方提供的单份文档或分文件目录。若有索引,按索引查阅执行路径、Host/Kernel 阶段、资源、同步、API 证据与验证方案。
- 可选:已有实现代码、测试、补证记录和用户指定约束,用于判断已证实能力与改动范围。
在调用方指定目录输出 U01.yaml 至 U<n>.yaml,每份只有一个 unit 对象,格式见 Unit YAML 格式。Unit 数量由真实能力边界决定;每份交付能力必须在其声明的输入域内可实现、可判定、可被后继使用。本 Skill 规划实现与检验义务,不执行设备验证、不编写测试 Case 或修改上游设计。
划分方法
- 提取约束与未决事实。 从设计识别真实执行路径、最小合法输入、任务映射、资源、同步和验证要求。阅读 可实现性与边界检查,区分规格语义、设计承诺、可自由调整的实现细节;将影响调用契约、执行域、布局转换、同步、资源或规模的未决项归入首次使用它的 Unit。导入/签名或通用环境编译成功不代表组合数据通路已验证。
- 确定首个闭环。 首个计算 Unit 在明确的合法输入子域内贯通入口、必要校验、真实计算与写回,以独立 Golden 验收。它不要求一次完成全输入域和最终并行调度;只保留该子域不可缺少的机制,后置机制写明归属和设计允许的演进方式。可先交付独立公开能力或真实流水协议;选择
pipeline_framework时须能验证真实生产/消费及同步,而非占位阶段或不同断言类别。 - 让风险与能力共同交付。 关键能力未验证时,在对应 Unit 的
implementation.feasibility_checks写明前置补证、适用环境/形状、成功证据与失败返回点;补证失败就返回设计修订,后继不得消费其provides。多个未决机制耦合时用一个最小真实数值闭环验证组合,避免先冻结假框架。若已知缺口导致无法给出保留设计承诺的实现路线,指出具体缺口并返回设计;仅在规划中写“实现期定选”不足以放行。 - 按纵向能力递增。 最小数值闭环后,按有效多块状态、尾块安全、特殊值、跨任务并行、布局、可选输入和分支组合等真实故障面划分。搬入/Cube/Vector/写回等横向工序不是独立算子能力。设计规定的流水深度、执行域与数据通路属于实现义务,不能仅作为可选的性能优化;性能采样本身不列为实现 Unit。
- 核对依赖与保留面。 每份 Unit 明确支持的输入域、前序可保留的行为与契约、可区分的验收点,以及为何不能合并。能力依赖与实际修改文件分别记录,不因共享文件虚构能力依赖。增量允许重构内部资源、ABI 或算子内部调度,但须保留已交付行为与设计承诺,并回归受影响的前序能力;前序尚未真正成立就要被重建时,调整边界或合并相关闭环。
- 分别验证语义与设计。 数值义务检查 Golden;结构承诺通过 review_evidence 检查实际执行域、搬运链、生产/消费、代次与并行关系,不要求生成探针或设备插桩。阶段名称、槽号、静态配置和按预期拼装的事件不能证明真实结构。覆盖轴写会触发实现行为的量,例如去重/过滤后的有效列数跨块、槽复用、连续调用与状态存活期;参数大但有效工作小不算覆盖。
已有设计 Case 仅作为线索,具体输入、Case ID、Golden 和命令由测试设计决定。最小输入域之外的合法能力应由后继 Unit 覆盖,临时不支持的路径不得以占位输出冒充已实现能力。
design_constraints 和 feasibility_checks 必须落到验证义务或明确的源码/编译产物/设备证据检查;只增加描述字段不能提供门禁。无法由现有测试契约表达的义务记录具体证据缺口,交调用方处理,不能将 Case ID 关联或普通数值通过视为已验证。
逐份产出与检查
先读 spec、Unit 格式和设计索引,确定能力边界、关键风险归属与依赖轮廓;随后只展开当前 Unit 所需章节。聚合文档与分文件择一阅读相同内容,仅在引用缺失或事实冲突时补查。已有降级、缺口或验收争议时定向查阅对应实现、测试或补证记录。
按依赖顺序生成 Unit,每份明确后写入正式目录,用 YAML 解析器检查单一 unit 对象、ID/文件名一致、必需字段与义务;再推进下一份。整体边界变化时同步修订受影响文件。未闭合事实应明确补证归属与失败阻断,不生成占位 Unit 冒充交付。
全部写完后统一检查:ID/义务 ID 唯一;依赖存在且无环;requires 可由依赖闭包提供;每项依赖有原因;设计引用真实;首个数值闭环完整;各 Unit 的输入域与 out_of_scope/后继覆盖一致;关键未决项先验证后使用;设计约束/补证有 obligation_ids 或 review_evidence 关联、可物化触发条件写入义务;设计约束有可区分的证据;覆盖真实多块/复用行为。完成标准是以上检查均闭合或明确返回设计的具体缺口,部分文件落盘不等于完成。