Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add FTShare-Lab/FTShare-skill --skill etf-announcementsgit clone --depth 1 https://github.com/FTShare-Lab/FTShare-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ftshare-lab/ftshare-skill/etf-announcements)<a href="https://agentmods.dev/skills/ftshare-lab/ftshare-skill/etf-announcements"><img src="https://agentmods.dev/badge/skills/ftshare-lab/ftshare-skill/etf-announcements/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ftshare-lab/ftshare-skill/etf-announcements"><img src="https://agentmods.dev/badge/skills/ftshare-lab/ftshare-skill/etf-announcements.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00050 | $0.00940 |
| Opus 5 | $0.00025 | $0.00470 |
| Sonnet 5 | $0.00010 | $0.00188 |
| Haiku 4.5 | $0.00005 | $0.00094 |
Grade A, and why
etf-announcements scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
ETF 公告列表
1. 接口描述
| 项目 | 说明 |
|---|---|
| 接口名称 | ETF 公告列表(etf_announcements) |
| 外部接口 | GET /api/v2/market/data/announcements/etf-announcements |
| 请求方式 | GET(query 参数) |
| 适用场景 | 按标的查单只 ETF 全部公告,或按单日日期查全市场 ETF 公告;公告正文 PDF 可按返回的 url_hash 另行下载 |
两种模式二选一:
- 按标的:传
etf_code,查单只 ETF 所有公告。 - 按日期:传
start_date(必须等于end_date,仅支持单日),查指定日期全市场 ETF 公告。
2. 请求参数
| 参数名 | 类型 | 是否必填 | 描述 | 取值示例 | 备注 |
|---|---|---|---|---|---|
| etf_code | string | 二选一 | ETF 代码 | 159915 | 支持裸代码/短后缀/长后缀(159915.SZ、510300.XSHG),大小写不敏感 |
| start_date | string | 二选一 | 日期 | 20260831 | YYYYMMDD;按日期查询时必填,仅支持单日 |
| end_date | string | 否 | 日期 | 20260831 | 不填默认等于 start_date,且必须等于 start_date |
| page | int | 是 | 页码 | 1 | 必填 |
| page_size | int | 是 | 每页条数 | 5 | 必填 |
| --all | - | 否 | 自动翻页拉全量 | - | 仅本子 skill 扩展参数 |
3. 响应说明
外层固定为 code / message / data。data 为分页对象:pageNum / pageSize / total / pages / records。
records 元素:
| 字段名 | 类型 | 说明 |
|---|---|---|
| etf_code | string | ETF 代码,6 位裸代码,不带交易所后缀 |
| etf_name | string | ETF 名称 |
| announcement_id | string | 公告 id |
| announcement_title | string | 公告标题 |
| announcement_time | string | 公告时间,格式 YYYY-MM-DD HH:MM:SS |
| url_hash | string | 公告文件 URL 哈希,用于下载正文文件 |
4. 调用方式
python <RUN_PY> etf-announcements --etf-code 159915 --page 1 --page-size 5
python <RUN_PY> etf-announcements --start-date 20260831 --page 1 --page-size 20
python <RUN_PY> etf-announcements --etf-code 159915 --page 1 --page-size 20 --all
<RUN_PY> 为主 SKILL.md 同级 run.py 的绝对路径。输出 JSON;HTTP 错误输出到 stderr 并以非零状态退出。
5. 注意事项
- 必须提供
etf_code或start_date之一,否则服务端报错(handler 会本地校验并拒绝)。 - 按日期查询仅支持单日:
end_date不填默认等于start_date,填了则必须相等。 - ETF 范围为场内 ETF,不含联接基金、LOF。
- 公告正文下载:
GET /api/v2/market/data/announcements/etf-announcements/{url_hash},响应为 PDF 二进制附件;url_hash须取自本接口返回值,勿硬编码。 - 当前数据源仅覆盖深市 ETF(
159开头);查询沪市代码会返回空列表。
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 65 lines · 50 tokens per session scan A 316304d6107d
etf-announcements is a skill published in the GitHub repository FTShare-Lab/FTShare-skill (64 stars, last pushed yesterday), licensed MIT. It adds 50 tokens to every session and 940 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-11.
Other skills, from other repositories
report-generator
Generate professional HTML/PDF investment reports with interactive visualizations.
iflytek-ocr-invoice
An image-reading tool that extracts structured information from Chinese invoices, receipts, bills, and tickets. OCR means turning text in a photo or scan into computer-readable data.
financial-document-parser
Extract and analyze data from invoices, receipts, bank statements, and financial documents. Categorize expenses, track recurring charges, and generate expense reports. Use when user provides financial PDFs or images.
defeatbeta-dcf
Generate a fully editable Discounted Cash Flow (DCF) valuation spreadsheet for a public company. Builds a single-sheet Excel workbook with WACC, growth estimates, 10-year FCF projections, and fair price — all wired as live formulas so users can flex discount rate or growth assumptions and see fair price update.…
pdf-handling
PDF creation, text extraction, merging, splitting, and form-filling.
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and…