feat: release Dever 0.1.4 with enforceable project guidance
This commit is contained in:
1 parent
201bdee372
commit
89629c2197
86 files changed
+2798
-338
No files matched your search
@@ -1,14 +1,14 @@
|
||||
# Dever 应用开发
|
||||
<!-- dever-language:start -->
|
||||
# Dever 开发规则
|
||||
|
||||
在本项目运行 `dever skill path .`,读取返回目录的 `SKILL.md` 和 `references/development.md`,使用与项目版本匹配的规则。AI 尚未接入 skill 时,可用 `dever skill install <新的AI技能目录>/dever-language` 创建稳定入口。这里使用 Dever 语言,不是 Go Dever 框架;命令缺失时按 README 的安装入口处理,不猜语法或用 dever-go 替代。
|
||||
每次开发、修改或审查前,在项目根目录执行 `dever skill path .`,完整读取返回目录中的 `SKILL.md`、`references/development.md` 和本次工作相关的参考文件。使用项目对应版本的规则;命令缺失时按 README 安装,不猜语法,不用 `dever-go` 替代。
|
||||
|
||||
- 源码放在 `module/<组件>/<领域>/`,按职责使用 `app`、`domain`、`model`、`api`、`port`、`adapter`、`job`;只创建实际需要的角色。
|
||||
- 不写 `main.dever`、`package`、`import` 或 `expose`。API/CMD/Job 是入口;跨领域调用 App。
|
||||
- 部署配置只用 `config/setting.json`,不增加环境变量配置或写死真实地址、凭据。用户、租户和权限来自可信上下文,不用特殊账号 ID 判断权限;正常字面量与明确业务常量可以保留。
|
||||
- 修改前先读实际调用链并查找复用点。文件按内聚业务主题组织,函数须有业务含义、不变量、实际复用或隔离复杂流程的作用;不按行数拆分,不机械地一个函数一个文件,不建 `utils/common` 等通用桶。
|
||||
- 普通 CRUD 用 Model 与 REST,增加业务合同或编排才写 App,不叠加空转发层。API 只声明入口,Domain 保存业务规则,外部能力经 Port/Adapter。
|
||||
- 不用假调用、吞错、假成功、修改接口基线、弱化测试或转移到第三方语言绕过检查。只清理本次引入或废弃的代码,保留无关修改。
|
||||
- 保持当前项目源码格式一致。Markdown 源码只编译顶层 `dever` 围栏,声明文档必须与源码一致。
|
||||
- 修改后执行范围内的 `dever fmt . --check`、`dever check .` 和适当验证。check 静态执行与 run/build 相同的应用入口可达性及冗余硬检查,不准备外部依赖或执行应用;报告实际覆盖范围,不能把 check 成功当作全部验收。
|
||||
- 普通测试位于 `test/<组件>/<领域>/`,用文件同名零输入零输出函数,外部能力用 Port fake。`dever test .` 会运行全部应用测试,已有大项目不默认全量执行;新模板的小套件可完整验证。遵守用户对生产数据、服务、真实数据库和压测的限制。
|
||||
- 安装、升级、依赖准备与业务运行分开;`run/build` 不隐式联网。没有用户要求,不提交或推送 Git。
|
||||
- 默认只实现当前接口和语法。除非用户明确要求,禁止添加旧参数、旧配置、旧接口的兼容分支、别名或备用实现。改接口时同步修改本项目调用方,删除本次废弃路径。锁定编译器版本不等于保留兼容代码。
|
||||
- 修改前先查实际调用链和已有能力。复用现成实现;不重复手写解析、分页、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 -->
|
||||
@@ -15,9 +15,9 @@ dever build . --output hello-app
|
||||
|
||||
问候结果为 `Hello, Dever`。输入由 `api` 的 CMD 声明解析并传给 `app.greet`;业务不读取环境变量,配置在 `config/setting.json`。
|
||||
|
||||
以上命令适用于这个最小模板;项目扩大后按改动选择验证,`dever test .` 会执行整个项目的应用套件。`check` 静态执行与 run/build 相同的应用入口可达性及冗余硬检查,无需准备运行资源;它不执行应用,不能代替运行或业务验收。
|
||||
这些命令适用于最小模板。项目扩大后用 `dever test . --filter 组件.领域` 运行相关测试;不带筛选会执行全部测试。`check` 检查代码、配置和无法从业务入口调用到的代码,不运行应用,不能代替业务验收。
|
||||
|
||||
AI 开发规范见本项目 `AGENTS.md`。运行 `dever skill path .` 获取项目对应版本的完整 `dever-language` skill,开发前读取其中 `references/development.md`。AI 的稳定 skill 入口可用 `dever skill install <新的AI技能目录>/dever-language` 安装;核心与配套 skill 通过 `dever update` 同步更新,已锁定版本的项目仍使用自己的版本。
|
||||
AI 开发规则已写在 `AGENTS.md`。AI 开始任务前运行 `dever skill path .`,读取对应版本的完整指引。已有项目或需要刷新规则时,在项目根目录执行 `dever skill install`,无需指定目录;它只更新 Dever 规则块,保留其他内容。`dever update` 同步更新核心和 skill,锁定版本的项目仍使用自己的版本。
|
||||
|
||||
首次安装使用 `curl -fsSL https://git.dever.cc/shemic/dever/raw/branch/main/install | bash`。开发机须为 Linux x86_64、glibc 2.39+,并具备 Bash、curl、Python 3.9+、支持 Ed25519 的 OpenSSL 和管理员权限;非 root 用户需要 sudo。完整条件见 [安装指引](https://git.dever.cc/shemic/dever/src/branch/main/skills/references/install.md)。下载安装无需 token 或项目配置。
|
||||
|
||||
|
||||
Reference in new issue
Block a user