ORF

ReviewAudited by ClawScan on May 10, 2026.

Overview

The ORF digest is mostly purpose-aligned, but it under-declares that it can install unpinned packages and use a local Gemini/Nano Banana API key.

Review before installing. If you use it, expect it to run local Python/Node scripts, create files under ./tmp, install Python packages from PyPI on first image generation, read a Gemini/Nano Banana API key from your environment or OpenClaw config, and send the image prompt to Google/Gemini. Prefer a version with declared credentials and pinned dependencies.

Findings (3)

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

Invoking the skill may use the user's Gemini/Nano Banana account or quota to generate the final image.

Why it was flagged

The helper reads a local OpenClaw configuration file for a Nano Banana/Gemini API key. The registry metadata declares no primary credential, required environment variable, or required config path, so this credential use is under-disclosed.

Skill content
cfg_path = Path.home() / ".openclaw" / "openclaw.json" ... get("nano-banana-pro", {}) ... get("apiKey")
Recommendation

Declare the credential and config path explicitly, ask the user to configure/approve the API key intentionally, and avoid silently reusing another skill's stored key.

What this means

Running the skill can download and execute dependency code that was not pinned or declared at install time.

Why it was flagged

On first use, the script creates a virtual environment and installs unpinned packages from the Python package ecosystem, despite the skill having no install spec.

Skill content
python3 -m venv "$VENV_DIR"
"$PY" -m pip install --quiet --disable-pip-version-check google-genai pillow
Recommendation

Move dependency setup into a declared install step, pin package versions or hashes, and make the first-run installation visible to the user.

What this means

The prompt derived from selected ORF stories is sent to the image-generation provider; this appears to be public news content, not private local data.

Why it was flagged

The generated image prompt is sent to an external Gemini image model. This is aligned with the stated Nano Banana image feature, but the provider data flow is not declared in metadata.

Skill content
client.models.generate_content(
        model="gemini-3-pro-image-preview",
        contents=args.prompt,
Recommendation

Disclose the external provider call and avoid including private user content in the image prompt unless the user explicitly agrees.