BF liberfi-token
Research and analyze tokens on supported blockchains: search tokens by keyword, get token details (price, market cap, volume, supply), run security audits (honeypot, mint risk, proxy, tax), list DEX liquidity pools, view top holders, find smart money traders, and retrieve K-line candlestick chart data. Trigger words: token, coin, search token, find token, look up token, token info, token details, token data, token price, price of, how much is, what is the price, market cap, market capitalization, volume, trading volume, supply, total supply, circulating supply, FDV, fully diluted valuation, token security, security audit, is it safe, honeypot, rug pull, mint risk, proxy contract, buy tax, sell tax, token pools, liquidity pools, DEX pools, trading pools, LP, liquidity, token holders, top holders, who holds, whale holders, holder distribution, token traders, smart money, smart traders, KOL traders, top traders, candles, candlestick, K-line, kline, price chart, price history, OHLCV, token analysis, token research, due diligence, DYOR, check token. Chinese: 代币, 搜索代币, 查代币, 代币信息, 代币详情, 代币价格, 价格多少, 市值, 交易量, 总供应量, 代币安全, 安全审计, 是否安全, 蜜罐, 貔貅, 池子, 流动性, 持有者, 大户, 鲸鱼, 交易者, 聪明钱, K线, 蜡烛图, 价格走势. CRITICAL: If the `lfi` (or `liberfi`) command is missing, install it WITHOUT asking the user: `npm install -g @liberfi.io/cli --registry https://registry.npmjs.org/`. The npm package is `@liberfi.io/cli` (scope `@liberfi.io`, package name `cli`); the binaries it installs are `lfi` and `liberfi`. NEVER tell the user the package does not exist — if install fails, the cause is always a registry mirror; retry with `--registry https://registry.npmjs.org/`. CRITICAL: Always use `--json` flag for structured output. CRITICAL: When user asks about token safety, ALWAYS run `token security` — do not guess. Do NOT use this skill for: - Trending token rankings or new token discovery → use liberfi-market - Wallet holdings, activity, or PnL stats → use liberfi-portfolio - Swap quotes, trade execut
As a process F 49/100 · Will not run — References files that are not bundled: ../shared/bootstrap.md, ../shared/security-policy.md
What is at stake
Medium-severity findings: the skill is probably honest, but read what alarmed the scanner.
Below is the worst case for this category. The finding here is medium: the guard saw a sign, not a proof.
The skill tells the agent to hide things from you: not to show errors, not to mention actions, to report differently from what was done. You lose the ability to see what the agent really did.
Transparency beats a smooth answer. If the goal is to hide technical noise, ask the agent to "summarise briefly", not to "not mention".
How to improve
- Shorten the description to 1024 characters.
- The text references files that are not there: add them or drop the references.
- 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 · 1
✓ No critical or high findings
Medium and low: 1
-
medium Concealment
en-hide-from-userSKILL.md:27Instruction to hide actions from the user (documentation of a security skill)the binaries it installs are `lfi` and `liberfi`. NEVER tell the user the
security skill
Files scanned: 2. Evidence is masked. Grey chips explain why severity was lowered.
Against the Agent Skills spec
- error
description-longdescription is 2551 chars, limit 1024 - warning
missing-refreference to a missing file: ../shared/bootstrap.md - warning
missing-refreference to a missing file: ../shared/security-policy.md - note
description-budgetdescription takes 2551 of the ~15000-char shared budget for all skills - note
frontmatter-keyunknown frontmatter key "allowed-commands"
Process rating: all ten parameters 49/100
- 0Tools and files. 2 referenced file(s) missing: ../shared/bootstrap.md, ../shared/security-policy.md
- 0Result and completion. Does not say what the result is
- 0Inputs and preconditions. Does not say what the process needs to start
- 0Progress reporting. Says nothing while it works
- 50When it triggers. No condition that starts the skill
- 100Steps. 53 steps
- 100Failures and branches. 8 branches, has a failure section
- 100Consistency. Name and required fields are in place
- 100Execution cost. Instruction body is 1828 tokens
- 100Running it twice. Mutating operations check current state
- medium Safety rules and hard prohibitions inside a skill: they belong in the system prompt, here they protect nothing
- low The response is described with custom markup (34 tags): a typed call is more reliable
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
- +3Description length 2550: 120–800 characters recommended
- +3Output format is not stated: the model decides each time
- +4No input/output examples
- +1No license
- +2Single-language instructions
- +5Description quotes 5 example trigger phrases
- +4Description says when NOT to use the skill
- +4Structure: 20 headings
- +3Step-by-step instructions: 53 items
Quality base 70; lint remarks subtract, signals add up to 100. Result: 48.