{
  "schemaVersion": "1.0",
  "item": {
    "slug": "finance-statements",
    "name": "Finance Statements",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/winlinvip/finance-statements",
    "canonicalUrl": "https://clawhub.ai/winlinvip/finance-statements",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/finance-statements",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=finance-statements",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.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",
      "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/finance-statements"
    },
    "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/finance-statements",
    "agentPageUrl": "https://openagent3.xyz/skills/finance-statements/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finance-statements/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finance-statements/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": "Finance Statements",
        "body": "Track and record financial statement data into memory tracking files."
      },
      {
        "title": "Step 1: Identify the Target File",
        "body": "Scan memory/finance/ for files matching *statement* patterns:\n\nls memory/finance/*statement* 2>/dev/null\n\nAlways present the list and ask the user which file(s) to update, even if they mentioned a target. This ensures the right file is confirmed before writing."
      },
      {
        "title": "Step 2: Load Target File & Accept New Statement",
        "body": "Read the target file to understand its existing structure, format, and conventions\nAccept the new statement content from the user — this includes:\n\nThe source file path (e.g., PDF filename like MasterCard Statement-1234 2025-03-25.pdf)\nThe statement content (extracted PDF text, pasted content, etc.)\nRecord both the file path and content for reference\n\n\nIdentify the statement period, card/account, and key figures from the new data\n\nPage-by-Page Mode\n\nWhen the user says they'll provide pages one by one (or specifies a target file upfront):\n\nAfter Step 1, read the target file to learn its structure\nFor each page the user provides:\n\nParse the content immediately\nAppend the parsed transactions to the target file right away (don't wait for all pages)\nConfirm what was recorded (e.g., \"Page 1: recorded 15 transactions, running total $X\")\n\n\nAfter the last page (user says \"done\", \"last page\", or \"that's all\"):\n\nRun Step 4 (validate math) against the full statement\nUpdate the period index table with the summary row\n\nThis avoids losing context across many pages and gives the user incremental progress.\n\nChinese Statements\n\nWhen statement content is in Chinese:\n\nTranslate descriptions to English but keep the original Chinese in parentheses\n\nExample: Amazon Shopping (亚马逊购物)\n\n\nTranslate column headers, summary fields, and notes to English\nCurrency amounts stay as-is (CNY ¥, etc.)\nDate formats: convert to YYYY-MM-DD"
      },
      {
        "title": "Step 3: Record",
        "body": "Match the format and conventions of the existing file exactly (table structure, headers, field names, date formats, description shortening style)\nAdd a summary row to the period index table (if one exists)\nAdd the detailed statement section with:\n\nPeriod summary (previous balance, payments, purchases, interest, fees, new balance, rewards)\nTransaction table with all line items\n\n\nInsert in chronological order, before any other card sections\nShorten merchant descriptions to match existing style (e.g., \"GOOGLE*YOUTUBE SUPER G.CO/HELPPAY#NS ...\" → \"Google YouTube Super\")"
      },
      {
        "title": "Step 4: Validate the Math",
        "body": "After merging, independently verify the statement's arithmetic:\n\nSum all transactions (positive = charges, negative = credits/payments)\nCheck: Previous Balance + Purchases & Debits − Payments & Credits + Interest + Fees = New Balance\nCheck: Transaction sum should equal (Purchases & Debits − Payments & Credits)\nReport to user:\n\n✅ \"Statement math checks out\" if totals match (within $0.02 rounding tolerance)\n⚠️ \"Discrepancy found: calculated X, statement says Y\" if they don't match — flag specific items if possible\n\nAlso verify:\n\nCash back / points calculations if data is available\nPayment due dates and minimum payments are recorded\nNo duplicate transactions (same date + amount + description appearing twice unless genuinely separate)"
      },
      {
        "title": "File Naming Convention",
        "body": "Statement files live in memory/finance/ and follow this pattern:\n\n{bank}-{holder}-{type}-{accountid}-statements.md\n\nbank: Institution name (rbc, bmo, cibc, td, mbna, manulife, hsbc-hk, scb)\nholder: Account holder — john, jane, or joint\ntype: Account type (chequing, saving, mc, visa)\naccountid: Last digits or full account number\n\nExamples:\n\nrbc-john-mc-1234-statements.md\nrbc-jane-saving-5678901-statements.md\ntd-joint-9876543-statements.md\nbmo-jane-123456789-statements.md\n\nWhen creating a new statement file, follow this convention.\n\nCreate New Statement File from Existing Template\n\nWhen the user wants to create a new statement file for a different bank/account using an existing file as a structural template:\n\nRead the source file to extract its structure: section headings, subsection titles, table headers, summary field names, index table format\nCreate the new file (following the naming convention) with:\n\nAll section headings and subsection titles preserved\nAll table headers and column structures preserved\nNo data copied — use placeholders or leave empty rows\nUpdate bank name, account number, card number references to the new account\n\n\nPresent the new file to the user for confirmation before they start adding statements\n\nThis ensures consistent formatting across all statement tracking files."
      },
      {
        "title": "Notes",
        "body": "When a card has both primary and co-applicant transactions, keep them in separate sub-tables (matching existing format)\nPreserve existing content — only append new periods, never modify historical data\nIf the statement period already exists in the file, warn the user before overwriting"
      }
    ],
    "body": "Finance Statements\n\nTrack and record financial statement data into memory tracking files.\n\nWorkflow\nStep 1: Identify the Target File\n\nScan memory/finance/ for files matching *statement* patterns:\n\nls memory/finance/*statement* 2>/dev/null\n\n\nAlways present the list and ask the user which file(s) to update, even if they mentioned a target. This ensures the right file is confirmed before writing.\n\nStep 2: Load Target File & Accept New Statement\nRead the target file to understand its existing structure, format, and conventions\nAccept the new statement content from the user — this includes:\nThe source file path (e.g., PDF filename like MasterCard Statement-1234 2025-03-25.pdf)\nThe statement content (extracted PDF text, pasted content, etc.)\nRecord both the file path and content for reference\nIdentify the statement period, card/account, and key figures from the new data\nPage-by-Page Mode\n\nWhen the user says they'll provide pages one by one (or specifies a target file upfront):\n\nAfter Step 1, read the target file to learn its structure\nFor each page the user provides:\nParse the content immediately\nAppend the parsed transactions to the target file right away (don't wait for all pages)\nConfirm what was recorded (e.g., \"Page 1: recorded 15 transactions, running total $X\")\nAfter the last page (user says \"done\", \"last page\", or \"that's all\"):\nRun Step 4 (validate math) against the full statement\nUpdate the period index table with the summary row\n\nThis avoids losing context across many pages and gives the user incremental progress.\n\nChinese Statements\n\nWhen statement content is in Chinese:\n\nTranslate descriptions to English but keep the original Chinese in parentheses\nExample: Amazon Shopping (亚马逊购物)\nTranslate column headers, summary fields, and notes to English\nCurrency amounts stay as-is (CNY ¥, etc.)\nDate formats: convert to YYYY-MM-DD\nStep 3: Record\nMatch the format and conventions of the existing file exactly (table structure, headers, field names, date formats, description shortening style)\nAdd a summary row to the period index table (if one exists)\nAdd the detailed statement section with:\nPeriod summary (previous balance, payments, purchases, interest, fees, new balance, rewards)\nTransaction table with all line items\nInsert in chronological order, before any other card sections\nShorten merchant descriptions to match existing style (e.g., \"GOOGLE*YOUTUBE SUPER G.CO/HELPPAY#NS ...\" → \"Google YouTube Super\")\nStep 4: Validate the Math\n\nAfter merging, independently verify the statement's arithmetic:\n\nSum all transactions (positive = charges, negative = credits/payments)\nCheck: Previous Balance + Purchases & Debits − Payments & Credits + Interest + Fees = New Balance\nCheck: Transaction sum should equal (Purchases & Debits − Payments & Credits)\nReport to user:\n✅ \"Statement math checks out\" if totals match (within $0.02 rounding tolerance)\n⚠️ \"Discrepancy found: calculated X, statement says Y\" if they don't match — flag specific items if possible\n\nAlso verify:\n\nCash back / points calculations if data is available\nPayment due dates and minimum payments are recorded\nNo duplicate transactions (same date + amount + description appearing twice unless genuinely separate)\nFile Naming Convention\n\nStatement files live in memory/finance/ and follow this pattern:\n\n{bank}-{holder}-{type}-{accountid}-statements.md\n\nbank: Institution name (rbc, bmo, cibc, td, mbna, manulife, hsbc-hk, scb)\nholder: Account holder — john, jane, or joint\ntype: Account type (chequing, saving, mc, visa)\naccountid: Last digits or full account number\n\nExamples:\n\nrbc-john-mc-1234-statements.md\nrbc-jane-saving-5678901-statements.md\ntd-joint-9876543-statements.md\nbmo-jane-123456789-statements.md\n\nWhen creating a new statement file, follow this convention.\n\nCreate New Statement File from Existing Template\n\nWhen the user wants to create a new statement file for a different bank/account using an existing file as a structural template:\n\nRead the source file to extract its structure: section headings, subsection titles, table headers, summary field names, index table format\nCreate the new file (following the naming convention) with:\nAll section headings and subsection titles preserved\nAll table headers and column structures preserved\nNo data copied — use placeholders or leave empty rows\nUpdate bank name, account number, card number references to the new account\nPresent the new file to the user for confirmation before they start adding statements\n\nThis ensures consistent formatting across all statement tracking files.\n\nNotes\nWhen a card has both primary and co-applicant transactions, keep them in separate sub-tables (matching existing format)\nPreserve existing content — only append new periods, never modify historical data\nIf the statement period already exists in the file, warn the user before overwriting"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/winlinvip/finance-statements",
    "publisherUrl": "https://clawhub.ai/winlinvip/finance-statements",
    "owner": "winlinvip",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/finance-statements",
    "downloadUrl": "https://openagent3.xyz/downloads/finance-statements",
    "agentUrl": "https://openagent3.xyz/skills/finance-statements/agent",
    "manifestUrl": "https://openagent3.xyz/skills/finance-statements/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/finance-statements/agent.md"
  }
}