<!-- title: 拆long-running-agent：长活三班倒 -->

## 本期导读

这是 Skills 生态定期观察的第 5 轮，本期条线是工作流自动化——部署、CI、监控、多 Agent 协作。CI 修复与平台部署两条赛道此前已做过横评，本期换个挖法：把镜头对准装机盘里**还没人拆过的工作流新面孔**，一共四件，外加一件跨宿主速写。

看完四件的一手材料，本期核心发现是一句话：**工作流件的进化方向不是“更聪明的自动化”，而是“更耐断的自动化”**。四件各自防守一个断点——会话断点、部署断点、工具断点、机器断点。本期主角 `long-running-agent` 拿下的是最难的会话断点：它不把 Agent 变聪明，而是把 Agent 改成三班倒。

> 说明：本期四件均为装机盘本地件（一手材料为各自 SKILL.md 原文），Star/下载量无公开可核实数据，本文一律不作无据引用，社区活跃度维度按保守口径给分。

## 生态位置：四个断点，四件守门

```mermaid
mindmap
  root((工作流自动化件))
    会话断点
      long-running-agent
        跨窗口三班倒
    部署断点
      github-actions-skill
        问答式VPS向导
    工具断点
      mcp-cli
        MCP进shell管道
    机器断点
      skill-sync-github
        换机一键恢复
```

## 评测总表

| Skill | 功能完整度 25% | 设计质量 25% | 实战效果 20% | 上手难度 15% | 社区活跃度 15% | 加权总分 |
|---|---|---|---|---|---|---|
| long-running-agent | ★★★★½ | ★★★★½ | ★★★★ | ★★★★★ | ★★★ | **4.3** |
| github-actions-skill | ★★★★ | ★★★★½ | ★★★★ | ★★★★★ | ★★½ | **4.1** |
| mcp-cli | ★★★★ | ★★★★½ | ★★★★ | ★★★½ | ★★★ | **3.9** |
| skill-sync-github | ★★★★ | ★★★½ | ★★★★ | ★★★ | ★★ | **3.4** |

---

## 主角深拆：long-running-agent，给长任务修一条接力赛道

### 它诊断的病：三种死法

这件 Skill 的 SKILL.md 开篇不讲功能，先讲病理。它认定长任务 Agent 的失败不是能力问题，而是**结构问题**——"each new session begins with no memory of previous work"（每个新会话都从零记忆开始）。由此推出三种典型死法：

1. **一口气硬上**（one-shot attempts）——试图在一个上下文窗口里干完全部的活，干到一半上下文爆掉；
2. **提前宣布完工**（premature completion）——看到局部进展就宣布大功告成；
3. **烂摊子交接**（undocumented states）——会话结束时留下一个没人说得清的中间态。

这个诊断比药方更有价值。市面上多数“长任务框架”在堆上下文容量（压缩、摘要、记忆库），这一件反着来：**不对抗失忆，而是把失忆制度化**——默认下一个窗口什么都不知道，然后把“交接”做成流程。

### 药方：双 Agent 制

SKILL.md 的核心设计是"Two-Agent Solution"。注意，这里不是两个模型，是**两份提示词、两段人生**：

- **Initializer Agent**，只在第一次会话上岗：写 `init.sh` 环境脚本、生成完整的 `feature_list.json` 需求清单、初始化 `claude-progress.txt` 进度日志、做首次 git commit。references 目录里备好了两份完整提示词模板（initializer-prompt.md / coding-prompt.md）。
- **Coding Agent**，此后每一班都是它：读进度文件和 git log 找感觉、跑基础测试确认现场没烂、一次只认领一个 feature、端到端测过才算完、commit 打卡、更新进度日志。

制度设计的精髓在于成本前置：环境搭建、需求拆解这些一次性成本全部压进第一班，后面每一班的启动成本被压到“读三个文件、跑一条脚本”。

### 每一班的班前会：固定七步

SKILL.md 给出了雷打不动的开工序列：

```
1. pwd                          # 确认自己在哪
2. cat claude-progress.txt      # 读上一班的留言
3. cat feature_list.json        # 看工单状态
4. git log --oneline -20        # 翋最近20条提交
5. ./init.sh                    # 把环境拉起来
6. <跑基础测试>                  # 确认现场没烂
7. <挑一个失败的 feature>        # 只认领一件
```

顺序是有讲究的：先读**人话写的日志**，再读**机器记的账**（git log），最后才动手。每一步都是对失忆的一次补偿——这也解释了为什么这套流程里没有一步是“思考”：思考是模型的自由发挥，流程才是框架的硬约束。

### 灵魂细节：用 JSON 格式管住模型的手

全文最值得抄的一笔，是对 feature_list.json 的三条铁律：

> - Never remove or edit test descriptions
> - Only change `passes` 字段状态
> - Mark as passing ONLY after end-to-end verification

而选 JSON 格式的理由写得毫不掩饰："Use JSON format to prevent inappropriate edits"——**用文件格式本身当 behavioral constraint**。Markdown 里模型会手痒改验收标准，JSON 结构化字段天然限制了可编辑面。这是提示词工程里“用格式管行为”的教科书操作。

配套的还有一条验收权设计：feature 只有端到端验证通过才能把 `passes` 翻成 `true`，SKILL.md 甚至写明 "Test as a human user would"（用浏览器自动化按真人用法测）。**自评通道被焊死**，Agent 想放水都没有出口。

### 失败模式对照表：不教写码，只教不死

SKILL.md 收尾的五行走位表其实是整件的灵魂：

| 病 | 方 |
|---|---|
| Agent 一口气硬上整个项目 | 拆细 feature 清单，一次一件 |
| 提前宣布胜利 | 回查 feature_list 里的失败项 |
| 留下烂摊子 | 班前会先跑基础测试，先修再干 |
| 提前把 feature 标完成 | 强制端到端浏览器验证 |
| 每班浪费在配环境 | 读 init.sh，沿用既有套路 |

注意它没有一行在教“怎么写代码”——**它只教怎么不死**。这正是工作流件和功能件的分野：功能件的产出是结果，工作流件的产出是“状态可以被接力”。

### 三班倒全景图

```mermaid
flowchart TD
    A[新会话开工] --> B[读进度日志]
    B --> C[查工单状态]
    C --> D[git log 看近20条]
    D --> E[跑 init.sh 起环境]
    E --> F{基础测试通过?}
    F -->|否| G[先修环境再干活]
    G --> H[认领一个失败feature]
    F -->|是| H
    H --> I[只做这一件]
    I --> J[端到端验证]
    J --> K{验证通过?}
    K -->|否| I
    K -->|是| L[passes 翻 true]
    L --> M[git commit 打卡]
    M --> N[更新进度日志]
    N --> O[下班 留干净现场]
    O --> P[下一个窗口接班]
    P --> B
```

### 短板，得说透

- **全靠自觉，没有强制**：三条铁律写进 SKILL.md，但没有 hook 或脚本在 `passes` 被违规翻真时拉闸。模型哪天不听话，框架没有物理约束。
- **验证依赖绑定**：端到端验证默认走浏览器自动化（原文点名 Puppeteer MCP），对非 Web 项目（脚本、库、数据管线）这半条腿是瘸的，需要按它末尾的 "Adapting to Other Domains" 四原则自行改造。
- **交付物是方法论不是代码**：装完没有任何命令入口，触发全靠模型读描述自行判断——新用户可能装完不知道怎么“叫醒”它。
- **和此前拆过的 dsh-agent-teams 不是一回事**：那是横向排兵（多个 Agent 同时在场分工），这是纵向排班（多个窗口先后接力）。工作流自动化的两根轴，这件占了时间轴。

---

## 配角三件：各自守一个断点

### github-actions-skill：部署件的第五物种

此前横评过的四个部署件（Vercel / Netlify / Render / Cloudflare）全是“平台托管一键推”物种。这一件补的是生态空位：**VPS + SSH 的老派自部署**，而且是四个部署物种之外的第五种形态——**向导（wizard）**。

它的 SKILL.md 是一份四阶段剧本：问答收集（每次只问一个问题，VPS 地址→用户名→部署路径→部署方式）→ 表格确认 → 生成配置 → 分步操作指引。亮点有三：生成模板里把 Action 版本钉死在 `appleboy/ssh-action@v1.0.3`，不做漂移；Secrets 清单直接给到“去哪里贴什么值”的颗粒度；命令部署和 rsync 同步两套模板都备齐。

短板也清楚：没有回滚设计，没有部署后健康检查；最要命的是 rsync 模板里 `--delete` 静默出现——目标目录会被镜像删除，SKILL.md 却没对这个高危参数做任何警示。对新手来说，这是一颗埋在“生成即用”里的雷。

### mcp-cli：给 MCP 修一座换乘站

MCP 工具本来是“聊天框特权”——只有对话里的 Agent 能调。这件把它搬到命令行：`mcp-cli` 列服务器、`mcp-cli <server>` 看工具、`mcp-cli <server>/<tool>` 看 schema、加 JSON 参数直接执行，还能 `grep` 按名字搜工具、`--json` 输出进管道。

设计上最 Unix 的一笔是退出码规范：0 成功、1 客户端错、2 服务端错、3 网络错——**MCP 调用从此可以写进 shell 脚本做条件分支**。Agent 在 bash 管道里组合 MCP 工具的能力被一次性解锁，这是四件里“胶水价值”最高的。

代价是上手门槛：得先装 CLI、配好 MCP server 才有的用，三颗半星不冤。

### skill-sync-github：机器断点的私人管线

最“私人”的一件：把 `~/.claude/skills/` 目录 git 化，自动同步到一个私有 GitHub 仓库，换电脑时 `gh auth login` 加一条 `git clone` 就能全量恢复整盘 skills。触发词设计很口语（“同步skill"“推送skill"“备份skill"），错误处理表连 Windows 换行符警告和嵌套 `.git` 坑都写了。

扣分在可移植性：git 身份、仓库地址全部写死在 SKILL.md 里，属于“个人护照”式设计——对作者是零成本贴身管家，换个人就得动手术。它的价值更多是**示范**：skills 本身也需要工作流来管，这个生态位目前基本无人竞争。

### 装机盘速写：atlas

顺手记一笔：装机盘里还躺着一件 `atlas`，用 AppleScript CLI 控制 OpenAI 的 ChatGPT Atlas 浏览器（列标签页、翻书签、查历史）。有意思的不是功能，是它的安装路径写的是 `$CODEX_HOME/skills`（默认 `~/.codex/skills`）——**为别家宿主写的件，被 Claude Code 直接征用**。Skill 正在跨宿主流动，格式通用性正在变成事实标准。

---

## 安装与使用

**long-running-agent**（框架件，复制即装）：

```bash
# 整个目录拷入 skills 目录即可被识别
cp -r long-running-agent ~/.claude/skills/
# 用法：第一次会话说「按 initializer 流程初始化这个项目」
# 之后每个新窗口说「按 feature_list 继续干活，先跑班前会」
```

**github-actions-skill**：

```bash
cp -r github-actions-skill ~/.claude/skills/
# 用法：「帮我配 GitHub Actions 自动部署到我的 VPS」，跟随问答走完四阶段
```

**mcp-cli**（需先安装 CLI 本体并配置 MCP server）：

```bash
mcp-cli                # 列出全部 server 与工具名
mcp-cli filesystem -d  # 看某 server 的工具与参数
mcp-cli filesystem/read_file '{"path": "./README.md"}' --json
```

**skill-sync-github**（自建同款：改成你自己的私有仓）：

```bash
gh auth login
git clone https://github.com/<你的用户名>/allSkills.git ~/.claude/skills
```

## 推荐排行榜

- **综合第一：long-running-agent（4.3）** —— 本期唯一把“制度设计”做成主件的选手，值得任何写 SKILL.md 的人通读。
- **新手首选：github-actions-skill** —— 问答式向导对零经验 VPS 用户最友好，但用前先给 `--delete` 上锁。
- **最值得抄的设计：long-running-agent 的 JSON 契约** —— "Use JSON format to prevent inappropriate edits" 这一句，价值超过多数整份教程。
- **最强胶水：mcp-cli** —— 退出码规范一出，MCP 工具正式并入 shell 脚本世界。
- **最贴身：skill-sync-github** —— 不通用，但指出了一个无人占位的生态位：skills 的 skills 管线。

## 结语

这一轮装机盘扫描给出的答案是：工作流自动化件的竞争已经从“谁跑得快”转向“谁摔不死”。会话会断、部署会错、工具够不着、机器会换——四个断点四个件，全是纯 SKILL.md 规程件（仅 mcp-cli 带二进制依赖）。对想入场的写件人，空位还明显：**回滚断点**（部署失败自动回退）、**验证断点**（passes 字段的强制复核）都还没人守。下一轮换条赛道接着挖。

## 参考来源

1. [anthropics/skills](https://github.com/anthropics/skills) — 官方 Skills 仓库，本期 SKILL.md 写法分析的生态基准
2. [appleboy/ssh-action](https://github.com/appleboy/ssh-action) — github-actions-skill 生成模板中钉死版本的部署 Action
3. `~/.claude/skills/long-running-agent/SKILL.md`（含 references/initializer-prompt.md、assets/feature_list_template.json 索引）— 主角深拆一手材料
4. `~/.claude/skills/github-actions-skill/SKILL.md`、`~/.claude/skills/mcp-cli/SKILL.md`、`~/.claude/skills/skill-sync-github/SKILL.md`、`~/.claude/skills/atlas/SKILL.md` — 配角三件与速写件的一手材料
5. gprshome/allSkills（私有仓库）— skill-sync-github 指向的同步目标，未公开，仅作事实陈述

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
