---
id: "0011"
date: 2026-06-04
status: Accepted
supersedes:
superseded-by:
affected-paths: []
affected-components: []
migration_confidence: medium
migration_source: "docs/memory-system/03-architecture-decisions.md### ADR-011 — Faceted tag taxonomy: six independent namespaces (refines ADR-003)"
---

# 0011 — Faceted tag taxonomy: six independent namespaces (refines ADR-003)

## Context

ADR-003 introduced five namespaces (`tool/`, `client/`, `domain/`,
  `convention/`, `scope/`). During vault-reuse assessment (ADR-012) it became clear that (1)
  the existing SecondBrain vault uses a de-facto first-tag convention for note kind
  (research/plan/log/adr/howto) that should be made explicit and machine-queryable, and (2)
  for a freelancer working many projects per client, project identity deserves a first-class
  namespace rather than being implied by `client/` or `domain/`.

## Decision

Knowledge-vault notes are classified by **six independent, flat tag facets**
  that sit side-by-side, never nested into one another:
  - `type/` — note kind: `research`, `howto`, `adr`, `hub`, `plan`, `log`, `clip`, etc.
  - `client/` — which client
  - `project/` — which project (first-class; a freelancer's projects are the primary unit of
    work)
  - `domain/` — knowledge domain / topic area
  - `tool/` — tool-specific knowledge
  - `convention/` — conventions
  - …plus `scope/global` or `scope/project` (retained from ADR-003)

  Hierarchy and relationships are expressed via **hub notes** (`type/hub`), **wikilinks**, and
  **Graphify knowledge-graph edges** — NOT via nested tag paths.

  By convention `type/` is listed **first** in frontmatter, preserving the SecondBrain vault's
  existing type-first ordering habit and making the note kind immediately visible.
- **Rationale**: The vault is flat — hierarchy is not expressed through folder paths or tag
  nesting. The user's reality is many-to-many (many projects per client, knowledge domains
  spanning clients), which a single-parent tree models badly and forces false hierarchy. A
  project hub note links out to both its `client/` and relevant `domain/` tags rather than
  being buried under either. Per-type `_templates` will be provided for **core types only**
  (research, howto, adr, hub); the long tail stays freeform until a pattern earns a template.
  Consistent per-type structure also improves Graphify's local-SLM extraction reliability.

## Consequences

Vault notes are classified using six independent, flat, side-by-side tag facets (type/, client/, project/, domain/, tool/, convention/, plus scope/), with type/ listed first in frontmatter, and hierarchy/relationships expressed only via hub notes, wikilinks, and Graphify graph edges rather than nested tag paths. This refines ADR-003's namespace list, adds project/ as a first-class facet for freelancer work, and improves Graphify's extraction reliability via consistent per-type structure, with templates provided only for core types initially.

## Alternatives rejected

Hierarchical nesting in the style of John Conneely's
  `domain/{product}/{project}.md` folder structure (from the youngleaders.tech article "How I
  finally sorted my Claude Code memory" — **secondary/interview-grade source, not verified
  against primary implementation**). Rejected because: (1) the vault is flat — hierarchy is
  not expressed through folder paths; (2) the user's many-to-many reality maps badly onto a
  single-parent folder tree and forces false hierarchy; (3) nesting one facet through another
  (e.g. `domain/client/project`) creates Law-of-Demeter-style traversal coupling. Conneely's
  structure was the inspiration but diverges here on hierarchy-vs-facets. Faceted parallel tags
  are the flat-vault analogue of what the Graphify graph already does with edges, so they
  compose naturally with the chosen knowledge layer.
