一键导入
janitor
小扫(Janitor)- 系统清扫员(Mac mini 版)。 两种模式:daily(磁盘清理,每天 4am)+ frequent(僵尸进程清理,每 30 分钟)。 纯 bash 脚本,无需 LLM,cron 自动运行。 磁盘超 70% 时自动告警到 Cecelia Brain。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
小扫(Janitor)- 系统清扫员(Mac mini 版)。 两种模式:daily(磁盘清理,每天 4am)+ frequent(僵尸进程清理,每 30 分钟)。 纯 bash 脚本,无需 LLM,cron 自动运行。 磁盘超 70% 时自动告警到 Cecelia Brain。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
统一开发点火入口。查 12 张 Brain DB 表拿上下文 → 判断类型(bug / 小改动 / 大功能)→ 生成 PrepPRD → 用户确认 → 路由执行。
【已废弃 v3.0.0】OKR 拆解质检引擎已合并进 decomp v3.0.0 的 Stage 4b 内置质检子阶段。 不再作为独立 skill 调用。所有质检逻辑请参考 decomp/SKILL.md "内置质检子阶段"章节。
全链路 Project Management 拆解引擎(秋米驱动)。将 OKR/KR/Project/Scope/Initiative/Task 层级目标拆解成可执行任务。 当用户需要拆解目标、规划项目、把大想法变成具体 PR 列表时触发。 触发词:/decomp、帮我拆解、拆一下、把这个拆成任务、规划 Initiative、OKR 怎么拆、项目怎么做。
Line 军师 — 每条 Line(Journey)一个的原子级决策者。事件驱动:本 line 一个 run 落终态(PR merged 或 failed)、 新登记 P0/P1 issue、或产能空闲且推进项 todo 非空时被唤醒;读本 line 状态快照,做一次"下一步干什么"的决策: 修 bug(/dev 路径A)/ 小改动(路径B)/ 挑下一个推进项进 harness(路径C)/ 调 decomp 补货拆推进项 / 停线 Bark 上报主理人。 每次决策必须自审打分并留痕落 DB,晨报聚合给主理人审。 触发场景:Brain 派发 task_type=strategist_decision 的任务;用户说"军师"、"这条线下一步做什么"、 "帮 Line XX 决定下一个任务"、"line-strategist"、"替我判断这条线该修 bug 还是继续推进"。 只针对单条 line 决策,不做全局分配,不做产能仲裁,不写代码。
CI/CD 巡检员——每天按 line 巡检 ZenithJoy 每条业务线的 CI/CD 与测试健康度,回答 4 个硬伤问题(哪些 golden path 没写测试 / 写了没进 CI / 进了 CI 但假绿 / 正在红),产出按 line 拆的日报 + 总 summary,并执行 guard 棘轮(硬伤数只许降不许升,升了开 [ci-patrol-red] Issue)。 由 Brain 定时触发(task_type=ci_patrol,每天北京 08:00,等 03:00 刀A nightly + 04:30 刀B cross-line nightly 跑完)。 手动触发:/ci-patrol、CI巡检、巡检一下CI、CI健康日报、看看每条line的CI怎么样。 立项决策 db1b393b(2026-07-09 用户拍板方案A:AI 巡检员每日探索,非机械对表)。
代码审查 Gate(/dev Stage 2 最后一步)。合并了 code_quality(代码质量审查)和 /simplify(代码简化)。 在 /dev Stage 2 代码写完后、push 之前触发。此时无 PR,通过 git diff 获取变更内容。 覆盖安全、正确性、复用性、命名、效率、可维护性、PRD/DoD对齐、信息卫生九个维度。 给出 PASS / FAIL 裁决。 触发词:代码审查、code-review-gate、合并前检查、代码门禁。
| name | janitor |
| version | 2.0.0 |
| description | 小扫(Janitor)- 系统清扫员(Mac mini 版)。 两种模式:daily(磁盘清理,每天 4am)+ frequent(僵尸进程清理,每 30 分钟)。 纯 bash 脚本,无需 LLM,cron 自动运行。 磁盘超 70% 时自动告警到 Cecelia Brain。 |
| created | "2026-02-24T00:00:00.000Z" |
| updated | "2026-03-08T00:00:00.000Z" |
| changelog | [{"2.0.0":"从 VPS 版重写为 Mac mini v2.0(9 项清扫 + frequent 模式)"},{"1.0.0":"初始版本(VPS Docker/PM2 清理)"}] |
系统维护角色,负责磁盘卫生和僵尸进程清理。
外部专家(自动化):
├── 🍂 秋米 (/autumnrice) - OKR 拆解
├── 💻 Caramel (/dev) - 写代码
└── 🧹 小扫 (/janitor) - 系统清扫 ← 这是我
关键:小扫是纯脚本员工,不用 LLM,cron 自动执行。确定性任务不需要大模型。
| 模式 | 频率 | 职责 |
|---|---|---|
daily | 每天 4:00 AM | 磁盘清理(9 项任务) |
frequent | 每 30 分钟 | 僵尸进程清理(vitest/jest/孤儿 node) |
| 方式 | 命令 |
|---|---|
| 手动 daily | janitor.sh 或 janitor.sh --mode daily |
| 手动 frequent | janitor.sh --mode frequent |
| 自动调度 | cron(见下方配置) |
| 查看日志 | cat /tmp/janitor-$(date +%Y%m%d).log |
| # | 清扫目标 | 条件 | 预估大小 |
|---|---|---|---|
| 1 | Brain/Bridge LaunchDaemon 日志截断 | >10MB 保留最后 1000 行 | 几十~几百 MB |
| 2 | /tmp/cecelia-*.log 旧运行日志 | >3 天删除 | ~100 MB |
| 3 | Claude JSONL 会话记录 | >7 天删除 | ~1 GB(最大增长源) |
| 4 | npm cache | 全量清理 | ~1.4 GB |
| 5 | Homebrew cache | >7 天清理 | ~250 MB |
| 6 | /tmp 旧随机临时目录 | >1 天删除 | ~400 MB |
| 7 | .prd/.dod/.dev-mode 残留文件 | >3 天删除 | 少量 |
| 8 | Git 孤儿分支(cp-/worktree-) | 调用 branch-gc.sh | N/A(分支清理) |
| 9 | 残留 worktree | >24h 且无 open PR | N/A(目录清理) |
| 目标 | 条件 | 说明 |
|---|---|---|
| vitest/jest 僵尸进程 | 运行 >2 小时 | 先 SIGTERM,1s 后 SIGKILL |
| 孤儿 node 进程 | 运行 >2 小时 + PPID=1 | 排除 brain/server/n8n/claude/vscode |
磁盘使用率超过 70% 时,自动向 Cecelia Brain 提交 P0 告警任务。
packages/workflows/skills/janitor/janitor.sh # git 管理的 SSOT
~/bin/janitor.sh -> packages/workflows/skills/janitor/janitor.sh # 软链接
脚本纳入 git 管理(v3.0 起),~/bin/janitor.sh 是指向 repo 文件的软链接,由 cron 直接调用。
依赖脚本(git 中):
packages/engine/skills/dev/scripts/branch-gc.sh # 第 8 步调用
# Daily: 每天凌晨 4:00 磁盘清理
0 4 * * * /Users/administrator/bin/janitor.sh --mode daily >> /tmp/janitor-cron.log 2>&1
# Frequent: 每 15 分钟清理僵尸进程(*/15)
*/15 * * * * /Users/administrator/bin/janitor.sh --mode frequent >> /tmp/janitor-cron.log 2>&1
# 立即执行 daily 清理
janitor.sh
# 立即执行僵尸进程清理
janitor.sh --mode frequent
# 查看今天的日志
cat /tmp/janitor-$(date +%Y%m%d).log