Grades are a hygiene check, not a security guarantee.

Claude Code, Skill

Awesome Skills

Agent Skills for modern software development frameworks with best practices and coding standards.

Compatibility: Not stated.

Grade D

Two or more Medium findings, or a High finding. Only try it in a sandbox.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

Rescanned at commit 86a055dcae16, unchanged since the check below.

INSTALL_REMOTE_SCRIPT

Why this grade

  • INSTALL_REMOTE_SCRIPT High

    Fetches a script from the network and runs it (a pipe to a shell, or an install hook with a URL).

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 8 curl -sSL https://get.docker.com/ | sh

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

If you think this grade is wrong, email [email protected] with the entry link and your evidence. We aim to acknowledge within two working days and decide within seven. If we confirm an error, we aim to correct it within 24 hours of confirming it. These are aims, not guarantees.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Note

    requests shell access. The manifest names this permission.

    PERMISSION_SHELL_DECLARED

    skills/eino/references/docs_examples/adk/multiagent/deep/operator.go, line 68

    cmd := exec.CommandContext(ctx, shellCmd[0], shellCmd[1:]...)

    skills/eino/references/docs_examples/adk/multiagent/integration-excel-agent/operator.go, line 68

    cmd := exec.CommandContext(ctx, shellCmd[0], shellCmd[1:]...)

    skills/eino/references/docs_examples/devops/visualize/mermaid.go, line 391

    cmd := exec.Command("mmdc", "-i", input, "-o", output)

    Show more

    skills/eino/references/docs_examples/flow/agent/deer-go/biz/mcps/python/server.py, line 159

    process = subprocess.run(

  • Install and update

    Serious

    install fetches a script from the network.

    INSTALL_REMOTE_SCRIPT

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 8

    curl -sSL https://get.docker.com/ | sh

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 85

    curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 89

    当然,也可以用 `curl https://setup.ius.io | sh` 命令,更新为最新的 `git` 源,然后直接使用 yum 安装 git 和 gitlab-runner。

    Show more

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 92

    $ curl https://setup.ius.io | sh

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 504

    $ curl https://setup.ius.io | sh

    skills/hyperf/references/zh-cn/tutorial/docker-swarm.md, line 566

    curl -sSL https://get.docker.com/ | sh

  • Network

    Concern

    can reach a host that is not written as a fixed address. can reach download.workerman.net. The description does not name that host.

    NETWORK_NO_FIXED_HOST NETWORK_UNNAMED_HOST

    install-php-webman.sh, line 111

    HTTP_CODE=$(curl -sI "$PHP_URL" 2>/dev/null | head -1 | awk '{print $2}')

    install-php-webman.sh, line 130

    curl -# "$PHP_URL" -o "$PHP_FILENAME"

    install-php-webman.sh, line 170

    curl -# -o "$COMPOSER_BIN" https://download.workerman.net/php/composer.phar

    Show more

    install-php-webman.sh, line 181

    curl -#o "$TEMP_CA_CERT" https://download.workerman.net/php/ca-certificates.crt

    skills/eino/references/docs_examples/adk/intro/http-sse-service/README.md, line 107

    curl -N 'http://localhost:8080/chat?query=tell me a short story'

    skills/eino/references/docs_examples/adk/intro/http-sse-service/README.md, line 175

    with requests.get(url, stream=True) as response:

    skills/eino/references/docs_examples/adk/intro/http-sse-service/main.go, line 68

    log.Println("Try: curl -N 'http://localhost:8080/chat?query=tell me a short story'")

    skills/eino/references/docs_examples/components/model/httptransport/curlrt.go, line 152

    curl := c.buildCurl(req, reqBody)

    skills/eino/references/docs_examples/components/model/httptransport/curlrt.go, line 154

    c.ctxLogger.Printf(req.Context(), "[curl request] %s", curl)

    skills/eino/references/docs_examples/components/model/httptransport/curlrt.go, line 156

    c.logger.Printf("[curl request] %s", curl)

    skills/hyperf/references/zh-cn/amqp.md, line 285

    wget https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases/download/3.9.0/rabbitmq_delayed_message_exchange-3.9.0.ez

    skills/hyperf/references/zh-cn/controller.md, line 34

    $ curl 'http://127.0.0.1:9501/?target=Hyperf'

    skills/hyperf/references/zh-cn/watcher.md, line 58

    wget https://github.com/emcrisostomo/fswatch/releases/download/1.14.0/fswatch-1.14.0.tar.gz \

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_DOTENV

    skills/eino/SKILL.md, line 60

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 135

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 187

    APIKey: os.Getenv("OPENAI_API_KEY"),

    Show more

    skills/eino/SKILL.md, line 253

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 309

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 367

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 435

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/SKILL.md, line 480

    APIKey: os.Getenv("OPENAI_API_KEY"),

    skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/env/env.go, line 29

    log.Fatalf("❌ [ERROR] Error loading .env file: %v", err)

    skills/eino/references/docs_examples/quickstart/eino_assistant/pkg/env/env.go, line 37

    log.Fatalf("❌ [ERROR] env [%s] is required, but is not set now, please check your .env file", env)

    skills/hyperf/references/zh-cn/phar.md, line 48

    php bin/hyperf.php phar:build -M .env

    skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/README.md, line 74

    Alternatively, you can create a `.env` file in the project root with these variables.

    skills/eino/references/docs_examples/adk/human-in-the-loop/1_approval/README_ZH.md, line 74

    或者,您可以在项目根目录创建一个 `.env` 文件来设置这些变量。

    skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/README.md, line 53

    Alternatively, you can create a `.env` file in the project root with these variables.

    skills/eino/references/docs_examples/adk/human-in-the-loop/2_review-and-edit/README_ZH.md, line 53

    或者,您可以在项目根目录创建一个 `.env` 文件来设置这些变量。

    skills/eino/references/docs_examples/adk/human-in-the-loop/3_feedback-loop/README.md, line 58

    Alternatively, you can create a `.env` file in the project root with these variables.

  • Agent instructions

    Pass

    No instruction to ignore earlier instructions or to hide a step.

  • Obfuscation

    Concern

    contains an encoded blob in a file that should be readable.

    OBFUSCATION_ENCODED_BLOB

    skills/hyperf/references/zh-cn/db/gen.md, line 1

    # 模型创建脚本

    skills/hyperf/references/zh-cn/dag.md, line 23

    [![](https://mermaid.ink/img/eyJjb2RlIjoic3RhdGVEaWFncmFtLXYyXG4gICAgWypdIC0tPiBBXG4gICAgQSAtLT4gQlxuICAgIEEgLS0-IENcbiAgICBBIC0tPiBEXG4gICAgRCAtLT4gR1xuICAgIEMgLS0-IEdcbiAgICBDIC0

    skills/hyperf/references/zh-cn/imgs/hyperf-events.svg, line 3

    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1388px" height="861px" viewBox="-0.5 -0.5 1388 861" content="&lt;mxfile host

    Show more

    skills/laravel12/references/mcp.md, line 1431

    ![Authorization screen example](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABOAAAAROCAMAAABKc73cAAAA81BMVEX////7+/v4+PgXFxfl5eUKCgr9/f1zc3P29vby8vLs7Ozj4+Pp6env7++RkZF5eXlRUVF9fX

    skills/webman/references/en/components/pay.md, line 31

    'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWJKrQ6SWvS6niI+4vEVZiYfjkCfLQfoFI2nCp9ZLDS42QtiL4Ccyx8scgc3nhVwmVRte8f57TFvGhvJD0upT4O5O/lRxmTjechXAorirVdAODpOu0m

    skills/webman/references/en/components/pay.md, line 33

    'private_key' => 'MIIEpAIBAAKCAQEAs6+F2leOgOrvj9jTeDhb5q46GewOjqLBlGSs/bVL4Z3fMr3p+Q1Tux/6uogeVi/eHd84xvQdfpZ87A1SfoWnEGH5z15yorccxSOwWUI+q8gz51IWqjgZxhWKe31BxNZ+prnQpyeMBtE25fXp5n

    skills/webman/references/zh-cn/components/pay.md, line 31

    'ali_public_key' => 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuWJKrQ6SWvS6niI+4vEVZiYfjkCfLQfoFI2nCp9ZLDS42QtiL4Ccyx8scgc3nhVwmVRte8f57TFvGhvJD0upT4O5O/lRxmTjechXAorirVdAODpOu0m

    skills/webman/references/zh-cn/components/pay.md, line 33

    'private_key' => 'MIIEpAIBAAKCAQEAs6+F2leOgOrvj9jTeDhb5q46GewOjqLBlGSs/bVL4Z3fMr3p+Q1Tux/6uogeVi/eHd84xvQdfpZ87A1SfoWnEGH5z15yorccxSOwWUI+q8gz51IWqjgZxhWKe31BxNZ+prnQpyeMBtE25fXp5n

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit 86a055dcae16. requests shell access. The manifest names this permission. install fetches a script from the network. can reach a host that is not written as a fixed address. can reach download.workerman.net. The description does not name that host. reads a credential or environment file. contains an encoded blob in a file that should be readable.

Date and source

Date checked:

View source

github.com

Commit graded: 86a055dcae1698b116a121a8ab6727f18d3b57b0

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen