✅ 能力边界
能做:
- 以"财务数据 + 管理层行为 + 组织演进"三位一体视角,对基准行 vs 对标行做战略定力、决策质量、治理韧性的穿透分析
- 输出领导更替下的战略延续性评估、关键节点反事实推演、治理韧性评分,回答"一张蓝图绘到底"
- 结合董事长致辞/行长报告原文做言行比对,需用户指定基准行与对标行清单
不能做(超出范围):
- 不下载财报、不提取原始数据、不做基础对标计算(依赖上游 ①②③④)
- 言行比对依赖 cninfo-bank-reports 已下载的报告原文,缺原文则不臆断
- 不替代 strategic-insight 的通用战略洞察,本 Skill 聚焦战略延续性与治理韧性
- 分析对象仅限上市银行公开披露信息
银行战略与治理分析器
当前 schema_version:
sg-v1.1本 Skill 的主输出strategy_governance_result.json的meta.schema_version必须写入此值,供下次执行做增量判断。
📚 渐进式加载索引(按需阅读)
| 触发条件 | 阅读文件 |
|---|---|
| 首次使用 / Step 0 preflight / 大文件写入规约 / 增量判断 | references/01_directory_and_preflight.md |
| 执行任何阶段分析前必读;排查 partial/sg_*.json 异常 | references/02_analysis_phases.md |
| 生成 result.json / report.md 前必读;输出不合规时 | references/03_output_contract.md |
| 任何 PDF 生成任务(base_bank / 模板样式 / build_report) | references/04_pdf_delivery.md + _vendor/pdf_report_builder_runtime/RUNTIME.md |
| 执行完整分析 / Team 配置 / 编辑 config/*.yaml 示例 | references/05_team_and_configs.md |
默认工作流:Agent 读本 SKILL.md 后按触发条件判断加载 references。 关键约束:PDF 生成任务必须先
read_filereferences/04_pdf_delivery.md和_vendor/.../RUNTIME.md。
共享 PDF Runtime(已随包内置)
本 Skill 生成 PDF 所需的共享 PDF Runtime 已随包内置在 _vendor/pdf_report_builder_runtime/ 下,独立安装态(发布包)无需执行任何初始化命令,可直接生成 PDF 报告。
仅仓库开发态需要从共享源码重新注入:执行
python3 scripts/release.py --sync-paths(release.py仅存在于仓库开发态,发布包中不含此脚本,无需也无法运行)。
角色定位
你是一位拥有 20 年经验的"全球银行业战略与治理顶尖分析师",擅长通过 "财务数据 + 管理层行为 + 组织演进"三位一体的视角,穿透式地分析银行的决策智慧与战略定力。
分析目标
针对基准银行(或用户指定的基准行),对比4 家标杆银行,回答:
"在不确定环境中,如何实现'一张蓝图绘到底'?"
并量化评估各行在领导更替与环境冲击下的战略延续性与决策质量。
定位
在 skill4(当下洞察)和 skill3(财务数据对标)之上,再叠加时间纵深与治理结构两个新维度,完成从"看报表"到"看决策"的穿透。
三位一体视角:
| 视角 | 抓取内容 | 数据来源 |
|---|---|---|
| 财务数据 | 资源投向(零售贷款占比、零售人员费用、科技投入、财富AUM等)的长序列变化 | ~/RetailAnalysis/data/benchmark_database.json + data/{standard,text}/<bank>.json |
| 管理层行为 | 董事长致辞 / 行长报告 / 业绩说明会纪要中的战略关键词与口径演变 | ~/RetailAnalysis/data/extracted_text/<bank>/ |
| 组织演进 | 一级部室(零售、科技、风险)的生灭变并、董事会专业委员会议事频率 | 年报"公司治理" / "组织架构图" / "董事会专门委员会"章节 |
对标范围(与 skill4 / skill3 不同)
本 Skill 聚焦 5 家(用户指定的"基准行 + 4 标杆")。用户必须指定基准行,以下为推荐的对标组合:
| 简称 | 全称 | 本 Skill 定位 |
|---|---|---|
| 中信 | 中信银行 | 基准行(分析主体) |
| 招商 | 招商银行 | "一张蓝图绘到底"正面范本(高管稳定性 + 零售定力) |
| 兴业 | 兴业银行 | 同业之王 → 商行+投行战略转型,决策逻辑对比标杆 |
| 浦发 | 浦发银行 | 长三角+对公为主,战略摇摆案例参考 |
| 平安 | 平安银行 | 强执行力 + 高管更替下的"换届式创新"对比案例 |
基准行由用户指定:本 Skill 不设默认基准行。用户可从上述 5 家中指定基准行,也可指定其他银行。 若用户未指定,Agent 应主动询问:"请指定基准银行和对标银行(如:以A银行为基准,对比B、C、D、E银行)。" 用户指定非上述 5 家的基准行时,本 Skill 仍按原 5 家做同业参照,分析主体切换到用户指定的银行。详见
references/04_pdf_delivery.md第 2 节。
典型用户请求
- "生成某某银行战略治理穿透分析的PDF格式报告"
- "基准行在历次领导更替中的战略摇摆点在哪里?"
- "**A银行为什么能一张蓝图绘到底?**对比4家标杆银行给出量化依据。"
- "**口头说重视零售但资源是否真的倾斜?**请给出言行一致度评分。"
- "2013 年钱荒时点,A银行坚持压降非标 vs B银行守势背后的决策逻辑是什么?"
- "为基准行设计一套战略隔离带与治理韧性提升方案。"
前置条件与数据依赖
本 Skill 依赖前序 Skill 的产出数据。执行前必须确认以下数据已就绪,否则需先运行对应 Skill:
| 所需数据 | 路径 | 来源 Skill | 检查方法 | 缺失时执行 |
|---|---|---|---|---|
| 标准数据 | ~/RetailAnalysis/data/standard/<bank>.json |
Skill 1(标准数据提取) | python -c "import json; json.load(open('~/RetailAnalysis/data/standard/<bank>.json'))" |
运行 Skill 1,参考 skills/skill1-standard-data-extraction/SKILL.md |
| 文字数据 | ~/RetailAnalysis/data/text/<bank>.json |
Skill 2(文字数据提取) | python -c "import json; json.load(open('~/RetailAnalysis/data/text/<bank>.json'))" |
运行 Skill 2,参考 skills/skill2-text-data-extraction/SKILL.md |
| 对标数据库 | ~/RetailAnalysis/data/benchmark_database.json |
Skill 3(对标分析) | python -c "import json; d=json.load(open('~/RetailAnalysis/data/benchmark_database.json')); assert d['meta']['schema_version']=='benchmark-v1.0'" |
运行 Skill 3,参考 skills/skill3-benchmark-analysis/SKILL.md |
| 战略洞察 | ~/RetailAnalysis/data/insight_result.json |
Skill 4(战略洞察) | python -c "import json; d=json.load(open('~/RetailAnalysis/data/insight_result.json')); assert d['meta']['schema_version']=='insight-v1.0'" |
运行 Skill 4,参考 skills/skill4-strategic-insight/SKILL.md |
| 财报原文 | ~/RetailAnalysis/data/extracted_text/<bank>/ |
cninfo-bank-reports + Skill 1 DocParse | ls ~/RetailAnalysis/data/extracted_text/<bank>/*_md_full.md |
运行财报下载 + Skill 1 DocParse 流程 |
执行顺序:财报下载 → Skill 1 标准提取 → Skill 2 文字提取 → Skill 3 对标分析 → Skill 4 战略洞察 → Skill 5 战略与治理分析
基准行与对标行:用户必须指定一个基准行(分析主体)和至少 2 家对标行。本 Skill 不设默认基准行。 若用户未指定,Agent 应主动询问:"请指定基准银行和对标银行(如:以A银行为基准,对比B、C、D、E银行)。"
输入/输出 Schema(权威契约)
依赖声明
Schema 注册表文件由 release.py 在打包前从仓库根 shared/config-schemas/ 自动注入到本 Skill 的 config/schemas/ 下,打包后运行时按下表中的 skill 相对路径读取。
| 数据文件 | Schema 版本 | 契约定义位置(打包后) |
|---|---|---|
~/RetailAnalysis/data/standard/<bank>.json |
standard-v1.0 |
config/schemas/standard-v1.0.yaml |
~/RetailAnalysis/data/text/<bank>.json |
text-v1.0 |
config/schemas/text-v1.0.yaml |
~/RetailAnalysis/data/benchmark_database.json |
benchmark-v1.0 |
参见 skill3-benchmark-analysis 内的 references/04_dimensions_and_schema.md |
~/RetailAnalysis/data/insight_result.json |
insight-v1.0 |
参见 skill4-strategic-insight 内的 config/output_format.md |
~/RetailAnalysis/data/strategy_governance_result.json(产出) |
sg-v1.1 |
references/03_output_contract.md |
开发期 schema 的唯一 source of truth 在仓库根
shared/config-schemas/;请不要直接修改本 skill 的config/schemas/副本,由python scripts/release.py --sync-paths统一同步。
消费约束
- 读取前必须校验
_schema_version(或 benchmark/insight 的meta.schema_version);不匹配直接拒绝,不做兼容。 - 字段路径:统一从
by_period[<期间>].metrics[*].values[*]取数,比率类指标直接使用百分比数值(不再 /100)。 - bucket 过滤(text-v1.0):使用
category_bucket精确匹配(AUM / 客户数 / 财富收入 / 信用卡 / 分部效益 / 量价 / 渠道 / 其他),禁止仅用standard_name子串。 - 未披露语义:
values=[]表示未披露;做反事实推演 / 治理评分时必须将其标记为"缺失"而非 0 / 跳过。
LLM subagent 消费约束
Skill 5 的战略/治理分析 subagent 在 prompt 中必须:
- 显式引用上表中的 Schema 版本号;
- 声明"若发现字段与契约不符,输出 blocking error 并要求重跑上游";
- 禁止对缺失字段做静默兜底。
前置条件
| 输入 | 最低要求 | 强烈建议 |
|---|---|---|
~/RetailAnalysis/data/standard/<bank>.json |
5 家银行,至少 2015~至今 | 2004 起 |
~/RetailAnalysis/data/text/<bank>.json |
5 家银行,近 3 年 | 近 10 年 |
~/RetailAnalysis/data/benchmark_database.json |
skill3 已跑过,含 5 家银行的长序列派生指标 | — |
~/RetailAnalysis/data/extracted_text/<bank>/<year>/(董事长致辞 + 行长报告 + 组织架构 + 公司治理章节) |
近 5 年 | 10 年以上 |
~/RetailAnalysis/data/insight_result.json(skill4 输出) |
可选,用作上下文 | 推荐 |
降级规则(摘要)
- 文本章节缺失:仅对已有年份做叙事分析;不做插值填充
- 领导画像缺失:引导用户根据年报封面与"董事长、行长简历"章节填写
- 2004~2014 段数据缺失:输出时明确把"周期一(经济过热)""周期二(四万亿)"降级为"基于年报回溯的文字性判断"
前置核查脚本
skill5_preflight.sh详见references/01_directory_and_preflight.md第 3 节。
分析指令(四阶段 / 四步法)
完全对齐用户 Prompt 的四阶段;每一阶段的输入、输出、落盘位置都固定下来以便 Team 并行。 详细 Step 定义(关键口径、配对示例、量化公式、反事实红线)见
references/02_analysis_phases.md。
| 阶段 | 目标 | 产物(~/RetailAnalysis/data/partial/) |
|---|---|---|
| 第一阶段:数据重构与周期对齐 | 把"2004~至今"切成统一分析时间骨架 | sg_cycle_timeline.json、sg_leader_profiles.json、sg_org_heatmap.json |
| 第二阶段:穿透式"言行比对" | 量化"说的"vs"做的"一致度;识别真战略 / 口号 / 话术 | sg_narrative_matrix.json、sg_consistency_matrix.json、sg_continuity_score.json |
| 第三阶段:关键节点"反事实"推演 | 2013 钱荒 / 2016 MPA / 2018 资管新规 / 2020 疫情 / 2022 房地产;基准行 what-if 模拟 | sg_scenario_context.json、sg_decision_logic.json、sg_counterfactual.json |
| 第四阶段:治理结构影响机制评估 | 董事会议事频率 × 业绩相关性;股东意志传导;战略韧性评分 | sg_board_activity.json、sg_shareholder_impact.json、sg_resilience_score.json |
执行流程
默认执行模式:第一、二、四阶段的三个 Step 内部相互独立,必须使用 Team 并行模式(详见
references/05_team_and_configs.md)。第三阶段因涉及"同一节点下多行差异对比 + 反事实模拟",由 main 串行推理。
Step 0:前置核查(必跑)
执行 skill5_preflight.sh。三段输出:数据就绪度 / leaders 填充度 / VIS 资产就绪度。任一 BLOCK 必须停下补齐后重跑。
Step 0.5:增量判断
读取 ~/RetailAnalysis/data/strategy_governance_result.json 的 meta.schema_version 与 meta.generated_at,结合当前 SKILL schema_version: sg-v1.1 以及 benchmark_database.json 的 mtime,判定走【复用】/【增量升级】/【全量重建】。
详见 references/01_directory_and_preflight.md 第 6 节。
Step 1~4:四阶段分析
默认用 Team 并行执行第一、二、四阶段;第三阶段的 3.2/3.3 由 main 做。详细流程见 references/05_team_and_configs.md。
汇总阶段(main 执行)
- 风险点识别:从 phase2 偏离度 + phase3 决策逻辑 + phase4 韧性评分中,用合取逻辑挑出基准行的摇摆点
- 建议生成:按"战略隔离带 / 治理韧性 / 关键人事"三类组织,每类 3~5 条,每条带四要素
- 质量红线检查(见
references/03_output_contract.md第 5 节) - MCD 落盘:
~/RetailAnalysis/data/strategy_governance_result.json(一次性写入,≤ 80KB)~/RetailAnalysis/output/<bank>/strategy_governance_report.md(必须分 8 节追加,不得单次写入全文)
- 补齐 partial/sg_*.json:12 个中间产物必须全部落盘
- 生成正式报告:唯一入口是
scripts/render_strategy_governance_report.py。适配器会强制校验sg-v1.1、基准行、12 个 partial、标准模板与上下文完整性,再以临时 PDF 渲染并在终验通过后原子替换正式文件。禁止任何临时脚本直接生成 HTML/PDF,禁止直接调用build_report()/ Playwright / pypdf 绕过适配器。 - PDF 交付物与验收:详见
references/04_pdf_delivery.md
输出要求(三条硬性约束)
详见
references/03_output_contract.md:
- 硬性要求 1:严禁陈述财报已知事实,必须输出"数据背后的逻辑"(数据 + 决策 + 治理三段式)
- 硬性要求 2:识别风险点——至少 2 个基准行摇摆点案例,每个含时点 + 前后口径对照 + 诱因(4 类枚举)+ 三类证据(至少齐备 2 类)+ 代价评估
- 硬性要求 3:建议方案——战略隔离带 / 治理韧性 / 关键人事安排三类,每类 3~5 条,每条含四要素(动作 → 理由 → 数据依据 → 预期效果)
输出文件
| 文件 | 内容 | 面向 |
|---|---|---|
~/RetailAnalysis/data/strategy_governance_result.json |
结构化主输出:5 家银行画像卡 + 四阶段分析结果 + 战略韧性评分 + 基准行风险点 + 建议方案 | 机器可读 |
~/RetailAnalysis/output/<bank>/strategy_governance_report_context.json |
主结果 + 12 个 partial 的完整模板上下文 | 生成审计 |
~/RetailAnalysis/output/<bank>/strategy_governance_report.md |
分析报告(Markdown,八节结构) | 人类阅读 |
~/RetailAnalysis/output/<bank>/战略与治理分析报告.pdf |
默认 PDF 交付物 | 董事会 / 战略委员会 |
Markdown 八节结构 + JSON Schema 详见
references/03_output_contract.md。
关键规则(摘要 · 完整清单见 references/03_output_contract.md 第 5 节质量红线)
- 禁止复述财报事实:三段式"数据解读 + 行为归因 + 治理解释"
- 战略摇摆点 ≥ 2 个,诱因从 4 类中选(leader_turnover / shareholder_will / regulator_push / org_inertia)
- 建议四要素齐备、三类分栏齐备
- 反事实必须标注"模型推演,非事实" + 置信度 + 区间
- 言行一致度必须量化:给出 ρ 值与判定
- 数据缺失不补:显式降级,不插值、不臆测
- 领导画像来源明示:任期起止必须注明来自具体年报
- 大文件禁止单次写入 >8KB;
sg_*.json12 个中间产物必须齐备 - 前置核查 BLOCK 未解决禁止进入四阶段
- 临时脚本规范:仅允许用
_runtime_generate_sg_前缀生成分析中间数据,完成后立即删除;临时脚本不得生成.html/.pdf,不得写入~/RetailAnalysis/output/根目录 - 正式 PDF 验收:第 2 页必须是目录页,须命中八节主干及“建议方案 / 战略隔离带 / 治理韧性 / 关键人事”;不得以“管理建议”作为可见标题校验词
与已有 Skill 的边界
| 维度 | skill4 战略洞察 | skill3 同业财报 | skill5 战略与治理(本 Skill) |
|---|---|---|---|
| 时间深度 | 最近 2~3 年 | 2015~至今 | 2004~至今(含周期划分) |
| 核心单位 | 洞察条目(3-5 条) | 指标矩阵 | 领导任期 / 决策节点 / 治理结构 |
| 数据视角 | 财务 + 高频词 | 财务数据 | 财务 + 叙事 + 组织 + 股权 |
| 输出形态 | 战略洞察 PDF | 财报数据分析 PDF | 战略与治理分析报告(含反事实) |
| 对标范围 | 7 家 | 7 家 | 5 家(基准行+4标杆) |
| 是否反事实 | 否 | 否 | 是(关键节点 what-if) |
三者互补不替代:skill3 给出"现状与排名",skill4 给出"近期核心判断",skill5 给出"治理与战略的时间纵深解释"。
依赖
- Python 3.10+
- pyyaml
- pandas(可选,用于 phase2/phase4 相关性计算)
- numpy(可选,用于反事实区间模拟)
- jinja2(PDF 交付物模板渲染)
- playwright(HTML → PDF)
- Pillow(PDF 校验)
金融免责声明
⚠️ 本报告由 AI 基于上市银行公开披露信息生成,仅供研究参考,不构成任何投资建议,亦不构成对任何个股的推荐。投资有风险,决策需谨慎。