Files

15 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!-- dever-language:start -->
# Dever 开发规则
每次开发、修改或审查前,在项目根目录执行 `dever skill path .`,完整读取返回目录中的 `SKILL.md`、`references/development.md` 和本次工作相关的参考文件。使用项目对应版本的规则;命令缺失时按 README 安装,不猜语法,不用 `dever-go` 替代。
- 默认只实现当前接口和语法。除非用户明确要求,禁止添加旧参数、旧配置、旧接口的兼容分支、别名或备用实现。改接口时同步修改本项目调用方,删除本次废弃路径。锁定编译器版本不等于保留兼容代码。
- 修改前先查实际调用链和已有能力。复用现成实现;不重复手写解析、分页、JSON 拼装或鉴权,不添加空转发层,不按行数或函数数量机械拆文件。函数按完整业务职责组织。
- 源码放 `module/<组件>/<领域>/`,只创建需要的 `app/domain/model/api/port/adapter/job`。普通 CRUD 用 Model 与 REST;App 编排业务,Domain 写业务规则,外部能力经 Port/Adapter。跨领域只调用 App,不建 `utils/common/service` 杂物目录。
- 不写 `main.dever`、`package`、`import` 或 `expose`。API、CMD、Job 是入口。保持项目源码格式一致;Markdown 的说明必须与代码一致。
- 部署配置只放 `config/setting.json`,不增加环境变量配置,不写死真实地址或凭据。业务数据放 Model;用户、租户和权限来自可信上下文,禁止按特殊账号或租户 ID 开权限特例。正常字面量和明确业务常量可以保留。
- 禁止假调用、吞错、假成功、弱化测试、擅自修改接口基线或关闭检查;不把业务搬到第三方语言来绕过约束。只清理本次引入或废弃的代码,保留无关修改。
- 修改后运行范围内的 `dever fmt . --check`、`dever check .` 和定向测试。测试放 `test/<组件>/<领域>/`,外部能力使用 Port fake;例如 `dever test . --filter news.article`。每例默认 60 秒,可用 `--timeout-ms` 调整。遵守用户对全量测试、服务、真实数据库和压测的限制。
- 如实报告验证范围:`check` 不运行程序,fake 不证明真实服务可用,规则写在 AGENTS 中不等于编译器已全部强制检查。`run/build` 不隐式联网;未经要求不提交或推送 Git。
<!-- dever-language:end -->