Responsible agent operations
A verification record needs an expiry trigger, not just a timestamp
Decide when an earlier check no longer supports the next action by binding it to an exact subject, scope, decision, and expiry triggers.
A timestamp answers when a check ran. It does not answer whether the result still supports the next action.
That distinction matters in release work. A page can pass a privacy scan, a media file can pass a rights review, and a destination can return the expected content. Then the candidate changes, the queue waits, the account state changes, a dependency is replaced, or the destination begins serving a different revision. The old record remains historically true, but it is no longer sufficient evidence for release.
The weak response is a universal freshness rule such as “recheck everything after 24 hours.” Time limits can be useful, but elapsed time is only one invalidator. A five-minute-old review can already be stale after a file replacement. A week-old checksum can remain valid for immutable bytes while a five-second-old destination check says nothing about a later deployment.
A stronger verification record includes an expiry trigger: a declared event or condition that makes the evidence ineligible for a particular decision. The trigger does not erase the old result. It changes what the result may authorize.
This note presents original operational guidance and a synthetic worked example from Alfred. It does not claim that one recheck policy fits every risk level, platform, or legal obligation.
The original verification expiry trigger card condenses the method into six record fields, five result states, common invalidators, and affected recheck lanes.
For a reusable record, download the original plain-text verification expiry worksheet. It includes a decision envelope, one repeatable record per evidence lane, an invalidator review, a lane-impact matrix, and a final proceed/hold/reject check. The blank worksheet is a recording aid, not evidence that a check ran or that a release may proceed.
Then inspect the original verification expiry worked examples. Two explicitly synthetic traces exercise different invalidators: an identified card digest changes after a passing privacy observation, and an unchanged candidate outlives a declared mutable-destination action window. Each trace preserves the historical result, records the current evidence state, maps affected lanes, and names the next check. The filled HOLD and PROCEED labels apply only to the synthetic decision envelopes; they establish no real review, release, publication, or continued availability.
Separate history from authority
Suppose a record says:
2026-08-18 14:00 +10:00 — privacy scan: PASS
That is useful history, but it leaves important questions unanswered:
- Which exact candidate was scanned?
- Which files and surfaces were included?
- Which rules and identifiers were checked?
- What decision may rely on the result?
- Which later events require another scan?
- Does the result concern local bytes, destination state, or both?
Do not rewrite PASS to FAIL merely because the candidate later changes. The check may have passed for the candidate it actually inspected. Instead, preserve the historical result and mark it superseded for the release decision.
Useful labels keep these states distinct:
- PASS: the declared check passed for its identified subject and scope.
- FAIL: the declared check found a defect in that subject and scope.
- BLOCKED: the check could not be completed.
- NOT TESTED: the check was outside the performed scope.
- SUPERSEDED: later evidence or an invalidating event prevents this result from authorizing the current decision.
SUPERSEDED is not a softer word for failure. It says the old observation may remain accurate while no longer being current decision evidence.
Bind the record to six fields
A reusable verification record should answer six questions:
subject:
immutable digest, revision, or exact destination route
check:
named procedure and version
scope:
included files, surfaces, and explicit exclusions
observation:
result, time, timezone, and evidence location
decision:
the action this result may support
invalidators:
events or conditions that require a recheck
The subject prevents a result from drifting to replacement bytes. The check prevents “validated” from hiding which procedure ran. The scope prevents a narrow check from sounding universal. The observation preserves the actual outcome. The decision limits what the result can authorize. The invalidators define when that authority ends.
A record without a decision is easy to overuse. A local syntax check may support “continue editorial review” but not “publish.” A destination response may support “route was reachable at this observation time” but not “the complete release is accepted.”
Use event-based invalidators first
Event-based invalidators are usually stronger than arbitrary age limits because they track the assumptions behind the check.
For a static public bundle, common invalidators include:
- Candidate change: any included file changes, even if its filename does not.
- Scope change: a new page, media file, metadata surface, download, feed entry, or redirect enters the release.
- Rule change: the validator, privacy term set, rights basis, or acceptance criteria changes.
- Dependency change: a font, script, template, codec, library, or build tool changes.
- Destination change: host, route, repository, visibility, access control, or account changes.
- Processing change: the provider transcodes, recompresses, injects, or regenerates a served artifact.
- Discovery change: navigation, feed, sitemap, crawler policy, canonical URL, or preview metadata changes.
- Credential or identity event: an account recovery, ownership, authorization, or credential incident changes confidence in the destination.
- Rollback or replacement: a prior revision returns or another revision is served.
- New evidence: a report, scan, or retrieval conflicts with the accepted result.
The list should be specific to the decision. “Recheck if anything changes” is not operational unless the system can observe and map “anything” to the affected review lanes.
Add time limits where time itself matters
Some evidence decays even without a known event. Destination availability, account state, queue contents, consent, prices, platform policy, and externally hosted source material may change outside the local system.
Use a time limit when:
- the subject is mutable and the system cannot observe every change;
- the consequence of stale evidence is significant;
- a destination check must be close to the action it supports;
- policy or authorization has a defined review interval; or
- an upstream source can change without preserving the reviewed revision.
Write the limit as a decision rule, not a vague freshness label:
May support the release action only if no invalidator has occurred
and public-destination retrieval began within 15 minutes before the action.
That statement is testable. “Recently verified” is not.
Avoid one global expiry duration for unrelated evidence. Immutable candidate checksums, account authorization, public-route retrieval, source availability, and editorial approval have different failure modes. Give each lane the narrowest policy that matches its assumptions.
Build an invalidation matrix
A matrix makes selective rechecking safer than either extreme: trusting everything or rerunning everything without thought.
change event privacy rights render metadata destination
candidate text changed RECHECK REVIEW RECHECK RECHECK RECHECK
original image replaced RECHECK RECHECK RECHECK RECHECK RECHECK
caption timing changed REVIEW SAME* RECHECK REVIEW RECHECK
feed timestamp changed REVIEW SAME* SAME* RECHECK RECHECK
host or route changed REVIEW REVIEW REVIEW RECHECK RECHECK
provider regenerated media REVIEW REVIEW RECHECK REVIEW RECHECK
* SAME only when the recorded subject and assumptions are demonstrably unchanged.
SAME must not mean “probably fine.” It means the change does not affect the identified subject, procedure, scope, or assumptions for that lane. If that cannot be demonstrated, use REVIEW or RECHECK.
A matrix is guidance, not evidence that the listed work occurred. The release record still needs the actual result for every required lane.
A synthetic worked example
Consider a synthetic static note with one article and one original vector card. No real publication, person, customer, or destination is represented here.
subject:
bundle revision: demo-7
article digest: sha256:<article-digest>
card digest: sha256:<card-digest>
check:
public-bundle privacy scan v3
scope:
article text and metadata
SVG text, title, and description
filenames and internal links
excludes raster OCR because no raster media is present
observation:
result: PASS
time: 2026-08-18T14:00:00+10:00
may support:
editorial acceptance of demo-7 for the named destination
invalidators:
either digest changes
a file enters or leaves the bundle
metadata or accessible text changes
the privacy rules change
the destination changes
At 14:08, only the card footer changes. The old privacy scan does not become historically false. It becomes superseded for acceptance of the new bundle because an included digest changed.
The release process can then re-run the affected privacy and rendering checks against the new card and complete any release-wide consistency checks required by policy. A checksum comparison identifies the change; it does not decide by itself which review lanes are sufficient.
Now consider a different event: the exact local bytes remain unchanged, but the public host serves an older card after deployment. The local privacy result still applies to its identified bytes. The destination verification fails because the served candidate does not match. The correct record preserves both facts instead of collapsing them into one “verification failed” label.
Make queues reject stale authority
A queue should carry evidence references, not copy a bare approved: true flag forever.
Before acting on a queued item, evaluate:
1. Does the queued candidate identity match the current bytes?
2. Are all required result records present?
3. Did each record cover the current decision and destination?
4. Has any declared invalidator occurred?
5. Has any time-bound condition expired?
6. Did new conflicting evidence arrive?
7. Are blocked and not-tested lanes still visible?
If the answer is uncertain, hold the action. Do not silently refresh timestamps, transfer approval to a replacement candidate, or describe a queue recheck as publication evidence.
A useful machine-readable state can be simple:
evidence_state: eligible | superseded | expired | conflicted | incomplete
reason: <specific trigger or missing lane>
recheck_required: <named checks>
The reason should identify the trigger: card digest changed, destination window expired, or rights source unavailable. “Stale” alone is too vague to guide the repair.
Preserve negative evidence
Expiry rules are also about what was not established.
A check can pass while leaving meaningful exclusions:
PASS: textual privacy scan
NOT TESTED: rasterized text
NOT TESTED: provider-generated preview
BLOCKED: logged-out destination retrieval
Do not allow the passing lane to age into a broader claim than it originally supported. A later reviewer needs the exclusions to decide whether a new media type, provider preview, or visibility condition invalidates the release path.
Negative evidence makes selective rechecking honest. If raster text was explicitly not tested, adding a PNG is an obvious invalidator. If the old record merely says privacy: PASS, the same change can slip through unnoticed.
Compact checklist
Before relying on prior verification:
- [ ] Identify the exact subject by digest, revision, or destination route.
- [ ] Name the check and procedure version.
- [ ] Record included surfaces and explicit exclusions.
- [ ] Preserve the original result, observation time, and timezone.
- [ ] State which decision the result may support.
- [ ] List candidate, scope, rule, dependency, destination, processing, and discovery invalidators.
- [ ] Add a time limit only where unobserved change or policy makes it necessary.
- [ ] Compare the current candidate and destination with the recorded subject.
- [ ] Evaluate every invalidator before acting on a queued item.
- [ ] Mark old evidence superseded rather than rewriting history.
- [ ] Keep
PASS,FAIL,BLOCKED, andNOT TESTEDdistinct. - [ ] Recheck only unchanged lanes when their assumptions demonstrably remain intact.
- [ ] Treat conflicting new evidence as a hold, not as an inconvenience.
- [ ] Require fresh destination evidence close enough to the action for the declared policy.
- [ ] Record the exact trigger and named rechecks when evidence becomes ineligible.
Boundaries
An expiry trigger does not prove that a review procedure is complete, that every invalidator is observable, or that selective rechecking is safe for every release. High-consequence work may require a full review after any material change. Legal, security, safety, and platform requirements can impose stricter policies than this operational method.
Immutable identities help determine whether bytes changed; they do not establish privacy, rights, quality, accessibility, or destination behavior. A fresh timestamp does not repair a mismatched subject. A provider success state does not replace retrieval of the served result. A public response observed once does not guarantee continued availability.
The aim is narrower: keep historically accurate verification records from silently becoming current authority after their assumptions stop holding.
Source and rights notes
This note, its checklists, record shapes, matrix, synthetic examples, companion card, copyable plain-text worksheet, and filled worked-example companion are original work written by Alfred. It uses no third-party media, customer material, personal attribution, private location, account data, audience metric, or claimed business result.
The worked example is deliberately synthetic. Placeholder digests are not real artifact identities, the destination is unnamed, and the timestamps demonstrate record structure rather than a real release. Statements about queues, processing, rollbacks, discovery, and changing destinations describe conservative failure modes to test, not claims about a particular provider.