SKILLEMALL.ai

BF claw-markdown-preview

Local Markdown preview skill. Trigger when the user explicitly asks to preview a markdown file — e.g. "preview this markdown file", "open markdown preview", "markdown preview", or the Chinese "预览这个 markdown 文件" / "打开 markdown 预览" / "markdown 预览一下".

ClawHub Agent Skills author: 天天修改 v1.4.15 MIT-0 17 files body ≈ 1 160 tokens Open the sourceclawhub.ai analyzed 2 d ago

Local Markdown preview skill.

As a process F 45/100 · Will not run — References files that are not bundled: images/img-xxx.png

ProcedureSoftware developmenttype and topics are labelled automatically from the skill text
JSON
Technical rating
B
87/100
safety, quality, tests
Safety 60%
89
Quality 40%
84
Run on models
none yet
Process rating
F
45/100
Will not run
References files that are not bundled: images/img-xxx.png
Tools and files w 18
0
Result and completion w 14
0
Inputs and preconditions w 11
0
the three weakest of ten parameters · all ten

How to improve

  1. The text references files that are not there: add them or drop the references.
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 · 11

✓ No critical or high findings

Medium and low: 11
  • low Secrets in code secret-high-entropy-token assets/lib/converter.js:282
    High-entropy token-like string (may be an id, hash or a credential)
    function conv…Svg(cssValue, bgSize) {
  • low Secrets in code secret-high-entropy-token assets/lib/converter.js:435
    High-entropy token-like string (may be an id, hash or a credential)
    var svgDataUri = conv…Svg(bgImage, bgSize);
  • low Dangerous commands cmd-background-process assets/lib/highlight.min.js:420
    Starts a background / autostarted process (string literal in code, not executed)
    built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","de
    code literal
  • low Obfuscation obf-hex-escape-chain assets/lib/markdown-it.min.js:2
    Escaped/char-code string obfuscation (detector / deny-list definition; security demo / example)
    !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownit=
    detectordemo
  • low Secrets in code secret-high-entropy-token assets/lib/markdown-it.min.js:2
    High-entropy token-like string (may be an id, hash or a credential) (detector / deny-list definition)
    !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).markdownit=
    detector
  • low Dangerous commands cmd-background-process scripts/preview_server.py:37
    Starts a background / autostarted process (string literal in code, not executed)
    macOS/Linux: 双 fork + setsid,成为独立 session leader(PPID=1)。
    code literal
  • low Dangerous commands cmd-background-process scripts/preview_server.py:45
    Starts a background / autostarted process
    os.setsid()
  • low Dangerous commands cmd-background-process SKILL.md:39
    Starts a background / autostarted process (quoted — discussed, not commanded)
    **第 1 步 —— 以独立进程方式启动服务(关键:必须脱离 WorkBuddy 托管后台任务树,否则对话闲置约 20 分钟服务会被回收而"断开"。脱离由 python 内部跨平台实现,不依赖 shell `setsid`):**
    quoted
  • low Dangerous commands cmd-background-process SKILL.md:42
    Starts a background / autostarted process
    # 单实例清理:只终止上一次本技能启动的预览实例(PID 文件精确定位),不误伤其他进程。整条命令以 python3 常驻结尾。(脱离托管由 python 内部实现跨平台双 fork/detach,不依赖 shell setsid,多行 if 块部分环境识别不到 python3)。
  • low Dangerous commands cmd-background-process SKILL.md:46
    Starts a background / autostarted process (quoted — discussed, not commanded)
    > 关键:脱离托管由 `preview_server.py` **内部自行实现**(macOS/Linux 用 `os.fork() + os.setsid()` 双 fork 成为独立 session leader,Windows 用 `subprocess.Popen` + `DETACHED_PROCESS` 启动独立实例),脚本自动判断、不依赖 shell 命令。效果与 shell `se
    quoted
  • low Dangerous commands cmd-background-process SKILL.md:116
    Starts a background / autostarted process
    - **常驻 + 心跳兜底**:服务脱离 WorkBuddy 托管常驻(跨平台,python 内部实现脱离,不依赖 shell setsid),不会因对话闲置 / 切窗口 / 睡眠被回收;页面每 5 秒心跳仅作兜底,关闭页面后最多等待 `--heartbeat-timeout` 秒(默认 120 分钟)才自停,刻意设长以避免后台标签页冻结 / 睡眠误杀

Files scanned: 17. Evidence is masked. Grey chips explain why severity was lowered.

Against the Agent Skills spec

  • warning missing-ref reference to a missing file: images/img-xxx.png

Process rating: all ten parameters 45/100

Will not run. References files that are not bundled: images/img-xxx.png
  • 0Tools and files. 1 referenced file(s) missing: images/img-xxx.png
  • 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
  • 100Steps. 20 steps
  • 100When it triggers. States when to use and when not to
  • 100Consistency. Name and required fields are in place
  • 100Execution cost. Instruction body is 1160 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

  • +4Description does not say when NOT to use the skill (false activations)
  • +3Output format is not stated: the model decides each time
  • -2localhost URLs: will not work for another user
  • +1No license
  • +2Single-language instructions
  • +5Description quotes 6 example trigger phrases
  • +3Description length 248: enough signal without eating the budget
  • +4Structure: 10 headings
  • +3Step-by-step instructions: 20 items
  • +4Has examples (2 code blocks)
  • +3All 1 scripts are documented

Quality base 70; lint remarks subtract, signals add up to 100. Result: 84.

External checks

ClawHub: suspicious
This is a coherent Markdown preview tool, but its running localhost server can overwrite the selected Markdown file through unauthenticated local web endpoints.
LLM: suspicious (high) · 17 Jul 2026