AGENT SKILL

truth-ladder

状态放行三层阶梯(attempted / observed / confirmed)—— 汇报任务、API、命令、消息或外部动作状态时强制分层,避免把"动作已发起"误写成"结果已达成"。Use when 准备写「任务已完成」「API 返回成功」「exit code 0」「用户已收到」「ok:true」类状态汇报;或在 cron 报告 / Slack 回报 / project status / receipt 中表达完成度时。

适用职业开发工程师
License 许可
MIT
所属仓库
KarryViber/Orb
最近更新
2026-05-14
Stars
★ 66
Forks
8

01 前言 Front Matter

name
truth-ladder
description
状态放行三层阶梯(attempted / observed / confirmed)—— 汇报任务、API、命令、消息或外部动作状态时强制分层,避免把"动作已发起"误写成"结果已达成"。Use when 准备写「任务已完成」「API 返回成功」「exit code 0」「用户已收到」「ok:true」类状态汇报;或在 cron 报告 / Slack 回报 / project status / receipt 中表达完成度时。

03 SKILL.md 正文

Truth Ladder — 状态放行阶梯

When to Use

  • 准备写「任务已完成」「API 返回成功」「exit code 0」「用户已收到」「ok:true」「已发出」「已通知」等状态结论
  • cron 报告、receipt、project status update、Slack 收尾消息
  • 多步外部动作(发消息 / 写文件 / 调 vendor API)执行后的回报

三层状态

层 含义 证据要求
attempted 动作已发起 exit code 0 / 命令跑完 / 函数返回
observed 外部已观察到变化 API ok:true 且拿到 ts/id / 文件落盘 / DB 行写入
confirmed 最终目标方/下游验收达成预期 人工确认 / 下游系统验收 / 用户回执

规则

  1. 默认从 attempted 起步——没有外部可观测证据就不上 observed
  2. observed ≠ 终点——系统回 success 不代表用户真收到、事情真成
  3. confirmed 必须有第三方确认源(人 / 下游 / 真实目标方)
  4. 写事实而非结论——记录 ok:true / id / path / timestamp,不直接写「已完成」
  5. 禁止跳级——没 observed 证据不写 confirmed;没 attempted 事实不写任何成功状态
  6. 源端必须新鲜——任何状态判断的「证据」必须来自当下读取(grep / cat / API call / log tail),禁止凭 commit message、thread 记忆、上一轮自己说的话推断当前 src 或外部系统状态

典型映射

  • 命令 exit 0 → attempted
  • Slack chat.postMessage 返回 ok:true + ts → observed
  • 用户在 thread 里 react / 回复确认看到 → confirmed
  • cron 脚本跑完没报错 → attempted(不是「报告已送达」)
  • vendor API 200 OK → observed(不是「客户已知悉」)

Gotchas

  • ❌ 把「命令跑完了」写成「任务已完成」
  • ❌ 把「API 成功了」写成「用户已经收到」
  • ❌ 为了显得利索跳过中间状态
  • ❌ 摘要里只写结论不写支撑事实(id / ts / path)
  • ❌ Slack 投递后只看 ok:true 就报 confirmed——message_not_in_streaming_state 类降级失败也是 ok:true 后发生的
  • ❌ 凭 commit message 推断 src 现状——commit 描述「修了 X」≠ 当前 src 真的修好了;动手前必须 grep 当前文件验证。反例:04/29 funnel 5 笔重构方向全错的共同根因就是凭 thread 记忆 + commit log 推断 dedup 在哪一层做的
  • ❌ 凭 thread 记忆判断脚本是否跑过——「我刚才发了命令」≠「命令真的执行成功」;必须 ps / log tail / 产物文件 stat 三选一验证。反例:04/29 setsid 不存在导致脚本根本没跑,12 分钟后 Karry 探针才暴露
  • ❌ 凭 stdout 尾巴判断「都跑完了」——log 末尾安静≠任务完成,可能是 hang / 中断 / 输出走 stderr。反例:04/30 codex log 尾巴误判

「好了吗」探针识别

用户说「好了吗 / 完成了吗 / 好了吧 / 跑完没」时,默认假定自己上一轮的状态报告是 attempted 但被错说成 confirmed——回复前必须重新跑一次源端验证(不是回看 thread 历史),把当前真实状态按三层重新分类。

与其他纪律的关系

  • execution-discipline § 状态诚实 / 副作用留据 → Truth Ladder 是落地写法
  • debug-audit-on-second-miss → 第 2 次 patch 不中走 audit 时,所有「已试假设 / 已排除方向」的事实必须遵循本 skill 的源端新鲜原则
  • operation-receipt → receipt 内的状态字段直接遵循三层
  • compliance-delivery-checklist → 对外交付前 7 点审查含「事实」一项,本 skill 是事实分层标准

One-liner

attempted ≠ observed ≠ confirmed,三级不可跳;证据必须当下重读,禁止凭记忆。

04 同仓库更多 Skills

KarryViber
KarryViber/Orb

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

测试与质量前端开发
★ 66
KarryViber
KarryViber/Orb

vendor-doc-actionability

对外合作文档(交付文档 / POC 文档 / Solution Doc / 提案书)必须为每个「需对方执行」的动作写清具体操作入口(URL / 工单系统 / 脚本路径 / 联系人 + 联系方式 / 步骤编号)。Use when 给客户、vendor、合作方写交付文档、POC 文档、Solution Doc、提案书;或检视已有对外文档是否抽象到无法执行。

★ 66
KarryViber
KarryViber/Orb

vendor-api-param-validation

第三方 API / SDK 集成开工前,强制先列参数 checklist 并对照官方文档逐项验证(名称 / 类型 / 必填 / 默认 / 上限),通过后再编码——不是「写完再调通」。Use when 新接 vendor API/SDK(Slack / LongPort / freee / LLM API 等)、既有集成追加新 endpoint 或新字段、用户说「调通某接口」「接入 X」「集成 X」。

开发工程师后端与接口
★ 66
KarryViber
KarryViber/Orb

thread-object-realignment

长 thread 切题后的对象重定协议——thread 历史 ≥5 条且检测到切题信号时,回复前必做「用户最后显式问题对象 vs 待发回复对象」一致性校验,不一致则改写或反问。Use when Slack thread 历史 ≥5 条且当前用户消息出现切题信号(主题词突变、问句指向新实体、时间线跳跃、出现「另外」「话说」「回到 X」「换个话题」等切题语,或 ≥3 turn 后用户显式问题对象与最近 assistant 回复对象不同)。

★ 66
KarryViber
KarryViber/Orb

theme-factory

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

视觉设计
★ 66
KarryViber
KarryViber/Orb

terse-intent-classifier

短指令作用层判定协议——对 ≤15 字、含指代词或动词型短指令(改/删/切/跑/停/加)或元问句(更优雅/更好/有没有办法)的输入,先判层再动手。Use when 用户消息 ≤15 字且含「这个/那个/上面/刚才/它」指代,或形如「改一下」「删掉它」「跑一下」「有没有更优雅的方法」「切回 X」这类省略了对象或意图的短输入。

★ 66