Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Audit an AI agent harness for production readiness from repository code, configuration, tests, and run traces. Score 44 runtime controls across eight outcomes with artifact evidence, identify audit limitations, assign an evidenced maturity band, make a launch decision, and produce a dependency- ordered fix queue. Use for agent safety, governance, ship-readiness, control- gap, or due-diligence reviews of LangGraph, OpenAI Agents SDK, Google ADK, CrewAI, multi-agent, MCP-enabled, or custom agent s
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 533% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 186% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 170% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 127% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 93% | 0% |
Audit the system that constrains the model, not the model's promises. Build a falsifiable assurance case for the release under review:
> No causal evidence, no assurance. A control is effective only when an > artifact shows that the deployed path invokes it before the protected > boundary, a boundary test or release-linked observation challenges it, and no > obvious bypass remains. Prompts, diagrams, dependencies, and self-reports are > leads—not enforcement.
Keep three judgments separate:
observed in the release?
the audit evidence?
Do not turn them into a percentage. A polished inventory of weak evidence must not outvote one critical, bypassable boundary.
manifests; optional, but consequential production paths cannot be cleared without it.
consequences. Infer an impact tier when absent and label the assumption.
Do not block on missing optional inputs. Record unavailable surfaces as Not verified, state the access needed, and apply the launch gate in the rubric. Never equate inaccessible with absent, or absence with N/A.
Read these before scoring:
capability modules, metrics, and launch gates.
Read research-basis.md when explaining the method, updating the rubric, selecting evaluation techniques, or auditing a novel surface. It records the primary research behind the workflow and its review date.
Follow the sequence. Preserve uncertainty and counterevidence at every stage.
Read manifests, lockfiles, entry points, tool and MCP configuration, prompts, policy code, tests, evals, telemetry, and deployment files. Identify the exact release tuple when possible: model, prompt, policy, tools, context/retrieval, memory schema, evaluators, and harness revision.
Assign the impact tier from the rubric:
Choose the highest tier triggered by any reachable capability. Do not average a dangerous write path down with many harmless read paths.
Run the deterministic prescan:
bashnode "$SKILL_DIR/scripts/prescan.mjs" <target-path>
Use --json when machine-readable output helps. If Node is unavailable, use rg manually. The prescan only locates leads; open every material hit.
Map the actual flow as edges, not a component list:
textprincipal -> intent/authority -> model/context -> dispatcher -> tool/resource -> sink untrusted source -> retrieval/tool result/message -> context or memory release config -> runtime path -> trace/eval/incident record
For every edge, note the trust change, identity, data class, authority source, persistence, side effect, monitor, and enforcement point. Inventory reachable capabilities, including indirect access through sub-agents, plugins, MCP servers, browser/computer use, shell/code execution, and delegated credentials.
Mark each capability module in the rubric Applicable or N/A with a factual rationale. Missing implementation is not N/A when the capability exists.
Identify assets, principals, trusted instructions, untrusted observations, policy owners, and external sinks. Write concrete abuse stories for every consequential capability. Cover relevant origins:
Express each story as:
textGiven <authority and starting state>, when <failure or adversary> influences <boundary>, the harness must prevent/detect/recover from <observable harm>.
Name the cut point that should stop it. Prioritize by reachable impact, attacker opportunity, reversibility, and blast radius—not by keyword count.
Assess all eight core claims plus every applicable capability module in the rubric. For each claim:
path:line, test ID, trace ID, or deployment binding.workers, over-broad credentials, and feature flags that bypass the control.
evidence level E0–E4, and confidence High / Medium / Low.
An Effective claim requires an enforced mechanism, coverage of the scoped surface, and boundary evidence. A helper test proves the helper, not the real path. A runtime trace proves only the release and scenario it can be linked to.
Use a time budget to keep searching bounded, but do not mislabel uncertainty: record “not found within audit budget” as Not verified, then apply the same launch block as an unresolved claim at that tier.
Select evidence by critical capability, not by an arbitrary number of traces. At minimum, seek for each critical path:
Reconcile every result to the release tuple. Prefer deterministic environment state, policy decisions, and tool-call arguments over the final answer. Use an LLM judge only for narrow semantic questions, preserve its prompt/version, and validate it against human-labeled examples. Never let a judge's prose override an observed forbidden state change.
For stochastic agents, require repeated trials. Report benign utility, violation/attack success, consistency (pass^k when appropriate), and false positive/negative rates for monitors. Use paired benign/adversarial tasks so a defense that refuses everything cannot appear safe. Break results down by task/attack family; aggregates can hide a catastrophic slice.
Do not execute live attacks or risky tools merely to fill an evidence gap. Only run behavioral tests when the user has authorized them and the environment is isolated, reversible, and free of real-user impact. Otherwise specify the exact test and expected oracle for the owner to run.
Apply the tier-specific gates in the rubric. Use:
evidence is missing, or a credible bypass reaches unacceptable harm.
constraints or compensating controls.
gate, residual risks are owned, and evaluation coverage matches the release.
Code-only review may support design assurance; it cannot clear a T2/T3 runtime. State the residual risk, audit confidence, evidence freshness, and exact scope of the decision. Do not assign a maturity label that implies evidence you did not inspect.
Use report-template.md. Lead with the highest- impact reachable failure path, not the inventory. Include:
Each fix must name the mechanism, boundary, owner placeholder, and expected evidence that would change the judgment. Prefer one load-bearing cut point that closes several abuse stories over many prompt tweaks. End with the first fix to complete and the re-audit trigger.
consequential boundary.
time—not only the wrong tool.
recovery. They are not interchangeable.
report while preserving verifiable references.
policy engine, tracing vendor, or orchestration pattern.
Other measured skills in the registry, with their headline benchmark lift.