daily-sales-digest

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly matches a sales-reporting use case, but it needs review because it can produce mock sales numbers, expose commerce credentials, and auto-send reports through risky Discord/shell handling.

Install only if you are comfortable editing and reviewing the scripts. Replace all Discord/email targets with your own verified destinations, do not print the full credential config, use read-only API keys, and keep cron delivery disabled until real API collection replaces the current mock data.

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

Users could receive scheduled reports that look like real sales summaries but are based on random mock data.

Why it was flagged

The collector currently writes random mock revenue when a source is enabled, despite the skill being presented as a sales API integration and digest tool.

Skill content
// TODO: 실제 네이버 API 호출 구현 // 현재는 mock 데이터 반환 const mockRevenue = Math.floor(Math.random() * 2000000) + 500000;
Recommendation

Do not enable cron delivery for business use until real API collection is implemented, and label any test output clearly as mock data.

What this means

Commerce API keys or other secrets could be displayed to the agent, logs, or anyone viewing the session.

Why it was flagged

The same config file is intended to contain API secrets, but troubleshooting tells users to print the full file, which can expose credentials in terminal logs or agent context.

Skill content
"clientSecret": "YOUR_CLIENT_SECRET" ... "secretKey": "YOUR_SECRET_KEY" ... cat ~/.openclaw/workspace/config/daily-sales-digest.json
Recommendation

Avoid printing the full config; use redacted checks or commands that only show non-secret fields, and store least-privilege read-only API keys.

What this means

If the config or stored sales data is poisoned, an automatic alert/report run could execute unintended local shell commands under the user's account.

Why it was flagged

The script sends Discord messages by interpolating config/report content into a shell command; escaping only quotes does not prevent shell command substitution or other shell metacharacter issues.

Skill content
execSync(`openclaw message send --channel discord --target "${channelId}" --message "${message.replace(...)}"`, { stdio: 'inherit' });
Recommendation

Use execFileSync/spawn with an argument array or a scoped messaging API, validate channel IDs, and avoid passing report text through a shell.

What this means

A user who copies the example or trusts the prefilled ID could send sensitive sales summaries to the wrong Discord target.

Why it was flagged

The reusable configuration template references a specific Discord DM/channel ID for report delivery, making the destination identity unclear.

Skill content
"description": "Discord 채널 ID (형님 DM: 1468204132920725535)"
Recommendation

Remove personal channel IDs from templates and require users to explicitly enter and verify their own delivery destinations.

What this means

Reports and alerts may continue running and sending data after initial setup until the cron jobs are paused or deleted.

Why it was flagged

The skill documents persistent scheduled jobs that automatically generate and deliver reports; this is expected for the stated purpose but should be user-controlled.

Skill content
openclaw cron add --name "daily-sales-digest:daily" --schedule "0 8 * * *" --command "node /Users/mupeng/.openclaw/workspace/skills/daily-sales-digest/scripts/digest.js --date yesterday --deliver discord"
Recommendation

Add cron jobs only after testing, review them with `openclaw cron list`, and delete or pause any job that is no longer needed.