qwencloud-text
Analysis
The skill mostly matches Qwen text generation, but it under-declares its required API credential and includes an update-check helper that can prompt unpinned installs and run another skill's code.
Findings (8)
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.
Workflow: **Define tools → Model returns tool call instruction → Execute tool → Send result back → Get final answer.**
The skill supports model function-calling workflows. The bundled script does not itself execute arbitrary local tools, but the guidance could lead an agent or user to execute model-requested functions without clearly stated approval or impact limits.
INSTALL_CMD = f"npx skills add {_SKILLS_REPO} --skill qwencloud-update-check -y"The text skill bundles an update-check helper that prompts installation from an external repository via npx without a visible version pin. This is outside the core text-generation path and adds supply-chain dependency risk.
proc = subprocess.run(
[sys.executable, str(script), "--print-response"],
capture_output=True, text=True, timeout=15,
)When an update-check skill is installed, this helper executes that other skill's Python script during the text skill's update-check flow. Running another component's code is not necessary for a basic text chat API call.
skills = _read_installed_skills(repo)
skill_args = " ".join(skills) if skills else ""
return f"npx skills add {_SKILLS_REPO} --skill {skill_args} -y"The update helper can build a command covering all installed qwencloud-* skills. A single update prompt could therefore affect multiple skills, although the artifact shows it is printed for the user rather than automatically executed.
Required env vars: none Env var declarations: none Primary credential: none
The registry-facing requirements say no credential is needed, but the runtime script and skill instructions require a QwenCloud API key. This mismatch can cause users to underestimate credential and cost implications.
Checks whether tool use, credentials, dependencies, identity, account access, or inter-agent boundaries are broader than the stated purpose.
DASHSCOPE_API_KEY (required) API key — also loaded from .env file QWEN_API_KEY (alternative) Alias for DASHSCOPE_API_KEY
The script requires a provider API credential, while the registry metadata declares no required env vars and no primary credential. This under-declares access to a third-party account credential that may authorize paid model usage.
Checks for exposed credentials, poisoned memory or context, unclear communication boundaries, or sensitive data that could leave the user's control.
**Ask the user before modifying any file.** Then append to their config: ```markdown <!-- QWENCLOUD_SKILLS --> ## QwenCloud Skills When a request matches a skill below, read its SKILL.md before responding.
The compatibility guide can persist skill-loading instructions into agent config files. It includes a user-approval guard and markers, but the resulting instructions can affect future sessions.
url = os.getenv("QWEN_BASE_URL")
...
if url:
return url.rstrip("/")The provider endpoint can be overridden entirely by an environment variable. This is useful for custom endpoints, but prompts and authorization headers may be sent to the configured URL.
