DNA — Domain Notation of Anything¶
Kubernetes CRDs, but for agentic behavior.
DNA is a declarative, typed notation for everything that participates in an
agentic system — agents, skills, souls, guardrails, tools, policies. Every
participant is identified by (apiVersion, kind), validated against a
per-Kind schema, and stored as versionable YAML/Markdown. Changing an
agent is a file edit, not a deploy.
apiVersion: github.com/ruinosus/dna/v1
kind: Agent
metadata:
name: greeter
spec:
instruction: "You are Helio, a friendly assistant."
skills: [verification-before-completion] # a real marketplace skill
DNA ships as a dual SDK — Python (import dna) and TypeScript
(@dna/sdk) — that implement the same kernel 1:1. Behavioral parity between
them is a test-enforced invariant, not a goal.
Start here¶
These docs follow the Diátaxis framework — four kinds of documentation, each with one job.
-
Learning-oriented. Build your first Kind and composed agent prompt in ten minutes, Python and TypeScript side by side.
-
Understanding-oriented. Start with the thesis — "CRDs, but for agentic behavior" — then the Kinds model, the five ports, and market fidelity.
-
Task-oriented. How to add a Kind, write a source adapter, read document data, and more.
-
Information-oriented. Per-language API reference, the CLI, and the parity matrix — coming soon (generated from source).
The shape of the idea¶
| Claim | Where it lives |
|---|---|
The owner names the schema. Standards DNA didn't invent are consumed byte-faithful under their owners' apiVersion. |
Market fidelity |
| Behavior is data, not code. Prompts, personas and wiring are versioned documents, validated on write and composed on read. | The thesis |
| The kernel knows no Kinds. A microkernel mediates five ports; extensions register Kinds onto it. | Microkernel & ports |
| Your git log is your SDLC. This repo tracks its own lifecycle as DNA documents, stamped onto every commit. | The SDLC loop |
Status¶
DNA is the extracted core of a production system, not a greenfield prototype: the kernel, the extension mechanism, multi-tenancy, layer composition and the market-format readers/writers run in production today.
It is also pre-1.0: public APIs may still move, and the packages are not yet on PyPI/npm. The full test suite (~2,900 tests across both SDKs, including the market-conformance suite) gates every change.
The source lives at github.com/ruinosus/dna.