Commit 74b4e36426e591a4c81bde4f7f526ceed04c84f8

Authored by yibo
1 parent c5f4ff31

docs(CLAUDE.md): 修掉「数据存储」整节 —— 有两个 data 根,之前当成一个写

顺着上一笔的判据(引用了不存在的东西)继续扫,扫出的不是零星笔误,是一处结构性失真。

事实(按绝对路径解析源码里的 path.resolve(__dirname, ...),不是数字面量 ——
数字面量会错,path-resolver.js 比 db 文件深一层,同样的 '../../../data' 落点不同):

  仓库内 <repo>/data/    — 11 个模块(company / okr / graph / devloop / schedule / pipeline …)
  仓库外 <repo>/../data/ — 3 个模块(skill-db、user-db、benchmark-db,ArenaSK 时代遗留)

原文把六条全挂在扁平的 `data/` 前缀下,读的人只会理解成仓库内一个根。这不是抠字眼:
备份 / 迁移 / 换机器时漏掉仓库外那半边,skill、用户、benchmark 数据会**静默丢失**。

一并修掉的具体错误:
  - `data/benchmark.sqlite` → 实际文件名是 `benchmark_logs.sqlite`
  - `server/conversations/` → 该路径不存在。会话持久化实际有**两套**:
    ArenaSK/Innovator 侧在 `<repo>/conversations/`(config.conversationsDir),
    LemonBoss agent-chat 侧在公司态目录下(getConvDir → locator.companyStateDir)
  - 目录速查里的 `data/skills/` 改成 `<repo>/../data/skills/`,点明 `<repo>/data/skills/` 并不存在
  - 补上仓库内侧原本一条没列的 graph.sqlite / companies/ / okr/ / logs/ / agents/
  - 每个库补上真实的 env 覆盖名(SKILLS_DB_PATH / USERS_DB_PATH / BENCHMARK_DB_PATH / GRAPH_DB_PATH)

新写进去的每一条路径与每一个 env 名都用脚本核过存在性(10 路径 + 5 env 全 ✅)。
docs/README.md 的 markdown 链接同批扫过,零死链。
npm run test:unit 1057/1057 绿。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Showing 1 changed file with 26 additions and 7 deletions
CLAUDE.md
... ... @@ -87,7 +87,7 @@ npm run okr:migrate # goals → okr 存量迁移
87 87 | `server/src/tools/` | Master Agent 可调用的工具(call-agent, marketplace, orchestrate, train-skill, …) |
88 88 | `web/src/views/` | 页面:AgentChat, AgentList, CompanyDashboard, GraphConsole, JobsPanel, OkrDashboard, PipelineEditor, QuotaMonitor, SkillsMarket, TaskTimeline, TemplateAgents + DevLoop 四页(Dashboard / Projects / NewRequirement / Ops) |
89 89 | `packages/` | `acp-core`, `agent-core`, `evolution`, `plugin-bootstrap` |
90   -| `data/skills/` | Skill 仓库(代码外部目录,路径由 `config.skillsDataDir` 控制) |
  90 +| `<repo>/../data/skills/` | Skill 仓库。**在仓库外面一层**,不是 `<repo>/data/skills/`(后者不存在)。路径由 `config.skillsDataDir` 控制,见下「数据存储」的两个 data 根 |
91 91 | `scripts/` | 运维脚本(含 `sync-skills.js`) |
92 92 | `docs/` | 设计文档,**按状态分目录**:`done/`(已实现 / 长期参考手册,含 `system-design/` 01–26 章与 `user-guides/`)、`todo/`(当前主线,27/28 系列)、`todo/future/`(暂缓)、`_archive/`。另有 `prd/`(DevLoop 规格源,见上)。**索引在 [`docs/README.md`](docs/README.md),逐条带状态说明 —— 找文档从那里进,别在本表里加文件名**(这一行曾经列了 5 个具体文件,文档移进 `done/` 之后全成了死链) |
93 93  
... ... @@ -120,12 +120,31 @@ npm run okr:migrate # goals → okr 存量迁移
120 120  
121 121 ### 数据存储(SQLite,无需 PostgreSQL)
122 122  
123   -- `data/skills/` — Skill 目录(数万条)
124   -- `data/skills.sqlite` — Skill 主库 + FTS5
125   -- `data/benchmark.sqlite` — Benchmark 运行数据
126   -- `data/users.sqlite` — 用户数据
127   -- `data/trained_skills/` — 用户训练产物(按 userId 隔离)
128   -- `server/conversations/` — 会话持久化
  123 +> [!IMPORTANT]
  124 +> **有两个不同的 `data/` 根,别混**。ArenaSK 时代的三个库落在**仓库外面一层**,
  125 +> LemonBoss 的数据在**仓库内**。看到 `data/xxx` 先确认是哪一个 —— 备份、迁移、
  126 +> 换机器时漏掉仓库外那半边,skill / 用户 / benchmark 数据会静默丢失。
  127 +> 判据看源码里 `path.resolve(__dirname, ...)` 的层数(当前 11 个模块指仓库内、3 个指仓库外)。
  128 +
  129 +**仓库外** `<repo>/../data/` — ArenaSK 侧(`benchmark-db.js` / `skill-db.js` / `user-db.js`,
  130 +均可用 `SKILLS_DB_PATH` / `USERS_DB_PATH` / `BENCHMARK_DB_PATH` 等 env 覆盖):
  131 +
  132 +- `skills/` — Skill 目录(数万条),路径由 `config.skillsDataDir` 控制
  133 +- `skills.sqlite` — Skill 主库 + FTS5
  134 +- `users.sqlite` — 用户数据
  135 +- `benchmark_logs.sqlite` — Benchmark 运行数据(**不是** `benchmark.sqlite`)
  136 +- `trained_skills/` — 用户训练产物(按 userId 隔离)
  137 +
  138 +**仓库内** `<repo>/data/` — LemonBoss 侧(company / okr / graph / devloop 都在这儿):
  139 +
  140 +- `graph.sqlite` — 图谱库(`GRAPH_DB_PATH` 可覆盖)
  141 +- `companies/` — 公司态(含 DevLoop 项目根、agent memory)
  142 +- `okr/` `logs/` `agents/` — OKR 索引 / 运行日志 / agent 运行态
  143 +
  144 +会话持久化有**两套**,不是一处:
  145 +
  146 +- `<repo>/conversations/` — ArenaSK / Innovator 侧(`config.conversationsDir`,`CONVERSATIONS_DIR` 可覆盖)
  147 +- `<agent 公司态目录>/conversations/{convId}/` — LemonBoss agent-chat 侧(`agent-chat.getConvDir` → `locator.companyStateDir`)
129 148  
130 149 ### 配置文件
131 150  
... ...