Earnings Tracker
Analysis
This earnings-tracking skill mostly matches its purpose, but needs review because it can reuse an undeclared OpenAI API key with a different translation service.
Findings (4)
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.
Checks for instructions or behavior that redirect the agent, misuse tools, execute unexpected code, cascade across systems, exploit user trust, or continue outside the intended task.
"schedule": { "kind": "cron", "expr": "0 9 * * 1-5" }, ... "message": "运行 earnings-tracker check 命令,检查追踪公司的财报动态..."SKILL.md provides a cron example that would cause recurring weekday agent turns to run the tracker.
"dependencies": { "playwright": "^1.40.0" }The package declares a mutable Playwright dependency even though the skill is described as instruction-only and SKILL.md says Playwright was removed.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
const apiKey = (process.env.ZAI_API_KEY ?? process.env.OPENAI_API_KEY ?? '').trim(); ... fetch('https://open.bigmodel.cn/api/paas/v4/chat/completions', ... 'Authorization': `Bearer ${apiKey}`)The script may take an OPENAI_API_KEY from the environment and send it as a Bearer token to BigModel/GLM. SKILL.md documents ZAI_API_KEY for GLM translation, but not this OpenAI-key fallback.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
const TRACK_FILE = path.join(__dirname, '.tracked-companies.json'); ... fs.writeFileSync(TRACK_FILE, JSON.stringify(companies, null, 2));
The script stores the user's tracked company list in a persistent local file and reuses it for later list/check workflows.
