Knowledge Base Setup
Interactive setup that creates a structured, evidence-backed knowledge base in your project.
When to Use
- Starting a new knowledge base from scratch
- Adding a KB to an existing project
Step 1: Discover Purpose
Ask the user (one question at a time, use AskUserQuestion):
- What is this KB for? (e.g., product documentation, security/compliance, company knowledge, sales enablement, internal policies)
- Who will query it? (e.g., you personally, your team, AI agents answering questions)
- What categories make sense? Suggest 3-5 based on the domain, let the user adjust.
Example category suggestions by domain:
- Product docs: technical, integrations, deployment, security, faq
- Company knowledge: general, policies, processes, teams, faq
- Sales enablement: product, competitive, customer-success, pricing, faq
- Security/compliance: security, compliance, technical, general, faq
Step 2: Confirm Plan
Before creating anything, present the plan to the user:
I'll create this structure in your project:
kb/
.kb-config.yaml
index.md
scopes/
_default.yaml
README.md
{category1}/
{category2}/
{category3}/
scripts/
kb-index.py
kb-verify.py
kb-validate.py
kb-search.py
CLAUDE.md (or append to existing)
Ready to proceed?
Wait for user confirmation.
Step 3: Scaffold the KB
Read the template files from this plugin and adapt them for the user's project:
-
Read
templates/kb/.kb-config.yamlfrom this plugin. Createkb/.kb-config.yamlin the user's project, replacing the placeholder categories with the ones chosen in Step 1. Replace{{today}}with today's date. -
Read
templates/kb/index.mdfrom this plugin. Createkb/index.md, adding seed keywords for each chosen category. For example, if the user chose "security" and "technical", add initial keyword entries:| encryption, certificates, access | security/ | | API, architecture, deployment | technical/ | -
Read
templates/kb/scopes/_default.yamlfrom this plugin. Copy tokb/scopes/_default.yaml. -
Read
templates/kb/scopes/README.mdfrom this plugin. Copy tokb/scopes/README.md. -
Create empty directories for each chosen category:
kb/{category1}/,kb/{category2}/, etc. -
Read
scripts/kb-index.pyfrom this plugin. Copy toscripts/kb-index.pyin the user's project. -
Read
scripts/kb-verify.pyfrom this plugin. Copy toscripts/kb-verify.pyin the user's project. -
Read
scripts/kb-validate.pyfrom this plugin. Copy toscripts/kb-validate.pyin the user's project. -
Read
scripts/kb-search.pyfrom this plugin. Copy toscripts/kb-search.pyin the user's project.
Step 4: Create Project CLAUDE.md
Read templates/CLAUDE.md from this plugin. Create (or append to existing) CLAUDE.md in the user's project root. Replace {{category}} placeholders with the actual categories chosen in Step 1.
Step 5: Populate from Sources
The KB structure is ready, but empty. Ask the user:
"Do you have existing knowledge sources you'd like to import? (Notion pages, Slack channels, Confluence, local files)"
- If yes: run
/kb-refreshto populate the KB from those sources. It handles source discovery, scraping, and entry creation. - If no or skip: create one example entry in the first category to demonstrate the format. Read
templates/kb/example/sample-entry.mdfrom this plugin for the format, but write an entry relevant to the user's domain rather than copying the sample.
Step 6: Verify
Run the index script to confirm everything is wired up:
python3 scripts/kb-index.py
Regenerate the "All Files by Category" section of kb/index.md from the current entries:
python3 scripts/kb-index.py --write
Validate KB health (frontmatter, categories, related links):
python3 scripts/kb-validate.py
If kb-index.py lists the entries and kb-validate.py reports "All entries valid", setup is complete.
Step 7: Summary
Tell the user:
- What was created and where
- How to add new entries (create .md files with YAML frontmatter in the right
kb/{category}/folder; nested sub-folders likekb/security/access/are supported) - How to query the KB (
/kb-answer) - How to import documents or bulk-import a directory (
/kb-import) - How to add more sources or refresh existing ones (
/kb-refresh) - How to list all entries (
python3 scripts/kb-index.py) - How to search (
python3 scripts/kb-search.py "keyword")