一键导入
beaver
将任意文本源(书籍、文档、笔记、语料)转化为结构化 wiki 百科页面。识别并提取三种知识:fact(列表/表格型)、narrative(叙述型实体页)、skill(程序型 how-to 页)。通过 add_page.py 写入 wiki。支持永续迭代模式,自动追踪进度、捕获跨域洞察。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
将任意文本源(书籍、文档、笔记、语料)转化为结构化 wiki 百科页面。识别并提取三种知识:fact(列表/表格型)、narrative(叙述型实体页)、skill(程序型 how-to 页)。通过 add_page.py 写入 wiki。支持永续迭代模式,自动追踪进度、捕获跨域洞察。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
逐章反思,一次只扫一章,发现章节中遗漏的实体页面和改进建议。项目路径见 local/config/chapter-scan.config.md。
Wiki 编委审稿:检查近期 butler 工作是否违反质量规范,输出分级违规报告,给出具体纠正建议。项目路径见 local/config/editor.config.md。
升级当前 wiki 页面质量一档(stub→basic→standard→featured→premium)。诊断页面当前指标缺口,执行对应补充操作(扩写散文、补充引用、加节)。当用户说 /enrich PAGE 或 /enrich PAGE 目标档 时触发。
启动 Wiki 管家永续 loop。两队列系统(content/housekeeping)。每轮:W1队列选任务→W2执行→W3自评→记账,无需用户逐轮确认。每11轮discover+housekeeping-scan,每17轮执行ADM4-commit,每29轮W5反思,每37轮H17覆盖扫描。带 --auto 参数时忽略 fail 暂停 + 上下文将满时 ScheduleWakeup 自续。项目路径见 local/config.md。
启动或推进当前 Wiki 的 GROW 增长流程。读取 GROW.md 中的当前阶段,按 $MEMEX_ROOT/GROW.spec.md 执行下一个未完成的 Phase。BIRTH Phase 10 完成后调用。
启动 Wiki 管家永续 loop。两队列系统(content/housekeeping)。每轮:W1队列选任务→W2执行→W3自评→记账,无需用户逐轮确认。每11轮discover+housekeeping-scan,每17轮自动/wiki发布,每29轮W5反思,每37轮H17覆盖扫描。带 --auto 参数时忽略 fail 暂停 + 上下文将满时 ScheduleWakeup 自续。项目路径见 local/config.md。
| name | beaver |
| description | 将任意文本源(书籍、文档、笔记、语料)转化为结构化 wiki 百科页面。识别并提取三种知识:fact(列表/表格型)、narrative(叙述型实体页)、skill(程序型 how-to 页)。通过 add_page.py 写入 wiki。支持永续迭代模式,自动追踪进度、捕获跨域洞察。 |
将任意文本源转化为结构化 wiki 百科页面。支持单次运行和永续迭代两种模式。
工作目录:见 local/config/beaver.config.md
| 类型 | 回答的问题 | 典型内容 | Wiki 呈现 |
|---|---|---|---|
| narrative | 这是什么?它是谁?发生了什么? | 人物传记、事件经过、概念解释、机构介绍 | 实体百科页(person/concept/event/organization/system/theory/…) |
| fact | 有哪些?数据是什么?清单如何? | 数据表格、属性列表、关系清单、统计数字 | 列表页(list)或任意页内的结构化数据节 |
| skill | 怎么做?流程是什么?如何判断? | 操作步骤、分析框架、决策流程、最佳实践 | 程序型页(concept 类型,结构化步骤正文) |
判断优先级:
MECE 原则:勘察表应完全覆盖来源文本中的所有实体——不仅选"有趣的",而是穷举。
| 模式 | 触发方式 | 特点 |
|---|---|---|
| 单次模式 | /beaver <文件路径或粘贴文本> | 处理完整输入,适合短文本(< 10 万字符) |
| 永续迭代模式 | /beaver --loop <文件路径> | 分批处理长文本,维护进度文件,每批后暂停或继续 |
永续模式首次启动时,创建进度追踪文件:
wiki/logs/beaver/<source-slug>/
├── progress.md # 进度:已处理批次、剩余批次
├── coverage.md # 勘察表(累积,每批追加)
└── insights.md # 跨域洞察(累积)
接受以下任何形式的输入:
.txt、.md、.pdf)读完后,在回复中用一段话概括内容,确认理解正确再继续。
超过 10 万字符时按段落边界切分为若干批次,每批不少于 2 万字符,依次处理。
每批必做三遍扫描:
① Narrative 扫描 — 批次中出现了哪些实体?(人物/事件/概念/理论/系统/机构/时代)
② Fact 扫描 — 批次中是否有多项并列的清单、表格、属性对比?
③ Skill 扫描(常被遗漏,必须独立完成)— 批次中是否描述了:
产出一张知识单元勘察表:
| 序号 | 候选标题(wiki slug) | 类型 | 理由摘要(≤30字) |
|------|---------------------|------|-----------------|
import json
d = json.load(open('docs/wiki/pages.json', encoding='utf-8'))
pages, ai = d['pages'], d.get('alias_index', {})
def check_page(candidate):
def _q(slug):
return pages.get(slug, {}).get('quality', '?')
if candidate in pages:
return 'exact', candidate, _q(candidate)
if candidate in ai:
return 'alias', ai[candidate], _q(ai[candidate])
hits = [(k,v) for k,v in ai.items()
if (candidate in k or k in candidate) and len(k)>=3]
if hits:
slug = max(hits, key=lambda x: len(x[0]))[1]
return 'fuzzy', slug, _q(slug)
return 'missing', None, None
candidates = ['候选1', '候选2', ...]
for c in candidates:
match, slug, quality = check_page(c)
if match == 'missing':
print(f'[CREATE ] {c}')
elif quality in ('stub', 'basic'):
print(f'[ENRICH ] {c} → {slug} [{quality}]')
else:
print(f'[SKIP ] {c} → {slug} [{quality}]')
python3 wiki/scripts/add_page.py <SLUG> - --summary "<一句话说明>" --author beaver << 'EOF'
<frontmatter+正文>
EOF
先 Read 已有页面,合并内容后:
python3 wiki/scripts/edit_page.py <SLUG> - --summary "<一句话说明>" --author beaver << 'EOF'
<合并后完整页面>
EOF
每页写入后:git add $(find docs/wiki/pages -name "<SLUG>.md" | head -1)
每批处理完毕,判断是否有值得记录的跨域洞察(跨领域的交叉模式、意外联系、结构性原则)。大多数批次不产生洞察——不更新就是正确行为。
更新 progress.md,标记已完成批次。若还有未完成批次,询问是否继续。
每轮结束后反思一个具体可改进的地方,追加到 CHANGELOG.md(详见 PRJ3-changelog-maintain)。
| 实体 | Wiki type |
|---|---|
| 人物(研究者、工程师) | person |
| AI系统、程序、模型 | system |
| 概念、技术方法 | concept |
| 理论、框架 | theory |
| 事件(会议、发布、竞赛) | event |
| 机构、实验室、公司 | organization |
| 时代、历史阶段 | era |
| 列表 | list |
---
id: <slug>
type: <类型>
label: <中文显示名>
aliases: [<别名>]
tags: [<标签>]
description: <一句话描述,≤50字>
era: <年代,如 1950s>
field: <领域,如 机器学习>
affiliation: <机构(人物用)>
nationality: <国籍(人物用)>
born: <出生年>
died: <逝世年>
quality: stub
---
所有页面中出现其他已知实体时使用 [[词条名]] 格式内链。
stub:只有定义段,< 5 行正文basic:有 2+ 节,≥ 15 行standard:有 3+ 节,有引文,≥ 30 行featured:有 5+ 节,引文充实,≥ 60 行