Skip to content

ATD, the ADP Tool Language

Contents of ATD 0.1

Specification, version 0.1 (Working Draft)

Version 0.1
Status Working Draft
Date 2026-10-25
Grammar grammar/: atd.lark and the modules it imports, in ATD grammar notation (section 4)
Tree schema atd.schema.json (JSON Schema, draft 2020-12), $defs/Tree; also $defs/Findings, $defs/Trace, $defs/ConformanceFixture, $defs/Drawing, $defs/Capability, $defs/ParseTables (Appendix A)
Serves every kind of tool: diagrams (with DISL), designers (with DESL), editors (in place of EDSL), and their bindings (with FBL)
Expression language CEL — Common Expression Language (https://cel.dev)
File extension .atd, the ADP Tool Description
Version key atd <major>.<minor>, the first construct of every file
Licence Apache License 2.0 (Apache-2.0)

Status of this document

This is a working draft, version 0.1, the first of ATD, written for phase 1 of the move of every tool type to one language (spec 035). In phase 1 the tool descriptions of the tool types in scope are written in ATD beside the DISL, DESL and FBL files that every host keeps running, and ATD's toolchain checks, edits, validates and debugs them; no host loads a tool from a tool description (section 1.2). Any construct may change before 1.0 (constitution principle IV); a description is always read with the grammar of the version it declares (section 18).

The key words MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY and OPTIONAL are to be interpreted as described in RFC 2119 and RFC 8174 when, and only when, they appear in bold capitals. Sections and paragraphs marked (informative) explain intent and give guidance; everything else is normative. The words of docs/terminology.md are used as defined there: tool, tool type, diagram, designer, editor, tool engineer, specification, definition, binding, body, splice, reading, finding, host, runtime, ADP tool language, tool description, script, capability, conformance fixture and trace.

Contents