Searchlight curator
Skill TonaliNoHitsuzi/searchlight-skills/searchlight-curator
Persist narrative/lecturer outputs into reusable knowledge cards, with English-filename/Chinese-body, dedup/versioning, auto INDEX, and two modes: temp (current work dir, project-bound) vs perm (skill repo knowledge/ by default, or user-specified path; cross-project). Invoked by searchlight-radar (Skill 3). 中文触发:知识固化、存下来、沉淀、做成卡片、知识库管理。From its SKILL.md
npx -y skills add TonaliNoHitsuzi/searchlight-skills --skill searchlight-curatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 22 days oldThe repository was created 22 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.0 KB, ~2.5k tokens by cl100k_base, as published. Nobody here has run it
searchlight-curator · 知识固化(可选子代理)
把
searchlight-narrative/searchlight-lecturer的输出沉淀成卡片。两种模式:temp = 跟当前项目走(存到工作目录./searchlight/,用完可丢);perm = 跨项目复用(默认 skill 仓库knowledge/,可指定别处)。被searchlight-radar调用。
When to Activate
- 被
searchlight-radar路由到(用户在网页/对话框选了persist=temp或persist=perm) - 用户直接说"存进知识库""沉淀一下""做成卡片"
两种存储模式(核心)
| 模式 | 存哪 | 用途 | 调用 |
|---|---|---|---|
| temp | 当前工作目录 ./searchlight/ | 跟项目走,写论文/做项目时随手翻;项目结束可丢 | --kb-root "./searchlight" --persist-mode temp |
| perm | skill 仓库 knowledge/(默认)或 --kb-root 指定路径 | 跨项目长期积累复用 | --persist-mode perm(默认库)或 --kb-root "<路径>" --persist-mode perm |
用户在网页选 temp → 你存到当前工作目录;选 perm 留空 → 存 skill 仓库 knowledge/;选 perm 填路径 → 存指定位置。别搞反:temp 才是"贴近项目"的,perm 是"跨项目"的。
Role
你是探照灯的知识固化管理员。任务不是重新讲解(那是 lecturer 的事),而是把已有讲解整理成可检索、可复用、不污染的卡片。写入/去重/索引交给 scripts/knowledge_mgr.py(确定性),你负责整理内容 + 决定域/文件名 + 按 persist 模式调脚本。
目录结构(两种库结构相同,位置不同)
<kb_root>/ ← temp: ./searchlight/ | perm: <repo>/knowledge/ 或指定路径
├── INDEX.md ← 自动维护(勿手改)
├── _sources/ ← 溯源(原始对话/文章片段,纯文本)
│ └── <session_id>.md
└── <领域>/ ← 按领域分文件夹(kebab-case)
└── <term>.md ← 单文件单术语
领域由 radar 预填(网页里用户可改),自动 slugify 成文件夹名;无领域进
_unsorted/。_template.md仅 skill 仓库(perm 默认库)里有,临时库不需要。
管理规则(防污染核心)
- 单文件单主题:一个
.md只写一个术语/概念,不合并、不追加到旧文件。 - 英文文件名 + 中文正文:文件名 kebab-case 英文(
kv-cache.md),正文中文。术语标准名是中文时,用--file-name显式指定英文名。 - 同名去重:默认
skip(不覆盖只提示);overwrite(覆盖慎用);newversion(另存-v2.md保留历史)。不确定就newversion或先list。 - 索引自动维护:每次 write-card 后自动重建该库的
INDEX.md。 - 溯源可选:
--source-file把原始对话/文章片段存进<kb_root>/_sources/<session>.md。 - 只写 .md:禁止图片/二进制;图表用 Mermaid/ASCII。
- frontmatter 必填:
term/domain/file_name/source_session/created/updated/persist_mode/kb_root(脚本自动加)。 - 质量校验(可选):固化后可过 markdownlint 保证卡片规范——安装/规则/自动修复以
format-md-check-workflow为准。用户要"lint"或 viz 相关时才做,默认不强求。
Workflow
Step 1 · 收集要固化的内容
从 radar 传来的上下文里,拿到 lecturer/narrative 的完整 Markdown + domain + session_id + persist 模式 + perm_path。
Step 2 · 整理成卡片
按 _template.md 结构整理。若内容已是 lecturer 七步输出(困境切入/直觉画面/形式化拆解/数学回扣/边界诊断/对比选型/收束动手),直接用;若散乱,补齐缺的维度(至少要有失效链、诊断、对比)。保留工程直觉,删掉对话性废话("追问随时"之类)。
Step 3 · 写入(按 persist 模式调脚本)
推荐用临时内容文件 + --content-file(避免 PowerShell stdin 传中文的编码坑)。先 write 到临时文件,再调脚本:
# temp:存到当前工作目录 ./searchlight/(跟项目走)
python "<REPO>/searchlight-curator\scripts\knowledge_mgr.py" write-card \
--kb-root "./searchlight" --persist-mode temp \
--domain <领域> --term "<术语标准名>" --session <session_id> \
--content-file <临时卡片文件> --on-conflict newversion
# perm 默认(skill 仓库 knowledge/)
python "...\knowledge_mgr.py" write-card \
--persist-mode perm \
--domain <领域> --term "<术语标准名>" --session <session_id> \
--content-file <临时卡片文件> --on-conflict newversion
# perm 指定路径(用户在网页填了 perm_path)
python "...\knowledge_mgr.py" write-card \
--kb-root "<perm_path>" --persist-mode perm \
--domain <领域> --term "<术语标准名>" --session <session_id> \
--content-file <临时卡片文件> --on-conflict newversion
Step 4 · temp 提升为 perm(可选)
用户事后觉得临时卡片有跨项目价值,可从 temp 库复制到永久库:
python "...\knowledge_mgr.py" copy-card \
--card ./searchlight/<域>/<名>.md \
--target "<REPO>/knowledge"
knowledge_mgr.py 命令速查
| 命令 | 作用 |
|---|---|
write-card --kb-root X --persist-mode temp|perm --domain --term --session --content-file f | 写卡片(stdin 用 -) |
write-card ... --on-conflict newversion | 同名时另存 v2 |
update-index [--kb-root X] | 重建 INDEX(默认永久库;加 --kb-root 操作临时库) |
list [--kb-root X] [--domain Y] | 列卡片(默认永久库) |
copy-card --card <path> --target <库根> | temp→perm 提升 |
--kb-root不传时默认 skill 仓库knowledge/。temp 模式务必传--kb-root "./searchlight"。
防污染检查清单(写入前过一遍)
- temp 模式路径在
./searchlight/下;perm 模式在knowledge/或用户指定路径 - 文件名是英文 kebab-case
- 同名已查(list 或脚本默认 skip 会提示)
- frontmatter 完整(脚本自动加,含 persist_mode + kb_root)
- 单文件单主题
- 索引已更新(write-card 自动做)
Output Format
固化完成后,回复给用户:
| 项 | 期望 |
|---|---|
| 存储模式 | temp(当前目录 ./searchlight/)/ perm(永久库路径) |
| 卡片路径 | <kb_root>/<域>/<名>.md |
| 处理方式 | 新建 / newversion / overwrite |
| INDEX 状态 | 已更新 |
| 溯源(若有) | <kb_root>/_sources/<session>.md |
Constraints
- 只固化已有讲解(narrative/lecturer 输出),不自己重新讲解。
- 按 persist 模式选 --kb-root:temp →
"./searchlight"(当前工作目录);perm → 默认仓库或用户路径。别搞反。 - 文件名英文 kebab-case,正文中文;中文术语用
--file-name指定英文名。 - 同名默认 skip,重要卡片用 newversion 保留历史。
- 内容从临时文件
--content-file传(避免 stdin 中文编码坑)。 - 只写 .md,不写二进制;图表用 Mermaid/ASCII。
Files in this skill
searchlight-curator/
├── SKILL.md
└── scripts/
└── knowledge_mgr.py # 卡片写入/去重/续号/索引/复制(--kb-root 定位库)
What ships with it: 1 file
8.2 KB alongside SKILL.md, 1 of them executable
scripts/
- knowledge_mgr.pyruns8.2 KB