CleanApp Report Submission

ReviewAudited by ClawScan on May 10, 2026.

Overview

The skill mostly does what it says, but users should review it because an API token is sent to a configurable URL and the documented privacy defaults for location/media are stronger than the code actually enforces.

Install only if you intend to submit reports to CleanApp. Before live use, keep CLEANAPP_API_TOKEN in a secret store, leave the base URL at the official CleanApp HTTPS endpoint unless you deliberately use a trusted test endpoint, run --dry-run to inspect payloads, and explicitly use --no-media and --approx-location or --no-location when the report may contain private media or precise location data.

Findings (4)

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

Running the skill can submit reports into CleanApp rather than only preparing or previewing them.

Why it was flagged

The tool posts user-provided report items to a server endpoint, which is the stated purpose but is still an external state-changing action.

Skill content
url = args.base_url.rstrip("/") + "/v1/reports:bulkIngest" ... status, body = post_json(url, token, payload, timeout_sec=args.timeout)
Recommendation

Use --dry-run first, review the JSON payload, and only run live submission when the user intends to create reports.

What this means

If the base URL is changed by mistake or by an unsafe agent instruction, the API token and report payload could be sent to the wrong server.

Why it was flagged

A caller or environment variable can change the base URL, and the CleanApp bearer token is then attached to that destination without visible host or HTTPS validation.

Skill content
ap.add_argument("--base-url", default=os.environ.get("CLEANAPP_BASE_URL", "https://live.cleanapp.io"), ...)
req.add_header("authorization", f"Bearer {token}")
Recommendation

Validate or allowlist CleanApp HTTPS hosts before attaching the bearer token, and require explicit user confirmation whenever the base URL is not the default CleanApp endpoint.

What this means

A user may believe media metadata is excluded and locations are approximate by default, while a normal bulk submission can send exact coordinates or media URLs from the input file.

Why it was flagged

The bulk ingest code only drops media when --no-media is supplied and only rounds coordinates when --approx-location is supplied, so precise location and media metadata can be sent by default if present in the input.

Skill content
"data_handling": "Submits text + optional approximate location. No media by default. Supports dry-run."
Recommendation

Make --no-media and approximate-location behavior the actual default, or update the manifest and examples to clearly state that users must opt into those protections.

What this means

Users may underestimate that installing the skill includes executable Python and shell helpers.

Why it was flagged

The registry-level install description does not fully reflect that the package includes runnable code, although the code is provided and reviewable in the artifacts.

Skill content
Install specifications: No install spec — this is an instruction-only skill. Code file presence: 10 code file(s)
Recommendation

Publish registry metadata that declares the runnable entrypoint, required token, and network capability, and remove duplicate or inconsistent package copies where possible.