Skip to content
Back to skills

Wiki Init

ASecurity

Initialize or re-initialize vault integration for the LLM wiki pattern. Creates .raw/ inbox, bootstraps wiki/ with skeleton files (_index.md, _log.md, _manifest.json, hot.md), syncs wiki-schema and task-creation-rules to .obsidian/copilot/, bootstraps tag-index.md if absent, and merges wiki blocks into CLAUDE.md and .github/copilot-instructions.md. Safe to re-run after plugin updates — existing wiki pages are never touched, skeleton files are never overwritten. Triggers on: wiki-init, initial...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added August 31, 2026
ai-agentsbashgit

Works with

  • cli

Security analysis

A100/100

Scanned September 23, 2026

npx -y skills add ihudak/ihudak-claude-plugins --skill wiki-init --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wiki Init?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wiki Init
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ihudak-wiki-init/badge)](https://www.skillsdirectory.com/skills/ihudak-wiki-init)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wiki-init
description: >
  Initialize or re-initialize vault integration for the LLM wiki pattern. Creates .raw/
  inbox, bootstraps wiki/ with skeleton files (_index.md, _log.md,
  _manifest.json, hot.md), syncs wiki-schema and task-creation-rules to .obsidian/copilot/,
  bootstraps tag-index.md if absent, and merges wiki blocks into CLAUDE.md and
  .github/copilot-instructions.md. Safe to re-run after plugin updates — existing wiki
  pages are never touched, skeleton files are never overwritten.
  Triggers on: wiki-init, initialize the wiki, set up the wiki, bootstrap the wiki,
  init wiki, wiki setup, wiki initialize, set up obsidian-llm-wiki.
allowed-tools: Read Write Edit Glob Grep Bash
---

# wiki-init

Initialize or re-initialize vault integration. Safe to re-run after plugin updates —
existing wiki pages and data files are never overwritten.

---

## Step 1 — Resolve VAULT_PATH

```bash
VAULT="${VAULT_PATH:-${HOME}/obsidian_vault}"
[ -d "${VAULT}" ] || { echo "ERROR: vault not found at ${VAULT}. Set VAULT_PATH to your vault location."; exit 1; }
echo "Vault: ${VAULT}"
```

---

## Step 2 — Create .raw/ inbox

```bash
mkdir -p "${VAULT}/.raw"
touch "${VAULT}/.raw/.gitkeep"
```

---

## Step 3 — Bootstrap wiki/ skeleton files

Create the wiki directory and all four skeleton files. Skip any file that already exists —
never overwrite existing data.

```bash
mkdir -p "${VAULT}/wiki"
```

**`wiki/_index.md`** — create only if absent:

```markdown
---
type: meta
title: "Wiki Index"
updated: YYYY-MM-DD
---

# Wiki Index

## Concepts
| Page | Summary | Tags | Updated |
|------|---------|------|---------|

## Entities
| Page | Summary | Tags | Updated |
|------|---------|------|---------|

## Decisions
| Page | Summary | Tags | Updated |
|------|---------|------|---------|

## Patterns
| Page | Summary | Tags | Updated |
|------|---------|------|---------|

## Sources
| Page | Summary | Tags | Updated |
|------|---------|------|---------|
```

**`wiki/_log.md`** — create only if absent:

```markdown
---
type: meta
title: "Ingest Log"
updated: YYYY-MM-DD
---

# Wiki Ingest Log

(Entries prepended by /wiki-ingest, /wiki-save, /wiki-scan, /wiki-lint, /wiki-tags-refresh, /wiki-hot, /wiki-init)
```

**`wiki/_manifest.json`** — create only if absent:

```json
{
  "ingested": [],
  "last_run": null
}
```

**`wiki/hot.md`** — create only if absent:

```markdown
# Recent Context

## Last Updated
(never — no wiki sessions yet)

## Current Focus
(none)

## Recent Changes
(none)
```

Use today's date (YYYY-MM-DD) in the `updated:` fields of files you create.

---

## Step 4 — Sync wiki-schema to vault

Read `skills/wiki-schema/SKILL.md` fully.

Create the target directory if needed:
```bash
mkdir -p "${VAULT}/.obsidian/copilot"
```

Write the full content of `skills/wiki-schema/SKILL.md` to
`${VAULT}/.obsidian/copilot/wiki-schema.md`. **Always overwrite** — this is the sync
mechanism that keeps the vault schema up to date after plugin updates.

---

## Step 4a — Bootstrap tag-index.md (if absent)

Check whether `${VAULT}/.obsidian/copilot/tag-index.md` exists.

- **If it exists**: skip — never overwrite a user's tag vocabulary.
- **If it does not exist**: read `skills/_shared/tag-index-template.md` fully and
  write the template content to `${VAULT}/.obsidian/copilot/tag-index.md`.

---

## Step 4b — Sync task-creation-rules to vault

Read `skills/_shared/task-rules.md` fully.

Write the content to `${VAULT}/.obsidian/copilot/task-creation-rules.md`. **Always
overwrite** — the plugin's `_shared/task-rules.md` is the canonical source.
This keeps the vault copy in sync after plugin updates, just like wiki-schema.

---

## Step 5 — Merge wiki block into CLAUDE.md

Target: `${VAULT}/CLAUDE.md`

If this file does not exist, skip and note it in the report.

Check whether the file contains a `<!-- WIKI_BLOCK_START -->` anchor:

- **Anchor found**: replace the entire span from `<!-- WIKI_BLOCK_START -->` to
  `<!-- WIKI_BLOCK_END -->` (inclusive) with the wiki block below.
- **Anchor not found**: append the wiki block at end of file (one blank line before it).

The `<!-- WIKI_BLOCK_START -->` / `<!-- WIKI_BLOCK_END -->` HTML comments are the
idempotent merge anchors — they allow safe re-runs without duplicating content.

<!-- WIKI_BLOCK_START -->
## Wiki

Compiled knowledge base at `wiki/`. Plugin: `obsidian-llm-wiki`.
Full schema at `.obsidian/copilot/wiki-schema.md`.

`wiki/hot.md` is auto-read at session start and auto-updated at session end
by the plugin hooks. When hot.md content appears at session start, silently absorb it
as context — do not announce it, do not summarise it. Run `/wiki-hot` to refresh manually.

### Wiki Commands

| Command | Description |
|---------|-------------|
| `/wiki-ingest @filepath` | Ingest one source file into the wiki |
| `/wiki-scan [directory]` | Scan directory for unprocessed files; batch-ingest new/changed |
| `/wiki-query <question>` | Answer from the compiled wiki with citations |
| `/wiki-save` | Save current conversation as a wiki page |
| `/wiki-lint` | Run wiki health check, produce lint report |
| `/wiki-hot` | Manually refresh the hot cache |
| `/wiki-tags-refresh [directory]` | Sync tags with tag-index.md; scans the whole vault by default |
| `/wiki-task <description>` | Create a single task from natural language |
| `/wiki-tasks-extract [wiki-path]` | Batch-extract tasks from wiki content |
| `/wiki-init` | Re-initialize vault integration after plugin install/update |

### Wiki Boundary Rules

Wiki operations MUST NEVER write to: `Meetings/`, `Daily/`, `Projects/`, `Customers/`,
`People/`, `Clippings/`, `Research/`. Read these directories; never modify them.
Write only to `wiki/`, and to `.raw/` only to archive a processed file under
`.raw/_processed/YYYY-MM/` or, in `/wiki-scan`, to write an HTML file's markdown
conversion beside it (`/wiki-init` also creates `.raw/` itself and its `.gitkeep`).

**Exceptions**: `/wiki-task` and `/wiki-tasks-extract` intentionally write to `Projects/`
files and `Tasks.md`; `/wiki-tags-refresh` updates `.obsidian/copilot/tag-index.md`;
`/wiki-init` writes `.obsidian/copilot/` and the wiki blocks in `CLAUDE.md` and
`.github/copilot-instructions.md`. These are the only wiki commands that write outside
`wiki/` and `.raw/`.

Only use tags from `.obsidian/copilot/tag-index.md`. Never invent new tags.
<!-- WIKI_BLOCK_END -->

---

## Step 6 — Merge wiki section into .github/copilot-instructions.md

Target: `${VAULT}/.github/copilot-instructions.md`

If this file does not exist, skip and note it in the report.

Check whether the file contains a `<!-- WIKI_BLOCK_START -->` anchor:

- **Anchor found**: replace the entire span from `<!-- WIKI_BLOCK_START -->` to
  `<!-- WIKI_BLOCK_END -->` (inclusive) with the wiki block below.
- **Anchor not found**: append the wiki block at end of file (one blank line before it).

The `<!-- WIKI_BLOCK_START -->` / `<!-- WIKI_BLOCK_END -->` HTML comments are the
idempotent merge anchors — they allow safe re-runs without duplicating content.

<!-- WIKI_BLOCK_START -->
## Wiki

The vault has a compiled knowledge base at `wiki/` managed by the
`obsidian-llm-wiki` Copilot plugin.

### Hot Cache — Automatic via Hooks

`wiki/hot.md` is managed automatically by plugin hooks:
- **SessionStart** — hot.md is read silently and injected as context
- **Stop** — the agent is prompted to update hot.md before ending the session

No manual steps needed. To force a hot cache refresh mid-session, run `/wiki-hot`.

### Wiki Commands

| Command | Description |
|---------|-------------|
| `/wiki-ingest @filepath` | Ingest one source file into the wiki |
| `/wiki-scan [directory]` | Scan directory for unprocessed files |
| `/wiki-query <question>` | Answer from the compiled wiki with citations |
| `/wiki-save` | Save current conversation as a wiki page |
| `/wiki-lint` | Run wiki health check |
| `/wiki-hot` | Refresh the hot cache (run at END of every wiki session) |
| `/wiki-tags-refresh [directory]` | Sync tags with tag-index.md; scans the whole vault by default |
| `/wiki-task <description>` | Create a single task from natural language |
| `/wiki-tasks-extract [wiki-path]` | Batch-extract tasks from wiki content |
| `/wiki-init` | Re-initialize vault integration after plugin update |

### Wiki Schema

Full vault conventions (page types, frontmatter, tags, cross-linking) at:
`.obsidian/copilot/wiki-schema.md`

Read the schema fully before any operation that creates or modifies wiki pages.

### Wiki Boundary Rules

Wiki operations MUST NEVER write to: `Meetings/`, `Daily/`, `Projects/`, `Customers/`,
`People/`, `Clippings/`, `Research/`. Read these directories; never modify them.
Write only to `wiki/`, and to `.raw/` only to archive a processed file under
`.raw/_processed/YYYY-MM/` or, in `/wiki-scan`, to write an HTML file's markdown
conversion beside it (`/wiki-init` also creates `.raw/` itself and its `.gitkeep`).

**Exceptions**: `/wiki-task` and `/wiki-tasks-extract` intentionally write to `Projects/`
files and `Tasks.md`; `/wiki-tags-refresh` updates `.obsidian/copilot/tag-index.md`;
`/wiki-init` writes `.obsidian/copilot/` and the wiki blocks in `CLAUDE.md` and
`.github/copilot-instructions.md`. These are the only wiki commands that write outside
`wiki/` and `.raw/`.

Only use tags from `.obsidian/copilot/tag-index.md`. Never invent new tags.
If a concept needs a new tag, flag it with `tag-needed: <proposed>` and let the user
approve it via `/wiki-tags-refresh`.
<!-- WIKI_BLOCK_END -->

---

## Step 7 — Report

Print a structured summary of what happened:

```
wiki-init complete
──────────────────────────────────────────────────
Vault: ${VAULT}

Infrastructure
  .raw/                              ✓ ready
  wiki/                              ✓ ready

Skeleton files (skip = already existed)
  _index.md          [created | skipped]
  _log.md            [created | skipped]
  _manifest.json     [created | skipped]
  hot.md             [created | skipped]

Schema & rules sync
  .obsidian/copilot/wiki-schema.md           [synced | skipped — .obsidian/copilot/ not found]
  .obsidian/copilot/tag-index.md             [created from template | skipped — already exists]
  .obsidian/copilot/task-creation-rules.md   [synced | skipped — .obsidian/copilot/ not found]

Instruction file merges
  CLAUDE.md                          [section added | section updated | skipped — not found]
  .github/copilot-instructions.md    [section added | section updated | skipped — not found]
──────────────────────────────────────────────────
```

Then always print the session workflow:

```
Session workflow:
  SESSION START  — hot cache loads automatically via hooks (SessionStart)
  SESSION END    — hot cache updates automatically via hooks (Stop)
  MANUAL REFRESH — run `/wiki-hot` to force a hot cache refresh mid-session
  AFTER UPDATE   — run `/wiki-init` to sync wiki-schema.md with the new plugin version
```

---

## Step 8 — Suggest vault commit

Do not run git commands. Just suggest:

```
Next step: commit these changes to your vault repo so other machines get the
integration on git pull:

  git add .raw/.gitkeep wiki/ .obsidian/copilot/wiki-schema.md \
          .obsidian/copilot/tag-index.md .obsidian/copilot/task-creation-rules.md \
          CLAUDE.md .github/copilot-instructions.md
  git commit -m "chore: initialize obsidian-llm-wiki integration"
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.