Tooling Evaluation Criteria
A vendor-agnostic scoring instrument, and how to read a vendor who cannot describe their own product's behavior.
This framework is deliberately vendor-agnostic, and this section is where that posture becomes actionable.
Two distinct question sets are needed and they are usually collapsed into one. The first is universal: a set of governance properties that any AI participant in delivery must satisfy regardless of what stage it serves, because they determine whether the organization can attribute, bound, revoke, and audit what the tool does. The second is stage-specific: the properties that actually differentiate two tools serving the same lifecycle stage, and which look entirely different for a requirements platform than for a pipeline agent. A procurement process that asks only the universal questions buys governable tools that do not fit the work. One that asks only the stage-specific questions buys capable tools that cannot be governed. Ask both.
21.1 Capability Classes by Stage #
Distinguish these classes, because they carry different risk, bind at different stages, and are frequently bundled and sold as a single product.
| Class | Stages | What it does | Primary risk |
|---|---|---|---|
| Planning and portfolio intelligence | S1 | Forecasting, capacity modeling, work decomposition, consumption attribution | False precision in estimates; consumption reported after the fact rather than forecast |
| Requirements and specification | S2 | Authoring, structuring, traceability, acceptance criteria generation | Generated specifications that are untraceable; criteria that no machine can check |
| Design and architecture | S3 | Modeling, decision records, threat modeling, constraint definition, component catalogs | Architecture agents cannot read; constraints that exist only as documentation |
| Context and knowledge substrate | S2–S7 | Indexes internal code, documents, and decisions, and exposes them to agents | Retrieval scoped wider than the invoking principal; poisoned or stale context |
| Inline assistant | S4 | Completion and chat within the editor; no write authority beyond the developer’s own actions | Quality and comprehension; licensing exposure |
| Repository-resident agent | S4 | Operates on a repository, opens branches and pull requests, runs tools | Authorization, provenance, review saturation |
| Pipeline agent | S4–S6 | Operates within CI/CD; builds, tests, triages, remediates | Credential blast radius; verification independence |
| Review and analysis agent | S4–S5 | Reviews changes, triages findings, suggests remediation | False assurance; triage suppression; ingesting untrusted content |
| Test and evaluation | S5 | Evaluation harnesses, evaluation as a gate, red teaming, test generation | Metric non-portability; self-consistent suites; unvalidated judges |
| Release and provenance | S6 | Signing, attestation, SBOM generation, release orchestration | Provenance emitted but never verified; AI components absent from the SBOM |
| Operations agent | S7 | Acts on running systems: deploys, remediates, scales, responds | Production blast radius; unreliable self-report |
| Observability and cost | S7 | Telemetry, evaluation in production, consumption attribution | Recording mistaken for detection; cost visible only in aggregate |
| Agent platform / control plane | All | Governs which agents run, with what models, under what policy | Concentration of authority; enforcement gaps between platforms |
Two observations from this table are worth carrying into a buying decision. Most enterprise attention and most vendor investment sit in the generation-heavy classes (inline assistants, repository-resident agents, and pipeline agents), while the evidence in Section 3 places the binding organizational constraint in the two classes that absorb their output, review and analysis and test and evaluation. And the first four classes, which govern what everything downstream is actually working from, are the least likely to be evaluated as AI tooling at all, because they were usually bought years ago for other reasons.
21.2 Universal Criteria #
These apply to every class in the table above and are scored pass or fail, not weighted. A tool that fails several is ungovernable at any stage, however well it performs. Three carry evidence from elsewhere in this framework: automatic attribution that a user cannot correct corrupts the record it creates, which is one reason at least one major editor ships its equivalent setting defaulting to off;16 licensing exposure from training-data reproduction is small but non-zero and scales with context size, which is the direction agentic tooling is moving;49,50 and the measured cross-product merge conflict rate is roughly double the same-product rate, so multi-vendor strategies carry a cost no vendor comparison will surface.32
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| U-1 | Identity and offboarding | Unique principal per deployment; delegation chain inspectable after the fact; identities governable in your IdP as enforcement, not inventory; a described offboarding process | ”Agents run as a service account”; governance described as visibility; no answer at all on offboarding |
| U-2 | Credential model | Task-scoped, short-lived credentials; measured revocation time-to-effect | ”Credentials are stored securely”; revocation described but never measured |
| U-3 | Isolation and egress | Isolation verified in the running environment; every outbound path enumerated; artifact proxy inside production vulnerability management; untrusted-input paths separated from privileged ones | Isolation asserted from an architecture diagram; egress described as “restricted” without enumeration |
| U-4 | Configuration surface | Named list of files treated as executable or authoritative; approval bound to content hash; concealed characters filtered; defined behavior on a hostile repository | Configuration described as inert; approval bound to a server or tool name |
| U-5 | Provenance and attribution | Cryptographically verifiable attribution; model version recorded; exportable session record linking artifact to task, human, and tool set; attribution configurable with a stated default | Attribution present but unsigned; no model version; session records visible in a console but not exportable |
| U-6 | Model dependency | Dated snapshot pinning; stated notice commitment before version or safety-configuration change | Alias-only model selection; “we notify customers of material changes” |
| U-7 | Data handling and IP | Training use stated with the default named; retention period and jurisdiction stated; indemnity with exclusions disclosed; license matching surfaced at suggestion time | Training use described as “may be used to improve the service”; indemnity referenced without its exclusions |
| U-8 | Telemetry and control | Emission in a documented schema ingestible by your pipeline; measured kill-switch time-to-effect; central administration of approved models and permitted agents | Telemetry available only in the vendor console; kill switch that reaches orchestrated agents but not local ones |
| U-9 | Concurrency and interoperability | Described behavior under concurrent agents; scope partitioning supported; conflict behavior documented | ”Our agents coordinate automatically”; no position on other vendors’ agents |
| U-10 | Exit | Named export path for evaluation corpora and metric definitions, provenance records, session logs, agent definitions, instruction files, policy configuration, traceability identifiers | Data export offered for content but not for governance artifacts |
| U-11 | Assurance and incident commitment | Mapping to a published agentic risk taxonomy with a stated shared-responsibility line; independent assessment of the agentic components specifically; a notification commitment and named incident support terms | A platform-wide certification offered in answer to an agent-specific question |
21.3 Stage-Specific Criteria #
These are weighted rather than pass-fail, because their relative importance depends on where the organization’s constraint sits. Score each 2 (met and demonstrated), 1 (partially met or met by roadmap), or 0 (not met). An unanswered criterion scores 0; the absence of an answer is data.
Three criteria below rest on evidence stated earlier: between 36.7 and 55.7 percent of tasks in one study carried a known CVE in the dependency version the model specified, which is why S4-2 exists;64 the capabilities that most determine whether an organization realizes value are organizational rather than product properties, which is why S1-4 is a caution rather than a criterion;98 and published guidance exists on the security content that belongs in agent instruction files, which is what S3-5 scores against.99
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S1-1 | Consumption attribution | Cost attributable to team, repository, and task | Attribution to a billing account only |
| S1-2 | Consumption forecasting | Forward forecast with variance against actuals | Reporting after the period closes |
| S1-3 | Absorption modeling | Review load modeled alongside delivery throughput | Throughput dashboards with no review-side counterpart |
| S1-4 | Honest scope | Vendor distinguishes what the product supplies from what the organization must supply | Product claimed to deliver organizational capabilities such as an AI stance or platform quality |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S2-1 | Machine-legible criteria export | Structured export a test generator or evaluation harness consumes without the vendor in the loop | Requirements exported as prose or PDF |
| S2-2 | Traceability durability | Identifier survives into branches, commits, tests, and release records in systems the vendor does not own | Traceability maintained only inside the vendor’s own graph |
| S2-3 | Generated-requirement marking | Drafts marked as generated with the model recorded | Generated and authored requirements indistinguishable after save |
| S2-4 | Non-functional expression | NFRs expressible as numeric budgets with named owners | NFRs captured as free-text intentions |
| S2-5 | Probabilistic requirements | Threshold, corpus reference, and measurement method as first-class fields | Model-backed behavior described in the same fields as deterministic behavior |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S3-1 | Enforceable constraint output | Constraints emitted in a form the build can enforce | Constraints rendered as diagrams and documents only |
| S3-2 | Agent-legible design surface | Design representation surfaceable to a coding agent as authoritative context | Design accessible only through the vendor’s UI |
| S3-3 | Artifact governance | Constraint and instruction artifacts live in version control, reviewable | Artifacts held as platform configuration outside review |
| S3-4 | Reuse discovery | Component catalog answers “does something like this already exist” | Search over names rather than over capability |
| S3-5 | Instruction-file security content | Instruction files carry dependency, package-manager, pinning, and integrity-verification guidance | Instruction files treated purely as style configuration |
| S3-6 | Threat model comparability | Findings mapped to a published taxonomy | Bespoke severity language, not comparable across teams |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S4-1 | Merge boundary, demonstrated | Live demonstration that the agent cannot self-approve, mark its own PR ready, trigger CI unauthorized, push to protected branches, or edit its governing ruleset | Documentation offered in place of a demonstration |
| S4-2 | Dependency version resolution | Versions resolved against vulnerability policy, not accepted as the model specified them | Model-specified versions written directly into the manifest |
| S4-3 | Package existence and provenance checks | Existence, age, and maintainer provenance checked before install | Checks run after install, or at scan time only |
| S4-4 | Risk-tiered review | Review requirements assignable by path and change class | Uniform review policy with per-repository granularity only |
| S4-5 | Review integrity telemetry | Approval rate, review duration, and diff size at approval reported | Merge counts reported without review-quality signal |
| S4-6 | Concealed-character handling | Ingested content filtered for zero-width and bidirectional characters | No stated position on invisible-rendering content |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S5-1 | Evaluation as a local gate | Evaluations run inside your CI without a vendor callback | Gating available only through the vendor’s hosted pipeline |
| S5-2 | Metric transparency and portability | Documented metric computation; corpora and results exportable in an open format | Named metrics with undisclosed computation |
| S5-3 | Judge validation | Validation against human labels supported as a first-class workflow, with chance-corrected agreement reported | Judge scores presented as ground truth |
| S5-4 | Suite sensitivity | Mutation or property-based testing establishes that a suite would fail on a defect | Line coverage reported as the quality signal |
| S5-5 | Remediation verification independence | The verifier of a suggested fix is independent of the model that produced it, with false-negative rates disclosed | Time-to-fix improvements published; false negatives not measured |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S6-1 | Signed provenance | Attestations in a standard predicate format, verified at consumption | Provenance emitted but never checked |
| S6-2 | Agent-authorship predicate | Support for a custom predicate carrying agent authorship metadata | Authorship recorded only in commit trailers |
| S6-3 | AI-inclusive SBOM | SBOM covers AI components including model lineage and dataset provenance | SBOM covers packages only |
| S6-4 | Authorship in the release record | Agent-authored and human-authored change distinguishable without manual reconstruction | Distinction reconstructable only by querying commit history by hand |
| S6-5 | Quality-distribution promotion gates | Promotion gated on evaluation score, refusal rate, or task completion distribution | Promotion gated on error rate alone |
| S6-6 | Model version change as a release | Provider version change traverses the release gate | Model version treated as runtime configuration |
| ID | Criterion | A strong answer contains | A weak or evasive answer |
|---|---|---|---|
| S7-1 | Schema-versioned telemetry | Published schema you can pin and version, given these conventions remain development-stage | Proprietary event shapes that change without notice |
| S7-2 | Unit cost observability | Cost attributable per task and per agent | Account-level billing only |
| S7-3 | Kill-switch reach | Halt reaches agents in developer environments and third-party platforms, with measured time-to-effect | Halt reaches orchestrated agents only |
| S7-4 | Intra-snapshot drift detection | Behavioral change detected within a pinned snapshot | A deprecation calendar offered as drift detection |
| S7-5 | Continuous validation | Evaluation suite runs against production traffic on a schedule with distribution alerting | Evaluation available pre-release only |
21.4 Scoring and Use #
- Run U-1 through U-11 first, as gates. They are pass or fail. A vendor failing three or more should not proceed to stage scoring, because the stage capability will not survive the governance gap.
- Score the stage criteria only for the stages the tool actually serves, using the capability-class table in 16.1 to decide which apply. Scoring a requirements platform against S6 produces a low number that means nothing.
- Weight stage fit by where your constraint actually is. Most organizations shop for stage four generation speed. The evidence in Section 3 places the binding constraint in stage five verification capacity and in the review load that stage four generates. Weights that mirror the evidence rather than the sales motion produce a different shortlist, which is the point of scoring at all.
- Weight the universal criteria above capability. Capability improves rapidly and converges across products; governance architecture is set at design time and rarely changes. A tool that generates excellent output and cannot be governed will be replaced within eighteen months at considerable cost. A tool that generates adequate output inside a sound authorization model will still be serviceable.
- Resolve the suite-versus-best-of-breed question deliberately. The concurrency finding argues for fewer agent products operating on the same repository. The portability and exit criteria argue against a single vendor owning the measurement layer, because a vendor that both generates and grades is not an independent verifier. The reconcilable position is to consolidate the things that write and diversify the things that measure.
- Demand demonstrations for U-1 through U-5 and for S4-1. All six are testable in an afternoon, and all six are areas where vendor documentation and shipped behavior have diverged in public. Score a documented-but-undemonstrated claim as 1, never 2.
- Record vague answers as findings rather than as zeros. A zero says the capability is absent; a finding says the vendor could not describe its own product’s behavior, which predicts the support relationship. The pattern worth watching for is a confident answer about the platform’s general security posture offered in response to a specific question about agent behavior.
References cited in this section
7 of 243 · numbering matches the PDF
- 16Microsoft, "Visual Studio Code Release Notes, Version 1.110," March 2026. The `git.addAICoAuthor` setting offers `off`, `chatAndAgent`, and `all`, and ships defaulting to `off`.code.visualstudio.com/updates/v1_110 ↗
- 49Gaia Colombo, Leonardo Mariani, Daniela Micucci, and Oliviero Riganelli, "On the Possibility of Breaking Copyleft Licenses When Reusing Code Generated by ChatGPT," arXiv:2502.05023, 2025. Preprint.arxiv.org/abs/2502.05023 ↗
- 50Albert Ziegler, "GitHub Copilot Research Recitation," The GitHub Blog, June 30, 2021 (updated August 16, 2022). 2021 data, Python only, original Copilot model; the only rigorous first-party measurement located.
- 32George Xu, Arjun Subramanian, and Nithilan Karthik, "AI Agent Pull Requests on GitHub: Frequency, Structure, and Merge Conflict Rates," arXiv:2607.04697, July 6, 2026. 33,596 agent-authored pull requests across 2,807 repositories. Conflict rates rest on 601 intra-agent and 115 cross-agent evaluable pairs; the authors describe the figures as a conservative lower bound measuring textual conflicts only. Preprint.arxiv.org/abs/2607.04697 ↗
- 64Chengjie Wang, Jingzheng Wu, Xiang Ling, Tianyue Luo, and Chen Zhao, "Correct Code, Vulnerable Dependencies: A Large Scale Measurement Study of LLM-Specified Library Versions," arXiv:2605.06279, May 7, 2026. Preprint.arxiv.org/abs/2605.06279 ↗
- 98Google LLC, DORA AI Capabilities Model, v2025.1, 2025. Seven capabilities: clear and communicated AI stance; healthy data ecosystems; AI-accessible internal data; strong version control practices; working in small batches; user-centric focus; quality internal platforms.services.google.com/fh/files/misc/2025_dora_ai_capabilities_model.pdf ↗
- 99Avishay Balter et al., "Security-Focused Guide for AI Code Assistant Instructions," OpenSSF Best Practices and AI/ML Working Groups, August 1, 2025.best.openssf.org/Security-Focused-Guide-for-AI-Code-Assistant-Instructions ↗