show-me-your-work

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Show me your work

展示你的工作

For work a human reviews after the fact, a decision trail lets them reconstruct what was decided, why, and on what evidence, without rerunning the work or reading the whole transcript. Keep one canonical log so the trail is consistent and a future agent can find it.
对于需要事后人工审核的工作,决策轨迹可以让审核人员还原已做出的决策、决策原因及依据,无需重新运行工作或阅读完整记录。请保留一份标准日志,确保轨迹一致,方便未来的Agent查找。

The format

格式

A single TSV file, one row per decision. TSV because GitHub renders it as a sortable table,
column -s$'\t' -t
and spreadsheets read it, and a row appends with one command. Cells stay single-line. Evidence is a pointer, not prose.
Copy
references/decision-log-template.tsv
(the header row) to start a clean log. Columns:
  • ts. ISO8601 timestamp. The timeline axis.
  • phase. The phase or workstream.
  • decision. What was chosen or done, one line.
  • why. The reason in plain words. If a principle drove it, say it plainly (
    explored options first, this was a one-way door
    ), not as a jargon tag.
  • evidence. A link or path that proves it: commit SHA, PR number,
    file:line
    , or an artifact, trace, or screenshot path. Never a paragraph.
  • result. The outcome or predicate state:
    tests green
    ,
    reverted
    ,
    pixel-diff 0
    ,
    INCONCLUSIVE
    ,
    open
    .
An example, plain-spoken so a reviewer reads it at a glance. This is illustration only; don't copy these rows into a real log.
ts	phase	decision	why	evidence	result
2026-05-24T09:02:00Z	frame	counted the work first, about 100 components and roughly 75 hours	wanted to know the size before starting a long run	commit 3a9f1c2	found 5 things to sort out before starting
2026-05-24T09:40:00Z	harness	took screenshots of the old version before changing anything	so we can compare old against new and catch any visual change	scripts/snapshot.sh, baseline/	saved 120 reference screenshots
2026-05-24T11:15:00Z	widget	moved the widget styles over without changing how it looks	keep the change small and the result identical	commit 7c21e0a, pixel-diff 0	looks identical, tests pass
2026-05-24T12:30:00Z	widget	threw out a helper's work because its screenshots were blank	checked the real files instead of trusting its summary	worktree reset	reverted, tightened the instructions for next time
单个TSV文件,每行记录一个决策。选择TSV是因为GitHub会将其渲染为可排序表格,
column -s$'\t' -t
命令和电子表格均可读取它,且只需一条命令即可追加一行。单元格内容保持单行。依据是指向性内容,而非描述性文字。
复制
references/decision-log-template.tsv
(表头行)来创建新日志。列说明:
  • ts. ISO8601时间戳。作为时间轴。
  • phase. 阶段或工作流。
  • decision. 已选择或执行的操作,单行内容。
  • why. 用直白语言说明原因。如果是基于某项原则,直接表述(如
    先探索选项,这是不可逆决策
    ),而非使用行话标签。
  • evidence. 可验证的链接或路径:commit SHA、PR编号、
    file:line
    ,或工件、追踪记录、截图路径。绝不要用段落描述。
  • result. 结果或状态:
    测试通过
    已回滚
    像素差异为0
    未得出结论
    待处理
以下是一个示例,表述直白,方便审核人员快速理解。仅作说明,请勿将这些行复制到真实日志中。
ts	phase	decision	why	evidence	result
2026-05-24T09:02:00Z	frame	先统计工作量,约100个组件,耗时约75小时	开始长期任务前想了解工作量大小	commit 3a9f1c2	发现开始前需解决5项问题
2026-05-24T09:40:00Z	harness	在做任何修改前先截取旧版本截图	以便对比新旧版本,捕捉所有视觉变化	scripts/snapshot.sh, baseline/	已保存120张参考截图
2026-05-24T11:15:00Z	widget	迁移组件样式但未改变外观	保持改动范围小,确保结果一致	commit 7c21e0a, pixel-diff 0	外观一致,测试通过
2026-05-24T12:30:00Z	widget	舍弃了某个辅助工具的工作成果,因为其截图为空	未信任工具摘要,而是检查了真实文件	工作树已重置	已回滚,收紧了下次操作的指令

Logging a row

记录一行日志

Write each entry the way you'd tell a teammate what you did. Plain words, concrete actions, no AI speak or abstract jargon (the unslop skill applies to log text too). A reviewer should understand each row without decoding it.
Use the helper so rows stay well-formed:
scripts/log.sh <logfile> <phase> <decision> <why> <evidence> <result>
. It stamps
ts
, writes the header on first use, strips stray tabs/newlines, and prefixes any cell starting with
=
,
+
,
-
, or
@
with a single quote so a reviewer opening the log in a spreadsheet doesn't trigger formula execution. A bare
printf
appending a row works too, but mind those same bytes if cells come from generated or user-supplied text.
Log decision points and checkpoints, not every action: a fork chosen, a unit completed with its verification result, a pivot or revert with its trigger, a blocker surfaced, a gate fixed. For loop runs, one row per iteration. Skip the trivial and self-evident.
撰写每条记录时,就像向同事描述你做了什么一样。使用直白语言、具体行动,避免AI术语或抽象行话(unslop技能同样适用于日志文本)。审核人员无需解码就能理解每一行内容。
使用辅助工具确保记录格式规范:
scripts/log.sh <logfile> <phase> <decision> <why> <evidence> <result>
。它会自动添加
ts
时间戳,首次使用时写入表头,去除多余的制表符/换行符,并在以
=
+
-
@
开头的单元格前添加单引号,避免审核人员用电子表格打开日志时触发公式执行。也可以使用
printf
命令追加行,但如果单元格内容来自生成文本或用户输入,需注意处理上述特殊字符。
记录决策点和检查点,而非每一个操作:比如选择的分支、已完成并验证的单元、触发的转向或回滚、发现的阻塞问题、修复的关卡。对于循环运行的任务,每次迭代记录一行。跳过琐碎和不言自明的内容。

Where it lives

存储位置

By default the log is a working artifact, not committed. Keep it at
decisions.tsv
in the work dir, or
.audit/<task-slug>.tsv
when several efforts run at once, and leave it out of git. Most work doesn't need a committed trail; the local log still keeps the run honest and can be discarded after.
Commit it only when the work is ambitious enough that a reviewer needs the trail to trust the result: a large cross-language port, a multi-week migration, anything where confidence has to be shown rather than assumed. A committed log renders as a table in the PR.
默认情况下,日志是工作过程中的临时产物,无需提交。将其保存在工作目录下的
decisions.tsv
,或当同时进行多项任务时保存在
.audit/<task-slug>.tsv
,并将其排除在git之外。大多数工作无需提交轨迹;本地日志仍能确保工作可追溯,完成后即可丢弃。
仅当工作规模足够大,需要审核人员通过轨迹确认结果可信时才提交日志:比如跨语言大规模移植、持续数周的迁移,以及任何需要证明可信度而非默认信任的工作。提交后的日志会在PR中渲染为表格。

Rules

规则

  • One row is one decision or checkpoint. If it doesn't fit on one line, the decision isn't crisp yet.
  • Append-only. A wrong call gets a new row that supersedes it. Never edit or delete history.
  • Prefer evidence produced by committed scripts over hand-made one-offs, so a reviewer can re-run it (the encode-lessons-in-structure principle skill).
  • 一行记录一个决策或检查点。如果内容无法放在一行,说明决策还不够清晰。
  • 仅可追加记录。错误的决策需添加新行来替代,绝不要编辑或删除历史记录。
  • 优先使用已提交脚本生成的依据,而非手工制作的一次性内容,方便审核人员重新运行验证(遵循encode-lessons-in-structure原则技能)。

Audit the log against the transcript

根据记录审核日志

At the end of the run, before handing back, check the log told the truth. Read this run's transcript under the active workspace's
agent-transcripts/
directory (the system prompt names the path). Don't glob across
~/.cursor/projects/*/
; that reads unrelated private chats. Walk the log against what actually happened:
  • Every row maps to a real action. Cut invented or aspirational entries.
  • Each row's evidence resolves and shows what the row claims.
  • A fork, pivot, or abandoned approach that shaped the work but isn't logged is a gap. Add it.
  • Drop padding. If nobody would audit a row, it doesn't earn its place.
Fix the log, not the story. If the work diverged from what a row claims, the row is wrong.
运行结束、交付之前,检查日志是否如实记录。读取当前工作区
agent-transcripts/
目录下的本次运行记录(系统提示会给出路径)。不要遍历
~/.cursor/projects/*/
;这会读取无关的私密对话。对照实际发生的情况检查日志:
  • 每一行都对应真实操作。删除虚构或理想化的记录。
  • 每行的依据均可访问,并能证明该行所述内容。
  • 如果影响工作的分支、转向或废弃方案未被记录,需补充记录。
  • 删除冗余内容。如果没人会审核某一行,那它没有存在的必要。
修正日志,而非修改事实。如果实际工作与记录不符,说明记录有误。

Cross-model review of the trail

轨迹的跨模型审核

Before handing back, you must spawn a subagent on a different model family from the one that did the work. Self-review is not a substitute; the point is fresh eyes you cannot bring yourself. The subagent reads the audit trail and the run's transcript, then flags what the user should pay attention to. Not a redo of the work, a scan for what's suboptimal or risky.
  • Decisions logged with weak or absent evidence.
  • Verification steps skipped or claimed without proof in the transcript.
  • Choices that look risky in hindsight (premature, scope-creeping, papering over a symptom).
  • Gaps the user would otherwise miss on a casual skim.
Every reply for a run that produced a trail ends with an "Attention" section. Lead with the reviewer's model on its own line (
reviewed by <model>
), then list each flag pointing to specific rows or moments. "No flags" is a valid value; the model name is not. The self-audit asks if the log told the truth; this asks what the user should still scrutinize even when it did.
交付之前,必须启动一个与执行工作的模型不同的子Agent进行审核。自我审核无法替代;关键在于引入你自己无法提供的全新视角。子Agent会读取审计轨迹和运行记录,标记用户需要关注的内容。无需重新执行工作,只需扫描是否存在次优或有风险的内容。
  • 记录的决策依据薄弱或缺失。
  • 验证步骤被跳过,或记录中声称已验证但无记录证明。
  • 事后看来存在风险的选择(过早决策、范围蔓延、掩盖问题)。
  • 用户粗略浏览时可能遗漏的漏洞。
生成轨迹的每次回复末尾都需包含“注意”部分。先单独一行列出审核模型(
reviewed by <model>
),然后列出每个标记点,指向具体行或时刻。“无标记”是有效结果;但必须注明模型名称。自我审核是检查日志是否如实记录,而跨模型审核是提醒用户即使日志如实记录,仍需仔细检查哪些内容。

Reviewing the trail

审核轨迹

Read top to bottom, follow the evidence pointers, spot-check. GitHub renders a committed TSV as a table;
column -s$'\t' -t decisions.tsv
renders it in a terminal. A row whose evidence doesn't resolve, or whose result is unverified, is the audit catching a gap.
从上到下阅读,跟随依据链接,进行抽查。GitHub会将提交的TSV渲染为表格;在终端中使用
column -s$'\t' -t decisions.tsv
命令也可查看。如果某一行的依据无法访问,或结果未经验证,说明审核发现了漏洞。

Composing this skill

整合此技能

Other skills route their audit trail here instead of inventing one. Reference it by name and let it own the format; don't restate the columns.
其他技能应将其审计轨迹整合到此处,而非自行创建新的轨迹格式。直接引用本技能名称,由它来定义格式;无需重复列说明。