Back to skill
Skillv1.0.0
ClawScan security
stock-portfolio-aisa-api · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousApr 18, 2026, 12:59 PM
- Verdict
- suspicious
- Confidence
- medium
- Model
- gpt-5-mini
- Summary
- The skill is mostly coherent with its stated purpose (portfolio management using an AISA service) but has a few mismatches and omissions you should understand before installing (undeclared env vars, an undeclared Python dependency, and use of an LLM endpoint to fetch 'live' prices).
- Guidance
- This skill largely does what it claims, but review these before installing: - The script sends your portfolio tickers and a JSON prompt to a remote AISA/OpenAI-compatible endpoint using AISA_API_KEY. If you care about confidentiality of symbols or holdings, treat this key and the transmitted data accordingly. - The code uses AISA_BASE_URL and AISA_MODEL environment variables (not declared in the manifest). Verify their values before running so the script talks to the expected endpoint and model. - The script depends on the Python 'openai' client (not installed automatically). Install and inspect that package and confirm it talks to the correct AISA-compatible API. - Because it uses an LLM completion to 'fetch' prices, results can be incorrect or hallucinated—do not treat returned values as authoritative without cross-checking with a market-data provider. - Run the skill in an isolated environment or with a restricted API key (rate/permission limits) until you confirm behavior. If you want this to be lower risk: ask the author to (1) declare AISA_BASE_URL and AISA_MODEL in the manifest, (2) provide an explicit install spec for required Python packages, and (3) document data sent to the remote service.
Review Dimensions
- Purpose & Capability
- okName/description align with the code: the script manages portfolios locally and queries a remote AISA service for prices. Requiring AISA_API_KEY and python3 is appropriate for that stated purpose.
- Instruction Scope
- noteSKILL.md instructs running the bundled Python script and storing state locally, which matches the code. The script sends tickers and a crafted prompt to a remote AISA/OpenAI-compatible service to obtain prices (it uses an LLM-based completion to return JSON). This is within the described scope but may be surprising: the skill relies on an LLM to provide 'live' prices (risk of hallucination and sensitive-data exposure of tickers).
- Install Mechanism
- noteThere is no install spec (instruction-only), so nothing is written to disk by an installer. However, the script requires the Python 'openai' client (commented in the file) but the skill does not declare this dependency or provide an install step—the runtime may fail if that package is absent.
- Credentials
- concernPrimary credential AISA_API_KEY is appropriate. But the script also reads additional environment variables (AISA_BASE_URL and AISA_MODEL) that are not declared in SKILL.md's requires.env. It also honors CLAWDBOT_STATE_DIR (documented in SKILL.md). The undeclared env vars should be documented; lack of documentation increases the chance of misconfiguration or unintended endpoints.
- Persistence & Privilege
- okalways is false and the skill stores state in a repo-local path (./.clawdbot/skills/stock-analysis/portfolios.json by default or under CLAWDBOT_STATE_DIR). It does not request system-wide or other-skills configuration changes.
