Heath Ledger

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill’s bookkeeping purpose is coherent, but it stores bank and Stripe API keys locally in plaintext while the registry declares no credential requirement.

Review before installing. The skill appears aimed at legitimate bookkeeping, but it handles very sensitive bank and Stripe data. Use restricted read-only API keys where possible, protect or encrypt the local `data/heath.db` database, rotate keys after testing, and manually review AI-created categories before relying on generated financial statements.

Findings (5)

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

Anyone who can read the skill’s local database may be able to use saved bank API credentials to access transaction data.

Why it was flagged

The skill stores the Mercury API token in the local database as an access_token. This is expected for a bank integration, but it is high-impact credential persistence, and the registry metadata declares no primary credential or required env vars.

Skill content
db.prepare('INSERT INTO connections (entity_id, provider, access_token) VALUES (?, ?, ?) RETURNING id').get(entityId, 'mercury', token);
Recommendation

Only use a least-privilege/read-only Mercury token, store the skill directory securely, rotate tokens after testing, and prefer credential storage that is encrypted or clearly documented.

What this means

A leaked local database could expose Stripe financial data access for the connected business.

Why it was flagged

The optional Stripe API key is also persisted as an access_token. Stripe keys can expose sensitive revenue, fee, refund, and balance data, and the artifacts do not show encryption, token scoping guidance, or cleanup guidance.

Skill content
db.prepare('UPDATE connections SET access_token = ?, updated_at = datetime(\'now\') WHERE id = ?').run(apiKey, existing.id);
Recommendation

Use a restricted Stripe key with the minimum read permissions needed, avoid production write-capable keys, and revoke or rotate the key if the local database may have been exposed.

What this means

Sensitive bank transaction details may be exposed to the AI model used for categorization.

Why it was flagged

When rules do not match, the script prepares transaction details, including counterparty, bank description, amount, and type, for AI categorization.

Skill content
transactions: needsAi
Recommendation

Review which model/provider will process the transaction prompt, avoid sending unnecessary sensitive descriptions, and manually review AI categorizations before relying on generated books.

What this means

A wrong but confident AI categorization can become a future rule and affect later financial statements.

Why it was flagged

High-confidence AI results create or update persistent categorization rules for future transactions.

Skill content
insertRule.run(entityId, tx.counterparty_name || norm, norm, r.category, r.subcategory || null, r.confidence);
Recommendation

Review newly created AI rules periodically, especially before generating final books or sharing statements.

What this means

Installing and using the skill means running local code that reads and writes a bookkeeping database and Excel files.

Why it was flagged

The skill is instruction-driven but relies on local Node/bash scripts for normal operation.

Skill content
All scripts are in `scripts/`. Run with bash or node. Database is SQLite at `data/heath.db`.
Recommendation

Run it in a trusted workspace, inspect the local files it creates, and keep the database and generated workbooks private.