·
Last changedVersion:
This version passed the hardening gate. Hardening applied 2 targeted changes and preserved all other text. Classified findings before hardening: 0. Classified findings closed: 0. Classified findings remaining: 0. Unclassified scanner findings remaining: 0. Review findings closed: 2. Review findings remaining: 12.
None
None
Expand | File | Group | Subtype | Severity | Status |
|---|
No findings available
0 findings
Treat a plausible approval screen as a claim, not proof. Verify the complete decision path before a human or an external enforcement point decides whether to act.
INCONCLUSIVE when required evidence
is unavailable.Set this field in every final result:
Request only the artifacts needed for the review:
List missing fields before analysis. Do not silently substitute defaults.
Create one normalized action object without dropping fields:
Use a project-specified canonicalization and digest algorithm when provided. Otherwise, report that cryptographic identity cannot be independently verified; still compare every field structurally.
Never normalize away a security-relevant distinction such as:
Evaluate every control as PASS, FAIL, INCONCLUSIVE, or NOT_APPLICABLE.
FAIL if the received result differs from recomputation.INCONCLUSIVE when only schema validation, an internal checksum, or an
unverifiable evaluator claim is available.FAIL if any material field changed after approval.FAIL for a reused nonce, wrong audience, expired approval, future-dated
approval, excessive use count, revoked identity, or role mismatch.INCONCLUSIVE if no trustworthy replay store or time source exists.Build a dependence table for every reviewer or evaluator:
| Dimension | Compare |
|---|---|
Model | family, version, fine-tune |
Provider | account and control plane |
Prompt | shared template or ancestry |
Retrieval | overlapping sources and indexes |
Tools | shared evaluator code and runtime |
Operator | common owner or approval authority |
Do not count correlated reviewers as independent quorum members. Mark FAIL if
the policy requires independent approval and the remaining independent set is
too small.
| Support | Refutation | Epistemic state |
|---|---|---|
absent | absent |
|
present | absent |
|
absent | present |
|
present | present |
|
FAIL if evidence was removed, altered, expired, or concealed in a way
that changes the result.CONFLICTED into a numeric average that appears safe.Before producing the final result, attempt these mutations mentally :
If any mutation would pass the reviewed controls, record the affected control
as FAIL; do not merely recommend future hardening.
Use exactly one result:
ELIGIBLE_FOR_HUMAN_DECISION: all required controls pass.ELIGIBLE_WITH_CONTROLS: no required control fails, and explicit external
controls can resolve the listed conditions before execution.BLOCKED: at least one required control fails or the action exceeds the
justified scope.INCONCLUSIVE: no required control is proven false, but evidence needed for
a safe decision is missing or unverifiable.ELIGIBLE_FOR_HUMAN_DECISION is not approval. A human authority and a separate
enforcement point remain responsible for any real action.
Lead with the result and the exact reason. Prefer a reproducible blocker over a confidence score.
Get started with chainctlchainctl skill install public/github/verify-agent-action:latest
Bring Chainguard's hardening pipeline to your first-party skills — custom rulesets, automated remediation, full audit trail.
skills.chainreg.biz/public/github.com/github/skills/verify-agent-action:latest
MIT
HARDENING.md
LICENSE
SKILL.md