cninfo

cninfo is a skill for Claude Code, Codex from duolongworld/AI_Renaissance. It costs 82 tokens per session (2,716 once invoked), scanned A, original, Apache-2.0.

A data interface for retrieving legally required announcements and periodic reports from CNINFO, the Chinese disclosure website for listed companies, as PDFs and extracted text.

In plain words
What is it for?
Use it to fetch annual, quarterly, and interim reports, list announcements within a date range, download report PDFs, and provide their extracted text for financial or event analysis.
Why use it?
It gives other analyses a standard way to obtain company filings and announcement lists without each one handling the source separately. It also identifies limits such as scanned PDFs and duplicate records.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Not installable: its command points at a path on the author’s own machine, so it runs nowhere else. The line is /Users/x/.cache/cninfo/pdf/600519.SH/20250403__1222993920.pdf.

Good fit Use it to fetch annual, quarterly, and interim reports, list announcements within a date range, download report PDFs, and provide their extracted text for financial or event analysis.

Compare 6 skills from other repositories ↓
Install

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.

Made for: Claude Code, Codex.

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.

agentmods badge for cninfo

README.md
[![agentmods](https://agentmods.dev/badge/skills/duolongworld/ai_renaissance/cninfo/github.svg)](https://agentmods.dev/skills/duolongworld/ai_renaissance/cninfo)
Your own site
<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.

agentmods 80×15 button for cninfo

Your own site · 80×15
<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>
Per session 82 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,716 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 11d ago against content hash 4634b08d0d5c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

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.

skills/data/cninfo/SKILL.md · 237 lines

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 调 cninfo CLI 并解析 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"

Read the full file on GitHub · 237 lines

Changes

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.

  1. 11d ago First seen · 237 lines · 82 tokens per session scan A 4634b08d0d5c

Subscribe to this mod's changes

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.