1. 中文检索没有分词,连续句子直接 0 命中(最值得修)
search 按空格切词,整句中文会变成一个 token,字面匹配不上就静默返回 0,没有任何降级。实测对照:
search "限速是怎么生效的" → 0/0(连续句子)
search "终端速率分摊" → 0/0(文档里有「终端流量按权重分摊」,但不是这个连续字串)
search "限速 生效" → mock-world 第一位 ✓(同样内容,手动加空格就全命中)
help 文案本身是中文的,说明中文用户是主要受众,而中文自然查询恰恰是最容易整句输入的。建议:CJK bigram 切词;或 0 命中时降级为按词 OR/子串匹配并在输出里标注「已降级」。在修之前的使用口诀:中文查询自己手动空格分词。
2. 冷启动三连前置,错误信息都不给指引
新仓库首次 bootstrap 时我依次撞到:
new 报「未找到 llmdoc/ 目录」—— 但第一个文档恰恰要在没有这个目录时创建,鸡生蛋;其实我先 mkdir llmdoc 就过了。至少错误信息该提示 mkdir llmdoc,更好是 new 自动创建。
init-state 报「无法解析 HEAD commit」—— 真实原因是空仓库没有首次提交,但报错没说 remedy(先 git commit 一次)。这个「写文档 → 需要 HEAD → init-state → commit」的顺序约束在任何 help 里都查不到。
new 建了 4 个文档后 validate 仍报 meta.missing —— new 不创建 meta.json,只有 init-state 会。行为能推断出来,但第一感是「我漏了哪步」。
建议:init-state 检测到无 HEAD 时明确说「请先做一次初始提交」;new 在 meta.json 缺失时附带提示。
3. 不算 bug 的小观察
单词多义时排名可能出乎意料(search "生效" 单独查,build-and-run 排在同样包含它的 mock-world 前面)——单词本身歧义,不算缺陷,只是别用单词查询。
1. 中文检索没有分词,连续句子直接 0 命中(最值得修)
search 按空格切词,整句中文会变成一个 token,字面匹配不上就静默返回 0,没有任何降级。实测对照:
search "限速是怎么生效的"→ 0/0(连续句子)search "终端速率分摊"→ 0/0(文档里有「终端流量按权重分摊」,但不是这个连续字串)search "限速 生效"→ mock-world 第一位 ✓(同样内容,手动加空格就全命中)help 文案本身是中文的,说明中文用户是主要受众,而中文自然查询恰恰是最容易整句输入的。建议:CJK bigram 切词;或 0 命中时降级为按词 OR/子串匹配并在输出里标注「已降级」。在修之前的使用口诀:中文查询自己手动空格分词。
2. 冷启动三连前置,错误信息都不给指引
新仓库首次 bootstrap 时我依次撞到:
new报「未找到 llmdoc/ 目录」—— 但第一个文档恰恰要在没有这个目录时创建,鸡生蛋;其实我先mkdir llmdoc就过了。至少错误信息该提示mkdir llmdoc,更好是new自动创建。init-state报「无法解析 HEAD commit」—— 真实原因是空仓库没有首次提交,但报错没说 remedy(先git commit一次)。这个「写文档 → 需要 HEAD → init-state → commit」的顺序约束在任何 help 里都查不到。new建了 4 个文档后validate仍报meta.missing——new不创建 meta.json,只有 init-state 会。行为能推断出来,但第一感是「我漏了哪步」。建议:
init-state检测到无 HEAD 时明确说「请先做一次初始提交」;new在 meta.json 缺失时附带提示。3. 不算 bug 的小观察
单词多义时排名可能出乎意料(
search "生效"单独查,build-and-run 排在同样包含它的 mock-world 前面)——单词本身歧义,不算缺陷,只是别用单词查询。