query
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: query
Skill: query
WHAT
WHAT
Purpose và context
目的与上下文
- Purpose: Answer question by synthesizing wiki knowledge. Valuable findings not in wiki become new pages, compounding knowledge over time.
- Trigger (when to invoke): When user asks question requiring synthesis across multiple wiki pages or raw sources; hoặc khi cần biết "căn cứ nào", "trích dẫn cạnh nào", "đường đi trong graph", "cite evidence".
- Non-goals: không trả lời bằng kiến thức ngoài wiki/(không bịa fact); không tự ingest cả nguồn (gap → gọi
raw/); không sửa cờ drift của trang (việc củaingest//lint).wiki-sync
- 目的: 通过综合 wiki 知识来回答问题。wiki 中尚不存在但有价值的发现会成为新页面,使知识随时间不断积累。
- 触发条件(何时调用): 当用户提出需要综合多个 wiki 页面或 raw 来源的问题时;或当需要了解“依据是什么”“引用哪条边”“在 graph 中的路径”“cite evidence”时。
- 非目标: 不使用 wiki/之外的知识回答(不得杜撰事实);不自行 ingest 整个来源(发现缺口 → 调用
raw/);不修改页面的 drift 标记(这是ingest//lint的职责)。wiki-sync
Mental model
思维模型
câu hỏi → Tầng 0 mem-rank (episodic) → Tầng 1 rg xếp hạng theo độ phủ term → Tầng 2 Read full top-N → Tầng 3 wikilinks → cổng drift → tổng hợp → [trang wiki mới nếu insight mới] → log + telemetry → Evidence (eid cạnh)问题 → 第 0 层 mem-rank (episodic) → 第 1 层使用 rg 按 term 覆盖率排序 → 第 2 层完整 Read top-N → 第 3 层 wikilinks → drift 门控 → 综合 → [若有新 insight 则创建 wiki 页面] → log + telemetry → Evidence(边的 eid)Input và output contract
输入与输出约定
| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | câu hỏi | có | cần tổng hợp nhiều trang wiki / raw |
| Out | câu trả lời | có | cảnh báo |
| Out | mục | có | eid cạnh thật sự chống lưng, hoặc |
| Out | trang wiki mới + index + log | chỉ khi có insight mới | concept hoặc source |
| Out | dòng | có | log |
| Out | output report draft | có (trừ khi 0 artifact) | mục Delivery |
| 字段 | 是否必需 | 含义 | |
|---|---|---|---|
| In | 问题 | 是 | 需要综合多个 wiki 页面或 raw 来源 |
| Out | 回答 | 是 | 如有 |
| Out | | 是 | 真正支撑结论的边 eid,或 |
| Out | 新 wiki 页面 + index + log | 仅在有新 insight 时 | concept 或 source 页面 |
| Out | | 是 | 记录 |
| Out | output report 草稿 | 是(零产物的情况除外) | Delivery 章节 |
Rules và capabilities
规则与能力
- RULE-01 (MUST): OKF v0.1 (R9): any new wiki page starts with a YAML frontmatter block () with a non-empty
---; copy the matchingtypeand keep the_template.mdsection.## Origin - RULE-02 (MUST): Never invent facts. Synthesize from wiki and only.
raw/ - RULE-03 (SHOULD): Query revealing gap (missing entity, missing concept) should trigger of relevant
ingestsource if one exists.raw/ - RULE-04 (MUST): Progressive disclosure — ĐỪNG nạp cả trang ở bước 1; chỉ Read full top-N.
- RULE-05 (MUST): Cảnh báo drift phải được chuyển nguyên văn vào câu trả lời — không nuốt, không từ chối trả lời.
- Capabilities: đọc wiki + + tầng nhớ episodic + wiki graph; ghi trang wiki mới, index, log, telemetry. Code-graph cho câu hỏi về code.
raw/
- RULE-01 (MUST): OKF v0.1 (R9): 任何新 wiki 页面都必须以带有非空 的 YAML frontmatter 块 (
type) 开头;复制匹配的---,并保留_template.md章节。## Origin - RULE-02 (MUST): 绝不杜撰事实。只能综合 wiki 和 中的内容。
raw/ - RULE-03 (SHOULD): 如果查询暴露出缺口(缺少实体或概念),且存在相关的 来源,则应触发对该来源的
raw/。ingest - RULE-04 (MUST): 渐进式披露——第 1 步不要加载整个页面;只完整 Read top-N。
- RULE-05 (MUST): drift 警告必须逐字放入回答中——不得忽略,也不得拒绝回答。
能力:读取 wiki + + episodic 记忆层 + wiki graph;写入新的 wiki 页面、index、log 和 telemetry。对于代码相关问题,使用 code-graph。
raw/Failure boundaries
失败边界
- Wiki và không có thông tin → nói rõ không có căn cứ (partial), không bịa.
raw/ - Không cạnh nào chống lưng → .
Evidence: none (page-level only) - Trang đọc bị cờ drift → vẫn trả lời, kèm cảnh báo đầu câu trả lời.
- Script tầng 0 / drift / telemetry lỗi → fail-open, bỏ qua bước đó, không gãy phiên.
- wiki 和 中没有信息 → 明确说明没有依据(partial),不得杜撰。
raw/ - 没有任何边能够提供支撑 → 。
Evidence: none (page-level only) - 读取的页面被标记为 drift → 仍然回答,但必须在回答开头附上警告。
- 第 0 层、drift 或 telemetry 脚本出错 → fail-open,跳过该步骤,不得中断会话。
HOW
HOW
Main workflow
Main workflow
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | deterministic | câu hỏi | Tầng 0 | top-k memory/episode | NOOP → bỏ qua |
| W02 | deterministic | câu hỏi | Tầng 1 | danh sách slug | — |
| W03 | effect | top-N | Tầng 2 Read full top-N (~5); Tầng 3 lần wikilinks nếu cần | nội dung trang | — |
| W04 | deterministic | slug đã đọc | Cổng drift | cảnh báo hoặc im lặng | luôn exit 0 |
| W05 | judgment | nội dung | Thiếu → check | câu trả lời | không có căn cứ → partial |
| W06 | judgment | câu trả lời | Insight mới? → tạo trang + index + log | trang mới / skip | không → skip |
| W07 | effect | kết quả | Log | log + bản ghi | fail-open |
| W08 | deterministic | trang căn cứ | | eid cạnh | none → page-level only |
Chi tiết từng bước (nguồn chân lý cho W01–W08):
| 步骤 | 类型 | 输入 | 操作 | 输出/退出 | 失败/下一步 |
|---|---|---|---|---|---|
| W01 | 确定性 | 问题 | 第 0 层 | top-k memory/episode | NOOP → 跳过 |
| W02 | 确定性 | 问题 | 第 1 层使用 | slug 列表 | — |
| W03 | 副作用 | top-N | 第 2 层完整 Read top-N(约 5 个);第 3 层按需追踪 wikilinks | 页面内容 | — |
| W04 | 确定性 | 已读取的 slug | drift 门控 | 警告或无输出 | 始终以 0 退出 |
| W05 | 判断 | 内容 | 缺失 → 检查 | 回答 | 没有依据 → partial |
| W06 | 判断 | 回答 | 有新 insight?→ 创建页面 + index + log | 新页面/跳过 | 没有 → 跳过 |
| W07 | 副作用 | 结果 | 记录 | 记录 + telemetry | fail-open |
| W08 | 确定性 | 作为依据的页面 | | 边 eid | 无 → page-level only |
W01–W08 各步骤的详情(事实来源):
Steps — progressive disclosure 3 tầng (ĐỪNG nạp cả trang ở bước 1)
步骤——三层渐进式披露(第 1 步不要加载整页)
Nguyên tắc: quét RẺ để xếp hạng trước, chỉ ĐỌC FULL vài trang cao điểm. Đo trên bộ goldencho thấy cách này giữ nguyên recall mà cắt ~65% token so với "đọc mọi trang khớp" (baseline L0). Kiểm chứng:wiki/sources/evals/retrieval/.retrieval-eval.py --check
-
Tầng 0 — truy hồi NGỮ NGHĨA (episodic + memory), KHÔNG chỉ theo link: trước khi quét wiki, hỏi tầng nhớ episodic xem phiên trước đã đụng câu hỏi này chưa:(thêm
python3 harness/scripts/mem-rank.py retrieve "<câu hỏi>" --k 5để chỉ lấy sự kiện phiên). Trả về top-k memory/episode liên quan theo nghĩa (token-overlap, sẽ là embedding khi adapter--kind-filter episodeđược wire) — bắt được trang KHÔNG cómem-rank.config.yamltrỏ tới. NOOP (rỗng) thì bỏ qua, không nhồi nhiễu. Dùng kết quả này để mồi danh sách trang cho Tầng 1 + biết "việc này từng làm ở phiên nào".[[wikilink]] -
Tầng 1 — quét, KHÔNG mở full trang nào:câu hỏi trên
ripgrep+ nội dung wiki (wiki/index.mdđể đếm khớp), xếp hạng trang theo độ phủ term (trang chứa nhiều term của câu hỏi nhất). Câu hỏi về code → dùng code-graph MCP (rg -c '<term>' wiki/) thaysearch_symbols. Kết quả tầng này = danh sách slug + dòng khớp; chưargfull trang nào.Read -
Tầng 2 — khoan: chỉFULL top-N trang cao điểm nhất (mặc định ~5). Bỏ phần đuôi bảng xếp hạng — không đọc cho "chắc".
Read -
Tầng 3 — bối cảnh: nếu câu trả lời cần mạch liên quan, lần theocủa các trang vừa đọc (tương đương timeline/related của engram) — vẫn chỉ mở trang được trỏ tới, không mở tất cả. 3b. Cổng drift trên đường ĐỌC (0 token, fail-open) — trước khi tổng hợp, hỏi xem trang mình vừa đọc có đang lệch code không:
[[wikilinks]](downstream không cóRUN: python3 harness/scripts/wiki-sync.py --flags-for "<slug1,slug2,…>"trong repo thì dùng bản global:harness/). Truyền đúng các trang đãpython3 ~/.claude/harness/harness/scripts/wiki-sync.py --flags-for "…" --root .ở tầng 2–3. Lệnh luôn exit 0; im lặng = không trang nào bị cờ. Có dòngRead→ chuyển nguyên văn cảnh báo đó vào câu trả lời (một dòng mỗi trang, đặt ngay đầu phần trả lời) rồi mới trả lời bình thường; đừng nuốt cảnh báo, cũng đừng từ chối trả lời. Vì sao có bước này:⚑ CẢNH BÁO DRIFTghi cờwiki-sync --checkvàocode-drift, nhưng trước 2026-07-19 chỉstale.jsonđọc cờ đó — mà lint chạy theo chu kỳ, nên giữa hai lần lint/linttrả về trang đã lệch code mà không cảnh báo gì. Đó đúng là ca "wiki là nguồn sự thật nhưng nội dung đã lệch" khiến model lập luận tự tin trên tri thức cũ./query -
If answer needs info not in wiki, checkfor unprocessed sources.
raw/ -
Synthesize and answer directly.
-
Evaluate: does answer contain non-obvious insight, connection, or conclusion not already in wiki?
- If yes: create new wiki page (concept or source), update , log in
wiki/index.md.wiki/log.md - If no: skip.
- If yes: create new wiki page (concept or source), update
-
Append to:
wiki/log.mdwith note on whether new page created.## YYYY-MM-DD — query — <question summary> -
Telemetry (đo TRUY HỒI — fail-open): sau khi trả lời, ghi lại query để độ hiệu quả truy-hồi đo được:
python3 harness/scripts/query-log.py --record --question "<câu hỏi>" --pages "<slug1,slug2>" --tokens <ước tính token đã đọc> --tier <1|2|3>= các trang wiki thực sự đọc;--pages= tầng sâu nhất chạm tới (1 quét / 2 đọc full / 3 wikilinks). Script fail-open — không bao giờ làm gãy phiên. Giới hạn đã biết: chỉ đo khi skill--tierđược gọi, không đo lượt model tự Read thẳng.query -
Evidence — trích cạnh, không chỉ trích trang. Với MỖI trang wiki đã dùng làm căn cứ, chạy:rồi đính mục
python3 harness/scripts/wiki-graph.py cite <page>vào cuối câu trả lời, liệt kê eid của những cạnh thật sự chống lưng kết luận — không liệt kê cạnh chỉ vì nó tồn tại:## Evidence## Evidence - e:4b65f8c5 concepts/decision-anchoring.md -> concepts/adapt-modes.md (wikilink) - e:988aa19d index.md -> concepts/example-concept.md (mdlink)Không cạnh nào chống lưng → ghi thẳng. Trung thực hơn bịa một đường đi. Cạnh có kiểu (Evidence: none (page-level only)/supports/contradicts/supersedes/derives-from) khai trong frontmatterdepends-oncủa trang, mạnh hơnrelations:trần vì nó nói RÕ quan hệ.wikilink
原则:先进行低成本扫描和排序,只完整 Read 少量高分页面。在 golden 集上的测量表明,与“读取每个匹配页面”(baseline L0)相比,此方法保持 recall 不变,同时减少约 65% token。验证:wiki/sources/evals/retrieval/。retrieval-eval.py --check
-
第 0 层——语义检索 (episodic + memory),不只依赖 link: 扫描 wiki 前,询问 episodic 记忆层,确认之前的会话是否处理过此问题:(添加
python3 harness/scripts/mem-rank.py retrieve "<câu hỏi>" --k 5可仅获取会话事件)。结果按语义返回 top-k 相关 memory/episode(token-overlap;当--kind-filter episodeadapter 接入后将使用 embedding)——从而捕获没有mem-rank.config.yaml指向的页面。NOOP(空)则跳过,不引入噪声。使用该结果为第 1 层页面列表提供候选,并了解“此任务曾在哪个会话中完成”。[[wikilink]] -
第 1 层——扫描,不打开任何完整页面: 使用在
ripgrep和 wiki 内容中搜索问题(wiki/index.md用于统计匹配次数),按 term 覆盖率 对页面排序(包含最多问题 term 的页面优先)。代码相关问题 → 使用 code-graph MCP (rg -c '<term>' wiki/) 代替search_symbols。本层结果 = slug 列表 + 匹配行;尚不rg任何完整页面。Read -
第 2 层——深入: 只完整得分最高的 top-N 页面(默认约 5 个)。丢弃排名表尾部——不要为了“稳妥”而继续读取。
Read -
第 3 层——上下文: 如果回答需要相关联链条,则沿刚刚读取页面的继续追踪(相当于 engram 的 timeline/related)——仍只打开被指向的页面,不打开所有页面。 3b. 读取路径上的 drift 门控(0 token,fail-open)——综合之前,检查刚读取的页面是否已经与代码发生漂移:
[[wikilinks]](如果下游 repo 中没有RUN: python3 harness/scripts/wiki-sync.py --flags-for "<slug1,slug2,…>",则使用全局版本:harness/)。 必须准确传入第 2–3 层已经python3 ~/.claude/harness/harness/scripts/wiki-sync.py --flags-for "…" --root .的页面。命令始终以 0 退出;无输出 = 没有任何页面被标记。 如果出现Read→ 将该警告逐字放入回答中(每个页面一行,放在回答部分开头),然后正常回答;不要忽略警告,也不要拒绝回答。 此步骤的原因:⚑ CẢNH BÁO DRIFT会将wiki-sync --check标记写入code-drift,但在 2026-07-19 之前只有stale.json会读取该标记——而 lint 按周期运行,因此在两次 lint 之间,/lint可能返回已经漂移的页面,却没有任何警告。这正是“wiki 是事实来源,但其内容已经漂移”这一情形,会导致模型基于过时知识进行自信推理。/query -
如果回答需要 wiki 中没有的信息,则检查中尚未处理的来源。
raw/ -
综合内容并直接回答。
-
评估:答案是否包含 wiki 中尚不存在的非显而易见 insight、关联或结论?
- 如果有:创建一个新 wiki 页面(concept 或 source),更新 ,并记录到
wiki/index.md。wiki/log.md - 如果没有:跳过。
- 如果有:创建一个新 wiki 页面(concept 或 source),更新
-
追加到:
wiki/log.md,并注明是否创建了新页面。## YYYY-MM-DD — query — <question summary> -
Telemetry(衡量检索效果——fail-open): 回答后记录 query,以便衡量检索效率:
python3 harness/scripts/query-log.py --record --question "<câu hỏi>" --pages "<slug1,slug2>" --tokens <ước tính token đã đọc> --tier <1|2|3>= 实际读取的 wiki 页面;--pages= 到达的最深层级(1 = 扫描 / 2 = 完整读取 / 3 = wikilinks)。脚本采用 fail-open——绝不会中断会话。已知限制:仅在调用--tierskill 时进行测量,不统计模型直接 Read 的轮次。query -
Evidence——引用边,而不只是引用页面。 对每个作为依据使用的 wiki 页面,运行:然后在回答末尾追加
python3 harness/scripts/wiki-graph.py cite <page>章节,列出真正支撑结论的边的 eid——不能仅因某条边存在就将其列出:## Evidence## Evidence - e:4b65f8c5 concepts/decision-anchoring.md -> concepts/adapt-modes.md (wikilink) - e:988aa19d index.md -> concepts/example-concept.md (mdlink)如果没有任何边能够提供支撑 → 直接写入。这样比编造一条路径更加诚实。通过页面 frontmatterEvidence: none (page-level only)声明类型的边(relations:/supports/contradicts/supersedes/derives-from)比普通depends-on更强,因为它明确说明了关系。wikilink
Branches
Branches
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | conditional_required | câu hỏi về code | dùng code-graph MCP ( | — | W03 |
| B02 | conditional_required | có dòng | chuyển nguyên văn vào đầu câu trả lời | im lặng → skip | W05 |
| B03 | conditional_required | downstream không có | dùng bản global | — | W05 |
| B04 | conditional_required | câu trả lời có insight mới không có trong wiki | tạo trang concept/source + index + log (OKF) | không → skip | W07 |
| B05 | conditional_required | query lộ gap và có nguồn | gọi | không có nguồn → ghi gap | W07 |
| ID | 类型 | 守卫条件 | 行为 | 跳过/失败 | 汇合点 |
|---|---|---|---|---|---|
| B01 | 条件必需 | 代码相关问题 | 第 1 层使用 code-graph MCP ( | — | W03 |
| B02 | 条件必需 | 出现 | 将其逐字放入回答开头 | 无输出 → 跳过 | W05 |
| B03 | 条件必需 | 下游 repo 中没有 | 使用全局版 | — | W05 |
| B04 | 条件必需 | 回答包含 wiki 中没有的新 insight | 创建 concept/source 页面 + index + log(OKF) | 没有 → 跳过 | W07 |
| B05 | 条件必需 | query 暴露缺口且存在相关的 | 调用 | 没有来源 → 记录缺口 | W07 |
Validation và stopping
验证与停止条件
Tất định: đo recall/token của progressive disclosure; sinh eid thật. Judgment: tổng hợp và đánh giá "insight mới". Dừng sau W08 + Delivery; không mở thêm trang ngoài top-N "cho chắc".
retrieval-eval.py --checkwiki-graph.py cite确定性验证: 衡量渐进式披露的 recall/token; 生成真实的 eid。判断性验证:综合内容并评估是否存在“新 insight”。完成 W08 + Delivery 后停止;不要为了“稳妥”而打开 top-N 之外的页面。
retrieval-eval.py --checkwiki-graph.py citeExamples
示例
- Positive: "vì sao adapt-modes tách 3 kiểu absorb?" → rg xếp hạng, Read + 2 trang cao điểm, drift im lặng → trả lời +
concepts/adapt-modes.mdliệt kê## Evidence; không insight mới → không tạo trang.e:4b65f8c5 concepts/decision-anchoring.md -> concepts/adapt-modes.md (wikilink) - Boundary/failure: trang đọc bị cờ code-drift → câu trả lời mở đầu bằng dòng nguyên văn rồi mới trả lời; không cạnh nào chống lưng →
⚑ CẢNH BÁO DRIFT.Evidence: none (page-level only)
- 正向: “为什么 adapt-modes 将 absorb 分为 3 种?”→ 使用 rg 排序,Read + 2 个高分页面,drift 无警告 → 回答 +
concepts/adapt-modes.md,其中列出## Evidence;没有新 insight → 不创建页面。e:4b65f8c5 concepts/decision-anchoring.md -> concepts/adapt-modes.md (wikilink) - 边界/失败: 读取的页面被标记为 code-drift → 回答以逐字的 行开头,然后正常回答;没有任何边能够提供支撑 →
⚑ CẢNH BÁO DRIFT。Evidence: none (page-level only)
Delivery — Output Report
Delivery — Output Report
After all main skill tasks complete, write a propose draft to the wiki.
完成所有主要 skill 任务后,在 wiki 中写入一份 proposed 草稿。
Steps
步骤
1. Build the filename:
- Format:
DDMMYY-<ten>.md - = today (e.g.,
DDMMYYfor 2 June 2026)020626 - = 2–4 kebab-case words summarising what was done (e.g.,
<ten>,landing-page-coteccons,brand-kit-fintech)ingest-auth-spec
2. Write :
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---1. 构建文件名:
- 格式:
DDMMYY-<ten>.md - = 当天日期(例如,
DDMMYY表示 2026 年 6 月 2 日)020626 - = 2–4 个用于概括完成事项的 kebab-case 单词(例如,
<ten>、landing-page-coteccons、brand-kit-fintech)ingest-auth-spec
2. 写入 :
llmwiki/wiki/sources/draft/DDMMYY-<ten>.md---
type: draft
title: "DDMMYY-<ten>"
status: proposed
tags: [<skill-name>, output-report]
timestamp: YYYY-MM-DD
---DDMMYY-<ten>
DDMMYY-<ten>
Type: draft
Status: proposed
Tags: <skill-name>, output-report
Proposed: YYYY-MM-DD
Type: draft
Status: proposed
Tags: <skill-name>, output-report
Proposed: YYYY-MM-DD
What
What
<One sentence — what this skill invocation produced or decided>
<One sentence — what this skill invocation produced or decided>
Output
Output
<Key artefacts, files created/modified, or decisions made>
<Key artefacts, files created/modified, or decisions made>
Files
Files
| File | Action |
|---|---|
| created / modified |
| File | Action |
|---|---|
| created / modified |
Notes
Notes
- Invoked via: skill
/<skill-name>
- Invoked via: skill
/<skill-name>
Origin
Origin
- Draft:
wiki/sources/draft/DDMMYY-<ten>.md - Commit: (filled by verify-before-commit)
- Date promoted: (filled by verify-before-commit)
**3. Update wiki index & log:**
- `llmwiki/wiki/index.md` — append one row: `| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |`
- `llmwiki/wiki/log.md` — append: `## YYYY-MM-DD — <skill-name> — <ten>`
> Skip only when the skill produces zero artefacts and zero decisions (e.g., a pure display mode like `/caveman-stats`).- Draft:
wiki/sources/draft/DDMMYY-<ten>.md - Commit: (filled by verify-before-commit)
- Date promoted: (filled by verify-before-commit)
**3. 更新 wiki index 与 log:**
- `llmwiki/wiki/index.md` — 追加一行:`| [DDMMYY-<ten>](sources/draft/DDMMYY-<ten>.md) | draft | YYYY-MM-DD |`
- `llmwiki/wiki/log.md` — 追加:`## YYYY-MM-DD — <skill-name> — <ten>`
> 仅当该 skill 未产生任何产物且未作出任何决策时才跳过(例如,像 `/caveman-stats` 这样的纯展示模式)。