research-with-sources
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseResearch — gather sources and write provisional findings
研究 — 收集来源并撰写临时研究结果
This skill is pack guidance. The platformskill (read/write/preview/linking/grounding rules) still governs every markdown operation — this layers the procedure on top./open-knowledge
Conduct evidence-driven research on a topic and produce a provisional research article under . Provisional, not canonical: research articles capture findings, trade-offs, and open questions at a point in time. They are promoted to canonical articles via the skill only when decisions solidify.
research//consolidate-notesThe content directory is the resolved — read it with if you don't already know it. Paths below are relative to it.
content.dirconfig({ key: 'content.dir' })本技能属于套件指导内容。平台的技能(读写/预览/链接/落地规则)仍管控所有Markdown操作——本技能是在其基础上叠加流程规范。/open-knowledge
针对某个主题开展循证研究,并在目录下生成一篇临时研究文章。临时而非标准:研究文章记录特定时间点的发现、权衡因素和待解决问题。只有当决策确定后,才会通过技能将其升级为标准文章。
research//consolidate-notes内容目录为已解析的——若未知可通过读取。以下路径均为相对该目录的路径。
content.dirconfig({ key: 'content.dir' })Three paths
三种路径
- Path A — Research article (DEFAULT): A persistent provisional article with an inline frontmatter list pointing at raw sources captured via the ingest procedure. This is the default unless the user explicitly opts out.
sources: - Path B — Direct answer: Findings delivered in conversation only. Requires explicit user request (e.g., "just tell me", "no doc needed", "quick answer").
- Path C — Update existing research: Surgical additions/corrections to an existing research article. Triggered when the user references an existing research doc or says "update/refresh/extend."
Path A is the default because provisional articles compound over time; spoken answers do not.
- 路径A — 研究文章(默认): 持久化的临时文章,包含内嵌的前置元数据列表,指向通过捕获流程保存的原始来源。除非用户明确选择其他路径,否则默认使用此路径。
sources: - 路径B — 直接回答: 仅在对话中交付研究结果。需要用户明确请求(例如:“直接告诉我”、“不需要文档”、“快速回答”)。
- 路径C — 更新现有研究: 对现有研究文章进行针对性补充/修正。当用户提及现有研究文档或表示“更新/刷新/扩展”时触发。
路径A为默认选项,因为临时文章会随时间积累价值;而口头回答无法留存。
Autonomy mode
自主模式
| Mode | Behavior | How entered |
|---|---|---|
| Supervised (default) | Stop at the scoping gate for user rubric confirmation. Route coverage decisions interactively. | Default when a user drives the session. |
| Headless | Auto-confirm rubric after proposing it. Auto-select routing decisions. Skip interactive prompts. All other gates (scan, analysis, validation, grounding) still enforced. | Explicit "don't wait for me", "just proceed", "run headless" — or non-interactive container environments. |
In headless mode, propose the rubric AND proceed immediately. Mark the Scoping task completed after proposing.
| 模式 | 行为 | 进入方式 |
|---|---|---|
| 监督模式(默认) | 在范围界定环节暂停,等待用户确认研究准则。交互式选择路径决策。 | 用户主导会话时默认启用。 |
| 无头模式 | 提出研究准则后自动确认。自动选择路径决策。跳过交互式提示。其他所有环节(扫描、分析、验证、落地)仍需执行。 | 用户明确要求“不用等我”、“直接进行”、“运行无头模式”——或在非交互式容器环境中。 |
在无头模式下,提出研究准则后立即继续执行。提出准则后标记范围界定任务为已完成。
Mandatory execution order
强制执行顺序
Hard gates — do NOT skip ahead. If you find yourself about to run a or without completing Steps 0-2, STOP — you skipped a gate.
WebFetchWebSearch- Step 0: Create workflow checkpoint tasks — ALWAYS the first action.
- Step 1: Scan existing coverage + route — scan the content directory for prior work; classify coverage; present options before new research begins.
- Step 2: Collaborative scoping — propose a research rubric. In Supervised mode, STOP and WAIT for user confirmation before any external fetch.
- Step 3: Capture raw sources via ingest — preserve before analyzing.
- Step 4: Read + analyze — third-party/external by default; first-party codebase only when the user explicitly requests.
- Step 5: Write the research article — Path A only.
- Step 6: Link aggressively + file valuable Q&A back.
- Step 7: Validate — frontmatter, dead-links, sources alignment.
- Step 8: Recap + follow-up directions.
Path B shortcut: If the user explicitly requested a direct answer in Step 2, skip Steps 5 and 7. Steps 0, 1, 3, 4, 6, 8 still apply (evidence discipline doesn't relax just because output is conversational).
硬性环节 — 不得跳过。 若发现未完成步骤0-2就准备运行或,请停止——你跳过了必要环节。
WebFetchWebSearch- 步骤0:创建工作流检查点任务 — 始终是第一项操作。
- 步骤1:扫描已有内容 + 选择路径 — 扫描内容目录中的已有成果;分类内容覆盖情况;开展新研究前向用户提供选项。
- 步骤2:协作范围界定 — 提出研究准则。在监督模式下,停止并等待用户确认后再进行外部抓取。
- 步骤3:通过捕获流程保存原始来源 — 先留存再分析。
- 步骤4:阅读 + 分析 — 默认分析第三方/外部内容;仅当用户明确要求时才分析第一方代码库。
- 步骤5:撰写研究文章 — 仅适用于路径A。
- 步骤6:全面关联 + 归档有价值的问答。
- 步骤7:验证 — 检查前置元数据、失效链接、来源一致性。
- 步骤8:总结 + 后续研究方向。
路径B shortcut: 若用户在步骤2中明确要求直接回答,跳过步骤5和7。步骤0、1、3、4、6、8仍需执行(即使输出为对话形式,证据规范也不能放松)。
Report framing default: external / third-party sources
默认报告框架:外部/第三方来源
Research articles default to external framing — investigating third-party topics, technologies, concepts, public repos, papers, official docs. Do NOT mix the user's own codebase analysis into the research article unless the user explicitly asks. Mixing drifts findings from factual synthesis toward opinion-forming applied to the organization, reducing factual fidelity.
- Default: external sources (web, open-source repos, papers, official APIs).
- Exception: if the user asks "research how our X compares to Y" or "include our codebase," include it — but clearly separate first-party observations from third-party findings in the article so a reader can distinguish externally-verifiable facts from organization-specific takes.
研究文章默认采用外部框架——调查第三方主题、技术、概念、公共仓库、论文、官方文档。除非用户明确要求,否则不要将用户自身代码库分析混入研究文章。 混合内容会使研究结果从事实整合偏向基于组织的观点形成,降低事实准确性。
- 默认: 外部来源(网页、开源仓库、论文、官方API)。
- 例外: 若用户要求“研究我们的X与Y的对比”或“包含我们的代码库”,则可纳入——但需在文章中明确区分第一方观察结果与第三方研究发现,以便读者区分可外部验证的事实与组织特定观点。
Persist as you go — the article IS your checkpoint
逐步留存 — 文章即为检查点
PERSIST AS YOU GO — crash-safe checkpoint rule. The single most expensive failure this procedure produces is completed research lost to a mid-session rate limit or crash — analysis held in context, never written, discarded when the session died. The user paid for work that vanished. The knowledge base is the checkpoint; two rules make every step crash-safe:
- Ingest each source the moment you fetch it (Step 3), one at a time — never fetch all sources and ingest them in a trailing batch. An ingested source survives a crash; a fetched-but-unwritten one does not.
- Create the article skeleton early and fill it section-by-section as you read (Steps 4-5), not in one final write at the end. After you analyze each source, its findings into the article before moving to the next. A crash after reading five of eight sources then leaves five sections safely in the KB; you resume by reading the partial article back, not by re-running the whole sweep.
edit
Structured notes that live only in your context are not persisted work. If a finding is worth keeping, it belongs in an ingested source or in the article — written, not held.
逐步留存 — 防崩溃检查点规则。 本流程最严重的失败场景是:研究已完成,但因会话中途触发速率限制或崩溃导致成果丢失——分析内容仅存于上下文,从未写入,会话结束后被丢弃。用户为已完成的工作付费,但成果消失。知识库即为检查点;以下两条规则确保每一步都具备防崩溃能力:
- 抓取后立即逐个捕获每个来源(步骤3) — 不要先抓取所有来源再批量捕获。已捕获的来源可在崩溃后留存;已抓取但未写入的来源则会丢失。
- 尽早创建文章框架,并在阅读时逐步填充内容(步骤4-5),而非在最后一次性撰写。 分析完每个来源后,立即将其发现内容写入文章对应部分,再处理下一个来源。若在读完8个来源中的5个后崩溃,文章中已安全保存5个部分的内容;恢复时只需读取部分文章,无需重新执行整个流程。
edit
仅存于上下文的结构化笔记不属于留存成果。若某个发现值得保留,应将其写入已捕获的来源或文章中——以书面形式留存,而非仅保存在上下文。
Step 0: Create workflow checkpoint tasks
步骤0:创建工作流检查点任务
ALWAYS THE FIRST ACTION. Before any read, any scan, any fetch — create tasks. They persist across context compaction, make skipped steps immediately visible, and show progress to the user.
Create these tasks via your host's task system ( in Claude; equivalent elsewhere):
TaskCreateTaskCreate: "Research: Scan existing coverage + route" → start as in_progress
TaskCreate: "Research: Collaborative scoping — rubric gate" → pending, blocked by #1
TaskCreate: "Research: Capture sources via ingest" → pending, blocked by #2
TaskCreate: "Research: Read + analyze" → pending, blocked by #3
TaskCreate: "Research: Write the research article" → pending, blocked by #4
TaskCreate: "Research: Link aggressively + file Q&A back" → pending, blocked by #5
TaskCreate: "Research: Validate (frontmatter + dead-links)" → pending, blocked by #6
TaskCreate: "Research: Recap + follow-up directions" → pending, blocked by #7Use the host's blocked-by relation to enforce ordering. As you complete each step, mark the task and the next task .
completedin_progressPath B variant: If scoping determines Path B (direct answer), drop tasks #5 and #7 — they don't apply.
Path C variant: If Step 1 routes to Path C (update existing), drop tasks #3 and #5 (ingest is usually unnecessary and no new article is created) and rename task #4 to "Research: Read existing article + diff deltas."
Why tasks: the observed failure mode is the agent jumping straight to without scanning or scoping. Tasks make the skipped gates obvious to the user mid-session.
WebFetch始终是第一项操作。 在任何读取、扫描、抓取之前——创建任务。任务可在上下文压缩后留存,能立即显示跳过的步骤,并向用户展示进度。
通过宿主的任务系统创建以下任务(Claude中为;其他平台为对应功能):
TaskCreateTaskCreate: "Research: Scan existing coverage + route" → 标记为in_progress
TaskCreate: "Research: Collaborative scoping — rubric gate" → 标记为pending,被#1阻塞
TaskCreate: "Research: Capture sources via ingest" → 标记为pending,被#2阻塞
TaskCreate: "Research: Read + analyze" → 标记为pending,被#3阻塞
TaskCreate: "Research: Write the research article" → 标记为pending,被#4阻塞
TaskCreate: "Research: Link aggressively + file Q&A back" → 标记为pending,被#5阻塞
TaskCreate: "Research: Validate (frontmatter + dead-links)" → 标记为pending,被#6阻塞
TaskCreate: "Research: Recap + follow-up directions" → 标记为pending,被#7阻塞使用宿主的阻塞关系强制执行顺序。完成每个步骤后,将该任务标记为,并将下一个任务标记为。
completedin_progress路径B变体: 若范围界定确定为路径B(直接回答),则移除任务#5和#7——它们不适用。
路径C变体: 若步骤1选择路径C(更新现有研究),则移除任务#3和#5(通常无需捕获来源,也无需创建新文章),并将任务#4重命名为“Research: Read existing article + diff deltas”。
创建任务的原因:常见失败场景是Agent直接跳至,未进行扫描或范围界定。任务可使用户在会话过程中立即发现跳过的必要环节。
WebFetchStep 1: Scan existing coverage + route
步骤1:扫描已有内容 + 选择路径
MANDATORY FIRST RESEARCH STEP. Before any external fetch, scan what the knowledge base already holds.
研究的强制第一步。 在任何外部抓取之前,先扫描知识库中已有的内容。
Phase 1: Check existing knowledge
阶段1:检查已有知识
If the user explicitly references an existing research article (names it, links it, says "update/refresh/extend"):
→ Skip the scan. Go directly to Path C.
Otherwise, always scan first:
- — returns matching files with frontmatter enrichment so you can judge relevance without opening each.
exec("grep -rln <topic-keyword> <content-dir>") - — surfaces folder layout and most-recent-updated doc per subdir.
exec("ls -A <content-dir>") - For the 1-3 most promising candidates, — returns full doc + frontmatter + backlinks + recent shadow-repo activity.
exec("cat <path>")
Classify:
| Coverage | What it means | Route to |
|---|---|---|
| Fully covered | An existing article directly answers the question with evidence | Present findings; offer to elaborate, verify, extend, or explicitly new-report |
| Partially covered | Related research exists; the specific question is a natural extension | Offer: (1) extend existing via Path C, (2) new article via Path A |
| Not covered | No meaningful overlap | Proceed to Path A (default) or Path B |
若用户明确提及现有研究文章(命名、链接、表示“更新/刷新/扩展”):
→ 跳过扫描。直接进入路径C。
否则,始终先扫描:
- — 返回匹配文件及前置元数据,无需打开每个文件即可判断相关性。
exec("grep -rln <topic-keyword> <content-dir>") - — 显示文件夹结构及每个子目录中最近更新的文档。
exec("ls -A <content-dir>") - 对于1-3个最具相关性的候选文件,执行— 返回完整文档+前置元数据+反向链接+最近影子仓库活动。
exec("cat <path>")
分类内容覆盖情况:
| 覆盖情况 | 含义 | 跳转路径 |
|---|---|---|
| 完全覆盖 | 已有文章通过证据直接回答问题 | 展示研究结果;提供详细说明、验证、扩展或重新报告选项 |
| 部分覆盖 | 存在相关研究;特定问题是自然延伸 | 提供选项:(1) 通过路径C扩展现有文章,(2) 通过路径A创建新文章 |
| 未覆盖 | 无有意义的重叠内容 | 继续执行路径A(默认)或路径B |
Phase 2: Present routing options (Supervised mode)
阶段2:提供路径选择选项(监督模式)
Fully covered:
"We already have research on this in. Here's what it found: [2-4 key findings]. Options: (1) use as-is, (2) verify / refresh (article is from [date]), (3) extend on [specific dimension], (4) new angle if this is a different framing."<path>
Let the user choose. Do NOT start new research when existing research already answers the question.
Partially covered:
"We have related research incovering [scope]. Your question about [topic] isn't directly answered but it's a natural extension. Options: (1) extend existing via Path C, (2) start new article via Path A. I'd recommend [1 or 2] because [reason]."<path>
Not covered:
Proceed to Step 2 (scoping). If the user asked for a quick answer, flag that Path B may apply and confirm in Step 2's scoping exchange.
Headless mode: auto-select — fully-covered → proceed to new article on the specific angle the caller requested; partially-covered → start new article; not-covered → Path A.
完全覆盖:
“我们已有关于此主题的研究,位于。研究结果如下:[2-4个关键发现]。选项:(1) 直接使用,(2) 验证/刷新(文章发布于[日期]),(3) 在[特定维度]上扩展,(4) 若为不同框架则从新角度研究。”<path>
让用户选择。当已有研究已回答问题时,不要开展新研究。
部分覆盖:
“我们在有相关研究,覆盖[范围]。你关于[主题]的问题未被直接回答,但属于自然延伸。选项:(1) 通过路径C扩展现有文章,(2) 通过路径A创建新文章。我推荐[1或2],原因是[理由]。”<path>
未覆盖:
继续执行步骤2(范围界定)。若用户要求快速回答,需指出可能适用路径B,并在步骤2的范围界定对话中确认。
无头模式: 自动选择——完全覆盖→针对调用者请求的特定角度创建新文章;部分覆盖→创建新文章;未覆盖→路径A。
Scan discipline
扫描规范
- Do not skip the scan. Even 30 seconds of grep + cat prevents duplicate research AND gives the user context on what's already known.
- Bias toward extending (Path C) when topics are semantically coherent — one comprehensive article beats two overlapping ones.
- Bias toward new (Path A) when framing, audience, or primary question differs materially.
- 不得跳过扫描。 即使仅用30秒执行grep + cat操作,也能避免重复研究,并为用户提供已有知识的上下文。
- 当主题语义连贯时,优先选择扩展(路径C) — 一篇全面的文章优于两篇重叠的文章。
- 当框架、受众或核心问题存在实质性差异时,优先选择创建新文章(路径A)。
Step 2: Collaborative scoping (Supervised STOP gate)
步骤2:协作范围界定(监督模式停止环节)
HARD GATE (Supervised mode). Do NOT start external research until the user confirms the rubric. After proposing it, STOP and WAIT for user response. Only then mark the Scoping task completed.
In headless mode: propose the rubric AND proceed. Mark the task completed after proposing.
硬性环节(监督模式)。 在用户确认研究准则之前,不得开展外部研究。提出准则后,停止并等待用户回复。仅在用户确认后,才标记范围界定任务为已完成。
无头模式: 提出研究准则后立即继续执行。提出准则后标记任务为已完成。
Propose a rubric
提出研究准则
Return this structure to the user:
undefined向用户返回以下结构:
undefinedProposed research rubric
拟议研究准则
Question: [narrowed from the original topic — concrete, answerable, bounded]
Dimensions to investigate: [3-7 facets]
- [Dimension 1]
- [Dimension 2] ...
Candidate sources: [3-8 initial guesses]
- [Source 1 — why it's relevant]
- [Source 2 — why it's relevant] ...
Success criteria: [2-3 concrete outcomes — "the article cites X authoritative sources", "open questions are marked explicitly", etc.]
Output format: Path A (article) | Path B (direct answer) | Path C (update )
<existing-article>undefined问题: [从原始主题细化而来——具体、可回答、有边界]
需调查的维度: [3-7个方面]
- [维度1]
- [维度2] ...
候选来源: [3-8个初步设想]
- [来源1 — 相关性说明]
- [来源2 — 相关性说明] ...
成功标准: [2-3个具体成果——“文章引用X个权威来源”、“明确标记待解决问题”等]
输出格式: 路径A(文章)| 路径B(直接回答)| 路径C(更新)
<existing-article>undefinedScoping discipline
范围界定规范
- If the original topic is vague ("research LLM agents"), narrow it before fetching: "What specific agents? For what decision? Over what time horizon?"
- If the topic is itself a URL, treat that URL as the anchor and widen to 2-4 adjacent authoritative sources.
- Name the decision this research informs. Research without a decision context meanders.
- Do not over-specify the rubric — the user can adjust. Propose, don't prescribe.
- 若原始主题模糊(如“研究LLM Agent”),在抓取前先细化:“具体研究哪些Agent?用于什么决策?时间范围是多久?”
- 若主题本身是URL,将该URL作为核心来源,并扩展至2-4个相关权威来源。
- 明确说明本研究支持的决策。缺乏决策背景的研究会偏离方向。
- 不要过度指定准则——用户可进行调整。提出建议,而非强制要求。
Step 3: Capture raw sources via ingest
步骤3:通过捕获流程保存原始来源
For each relevant URL, paper, or document in the confirmed rubric, follow the ingest procedure — it lives in the platform skill at , not in this pack. Typical research pulls 3-8 sources. Too few → thin synthesis. Too many → you'll be reading for the rest of the session.
/open-knowledgereferences/ingest-and-sources.md- Don't skip ingest. Raw preservation separates capture from interpretation and makes research reproducible. An article without preserved sources is just opinion; an article with preserved sources is a trail someone else can follow.
- If a fetch fails for a source you specifically need, stop and ask the user to paste it — don't silently drop it. Write-time fabrication of missing evidence is the biggest failure mode.
- If a fetch returns an obvious summary instead of the raw bytes (some LLM-backed fetch tools do this), note it and try a raw alternative (, or ask the user to paste).
curl -sL <url>
针对已确认准则中的每个相关URL、论文或文档,遵循捕获流程——该流程位于平台技能的中,而非本套件。典型研究需抓取3-8个来源。 来源过少→整合内容单薄;来源过多→会话时间将全部用于阅读。
/open-knowledgereferences/ingest-and-sources.md- 不得跳过捕获流程。 原始留存将捕获与解读分离,使研究具备可重复性。无留存来源的文章只是观点;有留存来源的文章则是可追溯的研究轨迹。
- 若所需来源抓取失败,停止并请用户粘贴该内容——不要默默忽略。撰写时编造缺失证据是最严重的失败场景。
- 若抓取返回的是明显的摘要而非原始内容(部分基于LLM的抓取工具会出现此情况),需记录并尝试原始抓取方式(如,或请用户粘贴)。
curl -sL <url>
Step 4: Read + analyze
步骤4:阅读 + 分析
Read each ingested source carefully. Also load:
- Existing canonical articles on the topic — (returns frontmatter + backlinks + shadow-repo activity).
exec("cat <path>") - Prior research on adjacent topics — same: for OpenKnowledge markdown.
exec("cat <path>") - Relevant source code — ONLY if the user asked for first-party analysis. Use native for
Read/.ts/ etc.;.jsfor in-scopeexec/.md..mdx - Project context — wherever the project keeps design material.
Take structured notes:
- Key claims and their evidence — every claim needs a source you can point at
- Trade-offs between options
- Contradictions between sources — these are often the most valuable part of the article
- Unknowns and open questions — the boundary of what you know
- Relevance to the specific decision at hand
Write these notes into the article as you take them, not after (MUST — see Persist as you go above). Create the article skeleton — frontmatter + the Step 5 section headings — before you start reading, then each source's findings into the relevant section the moment you finish analyzing it. The "notes" ARE the article's Findings section in progress; don't hold them in context to transcribe in one pass at Step 5. A rate limit between here and Step 5 must not be able to discard analysis you've already done. By the time you reach Step 5 the article is mostly written, and Step 5 becomes finalize-and-polish.
edit仔细阅读每个已捕获的来源。同时加载:
- 现有标准文章 关于该主题的内容 — (返回前置元数据+反向链接+影子仓库活动)。
exec("cat <path>") - 相邻主题的先前研究 — 同样:对OpenKnowledge Markdown文件执行。
exec("cat <path>") - 相关源代码 — 仅当用户要求第一方分析时加载。对/
.ts等文件使用原生.js;对范围内的Read/.md文件使用.mdx。exec - 项目上下文 — 项目保存设计素材的位置。
记录结构化笔记:
- 关键主张 及其证据 — 每个主张都需有可指向的来源
- 选项间的权衡因素
- 来源间的矛盾 — 这些通常是文章最有价值的部分
- 未知内容 和待解决问题 — 已知边界
- 与特定决策的相关性
将这些笔记实时写入文章,而非事后整理(必须遵循上述逐步留存规则)。 在开始阅读前创建文章框架——前置元数据+步骤5的章节标题,然后在分析完每个来源后立即将其发现内容写入对应章节。“笔记”即为文章“研究结果”章节的草稿;不要将其保存在上下文最后一次性转录至步骤5。步骤4到步骤5之间的速率限制不得导致已完成的分析丢失。到达步骤5时,文章应已基本完成,步骤5仅需进行最终完善和润色。
editGrounding discipline
落地规范
Every factual claim in the article must cite its source inline. No unsourced speculation. If you don't have evidence: (a) run another search and cite it, (b) mark inline , or (c) don't write the claim. Never fabricate.
(TODO: needs source)文章中的每个事实主张都必须内嵌引用来源。不得出现无来源的推测。若无证据:(a) 再次搜索并引用来源,(b) 内嵌标记,或(c) 不写入该主张。绝对不得编造内容。
(TODO: needs source)Step 5: Write the research article (Path A only)
步骤5:撰写研究文章(仅适用于路径A)
If you followed Persist as you go, the article already exists and is substantially filled from Step 4 — this step finalizes it (fill any remaining sections, tighten the recommendation, run the structure + validation checks below) rather than writing from a blank doc. If it does not exist or is thin, and you are resuming after an interruption: the partial article back first and fill only the missing sections — and note that any Step 4 analysis that was never written to the KB was lost when the session broke, so re-derive only what's actually missing. Creating the doc from scratch here means the incremental rule was skipped; that's the failure mode, not the happy path.
exec("cat <path>")Save a markdown document inside the content directory. Path convention:
- If the project adopted the three-layer lifecycle (→
external-sources/→research/), save underarticles/.research/<slug>.md - If the project has an existing docs/reports/specs layout, match it.
- Large topics warrant a subfolder: .
research/<topic>/<subtopic>.md
Filename: descriptive, kebab-case (, ). No dates — dates go in frontmatter.
crdt-alternatives-for-editor.mdllm-wikis-and-knowledge-bases.md若遵循逐步留存规则,文章已存在且从步骤4开始已大幅填充内容——本步骤仅需最终完善(填充剩余章节、优化建议、执行以下结构+验证检查),而非从零开始撰写。若文章不存在或内容单薄,且是中断后恢复:先执行读取部分文章,再填充缺失章节——需注意,任何未写入知识库的步骤4分析内容都会在会话中断时丢失,因此仅需重新推导实际缺失的内容。在此处从零创建文档意味着违反了逐步留存规则;这是失败场景,而非正常流程。
exec("cat <path>")在内容目录中保存Markdown文档。路径约定:
- 若项目采用三层生命周期(→
external-sources/→research/),保存至articles/。research/<slug>.md - 若项目已有docs/reports/specs布局,匹配该布局。
- 大型主题需创建子文件夹:。
research/<topic>/<subtopic>.md
文件名:描述性、短横线分隔命名(如、)。不包含日期——日期写入前置元数据。
crdt-alternatives-for-editor.mdllm-wikis-and-knowledge-bases.mdFrontmatter
前置元数据
yaml
---
title: Descriptive title
description: One-line summary of the research question
status: provisional
date: YYYY-MM-DD
tags:
- research
- <topic-tag>
sources:
- <path-to-ingested-source-1>.md
- <path-to-ingested-source-2>.md
---yaml
---
title: 描述性标题
description: 研究问题的单行摘要
status: provisional
date: YYYY-MM-DD
tags:
- research
- <topic-tag>
sources:
- <path-to-ingested-source-1>.md
- <path-to-ingested-source-2>.md
---Structure
结构
markdown
undefinedmarkdown
undefinedQuestion
问题
[What specific question does this research answer? Be precise.]
[本研究回答的具体问题是什么?请精准描述。]
Context
背景
[Why does this matter? What decision does it inform? Who is the reader?]
[为什么这个问题重要?它支持什么决策?读者是谁?]
Findings
研究结果
[Main findings organized by theme, option, or criterion. Every claim cites a source inline.]
[按主题、选项或标准组织的主要发现。每个主张都内嵌引用来源。]
Theme / Option 1
主题/选项1
- Pros — with evidence links
- Cons — with evidence links
- Evidence: Source A, Source B
- 优势 — 附证据链接
- 劣势 — 附证据链接
- 证据:来源A、来源B
Theme / Option 2
主题/选项2
...
...
Trade-offs
权衡因素
[What you gain vs. lose with each option. A comparison table often helps.]
[每个选项的利弊对比。对比表格通常有帮助。]
Open questions
待解决问题
[What you still don't know — candidates for further research, prototyping, or human-judgment decisions.]
[仍未知的内容——未来研究、原型开发或人工决策的候选方向。]
Tentative recommendation
临时建议
[Your best guess, clearly marked as tentative. Explain the reasoning so a future reader can re-evaluate when new information arrives.]
[你的最佳推测,明确标记为临时建议。解释推理过程,以便未来读者在获得新信息时重新评估。]
Further reading
延伸阅读
[Links to the ingested sources + adjacent research + any canonical articles on the topic.]
undefined[已捕获来源的链接+相邻研究+该主题的所有标准文章。]
undefinedVoice
语气
- Provisional, not canonical. Use "tentative", "initial findings", "based on current understanding."
- Do NOT write as if it were canonical — that's misleading. Canonicality is the skill's job, after decisions land.
/consolidate-notes - Explicit about uncertainty. Research is the layer where uncertainty is allowed to live.
- 临时,而非标准。 使用“临时”、“初步发现”、“基于当前认知”等表述。
- 不得写成标准文章的语气 — 这会产生误导。标准化是技能的工作,需在决策确定后执行。
/consolidate-notes - 明确说明不确定性。 研究是允许存在不确定性的环节。
Step 6: Link aggressively + file valuable Q&A back
步骤6:全面关联 + 归档有价值的问答
Research articles are discovery surfaces. Under-linked research becomes an island nobody finds.
研究文章是发现入口。关联不足的研究将成为无人问津的孤岛。
Link discipline
关联规范
- Every noun-phrase that names another document is a link. Use standard markdown: .
[text](./relative/path.md) - Link sources inline where you cite them, not just in the frontmatter list:
sources:is stronger than a bareAccording to [LLM Agents](./external-sources/llm-agents.md)...entry.sources: - Cross-link sibling research: if an adjacent topic has its own research doc, link it under "Open questions" or inline. Readers following one thread should find the others.
- After writing, update 1-2 closely-related existing pages to link back to this research (usually under "Further reading" or "See also"). This is how the research becomes discoverable via backlinks.
- Never wrap links in backticks; never use HTML anchors — matches the platform skill's linking rules.
- 每个指代其他文档的名词短语都需设置链接。使用标准Markdown格式:。
[text](./relative/path.md) - 在引用来源的位置内嵌链接,而非仅在前置元数据列表中列出:
sources:比仅在根据[LLM Agents](./external-sources/llm-agents.md)...中列出更有效。sources: - 关联同级研究:若相邻主题有独立研究文档,在“待解决问题”或内嵌内容中链接该文档。读者跟随一个研究线索时应能找到其他相关线索。
- 撰写完成后,更新1-2个密切相关的现有页面,使其链接回本研究(通常在“延伸阅读”或“另请参阅”部分)。这是研究通过反向链接被发现的方式。
- 不要在反引号中包裹链接;不要使用HTML锚点——需符合平台技能的链接规则。
File valuable Q&A back
归档有价值的问答
If the user asked a specific question during the research session that produced a citable answer, capture it as its own short page alongside the research — not just as chat. Concrete questions with sourced answers are the highest-signal unit of knowledge you can produce.
- Short filename: ,
what-does-X-mean.mdhow-does-Y-work.md - Include the same frontmatter
sources: - Link the answer from this research doc under "Further reading"
- Answers too small to justify a separate file stay in chat; don't fragment
若用户在研究会话中提出的特定问题产生了可引用的答案,需将其作为独立短页面与研究文章一同归档——而非仅保留在聊天中。带有来源的具体问题和答案是可产出的最高价值知识单元。
- 短文件名:、
what-does-X-mean.mdhow-does-Y-work.md - 包含相同的前置元数据
sources: - 在本研究文档的“延伸阅读”部分链接该答案
- 过小的答案无需单独归档;避免碎片化
Step 7: Validate
步骤7:验证
Run this checklist before marking complete:
- File exists at the chosen path under the content directory
- Frontmatter has ,
title,description,status: provisional, and adatelistsources: - lists the new file with frontmatter enrichment
exec("ls -A <dir>") - returns clean — zero dead links (fix or remove every one)
links({ kind: 'dead', sourceDocNames: ['<path-without-ext>'] }) - Every factual claim in Findings cites a source inline
- Linked source files from Step 3 all exist (broken source links → ingest went wrong somewhere)
- At least 1-2 neighbor docs now link to this research (per Step 6's "After writing, update ..." rule)
标记完成前执行以下检查清单:
- 文件存在于内容目录的选定路径下
- 前置元数据包含、
title、description、status: provisional和date列表sources: - 列出带有前置元数据的新文件
exec("ls -A <dir>") - 返回无失效链接——修复或移除所有失效链接
links({ kind: 'dead', sourceDocNames: ['<path-without-ext>'] }) - 研究结果中的每个事实主张都内嵌引用来源
- 步骤3中链接的来源文件均存在(来源链接失效→捕获流程出现问题)
- 至少1-2个相关文档已链接回本研究(遵循步骤6中“撰写完成后更新...”规则)
Step 8: Recap + follow-up directions
步骤8:总结 + 后续研究方向
Close the loop with the user in conversation:
undefined在对话中与用户闭环:
undefinedRecap
总结
- [Finding 1 — with source]
- [Finding 2 — with source]
- [Key trade-off / contradiction surfaced]
- [1-2 open questions that remain]
Tentative recommendation: [state it in one sentence]
Follow-up research directions (Path A candidates for later):
- [Direction 1 — what would it investigate?]
- [Direction 2 — what would it investigate?]
- [Direction 3 — what would it investigate?]
Follow-ups should be **external-source investigations** — not actions on the user's codebase (those belong in a spec, not more research). Each direction should be a standalone topic someone could later research.
In headless mode, write the recap into the research article's "Further reading" section rather than prompting interactively.
---- [发现1 — 附来源]
- [发现2 — 附来源]
- [突出的关键权衡/矛盾]
- [1-2个仍待解决的问题]
临时建议: [用一句话表述]
后续研究方向(未来路径A候选):
- [方向1 — 研究内容是什么?]
- [方向2 — 研究内容是什么?]
- [方向3 — 研究内容是什么?]
后续研究方向应为**外部来源调查** — 而非针对用户代码库的操作(这些属于规范内容,而非研究)。每个方向应是可独立开展研究的主题。
在无头模式下,将总结写入研究文章的“延伸阅读”部分,而非交互式提示。
---Non-goals
非目标
- Don't promote to a canonical article. That's the skill's job after a decision actually lands. Premature canonicalization buries uncertainty and misleads future readers.
/consolidate-notes - Don't hide uncertainty. Research is the layer where "we don't know yet" is acceptable prose. Say it explicitly.
- Don't skip ingest. Always capture raw sources first, then analyze. An article without preserved sources is opinion.
- Don't skip the Step 1 scan. Duplicate research wastes the user's time AND misses chances to extend prior work.
- Don't skip the scoping gate in Supervised mode. The user's rubric shapes everything downstream; you cannot recover a wrong-scope article cheaply.
- Don't mix first-party codebase analysis into the article unless asked. Findings drift from factual synthesis to opinion when you do.
- Don't overwrite existing research silently. If the topic was researched before, either iterate (Path C) or create a clearly-named successor () and mark the old one as superseded.
crdt-alternatives-2.md
- 不要升级为标准文章。 这是技能的工作,需在决策确定后执行。过早标准化会掩盖不确定性,误导未来读者。
/consolidate-notes - 不要隐藏不确定性。 研究是允许使用“我们尚不清楚”表述的环节。明确说明。
- 不要跳过捕获流程。 始终先保存原始来源,再进行分析。无留存来源的文章只是观点。
- 不要跳过步骤1的扫描。 重复研究浪费用户时间,且错失扩展已有成果的机会。
- 不要在监督模式下跳过范围界定环节。 用户的准则决定了后续所有内容;修复范围错误的文章成本极高。
- 除非用户要求,否则不要将第一方代码库分析混入文章。 混合内容会使研究结果从事实整合偏向观点形成。
- 不要静默覆盖现有研究。 若主题已被研究过,要么迭代(路径C),要么创建命名清晰的后续文章(如)并标记旧文章为已取代。
crdt-alternatives-2.md