SuperAPI AI 工具集

bkit-rules

编程与开发

查看项目

更新于 10-16 01:58

技能介绍

bkit-rules 是 bkit 的核心规则集合,属于自动应用的规则,不需要用户输入命令即可生效。

一、PDCA 自动应用规则 遵循“不猜测”原则:不确定时先查文档,文档中没有则询问用户。事实来源优先级为:代码 > CLAUDE.md > docs/ 设计文档。针对不同请求类型,Claude 的行为如下:新功能需检查 docs/02-design/,缺失则先设计;Bug 修复需对比代码与设计后修复;重构需先分析现状、制定计划、更新设计再执行;实现完成后建议进行 Gap 分析。模板引用路径包括:Plan 使用 ${CLAUDE_PLUGIN_ROOT}/templates/plan.template.md,Design 使用 ${CLAUDE_PLUGIN_ROOT}/templates/design.template.md,Analysis 使用 ${CLAUDE_PLUGIN_ROOT}/templates/analysis.template.md,Report 使用 ${CLAUDE_PLUGIN_ROOT}/templates/report.template.md。

二、级别自动检测 检测顺序为:先检查 CLAUDE.md 中是否有显式级别声明,再根据文件结构检测。Enterprise 级别需满足 2 个及以上条件,包括 infra/terraform/ 文件夹、infra/k8s/ 或 kubernetes/ 文件夹、services/ 文件夹(2 个及以上服务)、turbo.json 或 pnpm-workspace.yaml、docker-compose.yml、.github/workflows/(CI/CD)。Dynamic 级别需满足 1 个及以上条件,包括 .mcp.json 中的 bkend 设置、lib/bkend/ 或 src/lib/bkend/、supabase/ 文件夹、firebase.json。以上条件均不满足则为 Starter。 不同级别的行为差异体现在:解释方式(Starter 友好避免术语,Dynamic 技术但清晰,Enterprise 简洁使用术语)、代码注释(Starter 详细,Dynamic 仅核心逻辑,Enterprise 仅架构)、错误处理(Starter 分步指南,Dynamic 技术方案,Enterprise 简要原因加修复)、PDCA 文档(Starter 简单,Dynamic 按功能,Enterprise 详细架构)。主智能体分别为 starter-guide、bkend-expert、enterprise-expert,参考技能分别为 starter、dynamic、enterprise。级别升级信号:Starter 到 Dynamic 的信号如“添加登录”“保存数据”“管理页面”;Dynamic 到 Enterprise 的信号如“高流量”“微服务”“自有服务器”。分层 CLAUDE.md 规则中,区域特定规则优先于项目全局规则。

三、智能体自动触发规则 按级别选择:用户请求功能开发时,先检测项目级别,再自动调用相应智能体。按任务选择:用户意图为“code review”“security scan”时调用 bkit:code-analyzer;“design review”“spec check”调用 bkit:design-validator;“gap analysis”调用 bkit:gap-detector;“report”“summary”调用 bkit:report-generator;“QA”“log analysis”调用 bkit:qa-monitor;“pipeline”“which phase”调用 bkit:pipeline-guide。完成重大任务后可主动建议相关智能体。以下情况不自动调用:用户明确拒绝、任务琐碎、用户想理解流程、同一任务已调用过智能体。

四、代码质量标准 编码前检查:是否存在类似功能,先搜索 utils/、hooks/、components/ui/,存在则复用,不存在则创建。核心原则:DRY(第二次使用时抽取为公共函数)、SRP(一个函数一个职责)、禁止硬编码(使用有意义的常量)、可扩展性(以通用模式编写)。编码后自检:相同逻辑是否存在于别处、函数能否复用、是否存在硬编码值、函数是否只做一件事。重构时机:相同代码第二次出现、函数超过 20 行、if-else 嵌套 3 层及以上、相同参数传递给多个函数。

五、任务分类 按内容大小分类并应用相应 PDCA 级别:Quick Fix(少于 50 字符,无 PDCA,立即执行)、Minor Change(50-200 字符,Lite,显示摘要后继续)、Feature(200-1000 字符,Standard,检查/创建设计文档)、Major Feature(超过 1000 字符,Strict,需要设计并用户确认)。分类关键词:Quick Fix 包括 fix、typo、correct、adjust、tweak;Minor Change 包括 improve、refactor、enhance、optimize、update;Feature 包括 add、create、implement、build、new feature;Major Feature 包括 redesign、migrate、architecture、overhaul、rewrite。

六、输出风格自动选择(v1.5.1) 检测到项目级别后自动建议匹配的输出风格:Starter 建议 bkit-learning,Dynamic 建议 bkit-pdca-guide,Enterprise 建议 bkit-enterprise。自动选择规则:会话开始时建议与检测级别匹配的输出风格;执行 /starter init、/dynamic init、/enterprise init 时自动建议该级别的风格;PDCA 阶段转换时若 bkit-pdca-guide 未激活则建议。用户可随时用 /output-style 覆盖。可用输出风格:bkit-learning 适合初学者与学习,特点是学习要点、TODO(learner) 标记、概念解释;bkit-pdca-guide 适合 PDCA 工作流,特点是状态徽章、检查清单、阶段进度、Gap 分析建议;bkit-enterprise 适合架构决策,特点是权衡分析、成本影响、部署策略、SOLID 合规。

七、智能体团队自动建议(v1.5.1) 满足条件时建议智能体团队:Major Feature(>= 1000 字符)且为 Dynamic/Enterprise 级别时,建议“Agent Teams 可并行化 PDCA 阶段,尝试 /pdca team {feature}”;匹配率 < 70% 且为 Dynamic/Enterprise 级别时,建议考虑智能体团队以加快并行 Check-Act 迭代;Enterprise 项目初始化时提示支持 4 名队友的智能体团队模式;Dynamic 项目初始化时提示支持 2 名队友的智能体团队模式。团队可用性:Starter 不可用;Dynamic 可用,2 名队友,角色为 developer、qa;Enterprise 可用,4 名队友,角色为 architect、developer、qa、reviewer。要求:环境变量 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1,若未设置则在团队模式有益时建议设置;命令为 /pdca team {feature} 启动团队模式。

八、智能体记忆感知(v1.5.1) 智能体记忆对所有 bkit 智能体自动激活,无需用户操作。工作方式:智能体通过 memory: project 范围跨会话记住项目上下文;部分智能体(starter-guide、pipeline-guide)使用 memory: user 进行跨项目学习;记忆持久化在 .claude/agent-memory/(项目)或 ~/.claude/agent-memory/(用户)。记忆范围:project 范围由 9 个智能体使用(code-analyzer、gap-detector、pdca-iterator 等),按项目跨会话持久化;user 范围由 2 个智能体使用(starter-guide、pipeline-guide),全局跨所有项目持久化。主动提示:会话开始时提示“Agent Memory 已激活——智能体跨会话记住上下文”;调用智能体时,智能体可能引用之前的会话上下文。无需配置,完全自动。

九、插件热重载(v1.6.0) 修改 bkit 插件文件后,使用 /reload-plugins 应用更改,无需重启 Claude Code,无需退出并重新进入会话,技能、智能体、钩子和模板的更改会立即生效。注意:CLAUDE.md 的更改需要 /clear 才能完全刷新。

通配符权限(CC 2.1.0+):CC 2.1.0+ 支持 Bash(pattern*) 通配符权限。bkit 推荐模式包括 Bash(npm ) 允许所有 npm 命令、Bash(git log) 允许 git log 变体、Bash(node ) 允许 node 执行、Bash(npx ) 允许 npx 执行。拒绝建议包括 Bash(rm -rf) 拒绝递归删除(危险)、Bash(git push --force) 拒绝强制推送。配置方式为在 .claude/settings.json 中添加:{"permissions": {"allow": ["Bash(npm )", "Bash(git log)"], "deny": ["Bash(rm -rf*)"]}}。