Add repo-memory CLI test docs

This commit is contained in:
2026-03-20 15:42:35 +08:00
parent e32c81db12
commit a6ffc376e3
43 changed files with 1583 additions and 17 deletions
+10
View File
@@ -0,0 +1,10 @@
# Repo Memory `search` Test Plan Index
## Case Files
| Case Slug | File | Coverage Note |
| --- | --- | --- |
| `search-returns-matching-entry-snippet` | [search-returns-matching-entry-snippet.md](./search-returns-matching-entry-snippet.md) | returns a ranked text result with status and snippet lines |
| `search-matches-alias-with-repo-filter` | [search-matches-alias-with-repo-filter.md](./search-matches-alias-with-repo-filter.md) | matches alias terms while narrowing by repo substring |
| `search-returns-no-results-when-empty` | [search-returns-no-results-when-empty.md](./search-returns-no-results-when-empty.md) | prints `no results` for an empty search result set |
| `search-rejects-missing-query` | [search-rejects-missing-query.md](./search-rejects-missing-query.md) | rejects invocations that omit the required `--query` flag |
@@ -0,0 +1,34 @@
# Case: `search-matches-alias-with-repo-filter`
## 用例意义
验证 `search` 会命中 alias,同时 `--repo` 作为路径子串过滤器只返回目标仓库的结果。
## 前置条件
- 空数据库已完成 `init`
- 已存在两个 Git 仓库:`TMPDIR/cupid-service``TMPDIR/mars-service`
- 已分别执行:
```bash
repo-memory add --db TMPDIR/repo-memory.db --repo TMPDIR/cupid-service --kind term --key AITask --summary "Plan 内嵌任务结构" --status confirmed --alias "plan task"
repo-memory add --db TMPDIR/repo-memory.db --repo TMPDIR/mars-service --kind term --key DeployPlan --summary "发布计划" --status confirmed --alias "release plan"
```
## 输入
```bash
repo-memory search --db TMPDIR/repo-memory.db --repo cupid --query "plan task"
```
## 预期输出
- 命令退出码为 `0`
- 输出包含 `[cupid-service] term:AITask [confirmed]`
- 输出不包含 `[mars-service]`
## 断言结论
- alias 会进入搜索面
- `--repo` 是 repo path substring filter,而不是必须传完整绝对路径
- 过滤发生在结果集层面,不影响 alias 命中能力
@@ -0,0 +1,25 @@
# Case: `search-rejects-missing-query`
## 用例意义
验证 `search` 对缺失 `--query` 的调用给出稳定失败契约。
## 前置条件
- 空数据库已完成 `init`
## 输入
```bash
repo-memory search --db TMPDIR/repo-memory.db
```
## 预期输出
- 命令退出码为 `1`
- stderr 包含 `--query is required`
## 断言结论
- `search` 不支持“列出全部”式空查询
- 缺失查询词属于输入错误,而不是空结果
@@ -0,0 +1,31 @@
# Case: `search-returns-matching-entry-snippet`
## 用例意义
验证 `search` 返回的文本结果既包含 entry 身份信息,也包含便于人工判断的 snippet。
## 前置条件
- 空数据库已完成 `init`
- `TMPDIR/repo` 下已有一条 `confirmed` entry
```bash
repo-memory add --db TMPDIR/repo-memory.db --repo TMPDIR/repo --kind chain --key ai-insight.get --summary "gateway -> app service -> cache/db" --detail "The AI insight read path goes through gateway before app service reaches cache and database." --status confirmed
```
## 输入
```bash
repo-memory search --db TMPDIR/repo-memory.db --repo repo --query "insight gateway"
```
## 预期输出
- 命令退出码为 `0`
- 第一行包含 `1. [repo] chain:ai-insight.get [confirmed]`
- 后续文本包含 `gateway` 的 snippet 片段
## 断言结论
- `search` 的核心输出不是纯 id 列表,而是可直接消费的人工排查文本
- 查询会同时命中 `key``summary``detail`
@@ -0,0 +1,25 @@
# Case: `search-returns-no-results-when-empty`
## 用例意义
验证 `search` 在没有命中项时返回稳定空结果文本,而不是异常退出。
## 前置条件
- 空数据库已完成 `init`
## 输入
```bash
repo-memory search --db TMPDIR/repo-memory.db --query "missing term"
```
## 预期输出
- 命令退出码为 `0`
- stdout 等于 `no results`
## 断言结论
- 空搜索结果被视为正常控制流
- 调用方可以用退出码 `0` + 文本 `no results` 区分“没命中”和“命令失败”