Make an AI capacity pilot produce a reviewable receipt

Make an AI capacity pilot produce a reviewable receipt

Disclosure: AI drafted this tutorial for Wagglet’s marketing work. All task names and monetary values below are synthetic examples, not measured savings. A capacity pilot needs more than a list of merged patches. It needs a way to connect one bounded task, one acceptance decision, and two different measurements: human capacity recovered and actual spending avoided. Here is a small implementation you can adapt.

披露:本文由人工智能为 Wagglet 的营销工作起草。下文中的所有任务名称和货币价值均为合成示例,而非实际测算的节省额。容量试点项目需要的不仅仅是一份合并补丁清单。它需要一种方法来关联一项有界任务、一项验收决策以及两项不同的衡量指标:恢复的人力容量和避免的实际支出。以下是一个您可以采用的小型实现方案。

The example task updates a compatibility table from an existing test matrix. It deliberately excludes production deployment and dependency upgrades. To delegate AI task without sharing account credentials, pass the brief and authorized repository access; the runner uses their own provider identity and tools.

该示例任务旨在根据现有的测试矩阵更新兼容性表格。它特意排除了生产环境部署和依赖项升级。若要在不共享账户凭据的情况下委派 AI 任务,请传递任务简报和授权的仓库访问权限;执行者使用其自己的提供商身份和工具。

Write the task contract first id: compatibility-table-01 requester: product-owner runner: authorized-maintainer reviewer: release-engineer input: fixtures/runtime-matrix.json output: docs/runtime-compatibility.md scope: include: [document the supplied fixture, identify missing entries] exclude: [upgrade packages, change CI, deploy, modify credentials] acceptance:

  • every fixture row is represented exactly once
  • unknown support is labelled unknown
  • reviewer reproduces the generator output stop_if:
  • repository access is missing
  • fixture contradicts the requested claim
  • acceptance requires a production change

首先编写任务合同 id: compatibility-table-01 请求者: 产品负责人 执行者: 授权维护者 审核者: 发布工程师 输入: fixtures/runtime-matrix.json 输出: docs/runtime-compatibility.md 范围: 包含: [记录提供的固定装置, 识别缺失条目] 排除: [升级包, 更改 CI, 部署, 修改凭据] 验收标准:

  • 每个固定装置行都必须被精确表示一次
  • 未知的支持项需标记为未知
  • 审核者需复现生成器的输出 停止条件:
  • 缺少仓库访问权限
  • 固定装置与请求的声明相矛盾
  • 验收需要生产环境变更

The requester prepares this contract. The maintainer executes it with their own authorized tools. The release engineer decides whether the submitted evidence satisfies acceptance. Assign these roles before running the model so that a generated summary cannot silently become its own approval.

请求者准备此合同。维护者使用其自己的授权工具执行任务。发布工程师决定提交的证据是否满足验收标准。在运行模型之前分配这些角色,以确保生成的摘要不会悄无声息地成为其自身的审批依据。

Store the receipt as data Save the next file as pilot.json. The baseline is a pre-task estimate for equivalent scope. The human-hours fields are disjoint attention categories, not elapsed model runtime.

将收据存储为数据 将以下文件保存为 pilot.json。基准线是对同等范围任务的事前估算。人力工时字段是互不重叠的注意力类别,而非模型运行的耗时。

[ { “id”: “compatibility-table-01”, “accepted”: true, “baselineHours”: 3, “briefHours”: 0.4, “executionHours”: 1, “reviewHours”: 0.5, “reworkHours”: 0.2, “cancelledPurchase”: 0, “incrementalTools”: 0, “incrementalPaidLabor”: 0 } ]

Use accepted: false until the reviewer records a decision. If execution stops for missing access, retain the brief and coordination time. Deleting failed attempts makes the pilot appear cheaper than it was.

在审核者记录决策之前,请将 accepted 设置为 false。如果因缺少访问权限而停止执行,请保留简报和协调时间。删除失败的尝试会使试点项目看起来比实际成本更低。

Compute independent totals Save this as pilot.mjs and run node pilot.mjs pilot.json using Node.js. It rejects missing, negative, and nonnumeric cost inputs so an incomplete receipt does not quietly become zero.

计算独立总计 将其保存为 pilot.mjs,并使用 Node.js 运行 node pilot.mjs pilot.json。它会拒绝缺失、负数和非数字的成本输入,从而确保不完整的收据不会悄无声息地变为零。

import { readFile } from ‘node:fs/promises’; const rows = JSON.parse(await readFile(process.argv[2], ‘utf8’)); const fields = [‘baselineHours’, ‘briefHours’, ‘executionHours’, ‘reviewHours’, ‘reworkHours’, ‘cancelledPurchase’, ‘incrementalTools’, ‘incrementalPaidLabor’]; let recoveredHours = 0, avoidedSpend = 0; for (const row of rows) { if (typeof row.accepted !== ‘boolean’) throw Error(‘acceptance missing’); for (const key of fields) { if (!Number.isFinite(row[key]) || row[key] < 0) { throw Error(${row.id}: invalid ${key}); } } const attention = row.briefHours + row.executionHours + row.reviewHours + row.reworkHours; recoveredHours += (row.accepted ? row.baselineHours : 0) - attention; avoidedSpend += (row.accepted ? row.cancelledPurchase : 0) - row.incrementalTools - row.incrementalPaidLabor; } console.log(JSON.stringify({ accepted: rows.filter(r => r.accepted).length, recoveredHours: +recoveredHours.toFixed(3), avoidedSpend: +avoidedSpend.toFixed(2) }, null, 2));

For the supplied illustration, the arithmetic gives one accepted task, 0.9 recovered hours, and zero avoided spend. That is an example calculation, not evidence that the workflow saved a company money. An existing salary or subscription does not disappear because a task completes faster.

对于提供的示例,计算结果为一项已验收任务、0.9 小时的恢复工时以及零避免支出。这只是一个计算示例,并非工作流为公司节省资金的证据。现有的工资或订阅费用不会因为任务完成得更快而消失。

Walk the handoff through its failure path Suppose the runner notices that the fixture has no Safari result. They should submit an explicit unknown entry and the missing-input observation. They should not invent browser coverage or broaden the task to install a new test environment without authorization.

引导交接过程通过其失败路径 假设执行者注意到固定装置中没有 Safari 的结果。他们应该提交一个明确的“未知”条目和缺失输入的观察结果。他们不应在未经授权的情况下编造浏览器覆盖范围,或扩大任务范围去安装新的测试环境。

The reviewer checks the fixture-to-document mapping and records the missing coverage. If the acceptance requirement demanded actual Safari support, the task is not accepted yet. Its consumed attention still belongs in the ledger. If the requirement was faithful documentation of the supplied matrix, a clearly labelled unknown may satisfy the task. That distinction is why the contract comes first. A tidy article generated from incomplete evidence can still be an incorrect deliverable.

审核者检查固定装置到文档的映射,并记录缺失的覆盖范围。如果验收要求确实需要 Safari 支持,则该任务尚未被验收。其消耗的注意力仍应计入账目。如果要求只是对所提供矩阵的忠实记录,那么一个标记清晰的“未知”项可能就满足了任务要求。这种区别正是合同先行原则的原因。由不完整证据生成的整洁文章,仍然可能是一个错误的交付成果。

End the two weeks with a decision Group receipts by scope and rejection reason. Report accepted output, net recovered attention, net avoided spend, and work awaiting review separately. Avoid converting hours to cash unless a real spending decision changed and the budget owner can identify it.

在两周结束时做出决定 按范围和拒绝原因对收据进行分组。分别报告已验收的产出、净恢复的注意力、净避免的支出以及等待审核的工作。除非实际的支出决策发生了变化且预算所有者能够识别,否则请避免将工时转换为现金。

The Wagglet capacity handoff article describes the broader coordination opportunity. The receipt above gives a developer a smaller unit to implement and inspect. Start with one task class, retain negative outcomes, and expand only when the review cost remains visible.

Wagglet 容量交接文章描述了更广泛的协调机会。上述收据为开发人员提供了一个更小的实施和检查单元。从一类任务开始,保留负面结果,并且仅在审核成本仍然可见时才进行扩展。