Grades are a hygiene check, not a security guarantee.

Claude Code, Skill

Market Research Skills

Claude Skills collection for market research, equity research, and investment analysis.

Compatibility: Not stated.

Grade B

Minor issues only, no Medium or High. Worth a quick look at the findings below before installing.

Graded by PlugVetRubric v2

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

Rescanned at commit 8e7ad7a5220d, unchanged since the check below.

PERMISSION_DELETE_FILES NETWORK_NO_FIXED_HOST SECRETS_PATH_DOTENV SECRETS_ENV_READ

Why this grade

  • PERMISSION_DELETE_FILES Low

    Contains a call that can delete files.

    skills/local-vault/scripts/sync.py, line 550 shutil.rmtree(img_dir, ignore_errors=True)

  • NETWORK_NO_FIXED_HOST Low

    Makes a network call whose host is not written as a fixed address.

    skills/local-vault/scripts/mineru_client.py, line 156 resp = requests.put(url, data=f, timeout=300) # OSS URL 不带 token,直接用 requests

  • SECRETS_PATH_DOTENV Low

    Mentions a .env file.

    skills/local-vault/scripts/config.py, line 1 """配置常量与 .env 加载。

  • SECRETS_ENV_READ Note

    Reads an environment variable whose name contains KEY, SECRET, TOKEN, PASSWORD or CREDENTIAL.

    skills/local-vault/scripts/config.py, line 35 MINERU_TOKEN = os.getenv("MINERU_TOKEN", "")

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.

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

    Concern

    can delete files.

    PERMISSION_DELETE_FILES

    skills/local-vault/scripts/sync.py, line 550

    shutil.rmtree(img_dir, ignore_errors=True)

    skills/local-vault/scripts/sync.py, line 864

    result = subprocess.run(

    skills/local-vault/scripts/sync.py, line 980

    result = subprocess.run(

    Show more

    skills/local-vault/scripts/sync.py, line 1245

    r = subprocess.run(

    skills/local-vault/scripts/sync.py, line 1581

    result = subprocess.run(

    skills/local-vault/scripts/sync.py, line 2000

    shutil.rmtree(img_dir, ignore_errors=True)

    skills/topic-brief/scripts/render.py, line 53

    subprocess.run(["open", str(out_path)])

  • Install and update

    Pass

    No install-time script found, and dependencies are pinned or absent.

  • Network

    Concern

    can reach a host that is not written as a fixed address.

    NETWORK_NO_FIXED_HOST

    skills/local-vault/scripts/mineru_client.py, line 156

    resp = requests.put(url, data=f, timeout=300) # OSS URL 不带 token,直接用 requests

    skills/local-vault/scripts/mineru_client.py, line 334

    resp = requests.get(url, timeout=120)

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_DOTENV

    skills/local-vault/scripts/config.py, line 1

    """配置常量与 .env 加载。

    skills/local-vault/scripts/config.py, line 20

    # .env 要在读取 KB_* / MINERU_TOKEN 之前加载

    skills/local-vault/scripts/config.py, line 35

    MINERU_TOKEN = os.getenv("MINERU_TOKEN", "")

    Show more

    skills/local-vault/scripts/config.py, line 21

    load_dotenv(TOOL_DIR / ".env")

    skills/local-vault/scripts/config.py, line 38

    # 默认开;在 .env 里设 KB_NO_LAUNCHER=1 关掉(不想让脚本往数据目录写入口文件时用)。

    skills/local-vault/scripts/config.py, line 140

    # 用户选过的模型档(首次在终端交互选择后写回 .env)。""=还没选;"skip"=用户选择不转写音视频。

    skills/local-vault/scripts/config.py, line 167

    # 想要图表/示意图进 attachments 就开着;只关心文字就设 False(或 .env: KB_PDF_NO_IMAGES=1)。

    skills/local-vault/scripts/mineru_client.py, line 118

    "Token rejected by MinerU (401). 请检查/更新 .env 里的 MINERU_TOKEN。"

    skills/local-vault/scripts/sync.py, line 1264

    """把 KEY=value 写进/更新 .env(记住用户的 Whisper 选择)。失败静默、不阻塞主流程。"""

  • Agent instructions

    Pass

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

  • Obfuscation

    Pass

    No encoded or minified payload found.

  • 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 8e7ad7a5220d. can delete files. can reach a host that is not written as a fixed address. reads a credential or environment file.

Date and source

Date checked:

View source

github.com

Commit graded: 8e7ad7a5220de8b1ff4c7e6f8046e7114f402803

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