Skip to content

Discovery map

The scanner classifies artifacts by type × tool. tool is one of claude · codex · gemini · cursor · hermes · grok · qwen · deepseek · ollama · pi · cline · generic. Open-weight models (Llama, Gemma, Qwen, DeepSeek, GLM, MiniMax, …) don’t define artifact conventions themselves — the harnesses that run them do, and those are what the scanner indexes.

TypePatterns (global ~/.{tool}/... and per-project)Format
skill**/skills/**/SKILL.md, **/skills(-cursor)/**/DESCRIPTION.md (recursive; Hermes nests skills into category folders — SKILL.md per skill, DESCRIPTION.md per category)YAML frontmatter
agent**/agents/**/*.{md,toml,mdc} (recursive; plugin/nested subagents), Modelfile/*.modelfile (Ollama persona — the FROM base model is attributed in provides)md frontmatter / TOML / Modelfile
ruleCLAUDE.md/CLAUDE.local.md, AGENTS.md, GEMINI.md/GEMINI.local.md, GROK.md/GROK.local.md, QWEN.md, DEEPSEEK.md, .cursorrules, .clinerules (file or .clinerules/*.md), .pi/{SYSTEM,APPEND_SYSTEM}.md (Pi system-prompt overrides; Pi’s AGENTS.md is covered by the generic pattern), **/.cursor/rules/**/*.mdc, .codex/rules/*.rules, .hermes/SOUL.md, .claude/output-styles/*.mdmd / mdc / plain
memory.claude/projects/*/memory/*.md, .codex/memories/*.md, .hermes/memories/*markdown
command**/commands/**/*.{md,toml} (subdirs = /ns:name), .codex/prompts/*.md, .pi/prompts/*.md (and ~/.pi/agent/prompts/), .clinerules/workflows/*.mdmd frontmatter / TOML
mcp_server~/.claude.json (mcpServers + projects[].mcpServers), **/.mcp.json, .codex/config.toml ([mcp_servers]), .gemini/settings.json, .cursor/mcp.json, .grok/settings.json, .grok/user-settings.json, .qwen/settings.json, .deepseek/settings.json, cline_mcp_settings.jsonJSON / TOML — one record per server
settings.claude/settings.json/.local.json, .gemini/settings.json, .codex/requirements.toml, .grok/settings.json/user-settings.json, .qwen/settings.json, .deepseek/settings.json, .pi/settings.json (and ~/.pi/agent/settings.json)JSON / TOML
hookextracted from Claude settings.jsonhooks (event → matcher → command)(config)

To reach bundled artifacts, the crawl makes path-specific exceptions to its ignore list for .claude/plugins and .gemini/extensions. Memory SQLite stores are skipped (empty, locked, or session transcripts) — the curated markdown is the source.

Every record carries:

FieldValues
scopeproject · global · local · managed · plugin · extension
provenancedirect · plugin:<id> · extension:<id>
sensitivitypublic · secret-adjacent · executable
trustStatetrust review state (imports default to untrusted)
enabled / activationwhether and how the artifact activates
provides / requiresdeclared capabilities and requirements (env/header key names land in requires; values are dropped)

mcp_server, settings, and hook records are read surgically: env and header values are dropped to ***, key names kept. Credential stores (oauth_creds.json, auth.json, …) and *.db/*.log files are hard-skipped. Raw ~/.claude.json is read only for its mcpServers maps — never indexed whole. See the security model.