Why HAAK uses directory hierarchy with flat domain tags, rather than pure flat-with-tags.
#The alternative considered
Flat structure where all documents live at one level, organized entirely by tags. No type-based directories. This is how Bear works natively and how many Zettelkasten systems operate.
Arguments for flat: simpler mental model, no directory moves on reclassification, tags are the only organizing principle. The handwritten note (Feb 19) proposed this: "use tags and flat structure rather than a hierarchy."
#Why hierarchy
#Obsidian compatibility
Obsidian vaults are directory trees. Graph view groups by folder. The file explorer is the primary navigation. Properties panel reads YAML frontmatter but folder structure provides the first-level organization that makes a vault navigable at scale. A flat vault with 200+ files and only tags would require graph filtering or search for every navigation — no browsable structure.
#Types are stable, not cross-cutting
HAAK's types (foundation, policy, process, feature, project, persona) are mutually exclusive — a document is exactly one type. Mutually exclusive categories map cleanly to directories. Tags work best for cross-cutting concerns (domains, status, maturity) where a document belongs to multiple categories simultaneously. Process-architecture established this split: types → directories, domains → tags.
#Existing infrastructure assumes hierarchy
/write mvdir— renames and moves with automatic cross-reference fixing. This makes hierarchy non-brittle — reclassification is a single command, not a manual reference hunt./run-audit rebuild— generatesindex.mdper directory. Hierarchy gives these indices meaning.- Recursive processes — peer-review has rounds (
R1/,R2/), projects have subfolders (01-lib-theory-1-2-formalization/), each withindex.md. These are naturally hierarchical. - Flat Index Principle (file-structure policy rule 11) — flexibility within hierarchy. Subfolders are flat and named, not rigidly nested. Structure emerges from work.
#Bear compatibility is preserved
Bear uses flat + tags natively. /bear-sync maps HAAK's hierarchy to Bear tags: #haak/foundations/shadow-ecosystem. Bear sees flat notes with hierarchical tags — the best of both worlds. The hierarchy lives in the filesystem; Bear gets the tag projection.
#The hybrid model
Types → directories (mutually exclusive, stable)
Domains → frontmatter (cross-cutting, many-to-many)
Wiki links → [[Title]] (navigable prose references)
Flat indices → index.md (flexibility within hierarchy)
Types-as-directories gives navigability. Domains-as-tags gives compositionality. Wiki links give prose-level cross-referencing. Flat indices give flexibility within each directory. This is the settled design.
#Origin
Handwritten note (Feb 19 2026, IMG_8979) proposed flat + tags. Assessment against existing architecture showed hierarchy is load-bearing — Obsidian, /write mvdir, /run-audit rebuild, recursive processes, and the type system all depend on it. The hybrid model (hierarchy for types, tags for domains) was already implemented by process-architecture; this document provides the rationale.
haak · created 2026-02-22 · zach + claude
Architecture 01 — Hierarchy Rationale — 2026 — Zachary F. Mainen / HAAK