{
  "schemaVersion": "1.0",
  "item": {
    "slug": "refund-radar",
    "name": "Refund Radar",
    "source": "tencent",
    "type": "skill",
    "category": "金融交易",
    "sourceUrl": "https://clawhub.ai/andreolf/refund-radar",
    "canonicalUrl": "https://clawhub.ai/andreolf/refund-radar",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/refund-radar",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=refund-radar",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "PUBLISH.md",
      "SKILL.md",
      "references/refund-templates.md",
      "references/detection-rules.md",
      "assets/template.html"
    ],
    "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",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/refund-radar"
    },
    "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/refund-radar",
    "agentPageUrl": "https://openagent3.xyz/skills/refund-radar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/refund-radar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/refund-radar/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": "refund-radar",
        "body": "Scan bank statements to detect recurring charges, flag suspicious transactions, identify duplicates and fees, draft refund request templates, and generate an interactive HTML audit report."
      },
      {
        "title": "Triggers",
        "body": "\"scan my bank statement for refunds\"\n\"analyze my credit card transactions\"\n\"find recurring charges in my statement\"\n\"check for duplicate or suspicious charges\"\n\"help me dispute a charge\"\n\"generate a refund request\"\n\"audit my subscriptions\""
      },
      {
        "title": "1. Get Transaction Data",
        "body": "Ask user for bank/card CSV export or pasted text. Common sources:\n\nApple Card: Wallet → Card Balance → Export\nChase: Accounts → Download activity → CSV\nMint: Transactions → Export\nAny bank: Download as CSV from transaction history\n\nOr accept pasted text format:\n\n2026-01-03 Spotify -11.99 USD\n2026-01-15 Salary +4500 USD"
      },
      {
        "title": "2. Parse and Normalize",
        "body": "Run the parser on their data:\n\npython -m refund_radar analyze --csv statement.csv --month 2026-01\n\nOr for pasted text:\n\npython -m refund_radar analyze --stdin --month 2026-01 --default-currency USD\n\nThe parser auto-detects:\n\nDelimiter (comma, semicolon, tab)\nDate format (YYYY-MM-DD, DD/MM/YYYY, MM/DD/YYYY)\nAmount format (single column or debit/credit)\nCurrency"
      },
      {
        "title": "3. Review Recurring Charges",
        "body": "Tool identifies recurring subscriptions by:\n\nSame merchant >= 2 times in 90 days\nSimilar amounts (within 5% or $2)\nConsistent cadence (weekly, monthly, yearly)\nKnown subscription keywords (Netflix, Spotify, etc.)\n\nOutput shows:\n\nMerchant name\nAverage amount and cadence\nLast charge date\nNext expected charge"
      },
      {
        "title": "4. Flag Suspicious Charges",
        "body": "Tool automatically flags:\n\nFlag TypeTriggerSeverityDuplicateSame merchant + amount within 2 daysHIGHAmount Spike> 1.8x baseline, delta > $25HIGHNew MerchantFirst time + amount > $30MEDIUMFee-likeKeywords (FEE, ATM, OVERDRAFT) + > $3LOWCurrency AnomalyUnusual currency or DCCLOW"
      },
      {
        "title": "5. Clarify with User",
        "body": "For flagged items, ask in batches of 5-10:\n\nIs this charge legitimate?\nShould I mark this merchant as expected?\nDo you want a refund template for this?\n\nUpdate state based on answers:\n\npython -m refund_radar mark-expected --merchant \"Costco\"\npython -m refund_radar mark-recurring --merchant \"Netflix\""
      },
      {
        "title": "6. Generate HTML Report",
        "body": "Report saved to ~/.refund_radar/reports/YYYY-MM.html\n\nCopy template.html structure. Sections:\n\nSummary: Transaction count, total spent, recurring count, flagged count\nRecurring Charges: Table with merchant, amount, cadence, next expected\nUnexpected Charges: Flagged items with severity and reason\nDuplicates: Same-day duplicate charges\nFee-like Charges: ATM fees, FX fees, service charges\nRefund Templates: Ready-to-copy email/chat/dispute messages\n\nFeatures:\n\nPrivacy toggle (blur merchant names)\nDark/light mode\nCollapsible sections\nCopy buttons on templates\nAuto-hide empty sections"
      },
      {
        "title": "7. Draft Refund Requests",
        "body": "For each flagged charge, generate three template types:\n\nEmail: Formal refund request\nChat: Quick message for live support\nDispute: Bank dispute form text\n\nThree tone variants each:\n\nConcise (default)\nFirm (assertive)\nFriendly (polite)\n\nTemplates include:\n\nMerchant name and date\nCharge amount\nDispute reason based on flag type\nPlaceholders for card last 4, reference number\n\nImportant: No apostrophes in any generated text."
      },
      {
        "title": "CLI Reference",
        "body": "# Analyze statement\npython -m refund_radar analyze --csv file.csv --month 2026-01\n\n# Analyze from stdin\npython -m refund_radar analyze --stdin --month 2026-01 --default-currency CHF\n\n# Mark merchant as expected\npython -m refund_radar mark-expected --merchant \"Amazon\"\n\n# Mark merchant as recurring\npython -m refund_radar mark-recurring --merchant \"Netflix\"\n\n# List expected merchants\npython -m refund_radar expected\n\n# Reset learned state\npython -m refund_radar reset-state\n\n# Export month data\npython -m refund_radar export --month 2026-01 --out data.json"
      },
      {
        "title": "Files Written",
        "body": "PathPurpose~/.refund_radar/state.jsonLearned preferences, merchant history~/.refund_radar/reports/YYYY-MM.htmlInteractive audit report~/.refund_radar/reports/YYYY-MM.jsonRaw analysis data"
      },
      {
        "title": "Privacy",
        "body": "No network calls. Everything runs locally.\nNo external APIs. No Plaid, no cloud services.\nYour data stays on your machine.\nPrivacy toggle in reports. Blur merchant names with one click."
      },
      {
        "title": "Requirements",
        "body": "Python 3.9+\nNo external dependencies"
      },
      {
        "title": "Repository",
        "body": "https://github.com/andreolf/refund-radar"
      }
    ],
    "body": "refund-radar\n\nScan bank statements to detect recurring charges, flag suspicious transactions, identify duplicates and fees, draft refund request templates, and generate an interactive HTML audit report.\n\nTriggers\n\"scan my bank statement for refunds\"\n\"analyze my credit card transactions\"\n\"find recurring charges in my statement\"\n\"check for duplicate or suspicious charges\"\n\"help me dispute a charge\"\n\"generate a refund request\"\n\"audit my subscriptions\"\nWorkflow\n1. Get Transaction Data\n\nAsk user for bank/card CSV export or pasted text. Common sources:\n\nApple Card: Wallet → Card Balance → Export\nChase: Accounts → Download activity → CSV\nMint: Transactions → Export\nAny bank: Download as CSV from transaction history\n\nOr accept pasted text format:\n\n2026-01-03 Spotify -11.99 USD\n2026-01-15 Salary +4500 USD\n\n2. Parse and Normalize\n\nRun the parser on their data:\n\npython -m refund_radar analyze --csv statement.csv --month 2026-01\n\n\nOr for pasted text:\n\npython -m refund_radar analyze --stdin --month 2026-01 --default-currency USD\n\n\nThe parser auto-detects:\n\nDelimiter (comma, semicolon, tab)\nDate format (YYYY-MM-DD, DD/MM/YYYY, MM/DD/YYYY)\nAmount format (single column or debit/credit)\nCurrency\n3. Review Recurring Charges\n\nTool identifies recurring subscriptions by:\n\nSame merchant >= 2 times in 90 days\nSimilar amounts (within 5% or $2)\nConsistent cadence (weekly, monthly, yearly)\nKnown subscription keywords (Netflix, Spotify, etc.)\n\nOutput shows:\n\nMerchant name\nAverage amount and cadence\nLast charge date\nNext expected charge\n4. Flag Suspicious Charges\n\nTool automatically flags:\n\nFlag Type\tTrigger\tSeverity\nDuplicate\tSame merchant + amount within 2 days\tHIGH\nAmount Spike\t> 1.8x baseline, delta > $25\tHIGH\nNew Merchant\tFirst time + amount > $30\tMEDIUM\nFee-like\tKeywords (FEE, ATM, OVERDRAFT) + > $3\tLOW\nCurrency Anomaly\tUnusual currency or DCC\tLOW\n5. Clarify with User\n\nFor flagged items, ask in batches of 5-10:\n\nIs this charge legitimate?\nShould I mark this merchant as expected?\nDo you want a refund template for this?\n\nUpdate state based on answers:\n\npython -m refund_radar mark-expected --merchant \"Costco\"\npython -m refund_radar mark-recurring --merchant \"Netflix\"\n\n6. Generate HTML Report\n\nReport saved to ~/.refund_radar/reports/YYYY-MM.html\n\nCopy template.html structure. Sections:\n\nSummary: Transaction count, total spent, recurring count, flagged count\nRecurring Charges: Table with merchant, amount, cadence, next expected\nUnexpected Charges: Flagged items with severity and reason\nDuplicates: Same-day duplicate charges\nFee-like Charges: ATM fees, FX fees, service charges\nRefund Templates: Ready-to-copy email/chat/dispute messages\n\nFeatures:\n\nPrivacy toggle (blur merchant names)\nDark/light mode\nCollapsible sections\nCopy buttons on templates\nAuto-hide empty sections\n7. Draft Refund Requests\n\nFor each flagged charge, generate three template types:\n\nEmail: Formal refund request\nChat: Quick message for live support\nDispute: Bank dispute form text\n\nThree tone variants each:\n\nConcise (default)\nFirm (assertive)\nFriendly (polite)\n\nTemplates include:\n\nMerchant name and date\nCharge amount\nDispute reason based on flag type\nPlaceholders for card last 4, reference number\n\nImportant: No apostrophes in any generated text.\n\nCLI Reference\n# Analyze statement\npython -m refund_radar analyze --csv file.csv --month 2026-01\n\n# Analyze from stdin\npython -m refund_radar analyze --stdin --month 2026-01 --default-currency CHF\n\n# Mark merchant as expected\npython -m refund_radar mark-expected --merchant \"Amazon\"\n\n# Mark merchant as recurring\npython -m refund_radar mark-recurring --merchant \"Netflix\"\n\n# List expected merchants\npython -m refund_radar expected\n\n# Reset learned state\npython -m refund_radar reset-state\n\n# Export month data\npython -m refund_radar export --month 2026-01 --out data.json\n\nFiles Written\nPath\tPurpose\n~/.refund_radar/state.json\tLearned preferences, merchant history\n~/.refund_radar/reports/YYYY-MM.html\tInteractive audit report\n~/.refund_radar/reports/YYYY-MM.json\tRaw analysis data\nPrivacy\nNo network calls. Everything runs locally.\nNo external APIs. No Plaid, no cloud services.\nYour data stays on your machine.\nPrivacy toggle in reports. Blur merchant names with one click.\nRequirements\nPython 3.9+\nNo external dependencies\nRepository\n\nhttps://github.com/andreolf/refund-radar"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/andreolf/refund-radar",
    "publisherUrl": "https://clawhub.ai/andreolf/refund-radar",
    "owner": "andreolf",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/refund-radar",
    "downloadUrl": "https://openagent3.xyz/downloads/refund-radar",
    "agentUrl": "https://openagent3.xyz/skills/refund-radar/agent",
    "manifestUrl": "https://openagent3.xyz/skills/refund-radar/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/refund-radar/agent.md"
  }
}