Reference¶
Information-oriented, exhaustive descriptions of the machinery. Reference is consulted, not read start-to-finish.
Everything here is generated from source — docstrings (Python), the dna
command definitions (CLI), and the registered Kinds' own schemas (Kinds). It
therefore cannot drift from the code: a regeneration runs in CI on every
change (scripts/gen_cli_docs.py, scripts/gen_kinds_docs.py,
scripts/gen_ports_docs.py, and mkdocstrings inline).
Pick your surface¶
-
The
dnapackage —Kernel, the ports,Instance,ManifestInstance, the extensions and thedna.testingconformance kit. Rendered inline from the docstrings by mkdocstrings. -
The
dnabinary — one page per command group (sdlc,research,doc,scope,kind,docs,source). Introspected from the Click command tree, so--helpand the docs can never disagree. -
The registered Kinds and their spec schemas, plus the
KindDefinitiondescriptor format. Introspected fromKernel.auto(). -
Every extension point DNA has — all 60 Protocols, grouped by what you are trying to change, each with its contract, the capability it lights up and the suite that grades it. Parsed from the source.
Reaching DNA from another language
There is one runtime and it is Python — so there is one API reference.
Other languages consume DNA through the REST and MCP faces
described in Microkernel &
ports. The
REST surface is described by docs/openapi.json, and the dna-client
packages for TypeScript and Python are generated from it — their
reference is the spec itself.
The stable read surface¶
The blessed, documented read/query API (all, one, root,
default_agent, build_prompt, resolve) is walked through narratively in
How to read instance data; the Python tree
above is its exhaustive, machine-generated counterpart. What every source
adapter must implement is in
How to write a source adapter, and every
other seam is catalogued in the port catalogue.