install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data-ai/add-search-engine" ~/.claude/skills/diegosouzapw-awesome-omni-skill-add-search-engine && rm -rf "$T"
manifest:
skills/data-ai/add-search-engine/SKILL.mdsource content
Add Search Engine Skill
When the user requests to add a new AI search engine (e.g., "Integrate Claude 3", "Add Anthropic"), follow these steps:
Steps
-
Create Provider File
- Create
src/infrastructure/search/{provider-name}.provider.ts - Import the
interface fromISearchProvidersrc/domain/search/types.ts - Implement all required methods
- Create
-
Provider Template
import { ISearchProvider, SearchOptions, SearchResult } from '../../domain/search/types.js'; import { env } from '../../config/index.js'; export class {ProviderName}Provider implements ISearchProvider { private readonly apiKey: string; constructor() { this.apiKey = env.{PROVIDER}_API_KEY ?? ''; if (!this.apiKey) { throw new Error('{PROVIDER}_API_KEY is required'); } } async search(query: string, options?: SearchOptions): Promise<SearchResult> { // Implementation } } -
Update Factory
- Edit
src/infrastructure/search/factory.ts - Add the new provider to the
functioncreateProvider - Add the provider enum value
- Edit
-
Update Environment
- Add
to{PROVIDER}_API_KEY.env.example - Add to the env schema in
src/config/env.ts
- Add
-
Update Schema
- Add provider to the engines enum in controller schemas
-
Test
- Run
to verify compilationnpm run typecheck - Create a basic integration test
- Run
Validation Checklist
- Provider implements
interfaceISearchProvider - Environment variable documented in
.env.example - Factory updated with new provider
- Controller enum includes new provider
- No TypeScript errors