Skills Directory Context
Auto-generated by OpenCode elite setup | Updated: 2026-04-10
Purpose
Modular skill implementations that extend Legion's capabilities. Skills are discovered via skills/manifest.json and routed by core/skill_registry.py.
Key Files
manifest.json— Index of all available skills (name, description, keywords, file path)web_search.py— DuckDuckGo + SerpAPI web search, async, Telegram HTML formattedgeo_intelligence.py— Location-aware restaurant/hotel/nearby recommendationsdatabase_agent.py— Natural language to SQL for Supabase (read-only SELECT)
Rules
- All async I/O operations use asyncio/await
- Skills return Telegram HTML formatted strings for user-facing output
- Never hardcode API keys — use os.getenv()
- Skills are discovered dynamically via manifest.json (no hardcoded imports in routing)
- Database agent only allows SELECT queries (safety validated before execution)
Skill Naming Convention
- File name matches class name:
web_search.py→WebSearch - Each skill has a single public async
execute()or named method - Error messages are user-friendly and HTML formatted
Test Command
pytest tests/ -x --asyncio-mode=auto -q