Clauding Manifesto

Knowledge: small, linked, tagged files

principle knowledge

Project knowledge lives in docs/ as small, dense, linked, tagged markdown files. Markdown is the only source of truth.

Why

without it failure
one long doc agent loads 2,000 lines to use 20
free-form tags billing, invoices, invoicing: nothing findable
unlinked files dead knowledge nobody reaches
no frontmatter no way to find docs for an area without reading them all

Small files

Frontmatter on every doc

---
title: Invoice computation               # str, required
tags: [billing, domain]                  # list[str], only from docs/tags.md
code: [src/pkg/billing.py::compute_invoice, src/pkg/io/]   # path or path::Symbol
---

code: is covered by freshness. ADRs and papercuts add status (ADRs, papercuts).

Controlled tag vocabulary

docs/tags.md: one tag per line with a one-line meaning.

Seed vocabulary: scaffold/docs/tags.md: meta, domain, architecture, ops, dev, qa. The catch-up prompt derives 10–20 tags from what the docs actually cover.

Layout

QA.md                  operational, at the project root (see QA)
docs/
  README.md            index
  style.md             writing rules
  tags.md              vocabulary
  architecture.md      current state
  adr/NNNN-slug.md     decisions
  papercuts/slug.md    friction
  <concept>.md         everything else, one concept each

Scaffold index: scaffold/docs/README.md. Writing rules: scaffold/docs/style.md: read before writing any doc.

None built. Agents use ripgrep over frontmatter and text. No stored index either: files are edited directly, so an index would go stale.

Interplay

rule link
freshness code: is how docs are found from code
architecture the hub most files link back to
papercuts a misleading or unfindable doc is a papercut

Tooling

check command
frontmatter present; tags in vocabulary; relative links resolve; size limit check
vocabulary with usage counts tags
backlinks; unlinked files links / orphans

raw markdown