Research Hex packages (Sobelow, Phoenix, Ecto, Credo, Ash, etc). Use when investigating packages, understanding integration patterns, or finding module/function docs and usage examples. Automatically fetches missing documentation and source code locally.
View on GitHubbradleygolden/claude-marketplace-elixir
core
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/bradleygolden/claude-marketplace-elixir/blob/main/plugins/core/skills/hex-docs-search/SKILL.md -a claude-code --skill hex-docs-searchInstallation paths:
.claude/skills/hex-docs-search/# Hex Documentation Search Comprehensive search for Elixir and Erlang package documentation, following a cascading strategy to find the most relevant and context-aware information. ## When to use this skill Use this skill when you need to: - Look up documentation for a Hex package or dependency - Find function signatures, module documentation, or type specs - See usage examples of a library or module - Understand how a dependency is used in the current project - Search for Elixir/Erlang standard library documentation ## Search strategy This skill implements a **cascading search** that prioritizes local and contextual information: 1. **Local dependencies** - Search installed packages in `deps/` directory (both source code AND generated docs) 2. **Fetched cache** - Check previously fetched documentation and source code in `.hex-docs/` and `.hex-packages/` 3. **Progressive fetch** - Automatically fetch missing documentation or source code locally when needed 4. **Codebase usage** - Find how packages are used in the current project 5. **HexDocs API** - Search official documentation on hexdocs.pm (fallback) 6. **Web search** - Fallback to general web search (last resort) ## Instructions ### Step 1: Identify the search target Extract the package name and optionally the module or function name from the user's question. Examples: - "How do I use Phoenix.LiveView?" → Package: `phoenix_live_view`, Module: `Phoenix.LiveView` - "Show me Ecto query examples" → Package: `ecto`, Module: `Ecto.Query` - "What does Jason.decode!/1 do?" → Package: `jason`, Module: `Jason`, Function: `decode!` ### Step 2: Search local dependencies Use the **Glob** and **Grep** tools to search the `deps/` directory for BOTH code and documentation: 1. **Find the package directory**: ``` Use Glob: pattern="deps/<package_name>/**/*.ex" ``` If no results, the package isn't installed locally. Skip to Step 4. 2. **Search for module definition in source code**: ``` Use Grep: pa