{
  "schemaVersion": "1.0",
  "item": {
    "slug": "report",
    "name": "Report",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/ivangdavila/report",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/report",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/report",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=report",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "delivery.md",
      "formats.md",
      "schema.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "report",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T02:04:43.113Z",
      "expiresAt": "2026-05-07T02:04:43.113Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=report",
        "contentDisposition": "attachment; filename=\"report-1.0.3.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "report"
      },
      "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/report"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/report",
    "agentPageUrl": "https://openagent3.xyz/skills/report/agent",
    "manifestUrl": "https://openagent3.xyz/skills/report/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/report/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Data Storage",
        "body": "~/report/\n├── memory.md               # Index + preferences\n├── {name}/\n│   ├── config.md           # Report configuration\n│   ├── data.jsonl          # Historical data\n│   └── generated/          # Past reports\n\nCreate on first use: mkdir -p ~/report"
      },
      {
        "title": "Scope",
        "body": "This skill:\n\n✅ Stores report configurations in ~/report/\n✅ Generates reports on schedule\n✅ Delivers via channels user configures\n\nUser-driven model:\n\nUser defines WHAT data to include\nUser grants access to any needed sources\nUser provides API keys if external data needed\nSkill handles SCHEDULING and FORMATTING\n\nThis skill does NOT:\n\n❌ Access APIs without user-provided credentials\n❌ Pull data from sources user hasn't specified\n❌ Store credentials (user provides via environment)"
      },
      {
        "title": "Environment Variables",
        "body": "No fixed requirements. User provides API keys as needed:\n\n# Example: if user wants Stripe data\nexport STRIPE_API_KEY=\"sk_...\"\n\n# Example: if user wants GitHub data  \nexport GITHUB_TOKEN=\"ghp_...\"\n\nConfig references env var name, never the value."
      },
      {
        "title": "Delivery Security",
        "body": "External delivery (Telegram/webhook/email) sends report content off-device.\n\nUser explicitly configures each channel\nUser responsible for trusting destination\nfile delivery stays local (~/report/{name}/generated/)"
      },
      {
        "title": "Quick Reference",
        "body": "TaskFileConfiguration schemaschema.mdOutput formatsformats.mdDelivery optionsdelivery.md"
      },
      {
        "title": "1. User Defines Data Sources",
        "body": "When creating a report:\n\nUser specifies what data to track\nIf external API needed, user provides credentials\nCredentials stored as env var references, not values\n\nExample:\n\nUser: \"Weekly report on my Stripe revenue\"\nAgent: \"I'll need Stripe API access. Please set \n        STRIPE_API_KEY in your environment.\"\nUser: \"Done\"\n→ Config stored with \"source\": {\"type\": \"api\", \"env\": \"STRIPE_API_KEY\"}"
      },
      {
        "title": "2. Report Configuration",
        "body": "In ~/report/{name}/config.md:\n\nname: weekly-revenue\nschedule: \"0 9 * * 1\"  # Monday 9am\nsources:\n  - type: api\n    env: STRIPE_API_KEY  # User provides\nformat: chat\ndelivery: telegram"
      },
      {
        "title": "3. Scheduling",
        "body": "FrequencyCronExampleDaily0 9 * * *9am dailyWeekly0 9 * * 1Monday 9amMonthly0 9 1 * *1st of monthOn-demand-When user asks"
      },
      {
        "title": "4. Delivery Channels",
        "body": "User configures in config.md:\n\nchat — Reply in conversation\ntelegram — Send to Telegram (user provides chat ID)\nfile — Save to ~/report/{name}/generated/\nemail — Send via user's configured mail"
      },
      {
        "title": "5. Managing Reports",
        "body": "\"List my reports\" → Read ~/report/memory.md\n\"Pause X report\" → Update config\n\"Run X now\" → Generate on-demand"
      }
    ],
    "body": "Data Storage\n~/report/\n├── memory.md               # Index + preferences\n├── {name}/\n│   ├── config.md           # Report configuration\n│   ├── data.jsonl          # Historical data\n│   └── generated/          # Past reports\n\n\nCreate on first use: mkdir -p ~/report\n\nScope\n\nThis skill:\n\n✅ Stores report configurations in ~/report/\n✅ Generates reports on schedule\n✅ Delivers via channels user configures\n\nUser-driven model:\n\nUser defines WHAT data to include\nUser grants access to any needed sources\nUser provides API keys if external data needed\nSkill handles SCHEDULING and FORMATTING\n\nThis skill does NOT:\n\n❌ Access APIs without user-provided credentials\n❌ Pull data from sources user hasn't specified\n❌ Store credentials (user provides via environment)\nEnvironment Variables\n\nNo fixed requirements. User provides API keys as needed:\n\n# Example: if user wants Stripe data\nexport STRIPE_API_KEY=\"sk_...\"\n\n# Example: if user wants GitHub data  \nexport GITHUB_TOKEN=\"ghp_...\"\n\n\nConfig references env var name, never the value.\n\nDelivery Security\n\nExternal delivery (Telegram/webhook/email) sends report content off-device.\n\nUser explicitly configures each channel\nUser responsible for trusting destination\nfile delivery stays local (~/report/{name}/generated/)\nQuick Reference\nTask\tFile\nConfiguration schema\tschema.md\nOutput formats\tformats.md\nDelivery options\tdelivery.md\nCore Rules\n1. User Defines Data Sources\n\nWhen creating a report:\n\nUser specifies what data to track\nIf external API needed, user provides credentials\nCredentials stored as env var references, not values\n\nExample:\n\nUser: \"Weekly report on my Stripe revenue\"\nAgent: \"I'll need Stripe API access. Please set \n        STRIPE_API_KEY in your environment.\"\nUser: \"Done\"\n→ Config stored with \"source\": {\"type\": \"api\", \"env\": \"STRIPE_API_KEY\"}\n\n2. Report Configuration\n\nIn ~/report/{name}/config.md:\n\nname: weekly-revenue\nschedule: \"0 9 * * 1\"  # Monday 9am\nsources:\n  - type: api\n    env: STRIPE_API_KEY  # User provides\nformat: chat\ndelivery: telegram\n\n3. Scheduling\nFrequency\tCron\tExample\nDaily\t0 9 * * *\t9am daily\nWeekly\t0 9 * * 1\tMonday 9am\nMonthly\t0 9 1 * *\t1st of month\nOn-demand\t-\tWhen user asks\n4. Delivery Channels\n\nUser configures in config.md:\n\nchat — Reply in conversation\ntelegram — Send to Telegram (user provides chat ID)\nfile — Save to ~/report/{name}/generated/\nemail — Send via user's configured mail\n5. Managing Reports\n\"List my reports\" → Read ~/report/memory.md\n\"Pause X report\" → Update config\n\"Run X now\" → Generate on-demand"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/report",
    "publisherUrl": "https://clawhub.ai/ivangdavila/report",
    "owner": "ivangdavila",
    "version": "1.0.3",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/report",
    "downloadUrl": "https://openagent3.xyz/downloads/report",
    "agentUrl": "https://openagent3.xyz/skills/report/agent",
    "manifestUrl": "https://openagent3.xyz/skills/report/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/report/agent.md"
  }
}