← ClaudeAtlas

readlisted

Preview a distilled wiki page from inside Claude Code. Prints title, summary, source count, and the local md path. Full body lives on disk — open with the user's editor. Invoked as `/read <title_or_id>`.
7xuanlu/origin · ★ 41 · AI & Automation · score 83
Install: claude install-skill 7xuanlu/origin
# /read Surface a page's identity so the user can decide whether to open it. `/read` is **preview, not full text**. The body is on disk; preview keeps chat scannable, dodges Bash output truncation, and respects the "md is canonical, viewer is the user's editor" model. ## How to invoke Two shapes accepted: 1. **Page id** (starts with `page_`; legacy `concept_` ids still work) → direct fetch. 2. **Title or freeform word** → search, pick best match, fetch. Both end with the same preview block. ### 1. Direct id Call the MCP tool to fetch the page: ``` get_page(page_id="<id>") ``` The response is a JSON object wrapping `{ "page": {...} }`. Read `title`, `summary`, `space`, and `source_memory_ids` off the page, then look up the md filename in `~/.origin/pages/.origin/state.json`: ``` Bash: python3 -c ' import json, os, sys state_path = os.path.expanduser("~/.origin/pages/.origin/state.json") pid = "<id>" filename = None try: with open(state_path) as f: filename = json.load(f).get("pages", {}).get(pid, {}).get("file") except FileNotFoundError: pass print(f"~/.origin/pages/{filename}" if filename else "(no md projection on disk)") ' ``` Combine the page fields with the resolved md path and emit the preview block. ### 2. Title or freeform word Search first, then fetch the top hit by id and run the same preview block. Always resolve through the `search_pages` MCP tool — never derive a slug client-side (skill heuristics drift from the canonical `slugify()` o