Voice Notes Pro
Analysis
The skill matches its stated purpose, but it handles private WhatsApp audio, requires an undeclared OpenAI key, logs full transcriptions, and writes to hard-coded root-owned note paths.
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.
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.
directories: { songs: '/root/notes/songs', tasks: '/root/notes/tasks', shopping: '/root/notes/lists', ideas: '/root/notes/ideas', people: '/root/notes/people', watchlist: '/root/notes/watchlist' }The skill hard-codes filesystem write targets under /root/notes for multiple categories instead of using a declared, configurable user notes directory.
"dependencies": { "openai": "^4.28.0" }, "main": "skill.js"The package pulls an external npm dependency with a semver range, and the declared main file does not match the included voice-notes-pro.js file.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
const apiKey = process.env.OPENAI_API_KEY; if (!apiKey) { throw new Error('OPENAI_API_KEY not found in environment variables'); }The code requires an OpenAI API key, while the registry metadata declares no required environment variables or primary credential.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
console.log(`? Transkrypcja: "${transcription}"`);The skill logs the complete transcription of a WhatsApp voice note, creating an extra disclosure or retention path beyond the intended Markdown note files.
const response = await client.audio.transcriptions.create({ file: audioFile, model: CONFIG.whisper.model, language: CONFIG.whisper.language });The skill sends the audio file contents to OpenAI Whisper for transcription. This is disclosed in SKILL.md and aligned with the stated purpose, but it is still a sensitive external data flow.
