/wiki-graph
Build the LLM Wiki knowledge graph.
$ npx -y skills add alfadur7/llm-wiki-newsroom --agent claude-codeShips with llm-wiki-newsroom. Installing the plugin gets this command.
How it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/wiki-graph
Context preview
What this command does when you run it.
Build the LLM Wiki knowledge graph.
Command definition
wiki-graph.mdBuild the LLM Wiki knowledge graph.
Usage: `/wiki-graph`
Traversal Pattern
Outside the matrix — Meta layer (deterministic). The Editor-in-Chief calls `tools/build.py` and reports the result.
| Cycle | Owner | |---|---| | Trigger | Editor-in-Chief | | Build | `tools/build.py` (deterministic — 5 phases: graph → clusters → contradictions → index → dependencies) | | Verify | Copy Editor (`tools/lint.py graph clusters` recommended) | | Log | Editor-in-Chief (`log.md` append) |
Operation
1. `python tools/build.py graph` — rebuild the graph only (`graph/_graph.json` only — `graph.html` is a committed static shell, see item 3). Does not trigger downstream phases. 2. A full rebuild is `python tools/build.py` (auto-invoked by ingest and by lint --fix). 3. `graph/graph.html` is a single committed Sigma.js v3 static shell — it loads `_graph.json`·`_clusters.json` (at init) + `_pages.json` (lazily on click) directly via `fetch()`. A rebuild only regenerates those JSON files (no separate JS wrapper or inline). 4. After the build, `python tools/lint.py graph clusters` is recommended — checks for isolated hubs and unnamed groups.
`graph.html` is not just a visualization but also includes a **reading panel** — clicking a node renders that page's Markdown body in the right-hand panel (`marked`), and you can move between node and body by clicking the in-body `[[wikilinks]]`, backlinks, and connection list, so it is browsable without Obsidian. The body, link resolution, and backlinks are held in `_pages.json` (generated by the clusters phase's `pages.run` from wiki/*.md·`_build_id_map`·`wiki/_backlinks.json`) and fetched on click. **Because it is `fetch`-based it must be opened via a web server** (a `file://` double-click is unsupported — locally, `python -m http.server`). On mobile, a responsive layout (viewport meta + `@media` queries) renders the navigation as a sidebar drawer and the reading panel as a bottom sheet.
**Deep link**: open a specific node via the URL hash — `#node=<wiki-path>` (exact) or `#q=<slug/text>` (idmap resolution → search on failure). Used together with a hosting deployment, a RAG answer's `<base>/<slug>#q=<source-slug>` link connects to the primary source in one tap. Phone hosting deployment is `/wiki-export` + [`operations/graph-hosting-setup.md`](../operations/graph-hosting-setup.md).
Fallback when the tool is unavailable (manual build): 1. Extract `[[wikilinks]]` from all of `wiki/` with Grep 2. Node list: 1 per page (id=relative-path, label=title, type=frontmatter). **Exclude root meta files** (`overview.md`·`contradiction.md`·`index.md`·`log.md`·`lint-report.md`) 3. Edge list: 1 per wikilink (`EXTRACTED` tag) 4. Add inferred relations (`INFERRED` tag + confidence 0.0-1.0; if low, `AMBIGUOUS`) 5. Write `graph/_graph.json`
Output
Report after the build: node count · edge count · per-type distribution · most-connected hubs.
`log.md` append: `## [YYYY-MM-DD] graph | Knowledge graph rebuilt`
Human Reviewer Gate
- Adding a new label to `cluster_labels.json` (no automatic Claude edits — consistent with `policies/directory-layout.md`)
- Naming a new cluster slug
Read more
Build the LLM Wiki knowledge graph.
Usage: `/wiki-graph`
Traversal Pattern
Outside the matrix — Meta layer (deterministic). The Editor-in-Chief calls `tools/build.py` and reports the result.
| Cycle | Owner | |---|---| | Trigger | Editor-in-Chief | | Build | `tools/build.py` (deterministic — 5 phases: graph → clusters → contradictions → index → dependencies) | | Verify | Copy Editor (`tools/lint.py graph clusters` recommended) | | Log | Editor-in-Chief (`log.md` append) |
Operation
1. `python tools/build.py graph` — rebuild the graph only (`graph/_graph.json` only — `graph.html` is a committed static shell, see item 3). Does not trigger downstream phases. 2. A full rebuild is `python tools/build.py` (auto-invoked by ingest and by lint --fix). 3. `graph/graph.html` is a single committed Sigma.js v3 static shell — it loads `_graph.json`·`_clusters.json` (at init) + `_pages.json` (lazily on click) directly via `fetch()`. A rebuild only regenerates those JSON files (no separate JS wrapper or inline). 4. After the build, `python tools/lint.py graph clusters` is recommended — checks for isolated hubs and unnamed groups.
`graph.html` is not just a visualization but also includes a **reading panel** — clicking a node renders that page's Markdown body in the right-hand panel (`marked`), and you can move between node and body by clicking the in-body `[[wikilinks]]`, backlinks, and connection list, so it is browsable without Obsidian. The body, link resolution, and backlinks are held in `_pages.json` (generated by the clusters phase's `pages.run` from wiki/*.md·`_build_id_map`·`wiki/_backlinks.json`) and fetched on click. **Because it is `fetch`-based it must be opened via a web server** (a `file://` double-click is unsupported — locally, `python -m http.server`). On mobile, a responsive layout (viewport meta + `@media` queries) renders the navigation as a sidebar drawer and the reading panel as a bottom sheet.
**Deep link**: open a specific node via the URL hash — `#node=<wiki-path>` (exact) or `#q=<slug/text>` (idmap resolution → search on failure). Used together with a hosting deployment, a RAG answer's `<base>/<slug>#q=<source-slug>` link connects to the primary source in one tap. Phone hosting deployment is `/wiki-export` + [`operations/graph-hosting-setup.md`](../operations/graph-hosting-setup.md).
Fallback when the tool is unavailable (manual build): 1. Extract `[[wikilinks]]` from all of `wiki/` with Grep 2. Node list: 1 per page (id=relative-path, label=title, type=frontmatter). **Exclude root meta files** (`overview.md`·`contradiction.md`·`index.md`·`log.md`·`lint-report.md`) 3. Edge list: 1 per wikilink (`EXTRACTED` tag) 4. Add inferred relations (`INFERRED` tag + confidence 0.0-1.0; if low, `AMBIGUOUS`) 5. Write `graph/_graph.json`
Output
Report after the build: node count · edge count · per-type distribution · most-connected hubs.
`log.md` append: `## [YYYY-MM-DD] graph | Knowledge graph rebuilt`
Human Reviewer Gate
- Adding a new label to `cluster_labels.json` (no automatic Claude edits — consistent with `policies/directory-layout.md`)
- Naming a new cluster slug
A multi-agent AI knowledge base run by a five-role "newsroom" — open-source, local-first, no vendor lock-in.
Other commands on llm-wiki-newsroom.
- /README
This folder gathers the project's 9 slash commands in a single place. Each command file specifies its traversal pattern (which Layer × Cycle cells it passes through, and in which cycle-stage flow) plus the Human Reviewer Gate. The nature of each role and the Layer × Cycle matrix
Open command - /wiki-discover
Discover unexpected connections in the LLM Wiki (Memex serendipity).
Open command - /wiki-export
Export wiki to merged files for Claude.ai Project Knowledge.
Open command - /wiki-ingest
Ingest a source document into the LLM Wiki.
Open command - /wiki-lint
Health-check the LLM Wiki for issues.
Open command - /wiki-news
Search for latest news related to the LLM Wiki's key topics.
Open command

