search — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited search (Agent Skill) and scored it 96/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 1 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 1 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are in AUTONOMOUS MODE. Do NOT ask questions. Detect everything from the codebase and proceed.
PURPOSE: Set up production-ready full-text search. Auto-detect the project's framework and the requested search provider. Install the SDK, create a search service with index/search/delete operations, build a search UI component, configure real-time index sync, and set up ranking and filtering.
TASK: $ARGUMENTS
============================================================ PHASE 0: DETECTION ============================================================
============================================================ PHASE 1: SDK INSTALLATION ============================================================
Install the correct SDK for the detected provider and framework:
ALGOLIA:
algoliasearch, @algolia/client-searchreact-instantsearch (React), vue-instantsearch (Vue), instantsearch.js (vanilla)algolia_helper_flutter or HTTP clientalgoliasearchgithub.com/algolia/algoliasearch-client-go/v4TYPESENSE:
typesense, typesense-instantsearch-adapter (for InstantSearch UI)typesense dart packagetypesensegithub.com/typesense/typesense-goMEILISEARCH:
meilisearch, @meilisearch/instant-meilisearch (for InstantSearch UI)meilisearchmeilisearchgithub.com/meilisearch/meilisearch-goELASTICSEARCH / OPENSEARCH:
@elastic/elasticsearch or @opensearch-project/opensearchelasticsearch or opensearch-pygithub.com/elastic/go-elasticsearch/v8After installing:
SEARCH_HOST, SEARCH_API_KEY, SEARCH_ADMIN_KEY.ALGOLIA_APP_ID, ALGOLIA_SEARCH_KEY, ALGOLIA_ADMIN_KEY.============================================================ PHASE 2: SEARCH SERVICE ============================================================
Create a search service that abstracts the provider.
FILE LOCATION:
src/lib/search.ts or src/services/search.tslib/services/search_service.dartapp/services/search.pyinternal/search/search.goTHE SERVICE MUST EXPOSE:
init(config) Initialize the search client. Validate connection on startup.
createIndex(indexName, options?) Create an index with settings. Options: primaryKey, searchableAttributes, filterableAttributes.
configureIndex(indexName, settings) Update index settings: searchable fields, filterable fields, sortable fields, ranking rules, synonyms, stop words, typo tolerance.
indexDocument(indexName, document) Add or update a single document in the index.
indexDocuments(indexName, documents) Bulk index an array of documents. Use batch/bulk API for performance.
deleteDocument(indexName, documentId) Remove a single document from the index.
deleteIndex(indexName) Delete an entire index and its documents.
search(indexName, query, options?) Full-text search. Options: filters, facets, page, hitsPerPage, attributesToHighlight, attributesToRetrieve, sort. Returns: { hits: [], totalHits, page, totalPages, processingTimeMs, facets? }.
getDocument(indexName, documentId) Retrieve a specific document by ID.
getIndexStats(indexName) Get document count and index size.
IMPLEMENTATION REQUIREMENTS:
============================================================ PHASE 3: INDEX CONFIGURATION ============================================================
For each detected data model, configure an optimized search index:
search/synonyms.json.Write index configuration to search/index-config.ts (or equivalent) as code, not raw JSON, so it can be version-controlled and reviewed.
============================================================ PHASE 4: REAL-TIME INDEX SYNC ============================================================
Set up automatic index synchronization when data changes:
PRISMA:
MONGOOSE:
FIRESTORE:
SUPABASE:
TYPEORM:
FILE: src/services/search-sync.ts (or equivalent)
FILE: scripts/reindex.ts (or equivalent)
npx ts-node scripts/reindex.ts --index=products============================================================ PHASE 5: SEARCH UI COMPONENT ============================================================
Build a search UI appropriate for the framework:
REACT / NEXT.JS:
src/components/Search.tsx with:VUE:
src/components/SearchPanel.vue with equivalent functionality.FLUTTER:
lib/widgets/search_bar.dart and lib/screens/search_results_screen.dart.ANGULAR:
src/app/components/search/ with search component.ALL FRAMEWORKS:
============================================================ PHASE 6: PAGINATION & FILTERING ============================================================
============================================================ PHASE 7: VALIDATION ============================================================
============================================================ DO NOT ============================================================
============================================================ OUTPUT ============================================================
NEXT STEPS:
After search is set up:
/ship to continue building features with search already integrated."/analytics-tracking to track search queries and click-through rates."/realtime to add live search result updates when new content is indexed."/perf to benchmark search latency and optimize index configuration."/ux to audit the search UI for accessibility and usability."============================================================ SELF-HEALING VALIDATION (max 3 iterations) ============================================================
After completing the integration, validate:
IF STILL FAILING after 3 iterations:
============================================================ SELF-EVOLUTION TELEMETRY ============================================================
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
~/.claude/projects/skill-telemetry.md in that memory directoryEntry format:
### /search — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.