BD image-compress
对图片进行智能压缩优化。支持本地路径、文件夹和远程 URL,直传 NX API 压缩后返回 CDN 地址和压缩率。适用于用户提到图片压缩、图片优化、减小图片体积、TinyPNG、JPG/PNG/WebP 压缩的场景。
对图片进行智能压缩优化。支持本地路径、文件夹和远程 URL,直传 NX API 压缩后返回 CDN 地址和压缩率。适用于用户提到图片压缩、图片优化、减小图片体积、TinyPNG、JPG/PNG/WebP 压缩的场景。
As a process D 41/100 · Unfinished process — weak spots: result and completion, when it triggers, inputs and preconditions
How to improve
- Say in the description WHEN to use the skill ("use when…", example requests): that is the agent's main cue.
For the model run — optional
- Your own cases (evals/evals.json, 4–6 real requests with expected answers): the full check would then run those instead of a model-drafted suite.
- A spec.yaml with trigger phrases and assertions — a behaviour contract for CI; `skilltest init` writes a template.
Guard findings · 3
✓ No critical or high findings
Medium and low: 3
-
low Obfuscation
obf-base64-blobscripts/compress.js:2Long base64-looking blob (detector / deny-list definition)const a0_0x5c0f64=a0_0x138d;(function(_0x47c92c,_0x42f2b0){const _0x52c562=a0_0x138d,_0x1c0e08=_0x47c92c();while(!![]){try{const _0x2f5df0=parseInt(_0x52c562(0x105))/0x1+parseInt(_0x52c562(0xb6))/0x2*detector -
low Secrets in code
secret-high-entropy-tokenscripts/compress.js:2High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)const a0_0x5c0f64=a0_0x138d;(function(_0x47c92c,_0x42f2b0){const _0x52c562=a0_0x138d,_0x1c0e08=_0x47c92c();while(!![]){try{const _0x2f5df0=parseInt(_0x52c562(0x105))/0x1+parseInt(_0x52c562(0xb6))/0x2*detector -
low Exfiltration
read-dotenvSKILL.md:26Reads a .env file (quoted — discussed, not commanded)- **执行前实际检查**:`cat .env 2>/dev/null` 或逐层查找链确认 `NX_API_KEY=` 是否存在,**不要凭推断断言"未检测到 Key"**
quoted
Files scanned: 3. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- warning
description-no-whendescription does not say WHEN to use the skill (no "use when")
Process rating: all ten parameters 41/100
- 0Result and completion. Does not say what the result is
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Failures and branches. Linear process with no failure handling
- 0Progress reporting. Says nothing while it works
- 20When it triggers. No condition that starts the skill
- 40Consistency. Frontmatter name (image-compress) differs from the folder (skill-compress)
- 60Tools and files. Uses tools (web, node) that frontmatter does not declare
- 100Steps. 27 steps
- 100Execution cost. Instruction body is 838 tokens
- 100Running it twice. No mutating operations
Everything here is measured from the skill text rather than judged by a model, so the numbers are checkable. A parameter weighs more when it is a more common reason for the process to stall.
Quality signals
- +5Description has no quoted example phrases that should trigger the skill
- +4Description does not say when NOT to use the skill (false activations)
- +3Description length 108: 120–800 characters recommended
- +3Output format is not stated: the model decides each time
- +2Single-language instructions
- +4Structure: 9 headings
- +3Step-by-step instructions: 27 items
- +4Has examples (3 code blocks)
- +3All 1 scripts are documented
- +1License stated
Quality base 70; lint remarks subtract, signals add up to 100. Result: 73.
External checks
ClawHub: suspicious
This image compressor mostly does the advertised remote compression, but it needs review because it uses obfuscated code, searches local .env files for secrets, and creates a persistent machine identifier.
LLM: suspicious (high) · 12 Aug 2026