원클릭으로
butler
// 启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。
// 启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。
根据 git 缓存区(staged)内容生成中文提交消息草稿。无参数时只看缓存区、不执行 git add;带参数 `/msg X` 时先把与 X 相关的改动 `git add` 到缓存区,再生成消息草稿。始终不执行 git commit。
升级 shiji-kb wiki 页面质量一档(stub→basic→standard→featured→premium),或升至用户指定档。诊断页面当前指标缺口,执行对应补充操作(补引文、写散文、加节、加图)。当用户说 /enrich PAGE 或 /enrich PAGE 目标档 时触发。
为 shiji-kb wiki 页面补全「史记引文」节。搜索实体标注文件中对该页面实体的真实引用(而非裸字符匹配),展开已知 PN 的完整段落,过滤已引,输出新增候选。当用户说 /quote PAGE 时触发。
为 shiji-kb wiki 页面从谭其骧《中国历史地图集》自动裁切历史地图截图,并生成 frontmatter images 片段。适用于 type=place(地名)和 type=state(诸侯国/侯国/邦国)页面。当用户说 /map PAGE、/map PAGE 时间、/map PAGE all 时触发;/enrich 对 state/place 类型页面补图时也应调用。前提:页面 frontmatter 必须有 coords 字段(无 coords 则先补 coords 再调用)。
扫描并补齐缺失的每日工作日志。对比 logs/daily/ 已有日志与 git 有提交的日期(按 07:00 边界归属),列出「昨天及之前、有 commit 但无日志」的日期,逐日调用 generate_log.py 生成骨架,再按 SKILL_10b 补写微信通知和改动意义。不执行 git add/commit,不补齐今天。
将现代文本改写为司马迁《史记》文笔风格。 **触发场景**(主动使用): - 用户明确要求"用太史公文笔改写"、"以史记风格写..."、"太史公曰"、"列传体" - 用户要求将现代文本转为文言文,且强调古雅、简洁、有文史韵味 - 用户提供人物传记、历史事件、技术概念等素材,要求古风改写 - 用户询问"司马迁会怎么写这件事" **功能**: - 三层转换:现代名词古化 → 白话转文言 → 太史公风格 - 应用《史记》特有句式(开篇定式、层递并列、简短断言、对话穿插动作等) - 应用《史记》修辞(白描、先抑后扬、排比对仗、跳跃式剪辑等) - 可选输出"太史公曰"评论段(50-80字精简版) **不做什么**: - 不复述《史记》原文内容 - 不模拟司马迁的历史观点 - 不套用《史记》名句 - 只学习语言形式、句法结构、修辞节奏 本技能基于《史记》130篇语料分析,适用于人物传记、历史事件、技术概念等现代素材的古风改写。
| name | butler |
| description | 启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。 |
此 skill 明确授权以下操作,覆盖 CLAUDE.md 的通用限制:
git commit + git push(通过 /wiki skill)git add <明确路径>(单个文件,不得用 -A/.)| 参数 | 说明 | 示例 |
|---|---|---|
--instance <名> | 命名实例(太史令/列传家/注疏者/索隐者/刊行者) | --instance 注疏者 |
--focus <类型> | 专注任务类型(all/create/enrich/housekeeping/publish) | --focus enrich |
无参数启动 = 太史令模式(all,领取任意任务)。
多实例并发示例:
/butler --focus enrich --instance 注疏者 # agent A
/butler --focus create --instance 列传家 # agent B(同时启动)
1. 读取项目规范
cat skills/SKILL_W0_Butler总则.md ← 每次启动必读,了解不变量
cat wiki/logs/butler/round_counter.txt
cat wiki/logs/butler/queue.md
cat wiki/logs/butler/housekeeping_queue.md
2. ⚠️ 启动强制检查(在做任何工作前):
# 重复实例检测(有 --instance 时必须检查)
python3 wiki/scripts/butler/claim_round.py --check-only --instance <实例名>
若输出 DUPLICATE → 立即停止,勿启动
grep '"reflect-w5"' wiki/logs/butler/actions.jsonl | tail -1 ← 读 round 字段
cat wiki/logs/butler/round_counter.txt ← 当前 round
若 (当前 round - 上次 W5 round) > 50 → 立即执行 W5 反思,再进入工作循环
若未超 50 → 直接进入工作循环
3. 进入永续 loop(详见 W0 §六)
→ 领锁 → 选任务 → 注册页面 → 执行 → 评估 → 记账 → 释放锁 → 暂存 → 周期任务 → 立即下一轮
4. 每轮结束前输出一行摘要:
[R<轮次>][实例] <动作类型> | <页面名> | accept/fail | <一句描述>
# 步骤3a:领取轮次锁(每轮开始时必须调用)
ROUND=$(python3 wiki/scripts/butler/claim_round.py --instance <实例名>)
# 步骤3b:候选确定后注册目标页面
python3 wiki/scripts/butler/lock_manager.py set-page --round $ROUND --page <页面名>
# 步骤3c:写入前检测冲突
python3 wiki/scripts/butler/lock_manager.py check-page --page <页面名> --round $ROUND
# exit 1 = 冲突,跳过此页,换下一个候选
# 步骤3d:写入(add_page.py / edit_page.py)+ 记账
python3 wiki/scripts/butler/record_action.py \
--round $ROUND --action <类型> --page <页面名> --status accept \
--instance <实例名> --note "<描述>" --reflect "<观察>"
# 步骤3e:释放锁(每轮末尾必须调用,即使 fail/skip)
python3 wiki/scripts/butler/release_round.py $ROUND
周期任务(W5/publish)用 increment_round + --skip-lock-check:
ROUND=$(python3 wiki/scripts/butler/increment_round.py)
# ... 执行 W5 或 /wiki ...
python3 wiki/scripts/butler/record_action.py --round $ROUND --action publish \
--page wiki --status accept --skip-lock-check --note "R...→... × N页"
只有以下情况才停止循环(详见 W0 §六"暂停条件"):
每轮结束输出一行,格式(有实例名时带方括号标注):
[R10813][注疏者] enrich-biography | 韩信 | accept | 补全战役年表,散文2节
[R10814][列传家] create-page | 苏武 | accept | 从匈奴列传创建人物页
[R10815][索隐者] fix-links | 鸿门宴 | accept | 链接化曹无伤/项庄 2处
每 23 轮额外输出:
[R10823][刊行者] /wiki 发布 → commit abc1234 · R10801→10823 wiki更新 × 23页
/home/baojie/work/knowledge/shiji-kb
所有路径均相对于此目录。
| Skill | 触发方式 | 用途 |
|---|---|---|
/map PAGE [时代] | 页面 type=place 且 frontmatter 有 coords,需配谭图 | 自动裁切《中国历史地图集》;调用时必须加 --write(自动写 frontmatter + 记 revision),否则 Special:Recent 不可见 |
/quote PAGE | 需要补全 ## 史记引文 节 | 扫描实体标注文件,找实体级引用(非裸字符匹配),精确到年表行 |
/enrich PAGE [目标档] | 需要升级页面质量档位 | 诊断质量缺口(节/散文/引文/图),执行补充操作并验证 |
Butler 何时调用这些 Skill:
add-war-map:改为调用 map_page.py PAGE --write(若页面有 coords),否则走原有手动流程enrich-biography / premium-upgrade:先调用 /quote PAGE 收集引文候选,再写散文;或直接调用 /enrich PAGE featured/premiumfetch-image 已确认无 Wikimedia 图,页面 type=place:调用 map_page.py PAGE --write 作为替代配图方案