Help us improve
Share bugs, ideas, or general feedback.
From vicky
Docs → KB sync. Walks the repository for markdown / text documentation outside `vicky/`, finds files that changed since the last index pass, and mirrors them into `vicky/sources/`. Skips code, binaries, generated artefacts, and the vault itself. Use /vicky:index after editing READMEs, ADRs, or any project docs so Vicky stays current.
npx claudepluginhub yesitsfebreeze/vicky --plugin vickyHow this skill is triggered — by the user, by Claude, or both
Slash command
/vicky:indexThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Sync project documentation into the KB. One pass = enumerate `.md` / `.mdx` / `.rst` / `.txt` outside `vicky/`, diff against the last index, copy changes into `vicky/sources/`, relink.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Implements vector databases with Pinecone, Weaviate, Qdrant, Milvus, pgvector for semantic search, RAG, recommendations, and similarity systems. Optimizes embeddings, indexing, and hybrid search.
Share bugs, ideas, or general feedback.
Sync project documentation into the KB. One pass = enumerate .md / .mdx / .rst / .txt outside vicky/, diff against the last index, copy changes into vicky/sources/, relink.
Invoke: /vicky:index
Optional: /vicky:index <path> to scope to a subtree (e.g. /vicky:index docs/).
Documentation only — anything that's already meant for humans:
| Match | Examples |
|---|---|
*.md, *.mdx | README.md, CHANGELOG.md, docs/**/*.md, ADRs, design notes |
*.rst | Sphinx docs, Python project docs |
*.txt | LICENSE, NOTICE, plain-text notes (only when small + text) |
vicky/** — the vault itselfdist/, build/, target/, out/, node_modules/, .git/, .next/, .cache/.gitignore.js, .ts, .rs, .py, .go, .c, .cpp, .h, .hpp, .java, .cs, .rb, etc. (use /vicky:experiment for code optimisation, not indexing)*.generated.md, files under dist/)vicky/index.json:
{
"version": 1,
"last_run": "2026-05-14T12:00:00Z",
"last_commit": "<sha at last successful pass>",
"files": {
"README.md": { "mtime": 1715692800000, "size": 4321, "sha": "<blob sha>" },
"docs/architecture.md": { "mtime": 1715692800000, "size": 9012, "sha": "<blob sha>" },
"skills/setup/SKILL.md": { "mtime": 1715692800000, "size": 3200, "sha": "<blob sha>" }
}
}
A file is "changed" when its sha / mtime / size differs from the recorded entry. Prefer git blob sha when in a git repo; fall back to mtime + size otherwise.
Locate root — git rev-parse --show-toplevel; fall back to CWD if not a git repo.
Load previous state — read vicky/index.json; treat as empty on first run.
Enumerate candidates — git ls-files (respects .gitignore), filter to the doc extensions above, exclude the never-index list. Optional scope arg restricts to a subtree.
Filter to changed — compare sha/mtime/size against state. Collect (added, modified, deleted).
Mirror per file — for each added/modified entry, write vicky/sources/docs/<slug>.md:
---
title: <derived from filename or first H1>
path: docs/architecture.md
type: source
subtype: docs
date: <today>
sha: <blob sha>
tags: [docs, <top-level-dir>]
---
<full original content, verbatim>
Slug = path with separators replaced (docs/architecture.md → docs-architecture-md). Keep the original content as-is so Dataview, wikilinks, and graphify can index it.
For deleted files, remove the matching source note.
Persist state — atomic write of new vicky/index.json (write .tmp, rename). Record last_commit = git rev-parse HEAD.
Relink — call the relink MCP tool so the new doc sources join the graph.
Report — N added, M modified, K deleted; hint to call /vicky:learn if the relink produced new pending questions.
| Trigger | Why |
|---|---|
| User edited a README / ADR / design doc | Mirror the change so future queries see the new wording |
| Pulled a branch with doc changes | Sync after git pull |
| User says "vicky doesn't know about <doc topic>" | Likely the doc exists but is not yet in the KB |
Periodic — once per session, or post-git pull | Keep KB aligned |
Don't call index for vicky/ edits — that's the vault itself, indexed implicitly.
/vicky:index writes doc sources (vicky/sources/docs/)/vicky:research writes web sources (vicky/sources/web/)/vicky:learn consumes both via the pending queue + relink/vicky:experiment is unrelated — it operates on code, not docsvicky/index.json updated each passvicky/sources/docs/*.md created / updated / deletedvicky/graphs/*.json rebuilt via relinkNever touches vicky/conclusions/ (derived) or vicky/pending/ (handled by learn / research).
Re-running /vicky:index immediately after a successful pass produces zero filesystem changes. The state file is the contract.
vicky/index.json corrupt — back up to vicky/index.json.bak, treat as first run.