Back to skill
Skillv1.0.0
ClawScan security
stock-portfolio-zh-aisa · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
BenignApr 18, 2026, 12:58 PM
- Verdict
- benign
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The skill's code, requirements, and SKILL.md are internally consistent for a portfolio tool that queries AISA (LLM-style) for prices and stores portfolios locally, with minor implementation and disclosure caveats.
- Guidance
- This skill appears to do what it says: it stores portfolios locally and uses the AISA API (via the provided API key) to fetch prices. Before installing: (1) Confirm you trust the AISA provider because the skill sends tickers and related prompts to their API; (2) Be aware the script uses an LLM-style request to return numeric prices (LLMs can hallucinate values) — consider validating prices against a known market-data source; (3) The code may read optional env vars (AISA_BASE_URL, AISA_MODEL, CLAWDBOT_STATE_DIR) that aren’t listed as required — if you set those, they will affect behavior; (4) Review the Python dependency (openai) and run the script in a sandbox or virtualenv if you want to inspect network calls. If you need tighter privacy, avoid putting sensitive identifiers in portfolios or run a version that queries a trusted market-data API instead of a chat model.
Review Dimensions
- Purpose & Capability
- okName/description (manage portfolios with live AISA prices) aligns with the code and declared requirement (AISA_API_KEY) and required binary (python3). The included Python script implements the described create/list/add/show/rename/delete operations and uses AISA to fetch prices.
- Instruction Scope
- noteSKILL.md instructs running scripts/portfolio.py which matches the shipped script. The runtime code reads/writes a local state file (.clawdbot/skills/stock-analysis/portfolios.json) (documented) and uses environment variables AISA_API_KEY, and optionally AISA_BASE_URL, AISA_MODEL, and CLAWDBOT_STATE_DIR. Only AISA_API_KEY is declared as required; the other env vars are used but not listed as required in the metadata.
- Install Mechanism
- okNo install spec is provided (instruction-only). The script references a Python dependency (openai) in comments but does not force any download or run-time install. No remote archives or obscure URLs are fetched at install time.
- Credentials
- noteOnly AISA_API_KEY is requested as a required credential which is proportional to calling the AISA API. However the script can also read AISA_BASE_URL and AISA_MODEL (not declared) and will transmit tickers to the AISA endpoint — that means portfolio tickers/requests are sent to the external AISA service (expected for price queries but worth noting).
- Persistence & Privilege
- okalways:false and user-invocable:true. The skill only writes its own local state file under a repo-local .clawdbot directory (or a directory set by CLAWDBOT_STATE_DIR). It does not modify other skills or system-wide configs.
