首页 › skills-review › 只存artifact:自动化的用完即逝与持久

只存 artifact:用完即逝、Resumable 与文件契约——工作流自动化的状态光谱

概述

一、选题逻辑:工位拆完了,剩下了「住处」

先交代这个维度为什么现在才浮出来。此前各期拆的都是动作:怎么上去(部署)、怎么修(CI)、怎么盯(监控)、怎么协作(多 Agent)、怎么停(门)、怎么撤(回滚审计——结论是没人管撤)。动作全拆完之后,本源包里冒出一个把「动作之后的去处」写进门面的新架仓:byJoey/warp-masque-actions,近 7 天新建,首印 358 星,描述一句话:「GitHub Actions 自动生成 Cloudflare WARP (MASQUE) 密钥与 mihomo 配置,产物只存 artifact」。这句话里最有信息量的不是 WARP 也不是 mihomo,是最后五个字——产物只存 artifact:干完活的全部产出只落在 CI 的 artifact 里,不设服务器、不建常驻存储、跑完即散。这与同期小而美榜上两个重度状态派形成了罕见的三方对照:nahrek/polyledger 把「Resumable」(可续跑)直接写进名字;diudiu-tech/delivery-harness 给即时配送业务做全状态机的参考实现。一个把状态扔掉,一个把状态续上,一个把状态焊死在业务流程里——自动化生态第一次在同一天的快照里摆出三种状态哲学,而「状态」这个字眼此前在本栏十篇自动化存档里从未当过主题。

二、评测对比表

权重沿用本栏口径:功能 25%、设计 25%、实战 20%、上手 15%(越高越容易)、社区 15%。存档件照例印存档分、本期不复议;新架三件为描述层估分°;状态姿态为本期新增口径。

标本 层 状态姿态 状态住处 评分 证据级
CronCreate 族 运行时 开关型(默认即逝) 会话 / .claude/scheduled_tasks.json 4.45(编排沉底存档) 一手描述
后台任务 运行时 即逝执行+产物回报 输出文件 4.15(编排沉底存档) 一手描述
EnterWorktree 运行时 即逝隔离(零改动自动回收) .claude/worktrees/ 3.55(编排沉底存档) 一手描述
delivery-harness 市场 全生命周期状态机 业务订单状态 3.4° 快照描述
polyledger 市场 Resumable 检查点 单文件 DuckDB 3.2° 快照描述
gstack canary Skill 持久证据链 .gstack/canary-reports/ 3.7(08-29 存档) 正文引文
superpowers 计划件 Skill 跨会话文件契约 docs/plans/ 4.4(superpowers 期存档) 正文引文
baoyu-infographic Skill 备份即持久 *-backup-YYYYMMDD-HHMMSS 4.4(防呆期存档) 正文引文
warp-masque-actions 市场 纯即逝(产物即遗物) Actions artifact 2.95° 快照描述
azure 流水线 Skill 文件契约接力 deployment-plan.md —(09-01 存档) 存档引文

三、市场端对账:三种状态哲学同日上架

先看三期快照的星轨对账(GitHub Search API 印值,「—」为当期未入榜):

仓库 09-05 09-06 09-07 单印表现
nahrek/polyledger 586 620 620 +5.8% 后走平
diudiu-tech/delivery-harness — 1850 1950 首印后 +5.4%
ApodexAI/FrontierAgent — 1832 1881 +2.7%
byJoey/warp-masque-actions — — 358 新星榜首印

3.1 warp-masque-actions:CI 当一次性计算机用(358 星,新星榜首印)

按本栏惯例先声明形态:它不是 SKILL.md 件,是 GitHub Actions 工作流仓——与此前 codenotch(钉用量上限的 macOS 应用)一样属于「非 Skill 件上榜」,卖点不在 Skill 形态而在架构姿态。描述里那句「产物只存 artifact」至少押了三重注:注一,算力即弃——Actions 的 runner 本来就是临时容器,它顺水推舟把整条生成流水线的生命周期压缩进一次 run,推断°流程为触发→生成→上传 artifact→runner 销毁;注二,无服务面——没有常驻后端就没有可被打的持久端点,攻击面缩到 CI 平台自身的边界内;注三,隐私即架构——WARP 密钥这类敏感产出不落第三方存储,artifact 的访问边界就是分发边界,谁能在仓库里取件、谁取不到,权限系统说了算。它与 09-04 期回滚真空的判词恰成一组镜像:回滚真空lament的是「没有件负责往回退」,而这件走得更极端——压根不留下可以回退的现场。代价也明摆着:artifact 有保留期,过期即失,取件链路多一步,断网环境下不可复现——省掉的状态迟早要以外挂形式补回来。设计分给四星、总分压到 2.95° 的原因即在此:姿态漂亮,工程闭环没在描述里看见下文。

3.2 polyledger:把「可续跑」写成名字(620 星,走平)

描述原文:「Resumable Polymarket indexer: CLOB market metadata plus on-chain trades from Polygon, in one DuckDB」。三个状态词全在句子里:Resumable(中断后从断点续跑)、in one DuckDB(全部状态收进单文件数据库)。链上索引是天然的长跑任务——Polygon 的历史交易追不完,进程随时可能死,于是「能不能续」直接决定产品成色。有意思的是它的星轨:+5.8% 之后单印走平(620→620),与 warp-masque 的首印脉冲形成两种节奏——续跑派卖的是耐用品叙事,本就不靠首印爆量。还要替它划清一条界线:可续跑不是可回退。检查点保证的是「死了能从断点往前接着跑」,不保证「跑错了能退回断点之前」——回滚真空一期量出的那个空位(全链路零回滚件认领),本期两个新架标本依然没有填。

3.3 delivery-harness:状态最重的业务件(1950 星,+5.4%)

小而美榜(近 45 天)在册,描述一句话:「AI harness reference implementation for on-demand delivery workflows」(即时配送业务流的 AI harness 参考实现)。配送业务的本质是状态机:接单、取货、在途、送达、异常、退款,每一个状态转移都不可丢、不可乱序。它与 commerce-agents 同形态——官方与准官方都在以「参考实现」卖业务流的骨。放在本期的光谱上看,它的意义是标出了重量的上限:当 Agent 接管的是有真实世界后果的业务流,状态就不是工程细节而是业务本体,任何「用完即逝」的姿态在这里都是事故。门原语一期把 delivery-harness 列为「自主叙事」的市场对照件,本期补一句:它同时也是状态最重叙事的对照件——门管的是「做不做」,状态管的是「做到哪了」,两件事协作半径越大越是分不开。

四、运行时端:即逝是缺省,持久要签字

市场端的三种姿态,运行时端早已给出了自己的裁决。本会话系统层一手文本里,三个原语的状态语义值得逐条念。

CronCreate 族:一座带开关的坝。 描述原文写得毫不含糊:「By default (durable: false) the job lives only in this Claude session — nothing is written to disk... the job is gone when Claude exits」——定时任务默认活在会话里,会话死则任务死,磁盘上一个字节都不写;要跨会话存活,必须显式传 durable: true,落盘到 .claude/scheduled_tasks.json,且描述把使用条件钉死为「仅在用户明确要求持久化时」才允许开启。配套三条款:周期任务 7 天自动过期(烧最后一班后自删,给会话寿命封顶);错过的持久化一次性任务在下次启动时补班提示。这套设计的立场翻译过来就是:遗忘是缺省,记住是特权,而特权的发放要用户亲口签字。这与门原语一期「授权粒度与信息披露量挂钩」的经济学同源——运行时不敢替用户决定记住什么,就像门不敢替用户决定放行什么。

EnterWorktree:零改动即清算。 隔离原语给每个并行 Agent 一份仓库副本,而描述里最狠的一句藏在括号里:「auto-cleaned if unchanged」——改动为零的 worktree 自动回收。它把「清算」做成了空间隔离的缺省语义:干活的痕迹要么值得保留(有改动,可合并),要么不配占用磁盘(无改动,即销毁)。对照市场端 useagent 那类「给 Agent 一台云电脑」的叙事,worktree 是同一需求的目录级版本——云电脑的账单按小时计,worktree 的账单按「你是否真的干了活」计。

后台任务:即逝执行,产物立碑。 长构建、dev server 转 detached 运行,进程跨轮次存活、退出时自动回报,产物落输出文件。它的状态姿态是混合的:执行体即逝(进程结束即无),产物持久(文件在盘)。而编排沉底一期记录的那条废弃声明恰好补上阴暗面——后台代理的输出文件可能是完整对话记录的符号链接,直接读会撑爆上下文。即逝与持久的边界处最容易藏事故:进程没了,文件还在,文件指向的东西比文件本身重几个量级。

五、Skill 层:文件是最穷也最通用的持久介质

把视线收回 Skill 层,持久派的四件标本共享同一个介质:文件。

azure 流水线的文件契约。prepare/validate/deploy 三段之间靠一份 deployment-plan.md 焊接——上一段的产出就是下一段的唯一输入,四个单兵期称之为「文件契约」。它不依赖任何外部存储,却做到了跨段、跨会话的一致性:契约在盘上,谁接手谁读盘。

superpowers 的失忆工程师条款。writing-plans 对计划文件的定位是本栏引过最多次的设计之一——「计划不是给用户看的,是给一个未来失忆的工程师看的」:执行计划的可能是全新会话,对本次对话一无所知,唯一依赖就是 docs/plans/ 下那份文件。这和 planning-with-files(09-04 期首拆)是同一哲学的两个尺度:把状态写进文件,而不是指望会话记忆。跨会话的工程交接靠它,单会话内的任务清单也靠它。

canary 的证据链落盘。gstack 那台重装监控的立场是一句已经进本栏金句库的话:「Screenshots are evidence. Every alert includes a screenshot path. No exceptions.」每条告警必附截图路径,报告落盘 .gstack/canary-reports/{日期}-canary.md + .json——监控的价值一半在告警那一瞬,另一半在事后审计,前者是即逝的,后者必须持久。

baoyu 的备份改名。防呆期记下的军规:「任何要覆盖的文件先改名 *-backup-YYYYMMDD-HHMMSS」。在回滚件生态为零的世界里,这一行改名规则就是用户唯一的后悔药——它把持久性从「系统能力」降格为「一行文本纪律」,却恰恰因此成了任何 Skill 都抄得起的形态。

四件连读,一条规律浮出来:Skill 世界没有数据库、没有消息队列、没有持久化框架,文件是唯一人人可用的持久介质——而文件的好处恰好在它的穷:可读、可 diff、可 git、可手工补救。

六、状态光谱全景

flowchart LR
    ROOT["自动化状态住哪"] --> G1
    ROOT --> G2
    ROOT --> G3
    subgraph G1["纯即逝派"]
        WMA["warp-masque-actions<br/>产物只存 artifact"]
        EWT["EnterWorktree<br/>零改动自动回收"]
    end
    subgraph G2["开关派"]
        CRON["CronCreate<br/>durable 显式签字"]
        BG["后台任务<br/>执行即逝产物落盘"]
    end
    subgraph G3["持久派"]
        AZ["azure<br/>deployment-plan 契约"]
        SUP["superpowers<br/>docs-plans 计划文件"]
        CAN["gstack canary<br/>证据链落盘"]
        BA["baoyu<br/>备份改名军规"]
        POLY["polyledger<br/>Resumable 检查点"]
        DH["delivery-harness<br/>业务状态机"]
    end
flowchart LR
    T["run 触发°"] --> R["Actions 临时 runner°"]
    R --> G["生成 WARP 密钥与配置°"]
    G --> A["上传 artifact°"]
    A --> D["runner 销毁°"]
    A --> F["用户按权限取件°"]

第二张图为按快照描述与 Actions 公开机制的推断流程°,非仓库原文。

七、三条设计规律与安装命令

规律一:状态住多久,就是信任边界画在哪。 「产物只存 artifact」画的是隐私边界(不落第三方存储),「durable: true」画的是承诺边界(跨会话兑现需要签字),「全生命周期状态机」画的是责任边界(真实世界后果不可丢)。写自动化类 Skill 的第一步不是选工具,是回答「我的产出该活多久」——答案不同,架构整个不同。

规律二:把即逝做成缺省,把持久做成显式。 运行时给出的范式值得所有自动化件抄:默认不留痕,留痕必须声明,且声明权在用户手里。反过来做(默认全持久、隐私靠事后承诺)的件,等不出事故是运气。

规律三:交接靠文件,不要靠记忆。 deployment-plan.md、docs/plans、canary 报告、备份改名——四个持久标本没有一件依赖会话记忆或常驻服务。上下文会腐烂(superpowers 立项的原始动机之一),进程会死(polyledger 立项的原始动机之一),只有盘上的文件对两者都免疫。

# 市场端三件(正文均未核验,以仓库 README 为准)
git clone --depth 1 https://github.com/byJoey/warp-masque-actions   # CI 即弃件:生成的密钥与配置在 Actions artifact 页取
git clone --depth 1 https://github.com/nahrek/polyledger            # Resumable 索引器:状态收在单文件 DuckDB
git clone --depth 1 https://github.com/diudiu-tech/delivery-harness # 配送业务流参考实现

# 运行时原语:零安装,随宿主分发
#   定时任务:默认随会话消亡;要求持久时用户明说,才落 .claude/scheduled_tasks.json(7 天自动过期)
#   并行隔离:worktree 改动为零即自动清算
#   长任务:后台运行,退出自动回报,产物读文件不读对话记录

八、推荐排行榜

参考来源

[!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学通信知识星球海报-扫码加入