mcpField
T
temple-generator

temple-generator

github.com/glebisProductivity401195 installsUpdated 1d ago
Repository

About temple-generator

Temple Generator turns an Obsidian vault into a single HTML file with an interactive 3D knowledge visualization. It analyzes entities and links, builds confidence-gated semantic layers, and can compare two vaults.

Key features

  1. 01Scan notes, links, and clusters
  2. 02Classify entities by semantic type
  3. 03Build confidence-gated abstraction levels
  4. 04Export interactive 3D HTML
  5. 05Compare two Obsidian vaults

Use cases

  1. 01Turn an Obsidian vault into an explorable knowledge map
  2. 02Inspect relationships and thematic groups across notes
  3. 03Compare commonalities and differences between two vaults

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/glebis/claude-skills --skill temple-generator

After installing, type/temple-generatorin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.claude-plugin/
plugin.json
assets/
temple-template.html
references/
classification-guide.md
entity-schema.md
merge-algorithm.md
scripts/
extract_entities.py

Details

From the project README

Temple Generator

Generate a 3D interactive knowledge visualization from any Obsidian vault. The output is a single HTML file (Three.js) with concentric entity rings, audio, discovery mechanics, and multi-scale semantic zoom.

When to Use

  • User wants to visualize any Obsidian vault as a 3D knowledge map
  • User wants to compare two vaults/document sets visually
  • User wants to regenerate the temple from scratch with fresh vault analysis

Architecture

Two-part system:

  1. Generation pipeline (this skill): discovers structure, names it, scores confidence, exports a scene package
  2. Runtime renderer (template): handles navigation, transitions, audio, discovery

Pre-generate meaning. Runtime-render experience.

Workflow

Step 1: Scan the Vault

Run python3 ~/.claude/skills/temple-generator/scripts/extract_entities.py <vault_path>.

This produces vault-scan.json with:

  • Files: path, title, tags, outgoing links, backlink counts, word count, folder, frontmatter
  • Graph: adjacency list with bidirectional link counts
  • Centrality: degree centrality per node
  • Clusters: detected groups of tightly linked notes
Step 2: Read the Scan + Sample Notes
  1. Read vault-scan.json
  2. Read the top ~20 nodes by centrality (first 100 lines each)
  3. Read references/classification-guide.md for entity type heuristics
  4. Read 3-5 representative notes to calibrate the vault's "voice" (formal/informal, domain jargon, language)
Step 3: Classify Entities

Using references/classification-guide.md, assign each significant node to an entity type. Maintain two vocabularies:

  • canonical: neutral labels for portability (anxiety-management, fermentation-process)
  • poetic: mythic/art labels for the installation (The Ferment Gate, The Cortisol Throne)

Target counts per type (adjust for vault size):

TypeSmall vault (< 100)Medium (100-500)Large (500+)
Gods2-33-55-7
Demigods3-75-128-15
Tensions2-43-75-9
Narratives2-55-108-12
Blind spots1-33-54-7
Spirits1-33-53-5
Research5-1510-2515-30
Values2-53-85-10
Trails2-53-85-10
Questions3-65-108-12
Depths2-55-108-15
Crystals1-32-53-6
Step 4: Build Abstraction Levels

Levels are confidence-gated — only include a level if the vault supports it.

Level 0 — Entities (always exists): individual nodes with positions, connections, descriptions.

Level 1 — Domains (requires >= 3 meaningful clusters): groups of related entities. Each domain has:

  • canonical + poetic name
  • member entity keys
  • centroid position (weighted average of member positions)
  • representative exemplar (most central member)
  • description (1-2 sentences in vault voice)
  • confidence score (0-1)

Level 2 — Axes (requires >= 2 interpretable opposing pairs): fundamental tensions. Each axis has:

  • two poles with names and descriptions
  • member domains per pole
  • axis description
  • confidence score

Level 3 — Comparison (requires two vaults + sufficient alignment): shared/unique analysis.

Read references/merge-algorithm.md for dual-graph logic.

Step 5: Generate Scene Package

Follow the schema in references/entity-schema.md to produce temple-data.json.

Include:

  • entities: all classified nodes
  • levels: abstraction layers with zoom thresholds
  • mappings: entity → domain → axis crosswalks
  • comparison: (if dual-graph) shared/unique/alignment data
  • audio: motif hints per type and level
  • style: poetic vocabulary, intro text, color palette, layer definitions
  • confidence: per-abstraction and per-alignment scores
Step 6: Generate HTML
  1. Copy ~/.claude/skills/temple-generator/assets/temple-template.html to the output location
  2. If --inline flag: embed the JSON data as const TEMPLE_DATA = {...}; inside the HTML
  3. Otherwise: place temple-data.json alongside the HTML
Step 7: Report

Show the user:

  • Entity counts by type
  • Abstraction levels generated (with confidence scores)
  • Top 5 gods/central entities
  • Detected tensions
  • If dual-graph: overlap percentage and shared domains

Dual-Graph Mode

When --compare vault_path_2 is provided:

  1. Scan both vaults independently (Step 1)
  2. Classify entities for each vault (Steps 2-3)
  3. Run merge algorithm from references/merge-algorithm.md
  4. Generate merged scene package with source attribution
  5. Template renders shared scaffold with divergence offsets

Quality Guidelines

  • Skip trivial notes (daily todos, admin logs, empty stubs)
  • Prefer nodes that reveal the vault's actual concerns, not its filing system
  • Write in the vault's own voice, calibrated from sample notes
  • If a level lacks confidence, omit it rather than fabricating structure
  • Each abstraction level must be backed by membership weights, exemplars, and provenance
  • "The abstraction hierarchy should be semantic, not just geometric"

Audio Guidance for Template

The template's audio system should respect hierarchical continuity across zoom levels:

  • L0 (close): localized, identity-rich — entity whispers and textures
  • L1 (medium): regional harmonic beds, cluster pulses
  • L2 (far): sparse drones, tension-based tonal movement
  • L3 (comparison): stereo/dialogic between two vault voices

Zoom should feel like changing resolution, not changing universes. Motifs relate across scales.

Comments

Markdown supported