dev-manager-tauri/AGENTS.md
lanrtop 0552180e45 docs(blueprint): agent 友好基础设施方案 + 炼境自身接入包 + 蓝图规范 v1.8.0
- CONVENTIONS.md v1.8.0:蓝图定位为意图层,files 字段变可选,status/progress 从 git 推断
- 新增 agent-infrastructure 模块(concept):接入包 v2,扫描→确认→生成三件套
- AGENTS.md.tmpl 注入四支柱 + T1-T4 防腐元规则
- 炼境自身接入自己的包:AGENTS.md + docs/ai-context/ + .claude/rules/
- docs/templates/ 三件套模板:agents-meta-rules / project-brief / project-context
2026-06-29 16:38:45 +09:00

4.8 KiB
Raw Permalink Blame History

炼境 — AI Agent 上下文

本文件遵循 AGENTS.md 开放规范,供 Claude Code、Qwen Code、Cursor、Copilot 等 AI 工具读取。

项目定位

Git 多空间开发管理器,同时也是项目 Agent 化改造引擎。 以蓝图为神经系统,以 Claude 为智能层,感知所管理项目的功能运转、质量状态与成长方向。 炼境本身亦被纳入其中,形成可自我进化的开发智能闭环。

技术栈

  • 前端React 19 + TypeScript + TailwindCSS + React Query + Zustand + React Flow
  • 后端Rust + Tauri v2 + SQLiterusqlite + r2d2
  • MCP Server内嵌于 Tauri 进程HTTP供 Claude Code 调用炼境数据
  • 包管理pnpm禁止 npm/yarn/npx/bun

核心开发约束

包管理pnpm 唯一,禁止 npm / yarn / npx / bun。

TypeScript:优先 TypeScript避免 any;函数/变量 camelCase组件 PascalCaseasync/await不用裸 Promise 链try/catch 不吞异常。

Rust 业务函数:禁止在函数内部调用 pool().get(),连接由调用方传入(依赖注入,便于 in-memory DB 测试。Tauri command 层负责获取连接并调用(薄包装,无需测试)。

架构速查

src/lib/commands.ts              所有 Tauri command 的前端封装(唯一调用入口)
src-tauri/src/commands/          Rust 后端实现(每功能一个 .rs 文件)
src-tauri/src/db.rs              SQLite 建表 + migration 逻辑
src-tauri/src/mcp_server.rs      内嵌 MCP Serveragent 调用炼境的入口)
src-tauri/src/mcp_inject.rs      MCP 配置注入(写入被管理项目的 .claude/settings.json
src-tauri/resources/onboarding/  接入包分发模板AGENTS.md/lefthook/git-workflow
.blueprint/                      项目蓝图manifest + 模块详情 + 任务卡)
docs/ai-context/                 AI 上下文文档(速查卡、契约映射)
docs/templates/                  炼境接入包模板草案(设计层)

关键约定

  1. 新增 Tauri command → 必须同步更新 src/lib/commands.ts,否则前端无法调用
  2. SQLite 新增表或字段 → 必须在 db.rsmigrate() 里补 migration 语句,否则旧版本升级后启动报错
  3. 修改接入包模板(resources/onboarding/)→ 检查 docs/templates/agents-meta-rules.md 是否需要同步

多 AI CLI 协作

本项目可由多个 AI CLI 协同。交接时附上:

已完成:<修改了哪些文件 + 核心决策>
待验证:<需要对方确认的地方>
约束继承:<影响后续工作的关键限制>

Agent 友好工程四支柱

修改代码前,确认这个项目满足四支柱:

可导航:凭文件名/目录名可在 30 秒内定位某功能的代码。通用能力有独立家,不寄生在业务模块下。

可推理:公共类型只在一处定义。改一个接口,类型检查能报出所有受影响处。

可验证typecheck / lint / test 各有一条命令真能跑。关键路径有冒烟测试。

可记忆:规则按场景注入(不是一份巨型文档)。决策只写"为什么",代码自己回答"是什么"。


文档防腐元规则

做任何改动时,判断它属于哪类变更:

T1 外部契约变更(最高优先级)

其他代码、服务、或 agent 依赖的定义——Tauri command 接口、MCP 接口、数据库 schema、共享类型。 → 查 docs/ai-context/project-context.yaml 找到对应文档,检查并同步更新。

T2 架构边界变更

模块划分、目录结构、依赖方向、命令分组变化。 → 检查本文件架构速查和 docs/ai-context/project-brief.md 是否需要同步。

T3 工具链变更

引入或替换库、Tauri 版本升级、Rust 依赖变更。 → 更新本文件技术栈声明;更新 docs/ai-context/project-context.yaml

T4 常驻上下文过期

本文件AGENTS.mddocs/ai-context/project-brief.md 描述的现实已经改变。 → 立即更新。这两份文档常驻 agent 上下文,过期危害最大。

不触发检查

内部重构、性能优化、bug fix外部行为不变、测试文件、UI 样式调整。


文档防腐铁律

  • 文档只写稳定的:为什么、铁律、意图、架构决策。
  • 易变的(端口、表名、命令清单)交给工具自省,不写死进常驻文档。
  • 单一事实来源:两处说同一事时,删掉派生的那处。
  • 两份文档打架时,信代码,不信文档。

定期防腐自查

  • 技术栈声明还和 package.json / Cargo.toml 一致吗?
  • project-brief.md 最近 30 天有没有随架构改动更新?
  • src/lib/commands.ts 的封装覆盖了所有 src-tauri/src/commands/ 下的 command 吗?
  • 接入包模板(resources/onboarding/)和 docs/templates/ 内容一致吗?