CODELY.md
CODELY.md 是一个持久化记忆文件,为 Tuanjie AI 提供项目特定的指令和上下文。其内容会在每次对话时自动加载到系统提示词中,确保 Tuanjie AI 始终掌握项目的最新指引。
可以将其理解为 AI 在每次会话开始时都会阅读的"项目指南"。
工作原理
CODELY.md 采用层级化加载模型。系统按以下顺序查找两个位置:
| 优先级 | 位置 | 作用范围 |
|---|---|---|
| 1 | <workspace_root>/CODELY.md | 项目级 — 仅针对当前项目 |
| 2 | ~/.codely-cli/CODELY.md | 全局级 — 跨所有项目共享 |
两个文件都会被加载并拼接在一起(项目级在前,全局级在后)。空文件会被自动跳过。
内容注入方式
每个文件的内容在追加到系统提示词之前,会被包裹在上下文标记中:
--- Context from: CODELY.md ---
(你的文件内容)
--- End of Context from: CODELY.md ---
--- Context from: ~/.codely-cli/CODELY.md ---
(你的全局文件内容)
--- End of Context from: ~/.codely-cli/CODELY.md ---
显示名称使用相对于工作区根目录的相对路径,因此你可以清楚地知道每个内容块来自哪个文件。
快速上手
通过/init 命令创建
当项目根目录下不存在 CODELY.md 时,新建对话面板会显示 "init" 的气泡。点击它(或输入 /init general 或 /init unity)会发送一个提示,指示 AI 分析你的代码库并自动生成 CODELY.md 文件。
生成的文件通常包括:
- 项目概述和用途
- 关键技术和框架
- 构建、测试和 lint 命令
- 仓库结构
- 开发规范
- 常见工作流
生成后,由于 CODELY.md 已存在,"Init" 气泡会消失。
手动创建
创建项目级 CODELY.md
在项目根目录下创建 CODELY.md 文件:
# 项目指南
## 概述
这是一个使用 npm workspaces 的 TypeScript 单仓库。
## 编码规范
- 仅使用 ESM 导入(不使用 CommonJS 的 `require`)
- 遵循 2 空格缩进
- 所有函数必须有显式返回类型
## 测试
- 单元测试使用 Vitest
- 运行测试命令:`npm run test`
创建全局 CODELY.md
在全局 Codely 文件夹(~/.codely/CODELY.md)中创建 CODELY.md 文件,用于适用于所有项目的偏好设置:
# 全局偏好
- 始终使用中文回复
- 优先使用函数式编程模式
- 为导出的函数添加 JSDoc 注释
验证是否生效
创建或编辑 CODELY.md 后,文件会在下次配置重新加载时自动加载。你可以通过向Tuanjie AI提问一个依赖你所写指令的问题来验证是否生效。
记忆工具(Save Memory)
AI 可以使用内置的 Save Memory 工具主动保存事实到 CODELY.md。这在以下情况发生:
- 你明确要求 AI 记住某些内容(例如,"记住我们生产环境使用 PostgreSQL")
- AI 识别出值得为未来会话保留的、清晰简明的事实
记忆范围
记忆工具支持两种范围:
| 范围 | 文件路径 | 用途 |
|---|---|---|
global | ~/.codely/CODELY.md | 个人偏好、跨项目标准 |
project | <workspace>/CODELY.md | 项目特定的事实和指令 |
记忆区段格式
保存的记忆会追加到专用区段标题下:
## Codely Added Memories
- 本项目生产环境使用 PostgreSQL 15
- API 速率限制为每分钟 100 次请求
- 提交前始终运行 `npm run lint`
该工具会自动:
- 如果
## Codely Added Memories标题不存在,则自动创建 - 在标题下以列表项形式追加新条目
- 保留文件中的所有现有内容
记忆工具仅保存简短、自包含的事实。不适用于长篇文档或会话特定的上下文。如果不确定,AI 会询问 "需要我帮你记住这个吗?"
手动重新加载
如果在会话中途编辑了 CODELY.md,AI 不会自动感知变更。要 重新加载而无需重启:
ConfigHandler.updateUserMemory()方法会仅重新读取层级化记忆文件,而无需完整重新加载配置。- 实际操作中,触发配置重新加载(例如切换配置文件再切回来)即可重新加载
CODELY.md。
最佳实践
推荐做法
- 保持简洁 — 整个文件内容会注入到每次系统提示词中。避免用大量代码示例或冗长说明填充。
- 聚焦于"为什么"和"怎么做" — 记录 AI 无法从代码中直接推断的规范、决策理由和工作流步骤。
- 使用清晰的结构 — 使用 Markdown 标题(
##)和列表来组织内容,方便 AI 解析各个区段。 - 提交到代码仓库 — 项目级
CODELY.md应纳入版本控制,让整个团队受益。 - 使用记忆工具保存增量事实 — 让 AI 追加小事实,而不是每次新增偏好都手动编辑文件。
避免做法
- 不要复制代码 — 不要粘贴大段代码片段;AI 可以直接读取文件。
- 不要存放密钥 —
CODELY.md会被 注入到提示词中,可能在日志中可见。切勿存储 API 密钥或凭据。 - 不要用于会话特定上下文 — 会话上下文请使用对话本身。
- 不要写得过长 — 过长的文件会在每次请求中消耗上下文窗口预算。
示例:完整的 CODELY.md
# 我的项目 — AI 助手指南
> 最后更新:2025-01-15
## 1. 项目概述
基于 Node.js、Express 和 PostgreSQL 的电商后端服务。
使用 npm workspaces 管理的单仓库。
## 2. 常用命令
- **安装依赖:** `npm install`
- **构建:** `npm run build`
- **测试:** `npm test`
- **Lint:** `npm run lint`
- **格式化:** `npm run format`
## 3. 编码规范
- TypeScript 严格模式,仅使用 ESM
- 2 空格缩进,单引号,分号
- 所有导出函数必须有显式返回类型
- 使用命名导出(不使用默认导出)
- 错误处理:使用自定义 `AppError` 类
## 4. 架构
- `packages/api/` — REST API 服务器
- `packages/shared/` — 共享类型和工具
- `packages/db/` — 数据库模型和迁移
- `packages/cli/` — 管理任务 CLI 工具
## 5. 测试
- 单元测试:Vitest(`*.test.ts`)
- E2E 测试:`integration-tests/`
- 提交前始终运行 `npm test`
## Codely Added Memories
- 生产数据库是 AWS RDS 上的 PostgreSQL 15
- 预发布环境地址是 https://staging.example.com