From financial-report-download
Downloads A-share and HK stock financial report PDFs from Xueqiu (stockn.xueqiu.com) or Tonghuashun (notice.10jqka.com.cn) via web search, parsing, and Python script to local disk.
npx claudepluginhub terancejiang/skill_financial_report_downloadThis skill uses the workspace's default tool permissions.
Download A-share and Hong Kong stock financial report PDFs from `stockn.xueqiu.com` (雪球) with `notice.10jqka.com.cn` (同花顺) as fallback. Both sources enable reliable automated downloads.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Download A-share and Hong Kong stock financial report PDFs from stockn.xueqiu.com (雪球) with notice.10jqka.com.cn (同花顺) as fallback. Both sources enable reliable automated downloads.
Input (stock code, year, report type)
→ Step 0: Parse & detect market
→ Step 1: WebSearch for PDF on stockn.xueqiu.com
→ Step 2: Extract matching PDF URLs
→ Step 3: Identify correct report (filter out summaries, audit reports, etc.)
→ Step 4: Python script downloads PDF to local disk
→ Output: local PDF file path
Parse user input into three parts:
| Pattern | Market | Formatting | Example |
|---|---|---|---|
6-digit starting with 6 | Shanghai A-share | Prefix SH | 600887 → SH600887 |
6-digit starting with 0 or 3 | Shenzhen A-share | Prefix SZ | 300750 → SZ300750 |
| 1-5 digits | Hong Kong | Zero-pad to 5 digits | 700 → 00700 |
Already has SH/SZ prefix | Use as-is | — | SH600887 |
| User Input | report_type | A-share Search Keyword | HK Search Keyword | Publish Time |
|---|---|---|---|---|
| 年报 / annual | 年报 | 年度报告 | annual report | Next year Mar-Apr |
| 中报 / interim | 中报 | 半年度报告 | interim report | Same year Aug-Sep |
| 一季报 / Q1 | 一季报 | 第一季度报告 | (A-share only) | Same year Apr |
| 三季报 / Q3 | 三季报 | 第三季度报告 | (A-share only) | Same year Oct |
Use WebSearch with this query pattern:
A-share: site:stockn.xueqiu.com {formatted_code} {search_keyword} {year}
HK: site:stockn.xueqiu.com {formatted_code} {hk_search_keyword} {year}
If no year specified: try current year first, then previous year. If no results from Xueqiu:
site:notice.10jqka.com.cn {formatted_code} {search_keyword} {year}
site:notice.10jqka.com.cn 伊利股份 2024 年度报告site: prefix as a last resort.Filter search results for PDF URLs from supported sources:
https://stockn.xueqiu.com/.../*.pdfhttps://notice.10jqka.com.cn/.../*.pdfExclude results with titles containing: 摘要, 审计报告, 公告, 利润分配, 可持续发展, 股东大会, ESG, summary, auditor, dividend, 更正, 补充, 意见, 内部控制
Prefer results where:
If no candidates remain: inform user and suggest verifying stock code/year/report type.
Install dependency if needed:
pip install requests --break-system-packages
Run the download script (located at ${CLAUDE_PLUGIN_ROOT}/skills/report-download/scripts/download_report.py):
python3 ${CLAUDE_PLUGIN_ROOT}/skills/report-download/scripts/download_report.py \
--url "<PDF_URL>" \
--stock-code "<formatted_stock_code>" \
--report-type "<report_type>" \
--year "<year>" \
--save-dir "."
The script prints a structured block between ---RESULT--- and ---END---:
status: SUCCESS or FAILEDfilepath: absolute path to downloaded filefilesize: file size in bytesmessage: status messageOn success: Report file path, size (human-readable MB), stock code, year, report type. On failure: Report error message. Suggest checking URL accessibility, retrying, or verifying inputs.