Dendritic aspect resolver — generic core plus one shipped opinionated taxonomy.
  • Nix 97.9%
  • Nushell 2.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
teyla 528821af0b docs: amend the mapping — depth is free
Freeholder ruling, 2026-08-07: the top-level directory under modules/ is
the only interpreted segment; everything after it is the address, verbatim
and however deep.

LAYOUT.md contradicted the code once dendrite#18 landed the ruling: the
'Split by tech' law described a multi-tech directory as one address its
files were filed under, where the implementation nests each tech file as a
record beneath the directory. Ratification's rule for that disagreement is
that the code wins and the text is repaired in the same breath.

Also records what depth-freedom moves: shape enforcement leaves the mapping
for the option surface, which raises the weight of dendrite#17 question 5.

Closes #20
Refs #17
2026-08-08 07:56:27 +02:00
docs bootstrap: devshell, repo docs, steward spec 2026-08-06 01:31:50 +02:00
flakeModules library: resolver, registrar, graph, shipped taxonomy 2026-08-06 01:39:56 +02:00
lib library: path-to-address derivation 2026-08-08 07:43:40 +02:00
tests library: path-to-address derivation 2026-08-08 07:43:40 +02:00
.envrc bootstrap: devshell, repo docs, steward spec 2026-08-06 01:31:50 +02:00
.gitignore bootstrap: devshell, repo docs, steward spec 2026-08-06 01:31:50 +02:00
.justfile bootstrap: bare flake, just doctor 2026-08-05 22:54:31 +02:00
AGENTS.md bootstrap: devshell, repo docs, steward spec 2026-08-06 01:31:50 +02:00
CONTEXT.md docs: ratify the file mapping as documented law 2026-08-06 21:50:42 +02:00
flake.lock bootstrap: devshell, repo docs, steward spec 2026-08-06 01:31:50 +02:00
flake.nix library: path-to-address derivation 2026-08-08 07:43:40 +02:00
LAYOUT.md docs: amend the mapping — depth is free 2026-08-08 07:56:27 +02:00
LICENSE initial commit 2026-08-05 22:37:40 +02:00
README.md library: resolver, registrar, graph, shipped taxonomy 2026-08-06 01:39:56 +02:00
taxonomy.nix library: resolver, registrar, graph, shipped taxonomy 2026-08-06 01:39:56 +02:00

dendrite

A resolver for the Dendritic pattern: transitive dependency resolution over declarative units of composition, reporting diagnostics rather than throwing.

Status

Early, and unstable in every respect — API, vocabulary, layout. Nothing here is settled enough to depend on.

The nixpkgs input is used only for development outputs. Consumers should set dendrite.inputs.nixpkgs.follows = "nixpkgs" to reuse their existing input.

Taxonomy

The core is generic: resolver, registrar and graph take a kinds table (prefix → { name, satisfiable, rootOnly }) and contain no kind names. taxonomy.nix ships one opinionated taxonomy — trait (satisfiable), aspect (root-only), registry, policy — wired into a consumer's flake by flakeModules.taxonomy, which may be declined in favour of a custom table.

The shipped taxonomy's kind names are public API. Renaming or removing one is a breaking change to every catalog written against it; adding a kind is not. Custom tables are unaffected by either.

Where it lives

Licence

BSD-3-Clause — see LICENSE.