query

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Skill: 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/
    raw/
    (không bịa fact); không tự ingest cả nguồn (gap → gọi
    ingest
    ); không sửa cờ drift của trang (việc của
    /lint
    /
    wiki-sync
    ).
  • 目的: 通过综合 wiki 知识来回答问题。wiki 中尚不存在但有价值的发现会成为新页面,使知识随时间不断积累。
  • 触发条件(何时调用): 当用户提出需要综合多个 wiki 页面或 raw 来源的问题时;或当需要了解“依据是什么”“引用哪条边”“在 graph 中的路径”“cite evidence”时。
  • 非目标: 不使用 wiki/
    raw/
    之外的知识回答(不得杜撰事实);不自行 ingest 整个来源(发现缺口 → 调用
    ingest
    );不修改页面的 drift 标记(这是
    /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

输入与输出约定

FieldRequired?Ý nghĩa
Incâu hỏicócần tổng hợp nhiều trang wiki / raw
Outcâu trả lờicócảnh báo
⚑ CẢNH BÁO DRIFT
(nếu có) đặt đầu câu trả lời
Outmục
## Evidence
cóeid cạnh thật sự chống lưng, hoặc
Evidence: none (page-level only)
Outtrang wiki mới + index + logchỉ khi có insight mớiconcept hoặc source
Outdòng
wiki/log.md
+ bản ghi
query-log.py
cólog
## YYYY-MM-DD — query — <question summary>
; telemetry fail-open
Outoutput report draftcó (trừ khi 0 artifact)mục Delivery
字段是否必需含义
In问题是需要综合多个 wiki 页面或 raw 来源
Out回答是如有
⚑ CẢNH BÁO DRIFT
警告,应置于回答开头
Out
## Evidence
章节
是真正支撑结论的边 eid,或
Evidence: none (page-level only)
Out新 wiki 页面 + index + log仅在有新 insight 时concept 或 source 页面
Out
wiki/log.md
行 +
query-log.py
记录
是记录
## YYYY-MM-DD — query — <question summary>
;telemetry fail-open
Outoutput 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
    type
    ; copy the matching
    _template.md
    and keep the
    ## Origin
    section.
  • RULE-02 (MUST): Never invent facts. Synthesize from wiki and
    raw/
    only.
  • RULE-03 (SHOULD): Query revealing gap (missing entity, missing concept) should trigger
    ingest
    of relevant
    raw/
    source if one exists.
  • 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 +
    raw/
    + tầng nhớ episodic + wiki graph; ghi trang wiki mới, index, log, telemetry. Code-graph cho câu hỏi về code.
  • RULE-01 (MUST): OKF v0.1 (R9): 任何新 wiki 页面都必须以带有非空
    type
    的 YAML frontmatter 块 (
    ---
    ) 开头;复制匹配的
    _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 +
raw/
+ episodic 记忆层 + wiki graph;写入新的 wiki 页面、index、log 和 telemetry。对于代码相关问题,使用 code-graph。

Failure boundaries

失败边界

  • Wiki và
    raw/
    không có thông tin → nói rõ không có căn cứ (partial), không bịa.
  • 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 和
    raw/
    中没有信息 → 明确说明没有依据(partial),不得杜撰。
  • 没有任何边能够提供支撑 →
    Evidence: none (page-level only)
    。
  • 读取的页面被标记为 drift → 仍然回答,但必须在回答开头附上警告。
  • 第 0 层、drift 或 telemetry 脚本出错 → fail-open,跳过该步骤,不得中断会话。

HOW

HOW

Main workflow

Main workflow

StepTypeInputsActionOutputs/exitFailure/next
W01deterministiccâu hỏiTầng 0
mem-rank.py retrieve
top-k memory/episodeNOOP → bỏ qua
W02deterministiccâu hỏiTầng 1
rg
xếp hạng theo độ phủ term (code →
search_symbols
)
danh sách slug—
W03effecttop-NTầng 2 Read full top-N (~5); Tầng 3 lần wikilinks nếu cầnnội dung trang—
W04deterministicslug đã đọcCổng drift
wiki-sync.py --flags-for
cảnh báo hoặc im lặngluôn exit 0
W05judgmentnội dungThiếu → check
raw/
; tổng hợp và trả lời
câu trả lờikhông có căn cứ → partial
W06judgmentcâu trả lờiInsight mới? → tạo trang + index + logtrang mới / skipkhông → skip
W07effectkết quảLog
wiki/log.md
+ telemetry
query-log.py --record
log + bản ghifail-open
W08deterministictrang căn cứ
wiki-graph.py cite <page>
→ mục
## Evidence
eid cạnhnone → page-level only
Chi tiết từng bước (nguồn chân lý cho W01–W08):
步骤类型输入操作输出/退出失败/下一步
W01确定性问题第 0 层
mem-rank.py retrieve
top-k memory/episodeNOOP → 跳过
W02确定性问题第 1 层使用
rg
按 term 覆盖率排序(代码 →
search_symbols
)
slug 列表—
W03副作用top-N第 2 层完整 Read top-N(约 5 个);第 3 层按需追踪 wikilinks页面内容—
W04确定性已读取的 slugdrift 门控
wiki-sync.py --flags-for
警告或无输出始终以 0 退出
W05判断内容缺失 → 检查
raw/
;综合并回答
回答没有依据 → partial
W06判断回答有新 insight?→ 创建页面 + index + log新页面/跳过没有 → 跳过
W07副作用结果记录
wiki/log.md
+ telemetry
query-log.py --record
记录 + telemetryfail-open
W08确定性作为依据的页面
wiki-graph.py cite <page>
→
## Evidence
章节
边 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ộ golden
wiki/sources/evals/retrieval/
cho 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:
retrieval-eval.py --check
.
  1. 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:
    python3 harness/scripts/mem-rank.py retrieve "<câu hỏi>" --k 5
    (thêm
    --kind-filter episode
    để 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
    mem-rank.config.yaml
    được wire) — bắt được trang KHÔNG có
    [[wikilink]]
    trỏ 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".
  2. Tầng 1 — quét, KHÔNG mở full trang nào:
    ripgrep
    câu hỏi trên
    wiki/index.md
    + nội dung wiki (
    rg -c '<term>' wiki/
    để đế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 (
    search_symbols
    ) thay
    rg
    . Kết quả tầng này = danh sách slug + dòng khớp; chưa
    Read
    full trang nào.
  3. Tầng 2 — khoan: chỉ
    Read
    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".
  4. Tầng 3 — bối cảnh: nếu câu trả lời cần mạch liên quan, lần theo
    [[wikilinks]]
    củ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:
    RUN: python3 harness/scripts/wiki-sync.py --flags-for "<slug1,slug2,…>"
    (downstream không có
    harness/
    trong repo thì dùng bản global:
    python3 ~/.claude/harness/harness/scripts/wiki-sync.py --flags-for "…" --root .
    ). Truyền đúng các trang đã
    Read
    ở tầng 2–3. Lệnh luôn exit 0; im lặng = không trang nào bị cờ. Có dòng
    ⚑ CẢNH BÁO DRIFT
    → 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:
    wiki-sync --check
    ghi cờ
    code-drift
    vào
    stale.json
    , nhưng trước 2026-07-19 chỉ
    /lint
    đọc cờ đó — mà lint chạy theo chu kỳ, nên giữa hai lần lint
    /query
    trả 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ũ.
  5. If answer needs info not in wiki, check
    raw/
    for unprocessed sources.
  6. Synthesize and answer directly.
  7. Evaluate: does answer contain non-obvious insight, connection, or conclusion not already in wiki?
    • If yes: create new wiki page (concept or source), update
      wiki/index.md
      , log in
      wiki/log.md
      .
    • If no: skip.
  8. Append to
    wiki/log.md
    :
    ## YYYY-MM-DD — query — <question summary>
    with note on whether new page created.
  9. 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>
    --pages
    = các trang wiki thực sự đọc;
    --tier
    = 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
    query
    được gọi, không đo lượt model tự Read thẳng.
  10. 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:
    python3 harness/scripts/wiki-graph.py cite <page>
    rồi đính mục
    ## Evidence
    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
    - 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
    Evidence: none (page-level only)
    . Trung thực hơn bịa một đường đi. Cạnh có kiểu (
    supports
    /
    contradicts
    /
    supersedes
    /
    derives-from
    /
    depends-on
    ) khai trong frontmatter
    relations:
    của trang, mạnh hơn
    wikilink
    trần vì nó nói RÕ quan hệ.
原则:先进行低成本扫描和排序,只完整 Read 少量高分页面。在 golden 集
wiki/sources/evals/retrieval/
上的测量表明,与“读取每个匹配页面”(baseline L0)相比,此方法保持 recall 不变,同时减少约 65% token。验证:
retrieval-eval.py --check
。
  1. 第 0 层——语义检索 (episodic + memory),不只依赖 link: 扫描 wiki 前,询问 episodic 记忆层,确认之前的会话是否处理过此问题:
    python3 harness/scripts/mem-rank.py retrieve "<câu hỏi>" --k 5
    (添加
    --kind-filter episode
    可仅获取会话事件)。结果按语义返回 top-k 相关 memory/episode(token-overlap;当
    mem-rank.config.yaml
    adapter 接入后将使用 embedding)——从而捕获没有
    [[wikilink]]
    指向的页面。NOOP(空)则跳过,不引入噪声。使用该结果为第 1 层页面列表提供候选,并了解“此任务曾在哪个会话中完成”。
  2. 第 1 层——扫描,不打开任何完整页面: 使用
    ripgrep
    在
    wiki/index.md
    和 wiki 内容中搜索问题(
    rg -c '<term>' wiki/
    用于统计匹配次数),按 term 覆盖率 对页面排序(包含最多问题 term 的页面优先)。代码相关问题 → 使用 code-graph MCP (
    search_symbols
    ) 代替
    rg
    。本层结果 = slug 列表 + 匹配行;尚不
    Read
    任何完整页面。
  3. 第 2 层——深入: 只完整
    Read
    得分最高的 top-N 页面(默认约 5 个)。丢弃排名表尾部——不要为了“稳妥”而继续读取。
  4. 第 3 层——上下文: 如果回答需要相关联链条,则沿刚刚读取页面的
    [[wikilinks]]
    继续追踪(相当于 engram 的 timeline/related)——仍只打开被指向的页面,不打开所有页面。 3b. 读取路径上的 drift 门控(0 token,fail-open)——综合之前,检查刚读取的页面是否已经与代码发生漂移:
    RUN: python3 harness/scripts/wiki-sync.py --flags-for "<slug1,slug2,…>"
    (如果下游 repo 中没有
    harness/
    ,则使用全局版本:
    python3 ~/.claude/harness/harness/scripts/wiki-sync.py --flags-for "…" --root .
    )。 必须准确传入第 2–3 层已经
    Read
    的页面。命令始终以 0 退出;无输出 = 没有任何页面被标记。 如果出现
    ⚑ CẢNH BÁO DRIFT
    → 将该警告逐字放入回答中(每个页面一行,放在回答部分开头),然后正常回答;不要忽略警告,也不要拒绝回答。 此步骤的原因:
    wiki-sync --check
    会将
    code-drift
    标记写入
    stale.json
    ,但在 2026-07-19 之前只有
    /lint
    会读取该标记——而 lint 按周期运行,因此在两次 lint 之间,
    /query
    可能返回已经漂移的页面,却没有任何警告。这正是“wiki 是事实来源,但其内容已经漂移”这一情形,会导致模型基于过时知识进行自信推理。
  5. 如果回答需要 wiki 中没有的信息,则检查
    raw/
    中尚未处理的来源。
  6. 综合内容并直接回答。
  7. 评估:答案是否包含 wiki 中尚不存在的非显而易见 insight、关联或结论?
    • 如果有:创建一个新 wiki 页面(concept 或 source),更新
      wiki/index.md
      ,并记录到
      wiki/log.md
      。
    • 如果没有:跳过。
  8. 追加到
    wiki/log.md
    :
    ## YYYY-MM-DD — query — <question summary>
    ,并注明是否创建了新页面。
  9. 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>
    --pages
    = 实际读取的 wiki 页面;
    --tier
    = 到达的最深层级(1 = 扫描 / 2 = 完整读取 / 3 = wikilinks)。脚本采用 fail-open——绝不会中断会话。已知限制:仅在调用
    query
    skill 时进行测量,不统计模型直接 Read 的轮次。
  10. Evidence——引用边,而不只是引用页面。 对每个作为依据使用的 wiki 页面,运行:
    python3 harness/scripts/wiki-graph.py cite <page>
    然后在回答末尾追加
    ## Evidence
    章节,列出真正支撑结论的边的 eid——不能仅因某条边存在就将其列出:
    ## Evidence
    - e:4b65f8c5  concepts/decision-anchoring.md -> concepts/adapt-modes.md  (wikilink)
    - e:988aa19d  index.md -> concepts/example-concept.md  (mdlink)
    如果没有任何边能够提供支撑 → 直接写入
    Evidence: none (page-level only)
    。这样比编造一条路径更加诚实。通过页面 frontmatter
    relations:
    声明类型的边(
    supports
    /
    contradicts
    /
    supersedes
    /
    derives-from
    /
    depends-on
    )比普通
    wikilink
    更强,因为它明确说明了关系。

Branches

Branches

IDKindGuardHành viSkip / failureRejoin
B01conditional_requiredcâu hỏi về codedùng code-graph MCP (
search_symbols
) thay
rg
ở Tầng 1
—W03
B02conditional_requiredcó dòng
⚑ CẢNH BÁO DRIFT
chuyển nguyên văn vào đầu câu trả lờiim lặng → skipW05
B03conditional_requireddownstream không có
harness/
trong repo
dùng bản global
~/.claude/harness/harness/scripts/wiki-sync.py --root .
—W05
B04conditional_requiredcâu trả lời có insight mới không có trong wikitạo trang concept/source + index + log (OKF)không → skipW07
B05conditional_requiredquery lộ gap và có nguồn
raw/
liên quan
gọi
ingest
nguồn đó
không có nguồn → ghi gapW07
ID类型守卫条件行为跳过/失败汇合点
B01条件必需代码相关问题第 1 层使用 code-graph MCP (
search_symbols
) 代替
rg
—W03
B02条件必需出现
⚑ CẢNH BÁO DRIFT
将其逐字放入回答开头无输出 → 跳过W05
B03条件必需下游 repo 中没有
harness/
使用全局版
~/.claude/harness/harness/scripts/wiki-sync.py --root .
—W05
B04条件必需回答包含 wiki 中没有的新 insight创建 concept/source 页面 + index + log(OKF)没有 → 跳过W07
B05条件必需query 暴露缺口且存在相关的
raw/
来源
调用
ingest
处理该来源
没有来源 → 记录缺口W07

Validation và stopping

验证与停止条件

Tất định:
retrieval-eval.py --check
đo recall/token của progressive disclosure;
wiki-graph.py cite
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 --check
衡量渐进式披露的 recall/token;
wiki-graph.py cite
生成真实的 eid。判断性验证:综合内容并评估是否存在“新 insight”。完成 W08 + Delivery 后停止;不要为了“稳妥”而打开 top-N 之外的页面。

Examples

示例

  • Positive: "vì sao adapt-modes tách 3 kiểu absorb?" → rg xếp hạng, Read
    concepts/adapt-modes.md
    + 2 trang cao điểm, drift im lặng → trả lời +
    ## Evidence
    liệt kê
    e:4b65f8c5  concepts/decision-anchoring.md -> concepts/adapt-modes.md  (wikilink)
    ; không insight mới → không tạo trang.
  • Boundary/failure: trang đọc bị cờ code-drift → câu trả lời mở đầu bằng dòng
    ⚑ CẢNH BÁO DRIFT
    nguyên văn rồi mới trả lời; không cạnh nào chống lưng →
    Evidence: none (page-level only)
    .

  • 正向: “为什么 adapt-modes 将 absorb 分为 3 种?”→ 使用 rg 排序,Read
    concepts/adapt-modes.md
    + 2 个高分页面,drift 无警告 → 回答 +
    ## Evidence
    ,其中列出
    e:4b65f8c5  concepts/decision-anchoring.md -> concepts/adapt-modes.md  (wikilink)
    ;没有新 insight → 不创建页面。
  • 边界/失败: 读取的页面被标记为 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
  • DDMMYY
    = today (e.g.,
    020626
    for 2 June 2026)
  • <ten>
    = 2–4 kebab-case words summarising what was done (e.g.,
    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
    = 当天日期(例如,
    020626
    表示 2026 年 6 月 2 日)
  • <ten>
    = 2–4 个用于概括完成事项的 kebab-case 单词(例如,
    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

FileAction
path/to/file
created / modified
FileAction
path/to/file
created / modified

Notes

Notes

  • Invoked via:
    /<skill-name>
    skill
  • Invoked via:
    /<skill-name>
    skill

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` 这样的纯展示模式)。