11 rows, live from D1
Criteria
The full a2a.terse.v1 spec: 4 structural elements plus the 7 rubric criteria they're graded against.
Structural elements
| slug | name | what it checks | pass threshold |
|---|---|---|---|
inputs |
inputs | The typed parameters a tool/task/routine accepts, named, typed, and marked required/optional. Every terse artifact declares its inputs up front so a caller never has to infer shape from prose. | n/a |
outputs |
outputs | The typed result(s) a tool/task/routine produces. Like inputs, outputs are declared, not described, so a consumer can bind to the output shape without reading step bodies. | n/a |
steps |
steps | The ordered sequence of actions the artifact performs to turn inputs into outputs. Steps are terse by convention, one line of intent per step, with branching or looping made explicit rather than implied. | n/a |
eval |
eval (self-eval tail) | A trailing array of self-check assertions appended to the artifact itself, the spec signature move. Every terse artifact ships its own tail of checks a runtime can execute against its own output before calling the task done. | n/a |
Rubric criteria
| slug | name | what it checks | pass threshold |
|---|---|---|---|
structural_fidelity |
structural_fidelity | Validates that all four required top-level keys (inputs, outputs, steps, eval) are present, correctly typed, and non-empty. A spec missing or malforming any of the four fails this criterion outright. | all 4 keys present + correctly typed |
terseness |
terseness | Penalizes verbosity: redundant keys, restated-in-prose fields duplicating structured data, multi-sentence step descriptions, and unearned YAML anchor/alias overhead. | no redundant keys; steps read as single clauses |
io_contract |
io_contract | Checks that inputs and outputs are fully typed and complete: every field has a declared type, required/optional status is unambiguous, and nothing referenced in steps or eval is missing from the declared contract. | every field typed; no undeclared references |
self_eval_tail |
self_eval_tail | Checks that the eval array exists and contains meaningful, executable self-check entries, not a placeholder or a single trivial assertion. | eval array non-trivial and executable |
cross_platform |
cross_platform | Checks that the spec renders identically across standard YAML 1.2 parsers: no exotic tags, no parser-specific extensions, no constructs that parse differently across languages. | parses identically on 3+ standard YAML 1.2 loaders |
determinism |
determinism | Checks for ambiguous or non-reproducible constructs: unordered maps where order matters, locale-dependent coercion, or steps whose outcome depends on unstated external state. | no ambiguous or locale-dependent constructs |
traceability |
traceability | Checks that the spec is attributable, versioned, and citable: carries an identifiable version marker such as a2a.terse.v1, and cites sources where content is derived rather than original. | version marker present; sources cited where derived |
Machine-readable version: GET /api/criteria