Skip to content
CodeAncestry

Documentation · Protocol

Capability ontology

A lightweight, Gene Ontology-inspired tree. Machine-readable terms, human-readable labels. The tree lives in lib/schema/gene.ts — this page renders that module.

A gene is a term, not a file

input.music.midi.scheduling is a gene. src/midi/buffer.ts is an anchor that currently implements one. That separation is what lets two projects in different languages be recognised as carrying the same capability.

Terms are dotted, lowercase, and stable. Labels can be edited. The seeded catalogue maps 16 genes onto 33 terms, including the root.

ontology: {
  term: "input.music.midi.scheduling",
  tags: ["midi", "audio", "latency", "realtime"]
}

input  →  Input
input.music  →  Music input
input.music.midi  →  MIDI
input.music.midi.scheduling  →  MIDI scheduling

The live tree

Carriers listed beside a leaf come from the seeded genes. Empty leaves are reserved vocabulary — they exist so a later project can land on a term that is already defined.