工作流检视条款
【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills
由 design-constraints.md 派生。每次修改工作流后逐条自查;条款不通过则回退修改。 原件是设计意图,本清单是可执行的检查动作。
一、结构约束(SOLID)
| 编号 | 检查项 | 派生自 |
|---|---|---|
| S1 | 每个 skill 是否只负责单一功能域?是否把不相关的知识(如把架构最佳实践塞进编码规范 skill)混了进来? | 单一职责 S |
| S2 | 扩展某步骤时,是否通过 override virtual skill(repo-*/workflow-cp*)实现,而没有改动基类编排流程? | 开闭 O |
| S3 | 子仓 override 后,逻辑名、输入输出格式、调用方式是否与基类完全一致?上层是否无需感知替换? | 里氏替换 L |
| S4 | 是否只 override 了需要的组件,没有强迫子仓为改一个组件而实现全部 virtual 组件? | 接口隔离 I |
| S5 | 编排是否只依赖抽象逻辑名(如repo-coding-rules),而不依赖具体实现路径 / 章节结构? | 依赖倒置 D |
| S6 | 改基类时:暴露的契约(逻辑名 / 输入输出格式 / 调用约定)是否只新增、未破坏?破坏性变更是否提供了迁移路径并通知已接入仓? | 基类演进兼容 |
二、层级感知
| 编号 | 检查项 | 派生自 |
|---|---|---|
| H1 | 下级模块是否不感知上级?(子 Agent 不知自己在工作流哪一步;skill 不提及被哪个 agent 调用) | 层级间单向感知 |
| H2 | 同级模块是否互不了解对方内部逻辑? | 层级内黑盒感知 |
三、调度约束
| 编号 | 检查项 | 派生自 |
|---|---|---|
| D1 | 任务的执行方与验收方是否为不同 Agent 实例? | 职责分离 |
| D2 | 调度子 Agent 时是否只注入当前任务所需的最小信息,无无关全局上下文? | 最小信息 |
| D3 | 子 Agent 是否只被授予完成任务所需的最小写权限?(如开发角色不给 test 目录写权限) | 最小权限 |
| D4 | 所有可能循环/重试的环节是否都声明了最大次数,超限暂停并报告,而非无限重试? | 过程有界 |
| D5 | 每个子环节是否有明确交付件与可判定的通过指标(评分/容差/用例全通过等)? | 确定性交付 |
| D6 | 每个阶段完成后是否把状态持久化到外部(如.cannbot/state.json),不依赖会话记忆? | 状态可观测 |
| D7 | 暂停/失败是否落盘到可恢复状态点(已完成阶段+阻塞点+交付件),恢复时不重跑已通过阶段? | 可恢复性 |
| D8 | 执行角色是否严格遵循上游设计、发现问题回退给上游,而非自行改动上游决策(架构/Tiling/接口)? | 修改不越权 |
四、风格约束
| 编号 | 检查项 | 派生自 |
|---|---|---|
| F1 | SKILL.md 是否只做意图识别与路由分发,不内联知识细节? | SKILL.md 只做路由 |
| F2 | 能用 hook / 脚本 / 权限声明实现的约束,是否没有退化成 prompt 里的自然语言? | 机制优于自然语言 |
| F3 | 涉及仓库领域知识时,是否通过路径引导 agent 读原文,而非全文硬编码进 skill? | 引用而非硬编码 |
| F4 | 对开发者同样可见的知识(测试框架用法、编码规范)是否优先放仓内 doc,skill 只做引导? | 开发者知识外置 |
| F5 | 举例是否只用仓内已有知识或通用概念,没有引入需额外背景才懂的外部概念? | 举例不引入外部概念 |
五、链接一致性(本工作流特有)
| 编号 | 检查项 |
|---|---|
| L1 | 新增/删除 skill 后,是否重新运行了 init 使软链接生效? |
| L2 | 子仓 override 的逻辑名(skill 目录名 / SKILL.md 的name:)是否与基类一致,能被正确匹配? |
| L3 | 是否只改了源文件,没有直接改运行时目录(.opencode/)里的软链接目标? |
| L4 | 新增 skill 若需被某 agent 使用,是否已加入对应 agent(或 AGENTS.md)的skills:frontmatter,否则 init 收集不到? |
| L5 | 改动了流程(阶段 / CP / 回退关系)后,插件根README.md的「开发流程概览」表是否仍与ops-direct-invoke-workflow/SKILL.md的统一流程表一致(阶段、CP 编号、回退指向)? |
【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考