启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Critical
Do not install without reviewing
Fix and improve this skill with Tessl
tessl review fix ./.claude/skills/butler/SKILL.md此 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 作为替代配图方案79c272f
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.