Multi Agent Pipeline

WarnAudited by ClawScan on May 10, 2026.

Overview

The skill is presented as a generic pipeline, but its included code is a story/voice API that uses undeclared provider keys, sends audio/text to external services, and stores user story data.

Review this as a story/voice web API, not as a generic pipeline helper. Only use it if you intend to provide ElevenLabs/Mistral credentials, send audio/text to those providers, and store story data; otherwise ask the publisher to correct the metadata, remove unrelated code, document dependencies, and add clear consent, retention, and access controls.

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.

What this means

A user may install or use the skill believing it is only a generic local pipeline, while it actually contains code that can contact third-party AI/voice services.

Why it was flagged

This tells users the skill itself does not perform outbound network activity, but the included script directly calls external provider APIs, making the declared trust posture materially misleading.

Skill content
"network": { "outbound": false, "reason": "Pipeline framework only — actual API calls depend on the stage functions you provide." }
Recommendation

Update the description and metadata to accurately disclose the story/voice workflow, outbound providers, data sent, credentials required, and when calls occur.

What this means

If run in an environment containing these keys, the skill can use the user's ElevenLabs and Mistral accounts, potentially sending data and incurring provider usage.

Why it was flagged

The code uses provider credentials even though the registry requirements declare no required environment variables and no primary credential.

Skill content
ELEVENLABS_API_KEY = os.environ.get("ELEVENLABS_API_KEY", "")
MISTRAL_API_KEY = os.environ.get("MISTRAL_API_KEY", "")
Recommendation

Declare these credentials explicitly, document minimum required scopes, and require clear user approval before using account-backed provider APIs.

What this means

Voice recordings or other uploaded audio may leave the user's environment and be processed by a third-party service without the user expecting it from the skill description.

Why it was flagged

Uploaded audio is forwarded to an external speech-to-text provider, but the skill metadata says outbound networking is false and does not disclose this data boundary.

Skill content
audio_data = await audio.read() ... client.post("https://api.elevenlabs.io/v1/speech-to-text", headers={"xi-api-key": ELEVENLABS_API_KEY}, files={"file": (audio.filename or "audio.wav", audio_data, audio.content_type or "audio/wav")})
Recommendation

Clearly disclose all external providers, the types of data sent, retention/privacy expectations, and require user-directed consent for uploads.

What this means

Personal story inputs and child-related data could be stored and reused later without clear visibility, deletion controls, or access limits.

Why it was flagged

The script persists story content, child name, voice ID, and language to a database; related code also uses prompt_cache, but retention and reuse boundaries are not described.

Skill content
await db.execute(
        "INSERT INTO stories (title, content, voice_id, child_name, language) VALUES (?, ?, ?, ?, ?)",
        [story.get("title", "Untitled"), content_json, voice_id, req.child_name, req.language]
    )
Recommendation

Document what is stored, where it is stored, how long it is retained, who can access it, and how users can delete cached or database records.

What this means

If integrated into an app, these routes could mutate stored story data or trigger paid provider calls in ways not apparent from the skill's stated purpose.

Why it was flagged

The code defines operational API routes that create records and invoke external AI/voice services, but the skill is described as a generic pipeline framework and does not specify approval, authentication, or scope controls for these actions.

Skill content
@router.post("/api/story")
async def create_story(req: StoryRequest): ...
@router.post("/api/narrate")
async def narrate_scene(req: NarrateRequest):
Recommendation

Limit routes to the documented purpose, add explicit auth/approval boundaries, and document which endpoints perform external calls or database mutations.

What this means

The runnable dependency chain and local helper behavior are unclear, which makes it harder to review or reproduce safely.

Why it was flagged

The script depends on external packages and local modules that are not declared in an install spec or included in the manifest.

Skill content
import httpx
from fastapi import APIRouter, HTTPException, UploadFile, File
import database as db
import prompt_cache
...
from mistralai import Mistral
Recommendation

Provide a complete manifest or requirements file, include referenced local modules, and pin/justify external dependencies.