til/docs/taxonomy-proposal
taxonomy-proposal.mdupdated 2026-06-277627 words

Proposal to redesign the til taxonomy

I surveyed the major academic classification systems (DDC / LCC / UDC / NDC / Bloom / OECD FOS / Wikipedia) and organised what could be borrowed for til. No implementation. Whether to adopt is Niki's call.

The 3 study notes are under knowledge/:

  • knowledge/taxonomy-basics.md
  • knowledge/dewey-ndc-comparison.md
  • knowledge/folksonomy-vs-hierarchy.md

1. Current diagnosis

Currently (as of 2026-05-20, 18 notes):

CategoryCountState
engineering3healthy
ai3healthy
design4healthy
product1thin
mind7heavy
life0empty

Tags (top):

  • 認知科学 7 / 学習理論 6 (a split between synonymous tags)
  • Claude Code 5 (spans ai and design)
  • エージェント 3, デザインシステム 4, メタ認知 3

Problems:

  1. life remains empty. With a scope as broad as "health, money, habits, language, culture, food, books, political economy, international affairs, natural science", it has become a box that inspires no motivation to write.
  2. product is thin. Cramming SEO/GEO, strategy, growth, business and PdM into one box forces a second cut by internal tags.
  3. mind is heavy. All 7 notes carry the "cognitive science" tag. Philosophy, leadership theory and the art of war are still at zero. The scope and the contents are misaligned.
  4. The boundary between AI and engineering is fuzzy. Claude Code appears in both.
  5. There is no "generalia (meta)". There is no place to write about til's own operation, classification and tag management. Even this proposal has to be placed in docs/.
  6. There is no synonym control for tags. 認知科学 and 学習理論 share the exact same 6 notes = effectively synonyms.
  7. Tag granularity is mixed. Git (a tool) sits alongside バージョン管理 (a concept).

2. Design principles worth borrowing from academia

The conclusion of the survey is that 3 principles work for til:

  • A cap of around ten at the top. DDC, UDC and NDC all adopt this. It is the limit of the human overview.
  • The necessity of "generalia (class 0)". A refuge for information science, classification theory and metadata.
  • A two-layer structure of enumerative + narrow folksonomy. The hierarchy is the stable skeleton; tags are the living flesh. The same philosophy as Wikipedia categories.
  • Facets are still premature. At til's scale (under ~100 notes), UDC-style facets are over-engineering.

3. Proposal A: keep the 6 categories and "tidy the contents" (minimal-change option)

Change nothing. Instead:

  • Freeze life for 3 months → if nothing is written, merge it into mind (mind = thinking, cognition, culture) or rename it.
  • Broaden the scope of product to "business, growth, economy".
  • Write the tag-control rules into the README (canonical synonyms, how to align granularity).
  • When the urge arises to write about "meta / site operations", place a meta/ subtree inside engineering.

Pros: almost no work. Existing URLs unchanged. Cons: the structural distortions (the empty life, the AI/engineering boundary) remain.

4. Proposal B: NDC-style 10 classes (medium-change option)

Borrowing the wisdom of DDC/NDC, expand the top to 10 classes.

No.CategoryScopeDestination of the existing 18 notes
0meta / generaliasite operations, classification theory, information organisation(new; this proposal etc.)
1mind / thinking & cognitioncognitive science, learning, psychology, philosophymind/* 7 notes
2history / history & peoplehistory of technology, biographies, background(future SakanaAI/people)
3business / business & societymarketing, economics, organisation, SEO/GEOproduct/visitor-analytics
4science / natural sciencemaths, physics, biology, statistics(future)
5engineering / technologycode, infrastructure, CLI, operationsengineering/* 3 notes
6ai / artificial intelligenceLLM, agents, MLOpsai/* 3 notes
7design / expressionUI/UX, design systems, typographydesign/* 4 notes
8language / languageprogramming languages, natural language(future)
9life / life & culturehealth, money, habits, food, books(future)

Key points:

  • Make AI an independent class 6. NDC was designed in 1929, so it has no AI class. til's centre of gravity is AI/engineering = it is rational to allocate a class to the centre of gravity.
  • Establish a new history class 2. A home for biographical and background notes such as the Sakana AI / people line.
  • Consolidate into business class 3. Broaden product and rename it "business".
  • language class 8 holds both programming languages and natural language as a dual-purpose box (a fusion of NDC 8 and DDC 4).

Pros: rides the academic consensus (top 10). The boxes match the centre of gravity of the contents. The life problem is resolved (if you are still not going to write it, you can resolve to leave class 9 empty). Cons: existing URLs may change from /engineering/... to /05-engineering/... etc. Redirect handling is essential. Requires reworking build-articles-tree.mjs and taxonomy.json.

5. Proposal C: 6 + facet axes (large-change option)

Faceted classification (UDC-style). The categories stay at the current 6, with tags split into 4 axes:

FacetExample
topic:topic:Git, topic:LLM, topic:認知科学
form:form:tutorial, form:reference, form:opinion
tool:tool:Claude-Code, tool:Jekyll
level:level:basics, level:advanced (Bloom-style)

Pros: search precision rises. The synonym problem is eased (controlled via topic:認知科学). Cons: the cost to the writer spikes. Overkill at til's scale. Reconsider once it exceeds 100 notes.

6. Recommendation

Proposal B (NDC-style 10 classes) is recommended. Reasons:

  1. It fundamentally resolves the structural distortions (empty life, thin product, AI/engineering boundary).
  2. It rides 100 years of academic knowledge (the top 10).
  3. It legitimises til's centre of gravity (AI/engineering) as independent classes.
  4. The migration cost is moderate. It is done with just redirects and reworking _data.

That said, the following are Niki's calls:

  • How to treat life (keep it as class 9 / delete / rename)
  • Whether to expose the numbered prefix in the URL (/05-engineering/ or /engineering/)
  • The timing of the migration (now, under 50 notes / after exceeding 100 notes)

7. Migration plan (outline if Proposal B is adopted)

No implementation, outline only:

  1. Rewrite _data/taxonomy.json to 10 classes (new structure) — handled by a separate agent
  2. Map the frontmatter category: of the existing 18 notes to the new category IDs — handled by a separate agent
  3. Update the category-validation logic of build-articles-tree.mjs — handled by a separate agent
  4. Expand the per-category colour tokens in _sass/ to 10 colours — handled by a separate agent
  5. Make the navigation in default.html support 10 classes — handled by a separate agent
  6. Redirect old URLs (/engineering/.../05-engineering/...) — Cloudflare / Jekyll redirect plugin
  7. Update the Taxonomy table in the README

Proposed mapping of the existing 18 notes:

Old pathOld catNew cat
engineering/git-history.md + 3 othersengineering5 engineering
ai/claude-agents-spec.md + 3 othersai6 ai
design/* 4 notesdesign7 design
product/visitor-analytics-and-email-capture.mdproduct3 business
mind/* 7 notesmind1 mind

New (future):

  • Sakana AI introduction → 2 history (people, organisation biographies)
  • niki-nakamura.md line → 2 history or 0 meta

8. Options for a no-adoption decision

Alternatives if not adopted:

  • Do nothing: at a scale of 18 notes, the current setup functions well enough.
  • Adopt only Proposal A: carry out just tag control and the life freeze. Minimal cost.
  • Re-evaluate in six months: decide again at some point when the note count reaches 50 / 100 / 200.

References and sources

148 notestil