feat: unify source and skills for Dever 0.1.2 installation

This commit is contained in:
Antigravity committed 2026-10-05 02:49:17 +00:00
1 parent a2e0436ed4
commit 19f122b4b4
47 files changed
+1951 -63

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
/data/
/hello-app
+14
View File
@@ -0,0 +1,14 @@
# Dever 应用开发
在本项目运行 `dever skill path .`,读取返回目录的 `SKILL.md` 和 `references/development.md`,使用与项目版本匹配的规则。AI 尚未接入 skill 时,可用 `dever skill install <新的AI技能目录>/dever-language` 创建稳定入口。这里使用 Dever 语言,不是 Go Dever 框架;命令缺失时按 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。
+24
View File
@@ -0,0 +1,24 @@
# Dever 应用
这是无需数据库、鉴权或第三方工具的最小 CMD 项目。
在项目目录运行:
```sh
dever check .
dever fmt . --check
dever test .
dever run . -- hello.greeting.greet '{"name":"Dever"}'
dever build . --output hello-app
./hello-app hello.greeting.greet '{"name":"Dever"}'
```
问候结果为 `Hello, Dever`。输入由 `api` 的 CMD 声明解析并传给 `app.greet`;业务不读取环境变量,配置在 `config/setting.json`。
以上命令适用于这个最小模板;项目扩大后按改动选择验证,`dever test .` 会执行整个项目的应用套件。`check` 静态执行与 run/build 相同的应用入口可达性及冗余硬检查,无需准备运行资源;它不执行应用,不能代替运行或业务验收。
AI 开发规范见本项目 `AGENTS.md`。运行 `dever skill path .` 获取项目对应版本的完整 `dever-language` skill,开发前读取其中 `references/development.md`。AI 的稳定 skill 入口可用 `dever skill install <新的AI技能目录>/dever-language` 安装;核心与配套 skill 通过 `dever update` 同步更新,已锁定版本的项目仍使用自己的版本。
首次安装入口为 `https://git.dever.cc/shemic/dever/install`,源码仓库为 `ssh://git@git.dever.cc:2222/shemic/dever.git`。安装前确认该站已发布对应平台的脚本和签名包;部署完成后可用 `curl -fsSL https://git.dever.cc/shemic/dever/install | bash`,机器安装需要管理员权限。仓库可访问不代表二进制已经发布。
普通 `.dever` 与 Markdown `.dever.md` 共享语言规则。用 `dever new <新目录> --markdown` 创建 Markdown 项目。目录必须不存在,生成器不会覆盖已有项目。
@@ -0,0 +1,5 @@
{
"log": {
"level": "info"
}
}
@@ -0,0 +1 @@
cmd greet = app.greet
@@ -0,0 +1,17 @@
# 问候命令
将命令行 JSON 输入交给 App。
- 包:`hello.greeting.api`
- 公开类型:无
- 公开方法:无
- 使用:无
## greet
声明问候命令。
- 声明:`cmd greet`
```dever
{{source}}```
@@ -0,0 +1,3 @@
greet(name: Text) (message: Text) {
message = "Hello, " + name
}
@@ -0,0 +1,23 @@
# 问候
提供可复用的问候用例。
- 包:`hello.greeting.app`
- 公开类型:无
- 公开方法:
- `greet`
- 使用:
- `hello.greeting.greet(name)`
## greet
根据名字生成问候。
- 函数:`greet`
- 输入:
- `name: Text`:名字
- 输出:
- `message: Text`:问候
```dever
{{source}}```
@@ -0,0 +1,4 @@
greet() () {
message = app.greet("Dever")
assert_eq(message, "Hello, Dever")
}
@@ -0,0 +1,19 @@
# 问候测试
检查问候用例的输出。
- 包:`hello.greeting.greet`
- 公开类型:无
- 公开方法:无
- 使用:无
## greet
调用真实 App 并断言输出。
- 函数:`greet`
- 输入:无
- 输出:无
```dever
{{source}}```