agentsclimarketplace

Memory palace

Skill loursCreatif/ours-stack/memory-palace

Carte en relief oblique (style Google Maps 3D) — cliquer bâtiments et zones pour ancrer concepts (method of loci). Drill-down site → intérieur, panneau latéral. Pas de déplacement FPS. Reads brief.md, notes.md, research.md, report.md. Outputs memory-palace.json + HTML (Three.js vendored). Triggers: "memory palace", "palais de mémoire", "relief map", "carte oblique", /memory-palace. No new research.From its SKILL.md

Install
npx -y skills add loursCreatif/ours-stack --skill memory-palace

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

3 things to look at

  • skips confirmationTells the agent to proceed without asking first, 2 times: "Overwrite without asking unless file modified <1h ago" and 1 more.
  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 3 commands, including `bash memory-palace/scripts/fetch-three.sh` and 2 more.

SKILL.md

8.6 KB, ~2.2k tokens by cl100k_base, as published. Nobody here has run it

Memory Palace

Transform study concepts into an oblique relief map (method of loci) — click buildings, drill into interiors, read concepts in a side panel. No FPS movement. No research.

When to use (vs other skills)

SkillResponsibilityDoes NOT
/mind-map2D tree, editable JSONSpatial relief map
/layout-htmlLinear article + SVGSpatial map
/memory-palaceThis skill — relief map + drill-down lociNew sources, WASD navigation

Optional pipeline (manual only — never auto-chain):

/bear-hours → [dense read] → /memory-palace
/deep-research → /memory-palace

Hard rules

  1. No research — never WebSearch / WebFetch. Concepts must trace to input files.
  2. Wedge lock — if brief.md exists, exclude out-of-wedge concepts from default path[].
  3. Provenance — every concept: source.file, source.section, optional anchor.
  4. Cap — default 8–16 loci; AskUserQuestion before exceeding 20.
  5. Two artifactsmemory-palace.json (manifest) + memory-palace.html (experience).
  6. Self-contained HTML — Three.js from references/vendor/three.min.js, inlined; no CDN.
  7. Iso-SVG fallback — isometric click map (same drill-down) when no WebGL, mobile, or prefers-reduced-motion.
  8. Relief UX — oblique map by default; optional guided ground tour on rails (Visite guidée); pan/zoom on site level only; click building → interior; no WASD / pointer-lock / free movement.
  9. Language — match source (lang on <html>).
  10. Open browseropen <path> on macOS after write.
  11. Theme firstAskUserQuestion before reading content (unless smart-skip).

Step 0: Theme — AskUserQuestion (always first)

Use AskUserQuestion — one call, wait for answer before continuing.

Title: Memory Palace — Theme

Hard rules:

  • Never list theme options as plain chat bullets — always AskUserQuestion
  • STOP after the call; wait for answer
  • Smart-skip — if user already named a theme (museum, chantier, corridor, library, or ≥5 words describing a place), skip this step

Question: "Quel décor pour ancrer tes concepts ? (method of loci — un parcours fixe aide la mémoire)"

Options (exactly 5):

idlabel
corridorCorridor classique — pièces en ligne, portes numérotées (défaut)
museumMusée — salles thématiques, vitrines = sous-concepts
constructionChantier / atelier — zones, équipements (robotique, BTP)
libraryBibliothèque — rayons = thèmes, livres = citations
customCustom — je décris le lieu dans le prochain message

If custom selected: wait for user's next message. Map to nearest archetype topology; store description in manifest theme_notes.

Default when skipped: corridor.

Load references/palace-archetypes.md for topology before Step 3.

Step 1: Intake — detect input mode

Resolve input in this priority order:

ModeTriggerSourceDefault output
A — Study slugslug or studies/<slug>/brief.mdnotes.mdresearch.mdstudies/<slug>/memory-palace.{json,html}
B — Research slugresearch/<slug>/report.md (+ brief.md via Study link)research/<slug>/memory-palace.{json,html}
C — File pathpath to .mdthat file<dir>/memory-palace.{json,html}
D — Pasted conceptsuser lists concepts in chatmessage bodyoutput/layout/<slug>/memory-palace.{json,html}

Slug derivation (mode D): lowercase-hyphen from title or first heading; ask once if ambiguous.

Custom output: user may specify → out.html — write HTML there; JSON alongside with same basename unless user says otherwise.

Guard: if no resolvable text and no pasted concepts → ask for slug, path, or concept list. Do not suggest /deep-research unless user wanted more content first.

Step 2: Extract concepts

Load references/concept-extraction.md. Read source files. Extract only what exists.

Minimum: ≥5 concepts or abort with guidance ("add notes.md or paste concepts").

Pre-flight: if only brief.md with no notes → warn palace will be thin; proceed only if ≥5 extractable concepts.

If >16 concepts extractedAskUserQuestion:

Title: Memory Palace — Density

Options:

  • Trim to top 12 by importance
  • Keep all (warn larger file)
  • I'll pick concepts in chat

Step 3: Map loci (relief site)

Load references/loci-mapping.md + references/palace-archetypes.md.

  • path[] = ordered building ids on the site map (5–12)
  • Each locus: kind: building, footprint: [x, z, w, d], height, interior.zones, interior.hotspots
  • Each locus: optional scene — vivid mental image (scene.image, 1–2 sentences) + 2–3 sensory hooks (scene.senses: « Son — … », « Odeur — … », « Texture — … ») encoding the concept for method-of-loci recall
  • Entrée = wedge + why now; zones terrain/mécanismes/robots = findings; bureau = beliefs
  • blocked: true buildings = open questions (click → panel only, no interior)
  • Zone footprints relative to building interior (0…building size)

Step 4: Write memory-palace.json

Follow references/palace-schema.json (view_mode: relief). Write to resolved output dir.

Overwrite without asking unless file modified <1h ago and user didn't say overwrite.

Show user a compact summary: concept count, loci count, path order (one line).

Step 5: Compose memory-palace.html

Load references/navigation-ux.md. Compose via script (preferred).

Before composing:

bash memory-palace/scripts/fetch-three.sh

Pinned version: Three.js 0.160.0 (last npm release with build/three.min.js IIFE). Override: THREE_VERSION=0.160.0 bash …/fetch-three.sh.

If fetch fails (no network), fall back to iso-SVG HTML (--2d-only) and tell user to run fetch later for relief 3D.

Compose (agent-authored or helper script):

python3 memory-palace/scripts/compose-html.py studies/<slug>/memory-palace.json
# 2D only: python3 memory-palace/scripts/compose-html.py … --2d-only

Manual path:

  1. Read memory-palace/references/vendor/three.min.js → inline in first <script> block
  2. Embed full JSON as const PALACE_DATA = …
  3. Inline scene bootstrap from html-template.md § Scene JS
  4. Add room objects from loci[].objects (simple BoxGeometry props)
  5. Theme colors from archetype table
  6. HUD, overlays, 2D plan, footer with source files + study path

If user said 2d only: --2d-only or window.FORCE_2D = true; skip Three.js inline (smaller file).

Step 6: Deliver

open "<absolute-path>/memory-palace.html"

Tell the user:

  1. Output paths (.json + .html)
  2. Theme used
  3. Locus count + concept count
  4. Memory walk script — 30-second verbal path through buildings in path[] order
  5. Source files used
  6. Reminder: recall the path, not just the visuals
  7. Optional: /layout-html for 2D report; re-run with overwrite after new notes

Escape hatches

User saysAction
2d onlyIso-SVG map only (no Three.js)
overwriteReplace JSON/HTML without confirmation
slug onlyTry studies/<slug>/ then research/<slug>/
file pathMode C
pasted conceptsMode D — output/layout/<slug>/
theme in messageSmart-skip Step 0
museum / construction / etc.Smart-skip theme question

Self-check before delivery

  • No WebSearch / WebFetch
  • Every concept label grep-able in source files
  • path[] length ≥ 5 and ≤ 20
  • out-of-wedge excluded from path (if brief exists)
  • JSON validates against palace-schema.json structure
  • HTML offline-ready (no CDN links)
  • view_mode: relief in JSON; buildings have footprint + interior
  • Iso-SVG fallback OR Three.js relief inlined
  • No WASD / pointer-lock in composed HTML
  • lang matches source
  • Files written + browser opened

What ships with it: 12 files

95.3 KB alongside SKILL.md, 4 of them executable

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.