From llmwiki
Recursively scans text files under a specified directory and generates/maintains an entity-based knowledge wiki through deterministic preprocessing + LLM compilation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/llmwiki:makeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Recursively scans text files under a specified directory and generates/maintains an entity-based knowledge wiki through deterministic preprocessing + LLM compilation.
Recursively scans text files under a specified directory and generates/maintains an entity-based knowledge wiki through deterministic preprocessing + LLM compilation.
/llmwiki:make [path]
The path argument is optional. Resolution order for the input directory:
/llmwiki:make <path>.llmwiki/config.json -> input_dirInform the user which input directory is being used.
Output is written to .llmwiki/ directly under the project root. Created automatically on first run.
<project>/
.llmwiki/
config.json # Persisted settings (input_dir, etc.)
index.xml # Entity catalog (auto-generated)
entities.json # Entity dictionary (accumulated)
entities/<category>/*.md # Wiki pages (accumulated)
syntheses/*.md # Synthesized documents (generated by llmwiki:query)
log.md # Session history (append-only)
| Item | Rule |
|---|---|
| Supported formats | All text files (binary files are auto-skipped via null byte detection in the first 8KB) |
| Encoding | UTF-8 (no BOM) |
| Directory structure | Flexible. All levels are scanned recursively |
| Exclusions | Paths listed in .gitignore + default exclusion patterns (.git/, node_modules/, __pycache__/, etc.) |
| Git integration | If .git/ exists in the input directory and the git command is available, uses git ls-files for fast retrieval. Otherwise falls back to parsing .gitignore files at each level |
| index.xml | Generated by makeindex.py. No manual placement needed |
Check whether .llmwiki/ exists under the project root. If it does not, create it together with the required subdirectory:
mkdir -p .llmwiki/entities
This guarantees that subsequent steps (index generation, preprocessing, wiki page writes) always have a valid output destination.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/make/scripts/makeindex.py --llmwiki-dir .llmwiki
Generates a summary catalog from wiki pages under .llmwiki/entities/ as .llmwiki/index.xml.
python3 ${CLAUDE_PLUGIN_ROOT}/skills/make/scripts/llmwiki_preprocess.py <input_dir> --llmwiki-dir .llmwiki > /tmp/llmwiki_preprocess.xml
Performs the following and outputs XML:
.llmwiki/entities.json dictionary (case-insensitive, word boundary, longest match first)Read /tmp/llmwiki_preprocess.xml and report to the user.
stats.new_files == 0 and stats.updated_files == 0 and stats.missing_sources == 0 and lint is all clean, report "no updates needed" and stopstats.new_files + stats.updated_files > 20, report the count and confirm with the user before proceedingstats.missing_sources > 0, report the disappeared sources and affected entitiesFor each file in new_files and updated_files:
source_type from the file path and content (see schema.md guidelines: primary / secondary / derived)known_entities)${CLAUDE_PLUGIN_ROOT}/skills/make/llmwiki/schema.md. Otherwise create a new page from the template.llmwiki/entities.json (lowercase kebab-case, aliases in both Japanese and English)sources[].sha256 and the determination result in sources[].source_typeFor updated_files (files whose sha256 has changed):
sha256 and ingested of the corresponding source in the existing pageDormant page promotion:
status: dormant, perform the following:
status: dormant from the frontmatter"status": "dormant" from the corresponding entity in entities.jsonupdated to todayFor missing_sources (disappeared sources):
Wiki page save location: .llmwiki/entities/<category>/<entity-id>.md
python3 ${CLAUDE_PLUGIN_ROOT}/skills/make/scripts/llmwiki_preprocess.py <input_dir> --llmwiki-dir .llmwiki > /tmp/llmwiki_preprocess_post.xml
Read the result and check the lint section.
Read updated wiki pages and verify if any "needs review" flags are needed. If contradictions exist, include both values with dates and add "needs review".
For the top 3 updated pages, verify:
Report the following:
Save (or update) .llmwiki/config.json with the input directory used in this run.
If the file does not exist yet, initialize it with the full default schema:
{
"input_dir": "<absolute path to input directory>",
"auto_approve": {
"query_save_synthesis": true
}
}
If the file already exists, merge only the input_dir value. Do not overwrite existing auto_approve settings.
| Key | Type | Default | Description |
|---|---|---|---|
input_dir | string | (project root) | Absolute path to the input directory |
auto_approve.query_save_synthesis | bool | true | Skip user confirmation when saving synthesized answers to syntheses/ |
Append an entry to .llmwiki/log.md in the following format (if the file does not exist, create it with a # llmwiki Log header):
## [YYYY-MM-DD] make | Processed <file count> files, created <new page count>, updated <updated page count>
npx claudepluginhub ktrysmt/claude-plugins --plugin llmwikiFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.