# Send CleanApp Report Submission to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "cleanapp",
    "name": "CleanApp Report Submission",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/borisolver/cleanapp",
    "canonicalUrl": "https://clawhub.ai/borisolver/cleanapp",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/cleanapp",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cleanapp",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "openclaw-skill/ingest.py",
      "openclaw-skill/run.sh",
      "openclaw-skill/README.md",
      "openclaw-skill/SKILL.md",
      "openclaw-skill/manifest.json",
      "openclaw-skill/build_zip.sh"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "cleanapp",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T07:26:35.425Z",
      "expiresAt": "2026-05-06T07:26:35.425Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cleanapp",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=cleanapp",
        "contentDisposition": "attachment; filename=\"cleanapp-0.1.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "cleanapp"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/cleanapp"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/cleanapp",
    "downloadUrl": "https://openagent3.xyz/downloads/cleanapp",
    "agentUrl": "https://openagent3.xyz/skills/cleanapp/agent",
    "manifestUrl": "https://openagent3.xyz/skills/cleanapp/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/cleanapp/agent.md"
  }
}
```
## Documentation

### SKILL: CleanApp Ingest v1 (OpenClaw/ClawHub)

This is a skill package that lets an agent submit reports into CleanApp using the Fetcher Key System:

POST /v1/fetchers/register (one-time key issuance)
POST /v1/reports:bulkIngest (bulk ingest, quarantine-first)
GET  /v1/fetchers/me (introspection)

This is not a long-lived agent running inside the CleanApp backend. It’s a client-side integration that talks to CleanApp over HTTPS.

### Why This Is Safe (Compartmentalized)

The only secret in the agent is a revocable CleanApp API key (CLEANAPP_API_TOKEN).
New keys default to a quarantine lane on the backend:

Stored + analyzed
Not publicly published
Not routed to brands/municipalities
Not rewarded


The backend enforces:

rate limits / quotas
idempotency (source_id)
kill switches (revoke/suspend)

So even if an agent is prompt-injected, the blast radius is limited to “submitting more quarantined reports” until the key is revoked.

### Required Secret

CLEANAPP_API_TOKEN (Bearer token). Get it once via:

POST /v1/fetchers/register (see references/API_REFERENCE.md)
Store it as a ClawHub/OpenClaw secret; never paste into chat logs.

Optional env:

CLEANAPP_BASE_URL (default https://live.cleanapp.io)

### Data Handling (Minimal by Default)

This skill submits:

title, description (text)
optional lat/lng (location)
optional media[] metadata (URL/SHA/content-type)

Recommended low-risk defaults:

--approx-location (round coordinates to reduce precision)
--no-media (drop media metadata unless needed)

### Idempotency (Important)

Every item must include a stable source_id. The backend enforces:

UNIQUE(fetcher_id, source_id)
retries won’t duplicate rows if you reuse the same source_id

### Bulk ingest from JSON (recommended)

export CLEANAPP_API_TOKEN="cleanapp_fk_live_..."
python3 ingest.py \\\\
  --base-url https://live.cleanapp.io \\\\
  --input examples/sample_items.json \\\\
  --approx-location \\\\
  --no-media

### Dry run (no network)

python3 ingest.py --input examples/sample_items.json --dry-run

### Single-item helper (shell)

This is useful for quick manual submissions while debugging.

export CLEANAPP_API_TOKEN="cleanapp_fk_live_..."
./scripts/submit_report.sh --title "Broken elevator" --description "Stuck on floor 3" --lat 34.0702 --lng -118.4441 --approx-location

### Promotion (Out of Quarantine)

Promotion is a reviewed process. As you build reputation, CleanApp can:

raise caps
allow public publishing/routing/rewards

See:

POST /v1/fetchers/promotion-request
GET  /v1/fetchers/promotion-status

### References

Swagger UI: https://live.cleanapp.io/v1/docs
OpenAPI YAML: https://live.cleanapp.io/v1/openapi.yaml
references/API_REFERENCE.md in this package
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: borisolver
- Version: 0.1.1
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T07:26:35.425Z
- Expires at: 2026-05-06T07:26:35.425Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/cleanapp)
- [Send to Agent page](https://openagent3.xyz/skills/cleanapp/agent)
- [JSON manifest](https://openagent3.xyz/skills/cleanapp/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/cleanapp/agent.md)
- [Download page](https://openagent3.xyz/downloads/cleanapp)