Context
Docs-only corpus: 167 markdown pages (the official Claude Code docs, ~650K words) → 1,490 nodes / 1,916 edges / 149 communities, exported with the Obsidian exporter. graphifyy 0.9.16 on Windows.
Problem
Every exported node note contains only:
- frontmatter (
source_file, type, community, tags)
- the H1 title
## Connections (wikilinked edges)
- a tag line
There is no substance from the source in the note itself. The graph structure is excellent, but browsing the vault every note reads as a bare stub — a human (or an agent hopping between notes) has to leave the vault to learn anything about the node. source_file exists in frontmatter but is a dead string, not a link to anything inside the vault.
Workaround we run on top of every export
A post-processing pass that:
- Copies each source doc into the vault under
sources/ as _src_<flattened-path>.md (collision-safe flattened names, boilerplate stripped, frontmatter added).
- Inserts a callout after each node note's H1:
> [!info] Source doc
> [[_src_en_best-practices|en/best-practices.md]] - [read on docs site](https://code.claude.com/docs/en/best-practices)
Result: 1,490/1,490 notes wired, 0 unresolved links — and the vault becomes genuinely usable standalone. But the exporter rewrites the notes on every re-export, so the pass has to be re-run each time.
Feature request
An opt-in flag on the Obsidian export, e.g. --with-sources, that:
- copies source files into the vault (
sources/, collision-safe names) and turns each note's source_file frontmatter into a real wikilink/callout to that source note;
- for code corpora, the analog would be embedding the node's defining snippet (or linking a per-file source note).
Even just "make source_file a resolvable link" would remove most of the pain. Happy to share the full post-processing script if useful.
Context
Docs-only corpus: 167 markdown pages (the official Claude Code docs, ~650K words) → 1,490 nodes / 1,916 edges / 149 communities, exported with the Obsidian exporter. graphifyy 0.9.16 on Windows.
Problem
Every exported node note contains only:
source_file,type,community, tags)## Connections(wikilinked edges)There is no substance from the source in the note itself. The graph structure is excellent, but browsing the vault every note reads as a bare stub — a human (or an agent hopping between notes) has to leave the vault to learn anything about the node.
source_fileexists in frontmatter but is a dead string, not a link to anything inside the vault.Workaround we run on top of every export
A post-processing pass that:
sources/as_src_<flattened-path>.md(collision-safe flattened names, boilerplate stripped, frontmatter added).Result: 1,490/1,490 notes wired, 0 unresolved links — and the vault becomes genuinely usable standalone. But the exporter rewrites the notes on every re-export, so the pass has to be re-run each time.
Feature request
An opt-in flag on the Obsidian export, e.g.
--with-sources, that:sources/, collision-safe names) and turns each note'ssource_filefrontmatter into a real wikilink/callout to that source note;Even just "make
source_filea resolvable link" would remove most of the pain. Happy to share the full post-processing script if useful.