# Brainstorming: Advanced Web Search Skill ## Objective Create a versatile web search skill that supports multiple search modes, providers, and use cases. ## Potential Search Modes ### 1. General Search - **Goal**: Find general information, answers to questions. - **Tools**: `claude -p` (existing), `googler`, `ddgr`. - **Features**: Summaries, top N results. ### 2. Documentation Search - **Goal**: Find specific technical documentation. - **Target**: MDN, Python Docs, Rust Docs, NixOS Wiki. - **Strategy**: Restrict search to specific domains (`site:docs.python.org`). ### 3. Code Search - **Goal**: Find code snippets, libraries, or usage examples. - **Target**: GitHub, GitLab, StackOverflow. - **Tools**: GitHub CLI (`gh`), specialized code search APIs. ### 4. Package Search - **Goal**: Find packages and versions. - **Target**: NixOS Packages, PyPI, NPM, Crates.io. - **Tools**: `nix-search` (if available), `pip search` (deprecated, need alternative), `npm search`. ### 5. Deep Research / Investigation - **Goal**: Thoroughly investigate a topic by following links. - **Strategy**: Recursive search or multi-step agentic workflow (search -> read -> search). ## Implementation Options ### Option A: Enhanced `claude -p` Wrapper - Expand the existing `web-search` skill. - Add flags: `--docs`, `--code`, `--package`. - Modify the prompt sent to Claude to guide its search behavior. - **Pros**: Uses existing powerful agent. - **Cons**: Dependent on Claude's tools and context window. ### Option B: Direct CLI Tools - Use tools like `googler` or `ddgr` directly for faster, raw results. - **Pros**: Fast, lightweight, structured output (JSON). - **Cons**: Requires installing extra tools, raw output might need parsing. ### Option C: Hybrid Approach - Use CLI tools for discovery (getting URLs). - Use `claude` or `curl` + `readability` for content extraction. ## Questions for User - Do you prefer a single "smart" skill that figures out what to do, or explicit flags/subcommands? - Are there specific sources you search often (e.g., NixOS packages)? - Do you want raw links or summarized answers? ## Resolution (2025-12-28) **Context changed**: Claude Code now has built-in WebSearch and WebFetch tools. **Decisions:** 1. **Single smart skill vs flags?** Keep two separate skills: - web-search: Quick searches (for OpenCode which lacks built-in search) - web-research: Deep research with structured reports (valuable for both) 2. **Specific sources priority?** Not needed as skill feature. - WebSearch has `allowed_domains` parameter - User says "search nixos wiki for X" and agent uses domain filtering 3. **Raw links vs summaries?** Summaries by default (current behavior). - Raw links without context are less useful - Agent synthesizes information **Deployment:** - web-search: OpenCode only (Claude Code has native WebSearch) - web-research: Both (deep research with backends beyond built-in capability) **Status:** Questions resolved, no changes needed to skills.