1
0
Files
DiAL/DEVELOPMENT.md

6.9 KiB
Raw Blame History

DiAL 开发入口

本文档是 DiAL 项目的开发入口,保留常用命令、全局规则和专题导航。详细架构、前端、后端、构建、测试和 checker 开发说明位于 docs/development/。用户使用说明见 README.mddocs/README.md

常用命令

命令 说明
bun install 安装依赖
bun run dev probes.yaml 启动双进程开发环境
bun run dev:server probes.yaml 仅启动后端 API server
bun run dev:web 仅启动 Vite dev server
bun run schema 生成 probe-config.schema.json
bun run schema:check 检查导出 schema 是否同步
bun run typecheck TypeScript 类型检查
bun run lint ESLint 和 Prettier 格式检查
bun test 运行全部测试
bun run check schema:check + typecheck + lint + test
bun run build 构建生产可执行文件
bun run verify check + build 完整验证
bun run release 跨平台发布打包
bun run clean 清理构建缓存与产物

质量门禁

代码变更必须按影响范围执行验证。常规变更优先运行:

bun run check

正式提交或影响构建、部署、发布、前后端集成的变更运行:

bun run verify

新增或修改配置 schema 时必须运行:

bun run schema
bun run schema:check

全局工程规则

  • 使用中文编写注释、文档和项目内交流内容。
  • 仅使用 bun 作为包管理器,禁止使用 npm、pnpm、yarn。
  • 运行工具使用 bunx,禁止使用 npx、pnpx。
  • 新增代码优先复用已有组件、工具和依赖库,不引入新依赖;确需新增依赖时先说明原因。
  • 后端优先使用 Bun 内置 API其次是 es-toolkit、主流三方库、项目公共工具最后才自行实现。
  • 前端样式优先使用 TDesign 组件、组件 props、TDesign CSS tokens、styles.css CSS 类,最后才自行开发组件。
  • 前端禁止组件内联 style、覆盖 TDesign 内部类名、使用 !important、硬编码色值。
  • 当前项目未上线,不需要为旧行为做向前兼容,除非用户明确要求。

包管理、依赖与提交

  • 仅使用 bun 安装依赖和运行项目脚本,锁文件为 bun.lock
  • 运行外部工具使用 bunx
  • 新增依赖前先确认 Bun 内置 API、es-toolkit、现有三方库和项目公共工具是否已满足需求。
  • Git 提交信息使用中文,格式为 类型: 简短描述
  • 提交类型限定为 featfixrefactordocsstyletestchore
  • 多行提交描述时,标题和正文之间空一行。

目录边界

目录 约定
src/server/ Bun 后端代码,不能 import src/web/HTML import 集成除外
src/web/ React Dashboard不能 import src/server/ 运行时实现
src/shared/ 前后端共享 TypeScript 类型
scripts/ 独立运行脚本,可 import 项目源码
tests/ 测试目录,结构镜像 src/
docs/user/ 用户使用、配置、部署、checker 和排障文档
docs/development/ 架构、开发规范、构建发布和测试质量
openspec/ OpenSpec 变更管理与规格文档

文档影响分析

每次代码变更都必须执行文档影响分析。

如果变更影响 更新
用户可见行为、配置、checker、expect、部署、状态模型 docs/user/ 对应文档
开发流程、架构、测试、构建发布、checker 开发机制 docs/development/CONTRIBUTING.md
项目定位、快速开始、核心能力列表、文档导航 README.md
开发入口、质量门禁、全局规则、专题导航 DEVELOPMENT.md
文档同步规则 docs/README.mdopenspec/config.yaml

如果无需更新文档,必须在收尾说明中说明原因。详细规则见 文档总览

OpenSpec 协作规则

  • 本项目 OpenSpec 使用 fast-drive schema变更文档只包含 design.mdtasks.md,不创建 proposal.mdspecs/*.md
  • design.md 是 scope、requirements、decisions、guardrails、execution direction 和 verification expectations 的 source of truth。
  • tasks.md 必须从 design.md 派生,一行一个 checkbox 任务。
  • 实现阶段按 tasks.md 顺序执行,完成后立即标记任务状态。

专题文档

主题 文档
开发文档索引 docs/development/README.md
架构与边界 docs/development/architecture.md
后端开发 docs/development/backend.md
前端开发 docs/development/frontend.md
Checker 开发机制 docs/development/checker-development.md
构建与发布 docs/development/build-release.md
测试与质量 docs/development/testing-quality.md
文档总览 docs/README.md
贡献指南 CONTRIBUTING.md

已知限制

当前不做告警通知、拨测目标动态增删、认证鉴权和分布式部署。