File contents /ask
对 wiki 知识库提问。LLM 读取 context_brief.md 获取全局上下文,检索相关页面,
综合回答并附带引用。好的回答可以 crystallize 回 wiki——写入 outputs/ 或创建新的
concept/claim 页面,让探索成果像 ingest 一样持续积累。
Inputs
question:自然语言问题(如 "LoRA 和 Adapter 的核心区别是什么?")
--crystallize(可选):若指定,将回答 crystallize 回 wiki(默认仅回答不写入)
--format(可选):输出格式,默认 markdown,可选 table / timeline / bullets
Outputs
始终 :终端输出综合回答(含 [[slug]] 引用)
若 crystallize :
wiki/outputs/{query-slug}.md — 查询结果页面(默认 crystallize 目标)
或 wiki/concepts/{slug}.md — 若回答揭示了新的跨论文概念
或 wiki/claims/{slug}.md — 若回答发现了可验证的新断言
更新的 wiki/graph/edges.jsonl(crystallize 产生的关系)
更新的 wiki/index.md 和 wiki/log.md
Wiki Interaction
Reads
wiki/graph/context_brief.md — 全局压缩上下文(claims, gaps, failed ideas, papers, edges)
wiki/index.md — 页面目录,用于定位相关页面
wiki/graph/open_questions.md — 开放问题,辅助判断问题是否涉及已知知识缺口
wiki/papers/*.md — 与问题相关的论文页面
wiki/concepts/*.md — 与问题相关的概念页面
wiki/claims/*.md — 与问题相关的 claim 页面
wiki/topics/*.md — 与问题相关的 topic 页面
wiki/people/*.md — 若问题涉及特定研究者
wiki/ideas/*.md — 若问题涉及研究想法或 failed ideas
wiki/experiments/*.md — 若问题涉及实验结果
wiki/Summary/*.md — 若问题涉及领域全景
Writes(仅 crystallize 模式)
wiki/outputs/{query-slug}.md — CREATE(查询结果页面)
wiki/concepts/{slug}.md — CREATE(新发现概念)或 EDIT(补充已有概念)
wiki/claims/{slug}.md — CREATE(新发现断言)或 EDIT(补充 evidence)
wiki/graph/edges.jsonl — APPEND(crystallize 产生的关系)
wiki/graph/context_brief.md — REBUILD(若 crystallize 创建了新页面)
wiki/graph/open_questions.md — REBUILD(若 crystallize 创建了新页面)
wiki/index.md — EDIT(若 crystallize 创建了新页面)
wiki/log.md — APPEND
Graph edges created(仅 crystallize)
output → paper: derived_from(回答引用的论文)
output → concept: derived_from(回答引用的概念)
output → claim: derived_from(回答引用的 claim)
concept → paper: supports(若新概念从论文中归纳)
claim → paper: supports(若新 claim 从论文中提取)
Workflow
前置 :确认工作目录为 wiki 项目根(包含 wiki/、raw/、tools/ 的目录)。
设 WIKI_ROOT=wiki/。
Step 1: 加载全局上下文
读取 wiki/graph/context_brief.md——获取 wiki 当前知识的压缩快照(claims, gaps, papers, edges)
读取 wiki/graph/open_questions.md——了解已知的开放问题和知识缺口
若两者都不存在,先重建:python3 tools/research_wiki.py rebuild-context-brief wiki/
python3 tools/research_wiki.py rebuild-open-questions wiki/
Step 2: 检索相关页面
读取 wiki/index.md,基于 question 关键词匹配相关 slugs
从 context_brief.md 中提取与 question 语义相关的 claims 和 papers
按相关性排序,选取 top-K 页面(K ≤ 15,避免上下文过长)
读取选中页面的完整内容
若 question 涉及关系(如 "X 和 Y 的区别"),额外读取 wiki/graph/edges.jsonl 中连接 X 和 Y 的边
Step 3: 综合回答
基于收集的页面内容,综合回答用户问题
回答要求:
有引用 :每个关键论断必须附带 [[slug]] wikilink 指向来源页面
有结构 :根据 --format 参数组织输出(markdown / table / timeline / bullets)
识别不确定性 :对 wiki 中证据不足的部分明确标注 "wiki 中尚无充分证据"
标注知识缺口 :若问题触及 open_questions.md 中的已知缺口,明确指出
引用 claim confidence :涉及 claim 时注明其 confidence 和 status
若问题超出 wiki 当前知识范围,坦诚告知并建议:
需要 ingest 哪些论文来填补
可能的搜索方向(arXiv 关键词、Semantic Scholar 查询)
Step 4: 评估 crystallize 价值
判断回答是否值得写回 wiki(即使用户未指定 --crystallize,也给出建议)
Crystallize 值得的信号:
回答综合了多篇论文的信息,形成了新的跨论文洞察
回答揭示了一个 wiki 中尚未显式记录的概念
回答发现了一个可验证的新断言(claim)
回答回应了 open_questions.md 中的一个已知缺口
Crystallize 不值得的信号:
回答只是复述了单一页面的内容
问题是简单事实查询(如 "LoRA 是哪年发表的?")
回答主要依赖推测而非 wiki 中的证据
在回答末尾附带 crystallize 建议:💡 Crystallize 建议:[值得/不必要] — [原因]
Step 5: Crystallize 回 wiki(若用户确认或指定了 --crystallize)
根据回答内容选择 crystallize 目标:
Case A — 写入 outputs/(默认):
生成 slug:python3 tools/research_wiki.py slug "<query-summary>"
创建 wiki/outputs/{query-slug}.md:---
title: ""
slug: ""
query: "" # 原始问题
source_pages: [] # 回答引用的所有页面 slugs
date_created: YYYY-MM-DD
---
正文为回答内容(保留 wikilinks)
为每个引用的源页面添加 graph edge:python3 tools/research_wiki.py add-edge wiki/ --from outputs/<slug> --to papers/<source-slug> --type derived_from --evidence "query answer"
Case B — 创建新 concept:
若回答揭示了新概念:按 CLAUDE.md concept 模板创建 wiki/concepts/{slug}.md
maturity: emerging
key_papers: 从回答引用中提取
添加 graph edges(concept → papers)
在相关 paper 页面的 ## Related 追加反向链接
Case C — 创建新 claim:
若回答发现新断言:按 CLAUDE.md claim 模板创建 wiki/claims/{slug}.md
status: proposed(从查询综合得出,非直接实验证据)
confidence: 基于引用 evidence 的强度设置初始值
source_papers: 从回答引用中提取
添加 graph edges(claim → papers)
在相关 paper 页面的 ## Related 追加反向链接
Step 6: 更新导航与图谱(仅 crystallize)
index.md :在对应分类下追加新建页面条目
log.md :python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | crystallized: <target-path>"
若未 crystallize:python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | answer-only"
重建 graph 派生文件 (仅 crystallize 创建了新页面时):python3 tools/research_wiki.py rebuild-context-brief wiki/
python3 tools/research_wiki.py rebuild-open-questions wiki/
Step 7: 报告给用户
输出摘要,包含:
检索的页面数量和列表
回答(带引用和格式)
知识缺口标注(若有)
Crystallize 建议或执行结果
后续建议(推荐 ingest 的论文、相关的 open questions)
Constraints
不得虚构 :回答必须基于 wiki 中的实际内容,不得凭 LLM 预训练知识编造
引用必须存在 :每个 [[slug]] 必须指向 wiki 中实际存在的页面
raw/ 只读 :不得修改 raw/ 下的文件
graph/ 仅通过 tools 维护 :不得手动编辑 graph/ 下的文件
Crystallize 需确认 :除非用户显式指定 --crystallize,否则仅建议但不执行写入
上下文限制 :检索页面数量 ≤ 15,避免超出上下文窗口
claim confidence 引用 :涉及 claim 时必须注明其 confidence 值和 status
gap 标注 :若问题涉及 open_questions.md 中的已知缺口,必须明确指出
outputs/ frontmatter 必须包含 query 和 source_pages :确保可追溯
Error Handling
context_brief.md 不存在 :运行 python3 tools/research_wiki.py rebuild-context-brief wiki/ 重建后重试
wiki 为空 :告知用户先运行 /init 或 /ingest 建立知识基础
无相关页面匹配 :坦诚告知 wiki 中无相关内容,建议搜索和 ingest 方向
crystallize slug 冲突 :追加数字后缀(如 query-result-2)
index.md 不存在 :运行 python3 tools/research_wiki.py init wiki/ 初始化后重试
Dependencies
Tools(via Bash)
python3 tools/research_wiki.py slug "<title>" — slug 生成
python3 tools/research_wiki.py add-edge wiki/ --from <id> --to <id> --type <type> --evidence "<text>" — 添加 graph edge
python3 tools/research_wiki.py rebuild-context-brief wiki/ — 重建压缩上下文
python3 tools/research_wiki.py rebuild-open-questions wiki/ — 重建知识缺口地图
python3 tools/research_wiki.py log wiki/ "<message>" — 追加日志
python3 tools/research_wiki.py init wiki/ — 初始化 wiki(fallback)
Skills(via Skill tool)
Shared References
.claude/skills/shared-references/citation-verification.md(Phase 3 创建)
1 --- 2 name: ask 3 description: 对 wiki 提问,综合检索相关页面后回答,好的回答可 crystallize 回 wiki 4 --- 5 6 # /ask 7 8 > 对 wiki 知识库提问。LLM 读取 context_brief.md 获取全局上下文,检索相关页面, 9 > 综合回答并附带引用。好的回答可以 crystallize 回 wiki——写入 outputs/ 或创建新的 10 > concept/claim 页面,让探索成果像 ingest 一样持续积累。 11 12 ## Inputs 13 14 - `question`:自然语言问题(如 "LoRA 和 Adapter 的核心区别是什么?") 15 - `--crystallize`(可选):若指定,将回答 crystallize 回 wiki(默认仅回答不写入) 16 - `--format`(可选):输出格式,默认 `markdown`,可选 `table` / `timeline` / `bullets` 17 18 ## Outputs 19 20 - **始终**:终端输出综合回答(含 `[[slug]]` 引用) 21 - **若 crystallize**: 22 - `wiki/outputs/{query-slug}.md` — 查询结果页面(默认 crystallize 目标) 23 - 或 `wiki/concepts/{slug}.md` — 若回答揭示了新的跨论文概念 24 - 或 `wiki/claims/{slug}.md` — 若回答发现了可验证的新断言 25 - 更新的 `wiki/graph/edges.jsonl`(crystallize 产生的关系) 26 - 更新的 `wiki/index.md` 和 `wiki/log.md` 27 28 ## Wiki Interaction 29 30 ### Reads 31 - `wiki/graph/context_brief.md` — 全局压缩上下文(claims, gaps, failed ideas, papers, edges) 32 - `wiki/index.md` — 页面目录,用于定位相关页面 33 - `wiki/graph/open_questions.md` — 开放问题,辅助判断问题是否涉及已知知识缺口 34 - `wiki/papers/*.md` — 与问题相关的论文页面 35 - `wiki/concepts/*.md` — 与问题相关的概念页面 36 - `wiki/claims/*.md` — 与问题相关的 claim 页面 37 - `wiki/topics/*.md` — 与问题相关的 topic 页面 38 - `wiki/people/*.md` — 若问题涉及特定研究者 39 - `wiki/ideas/*.md` — 若问题涉及研究想法或 failed ideas 40 - `wiki/experiments/*.md` — 若问题涉及实验结果 41 - `wiki/Summary/*.md` — 若问题涉及领域全景 42 43 ### Writes(仅 crystallize 模式) 44 - `wiki/outputs/{query-slug}.md` — CREATE(查询结果页面) 45 - `wiki/concepts/{slug}.md` — CREATE(新发现概念)或 EDIT(补充已有概念) 46 - `wiki/claims/{slug}.md` — CREATE(新发现断言)或 EDIT(补充 evidence) 47 - `wiki/graph/edges.jsonl` — APPEND(crystallize 产生的关系) 48 - `wiki/graph/context_brief.md` — REBUILD(若 crystallize 创建了新页面) 49 - `wiki/graph/open_questions.md` — REBUILD(若 crystallize 创建了新页面) 50 - `wiki/index.md` — EDIT(若 crystallize 创建了新页面) 51 - `wiki/log.md` — APPEND 52 53 ### Graph edges created(仅 crystallize) 54 - `output → paper`: `derived_from`(回答引用的论文) 55 - `output → concept`: `derived_from`(回答引用的概念) 56 - `output → claim`: `derived_from`(回答引用的 claim) 57 - `concept → paper`: `supports`(若新概念从论文中归纳) 58 - `claim → paper`: `supports`(若新 claim 从论文中提取) 59 60 ## Workflow 61 62 **前置**:确认工作目录为 wiki 项目根(包含 `wiki/`、`raw/`、`tools/` 的目录)。 63 设 `WIKI_ROOT=wiki/`。 64 65 ### Step 1: 加载全局上下文 66 67 1. 读取 `wiki/graph/context_brief.md`——获取 wiki 当前知识的压缩快照(claims, gaps, papers, edges) 68 2. 读取 `wiki/graph/open_questions.md`——了解已知的开放问题和知识缺口 69 3. 若两者都不存在,先重建: 70 ```bash 71 python3 tools/research_wiki.py rebuild-context-brief wiki/ 72 python3 tools/research_wiki.py rebuild-open-questions wiki/ 73 ``` 74 75 ### Step 2: 检索相关页面 76 77 1. 读取 `wiki/index.md`,基于 question 关键词匹配相关 slugs 78 2. 从 context_brief.md 中提取与 question 语义相关的 claims 和 papers 79 3. 按相关性排序,选取 top-K 页面(K ≤ 15,避免上下文过长) 80 4. 读取选中页面的完整内容 81 5. 若 question 涉及关系(如 "X 和 Y 的区别"),额外读取 `wiki/graph/edges.jsonl` 中连接 X 和 Y 的边 82 83 ### Step 3: 综合回答 84 85 1. 基于收集的页面内容,综合回答用户问题 86 2. 回答要求: 87 - **有引用**:每个关键论断必须附带 `[[slug]]` wikilink 指向来源页面 88 - **有结构**:根据 `--format` 参数组织输出(markdown / table / timeline / bullets) 89 - **识别不确定性**:对 wiki 中证据不足的部分明确标注 "wiki 中尚无充分证据" 90 - **标注知识缺口**:若问题触及 open_questions.md 中的已知缺口,明确指出 91 - **引用 claim confidence**:涉及 claim 时注明其 confidence 和 status 92 3. 若问题超出 wiki 当前知识范围,坦诚告知并建议: 93 - 需要 ingest 哪些论文来填补 94 - 可能的搜索方向(arXiv 关键词、Semantic Scholar 查询) 95 96 ### Step 4: 评估 crystallize 价值 97 98 1. 判断回答是否值得写回 wiki(即使用户未指定 `--crystallize`,也给出建议) 99 2. Crystallize 值得的信号: 100 - 回答综合了多篇论文的信息,形成了新的跨论文洞察 101 - 回答揭示了一个 wiki 中尚未显式记录的概念 102 - 回答发现了一个可验证的新断言(claim) 103 - 回答回应了 open_questions.md 中的一个已知缺口 104 3. Crystallize 不值得的信号: 105 - 回答只是复述了单一页面的内容 106 - 问题是简单事实查询(如 "LoRA 是哪年发表的?") 107 - 回答主要依赖推测而非 wiki 中的证据 108 4. 在回答末尾附带 crystallize 建议: 109 ``` 110 💡 Crystallize 建议:[值得/不必要] — [原因] 111 ``` 112 113 ### Step 5: Crystallize 回 wiki(若用户确认或指定了 --crystallize) 114 115 根据回答内容选择 crystallize 目标: 116 117 **Case A — 写入 outputs/(默认):** 118 1. 生成 slug:`python3 tools/research_wiki.py slug "<query-summary>"` 119 2. 创建 `wiki/outputs/{query-slug}.md`: 120 ```yaml 121 --- 122 title: "" 123 slug: "" 124 query: "" # 原始问题 125 source_pages: [] # 回答引用的所有页面 slugs 126 date_created: YYYY-MM-DD 127 --- 128 ``` 129 正文为回答内容(保留 wikilinks) 130 3. 为每个引用的源页面添加 graph edge: 131 ```bash 132 python3 tools/research_wiki.py add-edge wiki/ --from outputs/<slug> --to papers/<source-slug> --type derived_from --evidence "query answer" 133 ``` 134 135 **Case B — 创建新 concept:** 136 1. 若回答揭示了新概念:按 CLAUDE.md concept 模板创建 `wiki/concepts/{slug}.md` 137 2. maturity: emerging 138 3. key_papers: 从回答引用中提取 139 4. 添加 graph edges(concept → papers) 140 5. 在相关 paper 页面的 `## Related` 追加反向链接 141 142 **Case C — 创建新 claim:** 143 1. 若回答发现新断言:按 CLAUDE.md claim 模板创建 `wiki/claims/{slug}.md` 144 2. status: proposed(从查询综合得出,非直接实验证据) 145 3. confidence: 基于引用 evidence 的强度设置初始值 146 4. source_papers: 从回答引用中提取 147 5. 添加 graph edges(claim → papers) 148 6. 在相关 paper 页面的 `## Related` 追加反向链接 149 150 ### Step 6: 更新导航与图谱(仅 crystallize) 151 152 1. **index.md**:在对应分类下追加新建页面条目 153 2. **log.md**: 154 ```bash 155 python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | crystallized: <target-path>" 156 ``` 157 若未 crystallize: 158 ```bash 159 python3 tools/research_wiki.py log wiki/ "ask | <question-summary> | answer-only" 160 ``` 161 3. **重建 graph 派生文件**(仅 crystallize 创建了新页面时): 162 ```bash 163 python3 tools/research_wiki.py rebuild-context-brief wiki/ 164 python3 tools/research_wiki.py rebuild-open-questions wiki/ 165 ``` 166 167 ### Step 7: 报告给用户 168 169 输出摘要,包含: 170 - 检索的页面数量和列表 171 - 回答(带引用和格式) 172 - 知识缺口标注(若有) 173 - Crystallize 建议或执行结果 174 - 后续建议(推荐 ingest 的论文、相关的 open questions) 175 176 ## Constraints 177 178 - **不得虚构**:回答必须基于 wiki 中的实际内容,不得凭 LLM 预训练知识编造 179 - **引用必须存在**:每个 `[[slug]]` 必须指向 wiki 中实际存在的页面 180 - **raw/ 只读**:不得修改 `raw/` 下的文件 181 - **graph/ 仅通过 tools 维护**:不得手动编辑 `graph/` 下的文件 182 - **Crystallize 需确认**:除非用户显式指定 `--crystallize`,否则仅建议但不执行写入 183 - **上下文限制**:检索页面数量 ≤ 15,避免超出上下文窗口 184 - **claim confidence 引用**:涉及 claim 时必须注明其 confidence 值和 status 185 - **gap 标注**:若问题涉及 open_questions.md 中的已知缺口,必须明确指出 186 - **outputs/ frontmatter 必须包含 query 和 source_pages**:确保可追溯 187 188 ## Error Handling 189 190 - **context_brief.md 不存在**:运行 `python3 tools/research_wiki.py rebuild-context-brief wiki/` 重建后重试 191 - **wiki 为空**:告知用户先运行 `/init` 或 `/ingest` 建立知识基础 192 - **无相关页面匹配**:坦诚告知 wiki 中无相关内容,建议搜索和 ingest 方向 193 - **crystallize slug 冲突**:追加数字后缀(如 `query-result-2`) 194 - **index.md 不存在**:运行 `python3 tools/research_wiki.py init wiki/` 初始化后重试 195 196 ## Dependencies 197 198 ### Tools(via Bash) 199 - `python3 tools/research_wiki.py slug "<title>"` — slug 生成 200 - `python3 tools/research_wiki.py add-edge wiki/ --from <id> --to <id> --type <type> --evidence "<text>"` — 添加 graph edge 201 - `python3 tools/research_wiki.py rebuild-context-brief wiki/` — 重建压缩上下文 202 - `python3 tools/research_wiki.py rebuild-open-questions wiki/` — 重建知识缺口地图 203 - `python3 tools/research_wiki.py log wiki/ "<message>"` — 追加日志 204 - `python3 tools/research_wiki.py init wiki/` — 初始化 wiki(fallback) 205 206 ### Skills(via Skill tool) 207 - `/ingest` — 若建议用户补充知识时引用 208 209 ### Shared References 210 - `.claude/skills/shared-references/citation-verification.md`(Phase 3 创建)
Lambenthan/empiricalwiki/tree/main/.claude/skills/ask commit 0e60caa7f6
Frequently asked questions How do I install the Ask skill? Run npx skillmds@latest add lambenthan/ask in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Ask skill do? 对 wiki 提问,综合检索相关页面后回答,好的回答可 crystallize 回 wiki It is listed under Coding & Dev Tools on SkillMD.
Is Ask safe to use? SkillMD's automated safety review verdict for this skill is PASS. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. Capability flags: docs only. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Ask? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Ask free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Ask? Lambenthan (@lambenthan) published this skill. Their other Agent Skills are listed on their SkillMD profile.