00 / 00

BOOKCASE

7 MIN READARCHIVE

Canonicalization System

Purpose: Define how Bibliotheca distinguishes canonical documents from pointers, historical snapshots, operational surfaces, and contextual embeds.

Governing principle: Knowledge governance, not cleanup. Historical divergence may contain meaningful evolution.


1. Canonical Routing Rules

Primary Rule

Each piece of knowledge has exactly one canonical location within Bibliotheca.

| Knowledge Type | Canonical Location | |---|---| | Philosophy (stable beliefs) | bibliotheca/philosophy/ | | Continuity reconstruction (active runtime) | /continuitygate/ | | Continuity history (deep archive) | bibliotheca/continuitygatehistory/ | | Conceptual topology (interpretive maps) | bibliotheca/atlas/ | | Project-specific research (historical snapshots) | bibliotheca/projects/<project>/ | | Active research artifacts | bibliotheca/research/ | | Observatory records | bibliotheca/observatory/ | | Experimental outputs | bibliotheca/experiments/ | | Field observations | bibliotheca/field-notes/ | | Findings | bibliotheca/findings/ | | Archive (historical residue) | bibliotheca/archive/ |

Secondary Rule

Non-canonical copies may exist only if they serve a distinct purpose:

  • Pointer — lightweight doc that redirects to canonical source (e.g., projects/teteh-lab/docs/research/BIG-BRAIN-LIBRARY.md)
  • Historical snapshot — preserved copy of a document at a point in time (e.g., projects/api-lab/docs/imported-from-tarot-app/HANDOFF.md)
  • Operational surface — active document used for runtime reconstruction (e.g., continuitygate/CORE-PHILOSOPHY.md)
  • Contextual embed — reference within a different document's prose (e.g., a research doc quoting a philosophy principle)

2. Pointer vs Canonical Docs

Canonical Document

  • Authoritative source of truth
  • Named with CANONICAL- prefix when disambiguation is needed
  • Example: bibliotheca/philosophy/CANONICAL-CORE-PHILOSOPHY.md

Pointer Document

  • Lightweight redirect (typically <100 lines)
  • Contains a header block identifying:
  • Layer/role
  • Canonical source path
  • Purpose
  • Does NOT duplicate canonical content
  • Example: bibliotheca/projects/teteh-lab/docs/research/BIG-BRAIN-LIBRARY.md

Naming Convention

CANONICAL-<NAME>.md    → canonical document
<NAME>-POINTER.md      → pointer document (alternative to header-based pointer)
<NAME>.md              → operational or historical document

3. Historical Snapshots

What They Are

Preserved copies of documents at a specific point in time. They capture the state of knowledge before a reorganization, migration, or conceptual shift.

Where They Live

  • bibliotheca/projects/<project>/docs/ — project-specific historical snapshots
  • bibliotheca/archive/ — general historical residue

How to Identify

  • Header block: > Layer: Historical snapshot — contextual embedding within <context>
  • May reference a canonical source path
  • Content is frozen at the time of snapshot

When to Preserve vs Delete

| Condition | Action | |---|---| | Exact duplicate of canonical doc | Delete (no historical value) | | Different content, meaningful divergence | Preserve as historical snapshot | | Different content, trivial variation | Delete or archive | | Migration archaeology (IMPORT-MANIFEST, AGENTS, HANDOFF, README) | Preserve |


4. Import Staging

What It Is

Documents imported from one project into another (e.g., tarot-app docs imported into api-lab during migration). These are not canonical — they are staging artifacts.

Where It Lives

  • apps/<project>/docs/imported-from-<source>/ — operational import staging
  • bibliotheca/projects/<project>/docs/imported-from-<source>/ — bibliotheca-side import staging

Preserved Files

The following files are preserved as migration archaeology:

  • IMPORT-MANIFEST.md — records what was imported and why
  • README.md — project-level readme at time of import
  • AGENTS.md — agent notes at time of import
  • HANDOFF.md — handoff state at time of import

Cleanup Rules

  • Exact duplicate content files (e.g., architecture.md, emotional-note-layer.md) → delete from import staging; canonical lives in bibliotheca/projects/<source>/docs/
  • Empty docs directories → remove
  • Preserved archaeology files → keep

5. Operational Docs

What They Are

Documents that serve a runtime function — they are not knowledge artifacts but operational surfaces.

Examples

| Document | Role | |---|---| | /continuitygate/continuitygate.md | Continuity ritual and re-entry protocol | | /continuitygate/avatar.md | Operational behavior + governance layer | | /continuitygate/manifesto.md | Compressed institutional principles | | /continuitygate/bonfire.md | Latest stable reconstruction checkpoint | | /continuitygate/elderscroll.md | Onboarding lore / first orientation | | /continuitygate/fasttravel.md | High-signal traversal routes | | /continuitygate/nufikri.xyz.md | Root ecosystem map | | bibliotheca/continuitygatehistory/CORE-PHILOSOPHY.md | Historical compressed worldview (archival) | | apps/<project>/AGENTS.md | Project-specific agent notes | | apps/<project>/HANDOFF.md | Project-specific handoff state |

Relationship to Canonical Docs

Operational docs may overlap with canonical philosophy in content, but they serve a different purpose. The operational doc is compressed, actionable, and re-entry-focused. The canonical doc is stable, authoritative, and belief-focused.

Do not merge operational docs with canonical docs. They are different documents serving different purposes.


6. Naming Conventions

| Pattern | Meaning | Example | |---|---|---| | CANONICAL-<NAME>.md | Authoritative source of truth | CANONICAL-CORE-PHILOSOPHY.md | | <NAME>-POINTER.md | Lightweight redirect | CORE-PHILOSOPHY-POINTER.md | | <NAME>.md | Operational or historical | CORE-PHILOSOPHY.md (in continuitygate) | | imported-from-<source>/ | Import staging directory | imported-from-tarot-app/ | | archive/ | Historical residue | archive/philosophy-history/ |


7. Dedupe Safety Philosophy

Core Principle

Do not aggressively merge. Do not destroy historical layering. Do not rewrite large content sections.

Safety Rules

  1. Archive historical thought. Delete only confusion.
  • If a duplicate contains meaningful divergence, preserve it.
  • If a duplicate is exact and serves no historical purpose, delete it.
  • If unsure, preserve.
  1. Historical divergence may contain meaningful evolution.
  • A document that says the same thing in different words may reveal conceptual drift.
  • A document that contradicts the canonical version may represent a discarded hypothesis worth preserving.
  • A document that predates a reorganization may contain context lost in the canonical version.
  1. Operational surfaces are not duplicates.
  • continuitygate/CORE-PHILOSOPHY.md is not a duplicate of philosophy/CANONICAL-CORE-PHILOSOPHY.md.
  • They serve different purposes (re-entry posture vs canonical belief).
  • They may overlap in content. This is intentional.
  1. Pointer docs are not duplicates.
  • A pointer doc that redirects to a canonical source is not a duplicate.
  • It is a navigation aid that preserves expected paths.
  1. Historical snapshots are not duplicates.
  • A snapshot of a document at a point in time is not a duplicate of the current canonical version.
  • It is an archaeological artifact.
  1. Prefer lightweight headers over content rewrites.
  • When clarifying a document's role, add a header block rather than rewriting the content.
  • Example: > Layer: Historical snapshot — contextual embedding within teteh-lab research
  1. Do not touch runtime code or app behavior.
  • Canonicalization is a knowledge governance operation, not a refactor.
  • Changes to apps/ should be limited to reference updates in documentation files.

8. Examples

Example: Philosophy Routing

bibliotheca/philosophy/
├── CANONICAL-CORE-PHILOSOPHY.md    ← canonical (authoritative beliefs)
├── README.md                        ← routing explanation
├── teteh-character-memory.md        ← canonical (character identity)
├── teteh-philosophy-index.md        ← canonical (navigation index)
└── teteh-presentation-philosophy.md ← canonical (presentation philosophy)

/continuitygate/                      ← active reconstruction runtime
├── continuitygate.md                 ← operational (re-entry ritual)
├── avatar.md                         ← operational (behavior + governance)
├── manifesto.md                      ← operational (compressed principles)
├── bonfire.md                        ← operational (latest reconstruction checkpoint)
├── elderscroll.md                    ← operational (onboarding lore / first orientation)
├── fasttravel.md                     ← operational (high-signal traversal routes)
└── nufikri.xyz.md                    ← operational (root ecosystem map)

bibliotheca/continuitygatehistory/    ← deep historical archive
└── CORE-PHILOSOPHY.md               ← archival (historical worldview)

bibliotheca/atlas/
└── continuity-philosophy.md         ← conceptual map (interpretive topology)
                                     NOT a duplicate — different purpose

Example: Continuity Framework Routing

bibliotheca/continuitygatehistory/nufikri.xyz/
├── BIG-BRAIN-LIBRARY.md             ← canonical (worldview stabilization)
├── continuity-research-framework.md ← canonical (research methodology)
└── HANDOFF.md                       ← canonical (active implementation state)

bibliotheca/projects/teteh-lab/docs/research/
├── BIG-BRAIN-LIBRARY.md             ← pointer (redirects to canonical)
└── continuity-research-framework.md ← pointer (redirects to canonical)

Example: Import Staging

apps/api-lab/docs/imported-from-tarot-app/
├── AGENTS.md                        ← preserved (migration archaeology)
├── HANDOFF.md                       ← preserved (historical snapshot)
├── IMPORT-MANIFEST.md               ← preserved (migration record)
└── README.md                        ← preserved (migration archaeology)

9. Pass 2 Canonicalization Summary

| Action | Status | |---|---| | Rename philosophy/CORE-PHILOSOPHY.mdCANONICAL-CORE-PHILOSOPHY.md | ✅ Done (Pass 1) | | Update canonical path references in CANONICAL-CORE-PHILOSOPHY.md | ✅ Done (Pass 2) | | Expand continuitygate/README.md with full ContinuityGate explanation | ✅ Done (Pass 2) | | Add routing headers to pointer docs | ✅ Done (Pass 1) | | Create CANONICALIZATION.md | ✅ Done (Pass 2) | | Update AUDIT.md with Pass 2 status | ✅ Done (Pass 2) |


Written by Forge Goblin ChatGPT in collaboration with Forge Scribe Fikri.