yuqing-bitable-and-label

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill’s XiaoAi-to-Feishu sync purpose is coherent, but it handles powerful credentials and table content in ways that are under-disclosed and potentially unsafe.

Review this skill before installing. Use HTTPS for XiaoAi if possible, give the Feishu app only the minimum table permissions needed, disable run_labeling unless you approve any external model provider data sharing, protect or clear the .cache token files, and verify that no cron job is running unless you intentionally want recurring sync.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

Your XiaoAi token and retrieved records could be exposed or modified in transit if the default HTTP endpoint is used.

Why it was flagged

The skill asks for a bearer token while defaulting the XiaoAi API base URL to plaintext HTTP. The code uses that token for XiaoAi API calls, so the default configuration can expose credentials and synced data to network interception.

Skill content
xiaoai_token ... description: 小爱接口 token(Bearer 后面的部分) ... xiaoai_base_url ... default: "http://wisers-data-service.wisersone.com.cn" ... permissions ... "http://wisers-data-service.wisersone.com.cn"
Recommendation

Use an HTTPS XiaoAi endpoint if available, reject non-HTTPS token-bearing URLs by default, and document any unavoidable HTTP transport risk clearly before use.

What this means

Record titles, body text, OCR content, and related labels may be sent to OpenAI or another configured model gateway without the user realizing this from the skill metadata.

Why it was flagged

When OpenAI-compatible environment variables are present, the labeling code sends Feishu record-derived prompts to an external model endpoint. SKILL.md describes OpenClaw built-in labeling and only lists Feishu/XiaoAi network permissions, so this provider data flow is under-disclosed.

Skill content
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") or ""
OPENAI_BASE_URL = (os.getenv("OPENAI_BASE_URL") or "https://api.openai.com/v1").rstrip("/") ... url = f"{OPENAI_BASE_URL}/chat/completions" ... "messages": [{"role": "system", "content": system}, {"role": "user", "content": user}]
Recommendation

Require an explicit user opt-in for third-party model calls, declare the model provider/network permission and env vars, and keep run_labeling disabled unless the data-sharing boundary is acceptable.

What this means

Another local process or user with access to the skill directory may be able to reuse the cached Feishu tenant token during its validity window.

Why it was flagged

The code persists a Feishu tenant access token to a local JSON cache file. This is useful for performance but stores delegated account authority on disk without visible file-permission hardening in the provided artifact.

Skill content
TOKEN_CACHE_FILE = os.path.join(CACHE_DIR, 'tenant_token.json') ... json.dump({'token': data["tenant_access_token"], 'timestamp': time.time()}, f)
Recommendation

Document the cache, restrict file permissions, avoid token persistence when possible, and provide a clear cleanup command for .cache/tenant_token.json.

What this means

The Feishu app credentials can add or update data in the selected Bitable, and mistakes in configuration can affect business records.

Why it was flagged

The skill is designed to write records and optionally write labels back to Feishu Bitable. This is purpose-aligned, but it is still high-impact mutation authority over a workspace table.

Skill content
先从小爱数据接口增量拉取数据写入飞书多维表,再对多维表做增量标注 ... outputs ... inserted_count ... labeling_updated_count
Recommendation

Use a least-privilege Feishu app, test on a non-production table first, keep labeling_limit small, and back up important tables before enabling writes.

What this means

If that cron entry exists or is added, the sync can keep running and mutating Feishu data every 10 minutes outside a one-time skill invocation.

Why it was flagged

The documentation describes recurring cron execution. The provided install spec does not show automatic cron installation, so this is a persistence note rather than proof of hidden background execution.

Skill content
已配置 cron,每 10 分钟执行一次:
*/10 * * * * /home/admin/.openclaw/workspace/skills/yuqing-data-to-bitable/sync.sh
Recommendation

Only enable scheduled sync intentionally, verify the user crontab after installation, and remove the cron entry when the skill should no longer run.