Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

pmtools

v1.0.2

Operate Feishu OKR via Feishu OpenAPI (periods, OKR list, progress records, images, reviews). Invoke when you need to query or update OKR progress.

0· 194·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for taoxiang-org/pmtools.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "pmtools" (taoxiang-org/pmtools) from ClawHub.
Skill page: https://clawhub.ai/taoxiang-org/pmtools
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: FEISHU_ACCESS_TOKEN
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install pmtools

ClawHub CLI

Package manager switcher

npx clawhub@latest install pmtools
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
Name/description (Feishu OKR operator) match the code: the scripts call Feishu OpenAPI endpoints and implement periods/okrs/progress/images/reviews. However the manifest lists only FEISHU_ACCESS_TOKEN as a required env var while the code also expects (and can require at runtime) FEISHU_APP_ID, FEISHU_APP_SECRET, FEISHU_TENANT_ACCESS_TOKEN, and FEISHU_USER_ACCESS_TOKEN. The mismatch between declared requirements and actual credential usage is an incoherence worth flagging.
!
Instruction Scope
SKILL.md instructs the agent to auto-update before every command. The included code implements self-update behavior (runs git commands and a 'clawhub update') and performs HTTP calls, reads/writes token and update cache files, and will fetch tenant tokens using app id/secret if provided. Auto-update and the ability to run arbitrary CLI tools expands the agent's scope beyond simple API calls.
!
Install Mechanism
There is no install spec (instruction-only style), which is low risk in itself, but the runtime self-update executes subprocesses (git and clawhub) that can modify the skill code on disk. That effectively enables remote code changes to the skill at runtime — a higher-risk behavior than a pure instruction-only skill.
!
Credentials
The manifest only declares FEISHU_ACCESS_TOKEN, but the code will also read/expect FEISHU_APP_ID and FEISHU_APP_SECRET (to fetch tenant tokens), FEISHU_TENANT_ACCESS_TOKEN, FEISHU_USER_ACCESS_TOKEN, and several PM_TOOLS_* overrides. The skill writes token cache and update cache files under the user's home directory. Requesting app secrets and writing cached tokens is reasonable for this functionality, but the manifest should declare them — the omission reduces transparency.
Persistence & Privilege
always:false and no system-wide config changes are requested. The skill persists state by writing cache files (tenant token cache, update check cache) under the user's home (~/.cache/pmtools/...) and can update its own code via git/clawhub. This persistent presence is expected for a CLI tool but increases blast radius if updates are malicious.
What to consider before installing
This skill implements Feishu OKR operations and is largely coherent with its description, but it auto-updates itself (runs git and a 'clawhub' command) and runs subprocesses that can change the skill code at runtime. Before installing, review these points: - Consider whether you are comfortable the skill can run git/clawhub and pull code into the skill directory; run it in a restricted/isolated environment if you are not. - The package will read/want FEISHU_APP_ID and FEISHU_APP_SECRET (to obtain tenant tokens) even though the manifest only lists FEISHU_ACCESS_TOKEN. Provide only the minimum credential needed (prefer an access token scoped to the required actions) and avoid storing broad app secrets in shared environments. - The skill writes cache files to your home directory (~/.cache/pmtools/...). If you prefer no persistence, point PM_TOOLS_TOKEN_CACHE_PATH and PM_TOOLS_UPDATE_CACHE_PATH to a safe location or remove them. - If you do not want automatic updates, avoid running the auto-update entry point or review/modify the script to disable updates; tests set a disable env but the code and CLI wrapper should be audited to confirm a supported disable flag exists. If you want higher assurance, inspect the full scripts/pm_tools.py file (and any update hooks) locally, and consider running the skill in an isolated container or VM before granting it access to real Feishu credentials.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🎯 Clawdis
Any binpython3, python
EnvFEISHU_ACCESS_TOKEN
latestvk97753atg6qmpat4apfj05kdbn8378ha
194downloads
0stars
2versions
Updated 1h ago
v1.0.2
MIT-0

pmtools

Safety

  • Never print or persist access tokens.
  • Confirm before deleting a progress record or changing a period status.

Setup

  • Set FEISHU_ACCESS_TOKEN (either tenant_access_token or user_access_token) for most endpoints.
  • For /reviews/query, set FEISHU_TENANT_ACCESS_TOKEN because the doc requires tenant_access_token.

Auto-update

Auto-update is executed automatically before every command (with a 7-day local whitelist cache). To force-run and see the update result, run:

python3 scripts/pm_tools.py self-update

This checks for updates at most once per 7 days (local whitelist cache). If a newer version is detected, it updates first, then proceeds.

Commands

All commands print JSON to stdout.

Periods

python3 scripts/pm_tools.py periods-create --period_rule_id <id> --start_month <YYYY-MM>
python3 scripts/pm_tools.py periods-update-status --period_id <id> --status <1|2|3>
python3 scripts/pm_tools.py periods-list [--page_token <token>] [--page_size <n>]
python3 scripts/pm_tools.py period-rules-list

OKRs

python3 scripts/pm_tools.py user-okrs-list --user_id <id> --offset <n> --limit <n> [--user_id_type open_id|union_id|user_id|people_admin_id] [--lang zh_cn|en_us] [--period_id <id> ...]
python3 scripts/pm_tools.py okrs-batch-get --okr_id <id> ... [--user_id_type open_id|union_id|user_id|people_admin_id] [--lang zh_cn|en_us]

Progress records

python3 scripts/pm_tools.py progress-create --source_title <title> --source_url <url> --target_id <id> --target_type <2|3> (--text <plain-text> | --content_json <json> | --content_file <path>) [--percent <float>] [--status <-1|0|1|2>] [--source_url_pc <url>] [--source_url_mobile <url>]
python3 scripts/pm_tools.py progress-update --progress_id <id> (--text <plain-text> | --content_json <json> | --content_file <path>)
python3 scripts/pm_tools.py progress-delete --progress_id <id>
python3 scripts/pm_tools.py progress-get --progress_id <id>

Images

python3 scripts/pm_tools.py image-upload --file <path> --target_id <id> --target_type <2|3>

Reviews

python3 scripts/pm_tools.py reviews-query --user_id <id> ... --period_id <id> ... [--user_id_type open_id|union_id|user_id|people_admin_id]

Comments

Loading comments...