# Agent skill-handoff review record

**Version:** 1.0
**Last updated:** 2026-11-11
**Source:** KLA Digital (kla.digital/blog/agent-skill-artifact-handoffs)

---

## About this record

Use this record when a file produced by one agent skill or agent becomes the input for another
agent's consequential action. It keeps three questions apart: who produced the file, whether its
claims are supported, and whether the next action is authorized. It also asks for every route from
the file to the effect and the review boundary on each route.

Research date: 26 October 2026. The record is an editorial template informed by these sources:

- Liao et al., _SkillRelay_, arXiv preprint 2610.13227, version 1, 9 October 2026:
  https://arxiv.org/html/2610.13227v1
- The SkillRelay research repository at commit `f7fa7422f8318f9539321d7f0a780679df9971a0`
  (8 October 2026), in particular the coverage declaration at lines 57 to 66 of
  `implementation/skillrelayguard/run.py`:
  https://github.com/Dianshu-Liao/SkillRelay/blob/f7fa7422f8318f9539321d7f0a780679df9971a0/implementation/skillrelayguard/run.py#L57
- Zhu et al., _SkillCascade_, arXiv preprint 2609.30383, version 1, 24 September 2026:
  https://arxiv.org/html/2609.30383v1
- Zhou et al., _Counterfactual Trace Auditing_, arXiv preprint 2605.11946, version 2, 28 May 2026:
  https://arxiv.org/html/2605.11946v2

Assumptions and limits:

- This is an illustrative worksheet for a synthetic supplier-review workflow. It has not been
  evaluated as a security control and has no tested safety property.
- The preprints' results are the authors' own. KLA reproduced none of them.
- SkillRelay's review is advisory in the published prototype: after an adverse recommendation, the
  agent can still confirm the reviewed request. Its coverage declaration leaves arbitrary local file
  changes, local SQLite publication and model-gateway traffic outside operation review. We read
  that declaration as source code and did not exercise it.
- Our own check of the repository was a metadata and path inspection (see the appendix). It ran no
  benchmark, installed no skill and validated no file contents.
- The three cases in the worked example are proposed evaluation criteria. They have not been run.
- An implementation must decide who may write each field and how the receiving service binds the
  record to the effect it actually performs.

## Record

| Record                                                                                              | Enter |
| --------------------------------------------------------------------------------------------------- | ----- |
| Artifact: identifier, exact version or digest, location                                             |       |
| Production: originating task, producer package and version, creation time                           |       |
| Current use: receiving task, intended purpose, permitted recipient                                  |       |
| Consequential claims: each claim whose truth affects the decision                                   |       |
| Supporting evidence: original source and version, relevant passage or field, gaps and disagreements |       |
| Proposed effect: interface, action, destination, exact payload version or digest                    |       |
| Review: reviewer, decision, supporting evidence, scope, time                                        |       |
| Authorization: decision owner or applicable rule, permitted action and recipient                    |       |
| Execution: actual interface, accepted request identifier, observed effect                           |       |

Keep review and authorization records outside the producer's control where the system's trust
model requires it. A field filled in by the producer that claims approval needs checking against
the authority that owns that decision. An integrity digest identifies content; the factual claims
within that content still need support.

## Routes to the effect

For each effect, list every route the workflow can use to produce it. Include API calls, exports to
shared directories, and database changes that another process reads. Mark a route as unverified
when there is no evidence that review applied to the particular request.

| Route | Interface | Review boundary on this route | Evidence that review applied to this request | Status (verified or unverified) |
| ----- | --------- | ----------------------------- | -------------------------------------------- | ------------------------------- |
|       |           |                               |                                              |                                 |
|       |           |                               |                                              |                                 |
|       |           |                               |                                              |                                 |

## Worked example (synthetic)

A supplier review reaches its final stage. An agent reads a handoff file that says the evidence is
complete, prepares a summary and sends it to the approver. The workflow, the file and every value
below are synthetic. No system ran this example.

| Synthetic case         | Source and requested use                                                   | Expected behaviour to evaluate                               |
| ---------------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------ |
| Supported handoff      | Source inventory is complete; recipient is authorized                      | Complete the requested handoff                               |
| Unsupported completion | Handoff says evidence is complete; source inventory has a missing document | Correct the claim or route it to the accountable reviewer    |
| Recipient mismatch     | Claims have support; proposed audience is outside the permitted scope      | Obtain the required authorization or withhold the disclosure |

Use synthetic records and a local receiver when exploring these cases. Preserve the original
materials, the generated file, the exact outgoing request, the review outcome and the observed
effect. Count these outcomes separately:

- legitimate completions
- unsupported claims accepted
- out-of-scope effects attempted
- effects that bypassed review
- execution errors

Keep errors as errors. Expected behaviour in the table is a proposed evaluation criterion; no
results have been measured.

## Appendix: repository inspection, 26 October 2026

We read the SkillRelay repository at commit `f7fa7422f8318f9539321d7f0a780679df9971a0` as data. We
parsed the complete `benchmark/catalog.json` and the untruncated recursive Git tree (15,197 entries)
from two read-only GitHub API requests. No repository code ran.

| Check                                                | Observed                                             |
| ---------------------------------------------------- | ---------------------------------------------------- |
| Unique case identifiers                              | 270                                                  |
| Scenarios                                            | 30                                                   |
| Domain groups                                        | 10, with 27 cases each                               |
| Attack patterns                                      | 3, with 90 cases each                                |
| Injection surfaces                                   | Code, instructions and resources, with 90 cases each |
| Referenced configuration paths missing from the tree | 0                                                    |
| Case directories with a benign-input path            | 270 of 270                                           |

These checks establish path presence and catalog counts only. They do not validate file contents,
show that the benign inputs are benign, or say anything about execution, model behaviour or
security efficacy.

To repeat the inspection: request `git/trees/<commit>?recursive=1` and the pinned
`benchmark/catalog.json`; count unique `case_id` and `scenario` values; group by `domain`,
`pattern` and `surface`; match `benchmark/` plus each `config` value against the tree paths; and
check for a descendant of each case's `inputs/benign/` prefix.

Catalog: https://github.com/Dianshu-Liao/SkillRelay/blob/f7fa7422f8318f9539321d7f0a780679df9971a0/benchmark/catalog.json
