skills/docs/worklogs/2025-11-22-create-web-search-skill.org
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

2.9 KiB
Raw Blame History

Create Web Search Skill

Session Summary

Date: 2025-11-22

Focus Area: Implementing a web search capability for Claude Code and Antigravity agents.

Accomplishments

  • Explored the `skills` repository structure and documentation (`AGENTS.md`, `RFC-AI-AGENT-EXTENSIBILITY-PATTERNS.md`).
  • Confirmed that Antigravity is not natively supported but can utilize skills via their underlying Bash scripts.
  • Implemented the `web-search` skill based on requirements from `claude-code-web-search.md`.

    • Created `skills/web-search/SKILL.md` documentation.
    • Created `skills/web-search/scripts/search.sh` helper script.
  • Verified the skill functionality by successfully querying "current time in Tokyo" and "latest stable version of python".

Key Decisions

Decision 1: Implement as a Standard Skill

  • Context: We needed a way to search the web using Claude Code's subprocess capability.
  • Rationale: Following the existing pattern in the `skills` repo ensures compatibility and reusability.
  • Impact: The skill is available for Claude Code (via native loading) and Antigravity (via manual script execution).

Decision 2: Use `claude -p` with `allowedTools`

  • Context: Standard `webfetch` only gets static HTML.
  • Rationale: The `allowedTools "web_search,WebSearch,mcp__*"` flag explicitly grants the subprocess permission to use the search tool, which is otherwise restricted.
  • Impact: Enables dynamic web searching including "Product Investigation" and "Nix Package Discovery" workflows.

Technical Details

Code Changes

  • New files created:

    • `skills/web-search/SKILL.md`: Defines the skill interface and usage.
    • `skills/web-search/scripts/search.sh`: Bash wrapper for the `claude` CLI.

Commands Used

```bash

claude -p "Search the web for '$QUERY'. Provide a summary of findings." \ allowedTools "web_search,WebSearch,mcp__*"

./skills/web-search/scripts/search.sh "current time in Tokyo" ```

Process and Workflow

What Worked Well

  • The `skills` repo structure is clear and easy to extend.
  • Using `claude -p` as a bridge to web search is a powerful pattern.

What Was Challenging

  • Antigravity does not automatically discover these skills, requiring manual script invocation or future tooling (symlinks/workflows).

Context for Future Work

Open Questions

  • How best to expose these skills to Antigravity globally?

    • Option 1: Global Binaries (symlinks to `~/.local/bin`).
    • Option 2: Antigravity Workflows (`.agent/workflows/`).
    • We are leaning towards a hybrid approach (Global Binaries + Local Workflow stubs).

Next Steps

  • Decide on the global exposure strategy.
  • Commit the new skill to the repository.

Session Metrics

  • Commits made: 0 (Work in progress)
  • Files touched: Created `skills/web-search/`