From hiivmind-corpus
This skill should be used when the user asks "what corpora do I have installed?", "list my documentation corpora", "find installed corpus plugins", "what hiivmind-corpus plugins are available?", "check the docs", "search the documentation", "what do the docs say", "look up in corpus", or needs to discover installed documentation corpus skills. Also use when a generic documentation query doesn't specify which corpus to search.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hiivmind-corpus:hiivmind-corpus-discoverThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Find and report all available documentation corpora, including:
Find and report all available documentation corpora, including:
.hiivmind/corpus/registry.yamlWhen triggered by a generic query like "check the docs" or "what do the docs say about X":
"I found these documentation corpora:
- Fly.io (registered) - flyio, deployment, hosting
- Polars (plugin) - dataframe, lazy, expressions
Which would you like me to search? Or rephrase your question with a specific domain."
Check .hiivmind/corpus/registry.yaml for registered corpora:
Read: .hiivmind/corpus/registry.yaml
Registry corpora are data-only repositories accessed via GitHub or local paths.
See: lib/corpus/patterns/registry-loading.md for registry schema and loading.
Check .hiivmind/corpus/config.yaml in the current repo:
Read: .hiivmind/corpus/config.yaml
If it exists and contains corpus.name, this is an embedded corpus. Extract corpus.name, corpus.display_name, corpus.keywords directly.
Name derivation: use corpus.name field (required for embedded corpora since the directory is always corpus/).
Scan these locations for plugin-based corpora:
| Type | Location Pattern | Structure |
|---|---|---|
| User-level | ~/.claude/skills/hiivmind-corpus-*/ | Skill with data/config.yaml |
| Repo-local | .claude-plugin/skills/hiivmind-corpus-*/ | Skill in current repo |
| Marketplace single | ~/.claude/plugins/marketplaces/hiivmind-corpus-*/ | Standalone corpus plugin |
| Marketplace multi | ~/.claude/plugins/marketplaces/*/hiivmind-corpus-*/ | Corpus inside a marketplace |
First, check if the project has a corpus registry:
Read: .hiivmind/corpus/registry.yaml
If registry exists, extract registered corpora:
# Registry structure
corpora:
- id: flyio
source:
type: github
repo: hiivmind/hiivmind-corpus-flyio
ref: main
For each registered corpus, fetch its config to get keywords:
Using gh api (preferred):
gh api repos/{owner}/{repo}/contents/config.yaml?ref={ref} --jq '.content' | base64 -d
Then parse the YAML to extract: corpus.name, corpus.display_name, and corpus.keywords
Fallback (WebFetch):
WebFetch: https://raw.githubusercontent.com/{owner}/{repo}/{ref}/config.yaml
prompt: "Extract corpus.name, corpus.display_name, and corpus.keywords"
See: lib/corpus/patterns/registry-loading.md for detailed registry handling.
Before discovery, check tool availability (see lib/corpus/patterns/tool-detection.md):
Embedded corpus (local check):
Glob: .hiivmind/corpus/config.yaml
If found, read it to extract corpus metadata. This is faster than the legacy plugin scan.
Scan each location for hiivmind-corpus-*/ directories with data/config.yaml:
Using Claude tools:
Glob: ~/.claude/skills/hiivmind-corpus-*/data/config.yaml
Glob: .claude-plugin/skills/hiivmind-corpus-*/data/config.yaml
Glob: ~/.claude/plugins/marketplaces/*/hiivmind-corpus-*/data/config.yaml
Glob: ~/.claude/plugins/marketplaces/hiivmind-corpus-*/data/config.yaml
Using bash:
# User-level corpora
for d in ~/.claude/skills/hiivmind-corpus-*/; do
[ -d "$d" ] && [ -f "${d}data/config.yaml" ] && echo "user-level|$(basename "$d")|$d"
done
# Repo-local corpora
for d in ./.claude-plugin/skills/hiivmind-corpus-*/; do
[ -d "$d" ] && [ -f "${d}data/config.yaml" ] && echo "repo-local|$(basename "$d")|$d"
done
# Marketplace corpora (see patterns/discovery.md for full list)
For each discovered corpus, determine status by reading data/index.md:
Algorithm:
no-indexplaceholderbuiltUsing Claude tools:
Read: {corpus_path}/data/index.md
Check for "Run hiivmind-corpus-build" text
For built corpora, extract keywords and display name for routing:
See: lib/corpus/patterns/config-parsing.md for YAML extraction methods.
Fields to extract from data/config.yaml:
.corpus.display_name (or infer from name).corpus.keywords[] (or infer from name)Path resolution patterns in lib/corpus/patterns/paths.md:
{corpus_path}/data/config.yaml{corpus_path}/data/index.md{corpus_path}/SKILL.md or {corpus_path}/skills/navigate/SKILL.mdPattern documentation: See lib/corpus/patterns/ for full pattern library.
Present discovered corpora in a structured format:
## Available Corpora
### Registered (via registry.yaml)
| ID | Display | Source | Keywords | Status | Embeddings |
|----|---------|--------|----------|--------|------------|
| flyio | Fly.io | github:hiivmind/hiivmind-corpus-flyio | flyio, deployment | healthy | yes (312 entries) |
| polars | Polars | github:hiivmind/hiivmind-corpus-data/.../polars | polars, dataframe | healthy | no |
### Legacy Plugins (backward compatibility)
| Name | Display | Keywords | Status | Sources | Last Indexed |
|------|---------|----------|--------|---------|--------------|
| hiivmind-corpus-github | GitHub | github, actions, api | built | 2 | 2025-12-01 |
**Total: 3 corpora (2 registered, 1 legacy plugin)**
---
To register a new corpus:
/hiivmind-corpus register github:owner/repo
To navigate a corpus:
/hiivmind-corpus navigate flyio "your question"
After discovery, optionally update the corpus cache in ~/.claude/CLAUDE.md:
If ~/.claude/CLAUDE.md exists:
<!-- hiivmind-corpus-cache --> ... <!-- /hiivmind-corpus-cache -->Cache table format:
<!-- hiivmind-corpus-cache -->
| Corpus | Keywords | Location |
|--------|----------|----------|
| {name without hiivmind-corpus- prefix} | {keywords from config, comma-separated} | {full path} |
<!-- /hiivmind-corpus-cache -->
Using Claude Edit tool:
Example:
old_string:
<!-- hiivmind-corpus-cache -->
| Corpus | Keywords | Location |
|--------|----------|----------|
| polars | dataframe, lazy | ~/.claude/plugins/... |
<!-- /hiivmind-corpus-cache -->
new_string:
<!-- hiivmind-corpus-cache -->
| Corpus | Keywords | Location |
|--------|----------|----------|
| polars | dataframe, lazy, expressions | ~/.claude/plugins/marketplaces/hiivmind-corpus-data/hiivmind-corpus-polars |
| ibis | ibis, sql, backend | ~/.claude/plugins/marketplaces/hiivmind-corpus-data/hiivmind-corpus-ibis |
<!-- /hiivmind-corpus-cache -->
Note: Cache update is opportunistic. If CLAUDE.md doesn't have the cache section, skip silently. The awareness skill (hiivmind-corpus-awareness) is responsible for initial injection.
Determine corpus type based on its location:
| Location Pattern | Type |
|---|---|
~/.claude/skills/hiivmind-corpus-* | user-level |
.claude-plugin/skills/hiivmind-corpus-* | repo-local |
~/.claude/plugins/marketplaces/hiivmind-corpus-* (root has plugin.json) | marketplace-single |
~/.claude/plugins/marketplaces/*/hiivmind-corpus-* | marketplace-multi |
.hiivmind/corpus/ (has config.yaml) | embedded |
Different corpus types have different internal structures:
User-level and Repo-local skills:
hiivmind-corpus-{project}/
├── SKILL.md # Navigate skill at root
└── data/
├── config.yaml
└── index.md
Marketplace plugins:
hiivmind-corpus-{project}/
├── .claude-plugin/plugin.json
├── skills/navigate/SKILL.md # Navigate skill in skills/
└── data/
├── config.yaml
└── index.md
Embedded corpus:
.hiivmind/corpus/
├── config.yaml
└── index.md
Note: No data/ subdirectory — embedded corpora are always data-only format with files at the corpus root.
Adjust file lookups based on type.
Using Claude tools (recommended):
# Find all corpora
Glob: ~/.claude/skills/hiivmind-corpus-*/data/config.yaml
Glob: ~/.claude/plugins/marketplaces/**/hiivmind-corpus-*/data/config.yaml
# For each found, read config.yaml to get metadata
Read: {path}/data/config.yaml
Using bash (cross-platform examples in lib/corpus/patterns/discovery.md):
# Count user-level corpora
ls -d ~/.claude/skills/hiivmind-corpus-*/ 2>/dev/null | wc -l
# List all corpus names
for d in ~/.claude/skills/hiivmind-corpus-*/; do basename "$d"; done
This skill is invoked by the /hiivmind-corpus gateway command to:
When invoked programmatically, output structured data:
corpora:
- name: hiivmind-corpus-polars
display_name: Polars
type: marketplace-multi
location: ~/.claude/plugins/marketplaces/hiivmind-corpus-data/hiivmind-corpus-polars
status: built
keywords: # For per-session routing
- polars
- dataframe
- lazy
- expression
sources: 1
last_indexed: "2025-12-10"
navigate_skill: hiivmind-corpus-navigate-polars
embeddings:
has_db: true
entry_count: 147
model: "BAAI/bge-small-en-v1.5"
No corpora found:
No hiivmind-corpus documentation corpora are installed.
To create one: Use
hiivmind-corpus-initto generate a new corpus To install from marketplace:/plugin install hiivmind-corpus-polars@hiivmind
Corpus directory exists but invalid: Skip and note in output:
Skipped: ~/.claude/skills/hiivmind-corpus-broken (missing config.yaml)
Pattern documentation:
lib/corpus/patterns/tool-detection.md - Detect available toolslib/corpus/patterns/discovery.md - Corpus discovery algorithmslib/corpus/patterns/config-parsing.md - YAML config extractionlib/corpus/patterns/status.md - Index status checkinglib/corpus/patterns/paths.md - Path resolutionlib/corpus/patterns/embeddings.md - Embedding status reportingskills/hiivmind-corpus-navigate/SKILL.md - Query corpus documentationskills/hiivmind-corpus-register/SKILL.md - Add corpus to registryskills/hiivmind-corpus-status/SKILL.md - Check corpus healthskills/hiivmind-corpus-init/SKILL.md - Create new corpusskills/hiivmind-corpus-build/SKILL.md - Build corpus indexcommands/hiivmind-corpus.md - Unified entry point${CLAUDE_PLUGIN_ROOT}/skills/hiivmind-corpus-graph/SKILL.md — View, validate, edit concept graphs${CLAUDE_PLUGIN_ROOT}/skills/hiivmind-corpus-bridge/SKILL.md — Cross-corpus concept bridges and aliasesNote: Navigation is now handled by hiivmind-corpus-navigate skill, which works with both registry-based and legacy plugin-based corpora.
npx claudepluginhub hiivmind/hiivmind-corpusManages Claude documentation: local index search/discovery/resolution by keywords/tags/natural language, sitemap scraping, metadata/alias handling, drift detection.
Manages Cursor docs index: scrapes llms.txt, searches keywords/tags/queries, resolves doc_ids/aliases, rebuilds index, detects drift via scripts.
Manages OpenAI Codex CLI docs: scraping from llms.txt, keyword/NL search, doc_id/alias resolution, index maintenance via Python/Bash scripts.