用途:这是一项编码规范技能,核心要求是仓储(repository)中不得包含业务逻辑。仓储被视为持久化网关,只按调用方指令持久化和读取领域实体。适用于代理创建、修改、审查或解读仓储实现时。
主要能力:明确仓储职责边界——在领域类型与持久化表示之间做技术映射、执行创建/更新/查找/删除、把查询参数映射为持久化查询。同时列出禁止项:不得校验业务规则或领域不变量、不得基于读写数据做领域决策、不得转换领域状态、不得按调用方未表达的业务条件过滤结果、不得触发代表业务行为的副作用。业务逻辑应归属领域实体、聚合根、领域服务或业务逻辑入口点。
使用方式:技能给出检测流程——阅读仓储实现,逐个检查 create、update、find、delete 及自定义查询方法,寻找依赖业务规则的条件分支、超出持久化映射的数据转换、隐式过滤和副作用;并给出审查问题,如该方法是否校验业务规则、是否转换领域状态、是否按调用方未指定的业务条件过滤、是否触发业务副作用。若发现业务逻辑,应抽取到实体、领域服务或入口点。
与执行上下文配合:当项目中启用 business-logic-entry-point-execution-context 技能时,仓储从执行上下文获取事务而非作为参数传入;当上下文事务为 undefined 或 null 时,仓储须为该操作创建独立事务。其他规则不变。
适用场景:采用领域驱动设计、需要保持仓储层纯净的代码库;代码审查与重构;代理自动生成或修改仓储代码时。
限制:资料未提供该技能的安装命令、支持语言、平台或收费信息,暂未提供。示例使用 TypeScript 与 Prisma,但技能本身不限定具体技术栈。