Yandex Speechkit STT via Telegram Gateway
Analysis
The skill can perform Yandex speech-to-text, but an included helper can continuously watch Telegram voice files, send transcripts to a fixed Telegram ID, and keep transcript text on disk.
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.
INBOX_DIR = '/home/mockingjay/.openclaw/media/inbound' ... while True: ... for filename in os.listdir(INBOX_DIR): ... send_to_openclaw(text, duration) ... time.sleep(2)
The helper is written as an indefinite auto-processor that watches all inbound OGG files and sends transcripts, rather than handling a single user-requested audio file.
"install": [ { "id": "pip", "kind": "pip", "packages": ["PyJWT", "cryptography", "requests"] } ]The skill metadata includes unpinned pip dependencies used for JWT signing and HTTP calls; they are purpose-aligned, but the registry says there is no install spec.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
"service_account_id": "your-service-account-id", "folder_id": "your-folder-id", "private_key": "-----BEGIN PRIVATE KEY-----\n..."
The skill asks for a Yandex service-account private key to mint IAM tokens; this is expected for SpeechKit access but is sensitive and not reflected in the registry credential fields.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
cmd = [ 'openclaw', 'message', 'send', '--channel', 'telegram', '--target', '271578652', '--message', message ]
The recognized voice transcript is sent through the Telegram gateway to a hard-coded numeric target rather than a user-selected or documented destination.
PROCESSED_FILE = f'{WORKSPACE}/.voice_processed.json' ... processed[file_hash] = text ... save_processed(processed)The script stores the full recognized transcript text in a persistent workspace JSON file, not just a duplicate-processing marker.
