AgentSkillsCN

temple-generator

从任意 Obsidian 保险库或文档集生成 3D 交互式知识地图(Inner Temple)。支持多尺度抽象层以及两个保险库之间的双图通用地图。

SKILL.md
--- frontmatter
name: temple-generator
description: Generate a 3D interactive knowledge map (Inner Temple) from any Obsidian vault or document set. Supports multi-scale abstraction layers and dual-graph common maps between two vaults.
trigger: /temple-generate
args: vault_path [--compare vault_path_2] [--output path] [--inline]
user_invocable: true

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.