skills/web_search_brainstorm.md
dan 26a6469604 feat: add web-research skill and automate deployment
Includes:
- New 'web-search' skill
- New 'web-research' skill with multi-backend support (claude, llm, kagi)
- Automated deployment in bin/deploy-skill.sh
- Sops-nix integration for Kagi API key
- Documentation updates
2025-11-23 23:18:32 -08:00

54 lines
2.1 KiB
Markdown

# 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?