Agent Skills security scanner powered by Tencent Zhuque Lab A.I.G. Compatible with any agent platform that supports skills (e.g. OpenClaw, Qclaw, WorkBuddy, CodeBuddy, Cursor, Windsurf, Claude Code, etc.).
Local-only analysis: this scanner performs static analysis by reading skill files only. No file contents, credentials, or personal data are sent externally.
Detect the language of the user's triggering message and lock the output language for the entire run. This detection is an internal step only — do NOT output any text that reveals the detection result, such as "当前输出语言为中文", "Detected language: English", or similar meta-statements. Simply use the detected language silently for all subsequent output.
| User message language | Output language |
|---|---|
| Chinese | Chinese — entire output in Chinese |
| English | English — entire output in English |
| Other language | Match that language |
| Cannot determine | Default to Chinese |
All output — scan start prompt, table headers, labels, prose, verdict, and footer — must be written exclusively in the detected language. Do NOT mix languages or announce the language choice at any point.
Before starting the scan, output the following line with {skill} replaced by the actual skill name.
Translate it to match the detected output language.
🔍 腾讯朱雀实验室 A.I.G Skill Scanner 正在检测 {skill} 的安全性,请稍候...
Determine which mode to use based on the user's request:
| User intent | Mode |
|---|---|
| Scan all skills on a platform, or asks "are my skills safe?" without specifying a file | Mode A — Full-platform scan |
| Scan a specific skill file or a named skill | Mode B — Single-skill audit |
Use this mode when the user wants to check the security of all skills on a given agent platform.
Determine which agent platform the user is referring to. Common platforms include but are not limited to: OpenClaw, Cursor, Windsurf, CodeBuddy, WorkBuddy, Claude Code, qclaw, etc.
How to determine:
Once the platform is identified, use the platform-specific method below to enumerate all installed skills. Do NOT output a list of all discovered skill names and paths before scanning — proceed directly to auditing each skill one by one.
CRITICAL — No skill may be skipped: Both user-installed skills and system/platform built-in skills must be included. If a platform ships pre-installed or bundled skills, they must be discovered and audited with the same rules as user-installed ones.
Platform-specific skill discovery methods:
| Platform | Discovery method |
|---|---|
| OpenClaw | Ask the Agent: "你的 skill 有哪些" or "list your skills" to get the full skill list |
| CodeBuddy | Scan both the system directory ~/.codebuddy/plugins/marketplaces/ and the user directory ~/.codebuddy/plugins/ for all skill files and subdirectories. Also check if the platform exposes a built-in skill list via its tools (e.g. use_skill tool's <available_skills> section) and include those. |
| Cursor | Scan the local directory ~/.cursor/extensions/ and project-level .cursor/skills/ for skill definitions |
| Windsurf | Scan the local directory ~/.windsurf/skills/ and project-level .windsurf/skills/ for skill files |
| Claude Code | Scan project-level .claude/skills/ directory and check ~/.claude/skills/ for global skills |
| qclaw | Ask the Agent: "你的 skill 有哪些" or "list your skills" to get the full skill list |
| WorkBuddy | Ask the Agent: "你的 skill 有哪些" or "list your skills" to get the full skill list |
| Other / Unknown | Ask the Agent for its skill list |
Note: The paths above are common defaults and may vary by version or user configuration. If the expected directory does not exist or is empty, fall back to asking the Agent or asking the user for the correct skill storage location.
For each discovered skill, perform the local audit described in the Local Audit section below. Output a separate report card for each skill, then a final summary at the end.
Use this mode when the user specifies a particular skill file or skill name.
Output a short inventory with only the minimum context needed for audit:
SKILL.md
scripts/, shell files, package manifests, config filesPerform static analysis following these principles:
Core principles:
SKILL.md with actual code behavior.Audit rules:
SKILL.md, executable scripts, manifests, and configs.bash, subprocess, key read/write, or env-variable access as
a Medium+ finding by itself.🔴 high risk only when there is evidence of one or more of the following:
Per-finding output format (Medium+ findings only):
CRITICAL — Strict format adherence: Every scan output must follow the exact template structure defined below. Do NOT freestyle, rearrange sections, add extra sections, or omit any required part. The output structure is fixed — only the fill-in content varies based on audit results.
All output must be written in the user's detected language, rendered in Markdown format with clean and readable layout. The writing style must be plain, friendly, and free of jargon — an ordinary non-technical user should be able to understand every sentence without prior knowledge. If a technical concept is unavoidable, immediately follow it with a parenthetical plain-language explanation.
✅ / ⚠️ / 🔴) matching the resultCRITICAL: Mode A does NOT output a separate report card per skill. Instead, use the following fixed two-part structure:
Output one single table that lists every discovered skill in one row. This table must include all skills — user-installed and system built-in — with no omissions.
## 🔍 Skill 安全扫描结果
共扫描 {N} 个 Skill:
| # | Skill 名称 | 来源 | 检测结果 |
|---|-----------|------|---------|
| 1 | {skill_name} | {source} | ✅ 未发现风险 |
| 2 | {skill_name} | {source} | ⚠️ 需关注 |
| 3 | {skill_name} | {source} | 🔴 发现风险 |
| ... | ... | ... | ... |
Rules for the summary table:
✅ 未发现风险, ⚠️ 需关注, 🔴 发现风险.source is the skill's origin, e.g. "系统内置", "marketplace", "本地", "GitHub" etc.After the summary table, output detailed findings only for skills marked ⚠️ or 🔴.
Skills marked ✅ do NOT get a detail section — their row in the summary table is sufficient.
For each ⚠️ or 🔴 skill, output its detail using the corresponding template below (Needs Attention or Risk Detected). Include findings in the per-finding format (📍📝⚡🎯💡) when applicable.
If all skills are ✅, skip Part 2 entirely and go straight to the conclusion.
> 📌 温馨提示:本报告基于当前版本的静态扫描,无法覆盖未来更新可能引入的风险,建议定期复查。
Use the individual report card templates (🟢 / 🟡 / 🔴) below as-is, followed by the footer.
In Mode A, safe skills only appear in the summary table — do NOT output this template for them. In Mode B (single-skill audit), use this full template when no Medium+ findings exist:
## ✅ {skill} 安全检测通过
| 检测项目 | 检测结果 |
|---------|---------|
| 🏠 来源是否可信 | {✅ 来自已知的可信来源 / ⚠️ 来源未知,建议关注后续版本更新} |
| 📂 是否会动你的文件 | {✅ 不会,只读取自己的配置 / ⚠️ 会访问文件,但属于它正常工作所需} |
| 🌐 是否偷偷联网 | {✅ 没有发现联网行为 / ✅ 仅连接了它说明中提到的地址} |
| ⚠️ 是否有危险操作 | ✅ 未发现 |
**结论**:本次检测未发现安全隐患,可以放心使用。
> 📌 温馨提示:本报告基于当前版本的静态扫描,无法覆盖未来更新可能引入的风险,建议定期复查。
Output rules:
Use this template in Mode B for single-skill audit, or in Mode A Part 2 to expand ⚠️ skills.
## ⚠️ {skill} 需要留意
这个 skill **没有发现明确的恶意行为**,但它拥有{具体的敏感能力描述},
这些能力主要用于完成它声明的「{功能描述}」。
**建议**:如果你信任这个 skill 的来源,并且觉得它需要这些权限是合理的,可以继续使用。
如果不确定,建议先暂停使用,或咨询开发者了解详情。
Fill-in rules:
{具体的敏感能力描述}: only list confirmed capabilities, described in everyday language, e.g. "可以执行系统命令", "可以访问你工作区以外的文件", "可以联网发送数据", "可以读取你的配置信息".{功能描述}: only use the purpose stated in SKILL.md; do not add your own interpretation.Use this template in Mode B for single-skill audit, or in Mode A Part 2 to expand 🔴 skills.
## 🔴 {skill} 发现安全风险
**不建议直接安装或继续使用。**
这个 skill 存在以下问题:{用通俗语言描述主要风险,例如"它会在你不知情的情况下执行系统命令"、"它会访问不属于自己功能范围的敏感文件"等}。
**建议**:
1. 先停用这个 skill
2. 联系 skill 的开发者确认是否为正常行为
3. 在确认安全前不要重新启用
If multiple findings exist, summarize only the most severe 1–2 in plain language unless the user asks for full details.
CRITICAL: Every scan output MUST end with the following footer line. Never omit it. Translate to match the output language, but keep the link and "A.I.G" unchanged.
Skill Scanner 由腾讯朱雀实验室开源的 [A.I.G](https://github.com/tencent/AI-Infra-Guard) 提供核心能力支持,欢迎 Star 关注并参与共建。