mcpbeat

Palace Diagram

athola/palace-diagram

Generates Mermaid and ASCII diagrams of palace structure, knowledge topology, and synapse connectivity. Use when inspecting or presenting a palace visually.

946 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
324
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/athola/claude-night-market --skill palace-diagram

The instruction itself

13 sections, as written by the author

Palace Diagram

Generate Mermaid and ASCII diagrams from the knowledge

graph, showing palace structure, entity relationships,

synapse connectivity, and tier assignments.

> Status: wired. Invoke via `/palace diagram <palace-id>

> [--type map|ascii|entity|heatmap]`, which calls

> Skill(memory-palace:palace-diagram). The renderer lives in

> memory_palace.palace_renderer.PalaceRenderer; see the Usage

> section below for direct programmatic access.

When To Use

  • Inspecting palace structure after creation or migration
  • Understanding knowledge topology and connections
  • Identifying strong and weak synapses (heatmap)
  • Reviewing entity relationships and triples
  • Getting an ASCII overview for inline display

When NOT To Use

  • Creating palaces: use memory-palace-architect
  • Searching knowledge: use knowledge-locator
  • Code architecture diagrams: use cartograph

Diagram Types

| Type | Format | Description |

|------|--------|-------------|

| Palace map | Mermaid flowchart | Rooms as subgraphs, entities as nodes, synapses as edges |

| Entity graph | Mermaid flowchart | Single entity's connections and triples |

| Synapse heatmap | Mermaid flowchart | Edge styling by strength (thick=strong, dotted=weak) |

| ASCII overview | Text | Box-drawing palace layout with entity counts |

Workflow

  • Identify palace by ID or name
  • Choose diagram type based on what you want to see
  • Generate diagram using PalaceRenderer
  • Render via Mermaid Chart MCP (for Mermaid) or

display inline (for ASCII)

Usage

Palace Map

from memory_palace.knowledge_graph import KnowledgeGraph
from memory_palace.palace_renderer import PalaceRenderer

graph = KnowledgeGraph("path/to/knowledge_graph.db")
renderer = PalaceRenderer(graph)
mermaid = renderer.palace_map("palace_id")

Then call mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagram

with the generated Mermaid string.

ASCII Overview

ascii_art = renderer.ascii_overview("palace_id")
print(ascii_art)

Entity Graph

mermaid = renderer.entity_graph("entity_id")

Synapse Heatmap

mermaid = renderer.synapse_heatmap("palace_id")

Edge Styling

| Strength | Style | Meaning |

|----------|-------|---------|

| >= 0.7 | ==> (thick) | Strong connection |

| >= 0.4 | --> (normal) | Medium connection |

| < 0.4 | -.-> (dotted) | Weak connection |

Integration

Works with:

  • memory-palace-architect: visualize after palace creation
  • knowledge-locator: display search results as graph
  • graph-analyzer: tier-informed node sizing

Exit Criteria

  • [ ] At least one of the four diagram types (palace map, entity graph,

synapse heatmap, ASCII overview) is generated without a Python

exception from PalaceRenderer

  • [ ] Mermaid diagrams are passed to

mcp__claude_ai_Mermaid_Chart__validate_and_render_mermaid_diagram

and render successfully

  • [ ] ASCII overview displays rooms with box-drawing characters and

entity counts per room

  • [ ] Synapse edge styling matches strength thresholds: ==> for

strength ≥ 0.7, --> for ≥ 0.4, -.-> for < 0.4

  • [ ] If the requested palace ID does not exist in the knowledge graph,

an error is reported with the palace ID that was searched

How to use it

Copy the folder

Take athola/palace-diagram from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.