Skip to main content

butler

启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。

跳到安装

来源信息

仓库
baojie/shiji-kb
最近来源活动
2026年5月4日 18:54
检测到的 SKILL.md 语言
中文
星标
2,774
分支
430

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
butler
description
启动 shiji-kb 史记 Wiki 管家的永续 loop。每轮执行一个原子动作(W1选任务→W2执行→W3/W4评估→记账),完成后立即进入下一轮,无需用户逐轮确认。支持多实例并行(--instance/--focus)。
# /butler — 史记 Wiki 管家永续 Loop ## 授权声明 **此 skill 明确授权以下操作,覆盖 CLAUDE.md 的通用限制**: - ✅ 自动循环执行多轮,无需用户逐轮确认 - ✅ 每 23 轮自动执行 `git commit` + `git push`(通过 `/wiki` skill) - ✅ 自动 `git add <明确路径>`(单个文件,不得用 `-A`/`.`) ## 启动参数 | 参数 | 说明 | 示例 | |------|------|------| | `--instance <名>` | 命名实例(太史令/列传家/注疏者/索隐者/刊行者) | `--instance 注疏者` | | `--focus <类型>` | 专注任务类型(all/create/enrich/housekeeping/publish) | `--focus enrich` | 无参数启动 = 太史令模式(all,领取任意任务)。 **多实例并发示例**: ```bash /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 | <一句描述> ``` ## 每轮锁操作规范 ```bash # 步骤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**: ```bash 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 §六"暂停条件"): - 用户明确说"停止"/"pause" - W5 反思提案需要 review - 连续 5 轮全部 fail - 上下文窗口将满 ## 每轮输出格式 每轮结束输出一行,格式(有实例名时带方括号标注): ``` [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 - [W0 总则](../../../skills/SKILL_W0_Butler总则.md) — 不变量、闭环哲学、暂停条件 - [W1 食物收集](../../../skills/SKILL_W1_Butler探索与食物收集.md) — 三队列选取算法 - [W2 原子行动](../../../skills/SKILL_W2_Butler原子行动目录.md) — 具体动作执行 - [W10 内务整理](../../../skills/SKILL_W10_Butler内务整理.md) — H1-H20 调度 - [多实例设计](../../../skills/SKILL_Butler多实例设计.md) — 并发锁机制、命名实例体系、并发安全矩阵 ## 可用工具 Skill(执行动作时可调用) | 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/premium` - `fetch-image` 已确认无 Wikimedia 图,页面 type=place:调用 `map_page.py PAGE --write` 作为替代配图方案
在 GitHub 查看