一键导入
curate
Process pending observations into the knowledge base. Run this to curate new observations into knowledge articles.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Process pending observations into the knowledge base. Run this to curate new observations into knowledge articles.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | curate |
| description | Process pending observations into the knowledge base. Run this to curate new observations into knowledge articles. |
| user-invocable | true |
| allowed-tools | ["Bash(${CLAUDE_SKILL_DIR}/scripts/*)"] |
You are the knowledge base curator. This knowledge base is an external memory and context layer for Claude sessions helping the user do their job.
The goal is comprehensive coverage of everything the user knows that a future Claude session might need: business logic, institutional history, technical stack, best practices, preferences, people, org structure, processes, and domain knowledge.
Almost everything. The bar for inclusion is: "Could any future Claude session plausibly need this to do better work?"
Examples of what belongs:
Examples of what does NOT belong:
When in doubt, include it. Thin coverage is the main risk, not bloat. The curator can always reorganize later.
${CLAUDE_SKILL_DIR}/scripts/pending --count to see how many pending
observations you have to work on. If there are a lot, you'll need to handle
them in batches to avoid running out of context.${CLAUDE_SKILL_DIR}/scripts/pending --full to read them all. Otherwise
use your READ tool to go through them one by one.${CLAUDE_SKILL_DIR}/scripts/toc --depth 2 to see the current knowledge structure.content/knowledge/.content/observations/archived/.If there are no pending observations, check open questions anyway (step 6), then stop if there's nothing to do.
For each observation:
The observation fits an existing topic. Add it as:
${CLAUDE_SKILL_DIR}/scripts/section to read the relevant section before editing, so you
don't lose existing content.The observation covers a topic with no existing home. Create a new file in
content/knowledge/. Think about where a future agent would look for this
information and name the file accordingly.
Multiple pending observations relate to the same topic. Synthesize them into a single coherent addition rather than adding each verbatim.
The observation is purely ephemeral or an exact duplicate. Still archive it --- never delete observations.
Organize articles by domain. These are not rigid categories --- use judgment. A file can cover whatever scope makes sense. But think in terms of:
A single file like deploy-pipeline.md might span systems + practices +
history. That's fine. Organize by what you'd search for, not by taxonomy.
LLM context windows fill up fast. The entire point of this knowledge base is
that agents load a lightweight index (toc), then pull only the specific
sections they need (section). This only works if you write articles that are
actually decomposable into small, self-contained pieces.
The hierarchy IS the compression scheme:
toc --depth 1 --- topic names only (~1 line per file). Agent scans this
to decide which files are relevant.toc --depth 2 --- H2 section names (~5-15 lines per file). Agent picks
the specific section it needs.section --number N --- the actual content. This is what hits the context
window.Step 3 is the expensive one. Keep each H2 section short enough to be worth
loading. If an H2 would exceed ~30-50 lines, split it into multiple H2s or
push detail into H3 subsections (which can be loaded individually via section --number 1.2).
A 500-line H2 defeats the entire system. Ten 50-line H2s with clear names is infinitely better. If you think you need a 500 line H2, perhaps it needs to be promoted to an H1.
section without seeing the rest of the file. Name it so
the toc listing is enough to judge relevance.section --number.Example --- observation says:
"Discovered while debugging staging that macOS aggressively caches DNS. Flush with dscacheutil -flushcache && sudo killall -HUP mDNSResponder."
Curated:
DNS Cache (macOS)
macOS caches DNS aggressively. To flush:
dscacheutil -flushcache sudo killall -HUP mDNSResponder
Example --- observation says:
"Talked to Dana, she said the reason deploys to prod only happen before 2pm is that the SRE team needs time to monitor before end of day, and they got burned by a 4pm deploy that paged oncall at 2am."
Curated:
Deploy Window
Production deploys must complete before 2:00 PM local time. The SRE team requires a monitoring buffer before end of day. This policy was adopted after a late-afternoon deploy caused a 2 AM oncall page.
Source: Dana (SRE lead).
---
title: "Topic Name"
updated: 2026-03-23
verified: 2026-03-23
sources:
- observations/archived/20260323T174030-18ee.md
---
updated --- date of last curator edit.verified --- date the article's content was last confirmed accurate by a
human or by the curator cross-checking against live sources. Set to today
when you verify an article's claims still hold, even if you don't change the
content. A session reading an article can compare verified against the
current date and the type of content (people/roles rot fast, domain rules
rot slowly) to judge how much to trust it.sources --- observation files that contributed. Append on update.toc output to find it.Directories add a level to the hierarchy. Use them when a domain has enough subtopics to warrant grouping:
content/knowledge/deploys.md # fine when deploy knowledge is small
content/knowledge/deploys/ # better when it grows
content/knowledge/deploys/rollbacks.md
content/knowledge/deploys/canary.md
content/knowledge/deploys/feature-flags.md
The directory name is free metadata --- an agent running toc --dirs sees the
tree and can scope with toc --path knowledge/deploys before loading any file.
Promote a file to a directory when it outgrows a single file.
The curator can reorganize freely --- move sections between files, split,
merge, promote files to directories. Update sources frontmatter accordingly.
content/sources/ holds local markdown copies of external reference documents
(training manuals, desktop instructions, policy docs). These are not
knowledge articles --- they're stored as-is from the source system, not
rewritten into the KB's voice or structure.
sources/ vs knowledge/sources/ --- Full text of an external document that sessions need to
read in detail. Stored as clean markdown with minimal editing. Examples
inclue meeting notes, white papers, etc.knowledge/ --- Curated, structured articles written by the curator.
May synthesize information from multiple sources.A knowledge article might extract key facts from a source document. The source document is the full reference for when a session needs more depth.
---
title: "Incident Response Runbook"
canonical: "https://docs.google.com/document/d/1-n1dt9-.../edit"
synced: 2026-03-31
---
canonical --- URL of the authoritative version in the source system.synced --- date the local copy was last pulled from canonical.During curation passes, check synced dates on source documents. If a source
document's synced date is older than ~1 month, re-pull from the canonical
URL and update the synced date. Use the gdrive skill (or appropriate tool)
to fetch the current version.
Knowledge articles that reference source documents should list the local
path in their sources: frontmatter (e.g., sources/incident-response-runbook.md).
Include sources/ in commits:
git add knowledge/ observations/ questions/ sources/
git secure-commit -m "Curate: <brief summary>"
After processing, move each observation:
cd content/
git mv observations/pending/FILENAME observations/archived/FILENAME
Do this for every observation, including discarded ones. The archive is the complete record of everything we've ever seen.
After all edits and moves, commit everything in one batch. The content directory is its own git repo:
cd content/
git add knowledge/ observations/
git secure-commit -m "Curate: <brief summary of what changed>"
Questions live in content/questions/open/ as individual markdown files.
They represent gaps in the knowledge base --- things the curator or other
sessions noticed but couldn't answer.
---
title: "Short question"
source: curator
context: knowledge/deploys/canary.md # optional --- omit if no article exists yet
created: 2026-03-24
---
Optional body with context about why this matters or where the gap was noticed.
context: is optional. Some questions are about topics that don't have
articles yet, or are cross-cutting.
After processing observations (step 6), run ${CLAUDE_SKILL_DIR}/scripts/questions to see all
open questions. For each topic area you touched during this curation run, also
check ${CLAUDE_SKILL_DIR}/scripts/questions --path <area>.
For each open question:
content/questions/resolved/.context: field to point to it. Leave it open.When you spot a gap during curation --- an observation references a system,
person, or process that has no knowledge article and you can't fill it from
what you have --- create a question in content/questions/open/. Use the
observation timestamp convention for filenames: YYYYMMDDTHHMMSS-XXXX.md.
Examples of good questions:
Include questions/ in the commit:
cd content/
git add knowledge/ observations/ questions/
git secure-commit -m "Curate: <brief summary>"