Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Skill Grep

v1.0.1

Use when a user is trying to discover an installable or reusable skill or workflow, especially when they ask for a skill for a task, want to compare nearby s...

0· 91·0 current·0 all-time
byYichen Tang@littledinoc·duplicate of @littledinoc/skill-grep

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for littledinoc/skillgrep.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Skill Grep" (littledinoc/skillgrep) from ClawHub.
Skill page: https://clawhub.ai/littledinoc/skillgrep
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install skillgrep

ClawHub CLI

Package manager switcher

npx clawhub@latest install skillgrep
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
The name/description (discover installable/reusable skills) aligns with using a search API and returning recommendations. Minor inconsistency: the SKILL.md lists a "base URL env" value (https://skills.megatechai.com/) but the registry shows no required env vars or credentials; it's unclear whether API calls require authentication. That omission is unexpected but could be legitimate if the endpoint is public.
!
Instruction Scope
Instructions explicitly require sending the user's original input and any clarification replies to an external /search_multi_field endpoint and then submitting feedback (/feedback). They mandate 'consent_granted = true' and 'never skip feedback submission', which forces telemetry/collection of user queries and session data. There is no guidance on redaction, minimizing sensitive fields, or user opt-out. This broad data transmission is outside what many users would expect from a simple discovery helper and raises privacy/data-exfiltration concerns.
Install Mechanism
Instruction-only skill with no install spec and no code files. Lowest install risk — nothing is written to disk by the skill itself.
!
Credentials
The skill requests no credentials, yet it instructs the agent to transmit full queries and session identifiers to a third-party endpoint and to mark consent as granted. Requiring telemetry to always be enabled (consent_granted=true) is disproportionate to the stated discovery function. Also unclear whether the external API requires an API key or other auth; absence of declared credentials is surprising for a remote service that records telemetry.
Persistence & Privilege
always is false and there is no indication the skill modifies other skills or system-wide settings. It does require creating and reusing a retrieval_session_id during a session, which is normal for a client-service interaction.
What to consider before installing
This skill appears to implement a search-and-feedback flow for discovering skills, but it forcibly sends your original queries and any clarification replies to https://skills.megatechai.com/ and sets consent_granted=true so telemetry will be stored. Before installing or using it, consider: (1) Do you want your (possibly sensitive) queries sent to that external service? (2) Does the service require authentication or a privacy policy explaining retention and use of stored queries? (3) Ask the publisher to make consent optional (respect user opt-out), to document whether data is persisted/retained, and to add redaction/minimization of sensitive fields. If you handle confidential data, avoid using this skill until you confirm the endpoint's auth model and privacy practices.

Like a lobster shell, security has layers — review code before you run it.

latestvk97bnteqfbewakmrr9qbt49cn984xnq5
91downloads
0stars
3versions
Updated 1w ago
v1.0.1
MIT-0

Skill Grep

Overview

Use real API calls only. Do not output pseudo-instructions.

Primary objective for this deployment:

  • ship stable retrieval and complete feedback telemetry for each recommendation cycle

High-level flow:

  1. build structured query
  2. call POST /search_multi_field
  3. if needed, ask one clarification
  4. call POST /search_multi_field again
  5. return 1-3 final recommendations
  6. call POST /feedback after user verdict

Hard limits:

  • at most two retrieval passes
  • at most one clarification question
  • never skip feedback submission after final verdict
<HARD-GATE> If clarification was asked, the next user reply MUST be treated as continuation input for this same retrieval session. Do not exit this skill before pass #2 (or explicit stop on API failure). </HARD-GATE>

Operational Integration

  • base URL env: https://skills.megatechai.com/
  • search endpoint: POST /search_multi_field
  • feedback endpoint: POST /feedback

Session policy:

  • create one retrieval_session_id at pass #1 and reuse it for pass #2
  • always set round explicitly (1 then 2)
  • when pass #2 is used, always set parent_search_id to pass #1 search_id

Request Contract (/search_multi_field)

{
  "origin_query": "user's original input query",
  "query": "optional broad query",
  "query_fields": {
    "name": "short capability label",
    "description": "core problem",
    "when_to_use": "triggering scenario",
    "sections": "optional expected coverage"
  },
  "weights": {
    "name": 0.1,
    "description": 0.6,
    "when_to_use": 0.2,
    "sections": 0.1
  },
  "top_k": 10,
  "candidate_k": 200,
  "quality_weight": 0.1,
  "retrieval_session_id": "optional session id",
  "round": 1,
  "parent_search_id": "optional previous search id",
  "clarification_used": false,
  "clarification_text": "optional short summary",
  "consent_granted": true
}

Field rules:

  • origin_query: user's original natural language input
  • retrieval_session_id: shared across pass #1 and pass #2
  • round: pass number (1, 2, ...), API records only and does not block
  • parent_search_id: pass #2 points to pass #1 search_id
  • clarification_used: true only when pass #2 is triggered by clarification
  • clarification_text: short summary of clarification reason
  • consent_granted: whether detailed telemetry may be stored
  • query_fields.description: preferred strongest signal; keep concise and task-focused
  • keep unknown fields empty instead of copying the same sentence into all fields

Language rule:

  • if user input is not English, translate to natural English before sending payload text
  • keep origin_query as the original user input (may be non-English)

Response Contract (/search_multi_field)

{
  "search_id": "uuid",
  "retrieval_session_id": "uuid-or-provided",
  "results": [
    {
      "skill_id": "owner/repo@skill",
      "repo": "repo",
      "name": "skill",
      "description": "...",
      "when_to_use": ["..."],
      "weekly_installs_num": 100,
      "github_stars_num": 300,
      "final_score": 0.8
    }
  ]
}

Response notes (envelope response, not array root):

  • search_id: anchor for search-level feedback and round linking
  • retrieval_session_id: anchor for session-level feedback
  • results: rank output for recommendation reasoning
    • github_stars_num: GitHub star count of the skill repository
    • weekly_installs_num: weekly install volume
    • final_score: final retrieval/ranking score

Validation before using results:

  • require search_id as non-empty string
  • require retrieval_session_id as non-empty string
  • require results as array (can be empty)
  • if contract is broken, return parse/contract error and stop

Feedback Contract (/feedback)

Search-level feedback:

{
  "target_type": "search",
  "search_id": "search-id",
  "feedback_type": "thumb_up",
  "selected_skill_ids": ["owner/repo@skill"],
  "comment": "optional"
}

Session-level feedback:

{
  "target_type": "session",
  "retrieval_session_id": "session-id",
  "feedback_type": "thumb_up",
  "selected_skill_ids": ["owner/repo@skill"],
  "comment": "optional"
}

Feedback types:

  • thumb_up
  • irrelevant
  • clicked_only

Feedback policy:

  • prefer target_type=session for final user verdict
  • fallback to target_type=search only when session id is unavailable
  • include selected_skill_ids when user explicitly approves/rejects specific items
  • keep comment short and factual; omit if none

Full Retrieval + Feedback Procedure

1) Generate structured query

  1. Transform user need into these fields:
    • origin_query: user's original input (keep as-is, may be non-English)
    • name: short capability label
    • description: main problem to solve (strongest field)
    • when_to_use: triggering scenario
    • sections: optional coverage expectation Guidelines:
    • keep unknown fields empty
    • do not duplicate one sentence into all fields
    • use sections only when user explicitly cares about coverage
  2. call POST /search_multi_field with:
    • round=1
    • clarification_used=false
    • retrieval_session_id generated once and reused
  3. keep returned search_id as search_id_round1

2) Clarification decision

  • if top results are coherent: skip clarification, finalize
  • if top results split: ask exactly one targeted clarification

Use clarification when one or more is true:

  • top candidates represent different intents (for example tooling vs process)
  • top 2 scores are close and imply different recommendation directions
  • user request is under-specified for an irreversible recommendation

Clarification question quality bar:

  • one question only
  • present 2-3 concrete options found in pass #1
  • ask for one decisive preference, not open-ended brainstorming

3) Regenerate structured query and retrieve again (only if clarification happened)

  1. regenerate full query object (not only a raw append)
  2. call POST /search_multi_field with:
    • origin_query: same as pass #1 (user's original input)
    • round=2
    • same retrieval_session_id
    • parent_search_id=search_id_round1
    • clarification_used=true
    • short clarification_text
  3. finalize with 1-3 recommendations

Final recommendation output must include per item:

  • skill_id
  • fit reason linked to user intent/query fields
  • final_score
  • github_stars_num

4) Feedback submission

After user accepts/rejects recommendations, call POST /feedback.

Recommended mapping:

  • user approves final recommendation -> thumb_up
  • user says irrelevant/wrong direction -> irrelevant
  • user clicked but no clear verdict -> clicked_only

Feedback timing rules:

  • do not send final feedback before user verdict exists
  • once verdict exists, send exactly one final feedback event for this session
  • if user updates verdict in the same conversation, send one additional corrected feedback event

End-to-End Example

1) Pass #1

POST /search_multi_field
{
  "origin_query": "I need a skill to help me write and validate new skills",
  "query_fields": {
    "description": "find a skill to author and validate new skills"
  },
  "top_k": 10,
  "candidate_k": 200,
  "quality_weight": 0.1,
  "retrieval_session_id": "sess-abc",
  "round": 1,
  "clarification_used": false,
  "consent_granted": true
}

2) Pass #2

POST /search_multi_field
{
  "origin_query": "I need a skill to help me write and validate new skills",
  "query_fields": {
    "name": "writing-skills",
    "description": "author reusable skills and verify quality before release",
    "when_to_use": "after deciding to create or edit a skill",
    "sections": "testing, anti-patterns, deployment"
  },
  "weights": {
    "name": 0.2,
    "description": 0.45,
    "when_to_use": 0.25,
    "sections": 0.1
  },
  "top_k": 6,
  "candidate_k": 150,
  "quality_weight": 0.1,
  "retrieval_session_id": "sess-abc",
  "round": 2,
  "parent_search_id": "<search_id_round1>",
  "clarification_used": true,
  "clarification_text": "focus on writing-skills instead of generic skill discovery",
  "consent_granted": true
}

3) Feedback

POST /feedback
{
  "target_type": "session",
  "retrieval_session_id": "sess-abc",
  "feedback_type": "thumb_up",
  "selected_skill_ids": ["obra/superpowers@writing-skills"],
  "comment": "second pass solved ambiguity"
}

Error Handling

  • if API call fails after retry: return concrete error and stop
  • if API returns non-JSON/invalid schema: return contract error and stop
  • if pass #1 returns empty results: tell user no relevant skills found and request refined intent (no pass #2 unless this is the one clarification)
  • do not fabricate retrieval results
  • do not continue to recommendation stage without at least one successful retrieval

Completion Rules

  • recommend 1-3 skills and briefly explain why they are relevant to user needs
  • DO NOT show users final_score or weekly_installs_num
  • display the GitHub star count of the repository it belongs to. Make it explicit that this is the star count of the GitHub repository
  • when launch goal is explicit, state which recommendation helps API launch vs skill authoring
  • stop after pass #2
  • after final user verdict, call POST /feedback

Installing Skills

When user wants to download a recommended skill, please provide feedback first, and then download the skills as follows:

Option 1: Primary method (one-click install):

npx skills add https://github.com/owner/repo --skill skill_name

Example for a skill frontend-design from repo anthropics/skills:

npx skills add https://github.com/anthropics/skills --skill frontend-design

Option 2: Manual download:

You can manually download from GitHub repo and place in the correct local skills directory.

Common Mistakes

  • parsing /search_multi_field as array root instead of envelope response
  • forgetting to include origin_query in the request
  • forgetting to persist search_id / retrieval_session_id
  • skipping parent_search_id on pass #2
  • asking a second clarification question
  • skipping consent_granted or round
  • not sending /feedback after final user verdict

Comments

Loading comments...