methodology

How an Agent Boundary Review is run.

The review covers the agent execution boundary: the line between what a model asks for and what the system actually does. Every review follows the same written method and fills the same report template, so you can read what you are buying before you book.

Updated By

01 rules of engagement

Agreed in writing before any testing starts.

The review works from what you have released. It never needs your credentials, and nothing is tested that the written scope does not name.

In scope

  • The released package, at an exact version
  • The public repository, at a full commit hash
  • Public website and documentation
  • Local and containerised environments we stand up and control

Out of scope

  • Hosted or shared client infrastructure
  • Private repositories
  • Any account, credential or tenant of yours or your customers
  • Non-public endpoints
  • Third-party systems the product integrates with

Conduct

  • Non-destructive and isolated. No load or availability testing.
  • We supply our own API keys for any third-party model or service. Your credentials are never requested, held or used.
  • No client production data. Test data is synthetic.
  • Testing does not knowingly breach the terms of service of any third party the product calls.

serious-finding protocol

If we judge a finding serious, that line of testing stops and we write to your named contact directly, out of band, the same day. It is not held back for the report.

02 the passes

Six passes, in a fixed order.

  1. pass 00

    Intake and pin

    We pin the artifact set and check it ourselves. The commit has to resolve and the named branch has to point at it. The package tarball is downloaded and hashed locally against the registry's published digest. Anything we cannot resolve stays in the report, next to your explanation of it. Conflicts of interest are declared in writing before testing starts.

  2. pass 01

    Surface enumeration

    One row per tool the agent can call, with its arguments, the authority it runs under, the gate in front of it, what it can reach, and whether the call is logged. A cell nobody can fill is recorded as unknown, and unknown is a finding. If the surface is too large to enumerate in full, the report says so before the table starts, with the sampling rule and the full count.

  3. pass 02

    Static read

    The authorization path and the logging call sites are read before anything live is touched. The authorization and audit-trail checklists are worked on paper first.

  4. pass 03

    Adversarial testing

    Hands-on testing of reach and prompt-boundary integrity, against an isolated environment only. Every result gets a reproduction script, negative results included.

  5. pass 04

    Audit-trail challenge

    We take one ordinary action the system performed, ideally one you choose, and try to reconstruct it end to end from the log alone. Then we look for our own adversarial testing in the same log. If it is not there, the report says so plainly.

  6. pass 05

    The report

    If an earlier pass runs long, it takes time from the next pass. It never takes time from the report.

Fig. 1 · the agent execution boundary what the review looks at

03 what we test

27 checks across four checklists.

Each checklist is shown with the closest categories from the OWASP Top 10 for LLM Applications (2025). The mapping is ours, included so your reviewer can place each check against a framework they already use.

checklist A · 7 checks

Tool-call authorization

  • Whether callable tools are allowlisted, or everything registered is callable
  • Authorization per tool, per argument, or absent
  • Tools the operator did not intend for the task or session
  • Confirmation gates, and bypass by batching, chaining or a wrapping tool
  • Whose authority the call runs under, and confused-deputy service accounts
  • Cross-tenant reach from one session to another
  • The deny path, and what a refusal teaches the next attempt
LLM06 Excessive Agency
checklist B · 8 checks

Unintended reach

  • Filesystem traversal, absolute paths, symlinks and the log's own path
  • SSRF to loopback, cloud metadata and private ranges, including after redirects
  • Shell involvement and unquoted arguments
  • Bind addresses that turn a local tool into a network service
  • Authentication on HTTP, SSE and WebSocket transports
  • Egress through a permitted tool
  • Secrets and key material readable through any exposed tool
  • Unbounded invocation of costly or destructive tools
LLM06 Excessive AgencyLLM02 Sensitive Information DisclosureLLM10 Unbounded Consumption
checklist C · 5 checks

Prompt-boundary integrity

  • Indirect prompt injection through fetched pages, files, rows, tickets and email
  • Provenance or trust labels on content entering the context
  • Tool output steering the next tool call
  • User-supplied strings reaching the system prompt or a tool description
  • Multi-agent trust, and whether two agents reading one poisoned source are counted as two
LLM01 Prompt Injection
checklist D · 7 checks

Audit trail

  • Every tool call logged, or sampled
  • Arguments and results recorded, not only the tool name
  • The record written before or after the side effect
  • Whether the agent can write to, edit or suppress its own log
  • A correlation id from request to downstream effect
  • Tamper evidence: append-only, hash-chained, or shipped out
  • Retention, and whether a named action on a named date can be answered
no direct OWASP category

The multi-agent trust check follows Provenance Is Not Independence: two agents reading the same poisoned source are one source, not two.

04 how findings are graded

Two axes on every finding.

axis 1

Severity

CVSS 3.1, with the full vector printed so your reviewer can recompute the score. Every score is labelled as our own assessment. We check the attack vector before we write the number.

axis 2

Evidence grade

How much we actually showed. A finding with a high score and an inferred grade is reported as exactly that.

Evidence grades for findings
Reproduced We ran it and it did the thing. The script and the output are in the report.
Observed We saw the behaviour but did not build a clean reproduction.
Inferred from code The code path permits it. It was not executed.
Theoretical A class of issue that applies to this design, with no evidence in this codebase.

Clean results are graded too.

An absence is never printed as a bare pass or a checkmark. Every clean line carries its grade and a statement of what was checked, in the same sentence, so it cannot be quoted back later as "you said it was fine."

Grades for clean results
Exercised, property heldThe isolated target was run and the tested behaviour did not occur. States what was run and what input was sent.
Searched, not foundCode or documentation was read and the property was not in what was read. States exactly what was read.
Not exercisable from the released artifactThe released surface offers no path to test it. States every command and flag examined, and that this is a limit of the artifact, not a result about what lies behind it.

When your public claims are in scope

Each public claim about the product is written down as a testable statement and given one verdict.

Demonstrated Described only Contradicted Not establishable from the public surface

05 the report

Written for two readers.

The founder who commissioned it, and the enterprise security reviewer who is holding up the deal. The executive summary and the findings are for the first. The scope, the independence statement, the clean results and the questionnaire mapping are for the second.

appendix b

Every finding and every clean result, mapped to the questions enterprise security questionnaires ask. The deployment configuration each answer assumes is stated above the table, so your team can answer from it directly.

You may share the report with your own customers and prospects. Appendix C can be withheld at your discretion, and the report is written to stand without it.

See the questionnaire mapping

Report contents
§1Artifacts reviewed, and how they were checked
§2Scope and rules of engagement, as executed
§3Independence and conflicts
§4Executive summary
§5Claims verification, when your public claims are in scope
§6The execution boundary, as built
§7Findings
§8What was tested and found nothing
§9Audit trail under challenge
§10Residual risk, and what the review does not cover
App. ATool inventory
App. BEnterprise security questionnaire mapping
App. CReproduction detail

06 what the review does not cover

Stated in every report.

  • It is not a penetration test of hosted infrastructure.
  • It is not a code audit of the whole product. It covers the execution boundary.
  • It is not a compliance certification. It produces evidence a certification process can use.
  • It is not a model evaluation. Jailbreak resistance of the underlying model is the model provider's surface.
  • It is a point-in-time review against a pinned version, and it says nothing about later versions.