Files
vtj/AGENTS.md
“chenhuachun” 5f3290faec docs(repository): 新增仓库整体开发与协作指南
- 介绍 VTJ.PRO 项目结构及核心技术栈
- 规范跨包依赖管理和引用方式
- 明确环境配置及依赖安装流程
- 列出常用开发和构建命令及使用建议
- 规定代码风格和类型使用规范
- 说明测试策略和验收流程
- 强调生成物管理及高风险命令禁止范围
- 规范提交与发布流程,阐述提交信息规范与要求
2026-08-11 15:09:13 +08:00

5.0 KiB
Raw Blame History

AGENTS.md

本文件适用于整个仓库。若子目录以后增加了更具体的 AGENTS.md,以距离目标文件最近的说明为准。

项目概览

VTJ.PRO 是基于 Vue 3、TypeScript 和 Vite 的 AI 低代码引擎,核心能力包括 DSL 与 Vue SFC 双向转换、设计器、渲染器和多端应用输出。本仓库是 pnpm workspace由 Nx 驱动 Lerna 处理包间依赖和批量任务。

  • packages/:可发布的基础库、核心模型、解析/生成、渲染、设计器、UI 等 @vtj/* 包。
  • platforms/Web、H5、UniApp 及 PRO 平台集成包。
  • apps/应用、H5、UniApp、插件、物料等示例或交付工程。
  • dev/:主要的本地联调入口。
  • create-vtj/:项目脚手架及模板。
  • docs/VitePress 文档站和项目文档。
  • scripts/:仓库维护、同步和发布辅助脚本。

优先在已有包和既有模式中完成修改,不新增重复工具、抽象层或依赖。跨包引用使用包名和已有公开导出,不要通过相对路径穿透其他包的 src

环境与依赖

  • Node.js 必须为 20 或更高版本。
  • 使用仓库声明的 pnpm不要生成或提交 package-lock.jsonyarn.lock
  • 首次安装可运行 pnpm run setup;依赖已就绪时不要重复安装。
  • 新增内部依赖使用 workspace:~ 或目标包已有的 workspace 范围,并同步更新对应 package.json
  • 只有需求确实需要时才修改依赖;修改依赖后更新 pnpm-lock.yaml

开发命令

从仓库根目录运行:

pnpm run dev                 # dev/ Web 联调环境
pnpm run dev:uni             # dev/ UniApp 联调环境
pnpm run app:dev             # apps/app
pnpm run docs:dev            # 文档站
pnpm run build               # 构建所有非 private 包,耗时较长
pnpm run test                # 测试所有非 private 包
pnpm run test:all            # 包含 private workspace 的完整测试

日常修改优先做定向验证,避免无必要地运行全仓任务:

pnpm --filter @vtj/core test
pnpm --filter @vtj/designer exec vitest run tests/useOpenApi.test.ts
pnpm --filter @vtj/parser build
pnpm --filter vtj-plugin test

包名以对应目录的 package.json#name 为准。根目录没有统一的 lint 脚本,不要声称执行过 lint可使用现有 Prettier 配置检查或格式化本次改动文件。

代码约定

  • 遵循 .editorconfig.prettierrc2 空格、单引号、分号、LF、80 列、无尾随逗号。
  • TypeScript 保持类型明确,优先复用仓库已有类型;避免 any、无必要的类型断言和重复协议定义。
  • Vue 组件沿用相邻文件结构和命名;当前代码通常使用 Vue 3 Composition API 与 TypeScript。
  • 可复用公共能力放在所属包内,并从该包的 src/index.ts 或既有分层入口导出;不要为了单一调用创建公共抽象。
  • 保持 workspace 依赖方向与对应 package.json 一致。新增跨包 import 时,确认已声明依赖。
  • 用户可见文案保持现有语言和术语;不要顺手大范围改写无关文案或格式。
  • 不做无关重构,不覆盖工作区中已有的用户修改。

测试与验收

  • 测试使用 Vitest通常位于各 workspace 的 tests/ 下,文件名沿用 .test.ts.spec.ts
  • 修改行为或修复缺陷时,在所属包添加或更新最小回归测试,优先覆盖根因和边界条件。
  • Vue/DOM 测试沿用对应包的 Vitest 配置和现有 tests/setup.ts,不要另建测试框架。
  • 至少运行受影响包的定向测试;涉及公开导出、类型、构建配置或跨包依赖时,再运行受影响包的 build
  • 跨多个基础包的改动应按需运行 pnpm run testpnpm run build。若因耗时或环境限制未运行,交付时明确说明。
  • 报告验证结果时列出实际执行的命令和失败原因,不把既有失败描述为本次修改已通过。

生成物与高风险命令

不要手工修改或提交构建/缓存产物,包括 node_modules/dist/types/temp/coverage/.nx/docs/dist/ 及忽略规则中列出的生成目录。

CHANGELOG.md、各包 src/version.ts 和发布版本通常由 Lerna 发布流程维护;除非任务明确要求发布或改版本,否则不要修改。不要自行运行以下会清理、批量改写、提交、推送或发布的脚本:

  • cleanresetupdatesync
  • cicommit
  • prereleasepatchminorpublish

不要提交密钥、令牌、私有服务地址或本地环境文件。涉及网络、文件写入、代码执行和 AI 工具调用时,保留现有校验、错误处理与审批边界。

提交与交付

  • 除非用户明确要求,不创建提交、不推送、不发布。
  • 提交信息遵循 Conventional Commits例如 fix(parser): 修复数据源解析feat(agent): 支持附件预览
  • 最终交付说明应包含:修改内容、影响范围、已执行的验证、未验证项或已知风险。