Import Project — build the vault around what already exists
Goal: end with (1) every code repo graphed and gitignored, (2) every valuable document/recording captured as a Raw source and compiled into Wiki notes, (3) a project note + topic hub that tie it together, (4) a green maintenance gate, (5) a stamped relay baton. Work incrementally and commit as you go.
Step 1 — Inventory
Have the user place (or confirm) the material in the vault root: repo folders, media files, document folders. Then:
python scripts/setup_vault.py --inventory
This writes _relay/IMPORT-INVENTORY.md (repos / media / documents / loose
markdown). Review it WITH the user: confirm what to import now, what to skip,
and what order matters. Don't ingest everything blindly — value first.
Step 2 — Code repos → graphify (Layer 1)
For each confirmed repo:
- Keep outside code out of the vault's git:
python scripts/setup_vault.py --gitignore-repos - Build its graph + browsable notes (see the
graphifyskill):/graphify <repo> --obsidian --obsidian-dir graphify/<repo>— or CLI:graphify <repo-path> --obsidian --obsidian-dir graphify/<repo>. - Install the auto-rebuild hook inside the repo:
graphify hook install(re-run after any fresh clone). - Snapshot refresh from now on is
python scripts/sync_graphs.py(part ofsave). - Convention that ties code to knowledge: compiled Wiki notes carry a
## Code Graphsection linking to[[graphify/<repo>/_COMMUNITY_…]](or node) notes. Use path-qualified links — community names collide across repos.
Step 3 — Project + topic seed
python scripts/setup_vault.py --name "<Project Name>" --topic "<domain>"
Fill the project note's Goal / Status / Next Steps from what the user tells you — this note is the hub the whole import hangs off.
Step 4 — Documents & notes → Raw sources → Wiki
For each confirmed document (per llm-wiki-ingest):
- Capture cleaned Markdown in
Raw/Sources/<date>-<slug>.mdwith source frontmatter. PDFs/Word docs: extract text faithfully; web pages: use thedefuddleskill; images/diagrams: transcribe content to text, image itself toassets/. search-catalogfirst; enrich existing notes over duplicating.- Compile short, focused Wiki notes (right folder + tag, one idea each),
sources+source_countaccurate,[[wikilinks]]into the topic/project. - Loose
.mdfiles at the vault root: either move intoRaw/Sources/with frontmatter (if they're source material) or compile their content into Wiki notes and delete the original (if they're informal notes). Nothing valuable stays unfiled at the root.
Step 5 — Recordings → video-ingest
Meetings, demos, screen captures, reference videos from the inventory's media
list: run the video-ingest skill per file (background extraction, frames ⇄
transcript correlation, Raw source + compiled notes + screenshots).
Step 6 — Gate, baton, commit
python scripts/wiki_tool.py doctor
python scripts/wiki_tool.py build
python scripts/wiki_tool.py lint
python scripts/wiki_tool.py source-scan --update --accept-covered
python scripts/wiki_tool.py source-lint
python scripts/audit_public.py
Then hand off per the relay skill (STATE.md rewritten + stamped) and commit.
Suggest python scripts/setup_vault.py --prune-demo once real content stands
on its own.
Rules
- Never commit outside repos into the vault's git (and never commit vault
tooling into theirs — use
.git/info/excludeinside a repo if needed). - Big binaries stay out: media stays where it lives (or
Raw/Files/, gitignored); only curated screenshots go to committedassets/. - Import is compilation, not relocation: the win is short linked notes + graphs, not a pile of moved files.
- Secrets: redact on capture;
audit_public.pyis the backstop, not the plan.