Fund Analyzer Pro

ReviewAudited by ClawScan on May 10, 2026.

Overview

The fund-analysis purpose is coherent, but the skill handles sensitive portfolio data, credentials, local code imports, and automatic notifications in ways that need careful review before use.

Install only after reviewing the full scripts, replacing any sample keys with your own scoped credentials, confirming whether holdings will be stored, and disabling or explicitly configuring automatic Feishu/signal notifications. Avoid uploading real portfolio exports unless you accept the local storage and retention behavior.

Findings (6)

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

If exposed through the agent, a malformed user identifier could cause files outside the intended holdings folder to be written, read, or deleted.

Why it was flagged

The helper constructs file paths directly from user_id and later reads, writes, exports, or deletes those paths. Without validation, a caller-controlled user_id containing path traversal sequences could escape the intended holdings directory.

Skill content
def get_holdings_file(user_id: str) -> Path:
    return HOLDINGS_DIR / f"{user_id}.enc"
...
file_path.unlink()
Recommendation

Constrain user_id to a safe fixed pattern, resolve the path, verify it remains under the holdings directory, and avoid exposing delete/export helpers without explicit confirmation.

What this means

Running the analyzer may execute unreviewed local code, and a changed or malicious local module could affect results or behavior.

Why it was flagged

The analyzer imports code from a hard-coded local workspace path, but data_layer is not included in the reviewed file manifest or declared by an install spec.

Skill content
workspace_dir = Path('/home/admin/.openclaw/workspace')
if str(workspace_dir) not in sys.path:
    sys.path.insert(0, str(workspace_dir))

from data_layer import FundAPI, DataAPI
Recommendation

Package and pin the dependency, avoid hard-coded sys.path injection, and declare all runtime dependencies and expected local modules.

What this means

Users may unknowingly rely on an exposed/shared provider key, or fail to understand which account credentials the skill needs.

Why it was flagged

The README shows a concrete key-like value rather than a placeholder, while the registry metadata says no primary credential or env vars are required.

Skill content
"headers": {
  "x-api-key": "rySVkZpwsubI_uExeTZuGg"
}
Recommendation

Replace concrete-looking secrets with placeholders, rotate any real exposed key, and declare TTFUND_APIKEY, qieman x-api-key, and any notification credentials in metadata.

What this means

A user's fund holdings and losses can remain on disk and may be exposed through local file access, backups, or plaintext exports.

Why it was flagged

The skill persists sensitive portfolio holdings, stores the encryption key in the same workspace area, and supports plaintext export.

Skill content
**存储位置**:~/.openclaw/workspace/data/fund-holdings/{user_id}.enc
...
key_file = Path.home() / ".openclaw" / "workspace" / ".fund_holdings_key"
...
导出用户持仓(明文,用于备份)
Recommendation

Ask for explicit opt-in before storing holdings, document retention and deletion, set restrictive file permissions, separate key storage from data, and avoid plaintext exports unless the user explicitly requests them.

What this means

Fund watchlists or investment signals could be sent to an external collaboration service without the user clearly seeing what is shared and where.

Why it was flagged

The code documents Feishu push notifications for watchlist-based signal monitoring, but the provided metadata does not define the notification destination, credential, or data boundary.

Skill content
信号监控:signal_checker.py(watchlist + 信号检测 + 去重 + 飞书推送)
Recommendation

Require explicit setup for any webhook or Feishu destination, show exactly what data will be sent, and keep notification credentials scoped and declared.

What this means

Users may over-trust automated financial recommendations, especially if generated as signals rather than in response to a direct request.

Why it was flagged

The skill includes an explicit authorization rule, but also defines reports that can contain concrete buy/sell-style actions.

Skill content
报告内容:... 建议操作:[持有/加仓/减仓/卖出]
...
禁止推荐:除非用户明确授权
Recommendation

Keep analysis separate from actionable investment advice, require clear user confirmation for buy/sell recommendations, and prominently retain the financial-risk disclaimer.