Files
llm-wiki/workbench/AGENTS.md
T
2026-07-12 21:26:08 +08:00

111 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# llm-wiki-agent Codex 协作规则
## 第一原则
不要考虑时间成本,code is cheap,我们来自于未来。
做方案和实现时,不要为了省事降低标准。优先选择长期正确、可维护、符合产品方向的做法。
## 必读文档
动手前先读 [PRODUCT.md](PRODUCT.md)。它是项目的意图、边界、路线和决策来源。
文档、代码、约定互相冲突时,以 `PRODUCT.md` 为准。若需要改变产品决策,先说明冲突点和建议改法,等作者确认后再改文档和代码。
## Codex 工作方式
每次开始任务前,先给自己定义完成标准:做到什么程度才算完成、需要怎么验证、哪些情况需要停下来找作者确认。
默认直接推进任务,不为了普通实现细节反复询问作者。开始动手前用简短语言说明:
- 打算改哪些文件
- 为什么这么改
- 可能影响哪些部分
- 准备用什么方式验证
只有遇到下面情况才停下来等作者拍板:
- 要新增 npm package、Skill、系统依赖或新的配置来源
- 要做 `PRODUCT.md` 没规划过的能力
- 当前阶段验收没过,却需要动下一阶段的代码
- 发现现有实现和 `PRODUCT.md` 的产品决策冲突
- 需要修改外部库、用户目录、模型凭证或不可逆数据
## 强约束
1. 不要自由发挥。所有实现都要能对应到 `PRODUCT.md`、阶段设计文档或用户当前请求。
2. 不主动跳阶段。阶段 N 验收不过,不动阶段 N+1 的代码。
3. 不凭印象回答事实问题。`pi-agent`、Skill、外部库、浏览器行为、文件格式等事实,能查源码就查源码,能查官方文档就查官方文档。
4. 不直接修改 `node_modules/`。极端情况下需要补丁时,先说明原因和替代方案。
5. 不把 API key 或模型凭证写进本项目配置。模型凭证由 `~/.pi/agent/auth.json` 管理。
6. 不混用包管理器。本项目使用 npm。
7. 不引入规划外依赖。确实需要时,先问它是否属于 `PRODUCT.md` 已规划范围。
## 验证要求
向作者汇报前,尽一切可能实际验证结果。
- 写代码后至少运行相关检查;能跑全量就跑全量。
- Web 界面改动要启动应用,打开页面,看渲染,点关键流程。
- 脚本或接口改动要用代表性输入跑一遍,检查输出。
- 有明显边界情况时,至少模拟一个边界情况。
- 发现问题就修,再重新验证。
不要把未经验证的初稿交给作者。只有确认正常,或确实遇到需要作者介入的障碍,才汇报。
## 项目当前阶段
详细进度、阶段验收、commit 表以 `PRODUCT.md` 第 10 节为准(这里只放快速概览,不再自存详细状态,避免两处不同步)。
当前基线已到阶段 4.7(图谱交互地基重构完成)。详细进度、阶段验收、commit 表以 PRODUCT.md §10 为准;不要在本文件重复维护完整状态。
❗ 开发主场在**主仓库 monorepo**(本目录是其 `workbench/` 子目录):图谱引擎在 `packages/graph-engine/``npm run dev` 从 monorepo 根执行。原独立 llm-wiki-agent 仓库已只读归档(处置留品牌阶段,见 ADR-20)。
阶段一 / 二 / 三 / 3.5 / 四 / 4.5 / 4.6 / 4.7 均已完成(详见 PRODUCT.md §10)。
## 关键路径速查
| 类型 | 值 |
|---|---|
| 一行启动 | `npm run dev`(从 monorepo 根,并行起前后端)|
| 后端端口 | `8787` |
| 前端端口 | `5180``strictPort: true` |
| 知识库默认根 | `~/llm-wiki/` |
| 外部知识库登记 | `~/.llm-wiki-agent/config.json` |
| 应用数据 | `~/.llm-wiki-agent/` |
| 会话目录 | `~/.llm-wiki-agent/sessions/<sha256-of-kb-path>/*.jsonl` |
| 模型凭证 | `~/.pi/agent/auth.json` |
| 后端代码 | `workbench/server/`Hono + pi-coding-agent SDK |
| 前端代码 | `workbench/web/`Vite + React + shadcn/ui |
| 共享图谱引擎 | `packages/graph-engine/`(工作台与 Skill 离线 HTML 同享)|
## 环境要求
Node 版本要求:`>=22.19.0`
仓库根用 `.mise.toml` / `.nvmrc` 锁定版本。开发和验证时优先使用项目锁定的 Node 版本。
## 恢复上下文
如果作者思路断了,或上下文经过压缩,不要急着问“做到哪里了”。
先读:
1. `PRODUCT.md`
2. 当前阶段设计文档
3. git log / git diff
4. 相关代码和测试
日志和 git 是事实,文档是意图。对照后再继续。
## 对作者汇报
汇报时用简单直白的语言,说清楚:
- 做了什么
- 结果怎样
- 怎么验证过
- 如果有遗留问题,为什么现在不能继续处理
最终回复不要堆实现细节。作者要的是完成、能用的成果,不是中间过程。