Getting it into your agent
There is no command for this one: it runs only inside a plugin, and the catalogue could not identify which plugin ships it. The source is linked below.
Wrote 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/duolongworld/ai_renaissance/cninfo)<a href="https://agentmods.dev/skills/duolongworld/ai_renaissance/cninfo"><img src="https://agentmods.dev/badge/skills/duolongworld/ai_renaissance/cninfo/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/duolongworld/ai_renaissance/cninfo"><img src="https://agentmods.dev/badge/skills/duolongworld/ai_renaissance/cninfo.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.00082 | $0.02716 |
| Opus 5 | $0.00041 | $0.01358 |
| Sonnet 5 | $0.00016 | $0.00543 |
| Haiku 4.5 | $0.00008 | $0.00272 |
Grade A, and why
cninfo 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 11d ago.
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.
How it starts
The opening of the file, as written. The whole thing — 237 lines — stays where its author put it; the contents beside it link to each section on GitHub.
巨潮资讯网公告数据契约 Skill
1. 适用范围
所属小组:开发3组(数据)
适用任务:
- 描述从巨潮资讯网(cninfo.com.cn)获取 A 股上市公司法定披露公告所需的数据契约
- 提供两类查询能力:(a) 单股指定财年的定期报告本体(年报/一季报/中报/三季报);(b) 单股时间窗的全部公告列表
- 输出包含 PDF 直链路径 + PyMuPDF 提取的 Markdown 全文,供财务分析/事件追踪/舆情前置等 Skill 消费
- 适合 A 股全市场(沪/深/创业板/科创板/北交所),回溯历史可至 2021 年
边界说明:
- 本 Skill 只描述数据契约,真实抓取逻辑在外部独立开源工具
use_cninfo - 适配薄包装位于
data_sources/cninfo.py(CninfoDataSource),内部 subprocess 调cninfoCLI 并解析 JSON - 数据源是法定披露平台,不存在"代表性偏差",但 cninfo 接口
pageSize服务端硬限 30,长时间窗会触发翻页,建议每次窗口 ≤ 1 个月 - 部分 PDF 是扫描件(主要是会计师审计意见 / 内控鉴证),
extracted_pages=0时 md 正文为空,本 Skill 不内置 OCR - 同一份报告可能有 2 条记录(announcementId 不同 PDF 内容相同),需在调用方按
(stock_code, ann_date, title)去重 - 二次访问命中本地缓存(
~/.cache/cninfo/,可被$CNINFO_CACHE_DIR覆盖),秒级返回不发网络
2. 执行数据源
真实数据获取逻辑位于:
data_sources/cninfo.py # 薄 shim,subprocess 调 use_cninfo CLI
推荐调用方式:
from data_sources import CninfoDataSource
source = CninfoDataSource()
# 拿茅台 2024 年报本体
r = source.get_periodic_report(stock_code="600519", year=2024, kind="annual")
# 拿茅台 2025-04 全月公告(仅列表)
r = source.get_announcements(stock_code="600519", since="2025-04-01", until="2025-04-30")
# 拿茅台 2025-04 全月公告并下载 + 解析全文
r = source.get_announcements(
stock_code="600519", since="2025-04-01", until="2025-04-30", download=True,
)
前置依赖(用户在 Agent 运行环境装好):
# 必装
git clone https://github.com/rollysys/use_cninfo.git
cd use_cninfo && pip install -e .
# 可选(启用 search 标签过滤,本契约暂未暴露,后续扩展)
git clone https://github.com/rollysys/announcement_filter.git
cd announcement_filter && pip install -e .
cninfo 命令需要在 PATH 中(pip install -e . 自动配置)。CninfoDataSource 初始化时若未找到 CLI 会输出 warning,所有方法返回 status: error 并在 error 字段提示安装命令。
3. 输入参数
get_periodic_report(stock_code, year, kind, force=False)
必填参数
| 参数 | 类型 | 说明 | 示例 |
|---|---|---|---|
| stock_code | string | 6 位股票代码(无后缀) | "600519" |
| year | int | 报告所属财年 | 2024 |
| kind | string | 报告类型:annual / q1 / h1 / q3 |
"annual" |
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.
- 11d ago First seen · 237 lines · 82 tokens per session scan A 4634b08d0d5c
cninfo is a skill published in the GitHub repository duolongworld/AI_Renaissance (59 stars, last pushed 14d ago), licensed Apache-2.0. It adds 82 tokens to every session and 2,716 once invoked, about $0.0004 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-08-30.
Other skills, from other repositories
invoice
A printable invoice page — sender + recipient block, line items table, tax breakdown, totals, and payment instructions. Use when the brief mentions "invoice", "bill", "billing statement", or "发票".
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.
cwicr-report-generator
Generate professional cost estimation reports from CWICR calculations. HTML, PDF, Excel outputs with charts and breakdowns.
procesar-mis-estados-de-cuenta
Proceso un lote de estados de cuenta bancarios y de tarjeta de crédito en PDF o CSV de principio a fin: extraigo cada transacción (subagentes Haiku en paralelo), normalizo los nombres de las contrapartes, categorizo contra tu plan de cuentas bloqueado (subagentes Sonnet en paralelo), detecto transferencias entre…
fin-paper-convert
Compile LaTeX to PDF and convert to target journal format.