Bkash-Nagad-Tracker
Analysis
This expense tracker mostly matches its stated purpose, but it says financial data stays local while the code can send transaction text and weekly spending totals to Anthropic.
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.
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.
No cloud sync. No third-party servers. Your financial data never leaves your device.
This privacy claim conflicts with the included code paths that call Anthropic with transaction messages and spending summaries, which could cause users to trust the skill under a false local-only assumption.
heartbeat:\n schedule: "0 9 * * 0"\n command: "python3 {baseDir}/summarizer.py weekly"The skill declares a recurring heartbeat that runs the weekly summarizer automatically, which is aligned with the advertised Sunday digest but still creates ongoing autonomous activity.
python3 {baseDir}/parser.py "{user_message}"The instructions place user-controlled message text into a shell-style command example; this is central to the skill, but safe argument handling should be explicit.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
primaryEnv: ANTHROPIC_API_KEY\n requires:\n env:\n - ANTHROPIC_API_KEY
The skill requires an Anthropic API key, which is expected for its LLM parsing and digest features and is disclosed in the skill metadata.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
Message: "{message}" ... response = client.messages.create(The parser includes the raw user message in an Anthropic API request when falling back to Claude, and those messages can contain amounts, payment methods, recipients, and spending notes.
- By category: {json.dumps(dict(top_categories), ensure_ascii=False)}\n- By method: {json.dumps(stats['by_method'], ensure_ascii=False)} ... response = client.messages.create(The weekly digest generator sends spending totals by category and payment method to Anthropic, even though the README describes the external API call as being for natural-language parsing.
