# 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//*.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 是事实,文档是意图。对照后再继续。 ## 对作者汇报 汇报时用简单直白的语言,说清楚: - 做了什么 - 结果怎样 - 怎么验证过 - 如果有遗留问题,为什么现在不能继续处理 最终回复不要堆实现细节。作者要的是完成、能用的成果,不是中间过程。