From 08a442b67faefa5942aff823b5af01e4570f584e Mon Sep 17 00:00:00 2001 From: 1 <wentingyear@gmail.com> Date: Fri, 26 Jun 2026 06:36:59 +0800 Subject: [PATCH] 研报体系建立完毕 --- ana-doc/有色案例/案例存储体系.md | 130 ana-doc/案例审核规范.md | 321 ++ ana-doc/数据抓取脚本说明.md | 174 + ana-doc/案例分析规范.md | 384 ++ ana-doc/有色案例/目录导读.md | 30 ana-doc/案例总纲.md | 111 ana-doc/有色案例/案例分析规范.md | 120 ana-doc/有色案例/案例审核规范.md | 75 ana-doc/有色案例/案例问题记录.md | 73 ana-doc/案例存储体系.md | 563 +++ ana-doc/有色案例/有色研报解析方案.md | 572 +++ /dev/null | 30 ana-doc/案例分析设计.md | 169 + ana-doc/案例审计报告.md | 95 ana-doc/有色案例/案例分析设计.md | 1170 ++++++++ ana-doc/有色案例/案例审计报告.md | 1167 ++++++++ ana-doc/案例执行日志.md | 189 + ana-doc/案例问题记录.md | 67 ana-doc/研报体系/研报分析架构.md | 553 +++ ana-doc/研报体系/研报解析架构.md | 310 ++ ana-doc/研报体系导读.md | 286 ++ ana-doc/有色案例/案例执行日志.md | 1597 +++++++++++ ana-doc/目录导读.md | 135 23 files changed, 7,829 insertions(+), 492 deletions(-) diff --git "a/ana-doc/\346\225\260\346\215\256\346\212\223\345\217\226\350\204\232\346\234\254\350\257\264\346\230\216.md" "b/ana-doc/\346\225\260\346\215\256\346\212\223\345\217\226\350\204\232\346\234\254\350\257\264\346\230\216.md" new file mode 100644 index 0000000..b341bc3 --- /dev/null +++ "b/ana-doc/\346\225\260\346\215\256\346\212\223\345\217\226\350\204\232\346\234\254\350\257\264\346\230\216.md" @@ -0,0 +1,174 @@ +# 数据抓取脚本说明 + +创建人员:Codex +文件职责:说明 `project-info/ana-data/tools` 中数据抓取、外部来源归档和本地 MySQL 只读导出脚本的使用口径。 +管理规范/模板:案例分析规范.md;案例存储体系.md;案例审核规范.md;研报体系导读.md。 +引用文件:案例分析规范.md;案例存储体系.md;案例审核规范.md;研报体系/研报分析架构.md。 +记录方式:工具使用说明;新增、下线或改变抓数脚本时同步更新。 + +## 1. 定位 + +`ana-data/tools/` 是研报案例体系的工具脚本入口,不是新的数据目录,也不是正式证据库。脚本用于帮助案例分析员完成外部资料抓取、本地数据库只读导出和市场反向补漏初筛。 + +正式数据仍按 `案例存储体系.md` 落点: + +1. 原始研报、公告、网页保存件和外部资料原件进入 `ana-data/cases/<行业案例>/raw/` 或 `supplement/`。 +2. 外部补充来源、网页快照、市场显影初筛和查询导出进入 `ana-data/cases/<行业案例>/supplement/`。 +3. 证据链、范围闸门、结论证据映射进入 `evidence/`。 +4. 来源、参数、hash、SQL、脚本输出清单进入 `manifest/`。 +5. 临时调试文件进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,不得作为正式证据入口。 + +## 2. 使用前提 + +案例分析员使用这些脚本前必须满足: + +1. 父级 `案例总纲.md` 已登记真实案例。 +2. 行业 `案例分析设计.md` 已写清 `case_id`、`batch_id`、`run_id`、输入范围、输出物、存储路径和验收方式。 +3. 需要网上补充、外部信息、新闻公告、事件链、市场显影或暗线判断时,必须使用 `darkline` 技能和信息拓扑方法。 +4. 设计审核未通过前,只能做资料盘点或 dry-run,不得把脚本产物作为正式结论依据。 +5. 使用脚本后必须在行业 `案例执行日志.md` 记录脚本名、参数摘要、输出路径、manifest 路径、异常和自检结论。 + +## 3. 脚本清单 + +| 脚本 | 作用 | 默认输出 | +|---|---|---| +| `ana-data/tools/collect_web_sources.py` | 抓取显式 URL,保存网页、PDF、CSV、JSON 或文本快照 | 行业 `supplement/` 和 `manifest/web_source_manifest_<run_id>.csv` | +| `ana-data/tools/export_mysql_query.py` | 执行本地 MySQL 只读 SQL 并导出 CSV | 行业 `supplement/`、`evidence/` 或 `manifest/`,以及 `manifest/mysql_query_manifest_<run_id>.csv` | +| `ana-data/tools/market_gap_scan_mysql.py` | 基于本地 A 股画像和日线表扫描近 3 个月强显影公司 | 行业 `supplement/market_manifestation_gap_*` 和 `manifest/market_manifestation_gap_manifest_<run_id>.csv` | + +## 4. 外部网页和文件抓取 + +适用场景: + +1. 抓取交易所、政府、行业协会、公司官网、投资者关系、公开报告页面。 +2. 保存外部网页快照,作为缺口补证或 source gap audit 输入。 +3. 抓取明确 URL 的 PDF、CSV、JSON 或文本资料。 + +示例: + +```powershell +python ana-data/tools/collect_web_sources.py ` + --industry-case 有色案例 ` + --case-id ANA-YS-INDUSTRY-001 ` + --batch-id BATCH-003 ` + --run-id RUN-ANA-YS-INDUSTRY-001-BATCH-003 ` + --url "https://www.lme.com/market-data/reports-and-data/lme-official-prices" ` + --target supplement +``` + +使用要求: + +1. URL 必须是显式给出的公开来源,不使用脚本绕过登录、付费墙、验证码或反爬限制。 +2. 抓取网页用于补资料或市场显影时,设计和日志里必须说明已使用 `darkline` 方法。 +3. 输出文件和文本快照只作为来源材料;进入结论前还必须抽取证据、标记时间戳和来源置信度。 +4. 抓取失败也会进入 manifest,分析员应在执行日志说明是否重试、换源或保留缺口状态。 + +## 5. 本地 MySQL 只读导出 + +适用场景: + +1. 从本地 `tianxia` 数据库导出 A 股 K 线、公司画像、行业概念、市场广度或其他已纳入全局公共表的数据。 +2. 为公司池、市场反向补漏、涨停/强势股扫描、公司列表补证生成 CSV。 +3. 将 SQL、输出 CSV 和执行记录纳入 manifest,方便审核员复核。 + +环境变量: + +```powershell +$env:TIANXIA_MYSQL_PASSWORD='本机 MySQL 密码' +``` + +示例: + +```powershell +python ana-data/tools/export_mysql_query.py ` + --industry-case 有色案例 ` + --case-id ANA-YS-INDUSTRY-001 ` + --batch-id BATCH-003 ` + --run-id RUN-ANA-YS-INDUSTRY-001-BATCH-003 ` + --artifact-name ys_company_profile_candidates ` + --sql "SELECT snapshot_date, symbol, stock_name, industry_l1, industry_l2, concepts_raw FROM a_share_profile_snapshot WHERE industry_l1 LIKE '%有色%' LIMIT 200" +``` + +使用要求: + +1. 只允许 `SELECT`、`WITH`、`SHOW`、`DESCRIBE`、`DESC`、`EXPLAIN` 类只读语句。 +2. 禁止 `INSERT`、`UPDATE`、`DELETE`、`CREATE`、`DROP`、`ALTER`、`LOAD`、`REPLACE`、`TRUNCATE`、`GRANT` 等写入或管理语句。 +3. 不得在命令行、SQL 文件、说明文档或输出 manifest 中写数据库密码。 +4. SQL 文件会进入行业 `manifest/`,输出 CSV 进入指定 `supplement/`、`evidence/` 或 `manifest/`。 + +## 6. 市场反向补漏扫描 + +适用场景: + +1. 准备输出行业视图、市场视图、公司视图前,检查近 3 个月是否存在研报样本遗漏的强显影公司。 +2. 用本地 `a_share_profile_snapshot` 和 `a_share_daily_price` 初筛公司池和行情表现。 +3. 给后续人工或 AI 的 scope 闸门、公司核心业务重归因和补资料队列提供输入。 + +示例: + +```powershell +python ana-data/tools/market_gap_scan_mysql.py ` + --industry-case 有色案例 ` + --case-id ANA-YS-INDUSTRY-001 ` + --batch-id BATCH-003 ` + --run-id RUN-ANA-YS-INDUSTRY-001-BATCH-003 ` + --start-date 2026-03-26 ` + --end-date 2026-06-26 ` + --keyword 有色 ` + --keyword 铜 ` + --keyword 铝 ` + --keyword 锂 ` + --keyword 稀土 ` + --keyword 黄金 ` + --keyword 小金属 +``` + +输出口径: + +1. `market_manifestation_gap_audit_*.csv`:强显影候选、涨幅、强势日、放量指标和待 review 状态。 +2. `market_manifestation_gap_summary_*.json`:扫描窗口、关键词、参数和结果摘要。 +3. `market_manifestation_gap_manifest_*.csv`:SQL、输出路径、row_count 和审核状态。 + +使用要求: + +1. 扫描结果只表示市场显影和资料缺口,不是投资建议。 +2. 每个候选公司必须再按行业方案做核心业务重归因,标记 `CORE_INDUSTRY`、`ADJACENT_DOWNSTREAM` 或 `FALSE_THEME_OR_NOISE`。 +3. `CORE_INDUSTRY` 才能进入补资料队列;`ADJACENT_DOWNSTREAM` 单独 review;`FALSE_THEME_OR_NOISE` 只保留审计记录。 +4. 需要解释异常行情、新闻公告、事件链或暗线时,必须继续使用 `darkline` 方法。 + +## 7. 设计和日志写法 + +行业 `案例分析设计.md` 至少写清: + +1. 是否需要抓取外部资料、MySQL 导出或市场反向补漏。 +2. 使用哪些脚本、输入范围、关键词、日期窗口、SQL 来源和输出路径。 +3. 脚本产物如何进入 `supplement/`、`evidence/`、`manifest/` 和后续证据数据卡。 +4. 审核员如何复核脚本参数、SQL、输出 row_count、hash、manifest 和结论边界。 + +行业 `案例执行日志.md` 至少记录: + +1. 脚本名和执行时间。 +2. `case_id`、`batch_id`、`run_id`。 +3. 参数摘要,不记录密码。 +4. 输出文件路径和 manifest 路径。 +5. 成功、失败、重试、缺口保留或降级状态。 + +## 8. 审核口径 + +审核员检查脚本产物时,至少确认: + +1. 脚本使用已经在设计中声明,或执行日志解释了必要偏离。 +2. 输出没有留在 `ana-data/tools/` 或私人工作区。 +3. SQL 是只读语句,且没有泄露密码、token、cookie 或私有凭据。 +4. 输出 CSV、网页快照、SQL、summary 和 manifest 能互相反查。 +5. 市场反向补漏结果没有直接写成投资结论。 +6. 需要 darkline 的场景已经按 darkline 方法留痕。 + +## 9. 禁止事项 + +1. 不得把 `ana-data/tools/` 当成结果目录或证据库。 +2. 不得让脚本绕过设计审核、执行日志、manifest 和执行审核。 +3. 不得抓取需要登录、付费、验证码或明确禁止自动访问的来源。 +4. 不得把数据库密码、token、cookie 或授权信息写入脚本参数、SQL 文件、manifest 或输出文档。 +5. 不得执行写库 SQL 或修改全局公共表。 +6. 不得把市场显影扫描结果直接当作行业覆盖完整、公司推荐或买卖建议。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\234\211\350\211\262\347\240\224\346\212\245\350\247\243\346\236\220\346\226\271\346\241\210.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\234\211\350\211\262\347\240\224\346\212\245\350\247\243\346\236\220\346\226\271\346\241\210.md" index dac17c2..d9175e2 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\234\211\350\211\262\347\240\224\346\212\245\350\247\243\346\236\220\346\226\271\346\241\210.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\234\211\350\211\262\347\240\224\346\212\245\350\247\243\346\236\220\346\226\271\346\241\210.md" @@ -1,93 +1,557 @@ -# 有色研报解析方案 +# 有色研报解析方案 创建人员:Codex 文件职责:记录有色行业研报解析、分析、输出和归档的行业方案,作为有色案例执行研报任务时的直接方案入口。 -管理规范/模板:研报解析架构.md;研报分析架构.md;研报存储体系.md;案例分析规范.md。 -引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例审计报告.md。 +管理规范/模板:../研报体系/研报解析架构.md;../研报体系/研报分析架构.md;../案例存储体系.md;案例分析规范.md。 +引用文件:../案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例审计报告.md。 记录方式:行业方案文档;有色行业范围、流程、输出或专属表变化时更新。 ## 1. 母版继承 -本方案必须继承 3 个研报母版: +本方案必须继承父级研报方法母版和父级存储体系: -1. `研报解析架构.md` -2. `研报分析架构.md` -3. `研报存储体系.md` +1. `../研报体系/研报解析架构.md` +2. `../研报体系/研报分析架构.md` +3. `../案例存储体系.md` -当前母版未迁入 `project-info` 时,临时引用: +研报存储规则已经融入父级 `../案例存储体系.md`,本方案不再引用独立的 `研报存储体系.md` 作为正式执行入口。 -1. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报解析架构.md` -2. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报分析架构.md` -3. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报存储体系.md` +本方案可以细化有色行业流程,但不得违反研报方法母版和父级案例体系的底线要求。除流程以外的证据、归档、输出、审核和结论边界必须遵守父级母版。 -本方案可以细化有色行业流程,但不得违反研报母版的底线要求。除流程以外的证据、归档、输出、审核和结论边界必须遵守母版。 +本方案当前不覆写 `../研报体系/研报解析架构.md` 的核心流程,只做有色行业细化。执行时仍必须按母版要求先确认三类核心文档目标,再读取资料、建立基础事实卡、解释商业模式、建立主导变量模型、写产业链故事、判断市场状态、做横向对比、做场景映射、形成投资读法、提交审核和归档。 -## 2. 当前状态 +母版对齐表: -本文件当前是有色行业研报解析方案模板。 +| 母版要求 | 有色方案落点 | 当前执行要求 | +|---|---|---| +| 行业目标和边界 | 第 3 节有色行业边界 | 每个 batch 设计必须确认覆盖的金属、材料、公司和相邻行业排除项 | +| 子行业、技术路线、商业模式或产业链分层 | 第 3、4、6.1 节 | 每个正式输出必须拆成总体行业、子行业、关键公司/资产 | +| 行业专属表 | 第 7 节 | 暂用 CSV/Markdown 文件型清单,后续按审核通过的设计升格 MySQL | +| 人读文档输出方案 | 第 6 节 | 顶层只允许行业视图、市场视图、公司视图三类核心文档 | +| 是否覆写母版流程 | 本节 | 当前不覆写,只细化有色字段和验收清单 | +| 数据缺口和验证指标 | 第 10 节及各数据卡 | 缺关键数据时降级为 `DATA_GAP_REVIEW` 或 `DATA_PARTIAL` | +| raw/manifest/source/evidence/缺口/暗线/人读验收 | 第 5、8、12 节 | 不得绕过父级存储、证据链和审核门 | -正式有色研报研究启动后,分析员必须基于本文件补齐具体行业范围、资料清单、输出文档、专属表和证据要求,并提交设计审核。 +## 2. 当前状态与执行门 -## 3. 有色行业范围 +本文件当前为 `v0.1 正式基础方案`,不是空模板。它可以支撑有色行业资料归档、批次解析、证据链沉淀和后续正式行业分析设计;但它不能替代具体案例设计和审核。 -正式任务中应按分析目标确认本次有色范围,可能包括: +当前已知状态: -1. 铜。 -2. 铝。 -3. 稀土。 -4. 钨、钼、锑、锡、锗、镓等小金属。 -5. 贵金属。 -6. 有色资源、冶炼、加工、材料和下游应用公司。 +1. 有色真实案例统一登记在父级 `../案例总纲.md`。 +2. 本目录是行业容器,不维护独立 `案例总纲.md`。 +3. `ANA-YS-INDUSTRY-001` 是有色行业整体研报分析长期案例。 +4. `BATCH-001` 是 30 份 PDF 的存储与转换试运行,只验证归档、转换、manifest 和证据链闭环,不形成有色行业正式结论。 +5. 后续正式有色行业分析必须先在 `案例分析设计.md` 中冻结目标、范围、batch/run、输出物、存储和验收方式,并经过设计审核。 -具体范围以 `案例分析设计.md` 中通过审核的设计为准。 +执行门: -## 4. 核心输出 +1. 方案未覆盖的细分方向,必须先补本方案或在具体设计中补行业范围和专属表定义。 +2. 具体案例设计未通过审核,不得进入正式研报分析。 +3. 只有完成行业视图、市场视图、公司视图并通过执行审核,才能把有色行业结论写成正式结论。 -有色研报案例的核心输出应围绕三类视图展开: +## 3. 有色行业边界 -1. 行业视图:行业结构、细分方向、核心变量、产业链和主要矛盾。 -2. 市场视图:价格、库存、供需、政策、交易显影和市场反向补漏。 -3. 公司视图:公司映射、业务暴露、资源或产能、业绩敏感性和投资读法。 +有色行业默认覆盖以下方向,具体批次以通过审核的 `案例分析设计.md` 为准: -扩展文档可以包括细分行业概览、细分行业详情、核心指标数据卡、公司深读、公开资料补充清单和外部可读版本。 +1. 基本金属:铜、铝、铅、锌、镍、锡等。 +2. 小金属:钨、钼、锑、锗、镓、铟、铋、锂、钴等。 +3. 稀土:轻稀土、重稀土、磁材和相关分离、冶炼、应用链条。 +4. 贵金属:黄金、白银、铂族金属等。 +5. 有色加工和材料:铜箔、铝加工、合金、靶材、功能材料等。 +6. 相关公司:资源、冶炼、加工、材料、贸易、回收和下游应用公司。 -## 5. 有色专属表 +边界规则: -有色行业专属表不在父级通用存储体系中固定。 +1. 钢铁、煤炭、石油化工、纯设备、纯新能源下游默认不纳入有色核心范围;如果因材料、资源或市场显影相关,需要在设计中标记为相邻行业 review。 +2. 公司同时涉及多个行业时,只把有色相关业务纳入有色行业视图;公司全景投资读法写入公司视图并说明非有色业务影响。 +3. 市场强势标的只有在核心业务属于有色或强相关材料链时,才能进入核心补档队列;宽题材噪音只做审计记录。 -正式案例中如需建表,应在具体案例设计中定义。可选方向包括: +## 4. 有色核心变量 -1. 细分金属基础事实表。 -2. 价格和库存指标表。 -3. 供需平衡和产能表。 -4. 公司与金属品种映射表。 -5. 项目、资源、产能或下游应用映射表。 -6. 核心指标数据卡表。 +有色分析不得默认套用单一“产量/销量”模板。每个细分方向先判断主导变量,再决定抽取哪些指标。 -每张表必须写清字段含义、来源、更新时间、证据入口和复用边界。 +常见主导变量: -## 6. 执行流程 +1. 资源供给:资源储量、权益资源、品位、扩产周期、海外扰动、矿端集中度。 +2. 冶炼和加工利润:TC/RC、加工费、能源成本、原料自给率、库存和套保。 +3. 需求结构:电网、新能源车、储能、AI 数据中心、军工电子、地产、家电、出口等终端占比。 +4. 价格和库存:现货价格、期货价格、LME/SHFE/COMEX 库存、升贴水、期限结构。 +5. 政策和国际关系:出口管制、资源国政策、环保、安全生产、关税和地缘事件。 +6. 技术路线:材料性能、工艺壁垒、客户认证、替代路线和商业化阶段。 +7. 公司弹性:业务占比、产能、成本、资源权益、价格敏感性、估值和股价位置。 + +每个强结论必须至少说明:当前数据、数据日期、历史比较、横向比较、影响链条、受益或受损公司、来源和结论强度。 + +## 5. 默认执行流程 正式有色研报任务默认按以下流程执行: ```text -确认案例设计 --> 读取研报母版和本方案 --> 归档原始资料 --> 转换文本、表格或 OCR --> 抽取事实、观点、指标、公司映射和缺口 --> 补充公开资料 --> 做市场反向补漏 --> 形成行业视图、市场视图、公司视图 --> 生成证据包、结果包和 manifest --> 提交审核 --> 根据审核意见修复或回写总纲 +接收有色研报任务 +-> 读取父级案例规范、父级存储体系、研报方法母版和本方案 +-> 确认或补充本方案的行业边界、核心变量、输出方案和专属表 +-> 父级案例总纲登记真实案例 +-> 本目录案例分析设计冻结事项、batch、run、输入、输出、存储和验收 +-> 提交行业方案审核和设计审核 +-> 设计审核通过后归档 raw 到有色行业统一 raw 池 +-> 转换文本、表格或 OCR 到行业级 converted +-> 抽取事实、观点、指标、公司映射和缺口到 extracted/evidence +-> 需要外部补资料、市场显影或暗线分析时使用 darkline,并归档到 supplement/evidence/manifest +-> 形成行业视图、市场视图、公司视图和必要扩展文档 +-> 生成案例级 outputs、manifest、evidence 映射和父体系 result_index +-> 执行自检,记录执行日志 +-> 提交执行审核 +-> 根据审核意见修复、复审,并回写父级总纲、本方案和结果入口 ``` -如果具体案例设计定义了更细流程,且设计审核通过,则按具体案例设计执行。 +如果具体案例设计定义了更细流程,且设计审核通过,则按具体案例设计执行;但不得取消父级总纲、行业方案、设计审核、执行日志、执行审核、问题闭环和结论回写。 -## 7. 方案维护记录 +## 6. 核心输出方案 + +有色研报案例的正式输出围绕三类视图展开: + +1. 行业视图:讲清有色行业和各细分方向是什么、怎么运行、利润在哪里、核心变量是什么。 +2. 市场视图:讲清当前价格、库存、供需、政策、资金显影、市场阶段和未来情景。 +3. 公司视图:讲清公司业务结构、有色业务暴露、核心竞争力、业绩弹性、投资读法、风险和失效条件。 + +扩展文档可以包括: + +1. 细分金属基础事实卡。 +2. 细分行业概览和详情。 +3. 核心指标数据卡。 +4. 公司深读。 +5. 市场反向补漏清单。 +6. 公开资料补充清单。 +7. 暗线文档。 +8. 对外可读版本。 + +输出底线: + +1. 不能只有标题式结论。 +2. 不能用券商观点替代事实和指标。 +3. 不能缺少行业视图、市场视图、公司视图中的核心入口。 +4. 公司文档必须包含投资读法、风险、触发条件和失效条件。 +5. 数据不足时必须降级为 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`。 + +### 6.1 行业视图细化 + +行业视图回答“有色行业是什么、怎么运行、怎么赚钱”。正式文档必须采用以下展开结构: + +```text +总体行业 +-> 子行业 / 金属品种 +-> 产业链环节 +-> 关键公司 / 关键资产 +-> 关键变量和证据 +``` + +行业视图最低模块: + +1. 行业白话解释:用普通人能理解的语言说明该金属或材料是什么、用在哪里、为什么重要。 +2. 产业链流转:从资源、采矿、选矿、冶炼、加工、材料、终端需求到回收,说明货物流、钱流和利润沉淀位置。 +3. 子行业拆分:基本金属、能源金属、贵金属、小金属、稀土、有色加工材料分别说明主导变量。 +4. 商业模式:说明赚钱方式是资源增值、加工费、技术溢价、客户认证、库存收益、套保还是副产品收益。 +5. 核心竞争力:资源、成本、技术、客户、牌照、海外能力、团队、资本开支和扩产能力中哪些最重要。 +6. 关键公司或资产:说明公司在对应赛道的位置,不做全公司投资结论。 +7. 专业术语解释:TC/RC、升贴水、权益矿、自给率、套保、库存、品位、配额等必须用白话解释。 + +行业视图验收: + +1. 不能只列结论和表格,必须讲清前因后果。 +2. 每个高重要性变量必须有数据、案例或证据路径。 +3. 不同技术路线或材料路线必须横向比较,不能只写单一路线。 +4. 不能用公司股价表现替代产业链解释。 + +### 6.2 市场视图细化 + +市场视图回答“当前市场处在什么阶段、利润怎么传导、未来窗口怎么看”。正式文档必须采用以下展开结构: + +```text +总体市场 +-> 子行业市场 +-> 价格 / 库存 / 供需 / 利润 +-> 核心公司分配比例 +-> 未来 1 季度 / 1 年 / 3 年情景 +``` + +市场视图最低模块: + +1. 价格:现货、期货、升贴水、期限结构,标明日期、单位、来源。 +2. 库存:LME、SHFE、COMEX、国内社会库存或企业库存,说明历史位置和边际变化。 +3. 供给:产量、开工、资源国政策、矿端扰动、冶炼约束、进口依赖。 +4. 需求:电网、建筑、家电、新能源车、储能、AI 数据中心、军工电子、出口等下游占比和增量。 +5. 利润:矿端、冶炼端、加工端、材料端利润如何分配,TC/RC 或加工费如何影响公司。 +6. 横向对比:不同金属、不同子行业、不同公司之间的价格、库存、成本、产量、需求占比和利润弹性排序。 +7. 历史对比:当前价格、库存、利润和估值处于历史什么位置。 +8. 市场反向补漏:近 3 个月涨停、连续大涨、放量突破、逆行业上涨等市场显影是否暴露遗漏品种、公司或技术路线。 + +市场视图验收: + +1. 必须有数据、历史对比、横向对比和结构占比。 +2. 如果关键数据缺失,只能写观察清单或补数清单。 +3. 短期交易窗口、中期周期位置和长期产业趋势必须分开。 +4. 市场显影发现的新线索必须进入缺口清单或补资料流程。 + +### 6.3 公司视图细化 + +公司视图回答“单个公司全视角投资价值如何理解”。公司视图不是行业视图里的公司段落,必须从公司全景展开: + +```text +单公司全景 +-> 公司涉足行业 +-> 核心赛道 +-> 目标有色业务 +-> 业务占比和利润弹性 +-> 股价位置、估值、触发和失效条件 +``` + +公司视图最低模块: + +1. 公司基本信息:主营业务、管理团队、股权结构、核心文化或经营风格。 +2. 盈利模式:靠资源、加工费、技术、客户认证、贸易、库存、套保还是项目放量赚钱。 +3. 核心赛道:公司涉及哪些行业,有色业务是不是核心赛道。 +4. 目标行业地位:公司在对应金属或材料里的国内地位、国际地位、产能或市场份额。 +5. 业务占比:有色业务在公司收入、毛利、利润、资本开支或估值中的占比。 +6. 壁垒:资源、成本、技术、客户、团队、牌照、海外谈判、扩产能力和财务质量。 +7. 重要产品阶段:未商业化但影响估值的重要产品,按产品展示、送样、联调、定点、小批量、批量、主供 / 独供等阶段记录。 +8. 分拆上市可能:公司对应业务是否存在分拆上市、估值重估或资产注入可能。 +9. 股价和估值位置:只作为市场状态和风险提示,不直接输出交易指令。 +10. 风险、触发条件、失效条件:每条投资读法都必须写清。 + +公司视图验收: + +1. 不得只写公司在行业里的位置,必须写公司全景和非当前行业业务影响。 +2. 不得只贴券商观点或目标价,必须回到业务暴露、利润弹性和证据。 +3. 没有业务占比、产能、资源、成本或客户证据时,公司结论必须降级。 +4. 不输出买卖建议;只能输出证据边界内的投资读法、观察条件和风险。 + +### 6.4 支撑材料和三类核心文档的关系 + +基础事实卡、主导变量数据卡、产业链故事、公司横向对比、场景假设和投资读法都是支撑材料,不能替代行业视图、市场视图和公司视图。 + +正式输出时: + +1. 行业视图引用基础事实卡、产业链故事、商业模式和核心变量。 +2. 市场视图引用价格库存快照、供需平衡、利润传导和市场反向补漏。 +3. 公司视图引用公司证据卡、公司横向对比、财务质量、业务占比和风险清单。 +4. 每个支撑材料都必须能反查 `source_document`、`evidence_fact`、manifest 或补充资料。 + +### 6.5 场景假设影响映射 + +有色场景假设必须形成影响链,不得只写一句“利好有色”。 + +场景映射最低字段: + +```text +scenario_id +case_id +batch_id +run_id +scenario_name +event_or_assumption +information_time +affected_metals +affected_subindustries +affected_companies +impact_channel +impact_direction +time_window +evidence_entry +darkline_flag +alternative_explanation +trigger_condition +invalidation_condition +risk +review_status +``` + +如果场景涉及新闻、政策铺垫、资本动作、组织行为、市场异常表现或意图判断,必须按 darkline 分流;如果只是价格、库存、供需或估值数据,则仍属于普通市场事实,不得混入暗线。 + +## 7. 有色专属表和文件型清单 + +有色行业专属表不在父级通用存储体系中固定。正式案例中如需建表,应在具体案例设计中定义;如果暂不建 MySQL 表,应先使用文件型清单并保留升级口径。 + +候选专属对象: + +1. `nonferrous_metal_fact`:细分金属基础事实卡。 +2. `nonferrous_price_inventory_metric`:价格、库存、升贴水、期限结构。 +3. `nonferrous_supply_demand_balance`:供给、需求、缺口、库存变化和预测。 +4. `nonferrous_company_exposure`:公司与金属品种、产能、资源权益、利润弹性映射。 +5. `nonferrous_project_asset`:矿山、冶炼、加工、材料项目或资源资产。 +6. `nonferrous_core_indicator_card`:核心指标数据卡。 +7. `nonferrous_market_gap_audit`:市场反向补漏审计。 + +每张表或文件型清单必须说明字段含义、来源、更新时间、证据入口、唯一键和复用边界。任何专属表都不能替代父级 `source_document`、`evidence_fact`、manifest 和证据映射。 + +### 7.1 文件型清单最低字段 + +正式入库前,先使用以下 CSV/Markdown 文件型清单沉淀。具体文件名可在案例设计中扩展,但字段不得少于本节定义。 + +`nonferrous_metal_fact.csv` / 细分金属基础事实卡: + +```text +metal_id +case_id +batch_id +run_id +metal_name +category +plain_language_definition +main_uses +global_output +china_output_or_share +global_consumption +china_consumption_or_share +main_producing_regions +main_companies +current_price +price_date +price_unit +historical_price_range +inventory_value +inventory_date +supply_demand_balance +main_downstream_share +a_share_mapping +evidence_entry +data_gap +review_status +``` + +`nonferrous_core_indicator_card.csv` / 主导变量数据卡: + +```text +indicator_id +case_id +batch_id +run_id +metal_or_subindustry +indicator_name +indicator_type +current_value +unit +data_date +historical_comparison +cross_section_comparison +structure_share +impact_chain +beneficiary_companies +disadvantaged_companies +source_doc_id +evidence_entry +confidence +data_gap +review_status +``` + +`nonferrous_price_inventory_metric.csv` / 价格库存快照: + +```text +metric_id +case_id +batch_id +run_id +metal_name +market +price_type +price +currency +unit +price_date +inventory_market +inventory_value +inventory_unit +inventory_date +premium_discount +term_structure +source +evidence_entry +review_status +``` + +`nonferrous_supply_demand_balance.csv` / 供需平衡表: + +```text +balance_id +case_id +batch_id +run_id +metal_name +period +supply +demand +surplus_or_deficit +inventory_change +forecast_period +forecast_assumption +key_driver +source +evidence_entry +data_gap +review_status +``` + +`nonferrous_company_exposure.csv` / 公司暴露和利润弹性表: + +```text +company_map_id +case_id +batch_id +run_id +company_name +stock_code +covered_industries +target_nonferrous_business +metal_exposure +business_segment +revenue_share +gross_profit_share +profit_share +capacity_or_resource +cost_position +customer_or_certification +team_or_management_edge +technology_or_product_stage +split_listing_possibility +price_sensitivity +valuation_position +trigger_condition +invalidation_condition +risk +source_doc_id +evidence_entry +confidence +review_status +``` + +`nonferrous_project_asset.csv` / 项目和资产表: + +```text +asset_id +case_id +batch_id +run_id +company_name +asset_name +asset_type +metal_name +location +ownership +resource_or_capacity +grade_or_quality +construction_stage +planned_output +capex +expected_start_date +policy_or_country_risk +evidence_entry +review_status +``` + +`nonferrous_market_gap_audit.csv` / 市场反向补漏审计: + +```text +gap_audit_id +case_id +batch_id +run_id +market_signal_date +signal_type +security_or_metal +observed_move +related_subindustry +possible_missing_topic +existing_coverage +required_supplement +darkline_required +evidence_entry +resolution_status +review_status +``` + +### 7.2 文件型清单落点 + +行业级通用事实、指标、公司映射和市场补漏清单进入: + +```text +ana-data/cases/有色案例/extracted/ +ana-data/cases/有色案例/evidence/ +ana-data/cases/有色案例/supplement/ +``` + +案例级结论引用、裁剪和证据映射进入: + +```text +ana-data/cases/有色案例/<case_id>/evidence/ +ana-data/cases/有色案例/<case_id>/manifest/ +``` + +所有文件型清单必须进入 manifest,记录 `case_id`、`batch_id`、`run_id`、生成时间、行数、hash、来源和 `review_status`。 + +## 8. 存储落点 + +有色行业级通用资料库: + +```text +ana-data/cases/有色案例/raw/ +ana-data/cases/有色案例/converted/ +ana-data/cases/有色案例/extracted/ +ana-data/cases/有色案例/supplement/ +ana-data/cases/有色案例/evidence/ +ana-data/cases/有色案例/manifest/ +``` + +有色案例级自定义产物: + +```text +ana-data/cases/有色案例/<case_id>/outputs/ +ana-data/cases/有色案例/<case_id>/manifest/ +ana-data/cases/有色案例/<case_id>/evidence/ +``` + +父体系兼容目录: + +```text +ana-data/tmp/有色案例/<case_id>/<run_id>/ +ana-data/result/有色案例/<case_id>/ +ana-data/img/有色案例/<case_id>/ +``` + +禁止: + +1. 不得创建 `ana-data/cases/有色案例/<case_id>/raw/`。 +2. 不得把 converted、extracted、supplement、行业级 evidence 或行业级 manifest 放到 `<case_id>/` 下。 +3. 不得把临时文件放到 `ana-data/cases/有色案例/<case_id>/tmp/`。 +4. 不得让 result 入口替代 outputs 和证据链;result 只做父体系入口、交付包索引和汇总。 + +## 9. batch / run 规则 + +`ANA-YS-INDUSTRY-001` 是有色行业整体研报分析长期案例。 + +1. 同一研究目标下的分批资料读取,用 `batch_id` 区分,例如 `BATCH-001`、`BATCH-002`。 +2. 每次实际执行轮次用 `run_id` 区分。 +3. 每次只能下载或读取 30 份研报,不会自动生成 30 个案例,也不会自动生成一个新案例。 +4. 如果资料批次对应不同研究目标,例如锗镓专题、铜铝公司专题、小金属专题,可以在父级总纲登记新的专题案例。 +5. 所有有色 raw 文件仍统一进入 `ana-data/cases/有色案例/raw/`,不按 batch 或 run 拆目录。 + +## 10. 当前缺口 + +当前缺口包括: + +1. 有色历史资料尚未全量迁移和文件头识别。 +2. `BATCH-001` 已完成第一轮规则扫描抽取,但尚未补页码、段落、表格定位和人工复核,不能作为正式证据表。 +3. 尚未建立完整的基础事实卡、主导变量数据卡、价格库存快照、供需平衡表、公司证据卡和场景映射表。 +4. 尚未建立正式有色行业视图、市场视图、公司视图。 +5. 尚未进行市场反向补漏和 darkline 外部信息补充。 +6. 尚未定义正式 MySQL 专属表;后续可先以 CSV/Markdown 数据卡沉淀,再按审核通过的设计升格入库。 + +## 11. 方案维护记录 | 日期 | 事项 | 记录 | |---|---|---| | 2026-06-25 | 初始创建 | 创建有色行业研报解析方案模板,未导入历史有色结论 | +| 2026-06-25 | `ANA-YS-INDUSTRY-001` / `BATCH-001` 试运行 | 30 份 PDF 完成行业级 raw 归档、manifest、pypdf 转换、样本元数据抽取和 evidence trace;发现 PyMuPDF/fitz 缺失、旧铜铝目录无扩展名文件两个执行自检事项 | +| 2026-06-25 | 行业容器结构调整 | 有色案例改为行业容器;真实案例登记父级总纲;本目录设计承接事项、batch 和 run;有色 raw 统一到 `ana-data/cases/有色案例/raw/` | +| 2026-06-26 | 方案升格 | 将本文件从模板补成 `v0.1 正式基础方案`,明确有色行业边界、核心变量、流程、输出、专属表候选、存储落点、batch/run 规则和当前缺口 | +| 2026-06-26 | 母版对齐补充 | 补充 `研报解析架构.md` 中三类核心文档、核心文档输出流程、基础事实卡、主导变量数据卡、公司证据卡、场景映射和文件型清单字段要求 | diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" index b77d4b1..a27f568 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" @@ -1,96 +1,52 @@ # 有色案例分析规范 -创建人员:Codex -文件职责:记录有色行业研报案例的本地分析规范,作为 `../案例分析规范.md` 的行业子规范。 -管理规范/模板:../案例分析规范.md;../案例存储体系.md;../../项目配置清单.md。 -引用文件:目录导读.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例审计报告.md;有色研报解析方案.md。 -记录方式:有色行业案例本地规范;有色研报案例分析口径变化时更新。 +创建人员:Codex +文件职责:记录有色行业研报案例的本地分析补充,作为 `../案例分析规范.md` 的轻量继承入口。 +管理规范/模板:../案例分析规范.md;../案例存储体系.md;../../项目配置清单.md。 +引用文件:目录导读.md;../案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例审计报告.md;有色研报解析方案.md;../研报体系/研报解析架构.md;../研报体系/研报分析架构.md。 +记录方式:有色行业案例本地补充;只有有色长期规则变化时更新。 -## 1. 母版继承 +## 1. 继承关系 -本文件必须继承并遵守 `../案例分析规范.md`。 +本文件不是第二套研报流程母版,不复制父级主流程、审核阶段门、存储分流和问题闭环规则。执行有色研报案例时,第一遵守以下父级文件: -研报分析相关任务还必须读取并遵守研报体系 3 个母版: +1. `../案例分析规范.md` +2. `../案例审核规范.md` +3. `../案例存储体系.md` +4. `../研报体系/研报解析架构.md` +5. `../研报体系/研报分析架构.md` -1. `研报解析架构.md` -2. `研报分析架构.md` -3. `研报存储体系.md` +有色专业细化入口: -当前 3 个研报母版尚未正式迁入 `project-info` 时,临时引用路径为: +1. `有色研报解析方案.md`:记录有色行业边界、核心变量、输出方案、专属表、缺口和流程补充。 +2. `案例分析设计.md`:记录具体有色案例事项、batch / run、输入范围、执行步骤、证据要求、输出物和验收方式。 -1. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报解析架构.md` -2. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报分析架构.md` -3. `D:/strategy_project/s-system-doc/observer/mirror/有色行业报告/研报存储体系.md` +如本文件、有色方案或具体设计与父级母版冲突,先按父级母版执行,并把冲突提交审计或规范维护。 -迁入 `project-info` 后,应优先使用 `../研报体系/` 下的同名母版。 +## 2. 当前自定义状态 -## 2. 有色案例范围 +| 项 | 当前口径 | +|---|---| +| 行业容器定位 | `有色案例/` 是有色行业容器,不是一个案例,不维护独立 `案例总纲.md` | +| 正式案例登记 | 有色真实案例登记到父级 `../案例总纲.md` | +| 分析主流程 | 无额外覆写,默认按父级 `../案例分析规范.md` 的“案例分析员融合执行流程”和第 5 章各专项流程执行 | +| 专业方案 | 按 `有色研报解析方案.md` 执行;方案不足时先补方案,不直接读研报 | +| 存储规则 | 按父级 `../案例存储体系.md` 和本目录 `案例存储体系.md` 的继承声明执行 | +| 审核规则 | 按父级 `../案例审核规范.md` 和本目录 `案例审核规范.md` 的继承声明执行 | -本目录承接有色行业相关的研报研究案例,包括: +## 3. 有色补充口径 -1. 有色行业研报批量读取。 -2. 铜、铝、稀土、小金属、贵金属等细分方向分析。 -3. 有色公司研报深读和公司映射。 -4. 有色行业公开资料补充。 -5. 有色市场反向补漏和强势标的排查。 -6. 有色核心指标数据卡和证据链归档。 -7. 行业视图、市场视图、公司视图及外部可读核心文档输出。 +1. 有色行业范围、细分方向、核心变量、输出文档和专属表不写在本文件正文里,统一维护到 `有色研报解析方案.md`。 +2. 每次有色研报分析的资料批次、读取范围、batch_id、run_id、证据要求和交付边界写入 `案例分析设计.md`。 +3. 本目录只记录有色行业容器内事项拆解、执行日志、审计记录和问题记录;父级 `ana-doc/` 只记录案例总账和跨行业规则。 +4. 如后续确实需要有色专属流程,必须先写入 `有色研报解析方案.md` 或本文件,并通过设计审核;不得取消父级总纲登记、设计冻结、设计审核、执行日志、执行审核、问题闭环和结论回写。 +5. 单篇定位、批量最低产物、主动补数据、`unresolved_data_gap.csv`、`source_gap_audit.csv`、市场反向补漏、核心文档输出和审计触发规则,均按父级 `../案例分析规范.md` 执行。 +6. 需要网上补充资料、新闻公告、事件链、市场显影、市场反向补漏或暗线分析时,按父级要求使用 `darkline` 技能并留痕。 -本目录不把有色行业经验上升为所有行业通用规则。可复用规则应先回到父级案例规范或研报母版中讨论。 +## 4. 禁止事项 -## 3. 执行流程 - -有色研报案例默认流程: - -```text -接收有色研报任务 --> 在本目录案例总纲登记事项 --> 在案例分析设计中明确范围、目标、资料来源、输出物和验收方式 --> 读取父级案例规范和 3 个研报母版 --> 创建或更新有色研报解析方案 --> 提交设计审核 --> 归档原始研报、转换结果和来源清单 --> 抽取事实、指标、观点、公司映射和资料缺口 --> 补充公开资料和市场反向补漏 --> 生成行业视图、市场视图、公司视图和必要扩展文档 --> 归档证据包、结果包和 manifest --> 提交执行审核 --> 审核通过后回写总纲和事项状态 -``` - -设计审核未通过前,不得进入正式研报分析执行。 - -执行审核未通过前,不得把有色研报案例标记为完成或对外交付。 - -## 4. 证据要求 - -有色研报案例必须保留以下证据入口: - -1. 原始研报或资料来源。 -2. 转换文本、表格或截图路径。 -3. 抽取事实和指标的来源位置。 -4. 公开资料补充来源和采集时间。 -5. 核心指标数据卡。 -6. 市场反向补漏记录。 -7. 行业、市场、公司结论对应的证据索引。 -8. 结果包和 manifest。 - -没有证据支撑的观点只能标记为 `DATA_GAP_REVIEW`、`DATA_PARTIAL` 或 `MECHANISM_ONLY`,不得写成强结论。 - -## 5. 输出要求 - -有色研报案例的正式输出应优先组织为三类视图: - -1. 行业视图。 -2. 市场视图。 -3. 公司视图。 - -细分行业、核心指标、公司深读、投资读法和外部可读文档是三类视图下的扩展产物,不替代三类视图。 - -## 6. 禁止事项 - -1. 不得跳过有色研报解析方案直接开始正式分析。 -2. 不得把历史有色文档中的结论无审计迁移为本目录正式结论。 -3. 不得把有色专属字段写入父级通用存储体系。 -4. 不得用券商结论替代证据链。 -5. 不得把暗线假设混入普通行业事实。 +1. 不得把父级主流程和审核阶段门复制成本目录的平行流程。 +2. 不得跳过 `有色研报解析方案.md` 直接开始正式有色研报分析。 +3. 不得在本目录创建或维护平行 `案例总纲.md`。 +4. 不得把有色专属变量、字段或表结构上升为全行业通用规则。 +5. 不得用券商结论替代事实、数据、证据和结论边界。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" index 932d9a2..7f96fc7 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" @@ -1,69 +1,1125 @@ # 有色案例分析设计 -创建人员:Codex -文件职责:记录有色行业研报案例的设计、范围、步骤、证据要求、产物和验收方式。 -管理规范/模板:案例分析规范.md;../案例分析规范.md。 -引用文件:案例总纲.md;案例执行日志.md;案例审计报告.md;案例存储体系.md;有色研报解析方案.md。 -记录方式:append-only 设计账本;每个有色案例设计追加到文件末尾,设计审核通过后才能执行。 +创建人员:Codex +文件职责:作为有色行业容器的设计账本,记录父级案例总纲下有色研报案例的事项拆解、batch 设计、执行步骤、证据要求、输出物和验收方式。 +管理规范/模板:../案例分析规范.md;../案例存储体系.md;../../common/ana-doc/案例分析设计模版.md;案例分析规范.md。 +引用文件:../案例总纲.md;案例执行日志.md;案例审计报告.md;案例存储体系.md;有色研报解析方案.md。 +记录方式:append-only 有色案例分析设计;新增设计或修订追加到文件末尾。 -## 案例设计:ANA-YS-TEMPLATE-001 +固定口径:`ana-doc/有色案例/` 是行业容器,不是一个独立案例;真实案例统一登记在父级 `../案例总纲.md`。本文件只记录有色行业下的事项拆解、批次设计、执行步骤、证据要求和验收方式。 -- 案例 ID:`ANA-YS-TEMPLATE-001` -- 设计人员:Codex -- 设计时间:2026-06-25 -- 案例类型:目录模板 / 体系承接 -- 当前状态:待审核员复核 +## 1. 当前设计总览 -### 目标和边界 +| 设计 ID | 所属案例事项 | 目标 | 状态 | 设计审计 | +|---|---|---|---|---| +| `DESIGN-ANA-YS-TEMPLATE-001` | `ANA-YS-TEMPLATE-001` | 创建有色行业容器,落地子规范、存储补充、账本和有色研报解析方案入口 | 已执行,待审核员复核 | `AUDIT-ANA-YS-TEMPLATE-001` | +| `DESIGN-ANA-YS-INDUSTRY-001` | `ANA-YS-INDUSTRY-001` | 有色行业整体研报分析长期案例设计;`BATCH-001` 验证行业级通用产物和案例级输出闭环 | 已执行 `BATCH-001` 试运行,待正式审核员复核 | `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-002` | `ANA-YS-INDUSTRY-001` | 有色金属板块核心阅读包草稿;输出行业视图、市场视图、公司视图和补证清单 | 已输出草稿,待正式审核员复核 | 待建立 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-002` | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` | `ANA-YS-INDUSTRY-001` | raw 池 359 份有色资料的批量登记、转换、抽取、补数据和三类视图草稿设计 | 设计审核通过,已执行并提交输出审核 | `AUDIT-ANA-YS-INDUSTRY-001-BATCH-003-DESIGN` | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-SUBTASK-001` | `ANA-YS-INDUSTRY-001` | BATCH-003 登记、转换、抽取、补数、核心文档和送审子事项拆解补充 | 已补充,待审核员在输出审核中确认 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-REVIEW-001` | `ANA-YS-INDUSTRY-001` | BATCH-001/BATCH-003 关键事实复核包、页码上下文和证据升级候选 | 待执行 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-CARD-001` | `ANA-YS-INDUSTRY-001` | 第一轮公司证据卡候选,分账研报观点、业务暴露和待补资料 | 待执行 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-MARKET-GAP-001` | `ANA-YS-INDUSTRY-001` | 市场反向补漏与 darkline 分流初筛 | 待执行,数据库凭据缺口待处理 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001` | `ANA-YS-INDUSTRY-001` | 基于当前已落地版本重新提交事实复核、公司卡、补数和市场补漏状态复审 | 已冻结,待重提复审 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-SOURCE-002` | `ANA-YS-INDUSTRY-001` | 公司证据卡官方来源补强 PASS-002 | 待执行 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-CARD-002` | `ANA-YS-INDUSTRY-001` | 关键事实证据卡 PASS-002,拆出时间、数值、单位和补证动作 | 待执行 | 待审核 | +| `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PASS002-RESUBMIT-001` | `ANA-YS-INDUSTRY-001` | 公司来源卡与关键事实证据卡 PASS-002 当前已落地版本重提交基线 | 已冻结,待重提复审 | 待审核 | -- 目标:创建 `ana-doc/有色案例/` 模板目录,落地与父级 `ana-doc/` 对应的一套本地文档。 -- 边界:不执行有色研报读取,不导入历史结论,不生成正式投资读法或行业判断。 -- 母版:父级 `../案例分析规范.md`、`../案例审核规范.md`、`../案例存储体系.md`。 -- 研报母版:`研报解析架构.md`、`研报分析架构.md`、`研报存储体系.md`。 +## 2. 设计记录模板 -### 检查项 +### <YYYY-MM-DD HH:mm:ss> <DESIGN-ID>:<设计标题> -1. 本目录存在 9 个基础案例文档。 -2. 本目录额外存在 `有色研报解析方案.md`。 -3. 规范类和存储类文档声明继承父级同名文档。 -4. 总纲、设计、执行日志、审计报告和问题记录作为本目录独立账本初始化。 -5. 存储体系说明有色案例数据层建议路径。 -6. 文件未把历史有色结论直接作为正式结论。 +所属案例事项: +<ANA-ID / 名称;真实案例必须已登记父级 `../案例总纲.md`> -### PASS / FAIL / HELD +创建人员: +<创建人员> -- PASS:上述检查项全部满足,且审核员未发现阻断问题。 -- FAIL:基础文档缺失、继承关系不清、把历史结论直接迁为正式结论、或违反父级案例规范。 -- HELD:研报母版迁移路径未确定,但不影响本目录模板存在。 - -## 新增有色研报案例设计模板 - -正式有色研报案例应按以下结构追加: - +来源聊天记录: ```text -## 案例设计:<case_id> - -- 案例 ID: -- 设计人员: -- 设计时间: -- 案例类型: -- 当前状态: - -### 来源和目标 - -### 分析范围 - -### 需要读取的母版 - -### 输入资料 - -### 执行步骤 - -### 证据要求 - -### 输出文档 - -### 存储和结果包 - -### 验收方式 +<粘贴关键聊天记录,或写明父级案例总纲中的来源位置> ``` + +目标对齐说明: +<说明本设计如何满足父级案例总纲目标;如有取舍,写明原因> + +案例选择口径: +<本次资料、专题或批次从哪里来,为什么属于同一个案例或多个案例> + +分析对象: +<行业 / 子行业 / 公司 / 资料批次 / 流程验证 / 其他> + +全流程步骤: + +1. <确认父级案例总纲登记和本目录设计入口> +2. <确认行业方案、母版规范和存储规则> +3. <归档或引用行业统一 raw 池> +4. <转换、抽取、补充、证据链和输出> +5. <执行日志、自检、审计和总纲回写> + +逐案例执行流程: +```text +父级案例总纲登记 +-> 本文件冻结设计、batch_id、run_id、输入和验收口径 +-> 设计审核 +-> 行业统一 raw 池归档或引用 +-> 行业级 converted / extracted / supplement / evidence / manifest +-> 案例级 outputs / 引用 manifest / 案例证据映射 +-> 案例执行日志记录全过程 +-> 案例审计报告记录审核结论和问题 +-> 父级总纲、行业方案和结果包回写 +``` + +融合阶段门映射: + +| 阶段 | 有色本次动作 | 产物 / 路径 | 验收口径 | +|---|---|---|---| +| 来源和总纲 | <父级总纲登记来源、目标、边界> | `../案例总纲.md` | 来源可追踪 | +| 行业方案 | <确认或更新有色方案> | `有色研报解析方案.md` | 方案不是模板 | +| 设计冻结 | <冻结 case/batch/run、输入、输出、证据和存储> | `案例分析设计.md` | 可指导执行 | +| 设计审核 | <提交正式设计审核> | `案例审计报告.md` | 未通过不执行 | +| raw 归档 | <资料进入行业统一 raw 池> | `../../ana-data/cases/有色案例/raw/` | raw 可追溯 | +| 转换抽取 | <转换文本、抽取事实/指标/公司映射/缺口> | 行业级 `converted/`、`extracted/` | 不只读不归档 | +| 补数分流 | <公开资料补充、市场反向补漏、darkline 分流> | 行业级 `supplement/`、`evidence/` | 缺口和暗线分账 | +| 证据输出 | <数据卡、证据映射、三类视图输出> | 行业/案例级 `evidence/`;案例级 `outputs/` | 强结论可复核 | +| 归档自检 | <manifest、result、img、tmp 分流自检> | 行业/案例 `manifest/`;父体系 `tmp/result/img` | 路径可打开 | +| 审核回写 | <执行审核、修复、复审、回写> | `案例审计报告.md`;父级总纲;有色方案 | 未复审不交付 | + +执行流程冻结说明: +设计审核通过后,执行 AI 必须按本设计执行。若需要偏离,必须在 `案例执行日志.md` 记录偏离原因、影响和补救动作,并进入 `案例审计报告.md` 复核。 + +证据要求: + +1. 原始资料只进入行业统一 raw 池 `../../ana-data/cases/有色案例/raw/`,不得进入逐案例 raw 目录。 +2. 行业级 `artifact_manifest.csv`、`source_document.csv`、`conversion_status.csv`、`evidence_index.csv` 必须保留 `case_id`、`batch_id`、`run_id`。 +3. 每个强结论必须能追溯到 `raw_file_path + sha256 -> 行业级 converted -> 行业级 extracted/evidence -> 案例级 evidence/outputs`。 +4. 执行自检发现且能处理的问题写入执行日志、自检、验证报告、manifest、数据缺口表或结果包,不写入问题记录。 + +图片要求: +如本次需要图片或截图,必须记录图片来源、生成时间、对应结论和 `image_manifest`;如不需要,写明替代证据。 + +数据输出: +<行业级 manifest/source_document/conversion_status/evidence_index/unresolved_data_gap,案例级 summary/readout/case_input_manifest/human_doc_validation_receipt 等> + +验收方式: +<目录、manifest、转换状态、证据链、输出、问题落点和审计结论如何判断 PASS / FAIL / HELD> + +未来函数 / 泄漏判断: +研报资料解析通常不用于交易回测,但仍不得用执行后结论反向选择样本或篡改来源时间;涉及市场表现、新闻补充或暗线分析时必须记录信息时间戳。 + +设计审计状态: +未审计 / 审计通过 / 审计不通过 / 暂缓 + +设计审计入口: +<案例审计报告.md 中 AUDIT-ID> + +执行日志入口: +<案例执行日志.md 中 LOG-ID> + +当前结论: +<当前设计是否可执行> + +## 2026-06-25 22:10:00 DESIGN-ANA-YS-TEMPLATE-001:有色行业容器初始化设计 + +所属案例事项: +`ANA-YS-TEMPLATE-001` / 有色行业研报容器初始化。 + +创建人员: +Codex + +来源聊天记录: +```text +用户要求在 ana-doc 中创建有色案例模板,并确认行业目录不是一个案例;真实案例登记父级案例总纲,行业目录承接设计、执行、审核和问题账本。 +``` + +目标对齐说明: +本设计满足父级总纲中“建立有色行业研报承接目录”的目标,只做行业容器和账本初始化,不迁入历史有色结论,不执行正式行业分析。 + +案例选择口径: +无真实研报案例选择;检查对象是 `ana-doc/有色案例/` 行业容器、继承关系和基础账本。 + +分析对象: +有色行业研报容器机制。 + +全流程步骤: + +1. 创建 `ana-doc/有色案例/` 行业容器目录。 +2. 创建本目录 8 个基础文档和 `有色研报解析方案.md`。 +3. 明确本目录不维护独立 `案例总纲.md`。 +4. 在规范类和存储类文档中声明继承父级同名文档。 +5. 初始化设计、执行日志、审计报告和问题记录账本。 +6. 在父级总纲登记 `ANA-YS-TEMPLATE-001`。 + +逐案例执行流程: +```text +父级总纲登记 ANA-YS-TEMPLATE-001 +-> 本文件冻结容器初始化设计 +-> 创建行业容器文档 +-> 本目录执行日志记录创建动作 +-> 本目录审计报告记录初始化自检 +-> 父级总纲保留唯一案例总账 +``` + +执行流程冻结说明: +后续行业容器创建必须沿用“父级总纲唯一 + 行业目录账本独立 + 规范/存储继承父级”的口径;如有行业特殊化,只能在行业目录同名文档中补充,不能冲突父级母版。 + +证据要求: + +1. 本目录存在 `目录导读.md`、`案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md` 和 `有色研报解析方案.md`。 +2. 本目录不存在独立 `案例总纲.md`。 +3. 父级 `../案例总纲.md` 有 `ANA-YS-TEMPLATE-001` 记录。 +4. 子规范不得削弱父级 `../案例分析规范.md`、`../案例审核规范.md`、`../案例存储体系.md`。 + +图片要求: +不需要图片;以文件存在性、文档内容和父级总纲记录作为证据。 + +数据输出: +无正式结果包;产物为有色行业容器文档和父级总纲记录。 + +验收方式: +PASS:文档齐全、父级总纲已登记、行业目录无独立总纲、继承关系清楚、未导入历史结论。 +FAIL:基础文档缺失、行业目录存在平行总纲、子规范冲突父级母版、把历史有色结论写成正式结论。 +HELD:父级母版或行业边界需要人类确认。 + +未来函数 / 泄漏判断: +不涉及交易回测;不允许把历史有色结论作为本次初始化结论。 + +设计审计状态: +待正式审核员复核。 + +设计审计入口: +`AUDIT-ANA-YS-TEMPLATE-001` + +执行日志入口: +`RUN-ANA-YS-TEMPLATE-001` + +当前结论: +设计可执行,已按该设计完成有色行业容器初始化。 + +## 2026-06-25 22:45:00 DESIGN-ANA-YS-INDUSTRY-001:有色行业整体研报分析 BATCH-001 试运行设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 `BATCH-001` 30 PDF 存储与转换试运行设计。 + +创建人员: +Codex + +来源聊天记录: +```text +用户要求进入下一阶段并验证体系问题;随后确认有色目录是行业容器,有色行业整体研报分析理论上是一个长期案例,30 份研报读取属于该案例下的 batch/run,而不是每 30 份自动形成一个案例。 +``` + +目标对齐说明: +本设计是有色行业整体研报分析长期案例的首个批次设计,验证父级研报体系能否承接有色行业资料归档、行业级转换、行业级 manifest、行业级证据链、案例级输出、执行日志和审计闭环。它不输出有色行业投资结论,也不替代后续正式全量迁移。 + +案例选择口径: +本轮选择 30 份本地有色 PDF 作为 `ANA-YS-INDUSTRY-001` 的 `BATCH-001` 流程样本:小金属 10 份、钨钼锑 10 份、锗镓 10 份。选择口径是覆盖不同本地来源和细分方向,用于验证归档/转换流程,不代表有色行业研究覆盖完整。 + +分析对象: +有色研报资料归档、PDF 转文本、manifest、样本元数据、raw-to-converted 证据链和结果包入口。 + +全流程步骤: + +1. 确认父级 `../案例总纲.md` 已登记 `ANA-YS-INDUSTRY-001`。 +2. 冻结 `case_id=ANA-YS-INDUSTRY-001`、`batch_id=BATCH-001`、`run_id=RUN-ANA-YS-INDUSTRY-001-BATCH-001`。 +3. 创建或复用行业 raw 池 `../../ana-data/cases/有色案例/raw/`。 +4. 创建或复用行业级 `converted/`、`extracted/`、`supplement/`、`evidence/`、`manifest/`。 +5. 创建案例级结果目录 `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs|manifest|evidence/`。 +6. 创建父体系兼容目录 `../../ana-data/tmp/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-INDUSTRY-001-BATCH-001/`、`../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/` 和 `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/`。 +7. 从 3 个本地来源各选 10 份 PDF,归档到行业 raw 池并计算 hash。 +8. 生成行业级 `artifact_manifest.csv`、`migration_manifest.csv`、`source_document.csv`。 +9. 检查 PDF 转换工具;优先 PyMuPDF/fitz,不可用时记录回退并使用可用工具。 +10. 转换文本到行业级 `converted/`,生成行业级 `conversion_status.csv`。 +11. 生成行业级 `sample_metadata.csv`、`unresolved_data_gap.csv` 和 `evidence_index.csv`。 +12. 输出案例级 `summary.md`、`readout.md`、`validation_report.md`、`case_input_manifest.csv` 和父体系 `result_index.md`。 +13. 在本目录执行日志记录过程,在审计报告记录自检和待复核项。 + +逐案例执行流程: +```text +父级总纲 ANA-YS-INDUSTRY-001 +-> DESIGN-ANA-YS-INDUSTRY-001 +-> BATCH-001 / RUN-ANA-YS-INDUSTRY-001-BATCH-001 +-> 行业统一 raw 池归档 +-> 行业级 manifest/source_document +-> 行业级 converted/conversion_status +-> 行业级 extracted/evidence +-> 案例级 outputs/validation_report/case_input_manifest +-> 父体系 result_index/tmp/img 入口 +-> 执行日志 +-> 审计报告 +``` + +融合阶段门映射: + +| 阶段 | 本轮动作 | 产物 / 路径 | 验收口径 | +|---|---|---|---| +| 来源和总纲 | 父级总纲登记 `ANA-YS-INDUSTRY-001`,确认本轮是长期案例下 `BATCH-001` | `../案例总纲.md` | 不把 30 份资料误建成新案例 | +| 行业方案 | 使用 `有色研报解析方案.md` v0.1,当前不输出行业投资结论 | `有色研报解析方案.md` | 方案可支撑存储与转换试运行 | +| 设计冻结 | 冻结 `case_id=ANA-YS-INDUSTRY-001`、`batch_id=BATCH-001`、`run_id=RUN-ANA-YS-INDUSTRY-001-BATCH-001` | 本设计记录 | batch/run 清楚 | +| 设计审核 | 本轮为管理端试运行,待正式审核员复核 | `案例审计报告.md` | 正式结论不得交付 | +| raw 归档 | 30 份 PDF 进入行业统一 raw 池 | `../../ana-data/cases/有色案例/raw/` | raw 30 / 30,有 hash | +| 转换抽取 | PDF 转文本、生成样本元数据和缺口表 | 行业级 `converted/`、`extracted/` | 转换状态可复核 | +| 补数分流 | 本轮不联网补资料,不触发 darkline;缺口进入 `unresolved_data_gap.csv` | 行业级 `extracted/unresolved_data_gap.csv` | 缺口不写成结论 | +| 证据输出 | 建立 raw-to-converted trace,输出试运行 summary/readout/validation_report | 行业级 `evidence/`;案例级 `outputs/` | 只验证流程,不输出行业结论 | +| 归档自检 | manifest、case_input_manifest、result_index、tmp/img 入口检查 | 行业/案例 `manifest/`;父体系 `tmp/result/img` | 路径可打开 | +| 审核回写 | 自检和待复核项进入审计报告,父级总纲记录当前状态 | `案例审计报告.md`;`../案例总纲.md` | 待正式审核员复核 | + +执行流程冻结说明: +执行 AI 不得把本轮 30 份样本拆成 30 个案例,也不得把 raw 放入逐案例 raw 目录。若工具缺失、文件头异常、样本缺失或转换失败,先记录到执行日志、验证报告、manifest 或数据缺口表并尝试本轮可控处理;只有超出权限或需跨角色闭环时才进入问题记录。 + +证据要求: + +1. 30 份原始 PDF 全部进入 `../../ana-data/cases/有色案例/raw/`。 +2. 每个 raw 文件必须有 `sha256`、文件大小、文件头类型和归档状态。 +3. `artifact_manifest.csv`、`source_document.csv`、`conversion_status.csv`、`evidence_index.csv` 必须包含 `case_id`、`batch_id`、`run_id`。 +4. 每个行业级 converted 文本必须能追溯到 raw 文件和 hash。 +5. 输出文档必须明确本轮是流程试运行,不输出有色行业投资结论。 + +图片要求: +本轮不需要图片;以 raw 文件、行业级 converted 文本、行业级 CSV manifest、行业级 evidence_index 和案例级 validation_report 作为替代证据。 + +数据输出: +行业级 `manifest/artifact_manifest.csv`、`manifest/migration_manifest.csv`、`manifest/source_document.csv`、`manifest/conversion_status.csv`、`extracted/sample_metadata.csv`、`extracted/unresolved_data_gap.csv`、`evidence/evidence_index.csv`;案例级 `outputs/summary.md`、`outputs/readout.md`、`outputs/validation_report.md`、`manifest/case_input_manifest.csv`;父体系 `result/有色案例/ANA-YS-INDUSTRY-001/result_index.md`。本轮不产生图片,`img/有色案例/ANA-YS-INDUSTRY-001/` 仅保留入口。 + +验收方式: +PASS:30 份 PDF 全部进入有色行业统一 raw 池,行业级 manifest/source_document/conversion_status/evidence_index 齐全,转换状态可复核,案例级验证报告通过,执行自检发现已处理或进入正确记录位置。 +FAIL:raw 缺文件、manifest 缺链路、转换状态不可复核、输出没有证据入口、把本轮流程验证写成行业结论,或把可处理事项误写入问题记录。 +HELD:本地样本不足、转换工具无可用回退、正式审核员要求补设计审核后再执行。 + +未来函数 / 泄漏判断: +本轮不做交易回测;样本选择不能因转换后结论或投资观点反向筛选。若后续补充外部资料、新闻、公告、市场显影或暗线分析,必须使用 darkline 并记录信息时间戳。 + +设计审计状态: +已执行试运行,待正式审核员复核。 + +设计审计入口: +`AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` + +执行日志入口: +`RUN-ANA-YS-INDUSTRY-001-BATCH-001` + +当前结论: +设计已支撑 `ANA-YS-INDUSTRY-001` 的 `BATCH-001` 试运行;本轮只验证流程和存储闭环,不形成有色行业正式结论。 + +## 2026-06-26 02:54:25 DESIGN-ANA-YS-INDUSTRY-001-BATCH-002:有色金属板块核心阅读包草稿设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 `BATCH-002` 核心阅读包草稿设计。 + +创建人员: +Codex + +来源聊天记录: +```text +用户要求读取 ana-doc/研报体系导读.md,接下来对有色金属板块进行研究,然后输出核心文件给用户查看。 +``` + +目标对齐说明: +本设计承接有色长期案例的“行业视图、市场视图、公司视图输出”目标,但本轮先输出给用户查看的核心阅读草稿,不把草稿标记为审核通过的正式结论。 + +案例选择口径: +沿用 `case_id=ANA-YS-INDUSTRY-001`,新增 `batch_id=BATCH-002`、`run_id=RUN-ANA-YS-INDUSTRY-001-BATCH-002`。输入包括 `BATCH-001` 本地研报样本元数据、父级研报体系规则、有色行业方案,以及本轮外部公开信息初筛来源。 + +分析对象: +有色金属板块研究框架、行业视图、市场视图、公司视图、结论边界和下一步补证清单。 + +全流程步骤: + +1. 读取 `研报体系导读.md`、父级案例规范、存储体系和有色方案。 +2. 确认 `ANA-YS-INDUSTRY-001` 已在父级总纲登记。 +3. 冻结 `BATCH-002` 和 `RUN-ANA-YS-INDUSTRY-001-BATCH-002`。 +4. 引用 `BATCH-001` 本地研报样本作为背景线索,不把其压缩为正式行业结论。 +5. 补充外部公开来源索引,建立市场和行业背景证据入口。 +6. 输出核心阅读包:行业视图、市场视图、公司视图、结论与行动清单。 +7. 生成来源索引、结论证据映射和数据缺口清单。 +8. 更新父体系结果入口,记录执行日志,等待后续审核。 + +逐案例执行流程: +```text +父级案例总纲 ANA-YS-INDUSTRY-001 +-> DESIGN-ANA-YS-INDUSTRY-001-BATCH-002 +-> BATCH-002 / RUN-ANA-YS-INDUSTRY-001-BATCH-002 +-> 本地样本和外部来源索引 +-> 核心阅读包 outputs/batch-002-core +-> 来源 manifest / 结论 evidence / 缺口清单 +-> result 入口 +-> 执行日志 +-> 后续执行审核 +``` + +证据要求: + +1. 每条阶段判断必须绑定来源索引或明确标注为框架判断。 +2. 不能输出个股排序、买卖建议、收益承诺或未经证据支持的强因果。 +3. 外部来源必须保留 URL、访问时间、用途和置信度。 +4. 数据不足处进入 `batch-002_unresolved_data_gap.csv`。 +5. 文件状态统一标记 `DRAFT_FOR_REVIEW`。 + +数据输出: +`outputs/batch-002-core/核心阅读入口.md`、`行业视图.md`、`市场视图.md`、`公司视图.md`、`结论与行动清单.md`、`manifest/batch-002_source_index.csv`、`evidence/batch-002_conclusion_evidence_map.csv`、`manifest/batch-002_unresolved_data_gap.csv`、父体系 `result/batch-002_core_readout_index.md`。 + +验收方式: +PASS:核心文件存在,状态标注清楚,来源索引和缺口清单齐全,结论没有过读,用户可按入口阅读。 +FAIL:输出无来源、把草稿写成正式结论、缺失三类视图、或给出交易建议。 +HELD:需要正式价格库存快照、公司证据卡或审核员确认后才能进入正式交付。 + +未来函数 / 泄漏判断: +本轮不是交易回测。涉及外部市场数据时必须保留访问时间和来源,不用后续市场表现反向改写当前判断。 + +设计审计状态: +待正式审核员复核。 + +设计审计入口: +待审核员建立或复用 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-002`。 + +执行日志入口: +`RUN-ANA-YS-INDUSTRY-001-BATCH-002` + +当前结论: +设计已支撑本轮核心阅读草稿输出;正式结论仍需补证和审核。 + +## 2026-06-26 04:10:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003:raw 池全量资料分批分析设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 raw 池 359 份资料的批量处理设计。 + +创建人员: +Codex + +来源聊天记录: +```text +用户说明 raw 里面放了几百份有色研报,要求按流程自动走分析流程,自动网上补数据,补完后输出核心文档;同时要求不要等用户继续。 +``` + +目标对齐说明: +本设计承接 `有色研报解析方案.md` 的母版对齐补充版本,目标是在 DRAFT_FOR_REVIEW 边界内完成 raw 池资料登记、转换、结构化抽取、外部补数据准备、市场反向补漏准备和三类核心文档草稿。 + +案例选择口径: +沿用长期案例 `case_id=ANA-YS-INDUSTRY-001`。`BATCH-003` 覆盖当前有色 raw 池 359 个文件,其中 30 个已在 `BATCH-001` 登记,329 个未登记。本批不新建案例,不把 359 份资料拆成 359 个案例;按 `sub_batch_id` 每 30 份一组执行转换和抽取。 + +分析对象: +有色 raw 池全量资料的登记、文件头识别、批量转换、事实抽取、基础事实卡、主导变量数据卡、公司证据卡、价格库存快照、供需平衡表、项目资产表、市场反向补漏审计和三类视图草稿。 + +全流程步骤: + +1. 读取 `研报体系导读.md`、`案例分析规范.md`、`案例存储体系.md`、`研报解析架构.md`、`有色研报解析方案.md`。 +2. 确认 `ANA-YS-INDUSTRY-001` 已登记父级总纲。 +3. 冻结 `batch_id=BATCH-003`、`run_id=RUN-ANA-YS-INDUSTRY-001-BATCH-003-*`。 +4. 使用 `raw_inventory_batch003.csv` 作为输入清单。 +5. 将 329 个未登记 raw 文件补登记到行业级 `source_document.csv` 和 `artifact_manifest.csv`,保留 sha256、文件头、扩展名、路径、case/batch/run。 +6. 对 357 个 PDF 使用可用 PDF 转换工具转换到行业级 `converted/`;对 2 个 ZIP_OR_OFFICE 文件进入 Office 转换或缺口清单,不伪装成 PDF。 +7. 生成或更新 `conversion_status.csv`。 +8. 从转换文本中抽取 `evidence_fact_table`、`classification_summary`、`company_exposure`。 +9. 按有色方案补建基础事实卡、主导变量数据卡、价格库存快照、供需平衡表、项目资产表和市场反向补漏审计表。 +10. 需要外部数据、新闻、政策事件、市场表现或意图判断时,按 darkline 分流并与普通行业事实分账。 +11. 输出 DRAFT_FOR_REVIEW 状态的行业视图、市场视图、公司视图草稿到案例级 `outputs/`。 +12. 更新案例级 manifest、evidence 映射和父体系 result 入口。 +13. 记录执行日志、自检和缺口,提交执行审核或输出审核。 + +存储落点: + +| 类型 | 路径 | +|---|---| +| raw 资料 | `ana-data/cases/有色案例/raw/` | +| 行业级转换 | `ana-data/cases/有色案例/converted/` | +| 行业级抽取 | `ana-data/cases/有色案例/extracted/` | +| 行业级补充资料 | `ana-data/cases/有色案例/supplement/` | +| 行业级证据 | `ana-data/cases/有色案例/evidence/` | +| 行业级 manifest | `ana-data/cases/有色案例/manifest/` | +| 案例级核心文档 | `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/` | +| 案例级证据映射 | `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/` | +| 案例级引用清单 | `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/` | +| 父体系结果入口 | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | + +输入盘点: + +| 指标 | 数量 | +|---|---:| +| raw 文件数 | 359 | +| PDF 文件头 | 357 | +| ZIP_OR_OFFICE 文件头 | 2 | +| 无扩展名文件 | 28 | +| 已登记 source_document | 30 | +| 未登记 source_document | 329 | + +证据要求: + +1. 每个 raw 文件必须有 sha256、文件头识别、大小、路径、登记状态。 +2. 每个转换文本必须能反查 raw 文件和转换状态。 +3. 每条事实、指标、观点、公司映射必须至少能反查 doc_id、converted_text_path 和原始 raw 路径;后续人工复核时补页码、段落或表格定位。 +4. 价格库存、供需、市场表现和外部信息必须记录来源、时间、单位、口径和置信度。 +5. 三类视图草稿必须引用基础事实卡、主导变量数据卡、价格库存快照、公司证据卡或缺口清单。 + +验收方式: +PASS:raw 全量登记,PDF 转换状态可复核,Office/异常文件进入缺口清单,结构化抽取和文件型清单生成,核心文档进入 outputs,result 入口更新,所有正式前产物标记 `DRAFT_FOR_REVIEW`。 +FAIL:raw 登记不全、转换状态不可追踪、证据链断裂、输出无三类核心文档、或出现交易建议/正式结论。 +HELD:转换工具缺失、外部数据无法取得、关键事实无法定位、或需要审核员确认边界。 + +设计审计状态: +待设计审核。 + +设计审计入口: +待建立 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-003-DESIGN`。 + +执行日志入口: +`RUN-ANA-YS-INDUSTRY-001-BATCH-003-INVENTORY-001` + +当前结论: +BATCH-003 已完成 raw 盘点,可提交设计审核;审核通过前不得进行正式全量转换、抽取和输出结论。 + +## 2026-06-26 05:08:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-SUBTASK-001:BATCH-003 子事项执行设计拆解补充 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 `BATCH-003` 已审核总设计下的子事项拆解补充。 + +补充原因: +执行自检发现,`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` 已写明 raw 登记、转换、抽取、补数据和三类视图草稿的总流程,但没有把执行中实际形成的登记、工具改造、转换、抽取、外部补数、核心文档和输出审核拆成可逐项反查的子事项。根据父级 `案例分析规范.md` 中“设计冻结执行步骤、证据要求、输出物、存储路径和验收方式”的要求,本节补齐设计账本粒度。 + +设计性质: +本补充不改变 `case_id=ANA-YS-INDUSTRY-001`、`batch_id=BATCH-003`、资料范围、输出边界或结论状态;它只把已经由 BATCH-003 总设计覆盖的执行动作细化到子事项级,便于审核员从设计文档反查每个 run。 + +子事项拆解: + +| 子事项 ID | 对应 run_id | 目标 | 主要输入 | 主要输出 | 验收口径 | 状态 | +|---|---|---|---|---|---|---| +| `SUBTASK-B3-REGISTER-001` | `RUN-ANA-YS-BATCH003-REGISTER-001` | 补登记 329 个未登记 raw | `raw_inventory_batch003.csv`、行业 raw 池 | `source_document.csv`、`artifact_manifest.csv`、`registration_manifest_batch003.csv`、登记摘要 | 329 个未登记 raw 可由路径和 hash 反查;不生成结论 | 已执行,DRAFT | +| `SUBTASK-B3-TOOL-001` | `RUN-ANA-YS-BATCH003-INCREMENTAL-TOOL-001` | 将转换工具改成可续跑、即时落盘状态 | 已审核 BATCH-003 设计、首次转换超时记录 | `convert_nonferrous_incremental.py` | 每文件即时追加状态;支持 sub_batch 和索引范围续跑 | 已执行,DRAFT | +| `SUBTASK-B3-CONVERT-001` | `RUN-ANA-YS-BATCH003-CONVERT-001` | 分段转换 BATCH-003 未登记 raw | `raw_inventory_batch003.csv`、行业 raw 池、增量转换工具 | `conversion_status_batch003_incremental.csv`、`conversion_status_batch003_enriched.csv`、`sub_batch_manifest_batch003.csv`、`conversion_gap_batch003.csv`、`conversion_status_batch003_SB*.csv` | 每个 sub_batch 有输入范围、状态、失败项、hash;ZIP_OR_OFFICE 分账;失败不得伪装成功 | 已执行,DRAFT | +| `SUBTASK-B3-EXTRACT-001` | `RUN-ANA-YS-BATCH003-EXTRACT-001` | 对已转换文本做第一轮规则抽取 | `conversion_status_batch003_enriched.csv`、converted 文本 | `evidence_fact_table_batch003_extract001.csv`、`classification_summary_batch003_extract001.csv`、`company_exposure_batch003_extract001.csv`、`batch003_extract001_manifest.csv`、抽取摘要 | 事实句保留 doc、sub_batch、converted text 页码、raw hash;未人工复核前保持 DRAFT | 已执行,DRAFT | +| `SUBTASK-B3-SUPPLEMENT-001` | `RUN-ANA-YS-INDUSTRY-001-SUPPLEMENT-PRICE-001` | 补价格/库存外部快照 | LME、Westmetall、CME、SMM、Trading Economics 等公开入口 | `nonferrous_price_inventory_snapshot_20260625.csv`、`nonferrous_external_source_manifest_20260625.csv` | 来源、时间、口径、review_status 可复核;涉及行情只作 supplement,不直接形成结论 | 已执行,DRAFT | +| `SUBTASK-B3-CORE-DRAFT-001` | `RUN-ANA-YS-CORE-DRAFT-001` | 生成行业视图、市场视图、公司视图草稿和结果入口 | BATCH-001/BATCH-003 事实句、公司草表、外部快照 | `nonferrous_industry_view_draft.md`、`nonferrous_market_view_draft.md`、`nonferrous_company_view_draft.md`、`result_index.md` | 三类核心文档均标记 DRAFT;不得输出正式行业结论、交易指令或收益承诺 | 已执行,DRAFT | +| `SUBTASK-B3-REVIEW-001` | `msg_20260626045952345_e3000a4a` | 提交输出审核 | 三类核心文档、manifest、转换缺口、执行日志 | MB-X 审核请求 | 审核员确认是否允许继续 DRAFT 边界内复核和补强 | 已送审 | + +新增或使用脚本声明: + +| 脚本 | 用途 | 输出落点 | 设计状态 | +|---|---|---|---| +| `ana-data/tools/convert_nonferrous_incremental.py` | BATCH-003 raw 到文本的可续跑转换 | `converted/`、`manifest/conversion_status_batch003_incremental.csv` | 本补充声明 | +| `ana-data/tools/summarize_nonferrous_conversion.py` | 转换状态回连、sub_batch manifest、缺口清单和摘要 | `manifest/`、案例级 `outputs/` | 本补充声明 | +| `ana-data/tools/update_source_document_from_conversion.py` | 将转换状态回写 `source_document.csv` | `manifest/source_document_update_batch003_conversion.csv` | 本补充声明 | +| `ana-data/tools/extract_nonferrous_text_batch.py` | BATCH-003 第一轮事实句、分类和公司草表抽取 | `extracted/`、案例级 `manifest/outputs/` | 本补充声明 | +| `ana-data/tools/build_nonferrous_core_drafts.py` | 生成三类核心文档草稿和结果入口 | 案例级 `outputs/`、父体系 `result/` | 本补充声明 | + +证据要求: + +1. 每个子事项必须能由 `case_id`、`batch_id`、`run_id`、`sub_batch_id`、raw path 和 raw sha256 反查。 +2. 转换失败、Office/ZIP、外部补数不足、公司扫描噪声和未复核事实不得静默删除,必须进入缺口、摘要或 DRAFT 边界说明。 +3. 外部数据、市场反向补漏和 darkline 相关信息必须分账进入 `supplement/`、`evidence/`、`manifest/` 或父体系 `tmp/result/img`,不得混入普通行业事实作为正式结论。 +4. 核心文档输出前必须保留结果入口、过程摘要、manifest 和缺口清单。 + +验收方式: + +PASS: +1. 子事项与执行日志 run_id 能一一对应。 +2. sub_batch 级转换状态、失败项、hash 和摘要可复核。 +3. 抽取产物和核心文档均保持 `DRAFT_FOR_REVIEW`。 +4. 结果入口可指向三类核心文档和关键过程产物。 +5. 没有输出正式行业结论、交易指令或收益承诺。 + +FAIL: +子事项无法反查、脚本未声明、失败文件被当成成功、外部补数无来源、核心文档缺 DRAFT 边界、或把规则抽取草表写成正式结论。 + +HELD: +审核员要求先补人工复核、补页码/段落/表格定位、补 SHFE/SMM 等关键外部数据,或要求把某个子事项拆成独立设计复审后再继续。 + +设计审计状态: +待输出审核或设计补充复核确认。 + +设计审计入口: +待审核员回写。 + +执行日志入口: +`RUN-ANA-YS-BATCH003-REGISTER-001`、`RUN-ANA-YS-BATCH003-INCREMENTAL-TOOL-001`、`RUN-ANA-YS-BATCH003-CONVERT-001`、`RUN-ANA-YS-BATCH003-EXTRACT-001`、`RUN-ANA-YS-CORE-DRAFT-001` + +当前状态: +已补齐 BATCH-003 子事项级设计拆解;后续继续按“设计先冻结、执行日志记录实际过程、输出审核确认边界”的口径执行。 + +## 2026-06-26 05:32:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-REVIEW-001:关键事实复核包设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 BATCH-001 与 BATCH-003 规则抽取后的关键事实复核设计。 + +设计背景: +DRAFT 输出审核已允许继续推进关键事实人工复核、公司证据卡、外部价格库存补强、市场反向补漏和三类核心文档迭代。当前事实句仍为规则扫描结果,尚未具备正式证据级页码、段落、表格定位和人工复核状态。 + +执行目标: +从 BATCH-001 与 BATCH-003 的事实句草表中筛选价格、库存、供给、需求、成本、项目、政策、风险和公司相关关键事实,回连 converted text 页码与上下文,形成第一轮复核包,为后续证据数据卡和核心文档升级做准备。 + +输入: + +1. `ana-data/cases/有色案例/extracted/evidence_fact_table_batch001_extract001.csv` +2. `ana-data/cases/有色案例/extracted/evidence_fact_table_batch003_extract001.csv` +3. `ana-data/cases/有色案例/manifest/source_document.csv` +4. `ana-data/cases/有色案例/manifest/conversion_status_batch003_enriched.csv` +5. BATCH-001/BATCH-003 converted text。 + +执行步骤: + +1. 合并 BATCH-001 与 BATCH-003 事实句草表。 +2. 按金属覆盖、主题优先级和事实类型筛选关键事实候选。 +3. 回到 converted text,核对事实句是否能在对应页码上下文中找到。 +4. 标注 `analyst_review_status`:`TEXT_MATCH_CONTEXT_OK`、`TEXT_MATCH_PARTIAL_CONTEXT`、`NO_TEXT_MATCH`、`NEEDS_TABLE_OR_PDF_REVIEW`。 +5. 标注 `evidence_upgrade_status`:`CANDIDATE_FOR_EVIDENCE_CARD`、`KEEP_DRAFT`、`DATA_GAP_REVIEW`。 +6. 对明显属于券商观点、推荐表达或公司名单的内容标注 `source_expression_type`,避免转写成分析员推荐。 +7. 生成复核 CSV、复核摘要和 manifest。 +8. 将仍缺表格定位、PDF 原页校验或外部数值交叉验证的条目写入下一步缺口。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_review_manifest_batch003_pass001.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_review_batch003_pass001_summary.md` + +验收方式: + +PASS: +1. 复核包覆盖主要金属:铜、铝、金、银、锂、镍、钴、稀土、锡、钨、钼、锑。 +2. 复核包覆盖主要主题:价格、库存、供给、需求、成本、项目、政策、风险、公司。 +3. 每条候选记录保留 `fact_id`、`doc_id`、`raw_file_path`、`converted_text_path`、`page_no`、上下文、review 状态和下一步动作。 +4. 不把券商“推荐关注”等原文表达改写为分析员推荐。 +5. 不把 `TEXT_MATCH_CONTEXT_OK` 直接等同于正式证据;正式证据仍需表格/段落定位和必要外部交叉验证。 + +FAIL: +复核包没有页码上下文、不能回到原始资料、没有分账研报观点和分析员判断、或把复核候选写成正式结论。 + +HELD: +converted text 缺页、raw 文件不可读、关键表格需要 OCR/PDF 人工定位但工具不足,或审核员要求先补设计复审。 + +设计审计状态: +待后续执行审核确认。 + +设计审计入口: +待建立。 + +执行日志入口: +待执行后回写。 + +当前状态: +设计已冻结,进入第一轮关键事实复核包生成。 + +## 2026-06-26 05:42:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-CARD-001:公司证据卡候选设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 BATCH-001 与 BATCH-003 公司映射草表后的第一轮公司证据卡候选设计。 + +设计背景: +DRAFT 输出审核要求后续公司证据卡必须明确分账“研报观点/原文表述”,不得把券商“推荐关注”等表达转写为分析员推荐或交易建议。当前公司视图仍是规则扫描草表,需要收敛为可复核的公司证据卡候选。 + +执行目标: +从公司映射草表和关键事实复核包中筛选有色核心公司候选,形成第一轮公司证据卡。每张卡先记录公司名、提及频次、关联金属、样例证据、研报观点分账、待补业务占比/资源产能/利润弹性/触发失效条件,不输出正式公司结论。 + +输入: + +1. `ana-data/cases/有色案例/extracted/company_exposure_batch001_extract001.csv` +2. `ana-data/cases/有色案例/extracted/company_exposure_batch003_extract001.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +4. 三类核心文档草稿中的公司视图。 + +执行步骤: + +1. 合并 BATCH-001 与 BATCH-003 公司映射草表。 +2. 过滤行业词、免责声明、目录噪声和明显相邻行业噪声。 +3. 按提及频次、金属标签覆盖和事实复核关联度排序。 +4. 生成公司证据卡候选,字段包括公司名、提及次数、关联金属、上下文样例、来源 doc/page、source_expression_type、需要补充的问题和 review_status。 +5. 对含“推荐关注”“相关标的”等表达的样例标注为 `BROKER_VIEW_OR_ORIGINAL_RECOMMENDATION`。 +6. 生成 manifest 和摘要,保持 `DRAFT_FOR_REVIEW`。 + +输出: + +1. `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/company_evidence_card_manifest_batch003_pass001.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/company_evidence_card_batch003_pass001_summary.md` + +验收方式: + +PASS: +1. 公司候选不混入明显行业词、目录词、免责声明或市场噪声。 +2. 每条公司卡都有来源 doc、页码或上下文入口。 +3. 券商观点和原文推荐表达分账,不转写为分析员推荐。 +4. 每条公司卡保留待补字段:业务占比、资源/产能、利润弹性、触发条件、失效条件、风险、外部公告/年报来源。 +5. 所有公司卡保持 `DRAFT_FOR_REVIEW`。 + +FAIL: +公司卡无来源、把研报观点写成分析员推荐、混入大量非公司词、或直接输出交易建议。 + +HELD: +公司归属边界无法判断、需要外部公告/年报但尚未补源、或审核员要求先补公司范围设计复审。 + +设计审计状态: +待后续执行审核确认。 + +设计审计入口: +待建立。 + +执行日志入口: +待执行后回写。 + +当前状态: +设计已冻结,进入第一轮公司证据卡候选生成。 + +## 2026-06-26 06:08:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-MARKET-GAP-001:市场反向补漏与 darkline 分流初筛设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色行业整体研报分析;本记录为 DRAFT 核心文档后的市场反向补漏和 darkline 分流初筛设计。 + +设计背景: +DRAFT 输出审核允许继续推进市场反向补漏和 darkline 分流,要求形成独立 `evidence/manifest`,不得与普通行业事实混账。父级规范要求准备输出或更新核心文档前检查近 3 个月强显影公司,识别研报覆盖缺口、相邻行业噪声和需补资料对象。 + +执行目标: +使用本地只读 MySQL 脚本 `market_gap_scan_mysql.py` 扫描近 3 个月有色相关 A 股强显影候选,输出市场显影缺口审计表、summary 和 manifest;对候选再做 `CORE_INDUSTRY`、`ADJACENT_DOWNSTREAM`、`FALSE_THEME_OR_NOISE` 范围闸门,不直接形成投资结论。 + +输入: + +1. 本地 MySQL 只读表 `a_share_profile_snapshot` +2. 本地 MySQL 只读表 `a_share_daily_price` +3. 关键词:有色、铜、铝、锂、稀土、黄金、小金属、钨、锡、镍、钴。 +4. 扫描窗口:默认近 3 个月。 + +输出: + +1. `ana-data/cases/有色案例/supplement/market_manifestation_gap_audit_*.csv` +2. `ana-data/cases/有色案例/supplement/market_manifestation_gap_summary_*.json` +3. `ana-data/cases/有色案例/manifest/market_manifestation_gap_manifest_*.csv` +4. 如凭据或数据库不可用,输出 `market_manifestation_gap_status_*.csv` 缺口状态。 + +验收方式: + +PASS: +1. SQL 只读,参数和关键词可复核,未泄露密码。 +2. 输出进入 supplement/manifest,不进入普通事实表。 +3. 候选只作为资料缺口和市场显影输入,不写成交易建议。 +4. 每个候选后续必须做范围闸门和替代解释。 + +HELD: +本地 MySQL 密码、客户端或数据表不可用时,记录缺口状态,不阻塞已完成 DRAFT 文档,但不得声称市场反向补漏已完成。 + +当前状态: +设计已冻结;当前会话缺少 `TIANXIA_MYSQL_PASSWORD`,先记录 HELD 缺口。 + +## 2026-06-26 05:28:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001:当前已落地版本复审重提交基线 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 `msg_20260626052317585_2ab17f42` 返回“需补充”,原因是该消息创建时间早于当前设计条目和执行日志条目的记录时间,无法证明提交前已经落地。本记录不修改旧条目,不倒填历史;只基于当前已经落地的文件状态,冻结一次新的复审重提交基线。 + +本次重提交范围: + +| 对象 | 路径 | 文件系统落地时间 | +|---|---|---| +| 关键事实复核表 | `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` | `2026-06-26 05:13:26` | +| 公司证据卡候选 | `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` | `2026-06-26 05:15:47` | +| 价格库存补强 | `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` | `2026-06-26 05:18:02` | +| 市场反向补漏状态 | `ana-data/cases/有色案例/supplement/market_manifestation_gap_status_20260626.csv` | `2026-06-26 05:22:17` | +| 结果入口 | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | `2026-06-26 05:22:17` | +| 设计文档 | `ana-doc/有色案例/案例分析设计.md` | 本条目追加后 | +| 执行日志 | `ana-doc/有色案例/案例执行日志.md` | 重提交记录追加后 | + +复审请求边界: + +1. 请求确认当前已落地版本可作为 `DRAFT_FOR_REVIEW` 边界内的证据卡补强和核心文档迭代输入。 +2. 不请求正式行业结论通过。 +3. 不请求正式公司结论通过。 +4. 不请求市场反向补漏完成确认;该项仍为 `HELD_BY_ENV`。 + +验收方式: + +PASS: +1. 本条设计基线、执行日志重提交记录、证据文件、结果入口均早于新 MB-X 重提消息创建时间。 +2. 证据入口可打开,状态均为 `DRAFT_FOR_REVIEW` 或 `HELD_BY_ENV`。 +3. 没有输出交易指令、收益承诺或无证据强结论。 + +FAIL: +任一重提交对象不存在、落地时间晚于新提交消息、或边界被写成正式结论。 + +当前状态: +重提交基线已冻结,待追加执行日志重提记录并重新发送复审请求。 + +## 2026-06-26 05:58:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-LOCATION-003:关键事实段落/表格定位预复核 PASS-003 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员已允许公司来源卡 PASS-002 和关键事实证据卡 PASS-002 在 `DRAFT_FOR_REVIEW` 范围内继续作为补证输入,但指出关键事实证据卡的数值/单位仍为候选,正式升级前必须补段落/表格定位和外部交叉验证。本轮先处理 63 条关键事实证据卡的 converted text 定位,形成可复核的页码、行号、上下文和表格/段落候选。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/converted/` 中对应 converted text。 + +执行步骤: + +1. 对每条证据卡读取 `converted_text_path`。 +2. 根据 `evidence_text` 做规范化匹配,优先精确行匹配,其次上下文窗口匹配,最后使用已记录页码做页标 fallback。 +3. 记录 `precheck_page_no`、`precheck_location`、`match_method`、`location_context`。 +4. 根据上下文中的数值、表/图/资料来源/单位等线索标记 `TABLE_CANDIDATE` 或 `PARAGRAPH_CANDIDATE`。 +5. 未能定位的记录标记 `NEEDS_MANUAL_SOURCE_PAGE_REVIEW`。 +6. 产物保持 `DRAFT_FOR_REVIEW`,不得直接升级为正式证据。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_location_precheck_manifest_pass003.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_location_precheck_pass003_summary.md` + +验收方式: + +PASS: +1. 输出记录数与 PASS-002 关键事实证据卡输入记录数一致。 +2. 每条记录保留 case_id、batch_id、run_id、evidence_card_id、fact_id、doc_id、converted_text_path、页码、行号或待人工定位状态。 +3. 摘要列明定位成功数、未定位数、表格候选数和段落候选数。 +4. 不输出正式指标、正式行业结论、交易指令或收益承诺。 + +HELD: +converted text 缺失、证据句无法在文本中定位,或需要 PDF 原页/OCR 表格才能继续。 + +当前状态: +设计已冻结,进入关键事实定位预复核执行。 + +## 2026-06-26 06:06:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PDF-TABLE-004:关键事实 PDF 原页表格复核队列 PASS-004 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 PASS-003 给出有条件通过,允许定位复核表作为 `DRAFT_FOR_REVIEW` 补强输入,同时指出 55 条 `TABLE_CANDIDATE` 仍需人工核对 PDF 原页表格、表头、单位、口径和日期。本轮不做正式事实确认,只生成 PDF 原页表格核对队列和页图证据入口,为人工复核和后续外部交叉验证准备。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +3. `ana-data/cases/有色案例/raw/` 中对应 PDF 或 PDF-like 原件。 + +执行步骤: + +1. 筛选 `location_type_candidate=TABLE_CANDIDATE` 的 55 条记录。 +2. 用 raw 文件路径回查原始 PDF 文件是否存在、文件头是否为 PDF。 +3. 对可打开的 PDF,根据 `precheck_page_no` 导出对应原页图片到父体系 `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-PDF-TABLE-004/`。 +4. 从 PDF 原页文本中提取候选页文本、表格线索、单位线索、日期线索和资料来源线索。 +5. 对页码未知、PDF 不可打开、原页无文本或图片导出失败的记录保留缺口状态。 +6. 输出 PDF 表格人工复核队列、manifest 和摘要;全部保持 `DRAFT_FOR_REVIEW`。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_pdf_table_review_manifest_pass004.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_pdf_table_review_pass004_summary.md` +4. `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-PDF-TABLE-004/` + +验收方式: + +PASS: +1. 输出记录数等于 PASS-003 表格候选数。 +2. 每条记录保留 evidence_card_id、fact_id、doc_id、raw_file_path、page_no、PDF 打开状态、页图路径或失败原因。 +3. 摘要列明 PDF 可打开数、页图导出数、页码缺失数、失败数。 +4. 不把表格候选直接升级为正式事实或正式指标。 + +HELD: +PDF 解析依赖缺失、原始文件不是 PDF、页码未知、PDF 加密/损坏或原页需要人工 OCR。 + +当前状态: +设计已冻结,进入 PDF 原页表格复核队列生成。 + +## 2026-06-26 06:15:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PAGE-GAP-005:页码未知和非 PDF 头异常处理 PASS-005 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 PASS-004 给出有条件通过,允许把 PDF 原页表格复核队列作为 `HELD_BY_ENV` 缺口记录继续使用,并指出 13 条页码未知、1 条 raw 文件头不是 `%PDF-`。本轮不处理 PDF 渲染依赖缺失项,不导出页图;只对页码未知项和非 PDF 头异常做可追溯补查。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +4. `ana-data/cases/有色案例/converted/` +5. `ana-data/cases/有色案例/raw/` + +执行步骤: + +1. 筛选 `HELD_BY_PAGE_UNKNOWN` 与 `HELD_BY_NOT_PDF_HEADER` 记录。 +2. 对页码未知项回查 converted text 页标、行号上下文、原 evidence_text 和候选上下文,尝试推断最近页标。 +3. 对仍无页标的记录标记 `NEEDS_MANUAL_PAGE_RECONSTRUCTION`,不得硬填页码。 +4. 对非 PDF 头异常记录读取文件头、文件大小、raw 路径和 converted 路径,判断是否属于 Office/ZIP/无扩展名 PDF-like 或源文件异常。 +5. 输出缺口修复队列、manifest 和摘要,全部保持 `DRAFT_FOR_REVIEW` 或 `HELD_BY_ENV`。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_page_gap_repair_pass005.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_page_gap_repair_manifest_pass005.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_page_gap_repair_pass005_summary.md` + +验收方式: + +PASS: +1. 输出记录覆盖 PASS-004 中 13 条页码未知和 1 条非 PDF 头异常。 +2. 每条记录保留原状态、补查动作、补查结果、下一步动作和 review_status。 +3. 不把推断页码或异常分类写成正式 PDF 原页复核通过。 + +HELD: +converted text 无页标、raw 非 PDF 且无法识别,或需人工打开原件确认。 + +当前状态: +设计已冻结,进入页码未知和非 PDF 头异常补查。 + +## 2026-06-26 06:17:00 DESIGN-ANA-YS-INDUSTRY-001-PDF-CONVERSION-PRIORITY-001:PDF 转换失败处理优先级口径 + +所属案例事项: +`ANA-YS-INDUSTRY-001` + +设计背景: +用户明确要求不要在少量 PDF 文件转换或页图导出问题上消耗过多时间;少量无法转换的 PDF 可以先登记缺口并忽略,后续由用户补文档。若失败数量较大或影响主线覆盖,分析员需要主动告知用户。 + +执行口径: + +1. PDF 转换、PDF 页图导出、表格 OCR 失败不自动阻断行业研究主流程。 +2. 单轮失败占比不超过 10%,且不集中影响铜铝、贵金属、能源金属、稀土任一主线或关键公司时,登记到缺口/manifest 后继续事实交叉验证、公司证据卡和核心文档迭代。 +3. 单轮失败占比超过 10%,或失败集中在关键品种、关键公司、核心指标来源时,必须在窗口向用户说明影响范围,并记录为 `HELD_BY_SOURCE_GAP` 或等价状态。 +4. 不得为了补齐 PDF 转换而长期停留在环境修复;优先使用已转换文本、研报摘要、官方公告、年报、交易所/行业协会/数据源进行交叉验证。 +5. PDF 失败项不得伪装成已复核证据;只能作为缺口、候选或待补文档入口保留。 + +当前状态: +口径已冻结,后续执行按该优先级推进。 + +## 2026-06-26 06:20:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-CROSSCHECK-006:关键事实外部交叉验证映射 PASS-006 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +PDF 原页表格复核队列已作为 `HELD_BY_ENV` 缺口保留。按照用户最新口径,少量 PDF 转换问题不阻断主线。本轮转向非 PDF 依赖的关键事实交叉验证:用已落地的外部价格库存补数、公司官方来源卡和 PASS-003 converted text 定位结果,对 PASS-002 关键事实证据卡形成外部交叉验证状态映射。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +3. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` +4. `ana-data/cases/有色案例/supplement/nonferrous_external_source_manifest_20260625.csv` +5. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` + +执行步骤: + +1. 对每条关键事实证据卡拆分金属标签和主题标签。 +2. 价格、库存、市场数据类事实优先匹配外部价格库存快照;按金属、指标类型和来源清单建立候选交叉验证入口。 +3. 供给、产能、项目、公司类事实优先匹配公司官方来源卡;无法命中公司源时保留官方来源缺口。 +4. 合并 PASS-003 页码/行号定位状态,给出 `cross_check_status`、`evidence_strength_draft` 和 `next_action`。 +5. 所有输出保持 `DRAFT_FOR_REVIEW`,不得升级为正式指标或正式结论。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_external_crosscheck_manifest_pass006.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_external_crosscheck_pass006_summary.md` + +验收方式: + +PASS: +1. 输出记录数与 PASS-002 关键事实证据卡一致。 +2. 每条记录保留原证据卡 ID、金属/主题、定位状态、外部来源候选、交叉验证状态和下一步动作。 +3. 摘要列明已命中外部价格库存源、已命中公司官方源、缺外部源、需人工复核的数量。 +4. 不输出正式指标、正式行业结论、交易指令或收益承诺。 + +HELD: +无外部来源、来源快照失败、公司官方源缺失、或需要人工/用户补文档。 + +当前状态: +设计已冻结,进入关键事实外部交叉验证映射。 + +## 2026-06-26 06:27:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-GAP-PRIORITY-007:关键事实外部来源缺口优先级 PASS-007 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 PASS-006 给出有条件通过,允许继续推进 45 条 `MEDIUM_DRAFT` 的来源日期、单位、口径和数值一致性核实,并补齐 18 条 `GAP_REVIEW` 的外部来源。为避免盲目补源,本轮先把 18 条缺口按金属、主题、证据类型、核心程度和补证路径拆成优先级队列。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` + +执行步骤: + +1. 筛选 PASS-006 中 `evidence_strength_draft=GAP_REVIEW` 或 `cross_check_status` 以 `NEEDS_` 开头的记录。 +2. 按价格库存缺口、公司官方来源缺口分组。 +3. 按金属主线优先级、主题类型、是否有数值候选、是否已定位 converted text,标记 `HIGH/MEDIUM/LOW`。 +4. 给每条缺口分配补证问题、首选来源类型和下一步动作。 +5. 输出缺口优先级队列、manifest 和摘要,全部保持 `DRAFT_FOR_REVIEW`。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_gap_priority_manifest_pass007.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_gap_priority_pass007_summary.md` + +验收方式: + +PASS: +1. 输出记录覆盖 PASS-006 的 18 条 `GAP_REVIEW`。 +2. 每条记录包含缺口类型、优先级、补证问题、首选来源和下一步动作。 +3. 不输出正式事实、正式指标、行业结论或交易建议。 + +HELD: +无法判断缺口所属金属或主题,或需要用户补文档才能继续。 + +当前状态: +设计已冻结,进入外部来源缺口优先级生成。 + +## 2026-06-26 06:35:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-HIGH-GAP-SOURCE-008:高优先级外部来源补充 PASS-008 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 PASS-007 给出有条件通过,允许按 `supplement_now=10` 优先补高优先级来源。本轮仅针对 PASS-007 中 10 条 `HIGH` 缺口,补充可复核外部来源入口和口径说明,不直接确认研报原始数值,也不升级正式证据。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +4. 公开外部来源:交易所、行业协会、官方数据、公司公告/IR 或可信公开数据源。 + +执行步骤: + +1. 筛选 `priority=HIGH` 且 `next_action=supplement_now` 的 10 条记录。 +2. 按金属/主题归并补源问题,优先补金、银价格/库存、交易所或协会数据入口;对锑/金等混合标签记录补对应金属或公司来源候选。 +3. 对每条缺口记录补 `source_name`、`source_url`、`source_scope`、`source_date_policy`、`review_status`。 +4. 对当前无法直接补数值的来源,只记录入口和待抽取状态,不伪造数值。 +5. 输出高优先级补源表、manifest 和摘要,全部保持 `DRAFT_FOR_REVIEW`。 + +输出: + +1. `ana-data/cases/有色案例/supplement/key_fact_high_gap_source_pass008.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/key_fact_high_gap_source_manifest_pass008.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_high_gap_source_pass008_summary.md` + +验收方式: + +PASS: +1. 覆盖 10 条高优先级缺口。 +2. 每条记录至少有一个外部来源入口或明确的 `SOURCE_GAP_REMAINS` 状态。 +3. 明确来源可用于价格、库存、公司公告或其他口径的哪类验证。 +4. 不输出正式事实、正式指标、正式行业结论或交易建议。 + +HELD: +来源需要登录、付费、网页不可访问、或缺口必须由用户补文档。 + +当前状态: +设计已冻结,进入高优先级外部来源补充。 + +## 2026-06-26 05:36:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-SOURCE-002:公司证据卡官方来源补强 PASS-002 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员已允许在 `DRAFT_FOR_REVIEW` 边界内继续做公司证据卡补强,但指出公司卡仍缺业务占比、资源/产能、利润弹性、触发/失效条件、风险和公告/年报来源。本轮优先选择公司证据卡 PASS-001 中提及频次靠前且属于有色核心产业链的公司,补官方来源入口和业务暴露字段。 + +本轮公司范围: +`紫金矿业`、`中国铝业`、`北方稀土`、`赣锋锂业`、`天齐锂业`、`华友钴业`、`江西铜业`、`山东黄金`、`云铝股份`、`锡业股份`。 + +执行步骤: + +1. 优先检索公司官网、投资者关系、交易所公告、年报/半年报和官方介绍。 +2. 每家公司至少记录一个官方或准官方来源入口;无法取得时记录缺口。 +3. 补充主营金属、产业链位置、资产/资源/产能线索、证据来源 URL、来源日期或报告期。 +4. 对研报原文“推荐关注/相关标的”继续保留为 `BROKER_VIEW_OR_ORIGINAL_RECOMMENDATION`,不得转写为分析员推荐。 +5. 输出公司来源补强表、来源 manifest 和摘要。 + +输出: + +1. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` +2. `ana-data/cases/有色案例/manifest/company_source_manifest_pass002.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/company_source_card_pass002_summary.md` + +验收方式: + +PASS: +1. 每条记录包含公司名、证券代码或市场、主营金属、产业链位置、官方来源 URL、来源类型、review_status。 +2. 明确哪些字段已补、哪些字段仍为缺口。 +3. 不输出交易建议、收益承诺或正式公司结论。 + +HELD: +公司官网/公告不可访问、来源需要登录或付费、或公司业务边界需要人工确认。 + +当前状态: +设计已冻结,进入公司官方来源补强。 + +## 2026-06-26 05:52:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-CARD-002:关键事实证据卡 PASS-002 设计 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +关键事实复核包 PASS-001 已筛出 63 条 `CANDIDATE_FOR_EVIDENCE_CARD`,但仍停留在事实句和上下文层面。正式证据升级前需要把事实句拆成结构化证据卡,至少提取时间、数值、单位、对象、来源定位和待补动作。 + +执行目标: +把关键事实复核包中的证据升级候选转成事实证据卡草表,抽取数值/单位/日期,标记是否需要表格定位、外部交叉验证、券商观点分账和范围闸门。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +2. BATCH-001/BATCH-003 converted text 页码上下文。 + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_evidence_card_manifest_pass002.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_evidence_card_pass002_summary.md` + +验收方式: + +PASS: +1. 只处理 `CANDIDATE_FOR_EVIDENCE_CARD` 且范围闸门为 `CORE_INDUSTRY_CANDIDATE` 的记录。 +2. 每张卡保留 fact_id、doc_id、page_no、原文片段、上下文、数值候选、单位候选和下一步补证动作。 +3. 不把数值候选直接写成正式指标;保持 `DRAFT_FOR_REVIEW`。 + +HELD: +事实句无法抽取数值/单位,或需要表格 OCR/PDF 原页定位才能继续。 + +当前状态: +设计已冻结,进入关键事实证据卡生成。 + +## 2026-06-26 05:50:00 DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PASS002-RESUBMIT-001:PASS-002 当前已落地版本复审重提交基线 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +设计背景: +审核员对 `msg_20260626054717735_b05daf29` 返回“需补充”,原因是 `FACT-CARD-002` 的设计条目和执行日志条目记录时间晚于审核请求创建时间。本记录不修改旧条目,不倒填历史;只基于当前已经落地的文件状态,冻结一次新的 PASS-002 重提交基线。 + +本次重提交范围: + +| 对象 | 路径 | 文件系统落地时间 | +|---|---|---| +| 公司来源卡 | `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` | `2026-06-26 05:40:21` | +| 关键事实证据卡 | `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` | `2026-06-26 05:45:32` | +| 来源归档状态 | `ana-data/cases/有色案例/supplement/company_source_archive_status_pass002.csv` | `2026-06-26 05:43:45` | +| 结果入口 | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | `2026-06-26 05:46:13` | +| 设计文档 | `ana-doc/有色案例/案例分析设计.md` | 本条目追加后 | +| 执行日志 | `ana-doc/有色案例/案例执行日志.md` | 重提交记录追加后 | + +复审请求边界: + +1. 只请求确认 PASS-002 产物可作为 `DRAFT_FOR_REVIEW` 后续补证输入。 +2. 不请求正式公司来源证据通过。 +3. 不请求正式指标证据通过。 +4. 不请求正式行业或公司结论通过。 + +验收方式: + +PASS: +1. 本条设计基线、执行日志重提交记录、证据文件和结果入口均早于新 MB-X 重提消息创建时间。 +2. 公司来源卡、关键事实证据卡、来源归档状态均可打开且状态为 `DRAFT_FOR_REVIEW`。 +3. 没有输出交易指令、收益承诺或无证据强结论。 + +FAIL: +任一重提交对象不存在、落地时间晚于新提交消息、或边界被写成正式结论。 + +当前状态: +重提交基线已冻结,待追加执行日志重提记录并重新发送复审请求。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" index e6ce5aa..8faa5b0 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" @@ -3,7 +3,7 @@ 创建人员:Codex 文件职责:记录有色行业研报案例的数据、证据、结果包和临时文件存储口径,作为 `../案例存储体系.md` 的行业子存储体系。 管理规范/模板:../案例存储体系.md;../案例分析规范.md。 -引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;有色研报解析方案.md。 +引用文件:案例分析规范.md;../案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;有色研报解析方案.md。 记录方式:有色行业案例存储入口;目录、表结构、结果包口径变化时更新。 ## 1. 母版继承 @@ -20,54 +20,129 @@ ana-doc/有色案例/ ``` -正式研报案例可以继续在本目录下增设子目录,也可以直接使用本目录账本登记。是否创建子目录由案例分析设计决定,但必须保证每个正式案例有唯一案例 ID 和可追踪入口。 +正式研报案例不在本目录下增设独立案例总纲。真实案例登记到父级 `../案例总纲.md`,本目录只维护事项设计、执行日志、审计报告、问题记录和有色方案。 ## 3. 数据层目录建议 -有色案例数据默认落到父级 `ana-data/` 下,并按行业案例分组: +有色案例数据默认落到父级 `ana-data/` 下,并按行业案例分组。原始研报统一进入有色 raw 池: + +```text +ana-data/cases/有色案例/raw/ +``` + +有色行业级通用研报资料库使用: + +```text +ana-data/cases/有色案例/ + raw/ + converted/ + extracted/ + supplement/ + evidence/ + manifest/ +``` + +逐案例正式产物只保存该案例自定义输出、引用清单和案例证据映射: ```text ana-data/cases/有色案例/<case_id>/ -ana-data/result/有色案例/<case_id>/ -ana-data/img/有色案例/<case_id>/ -ana-data/tmp/有色案例/<case_id>/ + outputs/ + manifest/ + evidence/ ``` -`tmp` 目录只能存放中间文件,不得作为正式证据入口。 +有色案例同时兼容父体系默认目录: + +```text +ana-data/tmp/有色案例/<case_id>/<run_id>/ +ana-data/result/有色案例/<case_id>/ +ana-data/img/有色案例/<case_id>/ +``` + +`ana-data/tmp/` 只能存放中间文件,不得作为正式证据入口。`ana-data/result/` 用于结果入口、对外交付包、跨案例汇总或父级审计辅助输出。`ana-data/img/` 用于研报截图、图表、OCR 图片、标注图和图片 manifest。 ## 4. 推荐结果包结构 ```text -ana-data/result/有色案例/<case_id>/ - manifest.json - summary.md - evidence_index.csv - readout.md - source_list.csv - data_cards/ +ana-data/cases/有色案例/ + manifest/ + artifact_manifest.csv + source_document.csv + conversion_status.csv + migration_manifest.csv + evidence/ + evidence_index.csv + converted/ + extracted/ + supplement/ + +ana-data/cases/有色案例/<case_id>/ + manifest/ + case_input_manifest.csv + human_doc_validation_receipt.csv + evidence/ + case_evidence_map.csv outputs/ - image_manifest.csv + summary.md + readout.md + 行业视图.md + 市场视图.md + 公司视图.md + +ana-data/result/有色案例/<case_id>/ + result_index.md + +ana-data/tmp/有色案例/<case_id>/<run_id>/ + +ana-data/img/有色案例/<case_id>/ ``` -`manifest.json` 至少记录案例 ID、生成时间、输入资料、输出文件、证据索引、文件清单和哈希或等价摘要。 +最低结果包入口: + +```text +ana-data/cases/有色案例/<case_id>/outputs/ +ana-data/cases/有色案例/<case_id>/evidence/ +ana-data/cases/有色案例/<case_id>/manifest/ +``` + +行业级 `manifest/` 至少记录来源资料、转换状态、批次、run、文件清单和哈希或等价摘要。案例级 `manifest/` 至少记录本案例引用了哪些行业级资料、输出文件、审计清单和人读验收回执。 ## 5. 原始资料与转换结果 -原始研报和转换结果建议放在: +原始研报放在有色行业统一 raw 池: ```text -ana-data/cases/有色案例/<case_id>/raw/ -ana-data/cases/有色案例/<case_id>/converted/ -ana-data/cases/有色案例/<case_id>/extracted/ -ana-data/cases/有色案例/<case_id>/supplement/ +ana-data/cases/有色案例/raw/ +``` + +通用转换结果和后续通用产物放在行业级目录: + +```text +ana-data/cases/有色案例/converted/ +ana-data/cases/有色案例/extracted/ +ana-data/cases/有色案例/supplement/ +ana-data/cases/有色案例/evidence/ +ana-data/cases/有色案例/manifest/ ``` 其中: -1. `raw/` 保存原始研报、公告、公开资料或来源快照。 -2. `converted/` 保存 PDF 转文本、表格、OCR 或其他格式转换结果。 -3. `extracted/` 保存事实抽取、指标抽取、公司映射和观点拆解。 -4. `supplement/` 保存公开资料补充、市场反向补漏和缺口处理。 +1. 行业统一 `raw/` 保存原始研报、公告、公开资料或来源快照。所有有色研报文件都进入这一个 raw 池,不按每次 30 份或每个 case 分散存放。 +2. 行业级 `converted/` 保存 PDF 转文本、表格、OCR 或其他格式转换结果。 +3. 行业级 `extracted/` 保存事实抽取、指标抽取、公司映射和观点拆解。 +4. 行业级 `supplement/` 保存公开资料补充、市场反向补漏和缺口处理。 +5. 行业级 `evidence/` 保存通用证据索引、数据卡、来源定位和 raw-to-converted trace。 +6. 行业级 `manifest/` 保存文件清单、来源清单、hash、版本、转换状态和迁移清单。 +7. 案例级 `outputs/` 保存行业视图、市场视图、公司视图和对外可读文档。 +8. 案例级 `manifest/` 保存本案例引用的 batch/run、行业级资料清单、审核清单和验收回执。 +9. 案例级 `evidence/` 保存本案例结论到行业级证据的映射,不替代行业级证据事实。 +10. 父体系 `tmp/` 保存本案例本次 run 的临时文件和可重建中间产物,不进入案例资料目录。 +11. 父体系 `result/` 保存本案例结果入口、对外交付包或汇总索引,不替代案例级 `outputs/` 和证据链。 +12. 父体系 `img/` 保存本案例图片、截图、OCR 图片、标注图和图片 manifest。 + +同一有色案例分多批读取时,使用 `batch_id` 区分输入批次,例如 `BATCH-001`、`BATCH-002`。每次执行使用 `run_id` 记录实际处理轮次。`artifact_manifest.csv`、`source_document.csv`、`conversion_status.csv` 和 `evidence_index.csv` 必须保留 `case_id`、`batch_id`、`run_id`,并指向行业统一 raw 池、行业级 converted 和行业级 evidence 中的正式文件。 + +父体系兼容说明:逐案例详细人读输出仍在 `ana-data/cases/有色案例/<case_id>/outputs/`;`ana-data/result/有色案例/<case_id>/` 必须保留结果入口或交付包索引,供父体系、审核员和外部读取者快速进入结果包。 ## 6. 行业专属表 @@ -85,7 +160,10 @@ ## 7. 禁止事项 -1. 不得把 `ana-data/tmp/有色案例/` 当正式证据。 +1. 不得创建或使用 `ana-data/cases/有色案例/<case_id>/tmp/` 存放临时产物;临时产物统一进入 `ana-data/tmp/有色案例/<case_id>/<run_id>/`,且不得当正式证据。 2. 不得只有结论文档而没有证据索引。 3. 不得把历史有色目录路径作为本目录正式归档路径。 4. 不得把有色行业专属字段写入父级通用存储体系。 +5. 不得把有色 raw 按每个 case、batch 或 run 分散存放;raw 文件统一进入 `ana-data/cases/有色案例/raw/`。 +6. 不得把有色通用转换、抽取、补充、证据事实和行业级 manifest 按 case、batch 或 run 分散存放;它们统一进入 `ana-data/cases/有色案例/converted|extracted|supplement|evidence|manifest/`。 +7. 不得把有色图片、截图、OCR 图片或图册散落在 `cases/`、私有工作区或 outputs 旁边;图片类产物统一进入 `ana-data/img/有色案例/<case_id>/`。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" index e13bb44..821ea59 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" @@ -1,54 +1,57 @@ # 有色案例审核规范 -创建人员:Codex -文件职责:记录有色行业研报案例的本地审核口径,作为 `../案例审核规范.md` 的行业子规范。 -管理规范/模板:../案例审核规范.md;../案例分析规范.md。 -引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md;有色研报解析方案.md。 -记录方式:有色行业案例审核规范;审核口径变化时更新。 +创建人员:Codex +文件职责:记录有色行业研报案例的本地审核补充,作为 `../案例审核规范.md` 的轻量继承入口。 +管理规范/模板:../案例审核规范.md;../案例分析规范.md;../案例存储体系.md。 +引用文件:案例分析规范.md;../案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md;有色研报解析方案.md;../研报体系/研报解析架构.md;../研报体系/研报分析架构.md。 +记录方式:有色行业案例审核补充;只有有色审核口径变化时更新。 -## 1. 母版继承 +## 1. 继承关系 -本文件必须继承并遵守 `../案例审核规范.md`。 +本文件不是第二套审核母版,不复制父级阶段门、审核类型、阻断条件和复审流程。审核有色研报案例时,第一遵守以下父级文件: -审核员审核有色研报案例时,同时检查: +1. `../案例审核规范.md` +2. `../案例分析规范.md` +3. `../案例存储体系.md` +4. `../研报体系/研报解析架构.md` +5. `../研报体系/研报分析架构.md` -1. 是否遵守父级案例分析规范。 -2. 是否遵守本目录有色案例分析规范。 -3. 是否读取并继承 3 个研报母版。 -4. 是否按 `有色研报解析方案.md` 执行。 +有色专业审核依据: -如果本目录流程和父级默认流程不同,审核员应先判断本目录流程是否已经在设计中写清并通过审核。只要不违反父级硬约束和研报母版底线,应按已通过的本地流程审核。 +1. `有色研报解析方案.md` +2. `案例分析设计.md` +3. `案例执行日志.md` +4. `案例审计报告.md` +5. `案例存储体系.md` -## 2. 设计审核 +如本文件、有色方案或具体设计与父级审核规范冲突,审核员先按父级审核规范执行,并把冲突记录为审计问题或规范维护事项。 -正式执行前必须审核: +## 2. 当前自定义状态 -1. 案例来源、行业范围、目标和边界是否明确。 -2. 是否创建或更新 `有色研报解析方案.md`。 -3. 是否说明本次需要输出的行业视图、市场视图、公司视图和扩展文档。 -4. 是否列明原始研报、公开资料、市场反向补漏和数据卡要求。 -5. 是否说明结果包、证据包和 manifest 的落点。 -6. 是否明确资料缺口的标记方式。 +| 项 | 当前口径 | +|---|---| +| 审核主流程 | 无额外覆写,按父级 `../案例审核规范.md` 的阶段门和审核类型执行 | +| 行业方案审核 | 按父级行业方案审核要求检查 `有色研报解析方案.md` 是否可执行 | +| 设计审核 | 按父级设计审核要求检查本目录 `案例分析设计.md` | +| 执行审核 | 按父级执行审核、存储审核、输出审核和结论边界审核执行 | +| 阻断条件 | 无额外放宽;父级阻断条件全部适用 | -设计审核不通过,不得进入正式执行。 +## 3. 有色补充检查 -## 3. 执行审核 +审核员在父级审核清单之外,补充检查: -执行完成后必须审核: - -1. 执行是否按已通过的案例分析设计进行。 -2. 原始资料、转换结果、抽取事实和补充资料是否可追溯。 -3. 核心指标是否有数据卡或明确缺口标记。 -4. 行业、市场、公司结论是否有证据索引。 -5. 市场反向补漏是否覆盖强势标的或明确排除原因。 -6. 暗线内容是否与普通行业事实分离。 -7. 结果包、证据包和 manifest 是否可打开。 -8. 结论是否存在过读。 - -执行审核不通过,不得标记案例完成。 +1. 有色边界、细分方向、核心变量、输出方案、专属表和缺口是否维护在 `有色研报解析方案.md`,而不是散落到本规范。 +2. 有色真实案例是否登记到父级 `../案例总纲.md`,本目录是否未创建平行 `案例总纲.md`。 +3. `案例分析设计.md` 是否把同一长期有色研究目标作为一个案例处理,并用 `batch_id`、`run_id` 区分多轮资料读取。 +4. 有色 raw 原始资料是否进入行业统一 raw 池,未按 case、batch 或 run 分散存放。 +5. 本轮是否需要公开资料补充、市场反向补漏或 darkline;需要时是否按父级要求使用 `darkline` 并留痕。 +6. 有色输出是否仍以行业视图、市场视图、公司视图为核心,不被细分方向文档替代。 +7. 有色方案如在执行中被优化,是否在执行后回写维护记录并保留审核入口。 +8. 单篇定位、批量最低产物、`unresolved_data_gap.csv`、`source_gap_audit.csv`、主动补数据、基础事实卡、数据卡和场景影响映射,是否按父级审核规范检查。 +9. 有色市场反向补漏是否按父级要求检查近 3 个月强显影股票、核心业务重归因、scope 闸门、补资料清单和排除记录。 ## 4. 审计记录 审核结论写入本目录 `案例审计报告.md`。 -审计发现的主要问题以 `案例审计报告.md` 为主记录;只有需要跨轮跟踪或非审计来源的问题,才写入 `案例问题记录.md`。 +审计发现的主要问题以 `案例审计报告.md` 为主记录;只有需要跨轮跟踪的审计问题索引、外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计问题,才写入 `案例问题记录.md`。执行 AI 自检发现且能在本轮或本案例内处理的问题,应进入 `案例执行日志.md`、自检、验证报告、manifest、数据缺口表或结果包,不写入问题记录。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" index ca346c3..9e2f63d 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" @@ -1,31 +1,1152 @@ -# 有色案例审计报告 +# 有色案例审计报告 创建人员:Codex -文件职责:记录有色行业研报案例的设计审核、执行审核、复审和审计问题主记录。 -管理规范/模板:案例审核规范.md;../案例审核规范.md。 -引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例问题记录.md;案例存储体系.md;有色研报解析方案.md。 -记录方式:append-only 审计账本;审核结论和审计问题追加到文件末尾。 +文件职责:作为有色行业容器的审计账本,记录有色研报案例设计审核、执行审核、复审结果和审计问题主记录。 +管理规范/模板:../案例审核规范.md;../案例分析规范.md;../../common/ana-doc/案例审计报告模版.md;案例审核规范.md。 +引用文件:../案例总纲.md;案例分析设计.md;案例执行日志.md;案例问题记录.md;案例存储体系.md;有色研报解析方案.md。 +记录方式:append-only 有色案例审计报告;每次设计审核、执行审核和复审追加到文件末尾。 -## 2026-06-25 AUDIT-ANA-YS-TEMPLATE-001 +固定口径:审核员发现的问题完整记录在本文;只有需要跨轮跟踪、跨案例汇总或长期处理时,才在 `案例问题记录.md` 中建立索引,不重复全文。本文中的 Codex 记录为管理端自检,仍需正式审核员复核。 -- 审计 ID:`AUDIT-ANA-YS-TEMPLATE-001` -- 审计事项:`ANA-YS-TEMPLATE-001` / 有色行业研报案例目录模板初始化 -- 审计类型:初始化自检,待案例审核员复核 -- 审计对象:`ana-doc/有色案例/` -- 审计依据:`../案例分析规范.md`;`../案例审核规范.md`;`../案例存储体系.md` -- 当前结论:待审核员复核 +## 1. 当前审计总览 -### 管理端自检 +| 审计 ID | 审计对象 | 审计类型 | 审核员 | 结论 | 时间 | +|---|---|---|---|---|---| +| `AUDIT-ANA-YS-TEMPLATE-001` | `DESIGN-ANA-YS-TEMPLATE-001` / `RUN-ANA-YS-TEMPLATE-001` | 初始化自检 | Codex,待正式审核员复核 | 待复核 | 2026-06-25 22:30:00 | +| `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` | `DESIGN-ANA-YS-INDUSTRY-001` / `RUN-ANA-YS-INDUSTRY-001-BATCH-001` | 设计自检 + 执行自检 + 存储归档审核 | Codex,待正式审核员复核 | 试运行范围内通过,待复核 | 2026-06-25 23:05:00 | +| `AUDIT-ANA-YS-CONTAINER-STRUCTURE-001` | `RUN-ANA-YS-CONTAINER-STRUCTURE-001` | 结构调整自检 | Codex,待正式审核员复核 | 待复核 | 2026-06-25 23:40:00 | +| `AUDIT-ANA-YS-STORAGE-COMPAT-001` | `RUN-ANA-YS-STORAGE-COMPAT-001` | 父体系 tmp/result/img 兼容自检 | Codex,待正式审核员复核 | 待复核 | 2026-06-26 00:35:00 | -- 基础文档:已创建。 -- 母版继承:规范类和存储类文档已声明继承父级同名文档。 -- 行业方案入口:已创建 `有色研报解析方案.md`。 -- 结论边界:未导入历史有色结论,未执行正式研报分析。 -- 存储口径:已给出有色案例数据层建议路径。 +## 2. 审计记录模板 -### 待审核员确认 +### <YYYY-MM-DD HH:mm:ss> <AUDIT-ID>:<审计标题> -1. 本目录是否满足行业案例文件夹机制。 -2. 父级母版继承关系是否清楚。 -3. 是否需要补充有色行业正式案例 ID 命名规则。 -4. 是否允许后续正式有色研报案例以本目录为模板展开。 +审计对象: +<ANA-ID / DESIGN-ID / LOG-ID / PACK-ID> + +审计类型: +设计审核 / 执行审核 / 复审 / 存储归档审核 + +审核员: +<审核员> + +来源聊天记录 / 上游依据: +<粘贴关键聊天记录,或写明案例总纲、设计、执行日志、结果包路径> + +依据文档: + +1. `../案例分析规范.md` +2. `../案例审核规范.md` +3. `../案例存储体系.md` +4. `案例分析设计.md` +5. `案例执行日志.md` +6. `有色研报解析方案.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 父级总纲登记完整 | PASS / FAIL / N/A | | +| 设计目标对齐来源要求 | PASS / FAIL / N/A | | +| 案例选择口径合理 | PASS / FAIL / N/A | | +| 全流程步骤覆盖输入到结论 | PASS / FAIL / N/A | | +| 执行按设计进行 | PASS / FAIL / N/A | | +| raw 只进入行业统一池 | PASS / FAIL / N/A | | +| manifest 含 case/batch/run/hash | PASS / FAIL / N/A | | +| 证据链可追踪 | PASS / FAIL / N/A | | +| 问题落点符合规范 | PASS / FAIL / N/A | | +| 结论没有过读 | PASS / FAIL / N/A | | +| darkline 触发边界正确 | PASS / FAIL / N/A | | + +发现问题: + +1. <如无写“无”> + +审计结论: +通过 / 不通过 / 暂缓 + +是否阻断: +是 / 否 + +是否允许进入下一阶段: +是 / 否 + +建议动作: +<下一步> + +复审要求: +<是否需要复审> + +## 2026-06-25 22:30:00 AUDIT-ANA-YS-TEMPLATE-001:有色行业容器初始化自检 + +审计对象: +`DESIGN-ANA-YS-TEMPLATE-001` / `RUN-ANA-YS-TEMPLATE-001` + +审计类型: +初始化自检,待正式审核员复核。 + +审核员: +Codex + +来源聊天记录 / 上游依据: +用户要求创建有色行业研报承接目录,并确认行业目录不是一个独立案例。 + +依据文档: + +1. `../案例分析规范.md` +2. `../案例审核规范.md` +3. `../案例存储体系.md` +4. `案例分析设计.md` +5. `案例执行日志.md` +6. `有色研报解析方案.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 父级总纲登记完整 | PASS | `ANA-YS-TEMPLATE-001` 已在父级 `../案例总纲.md` 登记 | +| 设计目标对齐来源要求 | PASS | 只做行业容器初始化,不输出行业结论 | +| 行业容器文档完整 | PASS | 本目录基础文档和 `有色研报解析方案.md` 已存在 | +| 子规范继承父级母版 | PASS | 规范类和存储类文档声明继承父级 | +| 行业目录无独立总纲 | PASS | 本目录不维护 `案例总纲.md` | +| 结论没有过读 | PASS | 未导入历史有色结论 | + +发现问题: + +1. 无阻断问题。 + +审计结论: +管理端自检通过,待正式审核员复核。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许进入有色 pilot 试运行或正式案例设计,但正式案例仍需单独设计和审核。 + +建议动作: +后续新行业容器应复用同样结构,并优先使用父级总纲登记真实案例。 + +复审要求: +需正式审核员复核。 + +## 2026-06-26 05:08:00 AUDIT-ANA-YS-CORE-DRAFT-001:BATCH-003 三类核心文档草稿输出审核 + +审计对象: +`TASK-ANA-YS-CORE-DRAFT-REVIEW-20260626` / `msg_20260626045952345_e3000a4a` + +审计类型: +执行过程审核 + DRAFT 输出审核。 + +审核员: +case_analysis.reviewer + +来源消息: +`case_analysis.analyst` 提交 `RUN-ANA-YS-CORE-DRAFT-001` 输出审核。 + +复审范围: + +1. `../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` +2. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_industry_view_draft.md` +3. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_market_view_draft.md` +4. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_company_view_draft.md` +5. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_conversion_summary.md` +6. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_extract001_summary.md` +7. `../../ana-data/cases/有色案例/manifest/conversion_status_batch003_enriched.csv` +8. `../../ana-data/cases/有色案例/manifest/sub_batch_manifest_batch003.csv` +9. `../../ana-data/cases/有色案例/manifest/conversion_gap_batch003.csv` +10. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/batch003_extract001_manifest.csv` +11. `../../ana-data/cases/有色案例/supplement/nonferrous_price_inventory_snapshot_20260625.csv` +12. `../../ana-data/cases/有色案例/supplement/nonferrous_external_source_manifest_20260625.csv` +13. `案例执行日志.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 结果入口 | PASS | `result_index.md` 存在,状态为 `DRAFT_FOR_REVIEW`,能进入三类核心文档和关键过程产物。 | +| 转换状态 | PASS | `conversion_status_batch003_enriched.csv` 有 329 行;`TEXT_CONVERTED=309`,`FAILED=20`,全部 `DRAFT_FOR_REVIEW`。 | +| sub_batch 分账 | PASS | `sub_batch_manifest_batch003.csv` 有 11 个 sub_batch,合计 input=329、converted=309、failed=20、ZIP_OR_OFFICE=2。 | +| 转换缺口 | PASS | `conversion_gap_batch003.csv` 有 20 行,失败项未按成功转换处理。 | +| 抽取产物 | PASS | BATCH-003 规则抽取产出事实句 3269、分类汇总 309、公司映射 16545;抽取 manifest 3 行,均为 `DRAFT_FOR_REVIEW`。 | +| 外部补数 | PASS | 价格库存快照 16 行,外部来源 manifest 10 行;文件位于行业级 `supplement/`。 | +| 行业视图草稿 | PASS | 有 `DRAFT_FOR_REVIEW` 标记,说明来自规则抽取和外部快照,明确不输出正式行业结论或交易建议。 | +| 市场视图草稿 | PASS | 有 `DRAFT_FOR_REVIEW` 标记,记录价格库存快照和缺口,说明市场异常、新闻、政策事件需后续 darkline 分流。 | +| 公司视图草稿 | PASS | 有 `DRAFT_FOR_REVIEW` 标记,声明规则公司名扫描置信度较低,仅用于公司证据卡优先级,不输出交易指令或收益承诺。 | +| 结论边界 | PASS | 未发现分析员把三类草稿标为正式结论;结果入口明确正式结论和对外交付前仍需执行审核或输出审核。 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0。 | + +发现问题: + +1. 未发现阻断 DRAFT 输出审核的问题。 +2. 非阻断问题:公司视图样例上下文中含有研报原文的“推荐关注”等券商表达;当前作为原文片段可保留,但后续公司证据卡必须明确分账为“研报观点/原文表述”,不得转写为分析员推荐或交易建议。 +3. 非阻断问题:BATCH-001 与 BATCH-003 事实句仍未完成段落、表格定位和人工复核;正式证据升级前必须补齐。 +4. 非阻断问题:外部补数仍存在 SHFE 国内库存、锂/稀土直接数值口径和多来源交叉验证缺口;后续市场视图不得把当前快照写成完整覆盖。 + +审计结论: +DRAFT 输出审核通过。 + +是否阻断: +否。不阻断继续在 `DRAFT_FOR_REVIEW` 边界内推进关键事实人工复核、公司证据卡、外部价格库存补强、market/darkline 反向补漏。 + +是否允许进入下一阶段: +允许继续推进以下 DRAFT 范围工作: + +1. 关键事实人工复核,补段落、表格定位和原文页码校验。 +2. 公司证据卡,重点处理公司业务占比、资源/产能、利润弹性、触发/失效条件和风险。 +3. 外部价格库存补强,补 SHFE、SMM、交易所、行业协会或官方来源。 +4. 市场反向补漏和 darkline 分流,形成独立 evidence/manifest,不与普通行业事实混账。 +5. 三类核心文档迭代草稿。 + +限制条件: + +1. 当前三类核心文档不得作为正式行业结论、正式公司结论或对外交付版本。 +2. 不得输出交易指令、收益承诺或无证据强结论。 +3. 后续如果把草稿升级为正式行业视图、市场视图或公司视图,必须重新提交输出审核。 +4. 涉及新闻、政策事件、资本动作、组织行为、市场异常表现或意图判断时,必须按 darkline 分流并记录来源时间、替代解释和证据链。 + +复审要求: +人工复核、公司证据卡、外部补数或 market/darkline 补漏完成后,需提交执行审核或输出审核;正式对外交付前必须重新审核。 + +## 2026-06-26 04:12:00 AUDIT-ANA-YS-INDUSTRY-001-BATCH-003-DESIGN:BATCH-003 raw 池全量资料分批分析设计审核 + +审计对象: +`TASK-ANA-YS-BATCH003-DESIGN-REVIEW-20260626` / `msg_20260626040144446_b803cb3c` + +审计类型: +案例设计审核。 + +审核员: +case_analysis.reviewer + +来源消息: +`case_analysis.analyst` 提交 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` 设计审核。 + +复审范围: + +1. `案例分析设计.md` 中 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` +2. `案例执行日志.md` 中 `RUN-ANA-YS-INDUSTRY-001-BATCH-003-INVENTORY-001` +3. `../../ana-data/cases/有色案例/manifest/raw_inventory_batch003.csv` +4. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_inventory_summary.md` +5. `有色研报解析方案.md` +6. 父级 `../案例分析规范.md`、`../案例审核规范.md`、`../案例存储体系.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 是否沿用正确案例 | PASS | 设计沿用 `ANA-YS-INDUSTRY-001`,未把 359 份资料拆成 359 个案例。 | +| batch/sub_batch 口径 | PASS | `BATCH-003` 表达输入资料批次,每 30 份一组的 `sub_batch_id` 只作为执行分组,不改变 case_id。 | +| 设计冻结完整性 | PASS | 设计写明目标、输入范围、执行步骤、证据要求、存储落点、验收方式和 DRAFT 边界。 | +| raw 盘点证据 | PASS | `raw_inventory_batch003.csv` 有 359 行;字段包含 case_id、batch_id、run_id、文件名、扩展名、文件头、大小、sha256、raw 路径、登记状态和 review_status。 | +| 文件头识别 | PASS | 盘点显示 PDF 357 个、ZIP_OR_OFFICE 2 个;异常文件已在摘要和执行日志列出。 | +| source_document 补登记流程 | PASS | 设计要求先将 329 个未登记 raw 文件补入 `source_document.csv` 和 `artifact_manifest.csv`,再进入转换。 | +| 异常文件处理 | PASS | 设计要求 ZIP_OR_OFFICE 进入 Office 转换或缺口清单,不伪装成 PDF。 | +| 存储落点 | PASS | raw 仍在行业统一 raw 池;当前未发现逐案例 `raw/` 或 batch 级 raw 目录。 | +| 外部补数据和 darkline 分账 | PASS | 设计要求外部数据、新闻、政策事件、市场表现或意图判断按 darkline 分流并与普通行业事实分账。 | +| 输出边界 | PASS | 三类视图草稿和抽取产物在执行/输出审核前保持 `DRAFT_FOR_REVIEW`,不输出交易建议或正式结论。 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0。 | + +发现问题: + +1. 未发现阻断性问题。 +2. 非阻断要求:执行阶段必须显式产出或更新 sub_batch 级 manifest / conversion_status / 抽取摘要,记录每组 30 份的输入范围、处理结果、失败项和 hash。 +3. 非阻断要求:2 个 `ZIP_OR_OFFICE` 文件必须在执行日志和缺口/转换状态中分账;不得按 PDF 转换成功处理。 +4. 非阻断要求:外部数据、市场反向补漏和 darkline 产物必须进入 `supplement/`、`evidence/`、`manifest/` 或父体系 `tmp/result/img` 的对应位置,并保留来源、时间、参数和 review_status。 + +审计结论: +通过。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许设计通过后进入全量登记、分组转换、结构化抽取、外部补数据准备、市场反向补漏审计和 `DRAFT_FOR_REVIEW` 三类视图草稿阶段。 + +限制条件: + +1. 全量转换前必须先完成 329 个未登记 raw 文件的 `source_document.csv` 和 `artifact_manifest.csv` 补登记。 +2. 每个 sub_batch 的转换、抽取和补数结果必须可由 case_id、batch_id、sub_batch_id、run_id、raw sha256 反查。 +3. 未补页码、段落、表格定位和人工复核前,抽取事实表、数据卡和三类视图草稿不得升级为正式证据或正式结论。 +4. 正式行业结论、公司投资读法或对外交付前,必须再提交执行审核或输出审核。 +5. 不得输出交易指令、收益承诺或无证据强结论。 + +复审要求: +后续如果资料范围、sub_batch 规则、转换工具链、外部补数据口径、darkline 分流边界、存储落点或输出状态发生实质变化,需重新提交复审。 + +## 2026-06-26 00:35:00 AUDIT-ANA-YS-STORAGE-COMPAT-001:父体系 tmp/result/img 兼容自检 + +审计对象: +`RUN-ANA-YS-STORAGE-COMPAT-001` + +审计类型: +存储兼容自检。 + +审核员: +Codex + +来源聊天记录 / 上游依据: +用户确认研报体系应兼容本身案例体系的 `ana-data/tmp/`、`ana-data/result/`、`ana-data/img/` 默认目录,例如有色临时文件应放入 `tmp/有色案例/`。 + +依据文档: + +1. `../案例存储体系.md` +2. `../案例分析规范.md` +3. `../案例审核规范.md` +4. `案例存储体系.md` +5. `案例分析设计.md` +6. `案例执行日志.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 父级存储规则同步 | PASS | `cases/` 管资料库和案例输出,`tmp/result/img` 按父体系分流 | +| 有色子存储规则同步 | PASS | 有色子规范明确 `ana-data/tmp|result|img/有色案例/<case_id>/` | +| 案例级 tmp 清理 | PASS | `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/tmp/` 不存在 | +| 父体系 tmp | PASS | `ana-data/tmp/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-INDUSTRY-001-BATCH-001/` 存在 | +| 父体系 result | PASS | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` 存在 | +| 父体系 img | PASS | `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/` 存在,本轮未产生图片 | + +发现问题: + +1. 无阻断问题。 + +审计结论: +管理端自检通过,待正式审核员复核。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许后续行业案例按父体系 `tmp/result/img` 兼容口径执行。 + +建议动作: +后续每个行业案例设计必须显式写出 `cases`、`tmp`、`result`、`img` 四类落点;执行日志和验证报告必须检查这些路径。 + +复审要求: +需正式审核员复核。 + +## 2026-06-26 03:34:00 AUDIT-ANA-YS-SCHEME-REVIEW-20260626:有色研报解析方案正式复核 + +审计对象: +`TASK-ANA-YS-SCHEME-REVIEW-20260626` / `有色研报解析方案.md` / `案例分析设计.md` / `案例执行日志.md` / `案例存储体系.md` + +审计类型: +方案审核 + BATCH-001 第一轮结构化抽取边界复核。 + +审核员: +case_analysis.reviewer + +来源消息: +`msg_20260626032241910_7e0c8f2a`,来源角色 `case_analysis.analyst`。 + +依据文档: + +1. `../案例审核规范.md` +2. `../案例分析规范.md` +3. `../案例存储体系.md` +4. `../研报体系导读.md` +5. `有色研报解析方案.md` +6. `案例分析设计.md` +7. `案例执行日志.md` +8. `案例存储体系.md` +9. `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch001_extract001_summary.md` +10. `../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 有色方案是否为本地实例化方案 | PASS | `有色研报解析方案.md` 已写出有色行业边界、变量、输出、专属表候选、batch/run 和存储落点,不是空模板。 | +| 与父级规范和存储体系是否冲突 | PASS | 方案采用父级总纲登记、行业容器账本、行业级 raw/converted/extracted/evidence/manifest 与案例级 outputs/manifest/evidence,未发现路径冲突。 | +| 行业边界和核心变量是否足够支撑 v0.1 | PASS | 覆盖基本金属、小金属、稀土、贵金属、加工材料、公司弹性、价格库存、供需和政策变量,可作为 v0.1 执行基础。 | +| 输出方案是否足够 | PASS | 已区分行业视图、市场视图、公司视图,并列出专属表候选和不允许过读的底线。 | +| BATCH-001 落点是否符合方案 | PASS | 抽取摘要、manifest、事实句草表、分类汇总和公司映射草表均落在方案指定的 case/extracted/result 路径;manifest 有 case_id、batch_id、run_id、hash 和 review_status。 | +| DRAFT_FOR_REVIEW 边界是否清楚 | PASS | BATCH-001 摘要和结果入口均标明规则扫描、未人工复核、不得作为正式结论或交易建议。 | +| 关联正式文档可读性 | FAIL | `../研报体系导读.md`、`案例分析设计.md`、`案例存储体系.md` 的中文正文在当前文件中呈现乱码,影响正式审核链路可读性。 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0。 | + +发现问题: + +1. 阻断正式通过的问题:`ana-doc/研报体系导读.md`、`ana-doc/有色案例/案例分析设计.md`、`ana-doc/有色案例/案例存储体系.md` 存在中文正文乱码,正式审核员无法把它们作为稳定可读的管理依据。 +2. 非阻断但必须在正式结论前补齐的问题:BATCH-001 第一轮抽取仍是规则扫描,尚未补页码、段落、表格定位和人工复核;该状态已在产物中声明为 `DRAFT_FOR_REVIEW`。 +3. 非阻断但必须在下一轮执行补强的问题:铜铝、贵金属、能源金属、稀土仍需价格库存快照、外部证据和市场反向补漏;涉及新闻、市场表现或外部信息时应按 darkline 分流。 + +审计结论: +需补充。 + +是否阻断: +阻断“方案正式通过”和正式三类视图交付;不阻断分析员在 `DRAFT_FOR_REVIEW` 边界内继续做事实表人工复核、公司证据卡草拟、价格库存快照准备和证据补强。 + +是否允许进入下一阶段: +有条件允许。分析员可以继续推进事实表复核、公司证据卡、价格库存快照和正式三类视图草稿,但在以下事项完成前不得把方案标记为正式通过,不得输出正式行业结论或交易建议: + +1. 修复 `研报体系导读.md`、有色 `案例分析设计.md`、有色 `案例存储体系.md` 的中文可读性。 +2. 在修复后重新提交方案/设计/存储体系复审。 +3. 为 BATCH-001 关键事实补页码、段落或表格定位,并完成必要人工复核。 + +建议动作: +由分析员或管理端优先重建上述乱码文档的可读版本;修复后保留当前方案主体和证据落点设计,再提交复审。 + +复审要求: +需要复审;复审重点为文档可读性修复、BATCH-001 人工复核证据和正式三类视图边界。 + +## 2026-06-26 03:40:00 AUDIT-ANA-YS-SCHEME-REVIEW-FOLLOWUP-001:有色方案文档可读性复审 + +审计对象: +`TASK-ANA-YS-SCHEME-REVIEW-20260626` / `msg_20260626033131530_62296c49` + +审计类型: +阻断项修复复审。 + +审核员: +case_analysis.reviewer + +来源消息: +`case_analysis.analyst` 针对 `msg_20260626032844484_f8f28648` 的 followup。 + +复审范围: + +1. `../研报体系导读.md` +2. `案例分析设计.md` +3. `案例存储体系.md` +4. `有色研报解析方案.md` +5. `案例执行日志.md` 中 `RUN-ANA-YS-SCHEME-REVIEW-FIX-001` + +复审方法: + +1. 使用 `Get-Content -Encoding UTF8` 显式读取三份被质疑文档首部。 +2. 使用 PowerShell UTF-8 原文统计行数和常见乱码标记:`�`、`鐮`、`妗`、`鏈`、`鍒`、`瀹`、`涓`、`骞`、`绔`、`彿`、`鏂`。 +3. 复跑 `python -m mbx.cli validate --project project-info --governance`。 +4. 抽查方案文档首部、执行门和行业边界。 + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| `../研报体系导读.md` UTF-8 可读性 | PASS | UTF-8 显式读取首行为 `# 研报体系导读`,行数 287,bad_marker_count=0。 | +| `案例分析设计.md` UTF-8 可读性 | PASS | UTF-8 显式读取首行为 `# 有色案例分析设计`,行数 371,bad_marker_count=0。 | +| `案例存储体系.md` UTF-8 可读性 | PASS | UTF-8 显式读取首行为 `# 有色案例存储体系`,行数 170,bad_marker_count=0。 | +| 修复留痕 | PASS | `案例执行日志.md` 已存在 `RUN-ANA-YS-SCHEME-REVIEW-FIX-001`,记录复核和复审准备。 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0。 | +| 方案状态 | PASS | `有色研报解析方案.md` 仍声明为 `v0.1 正式基础方案`,并保留具体案例设计和审核执行门。 | + +复审说明: +上次审计中“中文正文呈现乱码”的阻断项,在当前工作区版本中使用显式 UTF-8 读取无法复现。未显式指定编码的 PowerShell 读取可能受宿主默认编码或代码页影响而显示 mojibake;本次以文件本身 UTF-8 可读性为准。 + +发现问题: + +1. 原“文档中文乱码”阻断项解除。 +2. BATCH-001 第一轮抽取仍是规则扫描,尚未补页码、段落、表格定位和人工复核;该项维持为非阻断但正式结论前必须补齐。 +3. 铜铝、贵金属、能源金属、稀土仍需价格库存快照、外部证据和市场反向补漏;涉及新闻、市场表现或外部信息时仍需按 darkline 分流。 + +审计结论: +通过。 + +是否阻断: +否。文档可读性阻断项已解除。 + +是否允许进入下一阶段: +允许分析员按 `有色研报解析方案.md` 作为 v0.1 正式基础方案继续推进事实表复核、公司证据卡、价格库存快照、外部证据补强和三类视图草稿。 + +限制条件: +在 BATCH-001 关键事实补齐页码、段落或表格定位并完成人工复核前,所有抽取产物和三类视图草稿仍保持 `DRAFT_FOR_REVIEW`,不得输出正式行业结论或交易建议。 + +复审要求: +后续若方案边界、核心变量、存储落点、batch/run 规则、darkline 触发边界或正式输出状态发生变化,需重新提交复审。 + +## 2026-06-26 03:58:00 AUDIT-ANA-YS-SCHEME-ARCH-ALIGN-001:有色方案对齐研报解析架构复审 + +审计对象: +`TASK-ANA-YS-SCHEME-ARCH-ALIGN-REVIEW-20260626` / `msg_20260626035216809_a7ecb999` + +审计类型: +行业方案实质变更复审。 + +审核员: +case_analysis.reviewer + +来源消息: +`case_analysis.analyst` 提交有色研报解析方案对 `研报解析架构.md` 的细化变更复审。 + +复审范围: + +1. `有色研报解析方案.md` +2. `案例执行日志.md` 中 `RUN-ANA-YS-SCHEME-ARCH-ALIGN-001` +3. `../研报体系/研报解析架构.md` +4. 父级 `../案例分析规范.md`、`../案例审核规范.md`、`../案例存储体系.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 是否承接母版继承机制 | PASS | 方案明确当前不覆写 `研报解析架构.md`,只做有色行业细化,并列出母版对齐表。 | +| 三类核心文档是否清楚 | PASS | 已把顶层输出限定为行业视图、市场视图、公司视图,并说明支撑材料不能替代三类核心文档。 | +| 行业视图细化是否足够 | PASS | 覆盖总体行业、子行业/金属品种、产业链环节、关键公司/资产、关键变量和证据。 | +| 市场视图细化是否足够 | PASS | 覆盖价格、库存、供需、利润、横向对比、历史对比、结构占比、市场反向补漏和时间窗口。 | +| 公司视图细化是否足够 | PASS | 覆盖公司全景、盈利模式、业务占比、壁垒、产品阶段、分拆上市可能、估值位置、触发/失效条件和风险。 | +| 文件型清单字段是否满足证据链 | PASS | 基础事实卡、主导变量数据卡、价格库存快照、供需平衡、公司暴露、项目资产和市场补漏表均含 case/batch/run、证据入口、缺口或 review 状态。 | +| 是否保留父级存储底线 | PASS | 方案声明专属表和文件型清单不能替代父级 `source_document`、`evidence_fact`、manifest 和证据映射;落点仍使用行业级通用目录和案例级 outputs/manifest/evidence。 | +| 是否保留 darkline 分流 | PASS | 场景涉及新闻、政策铺垫、资本动作、组织行为、市场异常表现或意图判断时必须按 darkline 分流。 | +| 是否保留 DRAFT 边界 | PASS | 当前缺口继续声明 BATCH-001 未补页码、段落、表格定位和人工复核,不能作为正式证据表。 | +| 执行日志留痕 | PASS | `RUN-ANA-YS-SCHEME-ARCH-ALIGN-001` 已记录输入、过程、输出、偏离设计、自检和待复审状态。 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0。 | + +发现问题: + +1. 未发现阻断性问题。 +2. 非阻断提醒:公司视图可写“投资读法、观察条件、触发/失效条件和风险”,但仍不得输出交易指令、收益承诺或无证据强结论。 +3. 非阻断提醒:文件型清单字段已满足方案层最低要求,后续具体案例设计仍需冻结实际文件名、生成时点、来源范围、复核口径和 manifest 登记方式。 + +审计结论: +通过。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许分析员按该细化方案继续推进事实表复核、公司证据卡、价格库存快照、供需平衡表、项目资产表、市场反向补漏审计和三类视图草稿。 + +限制条件: + +1. BATCH-001 关键事实补齐页码、段落或表格定位并完成人工复核前,所有抽取产物和三类视图草稿仍保持 `DRAFT_FOR_REVIEW`。 +2. 市场反向补漏、新闻、政策事件、资本动作、组织行为、市场异常表现或意图判断必须按 darkline 分流,并与普通行业事实分账。 +3. 正式行业结论、公司投资读法或对外交付前,必须再提交执行审核或输出审核。 + +复审要求: +后续若方案覆写母版流程,或变更三类核心文档结构、文件型清单最低字段、存储落点、batch/run 规则、darkline 触发边界、正式输出状态,需重新提交复审。 + +## 2026-06-25 23:05:00 AUDIT-ANA-YS-INDUSTRY-001-BATCH-001:有色行业整体案例 BATCH-001 试运行审计 + +审计对象: +`DESIGN-ANA-YS-INDUSTRY-001` / `RUN-ANA-YS-INDUSTRY-001-BATCH-001` / `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/` + +审计类型: +设计自检 + 执行自检 + 存储归档审核。 + +审核员: +Codex + +来源聊天记录 / 上游依据: +用户要求进入下一阶段并验证新研报案例体系有没有问题;随后确认有色行业整体研报分析是一个长期行业案例,30 份一批属于该案例下的 batch/run,不应被理解为每 30 份资料一个正式案例。 + +依据文档: + +1. `../案例分析规范.md` +2. `../案例审核规范.md` +3. `../案例存储体系.md` +4. `案例分析设计.md` +5. `案例执行日志.md` +6. `有色研报解析方案.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 父级总纲登记完整 | PASS | `ANA-YS-INDUSTRY-001` 已登记父级 `../案例总纲.md` | +| 设计目标对齐来源要求 | PASS | `ANA-YS-INDUSTRY-001` 是长期行业案例,本轮只验证 `BATCH-001` 流程,不输出行业结论 | +| 案例选择口径合理 | PASS | 30 份样本覆盖 3 个本地来源,用于流程验证 | +| 全流程步骤覆盖输入到结论 | PASS | 已覆盖行业级 raw、manifest、converted、extracted、evidence,以及案例级 outputs、审计 | +| 执行按设计进行 | PASS | 使用 `BATCH-001` 和 `RUN-ANA-YS-INDUSTRY-001-BATCH-001` | +| raw 只进入行业统一池 | PASS | 30 份 raw PDF 均在 `../../ana-data/cases/有色案例/raw/` | +| 逐案例目录无通用资料库目录 | PASS | `ANA-YS-INDUSTRY-001/` 只保留 outputs、案例引用 manifest 和案例证据映射;临时文件改由父体系 tmp 承接 | +| manifest 含 case/batch/run/hash | PASS | 行业级 CSV 均补充 `case_id`、`batch_id`、`run_id` | +| 转换状态可复核 | PASS | 30 份 PDF 使用 `pypdf` 完成转换并记录状态 | +| 证据链可追踪 | PASS | 行业级 `evidence_index.csv` 有 30 条 raw-to-converted trace | +| 问题落点符合规范 | PASS | 可处理事项进入执行日志、验证报告或数据缺口表,未写入问题记录 | +| 结论没有过读 | PASS | 输出明确不形成有色行业投资结论 | +| darkline 触发边界正确 | PASS | 本轮未联网补资料、未做市场显影或事件链分析,不触发 darkline | + +发现问题: + +1. 当前环境缺 PyMuPDF/fitz,但本轮已按回退规则用 `pypdf` 完成转换;不阻断本轮,正式批量转换前应由执行 AI 明确工具链或回退规则。 +2. 旧铜铝目录存在 58 个无扩展名文件,已进入行业级 `extracted/unresolved_data_gap.csv`;不影响本轮 30 份样本,后续历史迁移由执行 AI 按文件头识别处理。 + +审计结论: +试运行范围内通过,待正式审核员复核。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许进入 `ANA-YS-INDUSTRY-001` 后续历史有色资料全量迁移方案和文件头识别修复阶段;不允许把 `BATCH-001` 结果当成有色行业正式结论。 + +建议动作: +正式批量执行前补充工具链策略,并在后续案例设计中明确 batch 分批、raw 统一池和数据缺口处理方式。 + +复审要求: +需正式审核员复核。 + +## 2026-06-25 23:40:00 AUDIT-ANA-YS-CONTAINER-STRUCTURE-001:有色行业容器结构调整自检 + +审计对象: +`RUN-ANA-YS-CONTAINER-STRUCTURE-001` + +审计类型: +结构调整自检。 + +审核员: +Codex + +来源聊天记录 / 上游依据: +用户确认选择“行业整体研报分析到输出是一个案例,分批读取是事项/batch/run”;同时确认行业目录不应有独立案例总纲,真实案例记录在父级总纲。 + +依据文档: + +1. `../案例分析规范.md` +2. `../案例存储体系.md` +3. `../案例总纲.md` +4. `案例分析设计.md` +5. `案例执行日志.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 父级总纲唯一 | PASS | 有色真实案例已迁入父级总纲 | +| 行业目录无独立总纲 | PASS | 本目录不维护 `案例总纲.md` | +| 有色账本独立 | PASS | 设计、执行、审计、问题记录保留在本目录 | +| raw 只进入行业统一池 | PASS | `BATCH-001` raw 已迁入 `../../ana-data/cases/有色案例/raw/` | +| 通用产物路径一致 | PASS | `BATCH-001` converted、extracted、evidence、manifest 已指向行业级目录 | + +发现问题: + +1. 无阻断问题。 + +审计结论: +管理端自检通过,待正式审核员复核。 + +是否阻断: +否。 + +是否允许进入下一阶段: +允许继续修正父级/行业文档模板一致性,并按新结构开展后续正式案例。 + +建议动作: +其他行业容器创建时沿用“父级总纲唯一 + 一个行业整体研报分析案例 + 行业级通用资料库 + 行业账本独立”的模式。 + +复审要求: +需正式审核员复核。 + +## AUDIT-ANA-YS-FACT-COMPANY-SUPPLEMENT-001:BATCH-003 关键事实、公司证据卡、价格库存补强与市场反向补漏状态复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-FACT-COMPANY-SUPPLEMENT-REVIEW-20260626 +关联消息:msg_20260626052317585_2ab17f42 +提交时间:2026-06-26T05:23:17+08:00 +审核对象: + +1. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +2. `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` +3. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` +4. `ana-data/cases/有色案例/supplement/market_manifestation_gap_status_20260626.csv` +5. `ana-doc/有色案例/案例分析设计.md` +6. `ana-doc/有色案例/案例执行日志.md` +7. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 消息提交时点 | PASS | MB-X 消息创建时间为 `2026-06-26T05:23:17+08:00` | +| 设计条目提交前存在性 | FAIL | 当前 `案例分析设计.md` 中 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-REVIEW-001`、`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-CARD-001`、`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-MARKET-GAP-001` 的记录时间分别为 `05:32`、`05:42`、`06:08`,晚于消息提交时间 | +| 执行日志提交前存在性 | FAIL | 当前 `案例执行日志.md` 中 `RUN-ANA-YS-FACT-REVIEW-001`、`RUN-ANA-YS-COMPANY-CARD-001`、`RUN-ANA-YS-MARKET-GAP-001` 的记录时间分别为 `05:38`、`05:48`、`06:12`,晚于消息提交时间 | +| 证据文件当前存在性 | PASS | 关键事实、公司证据卡、价格库存补强、市场反向补漏状态和结果入口当前均存在 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 关键事实复核包 | PASS_WITH_LIMITS | 110 条记录均为 `DRAFT_FOR_REVIEW`,均有 converted text 页码上下文命中;但 `TEXT_MATCH_CONTEXT_OK` 不能等同正式证据通过 | +| 公司证据卡候选 | PASS_WITH_LIMITS | 80 条记录均为 `DRAFT_FOR_REVIEW`,券商观点和原文推荐表达已单独分账;仍缺业务占比、资源/产能、利润弹性、触发/失效条件、风险和公告/年报来源 | +| 价格库存补强 | PASS_WITH_LIMITS | 18 条补强记录均为 `DRAFT_FOR_REVIEW`;SMM 部分价格仍需补币种、汇率和原始口径,稀土 Pr-Nd Oxide 仍为 `TO_BE_EXTRACTED` | +| 市场反向补漏 | HELD | 状态为 `HELD_BY_ENV`,缺少 `TIANXIA_MYSQL_PASSWORD`,不得写成市场显影覆盖完整 | +| 结论边界 | PASS | 未发现正式行业结论、交易指令、收益承诺或公司投资建议输出 | + +发现问题: + +1. 阻断项:本次提交存在“提交后补落设计/执行记录”的时序缺陷。依据 `ana-doc/案例审核规范.md` 的审核前置核查要求,无法证明关键设计和执行记录在 MB-X 提交时已经落地,本消息不能给出无条件通过结论。 +2. 非阻断项:关键事实仍需段落、表格定位和必要外部交叉验证,当前只能作为证据升级候选。 +3. 非阻断项:公司证据卡仍缺正式公司证据链字段,不能升级为公司结论。 +4. 非阻断项:价格库存补强仍有币种/口径/直接数值缺口,正式使用前必须补证。 +5. 非阻断项:市场反向补漏因环境变量缺失处于 `HELD_BY_ENV`,不能作为市场显影完整性的证据。 + +审计结论: +需补充。当前文件状态下,新增 DRAFT 产物可作为后续证据卡补强和核心文档迭代的候选输入;但本次 MB-X 提交因设计/执行记录落地时间晚于提交时间,不能解除审核门。分析员需基于当前已落地版本重新提交复审,或补充能证明提交前已存在的独立证据。 + +是否阻断: +阻断本次提交通过;不阻断在 DRAFT 边界内继续补证和修正文档。 + +是否允许进入下一阶段: +不允许基于本次提交升级为正式输出或宣称审核通过。允许在 DRAFT 边界内继续进行关键事实人工复核、公司证据卡补强、外部价格库存补强和 market/darkline 反向补漏环境恢复。 + +建议动作: + +1. 分析员重新提交当前已落地版本,并在消息中列明设计条目、执行日志条目、证据文件的落地时间和路径。 +2. 后续每次提交前先完成 `案例分析设计.md`、`案例执行日志.md`、结果入口和证据清单回写,避免提交后补账。 +3. 恢复 `TIANXIA_MYSQL_PASSWORD` 后重新执行市场反向补漏扫描,并保持 `DRAFT_FOR_REVIEW` 直到人工复核完成。 + +## AUDIT-ANA-YS-FACT-COMPANY-SUPPLEMENT-RESUBMIT-001:BATCH-003 事实复核、公司证据卡、补数与市场补漏状态重提交复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-FACT-COMPANY-SUPPLEMENT-REVIEW-RESUBMIT-20260626 +关联消息:msg_20260626053015666_cb187a85 +消息创建时间:2026-06-26T05:30:15+08:00 +关联退回回复:msg_20260626052659860_27d2ad2f + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-FACT-COMPANY-SUPPLEMENT-RESUBMIT-001` +3. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +4. `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` +5. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` +6. `ana-data/cases/有色案例/supplement/market_manifestation_gap_status_20260626.csv` +7. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 设计重提交基线 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001` 记录时间 `2026-06-26 05:28:00`,文件当前 mtime `2026-06-26 05:29:02`,早于新消息创建时间 | +| 执行日志重提交基线 | PASS_WITH_NOTE | `RUN-ANA-YS-FACT-COMPANY-SUPPLEMENT-RESUBMIT-001` 记录时间 `2026-06-26 05:29:00`,早于新消息创建时间;当前文件 mtime 为 `2026-06-26 05:30:31`,晚于消息,原因是日志内追加了 MB-X 重提结果消息 ID,不影响证据文件本体,但后续应避免在提交后继续修改审核对象 | +| 关键事实复核表 | PASS | 文件 mtime `2026-06-26 05:13:26`,早于新消息;110 行,全部 `DRAFT_FOR_REVIEW` | +| 公司证据卡候选 | PASS | 文件 mtime `2026-06-26 05:15:47`,早于新消息;80 行,全部 `DRAFT_FOR_REVIEW` | +| 价格库存补强 | PASS | 文件 mtime `2026-06-26 05:18:02`,早于新消息;18 行,全部 `DRAFT_FOR_REVIEW` | +| 市场反向补漏状态 | PASS_WITH_LIMITS | 文件 mtime `2026-06-26 05:22:17`,早于新消息;状态为 `HELD_BY_ENV` / `DRAFT_FOR_REVIEW` | +| 结果入口 | PASS | 文件 mtime `2026-06-26 05:22:17`,早于新消息;状态为 `DRAFT_FOR_REVIEW` | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| DRAFT 边界 | PASS | 结果入口和四份摘要均保留 `DRAFT_FOR_REVIEW` 或 `HELD_BY_ENV` 边界 | +| 关键事实复核 | PASS_WITH_LIMITS | `TEXT_MATCH_CONTEXT_OK=110`,但仍需段落、表格定位和外部交叉验证 | +| 公司证据卡候选 | PASS_WITH_LIMITS | 80 条候选保留来源 doc/page/context;券商原文“推荐关注/相关标的”等表达未升级为分析员推荐 | +| 价格库存补强 | PASS_WITH_LIMITS | 已补 SMM 现货、SHFE inventory 补充口径、Trading Economics 锂交叉验证和 SMM 稀土入口;仍有币种、汇率、稀土直接数值缺口 | +| 市场反向补漏 | HELD | 因缺少 `TIANXIA_MYSQL_PASSWORD` 未执行正式 MySQL 扫描,不得宣称市场显影覆盖完整 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:执行日志当前 mtime 晚于消息创建时间,虽然内容为发送结果记录而非证据本体,但后续提交后不应再修改被审核对象;发送回执应单独进入后续记录或下一轮消息。 +2. 非阻断项:关键事实仍不能升级为正式证据,需要段落/表格定位和必要外部交叉验证。 +3. 非阻断项:公司证据卡仍缺业务占比、资源/产能、利润弹性、触发/失效条件、风险和公告/年报来源。 +4. 非阻断项:价格库存补强仍有币种、汇率、原始口径和稀土直接数值缺口。 +5. 非阻断项:市场反向补漏仍为 `HELD_BY_ENV`,不得写成已完成。 + +审计结论: +有条件通过。允许当前 DRAFT 产物作为后续证据卡补强和核心文档迭代输入;不允许升级为正式行业结论、正式公司结论或对外交付结论。 + +是否阻断: +不阻断 DRAFT 范围内继续推进;阻断正式结论输出和市场显影完整性声明。 + +是否允许进入下一阶段: +允许继续进行关键事实人工复核、公司证据卡补强、外部价格库存补强和 market/darkline 反向补漏环境恢复。任何正式输出、对外交付或完成状态回写前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 后续提交前冻结审核对象;提交后不要再追加修改同一审核对象,发送回执另起后续记录。 +2. 补齐关键事实段落/表格定位和外部交叉验证。 +3. 用公告、年报或公司来源补公司证据卡核心字段。 +4. 恢复 `TIANXIA_MYSQL_PASSWORD` 后重新执行市场反向补漏扫描并提交复审。 + +## AUDIT-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-001:公司来源卡 PASS-002 与关键事实证据卡 PASS-002 复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-REVIEW-20260626 +关联消息:msg_20260626054717735_b05daf29 +消息创建时间:2026-06-26T05:47:17+08:00 + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-SOURCE-002` +2. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-CARD-002` +3. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-COMPANY-SOURCE-002` +4. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-FACT-CARD-002` +5. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` +6. `ana-data/cases/有色案例/manifest/company_source_manifest_pass002.csv` +7. `ana-data/cases/有色案例/manifest/web_source_manifest_RUN-ANA-YS-COMPANY-SOURCE-002.csv` +8. `ana-data/cases/有色案例/supplement/company_source_archive_status_pass002.csv` +9. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +10. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_evidence_card_manifest_pass002.csv` +11. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 公司来源设计条目 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-SOURCE-002` 记录时间 `2026-06-26 05:36:00`,早于消息创建时间 | +| 关键事实证据卡设计条目 | FAIL | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-CARD-002` 记录时间 `2026-06-26 05:52:00`,晚于消息创建时间 | +| 公司来源执行日志 | PASS_WITH_NOTE | `RUN-ANA-YS-COMPANY-SOURCE-002` 记录时间 `2026-06-26 05:47:00`,与消息创建时间同分钟且早于 `05:47:17`;但边界较近,后续应避免分钟级临界提交 | +| 关键事实证据卡执行日志 | FAIL | `RUN-ANA-YS-FACT-CARD-002` 记录时间 `2026-06-26 05:54:00`,晚于消息创建时间 | +| 公司来源卡 | PASS | 10 行,全部 `DRAFT_FOR_REVIEW` | +| 公司来源 manifest | PASS | 10 行,全部 `DRAFT_FOR_REVIEW` | +| 网页归档尝试 manifest | PASS_WITH_LIMITS | 10 行,记录归档尝试;未形成成功快照 | +| 来源归档状态 | PASS_WITH_LIMITS | 10 行,全部 `SNAPSHOT_FAILED` / `DRAFT_FOR_REVIEW` | +| 关键事实证据卡 | PASS_WITH_LIMITS | 63 行,全部 `DRAFT_FOR_REVIEW`,但正式设计和执行记录时序不合格 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 公司来源卡边界 | PASS_WITH_LIMITS | 10 家核心公司来源入口已形成,但当前为 `SOURCE_URL_ONLY` 草稿,不能作为正式公司证据 | +| 来源归档 | HELD | `collect_web_sources.py` 对 10 个 URL 均因 `[WinError 10061]` 连接拒绝失败,未形成网页/PDF 快照 | +| 关键事实证据卡 | PASS_WITH_LIMITS | 63 条证据卡均保留数值/单位候选和下一步补证动作;正式升级前仍需段落/表格定位和外部交叉验证 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 阻断项:`FACT-CARD-002` 的正式设计条目和执行日志条目记录时间晚于 MB-X 审核请求创建时间,存在提交后补录或记录时序不一致风险。依据 `ana-doc/案例审核规范.md` 的审核前置核查要求,本次合并提交不能通过。 +2. 非阻断项:公司来源卡当前仅为 `SOURCE_URL_ONLY` 草稿入口,网页/PDF 快照归档失败;正式证据升级前必须重试归档或补本地公告/年报文件。 +3. 非阻断项:关键事实证据卡的数值/单位仍为候选,不等于正式指标。 +4. 非阻断项:关键事实证据卡正式升级前必须补段落/表格定位和外部交叉验证。 + +审计结论: +需补充。公司来源卡和关键事实证据卡的文件内容可作为 DRAFT 候选输入继续保留,但本次提交因 `FACT-CARD-002` 设计/执行记录晚于审核消息创建时间,不能解除审核门。 + +是否阻断: +阻断本次合并提交通过;不阻断在 DRAFT 边界内继续补证。 + +是否允许进入下一阶段: +不允许基于本次提交宣称 PASS-002 复审通过,也不允许升级为正式公司来源证据或正式指标证据。允许重新冻结当前已落地版本后再提交复审。 + +建议动作: + +1. 分析员不要倒填旧记录,应基于当前已落地版本重新提交复审,消息中列明设计条目、执行日志条目、证据文件和结果入口的当前落地时间。 +2. 重新提交前确认所有正式设计/执行记录的记录时间均早于新消息创建时间。 +3. 公司来源证据升级前重试网页/PDF 归档,或补交易所公告、年报、公司公告本地文件。 +4. 关键事实证据卡升级前补段落/表格定位和外部交叉验证。 + +## AUDIT-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-RESUBMIT-001:公司来源卡与关键事实证据卡 PASS-002 重提交复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-REVIEW-RESUBMIT-20260626 +关联消息:msg_20260626055407988_d3fdee94 +消息创建时间:2026-06-26T05:54:08+08:00 +关联退回回复:msg_20260626055006967_8bde1cd1 + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PASS002-RESUBMIT-001` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-RESUBMIT-001` +3. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` +4. `ana-data/cases/有色案例/manifest/company_source_manifest_pass002.csv` +5. `ana-data/cases/有色案例/supplement/company_source_archive_status_pass002.csv` +6. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +7. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_evidence_card_manifest_pass002.csv` +8. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 重提交设计基线 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PASS002-RESUBMIT-001` 记录时间 `2026-06-26 05:50:00`,文件 mtime `2026-06-26 05:51:16`,早于消息创建时间 | +| 重提交执行基线 | PASS | `RUN-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-RESUBMIT-001` 记录时间 `2026-06-26 05:51:00`,文件 mtime `2026-06-26 05:51:16`,早于消息创建时间 | +| 公司来源卡 | PASS | 文件 mtime `2026-06-26 05:40:21`,10 行,全部 `DRAFT_FOR_REVIEW` | +| 公司来源 manifest | PASS | 文件 mtime `2026-06-26 05:40:21`,10 行,全部 `DRAFT_FOR_REVIEW` | +| 来源归档状态 | PASS_WITH_LIMITS | 文件 mtime `2026-06-26 05:43:45`,10 行,全部 `SNAPSHOT_FAILED` / `DRAFT_FOR_REVIEW` | +| 关键事实证据卡 | PASS_WITH_LIMITS | 文件 mtime `2026-06-26 05:45:32`,63 行,全部 `DRAFT_FOR_REVIEW` | +| 结果入口 | PASS | 文件 mtime `2026-06-26 05:46:13`,状态为 `DRAFT_FOR_REVIEW` | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 前次时序缺陷 | PASS | 本次以当前已落地版本重新提交,重提交基线早于消息创建时间,前次 `FACT-CARD-002` 提交时序阻断已解除 | +| 公司来源卡 | PASS_WITH_LIMITS | 10 家公司已有官方/准官方 URL 入口和业务暴露草表;当前仍为 `SOURCE_URL_ONLY` 草稿入口 | +| 来源归档 | HELD | 10 个 URL 本地抓取均因 `[WinError 10061]` 连接拒绝失败,未形成网页/PDF 快照 | +| 关键事实证据卡 | PASS_WITH_LIMITS | 63 条证据卡均保留数值/单位候选和补证动作;53 条价格/市场数据,10 条供给/产能/产量数据 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:公司来源卡仍为 `SOURCE_URL_ONLY` 草稿入口,正式证据升级前必须重试网页/PDF 归档,或补本地公告、年报、交易所公告文件。 +2. 非阻断项:来源归档状态为 `SNAPSHOT_FAILED`,不能作为已归档来源证据使用。 +3. 非阻断项:关键事实证据卡的数值/单位仍为候选,不等于正式指标。 +4. 非阻断项:关键事实证据卡正式升级前必须补段落/表格定位和外部交叉验证。 + +审计结论: +有条件通过。允许公司来源卡 PASS-002 和关键事实证据卡 PASS-002 作为 DRAFT 补证输入继续使用;不允许升级为正式公司来源证据、正式指标证据、正式行业结论或对外交付结论。 + +是否阻断: +不阻断 DRAFT 范围内继续补证;阻断正式证据升级和正式结论输出。 + +是否允许进入下一阶段: +允许继续推进来源快照重试、公告/年报本地文件补齐、关键事实段落/表格定位和外部交叉验证。正式证据升级、核心文档正式版或对外交付前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 公司来源补强优先补可复核的本地公告、年报或交易所 PDF,并记录 hash、页码和表格定位。 +2. 对 63 条关键事实证据卡补段落/表格定位、外部交叉验证和指标口径。 +3. 后续提交前冻结正式审核对象,避免提交后再修改同一对象。 + +## AUDIT-ANA-YS-KEY-FACT-LOCATION-PASS003-001:关键事实段落/表格定位预复核 PASS-003 执行复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-KEY-FACT-LOCATION-PASS003-REVIEW-20260626 +关联消息:msg_20260626060156477_aa7a6f49 +消息创建时间:2026-06-26T06:01:56+08:00 +关联前序回复:msg_20260626055638383_df330697 + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-LOCATION-003` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-FACT-LOCATION-003` +3. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +4. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +5. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_location_precheck_manifest_pass003.csv` +6. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_location_precheck_pass003_summary.md` +7. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 设计条目 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-LOCATION-003` 记录时间 `2026-06-26 05:58:00`,文件 mtime `2026-06-26 05:59:01`,早于消息创建时间 | +| 执行日志条目 | PASS | `RUN-ANA-YS-FACT-LOCATION-003` 记录时间 `2026-06-26 05:59:00`,文件 mtime `2026-06-26 06:00:20`,早于消息创建时间 | +| 定位复核表 | PASS | 文件 mtime `2026-06-26 05:59:29`,63 行,全部 `DRAFT_FOR_REVIEW` | +| 定位 manifest | PASS | 文件 mtime `2026-06-26 05:59:29`,1 行,`DRAFT_FOR_REVIEW` | +| 摘要文件 | PASS | 文件 mtime `2026-06-26 05:59:29`,状态为 `DRAFT_FOR_REVIEW` | +| 结果入口 | PASS | 文件 mtime `2026-06-26 06:00:34`,状态为 `DRAFT_FOR_REVIEW`,早于消息创建时间 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 输入覆盖 | PASS | 输入关键事实证据卡 63 条,定位预复核表输出 63 条 | +| 定位状态 | PASS_WITH_LIMITS | `LOCATED_IN_CONVERTED_TEXT=63`,未定位 0 条;但只代表 converted text 层命中 | +| 匹配方法 | PASS_WITH_LIMITS | `EXACT_NORMALIZED_LINE=63`,可作为后续人工复核入口 | +| 候选类型 | PASS_WITH_LIMITS | `TABLE_CANDIDATE=55`,`PARAGRAPH_CANDIDATE=8`;表格候选不等于 PDF 原页表格已复核 | +| 证据边界 | PASS | 摘要和结果入口明确正式证据升级前仍需人工复核、PDF 原页表格定位和外部交叉验证 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:PASS-003 只完成 converted text 层页码、行号、上下文预定位,不能等同 PDF 原页或原表格定位通过。 +2. 非阻断项:55 条 `TABLE_CANDIDATE` 仍需人工核对 PDF 原页表格、表头、单位、口径和日期。 +3. 非阻断项:8 条 `PARAGRAPH_CANDIDATE` 仍需人工核对段落边界和上下文,不能直接升级为正式事实。 +4. 非阻断项:全部 63 条仍需外部交叉验证,数值/单位仍为候选。 + +审计结论: +有条件通过。允许 PASS-003 作为 `DRAFT_FOR_REVIEW` 范围内的关键事实定位补强输入继续使用;不允许据此升级为正式证据、正式指标、正式行业结论或对外交付结论。 + +是否阻断: +不阻断 DRAFT 范围内继续补证;阻断正式证据升级和正式结论输出。 + +是否允许进入下一阶段: +允许继续推进 PDF 原页表格定位、人工复核、外部交叉验证和关键事实证据卡迭代。正式证据升级、核心文档正式版或对外交付前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 对 55 条 `TABLE_CANDIDATE` 补 PDF 原页表格截图或表格结构定位,记录页码、表头、单位、日期和来源。 +2. 对 8 条 `PARAGRAPH_CANDIDATE` 补段落边界、上下文和是否可转为事实证据的人工判断。 +3. 对全部 63 条补外部交叉验证结果,并保留不能验证、口径冲突或需降级的记录。 + +## AUDIT-ANA-YS-PDF-TABLE-PASS004-001:关键事实 PDF 原页表格复核队列 PASS-004 执行复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-PDF-TABLE-PASS004-REVIEW-20260626 +关联消息:msg_20260626061050357_4a5a3342 +消息创建时间:2026-06-26T06:10:50+08:00 +关联前序回复:msg_20260626060446070_eea43cf8 + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PDF-TABLE-004` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-PDF-TABLE-004` +3. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +4. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_pdf_table_review_manifest_pass004.csv` +5. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_pdf_table_review_pass004_summary.md` +6. `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-PDF-TABLE-004/` +7. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 设计条目 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PDF-TABLE-004` 记录时间 `2026-06-26 06:06:00`,文件 mtime `2026-06-26 06:06:34`,早于消息创建时间 | +| 执行日志条目 | PASS | `RUN-ANA-YS-PDF-TABLE-004` 记录时间 `2026-06-26 06:07:00`,文件 mtime `2026-06-26 06:09:34`,早于消息创建时间 | +| PDF 表格复核队列 | PASS | 文件 mtime `2026-06-26 06:08:59`,55 行,全部 `HELD_BY_ENV` | +| manifest | PASS | 文件 mtime `2026-06-26 06:08:59`,1 行,`HELD_BY_ENV` | +| 摘要文件 | PASS | 文件 mtime `2026-06-26 06:08:59`,状态为 `HELD_BY_ENV` | +| 页图目录 | PASS_WITH_LIMITS | 目录已创建,但当前为空,符合“未导出 PDF 原页图片”的环境缺口状态 | +| 结果入口 | PASS | 文件 mtime `2026-06-26 06:09:51`,早于消息创建时间,明确 PASS-004 保持 `HELD_BY_ENV` | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 输入覆盖 | PASS | 55 条 `TABLE_CANDIDATE` 均进入 PDF 表格复核队列 | +| raw 存在性 | PASS | 55 条 raw 文件均存在 | +| PDF 文件头 | PASS_WITH_LIMITS | `pdf_header_ok=YES` 54 条,`NO` 1 条;非 PDF 头记录已标记 `HELD_BY_NOT_PDF_HEADER` | +| 页码状态 | PASS_WITH_LIMITS | `page_known=YES` 41 条,`NO` 14 条 | +| 队列状态 | PASS | 全部 55 条 `review_status=HELD_BY_ENV`,未误标为 DRAFT 通过或正式证据 | +| 渲染状态 | HELD | `HELD_BY_ENV_PDF_RENDERER_MISSING=41`,`HELD_BY_PAGE_UNKNOWN=13`,`HELD_BY_NOT_PDF_HEADER=1` | +| 证据边界 | PASS | 摘要和结果入口明确本轮不是 PDF 原页人工复核通过,不能升级为正式事实或正式指标 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:本轮未能导出 PDF 原页图片,41 条因缺少 PDF 解析/渲染依赖保持 `HELD_BY_ENV_PDF_RENDERER_MISSING`。 +2. 非阻断项:13 条页码未知,需回到 converted text、原文目录或人工页码定位后再进入 PDF 原页复核。 +3. 非阻断项:1 条 raw 文件头不是 `%PDF-`,需按 Office/ZIP 或源文件异常处理,不得伪装成 PDF。 +4. 非阻断项:55 条队列均未完成表头、单位、日期、来源和人工复核,不能升级为正式证据。 + +审计结论: +有条件通过。允许 PASS-004 作为 `HELD_BY_ENV` 状态的 PDF 原页表格复核队列和环境缺口记录保留并继续使用;不允许据此升级为正式证据、正式指标、正式行业结论或对外交付结论。 + +是否阻断: +不阻断环境恢复后的 DRAFT 范围补证;阻断正式证据升级和正式结论输出。 + +是否允许进入下一阶段: +允许恢复 PDF 解析/渲染依赖、补页码未知项、处理非 PDF 头异常,并重新生成页图或人工复核证据。正式证据升级、核心文档正式版或对外交付前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 在可联网或具备离线 wheel 的环境安装 PyMuPDF/fitz,或配置 `pdftoppm`、`mutool`、`gs`、`magick` 等可审计 PDF 渲染工具。 +2. 对 41 条已知页码的 PDF 候选先恢复页图导出,并补表头、单位、日期和来源截图。 +3. 对 13 条页码未知项补页码定位后再进入 PDF 原页队列。 +4. 对 1 条非 PDF 头文件走 Office/ZIP 转换或源文件异常流程。 + +## AUDIT-ANA-YS-CROSSCHECK-PASS006-001:关键事实外部交叉验证映射 PASS-006 执行复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-CROSSCHECK-PASS006-REVIEW-20260626 +关联消息:msg_20260626062400288_dd402271 +消息创建时间:2026-06-26T06:24:00+08:00 +关联前序回复:msg_20260626061350140_eb09e92a + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-CROSSCHECK-006` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-CROSSCHECK-006` +3. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +4. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_external_crosscheck_manifest_pass006.csv` +5. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_external_crosscheck_pass006_summary.md` +6. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 设计条目 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-CROSSCHECK-006` 记录时间 `2026-06-26 06:20:00`,文件 mtime `2026-06-26 06:20:34`,早于消息创建时间 | +| 执行日志条目 | PASS | `RUN-ANA-YS-CROSSCHECK-006` 记录时间 `2026-06-26 06:21:00`,文件 mtime `2026-06-26 06:22:47`,早于消息创建时间 | +| 交叉验证表 | PASS | 文件 mtime `2026-06-26 06:22:15`,63 行,全部 `DRAFT_FOR_REVIEW` | +| manifest | PASS | 文件 mtime `2026-06-26 06:22:15`,1 行,`DRAFT_FOR_REVIEW` | +| 摘要文件 | PASS | 文件 mtime `2026-06-26 06:22:15`,状态为 `DRAFT_FOR_REVIEW` | +| 结果入口 | PASS | 文件 mtime `2026-06-26 06:23:04`,状态为 `DRAFT_FOR_REVIEW`,早于消息创建时间 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 输入覆盖 | PASS | 输入关键事实证据卡 63 条,交叉验证映射输出 63 条 | +| 交叉验证状态 | PASS_WITH_LIMITS | `PRICE_INVENTORY_SOURCE_MATCHED=38`,`COMPANY_SOURCE_MATCHED=7`,`NEEDS_PRICE_INVENTORY_EXTERNAL_SOURCE=15`,`NEEDS_COMPANY_OFFICIAL_SOURCE=3` | +| 证据强度草判 | PASS_WITH_LIMITS | `MEDIUM_DRAFT=45`,`GAP_REVIEW=18`;均为草判,不等于正式证据等级 | +| 证据类型覆盖 | PASS | `PRICE_OR_MARKET_DATA=53`,`SUPPLY_CAPACITY_OR_OUTPUT=10` | +| PASS-004 遗留缺口 | PASS_WITH_LIMITS | PDF 页图缺口仍为 `HELD_BY_ENV`,本轮转为非 PDF 依赖的外部来源候选映射,未声称 PDF 复核完成 | +| 证据边界 | PASS | 摘要明确命中外部来源不等于数值、单位、口径已人工核实 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:45 条 `MEDIUM_DRAFT` 只是外部来源候选映射,正式证据升级前仍需复核来源日期、原文表格、单位、口径和数值一致性。 +2. 非阻断项:18 条 `GAP_REVIEW` 仍缺价格库存外部来源或公司官方来源,不能作为已交叉验证证据。 +3. 非阻断项:PASS-004 PDF 原页表格定位仍处于 `HELD_BY_ENV`,本轮不能替代 PDF 原页人工复核。 +4. 非阻断项:部分来源是 SMM/Trading Economics/公司入口级来源,正式使用前仍需确认具体数据日期、原文页或表格行。 + +审计结论: +有条件通过。允许 PASS-006 作为 `DRAFT_FOR_REVIEW` 范围内的关键事实外部交叉验证候选映射继续使用;不允许据此升级为正式证据、正式指标、正式行业结论或对外交付结论。 + +是否阻断: +不阻断 DRAFT 范围内继续补证;阻断正式证据升级和正式结论输出。 + +是否允许进入下一阶段: +允许继续推进 45 条 `MEDIUM_DRAFT` 的来源日期、单位、口径和数值一致性人工核实,并补齐 18 条 `GAP_REVIEW` 的外部来源。正式证据升级、核心文档正式版或对外交付前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 对 `PRICE_INVENTORY_SOURCE_MATCHED` 记录补来源日期、原始币种/单位、换算口径和原表格行。 +2. 对 `COMPANY_SOURCE_MATCHED` 记录补公司公告、年报或交易所文件中的页码、表格和字段。 +3. 对 18 条 `GAP_REVIEW` 建立补源清单,区分价格库存源缺口和公司官方源缺口。 +4. 保留 PASS-004 PDF 页图缺口,不得用 PASS-006 替代 PDF 原页复核结论。 + +## AUDIT-ANA-YS-GAP-PRIORITY-PASS007-001:关键事实外部来源缺口优先级 PASS-007 执行复审 + +审计时间:2026-06-26 +审计角色:case_analysis.reviewer +关联任务:TASK-ANA-YS-GAP-PRIORITY-PASS007-REVIEW-20260626 +关联消息:msg_20260626063058953_89b7eb6b +消息创建时间:2026-06-26T06:30:58+08:00 +关联前序回复:msg_20260626062635180_ce95b33a + +审核对象: + +1. `ana-doc/有色案例/案例分析设计.md`,条目 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-GAP-PRIORITY-007` +2. `ana-doc/有色案例/案例执行日志.md`,条目 `RUN-ANA-YS-GAP-PRIORITY-007` +3. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +4. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_gap_priority_manifest_pass007.csv` +5. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_gap_priority_pass007_summary.md` +6. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +前置核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 设计条目 | PASS | `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-GAP-PRIORITY-007` 记录时间 `2026-06-26 06:27:00`,文件 mtime `2026-06-26 06:27:40`,早于消息创建时间 | +| 执行日志条目 | PASS | `RUN-ANA-YS-GAP-PRIORITY-007` 记录时间 `2026-06-26 06:28:00`,文件 mtime `2026-06-26 06:29:46`,早于消息创建时间 | +| 缺口优先级队列 | PASS | 文件 mtime `2026-06-26 06:29:17`,18 行,全部 `DRAFT_FOR_REVIEW` | +| manifest | PASS | 文件 mtime `2026-06-26 06:29:17`,1 行,`DRAFT_FOR_REVIEW` | +| 摘要文件 | PASS | 文件 mtime `2026-06-26 06:29:17`,状态为 `DRAFT_FOR_REVIEW` | +| 结果入口 | PASS | 文件 mtime `2026-06-26 06:30:04`,状态为 `DRAFT_FOR_REVIEW`,早于消息创建时间 | +| 治理校验 | PASS | `python -m mbx.cli validate --project project-info --governance` 返回 OK,warnings=0 | + +内容核查: + +| 核查项 | 结果 | 说明 | +|---|---|---| +| 输入覆盖 | PASS | PASS-006 缺口输入 18 条,PASS-007 输出 18 条 | +| 优先级拆分 | PASS_WITH_LIMITS | `HIGH=10`,`MEDIUM=8`;仅表示补源优先级,不表示缺口已补齐 | +| 缺口类型 | PASS_WITH_LIMITS | `PRICE_INVENTORY_SOURCE_GAP=15`,`COMPANY_OFFICIAL_SOURCE_GAP=3` | +| 下一步动作 | PASS_WITH_LIMITS | `supplement_now=10`,`queue_for_next_pass=8` | +| 证据边界 | PASS | 摘要和结果入口明确本轮只是缺口优先级拆分,不作为正式证据或正式指标 | +| 结论边界 | PASS | 未发现正式行业结论、正式公司结论、交易指令或收益承诺输出 | + +发现问题: + +1. 非阻断项:PASS-007 只是对 18 条 `GAP_REVIEW` 做优先级拆分,缺口并未补齐。 +2. 非阻断项:10 条 `HIGH` 只代表应优先补源,不代表可以直接升级为证据。 +3. 非阻断项:15 条价格库存源缺口仍需补交易所、SMM、行业协会或等价可复核来源。 +4. 非阻断项:3 条公司官方源缺口仍需补公告、年报、交易所文件或公司 IR 来源。 + +审计结论: +有条件通过。允许 PASS-007 作为 `DRAFT_FOR_REVIEW` 范围内的关键事实外部来源缺口优先级队列继续使用;不允许据此升级为正式证据、正式指标、正式行业结论或对外交付结论。 + +是否阻断: +不阻断 DRAFT 范围内继续补源;阻断正式证据升级和正式结论输出。 + +是否允许进入下一阶段: +允许按 `supplement_now=10` 优先补高优先级来源,并保留 `queue_for_next_pass=8` 的后续队列。正式证据升级、核心文档正式版或对外交付前,必须重新提交执行审核或输出审核。 + +建议动作: + +1. 先处理 10 条 `HIGH`,补足来源日期、原文表格、单位、口径和数值一致性证据。 +2. 价格库存缺口优先补交易所、SMM、行业协会或可审计市场数据源。 +3. 公司官方源缺口优先补公告、年报、交易所文件或公司 IR 文件,并记录页码/表格位置。 +4. 对 8 条 `MEDIUM` 建立下一轮补源计划,避免遗失。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\200\273\347\272\262.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\200\273\347\272\262.md" deleted file mode 100644 index ca5c7b0..0000000 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\200\273\347\272\262.md" +++ /dev/null @@ -1,30 +0,0 @@ -# 有色案例总纲 - -创建人员:Codex -文件职责:记录有色行业研报案例事项的来源、目标、边界、状态、结果包入口和结论。 -管理规范/模板:案例分析规范.md;../案例分析规范.md。 -引用文件:案例分析设计.md;案例执行日志.md;案例审计报告.md;案例存储体系.md;有色研报解析方案.md。 -记录方式:有色行业案例总账;新增案例、状态变化、结论回写时追加或更新。 - -## 1. 当前总览 - -| 案例 ID | 名称 | 状态 | 入口 | -|---|---|---|---| -| `ANA-YS-TEMPLATE-001` | 有色行业研报案例目录模板初始化 | 模板已创建,待审核员复核 | `案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md` | - -正式有色研报研究启动时,应新增独立案例 ID,不得直接把模板初始化事项当作正式研报分析案例。 - -## 2. 案例事项:ANA-YS-TEMPLATE-001 - -- 案例 ID:`ANA-YS-TEMPLATE-001` -- 名称:有色行业研报案例目录模板初始化 -- 类型:目录模板 / 体系承接 -- 来源:人类要求在 `ana-doc/` 下创建有色行业研报案例模板。 -- 目标:建立有色行业研报案例目录,形成与父级 `ana-doc/` 对应的一套本地文档,并明确母版继承关系。 -- 边界:只创建模板和继承规则,不导入历史有色研报结论,不执行正式研报分析。 -- 当前状态:模板已创建,待审核员复核。 -- 设计入口:`案例分析设计.md#案例设计ana-ys-template-001` -- 执行入口:`案例执行日志.md#2026-06-25-run-ana-ys-template-001` -- 审计入口:`案例审计报告.md#2026-06-25-audit-ana-ys-template-001` -- 结果包入口:暂无正式结果包。 -- 当前结论:本事项仅证明目录和文档模板已落地,不代表有色研报体系已完成迁移。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" index c2d5c30..69ade3f 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" @@ -1,40 +1,1577 @@ -# 有色案例执行日志 +# 有色案例执行日志 创建人员:Codex -文件职责:记录有色行业研报案例执行过程、关键节点、数据和证据路径。 -管理规范/模板:案例分析规范.md;../案例分析规范.md。 -引用文件:案例总纲.md;案例分析设计.md;案例审计报告.md;案例存储体系.md;有色研报解析方案.md。 -记录方式:append-only 执行日志;每次案例执行、重跑或修复追加记录。 +文件职责:作为有色行业容器的执行账本,记录有色研报案例实际执行过程、关键节点、数据路径、结果包、偏离设计和自检结论。 +管理规范/模板:../案例分析规范.md;../案例存储体系.md;../../common/ana-doc/案例执行日志模版.md;案例分析规范.md。 +引用文件:../案例总纲.md;案例分析设计.md;案例审计报告.md;案例问题记录.md;案例存储体系.md;有色研报解析方案.md。 +记录方式:append-only 有色案例执行日志;每次执行、重跑、修复和结果包生成追加到文件末尾。 -## 2026-06-25 RUN-ANA-YS-TEMPLATE-001 +## 1. 当前执行总览 -- 事项:`ANA-YS-TEMPLATE-001` -- 执行人:Codex -- 执行类型:目录模板初始化 -- 状态:已完成模板创建,待审核员复核 +| 日志 ID | 所属设计 | 案例范围 | 状态 | 结果包 | 审计 | +|---|---|---|---|---|---| +| `RUN-ANA-YS-TEMPLATE-001` | `DESIGN-ANA-YS-TEMPLATE-001` | 有色行业容器初始化 | 已完成,待审核员复核 | 无正式结果包 | `AUDIT-ANA-YS-TEMPLATE-001` | +| `RUN-ANA-YS-INDUSTRY-001-BATCH-001` | `DESIGN-ANA-YS-INDUSTRY-001` | `ANA-YS-INDUSTRY-001` / `BATCH-001` / 30 份 PDF | 已完成试运行,待正式审核员复核 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/summary.md` | `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` | +| `RUN-ANA-YS-CONTAINER-STRUCTURE-001` | `DESIGN-ANA-YS-TEMPLATE-001` | 有色行业容器结构调整和 raw 池迁移 | 已完成,待审核员复核 | 无正式结果包 | `AUDIT-ANA-YS-CONTAINER-STRUCTURE-001` | -### 执行步骤 +## 2. 执行记录模板 -1. 读取父级 `ana-doc/` 文档结构。 -2. 按行业案例文件夹机制创建 `ana-doc/有色案例/`。 -3. 创建与父级 `ana-doc/` 对应的 9 个基础案例文档。 -4. 增加 `有色研报解析方案.md` 作为有色行业研报方案入口。 -5. 在规范类和存储类文档中写明父级母版继承关系。 -6. 在总纲、设计、执行日志、审计报告和问题记录中初始化本目录账本。 +### <YYYY-MM-DD HH:mm:ss> <LOG-ID>:<执行标题> -### 产物 +所属案例事项: +<ANA-ID> -- `ana-doc/有色案例/目录导读.md` -- `ana-doc/有色案例/案例分析规范.md` -- `ana-doc/有色案例/案例审核规范.md` -- `ana-doc/有色案例/案例存储体系.md` -- `ana-doc/有色案例/案例总纲.md` -- `ana-doc/有色案例/案例分析设计.md` -- `ana-doc/有色案例/案例执行日志.md` -- `ana-doc/有色案例/案例审计报告.md` -- `ana-doc/有色案例/案例问题记录.md` -- `ana-doc/有色案例/有色研报解析方案.md` +关联设计: +<DESIGN-ID> -### 结论边界 +执行人员: +<执行人员> -本次只完成有色行业案例模板创建,不代表历史有色研报资料已迁入,也不代表有色行业研报分析已完成。 +执行目标: +<本次执行要完成什么> + +输入: +<父级总纲、设计、行业方案、资料源、上游结果> + +执行过程: + +1. <关键步骤 1> +2. <关键步骤 2> + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 父级登记 | <父级总纲登记情况> | <path> | 不适用 | <结论> | +| 设计执行 | <是否按设计执行> | <path> | 不适用 | <结论> | +| raw 归档 | <行业统一 raw 池> | <path> | 不适用 | <结论> | +| 证据链 | <manifest/evidence> | <path> | <path> | <结论> | +| 结果复盘 | <最终结果> | <path> | <path> | <结论> | + +逐案例证据链记录: + +| 案例 ID | batch_id | run_id | 输入范围 | 数据路径 | 图片路径 | 结果 | 是否符合设计 | +|---|---|---|---|---|---|---|---| +| <CASE-ID> | <BATCH-ID> | <RUN-ID> | <输入范围> | <path> | <path> | <结果> | 是 / 否;如否说明偏离 | + +输出: +<结果包、表、readout、summary、validation_report> + +偏离设计: +<如无写“无”;如有,说明原因和影响> + +自检结果: +<文件是否存在、行数是否合理、关键证据是否齐全> + +执行结果 / 结论回写: +<本次执行最终结果;如影响父级总纲或行业方案,写明已回写位置或待回写原因> + +当前状态: +完成 / 部分完成 / 失败 / 暂缓 + +审计入口: +<案例审计报告.md 中 AUDIT-ID> + +## 2026-06-25 22:20:00 RUN-ANA-YS-TEMPLATE-001:有色行业容器初始化执行 + +所属案例事项: +`ANA-YS-TEMPLATE-001` + +关联设计: +`DESIGN-ANA-YS-TEMPLATE-001` + +执行人员: +Codex + +执行目标: +创建有色行业容器目录,落地有色子规范、设计账本、执行日志、审计报告、问题记录、存储补充和有色研报解析方案入口。 + +输入: +父级 `../案例分析规范.md`、`../案例审核规范.md`、`../案例存储体系.md`、`../研报体系/研报解析架构.md`、`../研报体系/研报分析架构.md`。 + +执行过程: + +1. 读取父级 `ana-doc/` 文档结构和行业容器创建口径。 +2. 创建 `ana-doc/有色案例/`。 +3. 创建 8 个行业容器基础文档和 `有色研报解析方案.md`。 +4. 在子规范和存储补充中声明继承父级同名文档。 +5. 初始化本目录设计、执行、审计和问题账本。 +6. 确认本目录不维护独立 `案例总纲.md`,真实案例登记父级 `../案例总纲.md`。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 父级登记 | `ANA-YS-TEMPLATE-001` 已登记父级总纲 | `../案例总纲.md` | 不适用 | PASS | +| 行业容器 | 有色行业目录和基础文档已创建 | `./` | 不适用 | PASS | +| 继承关系 | 子规范声明继承父级同名文档 | `案例分析规范.md`;`案例审核规范.md`;`案例存储体系.md` | 不适用 | PASS | +| 平行总纲 | 本目录不维护独立 `案例总纲.md` | `./` | 不适用 | PASS | + +逐案例证据链记录: + +| 案例 ID | batch_id | run_id | 输入范围 | 数据路径 | 图片路径 | 结果 | 是否符合设计 | +|---|---|---|---|---|---|---|---| +| `ANA-YS-TEMPLATE-001` | 不适用 | `RUN-ANA-YS-TEMPLATE-001` | 行业容器文档初始化 | `ana-doc/有色案例/` | 不适用 | 容器已创建 | 是 | + +输出: +无正式结果包;产物为本目录行业容器文档。 + +偏离设计: +无。 + +自检结果: +基础文档齐全;没有独立 `案例总纲.md`;未导入历史有色结论。 + +执行结果 / 结论回写: +父级 `../案例总纲.md` 保留 `ANA-YS-TEMPLATE-001`;本目录审计入口为 `AUDIT-ANA-YS-TEMPLATE-001`。 + +当前状态: +完成,待审核员复核。 + +审计入口: +`AUDIT-ANA-YS-TEMPLATE-001` + +## 2026-06-25 22:50:00 RUN-ANA-YS-INDUSTRY-001-BATCH-001:有色行业整体案例 BATCH-001 存储与转换试运行 + +所属案例事项: +`ANA-YS-INDUSTRY-001` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001` + +执行人员: +Codex + +执行目标: +用 30 份本地有色 PDF 样本验证行业 raw 池、行业级通用产物目录、案例级结果目录、manifest、文本转换、样本元数据、证据索引、结果包和审计入口能否闭环。 + +输入: +`案例分析设计.md`、`案例存储体系.md`、`有色研报解析方案.md`;本地小金属、钨钼锑、锗镓 PDF 来源目录。 + +执行过程: + +1. 读取父级 `案例分析规范.md`、`案例存储体系.md`、`案例审核规范.md` 和本目录 `有色研报解析方案.md`。 +2. 盘点本地有色资料,确认真实 PDF 主要在旧 `mirror/行业分析资料库` 和 `mirror/ys_work` 下。 +3. 选择 30 份 PDF 样本:小金属 10 份、钨钼锑 10 份、锗镓 10 份。 +4. 创建或复用行业级 `../../ana-data/cases/有色案例/converted|extracted|supplement|evidence|manifest/`。 +5. 创建案例级 `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs|manifest|evidence/`。 +6. 创建父体系兼容目录 `../../ana-data/tmp/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-INDUSTRY-001-BATCH-001/`、`../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/` 和 `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/`。 +7. 复制 30 份 PDF 到有色行业统一 raw 池 `../../ana-data/cases/有色案例/raw/`。 +8. 计算文件大小、sha256 和文件头类型。 +9. 生成行业级 `manifest/artifact_manifest.csv`、`manifest/migration_manifest.csv`、`manifest/source_document.csv`、`manifest/conversion_status.csv`。 +10. 检查 PDF 转换工具:PyMuPDF/fitz 不存在,按回退规则使用 `pypdf`。 +11. 使用 `pypdf` 将 30 份 PDF 转换为行业级 `converted/*.txt`。 +12. 生成行业级 `extracted/sample_metadata.csv`、`extracted/unresolved_data_gap.csv` 和 `evidence/evidence_index.csv`。 +13. 生成案例级 `outputs/summary.md`、`outputs/readout.md`、`outputs/validation_report.md`、`manifest/case_input_manifest.csv` 和父体系 `result_index.md`。 +14. 执行机器验证,检查目录、CSV 行数、转换状态、manifest 路径、sha256 和 source/evidence doc_id 链路。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 父级登记 | `ANA-YS-INDUSTRY-001` 已登记父级总纲 | `../案例总纲.md` | 不适用 | PASS | +| 设计执行 | 使用 `DESIGN-ANA-YS-INDUSTRY-001` 的 batch/run 口径 | `案例分析设计.md` | 不适用 | PASS | +| raw 归档 | 30 份 PDF 进入行业统一 raw 池 | `../../ana-data/cases/有色案例/raw/` | 不适用 | PASS | +| 转换 | 30 份 PDF 使用 `pypdf` 转文本 | `../../ana-data/cases/有色案例/converted/` | 不适用 | PASS | +| manifest | 行业级 manifest/source/conversion/migration 齐全 | `../../ana-data/cases/有色案例/manifest/` | 不适用 | PASS | +| 证据链 | 30 条 raw-to-converted trace | `../../ana-data/cases/有色案例/evidence/evidence_index.csv` | 不适用 | PASS | +| 结果复盘 | summary/readout/validation_report 已生成 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/` | 不适用 | PASS | +| 父体系兼容 | tmp/result/img 入口已按父体系分流 | `../../ana-data/tmp|result|img/有色案例/ANA-YS-INDUSTRY-001/` | `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/` | PASS | + +逐案例证据链记录: + +| 案例 ID | batch_id | run_id | 输入范围 | 数据路径 | 图片路径 | 结果 | 是否符合设计 | +|---|---|---|---|---|---|---|---| +| `ANA-YS-INDUSTRY-001` | `BATCH-001` | `RUN-ANA-YS-INDUSTRY-001-BATCH-001` | 小金属 10 份、钨钼锑 10 份、锗镓 10 份 PDF | 行业级 `../../ana-data/cases/有色案例/`;案例级 `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/` | 不适用 | 30 份完成归档、转换和证据链登记 | 是 | + +输出: +案例级 `summary.md`、`readout.md`、`validation_report.md`、`case_input_manifest.csv`;父体系 `result_index.md`;行业级 manifest CSV、sample_metadata、unresolved_data_gap、evidence_index。 + +偏离设计: +存在工具回退:PyMuPDF/fitz 不可用,已记录并使用 `pypdf` 完成转换。该偏离不影响本轮流程验证,但正式批量转换前执行 AI 需要明确标准工具链或回退规则。 + +自检结果: +raw 归档 30 / 30;pypdf 文本转换 30 / 30;转换文本字符数合计 651986;source_document 30 条;evidence_index 30 条;unresolved_data_gap 1 条;机器验证 21 项检查全部 PASS。 + +执行自检发现与处理: + +1. 当前环境没有 PyMuPDF/fitz。本轮已按回退规则使用 `pypdf` 完成转换;该事项属于执行自检发现且已有处理,不进入 `案例问题记录.md`。 +2. 旧铜铝目录存在 58 个无扩展名文件。本轮已记录到行业级 `extracted/unresolved_data_gap.csv`,后续历史迁移由执行 AI 按文件头识别处理;该事项不进入 `案例问题记录.md`,除非后续确认超出权限或需要跨角色闭环。 + +执行结果 / 结论回写: +父级 `../案例总纲.md` 已记录 `ANA-YS-INDUSTRY-001` 当前结论;本目录审计入口为 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001`。本轮只验证存储、转换、manifest 和证据链最小闭环,不输出有色行业结论,不写 MySQL,不触发 darkline。 + +当前状态: +完成,待正式审核员复核。 + +审计入口: +`AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` + +## 2026-06-25 23:35:00 RUN-ANA-YS-CONTAINER-STRUCTURE-001:有色行业容器结构调整和 raw 池迁移 + +所属案例事项: +`ANA-REPORT-SYSTEM-20260625-001` / `ANA-YS-TEMPLATE-001` + +关联设计: +`DESIGN-ANA-YS-TEMPLATE-001` + +执行人员: +Codex + +执行目标: +按人类确认口径,将有色目录从“独立案例目录”调整为“行业容器”,把有色行业整体研报分析确认为一个长期案例,并把有色 30 PDF 的通用资料产物迁入行业级资料库。 + +输入: +父级 `案例分析规范.md`、`案例存储体系.md`、本目录有色账本文档、已生成的 `ANA-YS-INDUSTRY-001` 数据目录。 + +执行过程: + +1. 将 `ana-doc/有色案例/` 定义为行业容器,不再作为独立案例。 +2. 将 `ANA-YS-TEMPLATE-001` 和 `ANA-YS-INDUSTRY-001` 的案例总账入口迁入父级 `../案例总纲.md`。 +3. 删除本目录平行 `案例总纲.md`。 +4. 更新父级和有色本地规范,要求所有有色真实案例先登记父级总纲,再在本目录拆解事项、batch 和 run。 +5. 将有色 raw 口径调整为行业统一 raw 池 `../../ana-data/cases/有色案例/raw/`。 +6. 将通用 converted、extracted、evidence 和行业级 manifest 调整到 `../../ana-data/cases/有色案例/` 根目录。 +7. 更新 manifest、source_document、conversion_status、evidence_index 和校验清单中的路径。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 父级总纲 | 有色两项真实案例已迁入父级总纲 | `../案例总纲.md` | 不适用 | PASS | +| 行业容器 | 本目录不再维护独立 `案例总纲.md` | `./` | 不适用 | PASS | +| raw 池 | 30 份 raw PDF 统一在行业 raw 池 | `../../ana-data/cases/有色案例/raw/` | 不适用 | PASS | +| 逐案例目录 | 逐案例目录只保留案例级输出、引用清单和案例证据映射 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/` | 不适用 | PASS | + +逐案例证据链记录: + +| 案例 ID | batch_id | run_id | 输入范围 | 数据路径 | 图片路径 | 结果 | 是否符合设计 | +|---|---|---|---|---|---|---|---| +| `ANA-YS-INDUSTRY-001` | `BATCH-001` | `RUN-ANA-YS-INDUSTRY-001-BATCH-001` | 30 份 PDF 通用产物路径迁移 | `../../ana-data/cases/有色案例/raw|converted|extracted|evidence|manifest/`;`../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/` | 不适用 | 通用产物统一入行业级资料库,案例目录只保留自定义产物 | 是 | + +输出: +无新增正式结果包;更新父级总纲、父级规范、本目录账本和 pilot manifest 路径。 + +偏离设计: +无。 + +自检结果: +行业容器目录不再维护 `案例总纲.md`;父级总纲承接有色行业整体研报分析案例;有色 raw、converted、extracted、evidence、manifest 等通用产物统一在 `ana-data/cases/有色案例/`;逐案例目录保留 outputs、案例引用 manifest 和案例证据映射;临时、结果入口和图片分别由父体系 `tmp/result/img` 承接。 + +执行结果 / 结论回写: +本次只调整有色行业容器和存储组织口径,不新增研报分析结论。 + +当前状态: +完成,待审核员复核。 + +审计入口: +`AUDIT-ANA-YS-CONTAINER-STRUCTURE-001` + +## 2026-06-26 00:35:00 RUN-ANA-YS-STORAGE-COMPAT-001:父体系 tmp/result/img 兼容修正 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001` + +执行人员: +Codex + +执行目标: +按人类确认口径,让有色研报样例兼容父体系默认 `ana-data/tmp/`、`ana-data/result/`、`ana-data/img/`,避免研报体系形成平行存储体系。 + +输入: +父级 `案例存储体系.md`、`目录导读.md`、`案例审核规范.md`,本目录 `案例存储体系.md`、`案例分析设计.md` 和已生成的 `BATCH-001` 结果包。 + +执行过程: + +1. 将父级存储规范改为:研报资料库和案例输出归 `cases/`,临时文件归 `tmp/`,结果入口归 `result/`,图片归 `img/`。 +2. 将有色子存储规范同步为同一规则。 +3. 删除空的旧案例级 `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/tmp/`。 +4. 创建 `../../ana-data/tmp/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-INDUSTRY-001-BATCH-001/`。 +5. 创建 `../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/` 并补结果入口。 +6. 创建 `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/`;本轮未产生图片,仅保留入口。 +7. 更新当前样例的设计、执行日志、验证报告和校验清单。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| tmp 分流 | 临时目录进入父体系 tmp | `../../ana-data/tmp/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-INDUSTRY-001-BATCH-001/` | 不适用 | PASS | +| result 入口 | 结果入口进入父体系 result | `../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | 不适用 | PASS | +| img 入口 | 图片目录进入父体系 img | `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/` | `../../ana-data/img/有色案例/ANA-YS-INDUSTRY-001/` | PASS | +| 旧 tmp 清理 | 案例级空 tmp 目录已删除 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/` | 不适用 | PASS | + +输出: +父级规范、有色子规范、当前有色设计和执行日志已同步;新增父体系 `result_index.md`。 + +自检结果: +`cases/有色案例/ANA-YS-INDUSTRY-001/` 下不再存在 `tmp/`;父体系 `tmp/result/img` 入口存在;30 份 raw、30 份 converted、行业级 manifest 和 evidence 路径仍可复核。 + +## 2026-06-26 02:54:25 RUN-ANA-YS-INDUSTRY-001-BATCH-002:有色金属板块核心阅读包草稿输出 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-002` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-002` + +执行人员: +Codex + +执行目标: +按用户要求读取 `ana-doc/研报体系导读.md`,对有色金属板块形成核心阅读草稿,输出给用户查看的核心文件入口,并保留来源、证据映射和数据缺口。 + +输入: +`ana-doc/研报体系导读.md`、`ana-doc/案例分析规范.md`、`ana-doc/案例存储体系.md`、`ana-doc/有色案例/有色研报解析方案.md`、`ana-doc/有色案例/案例分析设计.md`、`ana-data/cases/有色案例/extracted/sample_metadata.csv`、外部公开来源初筛。 + +执行过程: + +1. 读取研报体系导读,确认案例分析员最小阅读顺序、行业容器规则和核心输出要求。 +2. 确认 `ANA-YS-INDUSTRY-001` 已登记父级总纲,`BATCH-001` 只是试运行,尚未形成正式有色行业结论。 +3. 建立 `BATCH-002` 核心阅读包目录。 +4. 按有色方案拆分行业视图、市场视图、公司视图和结论行动清单。 +5. 建立外部来源索引、结论证据映射和数据缺口清单。 +6. 在父体系 `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/` 创建 BATCH-002 入口。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 核心阅读包 | 输出 4 个用户可读核心文件和行动清单 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch-002-core/` | 不适用 | PASS | +| 来源索引 | 记录项目文档、本地样本和外部来源 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/batch-002_source_index.csv` | 不适用 | PASS | +| 证据映射 | 记录阶段判断到来源的映射 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/batch-002_conclusion_evidence_map.csv` | 不适用 | PASS | +| 缺口清单 | 记录价格库存、公司暴露、逐篇定位等缺口 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/batch-002_unresolved_data_gap.csv` | 不适用 | PASS | +| result 入口 | 父体系结果入口已创建 | `../../ana-data/result/有色案例/ANA-YS-INDUSTRY-001/batch-002_core_readout_index.md` | 不适用 | PASS | + +输出: +核心阅读入口、行业视图、市场视图、公司视图、结论与行动清单、来源索引、结论证据映射、数据缺口清单和 result 入口。 + +偏离设计: +本轮没有下载外部原始报告到 raw 池,也没有建立正式价格库存快照;原因是用户当前要求先输出核心文件给查看。本轮已将相关事项登记为数据缺口,正式审核版需要补齐。 + +自检结果: +所有输出文件均标记 `DRAFT_FOR_REVIEW`;未输出交易建议;未把 BATCH-001 样本压缩为正式行业结论;对铜铝、贵金属、能源金属、公司证据卡等缺口均已登记。 + +执行结果 / 结论回写: +本轮形成有色金属板块研究核心阅读草稿,可给用户查看研究框架和下一步补证方向。正式行业结论仍需补证和审核。 + +当前状态: +已输出核心草稿,待正式审核员复核。 + +审计入口: +待审核员建立或复用 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-002`。 + +## 2026-06-26 03:15:00 RUN-ANA-YS-INDUSTRY-001-BATCH-001-EXTRACT-001:BATCH-001 转换文本第一轮结构化抽取 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001` + +执行人员: +Codex + +执行目标: +按 `有色研报解析方案.md`,从已完成转换的 30 份有色研报文本中抽取事实句、指标句、风险句、金属主题标签和公司映射草表,为后续行业视图、市场视图和公司视图提供结构化底稿。 + +输入: +行业级 `source_document.csv`、`conversion_status.csv` 和 `ana-data/cases/有色案例/converted/` 下 30 份转换文本。 + +执行过程: + +1. 读取 `source_document.csv` 中 `BATCH-001` 且 `TEXT_CONVERTED` 的 30 份文档。 +2. 对转换文本按金属关键词和主题关键词进行句级扫描。 +3. 生成事实/指标/风险句草表。 +4. 生成每篇文档的金属和主题分类汇总。 +5. 抽取公司名称、证券代码和上下文片段,生成公司映射草表。 +6. 生成本轮抽取产物 manifest 和批次摘要。 + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 事实句抽取 | 生成 240 条事实/指标/风险句草表 | `../../ana-data/cases/有色案例/extracted/evidence_fact_table_batch001_extract001.csv` | 不适用 | PASS | +| 分类汇总 | 生成 30 条文档分类汇总 | `../../ana-data/cases/有色案例/extracted/classification_summary_batch001_extract001.csv` | 不适用 | PASS | +| 公司映射 | 生成 382 条公司线索草表 | `../../ana-data/cases/有色案例/extracted/company_exposure_batch001_extract001.csv` | 不适用 | PASS | +| manifest | 记录 3 个抽取产物的行数和 hash | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/batch001_extract001_manifest.csv` | 不适用 | PASS | +| 摘要 | 生成本轮抽取摘要 | `../../ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch001_extract001_summary.md` | 不适用 | PASS | + +输出: +`evidence_fact_table_batch001_extract001.csv`、`classification_summary_batch001_extract001.csv`、`company_exposure_batch001_extract001.csv`、`batch001_extract001_manifest.csv` 和 `batch001_extract001_summary.md`。 + +偏离设计: +本轮是规则扫描,尚未补页码、段落、表格定位,也未做人工复核;因此所有输出均标记 `DRAFT_FOR_REVIEW`。 + +自检结果: +输入 30 份转换文本均进入分类汇总;事实句和公司映射已形成结构化草表;未输出正式行业结论或交易建议。 + +执行结果 / 结论回写: +本轮把 `BATCH-001` 从“存储与转换试运行”推进到“结构化抽取草表”阶段。正式行业/市场/公司视图仍需基于该草表复核、补证和审核。 + +当前状态: +已完成,待正式审核员复核。 + +审计入口: +待审核员建立或复用 `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001-EXTRACT-001`。 + +## 2026-06-26 03:35:00 RUN-ANA-YS-SCHEME-REVIEW-FIX-001:方案审核回复处理与文档可读性复核 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 方案复审准备 + +关联消息: +`msg_20260626032844484_f8f28648` + +执行人员: +Codex + +执行目标: +处理案例审核员对 `TASK-ANA-YS-SCHEME-REVIEW-20260626` 的“需补充”反馈,复核被指出中文乱码的三份文档,并准备重新提交方案/设计/存储体系复审。 + +输入: +审核员消息 `msg_20260626032844484_f8f28648`,`ana-doc/研报体系导读.md`,`ana-doc/有色案例/案例分析设计.md`,`ana-doc/有色案例/案例存储体系.md`。 + +执行过程: + +1. 读取审核员反馈,确认阻断项为三份文档中文正文可读性问题。 +2. 以 UTF-8 读取三份被点名文档,抽查文件开头和尾部内容。 +3. 对三份文档执行常见乱码标记检查。 +4. 运行项目治理校验。 +5. 准备通过 MB-X 消息链向审核员反馈当前版本可读性复核结果,并请求按当前版本复审。 + +检查结果: + +| 文件 | 行数 | 乱码标记计数 | 当前状态 | +|---|---:|---:|---| +| `ana-doc/研报体系导读.md` | 286 | 0 | UTF-8 可读 | +| `ana-doc/有色案例/案例分析设计.md` | 370 | 0 | UTF-8 可读 | +| `ana-doc/有色案例/案例存储体系.md` | 169 | 0 | UTF-8 可读 | + +治理校验: +`python -m mbx.cli validate --project project-info --governance` 返回 `OK validate`,warnings=0。 + +偏离设计: +未改写三份文档正文;当前工作区版本已经可读,未发现需要重建正文的残留乱码。 + +自检结果: +可读性阻断项在当前工作区版本中未复现。BATCH-001 第一轮抽取仍保持 `DRAFT_FOR_REVIEW`,尚未补页码、段落、表格定位和人工复核;铜铝、贵金属、能源金属、稀土价格库存和外部证据仍为下一轮补强项。 + +当前状态: +已准备复审回复,等待审核员按当前版本复核。 + +## 2026-06-26 03:38:00 RUN-ANA-YS-SCHEME-REVIEW-PASS-001:方案复审通过接收记录 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 方案复审 + +关联消息: +`msg_20260626033403477_0c8bb319` + +执行人员: +Codex + +执行目标: +记录案例审核员对 `TASK-ANA-YS-SCHEME-REVIEW-20260626` 的复审结论,并明确后续允许推进范围和限制条件。 + +输入: +审核员消息 `msg_20260626033403477_0c8bb319`。 + +复审结论: +通过。`文档中文乱码` 阻断项已解除,允许按 `有色研报解析方案.md` 作为 v0.1 正式基础方案继续推进。 + +允许继续推进的范围: + +1. 事实表复核。 +2. 公司证据卡草拟。 +3. 价格库存快照准备。 +4. 外部证据补强。 +5. 行业视图、市场视图、公司视图草稿。 + +限制条件: + +1. BATCH-001 第一轮抽取仍是规则扫描,尚未补页码、段落、表格定位和人工复核。 +2. 铜铝、贵金属、能源金属、稀土仍需价格库存快照、外部证据和市场反向补漏。 +3. 涉及新闻、市场表现或外部信息时仍需按 darkline 分流。 +4. 在 BATCH-001 关键事实补齐定位并完成人工复核前,所有抽取产物和三类视图草稿继续保持 `DRAFT_FOR_REVIEW`。 +5. 不得输出正式行业结论或交易建议。 + +证据入口: +`ana-doc/有色案例/案例审计报告.md` / `AUDIT-ANA-YS-SCHEME-REVIEW-FOLLOWUP-001` + +当前状态: +复审通过;进入 DRAFT_FOR_REVIEW 范围内的事实复核和证据补强阶段。 + +## 2026-06-26 03:45:00 RUN-ANA-YS-SCHEME-ARCH-ALIGN-001:有色方案对齐研报解析架构补充 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色方案维护 + +执行人员: +Codex + +执行目标: +根据用户反馈,补充 `有色研报解析方案.md` 对 `../研报体系/研报解析架构.md` 的细化承接,避免方案只停留在“可执行基础方案”,但缺少三类核心文档和字段级输出要求。 + +输入: +`ana-doc/研报体系/研报解析架构.md`,`ana-doc/有色案例/有色研报解析方案.md`。 + +执行过程: + +1. 对照 `研报解析架构.md` 的行业方案继承机制、三类核心文档、核心文档输出参考流程和写作底线。 +2. 在有色方案中补充“当前不覆写母版流程,只做有色行业细化”的明确声明。 +3. 新增母版对齐表,说明行业边界、子行业分层、专属表、人读输出、缺口和证据链的有色落点。 +4. 新增行业视图、市场视图、公司视图细化要求。 +5. 新增支撑材料和三类核心文档关系说明。 +6. 新增场景假设影响映射字段。 +7. 扩展文件型清单最低字段,包括基础事实卡、主导变量数据卡、价格库存快照、供需平衡表、公司暴露表、项目资产表和市场反向补漏审计表。 +8. 更新当前缺口和方案维护记录。 + +输出: +`ana-doc/有色案例/有色研报解析方案.md` + +偏离设计: +无。该修改属于方案细化,不改变已审核通过的存储底线、batch/run 规则和 DRAFT_FOR_REVIEW 限制条件。 + +自检结果: +方案已补充字段级输出要求;后续执行必须按新增字段补基础事实、主导变量、公司证据和场景映射。由于方案内容发生实质细化,后续正式采用前应提交审核员复审。 + +当前状态: +方案已补充,待复审。 + +## 2026-06-26 03:55:00 RUN-ANA-YS-SCHEME-ARCH-ALIGN-PASS-001:母版对齐补充复审通过接收记录 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / 有色方案维护复审 + +关联消息: +`msg_20260626035359920_6f84dd28` + +执行人员: +Codex + +执行目标: +记录案例审核员对 `TASK-ANA-YS-SCHEME-ARCH-ALIGN-REVIEW-20260626` 的复审结论,并明确后续允许推进范围和限制条件。 + +输入: +审核员消息 `msg_20260626035359920_6f84dd28`。 + +复审结论: +通过。未发现阻断性问题。`有色研报解析方案.md` 的母版对齐补充可作为后续 DRAFT_FOR_REVIEW 阶段执行依据。 + +审核员确认点: + +1. 新增内容正确承接 `ana-doc/研报体系/研报解析架构.md` 的当前有效口径。 +2. 三类核心文档细化可指导后续行业视图、市场视图和公司视图草稿。 +3. 文件型清单最低字段满足方案层证据链要求。 +4. 未发现与父级 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 的冲突。 + +允许继续推进的范围: + +1. 事实表复核。 +2. 公司证据卡。 +3. 价格库存快照。 +4. 供需平衡表。 +5. 项目资产表。 +6. 市场反向补漏审计。 +7. 三类视图草稿。 + +限制条件: + +1. BATCH-001 关键事实补齐页码、段落或表格定位并完成人工复核前,所有抽取产物和三类视图草稿仍保持 `DRAFT_FOR_REVIEW`。 +2. 市场反向补漏、新闻、政策事件、资本动作、组织行为、市场异常表现或意图判断必须按 darkline 分流,并与普通行业事实分账。 +3. 正式行业结论、公司投资读法或对外交付前,必须再提交执行审核或输出审核。 + +当前状态: +母版对齐补充已通过复审;可继续推进事实复核和证据补强。 + +## 2026-06-26 04:05:00 RUN-ANA-YS-INDUSTRY-001-BATCH-003-INVENTORY-001:raw 池全量资料盘点 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` + +执行人员: +Codex + +执行目标: +在不越过设计审核门的前提下,对有色 raw 池新增资料进行文件头识别、hash 计算和登记状态盘点,为 BATCH-003 设计冻结和送审提供输入。 + +输入: +`ana-data/cases/有色案例/raw/` + +执行过程: + +1. 遍历 raw 池全部文件。 +2. 按文件头识别 PDF、ZIP_OR_OFFICE 等类型。 +3. 计算 sha256、文件大小、最后修改时间。 +4. 与现有 `source_document.csv` 对比登记状态。 +5. 生成 `raw_inventory_batch003.csv` 和盘点摘要。 + +盘点结果: + +| 指标 | 数量 | +|---|---:| +| raw 文件数 | 359 | +| PDF 文件头 | 357 | +| ZIP_OR_OFFICE 文件头 | 2 | +| 无扩展名文件 | 28 | +| `.pdf` 扩展名文件 | 330 | +| `.docx` 扩展名文件 | 1 | +| 已登记 source_document | 30 | +| 未登记 source_document | 329 | + +异常文件: + +1. `nonferrous_reports_073_@马昕晔,@宋涛,@任杰27501295109620.pptx.pdf`:扩展名 `.pdf`,文件头 `ZIP_OR_OFFICE`。 +2. `nonferrous_weekly_013_孙匡文,李瑶瑶13446875115822.docx.docx`:扩展名 `.docx`,文件头 `ZIP_OR_OFFICE`。 + +输出: +`ana-data/cases/有色案例/manifest/raw_inventory_batch003.csv` +`ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_inventory_summary.md` + +偏离设计: +无。本轮只是资料盘点,不做正式转换、抽取或结论输出。 + +当前状态: +盘点完成,已冻结 BATCH-003 设计,待设计审核。 + +## 2026-06-26 04:15:00 RUN-ANA-YS-BATCH003-TOOL-PREP-001:BATCH-003 转换工具准备 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` + +执行人员: +Codex + +执行目标: +在等待 BATCH-003 设计审核期间,准备不产生正式结论的批量转换工具,确保审核通过后可按设计执行 raw 登记和转换。 + +工具链检查: + +| 工具 | 状态 | +|---|---| +| `pypdf` | 可用 | +| `fitz` / PyMuPDF | 不可用 | +| `python-docx` | 不可用 | + +输出: +`ana-data/tools/convert_nonferrous_raw_batch.py` + +工具能力: + +1. 读取 `raw_inventory_batch003.csv`。 +2. 使用 `pypdf` 转换 PDF。 +3. 对 ZIP_OR_OFFICE 文件做基础 XML 文本抽取。 +4. 输出转换状态表,不生成结论。 + +偏离设计: +无。该步骤只准备工具,不执行正式全量转换;正式转换等待设计审核通过。 + +## 2026-06-26 04:18:00 RUN-ANA-YS-BATCH003-DESIGN-PASS-001:BATCH-003 设计审核通过接收记录 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联消息: +`msg_20260626040411902_40576226` + +执行人员: +Codex + +执行目标: +记录案例审核员对 `TASK-ANA-YS-BATCH003-DESIGN-REVIEW-20260626` 的设计审核结论,并明确执行阶段限制。 + +复审结论: +通过。未发现阻断性问题。允许进入全量登记、转换、抽取和 `DRAFT_FOR_REVIEW` 三类视图草稿阶段。 + +执行限制: + +1. 全量转换前必须先完成 329 个未登记 raw 文件的 `source_document.csv` 和 `artifact_manifest.csv` 补登记。 +2. 每个 sub_batch 必须显式产出或更新 manifest、conversion_status、抽取摘要,记录每组 30 份的输入范围、处理结果、失败项和 hash。 +3. 2 个 `ZIP_OR_OFFICE` 文件必须在执行日志和缺口/转换状态中分账,不得按 PDF 转换成功处理。 +4. 外部数据、市场反向补漏和 darkline 产物必须进入 `supplement/`、`evidence/`、`manifest/` 或父体系 `tmp/result/img` 的对应位置,并保留来源、时间、参数和 `review_status`。 +5. 未补页码、段落、表格定位和人工复核前,抽取事实表、数据卡和三类视图草稿不得升级为正式证据或正式结论。 +6. 正式行业结论、公司投资读法或对外交付前,必须再提交执行审核或输出审核。 + +当前状态: +设计审核通过;开始执行 raw 补登记。 + +## 2026-06-26 04:25:00 RUN-ANA-YS-BATCH003-REGISTER-001:BATCH-003 raw 补登记完成 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` + +执行人员: +Codex + +执行目标: +按设计审核要求,在全量转换前先补齐 329 个未登记 raw 文件的 `source_document.csv` 和 `artifact_manifest.csv` 登记。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| BATCH-003 raw 文件 | 359 | +| 原已登记文件 | 30 | +| 本轮补登记文件 | 329 | +| `source_document.csv` 当前记录 | 359 | +| `artifact_manifest.csv` 当前记录 | 389 | + +输出: + +1. `ana-data/cases/有色案例/manifest/registration_manifest_batch003.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_registration_summary.md` + +偏离设计: +无。本轮只做登记,不做正式事实抽取或结论输出。 + +当前状态: +raw 补登记完成;进入 BATCH-003 可追踪转换阶段。 + +## 2026-06-26 04:28:00 RUN-ANA-YS-BATCH003-INCREMENTAL-TOOL-001:BATCH-003 增量转换工具改造 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +执行人员: +Codex + +执行目标: +修正首次批量转换超时且未及时落盘状态的问题,改为按文件即时追加转换状态,支持按 sub_batch 和索引范围续跑。 + +背景: +`convert_nonferrous_raw_batch.py` 在全量转换中发生长时间阻塞,未能产出完整 `conversion_status`。执行阶段需要满足审核要求,即每个 sub_batch 的输入范围、处理结果、失败项和 hash 可追踪。 + +输出: +`ana-data/tools/convert_nonferrous_incremental.py` + +工具能力: + +1. 按 `raw_inventory_batch003.csv` 的未登记 raw 清单分段处理。 +2. 按 30 份一组生成 `sub_batch_id`。 +3. 每个文件处理后立即追加 `conversion_status` 行。 +4. 对 PDF 转换、复用已转换文本、超时、ZIP_OR_OFFICE 缺口分别分账。 +5. 保留 `case_id`、`batch_id`、`sub_batch_id`、`run_id`、`raw_sha256` 和 `review_status`。 + +偏离设计: +无。该调整只增强转换可续跑性和状态可追踪性,不改变案例边界和审核状态。 + +当前状态: +增量转换工具已准备,开始按 sub_batch 分段转换。 + +## 2026-06-26 04:58:00 RUN-ANA-YS-BATCH003-CONVERT-001:BATCH-003 分段转换完成 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` + +执行人员: +Codex + +执行目标: +按设计审核通过后的限制条件,对 329 个本轮补登记 raw 文件执行可追踪文本转换,并输出 sub_batch 级状态、缺口和摘要。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 本轮转换输入 | 329 | +| `TEXT_CONVERTED` | 309 | +| `FAILED` | 20 | +| PDF | 327 | +| ZIP_OR_OFFICE | 2 | +| sub_batch | 11 | + +输出: + +1. `ana-data/cases/有色案例/manifest/conversion_status_batch003_incremental.csv` +2. `ana-data/cases/有色案例/manifest/conversion_status_batch003_enriched.csv` +3. `ana-data/cases/有色案例/manifest/sub_batch_manifest_batch003.csv` +4. `ana-data/cases/有色案例/manifest/conversion_gap_batch003.csv` +5. `ana-data/cases/有色案例/manifest/conversion_status_batch003_SB*.csv` +6. `ana-data/cases/有色案例/manifest/source_document_update_batch003_conversion.csv` +7. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_conversion_summary.md` + +缺口处理: +20 个失败文件已进入 `conversion_gap_batch003.csv`,状态保持 `DRAFT_FOR_REVIEW`,后续需要重试、替代解析或人工复核。 + +偏离设计: +无。失败文件未按转换成功处理;2 个 `ZIP_OR_OFFICE` 文件已在转换状态和 sub_batch 摘要中分账。 + +当前状态: +BATCH-003 转换完成;进入 DRAFT 事实抽取和人工复核准备阶段。 + +## 2026-06-26 05:02:00 RUN-ANA-YS-BATCH003-EXTRACT-001:BATCH-003 第一轮规则抽取完成 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003` + +执行人员: +Codex + +执行目标: +对 BATCH-003 已转换文本执行第一轮规则扫描,生成事实句、分类汇总和公司映射草表,并保留 converted text 页码级定位。 + +执行结果: + +| 产物 | 行数 | +|---|---:| +| 事实句草表 | 3269 | +| 分类汇总 | 309 | +| 公司映射草表 | 16545 | +| 抽取 manifest | 3 | + +输出: + +1. `ana-data/cases/有色案例/extracted/evidence_fact_table_batch003_extract001.csv` +2. `ana-data/cases/有色案例/extracted/classification_summary_batch003_extract001.csv` +3. `ana-data/cases/有色案例/extracted/company_exposure_batch003_extract001.csv` +4. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/batch003_extract001_manifest.csv` +5. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/batch003_extract001_summary.md` + +质量边界: +本轮仍是规则扫描,`source_location` 为 converted text 页码和句子扫描定位,尚未完成段落、表格定位和人工复核。所有抽取产物保持 `DRAFT_FOR_REVIEW`。 + +当前状态: +BATCH-003 第一轮抽取完成;进入外部价格/库存快照、市场反向补漏和核心文档草稿准备阶段。 + +## 2026-06-26 05:18:00 RUN-ANA-YS-CORE-DRAFT-001:有色三类核心文档草稿生成 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +执行人员: +Codex + +执行目标: +按 `有色研报解析方案.md` 和 `研报解析架构.md` 的三类核心文档要求,基于 BATCH-001、BATCH-003 规则抽取和外部价格库存快照,生成行业视图、市场视图、公司视图草稿,并更新用户查看入口。 + +输入: + +1. `ana-data/cases/有色案例/extracted/evidence_fact_table_batch001_extract001.csv` +2. `ana-data/cases/有色案例/extracted/evidence_fact_table_batch003_extract001.csv` +3. `ana-data/cases/有色案例/extracted/company_exposure_batch001_extract001.csv` +4. `ana-data/cases/有色案例/extracted/company_exposure_batch003_extract001.csv` +5. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_snapshot_20260625.csv` + +输出: + +1. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_industry_view_draft.md` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_market_view_draft.md` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/nonferrous_company_view_draft.md` +4. `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` + +质量边界: + +1. 三类核心文档均为 `DRAFT_FOR_REVIEW`。 +2. 事实句尚未完成段落、表格定位和人工复核。 +3. 公司视图仍来自规则扫描和停用词过滤,只能用于确定后续公司证据卡优先级。 +4. 外部价格库存快照为 supplement 草稿,锂、稀土、SHFE 国内库存等仍需进一步补强。 +5. 不输出正式行业结论、交易指令或收益承诺。 + +当前状态: +核心草稿已生成,准备提交输出审核。 + +## 2026-06-26 05:24:00 RUN-ANA-YS-CORE-DRAFT-PASS-001:DRAFT 输出审核通过接收记录 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联消息: +`msg_20260626050257106_a6bc9c7c` + +关联审计: +`AUDIT-ANA-YS-CORE-DRAFT-001` + +执行人员: +Codex + +执行目标: +记录案例审核员对 `TASK-ANA-YS-CORE-DRAFT-REVIEW-20260626` 的 DRAFT 输出审核结论,并冻结后续推进边界。 + +审核结论: +DRAFT 输出审核通过。未发现阻断 DRAFT 输出审核的问题。 + +允许继续推进: + +1. 关键事实人工复核,补段落、表格定位和原文页码校验。 +2. 公司证据卡,重点补公司业务占比、资源/产能、利润弹性、触发/失效条件和风险。 +3. 外部价格库存补强,补 SHFE、SMM、交易所、行业协会或官方来源。 +4. 市场反向补漏和 darkline 分流,形成独立 `evidence/manifest`,不与普通行业事实混账。 +5. 三类核心文档迭代草稿。 + +限制条件: + +1. 当前三类核心文档不得作为正式行业结论、正式公司结论或对外交付版本。 +2. 不得输出交易指令、收益承诺或无证据强结论。 +3. 后续如果把草稿升级为正式行业视图、市场视图或公司视图,必须重新提交输出审核。 +4. 涉及新闻、政策事件、资本动作、组织行为、市场异常表现或意图判断时,必须按 darkline 分流并记录来源时间、替代解释和证据链。 + +非阻断问题: + +1. 公司视图样例上下文中含有研报原文的“推荐关注”等券商表达;后续公司证据卡必须明确分账为“研报观点/原文表述”,不得转写为分析员推荐或交易建议。 +2. BATCH-001 与 BATCH-003 事实句仍未完成段落、表格定位和人工复核;正式证据升级前必须补齐。 +3. 外部补数仍存在 SHFE 国内库存、锂/稀土直接数值口径和多来源交叉验证缺口;后续市场视图不得把当前快照写成完整覆盖。 + +当前状态: +DRAFT 输出审核通过;继续推进设计补充复核、事实人工复核、公司证据卡、外部补数和 market/darkline 分流。 + +## 2026-06-26 05:38:00 RUN-ANA-YS-FACT-REVIEW-001:关键事实复核包 PASS-001 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-REVIEW-001` + +执行人员: +Codex + +执行目标: +从 BATCH-001 与 BATCH-003 事实句草表中筛选关键事实候选,回连 converted text 页码与上下文,标注范围闸门、研报观点分账、证据升级候选和下一步动作。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 复核记录 | 110 | +| `TEXT_MATCH_CONTEXT_OK` | 110 | +| `CANDIDATE_FOR_EVIDENCE_CARD` | 63 | +| `KEEP_DRAFT` | 33 | +| `KEEP_DRAFT_BROKER_VIEW` | 9 | +| `EXCLUDE_FROM_CORE_EVIDENCE` | 4 | +| `KEEP_DRAFT_SCOPE_REVIEW` | 1 | + +范围闸门: + +| 范围 | 数量 | +|---|---:| +| `CORE_INDUSTRY_CANDIDATE` | 105 | +| `TOC_OR_INDEX_NOISE` | 4 | +| `MARKET_NEWS_OR_ADJACENT_REVIEW` | 1 | + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_review_manifest_batch003_pass001.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_review_batch003_pass001_summary.md` + +质量边界: +本轮只完成 converted text 页码上下文核对。`TEXT_MATCH_CONTEXT_OK` 不等于正式证据通过;关键指标仍需段落、表格定位和必要外部交叉验证。券商“推荐关注”等表达已标为 `BROKER_VIEW_OR_ORIGINAL_RECOMMENDATION`,不得转写为分析员推荐。 + +当前状态: +关键事实复核包 PASS-001 完成;继续推进公司证据卡候选和外部补数补强。 + +## 2026-06-26 05:48:00 RUN-ANA-YS-COMPANY-CARD-001:公司证据卡候选 PASS-001 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-CARD-001` + +执行人员: +Codex + +执行目标: +从 BATCH-001 与 BATCH-003 公司映射草表中收敛第一轮公司证据卡候选,过滤明显行业词和噪声,并把券商“推荐关注”“相关标的”等表达分账为研报原文观点。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 公司证据卡候选 | 80 | +| `HAS_BROKER_VIEW_OR_ORIGINAL_RECOMMENDATION` | 50 | +| `NUMERIC_OR_FACT_CONTEXT` | 29 | +| `TEXT_CONTEXT` | 1 | + +输出: + +1. `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/company_evidence_card_manifest_batch003_pass001.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/company_evidence_card_batch003_pass001_summary.md` + +质量边界: +本轮公司卡仅为候选证据卡。券商原文中的“推荐关注”“相关标的”等表达已保留为原文/研报观点标记,不代表分析员推荐。业务占比、资源产能、利润弹性、触发/失效条件和风险仍需外部公告、年报或公司来源补证。 + +当前状态: +公司证据卡候选 PASS-001 完成;继续推进外部价格库存补强和 market/darkline 分流。 + +## 2026-06-26 06:02:00 RUN-ANA-YS-SUPPLEMENT-PRICE-002:外部价格库存补强 PASS-002 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +执行人员: +Codex + +执行目标: +针对 DRAFT 输出审核指出的 SHFE 国内库存、锂/稀土直接数值口径和多来源交叉验证缺口,补充外部价格库存快照。 + +执行结果: + +| 类别 | 覆盖 | +|---|---| +| SMM 国内现货 | 铜、铝、铅、锌、锡、镍、工业级碳酸锂、电池级碳酸锂、硫酸镍、钴 | +| SHFE 库存补充口径 | 铜、铝、铅、锌、锡、镍 | +| 锂交叉验证 | Trading Economics 锂 benchmark | +| 稀土直接口径 | 登记 SMM Pr-Nd Oxide 页面入口,数值仍待补 | + +输出: + +1. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/price_inventory_supplement_pass002_summary.md` +3. `ana-data/cases/有色案例/supplement/nonferrous_external_source_manifest_20260625.csv` + +质量边界: + +1. 上期所官网页面触发 WAF 人机校验,本轮未能直接读取官方仓单日报数值;当前 SHFE 库存数值采用 SMM 页面展示的 SHFE inventory 表作为 DRAFT 补充口径。 +2. SMM 页面显示部分价格为 USD/tonne,后续如用于正式市场视图,需要补人民币口径、汇率口径或 SMM 原始币种定义。 +3. 稀土 Pr-Nd Oxide 已补 SMM 页面入口,但直接数值仍为 `TO_BE_EXTRACTED`。 +4. 本轮补数只用于 DRAFT 市场视图补强,不构成正式交易判断。 + +当前状态: +外部价格库存补强 PASS-002 完成;继续推进 market/darkline 分流和核心文档迭代。 + +## 2026-06-26 06:12:00 RUN-ANA-YS-MARKET-GAP-001:市场反向补漏环境检查 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-MARKET-GAP-001` + +执行人员: +Codex + +执行目标: +按 darkline 和数据抓取脚本规范,准备执行近 3 个月有色相关 A 股强显影市场反向补漏扫描。 + +执行结果: +未执行正式扫描。当前会话缺少 `TIANXIA_MYSQL_PASSWORD` 环境变量,`market_gap_scan_mysql.py` 无法安全访问本地 MySQL 只读表。 + +输出: + +1. `ana-data/cases/有色案例/supplement/market_manifestation_gap_status_20260626.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/market_manifestation_gap_status_20260626_summary.md` + +质量边界: +市场反向补漏尚未完成。当前三类核心文档不得写成“市场显影已完整覆盖”或“主要公司已覆盖完整”。 + +当前状态: +市场反向补漏进入 `HELD_BY_ENV`;继续推进不依赖数据库凭据的证据链整理和核心文档边界维护。 + +## 2026-06-26 05:29:00 RUN-ANA-YS-FACT-COMPANY-SUPPLEMENT-RESUBMIT-001:基于当前已落地版本重新提交复审 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001` + +关联审计退回: +`AUDIT-ANA-YS-FACT-COMPANY-SUPPLEMENT-001` / `msg_20260626052659860_27d2ad2f` + +执行人员: +Codex + +执行目标: +处理审核员指出的提交时序缺陷。基于当前已经落地的设计文档、执行日志、证据文件和结果入口,重新提交 DRAFT 复审。 + +退回原因摘要: +上一条复审请求 `msg_20260626052317585_2ab17f42` 的消息创建时间早于当前设计和执行日志条目记录时间,无法证明提交前已落地。本次不修改旧条目、不倒填历史,改为以当前已落地版本重新提交。 + +当前重提对象: + +| 对象 | 路径 | 文件系统落地时间 | +|---|---|---| +| 关键事实复核表 | `ana-data/cases/有色案例/evidence/key_fact_review_batch003_pass001.csv` | `2026-06-26 05:13:26` | +| 公司证据卡候选 | `ana-data/cases/有色案例/evidence/company_evidence_card_batch003_pass001.csv` | `2026-06-26 05:15:47` | +| 价格库存补强 | `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` | `2026-06-26 05:18:02` | +| 市场反向补漏状态 | `ana-data/cases/有色案例/supplement/market_manifestation_gap_status_20260626.csv` | `2026-06-26 05:22:17` | +| 结果入口 | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | `2026-06-26 05:22:17` | + +质量边界: + +1. 全部新增产物仍为 `DRAFT_FOR_REVIEW` 或 `HELD_BY_ENV`。 +2. 本次只请求 DRAFT 复审,不请求正式结论通过。 +3. 市场反向补漏因缺少本地 MySQL 凭据仍未完成。 +4. 后续提交前必须先完成设计、执行日志、结果入口和证据清单回写。 + +当前状态: +准备重新提交复审。 + +重提结果: +已通过 MB-X 重新提交复审,消息 ID:`msg_20260626053015666_cb187a85`。新消息创建时间晚于 `DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-REVIEW-RESUBMIT-001` 和 `RUN-ANA-YS-FACT-COMPANY-SUPPLEMENT-RESUBMIT-001` 的落地时间。 + +## 2026-06-26 05:47:00 RUN-ANA-YS-COMPANY-SOURCE-002:公司官方来源补强 PASS-002 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-COMPANY-SOURCE-002` + +执行人员: +Codex + +执行目标: +对公司证据卡 PASS-001 中的核心高频公司进行官方/准官方来源补强,形成第一批公司来源卡,继续保持 `DRAFT_FOR_REVIEW`。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 公司来源卡 | 10 | +| 来源 manifest | 10 | + +覆盖公司: +紫金矿业、中国铝业、北方稀土、赣锋锂业、天齐锂业、华友钴业、江西铜业、山东黄金、云铝股份、锡业股份。 + +输出: + +1. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` +2. `ana-data/cases/有色案例/manifest/company_source_manifest_pass002.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/company_source_card_pass002_summary.md` + +质量边界: +本轮只补公司官方/准官方来源入口和业务暴露草表。资源储量、产量、产能、销量、成本、业务收入占比仍需年报表格级抽取。所有记录保持 `DRAFT_FOR_REVIEW`,不得作为正式公司结论、推荐或交易建议。 + +当前状态: +公司官方来源补强 PASS-002 完成;进入年报表格级抽取准备。 + +补充归档状态: +已尝试使用 `collect_web_sources.py` 抓取 10 个公司来源 URL,输出 `ana-data/cases/有色案例/manifest/web_source_manifest_RUN-ANA-YS-COMPANY-SOURCE-002.csv`。本地 urllib 抓取全部返回 `[WinError 10061]` 连接拒绝,未形成网页/PDF 快照;已降级记录到 `ana-data/cases/有色案例/supplement/company_source_archive_status_pass002.csv`。当前公司来源卡只能作为 `SOURCE_URL_ONLY` 草稿入口,正式证据升级前需重新归档来源快照或补交易所/公告本地文件。 + +## 2026-06-26 05:54:00 RUN-ANA-YS-FACT-CARD-002:关键事实证据卡 PASS-002 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-CARD-002` + +执行人员: +Codex + +执行目标: +将关键事实复核包 PASS-001 中的 `CANDIDATE_FOR_EVIDENCE_CARD` 转为结构化事实证据卡草表,抽取数值/单位/日期候选,并标记表格定位和外部交叉验证需求。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 事实证据卡 | 63 | +| 含数值/单位候选 | 63 | +| `PRICE_OR_MARKET_DATA` | 53 | +| `SUPPLY_CAPACITY_OR_OUTPUT` | 10 | + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_evidence_card_manifest_pass002.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_evidence_card_pass002_summary.md` + +质量边界: +本轮只是把关键事实候选拆成证据卡草表。数值/单位仍为候选,正式证据升级前必须补段落或表格定位,并完成外部交叉验证。 + +当前状态: +关键事实证据卡 PASS-002 完成;继续推进表格定位和外部交叉验证。 + +## 2026-06-26 05:51:00 RUN-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-RESUBMIT-001:基于当前已落地版本重新提交 PASS-002 复审 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PASS002-RESUBMIT-001` + +关联审计退回: +`AUDIT-ANA-YS-COMPANY-SOURCE-FACT-CARD-PASS002-001` / `msg_20260626055006967_8bde1cd1` + +执行人员: +Codex + +执行目标: +处理审核员指出的 PASS-002 合并提交时序缺陷。基于当前已经落地的公司来源卡、关键事实证据卡、来源归档状态和结果入口,重新提交 DRAFT 复审。 + +退回原因摘要: +上一条复审请求 `msg_20260626054717735_b05daf29` 的消息创建时间早于 `FACT-CARD-002` 设计/执行记录时间。本次不修改旧条目、不倒填历史,改为以当前已落地版本重新提交。 + +当前重提对象: + +| 对象 | 路径 | 文件系统落地时间 | +|---|---|---| +| 公司来源卡 | `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` | `2026-06-26 05:40:21` | +| 关键事实证据卡 | `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` | `2026-06-26 05:45:32` | +| 来源归档状态 | `ana-data/cases/有色案例/supplement/company_source_archive_status_pass002.csv` | `2026-06-26 05:43:45` | +| 结果入口 | `ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` | `2026-06-26 05:46:13` | + +质量边界: + +1. 全部新增产物仍为 `DRAFT_FOR_REVIEW`。 +2. 公司来源卡当前仍为 `SOURCE_URL_ONLY` 草稿入口;网页/PDF 快照归档失败。 +3. 关键事实证据卡里的数值/单位仍为候选,不等于正式指标。 +4. 本次只请求 DRAFT 复审,不请求正式结论通过。 + +当前状态: +准备重新提交 PASS-002 复审。 + +## 2026-06-26 05:59:00 RUN-ANA-YS-FACT-LOCATION-003:关键事实段落/表格定位预复核 PASS-003 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-FACT-LOCATION-003` + +执行人员: +Codex + +执行目标: +对 PASS-002 的 63 条关键事实证据卡进行 converted text 层页码、行号和上下文定位预复核,为后续人工复核、PDF 原页表格定位和外部交叉验证准备结构化输入。 + +执行工具: +`ana-data/tools/build_key_fact_location_precheck.py` + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/converted/` + +输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_location_precheck_manifest_pass003.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_location_precheck_pass003_summary.md` + +质量边界: +本轮只是 converted text 层的定位预复核。`TABLE_CANDIDATE` 不等于 PDF 原页表格已人工复核;`PARAGRAPH_CANDIDATE` 不等于事实已正式确认。所有记录保持 `DRAFT_FOR_REVIEW`,正式证据升级前仍需人工复核和外部交叉验证。 + +当前状态: +准备执行定位预复核脚本。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 输入关键事实证据卡 | 63 | +| converted text 命中定位 | 63 | +| 未定位 | 0 | +| `TABLE_CANDIDATE` | 55 | +| `PARAGRAPH_CANDIDATE` | 8 | + +输出文件: + +1. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_location_precheck_manifest_pass003.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_location_precheck_pass003_summary.md` + +自检结果: + +1. 输出记录数与 PASS-002 关键事实证据卡一致。 +2. 63 条均通过 `EXACT_NORMALIZED_LINE` 在 converted text 中定位。 +3. 55 条为表格候选,需要继续做 PDF 原页表格定位或人工复核。 +4. 8 条为段落候选,需要继续做段落级人工复核和外部交叉验证。 +5. 所有记录保持 `DRAFT_FOR_REVIEW`,未升级为正式指标或正式结论。 + +当前状态: +关键事实定位预复核 PASS-003 已完成,待提交执行复审;后续继续做 PDF 原页/表格人工复核和外部交叉验证。 + +## 2026-06-26 06:07:00 RUN-ANA-YS-PDF-TABLE-004:关键事实 PDF 原页表格复核队列 PASS-004 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PDF-TABLE-004` + +执行人员: +Codex + +执行目标: +基于 PASS-003 的 55 条 `TABLE_CANDIDATE`,回查 PDF 原页,生成表格人工复核队列和页图证据入口。该轮只确认原页可打开、页图可导出和表格线索,不确认正式数值。 + +执行准备: + +1. 本地 raw 原件路径可反查。 +2. 当前 Python 环境缺少 `fitz` / PyMuPDF;本轮将安装或调用 PyMuPDF 作为 PDF 读取和页面渲染依赖。 +3. 如依赖安装失败,产物保持 `HELD_BY_ENV` 并记录缺口,不伪装成 PDF 原页复核完成。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +3. `ana-data/cases/有色案例/raw/` + +计划输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_pdf_table_review_manifest_pass004.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_pdf_table_review_pass004_summary.md` +4. `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-PDF-TABLE-004/` + +质量边界: +本轮为 PDF 原页表格人工复核队列,不是正式人工复核通过。数值、单位、口径和日期仍需人工核对及外部交叉验证。 + +当前状态: +准备安装/调用 PDF 解析依赖并生成队列。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 表格候选输入 | 55 | +| raw 文件存在 | 55 | +| raw PDF 文件头通过 | 54 | +| 页码已知 | 41 | +| 页码未知 | 14 | +| `HELD_BY_ENV_PDF_RENDERER_MISSING` | 41 | +| `HELD_BY_PAGE_UNKNOWN` | 13 | +| `HELD_BY_NOT_PDF_HEADER` | 1 | + +环境结果: + +1. `python -m pip install PyMuPDF` 因本机代理连接拒绝失败,错误为 `[WinError 10061]`。 +2. 本机未发现可用的 `pdftotext`、`pdfinfo`、`mutool`、`gs`、`magick`、`pdftoppm` 等 PDF 命令行工具。 +3. 因缺少 PDF 解析/渲染依赖,本轮未导出 PDF 原页图片,产物整体保持 `HELD_BY_ENV`。 + +输出文件: + +1. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_pdf_table_review_manifest_pass004.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_pdf_table_review_pass004_summary.md` +4. `ana-data/img/有色案例/ANA-YS-INDUSTRY-001/RUN-ANA-YS-PDF-TABLE-004/` + +质量边界: +本轮只形成 PDF 原页表格复核队列和环境缺口记录,不是 PDF 原页人工复核通过。不得据此升级为正式事实、正式指标、正式行业结论或对外交付结论。 + +当前状态: +PASS-004 以 `HELD_BY_ENV` 形成复核队列,待提交执行复审;后续需恢复 PDF 解析/渲染依赖或补充人工页图后继续。 + +## 2026-06-26 06:16:00 RUN-ANA-YS-PAGE-GAP-005:页码未知和非 PDF 头异常补查 PASS-005 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-PAGE-GAP-005` + +执行人员: +Codex + +执行目标: +对 PASS-004 中的 13 条页码未知项和 1 条非 PDF 头异常做补查,形成可追溯修复队列。该轮不处理 PDF 渲染依赖缺失,不导出 PDF 原页图片,不升级正式证据。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_pdf_table_review_queue_pass004.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +4. `ana-data/cases/有色案例/converted/` +5. `ana-data/cases/有色案例/raw/` + +计划输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_page_gap_repair_pass005.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_page_gap_repair_manifest_pass005.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_page_gap_repair_pass005_summary.md` + +质量边界: +页码补查只能作为后续 PDF 原页复核的输入,不能作为 PDF 原页复核通过。非 PDF 头异常只记录文件类型线索和处理建议,不伪装为 PDF。 + +当前状态: +准备生成 PASS-005 补查队列。 + +## 2026-06-26 06:18:00 RUN-ANA-YS-PDF-CONVERSION-PRIORITY-001:PDF 转换失败处理口径调整 + +所属案例事项: +`ANA-YS-INDUSTRY-001` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-PDF-CONVERSION-PRIORITY-001` + +触发来源: +用户明确要求不要在少量 PDF 文件转换问题上消耗过多时间;少量无法转换可先忽略并由用户后续补文档,大量或影响主线时需要报告。 + +执行调整: + +1. 暂停继续深挖 PDF 渲染依赖安装和页图导出问题。 +2. PASS-004 的 55 条 PDF 表格复核队列保留为 `HELD_BY_ENV` 缺口记录。 +3. 后续主线转向事实外部交叉验证、公司证据卡补强和三类核心文档迭代。 +4. 转换/页图失败项按缺口登记,不作为正式证据。 +5. 若后续发现失败项超过单轮 10%,或集中影响关键品种、关键公司、核心指标,将直接向用户报告并请求补文档或补环境。 + +当前状态: +PDF 转换失败不再作为当前主线阻断;继续推进非 PDF 依赖的证据补强。 + +## 2026-06-26 06:21:00 RUN-ANA-YS-CROSSCHECK-006:关键事实外部交叉验证映射 PASS-006 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-CROSSCHECK-006` + +执行人员: +Codex + +执行目标: +在不继续深挖 PDF 转换问题的前提下,对 63 条关键事实证据卡做外部交叉验证映射。优先使用已落地价格库存补数、外部来源 manifest、公司官方来源卡和 PASS-003 converted text 定位结果。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` +3. `ana-data/cases/有色案例/supplement/nonferrous_price_inventory_supplement_pass002_20260625.csv` +4. `ana-data/cases/有色案例/supplement/nonferrous_external_source_manifest_20260625.csv` +5. `ana-data/cases/有色案例/evidence/company_source_card_pass002.csv` + +计划输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_external_crosscheck_manifest_pass006.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_external_crosscheck_pass006_summary.md` + +质量边界: +本轮只形成交叉验证候选映射。命中外部来源不等于数值完全一致,也不等于正式证据通过;正式升级前仍需人工复核来源日期、单位、口径和原文表格。 + +当前状态: +准备生成外部交叉验证映射。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| 输入关键事实证据卡 | 63 | +| `PRICE_INVENTORY_SOURCE_MATCHED` | 38 | +| `COMPANY_SOURCE_MATCHED` | 7 | +| `NEEDS_PRICE_INVENTORY_EXTERNAL_SOURCE` | 15 | +| `NEEDS_COMPANY_OFFICIAL_SOURCE` | 3 | +| `MEDIUM_DRAFT` | 45 | +| `GAP_REVIEW` | 18 | + +输出文件: + +1. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_external_crosscheck_manifest_pass006.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_external_crosscheck_pass006_summary.md` + +自检结果: + +1. 输出记录数与 PASS-002 关键事实证据卡一致。 +2. 45 条已形成外部来源候选映射,但仍只为 `MEDIUM_DRAFT`。 +3. 18 条仍为 `GAP_REVIEW`,需要补价格库存源或公司官方来源。 +4. 未输出正式指标、正式行业结论、交易指令或收益承诺。 + +当前状态: +PASS-006 外部交叉验证映射完成,待提交执行复审;后续优先处理 18 条 `GAP_REVIEW` 和公司证据卡补强。 + +## 2026-06-26 06:28:00 RUN-ANA-YS-GAP-PRIORITY-007:关键事实外部来源缺口优先级 PASS-007 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-GAP-PRIORITY-007` + +执行人员: +Codex + +执行目标: +对 PASS-006 的 18 条 `GAP_REVIEW` 做缺口优先级拆分,决定哪些需要优先补价格库存源,哪些需要优先补公司官方来源,哪些可以暂缓。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_location_precheck_pass003.csv` + +计划输出: + +1. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_gap_priority_manifest_pass007.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_gap_priority_pass007_summary.md` + +质量边界: +本轮只是缺口优先级,不补证、不下正式结论。后续只对高优先级缺口启动联网或官方来源补证。 + +当前状态: +准备生成缺口优先级队列。 + +执行结果: + +| 项目 | 数量 | +|---|---:| +| PASS-006 缺口输入 | 18 | +| `HIGH` | 10 | +| `MEDIUM` | 8 | +| `PRICE_INVENTORY_SOURCE_GAP` | 15 | +| `COMPANY_OFFICIAL_SOURCE_GAP` | 3 | +| `supplement_now` | 10 | +| `queue_for_next_pass` | 8 | + +输出文件: + +1. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/evidence/key_fact_gap_priority_manifest_pass007.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_gap_priority_pass007_summary.md` + +自检结果: + +1. 输出覆盖 PASS-006 全部 18 条 `GAP_REVIEW`。 +2. 10 条高优先级缺口进入立即补源候选。 +3. 8 条中优先级缺口排入下一轮。 +4. 本轮只做优先级拆分,未宣称缺口已补齐。 + +当前状态: +PASS-007 缺口优先级队列完成,待提交执行复审;后续优先补 10 条 `HIGH` 缺口。 + +## 2026-06-26 06:36:00 RUN-ANA-YS-HIGH-GAP-SOURCE-008:高优先级外部来源补充 PASS-008 + +所属案例事项: +`ANA-YS-INDUSTRY-001` / `BATCH-001+BATCH-003` + +关联设计: +`DESIGN-ANA-YS-INDUSTRY-001-BATCH-003-HIGH-GAP-SOURCE-008` + +执行人员: +Codex + +执行目标: +对 PASS-007 中 10 条 `HIGH` 缺口补充可复核外部来源入口和口径说明,优先覆盖金、银价格/库存和锑/金相关价格或公司来源缺口。 + +输入: + +1. `ana-data/cases/有色案例/evidence/key_fact_gap_priority_pass007.csv` +2. `ana-data/cases/有色案例/evidence/key_fact_external_crosscheck_pass006.csv` +3. `ana-data/cases/有色案例/evidence/key_fact_evidence_card_pass002.csv` +4. 公开外部来源。 + +计划输出: + +1. `ana-data/cases/有色案例/supplement/key_fact_high_gap_source_pass008.csv` +2. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/manifest/key_fact_high_gap_source_manifest_pass008.csv` +3. `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/key_fact_high_gap_source_pass008_summary.md` + +质量边界: +本轮只补来源入口和口径,不做正式数值一致性确认;命中来源不等于正式证据通过。 + +当前状态: +准备联网补高优先级来源。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" index 34facb1..c36a5f8 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" @@ -1,19 +1,70 @@ -# 有色案例问题记录 +# 有色案例问题记录 创建人员:Codex -文件职责:记录有色行业研报案例中的非审计来源问题,或审计问题的跨轮索引。 -管理规范/模板:案例审核规范.md;../案例审核规范.md。 -引用文件:案例审计报告.md;案例执行日志.md;案例总纲.md;案例分析设计.md。 -记录方式:append-only 问题账本;新增问题、状态变化和复验结论追加记录。 +文件职责:作为有色行业容器的问题闭环账本,记录外部反馈、执行者无法自行闭环或需要跨轮/跨角色跟踪的非审计来源问题;对需要跨轮跟踪的审计问题只记录索引或关联。 +管理规范/模板:../案例分析规范.md;../案例审核规范.md;../../common/ana-doc/案例问题记录模版.md;案例审核规范.md。 +引用文件:../案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。 +记录方式:append-only 有色案例问题记录;新问题、修复、复审和关闭追加到文件末尾。 + +口径说明:审核员在设计审核、执行审核和复审中发现的问题,主记录写入 `案例审计报告.md`;本文件只在需要跨轮跟踪时记录审计问题索引。执行 AI、案例分析员或其他执行责任人在执行中自发现、且能在本轮或本案例内修复、回退、降级或形成明确处理结果的问题,不写入本文件,必须直接处理并记录到 `案例执行日志.md`、自检记录、验证报告、manifest、数据缺口表或对应结果包。只有以下非审计事项写入本文件:用户、外部 AI、人工同事等非执行责任人反馈的问题;执行者发现但超出权限、无法自行闭环、需要移交他人或跨轮跟踪的问题;已经处理但需要独立复审和关闭的问题。 ## 1. 当前问题总览 -| 问题 ID | 来源 | 严重级别 | 状态 | 主记录 | -|---|---|---|---|---| -| 暂无 | - | - | - | - | +| 问题 ID | 所属案例 | 类型 | 严重级别 | 状态 | 责任方 | +|---|---|---|---|---|---| +| 无 | 无 | 无 | 无 | 无 | 无 | -## 2. 问题记录 +## 2. 问题记录模板 -当前无开放问题。 +### <YYYY-MM-DD HH:mm:ss> <ISSUE-ID>:<问题标题> -后续如果审核员发现模板、设计、执行、证据链、存储路径或结论边界问题,应优先写入 `案例审计报告.md`;只有需要跨轮跟踪或非审计来源的问题,才在本文件建立索引。 +所属案例事项: +<ANA-ID / CASE-ID / DESIGN-ID / LOG-ID> + +问题类型: +设计问题 / 执行问题 / 数据问题 / 证据链问题 / 结论过读 / 未来函数 / 待归因 + +严重级别: +P0 阻断 / P1 重要 / P2 一般 / P3 建议 + +发现人: +<发现人> + +来源类型: +外部非审计反馈 / 执行者无法自行闭环问题 / 跨轮跟踪索引 / 审计问题索引 + +原始反馈原文或入口: +<逐字原文;如原文较长,写附件路径、消息 ID、会话时间> + +原子需求拆解: +<原文 -> 原子需求 -> 证据入口 -> 关闭条件> + +关联审计: +<案例审计报告.md 中 AUDIT-ID;非审计反馈可写无> + +证据: +<文件、表、日志路径,或粘贴关键片段> + +问题描述: +<问题是什么> + +影响: +<影响案例结论、流程、证据链、可复核性还是只是建议> + +建议修复: +<建议怎么修,不要无边界加码> + +当前状态: +未处理 / 修复中 / 待复审 / 已关闭 / 暂缓 + +复审结论: +<复审结果;未复审写“待复审”> + +关闭条件: +<什么条件下可以关闭> + +## 3. 当前记录 + +当前无有效问题记录。 + +说明:`RUN-ANA-YS-INDUSTRY-001-BATCH-001` 中 PyMuPDF/fitz 缺失和旧铜铝目录无扩展名文件属于执行自检发现且已有处理路径,已记录到 `案例执行日志.md`、`案例审计报告.md`、验证报告和数据缺口表,不在本文件闭环。 diff --git "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\347\233\256\345\275\225\345\257\274\350\257\273.md" index 4ceb87e..a593f2c 100644 --- "a/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\347\233\256\345\275\225\345\257\274\350\257\273.md" +++ "b/ana-doc/\346\234\211\350\211\262\346\241\210\344\276\213/\347\233\256\345\275\225\345\257\274\350\257\273.md" @@ -1,42 +1,44 @@ -# 有色案例目录导读 +# 有色案例目录导读 创建人员:Codex 文件职责:说明 `project-info` 有色行业研报案例目录的文档入口、母版继承关系和正式产物边界。 管理规范/模板:../案例分析规范.md;../案例审核规范.md;../案例存储体系.md。 -引用文件:案例分析规范.md;案例审核规范.md;案例存储体系.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;有色研报解析方案.md。 +引用文件:案例分析规范.md;案例审核规范.md;案例存储体系.md;../案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;有色研报解析方案.md。 记录方式:行业案例目录入口;本目录文件新增、删除、改名或职责变化时同步更新。 ## 1. 定位 -本目录是 `project-info` 中有色行业研报研究的案例目录模板。 +本目录是 `project-info` 中有色行业研报研究的行业容器。 -有色行业的正式研报研究、资料补充、行业分析、市场分析、公司分析、核心文档输出和审核闭环,都应在本目录或本目录派生的正式案例目录中留痕。 +有色行业的正式研报研究、资料补充、行业分析、市场分析、公司分析、核心文档输出和审核闭环,都应在本目录留痕;真实案例统一登记到父级 `../案例总纲.md`。 本目录不替代父级 `ana-doc/` 的案例体系规范,只做有色行业研报案例的本地承接。 + +本目录不是一个案例,不维护独立 `案例总纲.md`。后续无论是有色历史研报全量迁移、增量更新,还是锗镓/小金属等专题研究,都必须先在父级 `../案例总纲.md` 登记案例,再在本目录 `案例分析设计.md` 中拆解事项、batch 和 run。 ## 2. 母版继承 | 本目录文档 | 母版 / 上级依据 | 说明 | |---|---|---| -| `案例分析规范.md` | `../案例分析规范.md` | 只记录有色行业本地补充,不削弱父级规范 | -| `案例审核规范.md` | `../案例审核规范.md` | 只记录有色行业审核补充,不削弱父级审核规范 | +| `案例分析规范.md` | `../案例分析规范.md` | 轻量继承入口,只记录有色行业本地补充,不复制父级主流程 | +| `案例审核规范.md` | `../案例审核规范.md` | 轻量继承入口,只记录有色行业审核补充,不复制父级审核流程 | | `案例存储体系.md` | `../案例存储体系.md` | 只记录有色行业数据和结果包落点补充 | -| `有色研报解析方案.md` | 研报解析、分析、存储母版 | 记录有色行业专属分析方案 | +| `有色研报解析方案.md` | `../研报体系/研报解析架构.md`;`../研报体系/研报分析架构.md`;`../案例存储体系.md` | 记录有色行业专属分析方案 | -`案例总纲.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md` 是本目录自己的运行账本,不复制父级账本内容。 +`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md` 是本目录自己的事项、执行、审核和问题账本,不复制父级账本内容。父级 `../案例总纲.md` 是唯一案例总账。 ## 3. 文档入口 | 文件 | 作用 | |---|---| -| `案例分析规范.md` | 有色研报案例的本地分析规则和执行边界 | -| `案例审核规范.md` | 有色研报案例的本地审核口径 | +| `案例分析规范.md` | 有色研报案例的父级继承入口和本地分析补充 | +| `案例审核规范.md` | 有色研报案例的父级继承入口和本地审核补充 | | `案例存储体系.md` | 有色研报资料、证据包、结果包和结构化数据的本地存储口径 | -| `案例总纲.md` | 有色研报案例事项总账 | +| `../案例总纲.md` | 有色真实案例的父级总账入口 | | `案例分析设计.md` | 有色研报案例的设计、步骤、证据要求和验收方式 | | `案例执行日志.md` | 有色研报案例执行过程和证据入口 | | `案例审计报告.md` | 有色研报案例设计审核、执行审核和复审记录 | -| `案例问题记录.md` | 有色研报案例非审计问题或跨轮问题索引 | +| `案例问题记录.md` | 外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的有色研报案例非审计问题,或跨轮问题索引 | | `有色研报解析方案.md` | 有色行业研报解析、分析和输出方案 | ## 4. 当前状态 @@ -44,8 +46,8 @@ | 项目 | 状态 | |---|---| | 目录模板 | 已创建 | -| 正式有色研报案例 | 待立项 | -| 行业研报解析方案 | 已创建模板,待正式任务细化 | +| 正式有色研报案例 | 父级总纲已登记 `ANA-YS-INDUSTRY-001` 作为有色行业整体研报分析长期案例;`BATCH-001` 试运行已完成,正式行业结论待后续批次和审核 | +| 行业研报解析方案 | 已从模板升格为 v0.1 正式基础方案,后续批次执行中持续优化 | | 历史有色资料迁移 | 未执行 | 正式启动有色研报研究时,不应直接把历史有色结论视为本目录正式结论。历史资料可以作为输入或参考,但必须重新进入本目录的案例设计、执行、证据归档和审核闭环。 diff --git "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" index ebe42e9..7ac3b4b 100644 --- "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" +++ "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" @@ -1,60 +1,280 @@ -# 案例分析规范 +# 案例分析规范 -创建人员:management.admin -文件职责:记录 `project-info` 项目案例分析员必须遵守的本地规范。本文件引用 common 案例分析规范,不得削弱 common 硬约束。 -管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例分析环境创建指南.md。 -引用文件:目录导读.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;../项目配置清单.md。 +创建人员:management.admin +文件职责:记录 `project-info` 项目案例分析员必须遵守的本地规范,承接研报研究、外部信息分析、证据链沉淀和核心文档输出。 +管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例分析环境创建指南.md。 +引用文件:目录导读.md;数据抓取脚本说明.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审核规范.md;案例存储体系.md;案例审计报告.md;案例问题记录.md;研报体系/研报解析架构.md;研报体系/研报分析架构.md;../项目配置清单.md。 记录方式:项目本地规范;本项目案例分析口径发生变化时更新,并同步项目变更记录。 ## 1. 基本口径 -本项目所有案例分析员必须同时遵守 `../../common/ana-doc/案例分析规范.md` 和本文件。本文件只做 `project-info` 的项目化补充;如果与 common 规范冲突,以 common 硬约束为准,并先修复本文件。 +本项目所有案例分析员必须同时遵守 `../../common/ana-doc/案例分析规范.md` 和本文件。本文件只做 `project-info` 的项目化补充;如果与 common 硬约束冲突,以 common 硬约束为准,并先修复本文件。 + +`project-info` 的案例分析体系用于承接研报研究、行业资料分析、公开信息补充、市场显影检查、暗线分流、证据归档、核心文档输出和审核闭环。它不是单纯的摘要目录,也不是交易指令系统。 ## 2. 项目分析范围 -本项目案例分析范围限定为股市信息研究相关案例,包括: +本项目案例分析范围包括: -1. 研报、公告、新闻、公开网络信息形成的信息事件链。 -2. K 线、成交量、市场广度、行业表现等市场显影证据。 -3. 暗线 / 信息拓扑分析中的意图、目标、证据链和替代解释。 -4. 后续可交给实验体系验证的假设和观察窗口。 +1. 研报、公告、新闻、网页、政策、数据表、公开网络信息形成的信息链和证据链。 +2. 行业、子行业、产业链、公司、市场指标、投资读法和资料缺口分析。 +3. K 线、成交量、市场广度、行业表现等市场显影证据。 +4. 暗线 / 信息拓扑分析中的意图、目标、证据链、替代解释和市场输出。 +5. 后续可交给实验体系或开发体系验证的假设、样本和工具需求。 -本项目案例分析不得直接输出交易指令、收益承诺或未经验证的因果结论。 +本项目案例分析不得直接输出交易指令、收益承诺或未经证据支持的强因果结论。涉及投资读法时,只能输出证据边界内的阶段判断、观察条件、触发条件、失效条件和风险。 ## 3. 核心文档作用 | 文档 | 作用 | |---|---| -| `案例总纲.md` | 记录本项目所有案例事项的来源、目标、边界、状态和结论 | -| `案例分析设计.md` | 记录案例选择口径、证据链设计、执行步骤、产物和判定标准 | -| `案例执行日志.md` | 记录执行过程、证据入口、关键中间结果、异常和自检 | -| `案例存储体系.md` | 说明案例数据、图片、结果包、临时文件和证据包的存储规则 | -| `案例审计报告.md` | 记录设计审核、执行审核、初始化审核和复审结论 | -| `案例问题记录.md` | 记录非审计来源问题;审计问题主记录留在审计报告 | +| `目录导读.md` | 本项目案例体系入口、目录和数据路径说明 | +| `案例分析规范.md` | 本项目案例分析本地规范入口 | +| `案例审核规范.md` | 本项目案例审核本地规范入口 | +| `案例存储体系.md` | 案例文件、证据、结果包、MySQL 追溯和研报存储规则 | +| `案例总纲.md` | 父级案例事项背景、目标、边界、状态和结论账本 | +| `案例分析设计.md` | 父级案例选择口径、证据要求、流程和验收方式 | +| `案例执行日志.md` | 父级案例执行过程、关键节点、数据和证据路径 | +| `案例审计报告.md` | 父级设计审核、执行审核、初始化审核和复审结论 | +| `案例问题记录.md` | 外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计问题;审计问题主记录留在审计报告 | +| `数据抓取脚本说明.md` | 说明 `ana-data/tools/` 中外部网页抓取、本地 MySQL 只读导出和市场反向补漏脚本的使用口径 | +| `研报体系/研报解析架构.md` | 研报解析方法母版,定义行业方案继承、输出视图和解析底线 | +| `研报体系/研报分析架构.md` | 研报分析方法母版,定义资料归档、抽取、补数、市场反向补漏、暗线分流和人读文档闭环 | + +`研报解析架构.md` 和 `研报分析架构.md` 是研报专业流程母版,本文件负责把两者的核心流程融合进 ana 案例生命周期,形成本项目研报案例的统一执行入口。行业子规范、总纲、设计、日志或审计报告不得把两份母版全文拆散复制成平行流程。研报存储规则已经融入 `案例存储体系.md`,不另建平行的 `研报存储体系.md` 作为正式执行入口。 ## 4. 最小案例链路 每个正式案例至少具备: -1. 案例 ID、来源、目标、边界和状态。 -2. 设计记录,说明要分析的信息叶子、证据来源、K 线/市场显影检查口径和替代解释。 -3. 执行日志,说明实际读取的文档、数据、证据路径和输出包。 -4. 审计记录,说明设计或执行是否通过。 -5. 结果包或明确的 `HELD` 状态;不能用口头结论替代证据入口。 +1. 案例 ID、来源、行业或对象、目标、边界和状态。 +2. `案例总纲.md` 登记事项来源、目标、范围、预期输出和当前状态。 +3. `案例分析设计.md` 冻结案例选择口径、输入资料、执行步骤、证据要求、输出物、存储路径和验收方式。 +4. 设计审核记录。设计审核未通过,不得进入正式执行。 +5. `案例执行日志.md` 记录实际读取、归档、转换、抽取、补充、分析、输出和自检过程。 +6. 结果包、证据包或明确的 `HELD` 状态;不能用口头结论替代证据入口。 +7. 执行审核记录。执行审核未通过,不得标记完成或对外交付。 +8. 审核问题进入 `案例审计报告.md`;执行者自发现且能处理的问题进入 `案例执行日志.md`、自检、验证报告或结果包;外部反馈、执行者无法自行闭环或跨轮索引进入 `案例问题记录.md`。 -## 5. darkline 使用口径 +## 5. 研报体系接入流程 -当任务涉及暗线、新闻、公告、事件链、证据链、K 线显影或外部信息拓扑时,应使用 `darkline` 技能约束分析流程。窗口只展示摘要、关键路径和证据入口;大段新闻、日志、搜索结果和图片批量内容应落到结果包或 readout 文件。 +研报类任务进入案例体系后,流程以 ana 案例生命周期为主线,研报解析和分析流程作为专业步骤嵌入其中。本节是 `研报解析架构.md` 和 `研报分析架构.md` 的流程融合结果;执行 AI 以本节为默认主流程,除非行业方案通过设计审核明确覆写专业步骤。 -## 6. 行业 / 研究案例文件夹机制 +融合不是简单引用两份研报母版。执行时必须把 common ana 的“来源、总纲、设计、审核、执行、日志、结果包、执行审核、复审、回写”逐步落到研报专业动作上,形成从行业方案、raw 归档、转换抽取、补数、证据、三类视图、manifest 到审计闭环的完整链路。 -正式行业研报研究必须按独立案例文件夹管理。 +案例分析员融合执行流程: -创建新的行业研究案例时,案例分析员必须在 `ana-doc/` 下创建新的案例目录,例如: +分析员接到研报任务后,必须按 common 案例流程的顺序执行,只是把每个 common 步骤中的“候选、案例、关键数据、图片、结果”替换为研报体系中的“资料批次、行业方案、原始资料、转换抽取、补数证据、三类视图和 manifest”。流程如下: + +1. 来源接入:对应 common 的“来源聊天记录 / 上游方法论 / 样本来源”。分析员先判断任务是否是研报类 case_analysis,记录任务来源、用户要求、行业范围、资料来源、目标和边界;如果任务需要网上补充、新闻公告、市场显影或暗线分析,在设计里标记 `darkline_required` 或等价说明。 +2. 父级总纲登记:对应 common 的“案例总纲记录背景、目标、边界、当前结论”。真实研报案例必须先登记到父级 `案例总纲.md`,行业目录只作为容器和过程账本,不创建平行总纲;同一行业长期研究一般是一个长期案例,分批资料输入用 `batch_id` 和 `run_id` 表达。 +3. 行业容器和母版读取:这是 common “执行前确认案例环境”的研报化步骤。分析员确认 `ana-doc/<行业>案例/` 是否存在;不存在则先创建行业容器。随后读取父级 `案例分析规范.md`、`案例存储体系.md`、`案例审核规范.md`、`研报解析架构.md`、`研报分析架构.md` 和行业方案。 +4. 行业方案创建或更新:这是研报体系嵌入 common 设计流程前的专业前置步骤。新行业不得直接读研报,必须先创建 `<行业>研报解析方案.md`;已有行业也要检查方案是否足以支撑本次任务,必要时先更新行业边界、核心变量、输出方案、专属表、流程覆写和缺口。行业方案新建、从模板升格或重要优化后,必须提交行业方案审核或复审。 +5. 案例分析设计冻结:对应 common 的“案例分析设计记录案例选择口径、分析步骤、证据要求、验收方式”。研报任务中的设计必须写清 `case_id/batch_id/run_id`、资料批次选择口径、是否属于同一长期案例、raw/converted/extracted/supplement/evidence/outputs/manifest/tmp/result/img 落点、三类视图输出、MySQL 或结构化记录、证据要求、缺口处理和 PASS/FAIL/HELD。 +6. 设计审核:对应 common 的“设计审核”。行业方案和案例设计未通过审核前,分析员不得进入正式研报读取、归档、转换、抽取或输出结论;只能做容器初始化、资料盘点或明确标注的 dry-run。 +7. 正式执行案例分析:对应 common 的“执行案例分析”。研报任务中的执行动作按已审核设计进行,顺序是:归档 raw 原始资料 -> 文件头识别和 hash -> 转换到 converted -> 分类到行业/子行业/公司/链条节点 -> 抽取事实、观点、指标候选、公司映射和缺口到 extracted/evidence -> 主动补公开资料和市场反向补漏到 supplement -> 必要时 darkline 分流 -> 建立证据数据卡和结论证据映射 -> 输出行业视图、市场视图、公司视图和必要扩展文档。 +8. 执行日志留痕:对应 common 的“案例执行日志记录候选、过程、关键数据、图片、结果”。研报任务中必须记录资料样本选择、batch/run、工具和参数、转换状态、抽取结果、补数来源、数据缺口、证据索引、输出路径、自检结果、偏离设计和处理方式;不能只写最终 summary。 +9. 结果包和证据包归档:对应 common 的“结果包 / 证据包归档”。行业级通用产物进入 `ana-data/cases/<行业案例>/raw|converted|extracted|supplement|evidence|manifest/`;案例级输出、引用清单和案例证据映射进入 `ana-data/cases/<行业案例>/<case_id>/outputs|manifest|evidence/`;临时文件、结果入口和图片分别进入父体系 `tmp/result/img`。 +10. 执行审核:对应 common 的“执行审核”。分析员提交执行审核前必须完成自检,确认来源、hash、manifest、证据链、三类视图、结果入口、缺口状态和结论边界可复核。执行审核未通过,不得标记完成或对外交付。 +11. 审计问题和问题记录分账:对应 common 的“审计报告记录审计问题 / 问题记录只承接需跨轮或跨角色闭环的问题”。审核员发现的问题主记录进 `案例审计报告.md`;分析员自发现且能处理的问题写入执行日志、自检、验证报告、manifest、缺口表或结果包;外部反馈、跨角色或跨轮闭环问题才进 `案例问题记录.md`。 +12. 修复、复审和回写:对应 common 的“修复 / 复审 -> 结论回写到案例总纲和案例设计”。分析员按审计意见修复行业方案、设计、存储路径、manifest、证据链、输出文档或结论边界;复审通过后回写父级总纲状态、行业设计执行结果、行业方案维护记录、结果入口和未关闭缺口。 + +上面 12 步是分析员必须执行的主流程。下面是这个主流程拆开的具体工作流和配套规范,分析员按任务类型选择对应流程执行,不需要再自行拼接 common 流程和研报流程。 + +### 5.1 新行业首次接入流程 + +适用场景:第一次接到某个行业的研报任务,或者行业目录和行业方案还不存在。 + +1. 在父级 `案例总纲.md` 登记行业任务来源、目标、边界、初始状态和预期输出。 +2. 创建或确认 `ana-doc/<行业>案例/`,不得在行业目录内创建 `案例总纲.md`。 +3. 创建行业容器基础文档:`目录导读.md`、`案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md`。 +4. 创建 `<行业>研报解析方案.md`,先写清行业边界、核心变量、输出方案、专属表、存储落点、缺口清单和是否覆写流程。 +5. 在行业 `案例审计报告.md` 留下目录、继承关系和行业方案审核入口。 +6. 提交新行业容器创建审核和行业方案审核;审核通过前,只能做容器初始化、资料清点或 dry-run。 +7. 在父级 `目录导读.md` 登记新行业目录。 +8. 在行业 `案例分析设计.md` 写入容器初始化设计和验收标准。 +9. 在行业 `案例执行日志.md` 记录创建动作。 +10. 行业方案仍是模板、未审核或审核未通过时,不得进入正式研报读取、归档、转换、抽取、分析或结论输出。 + +### 5.2 研报分析流程 + +适用场景:行业容器和行业方案已存在,分析员接到一批研报、公告、网页、数据表或外部资料。 + +1. 在父级 `案例总纲.md` 确认真实案例已经登记;如果是同一长期研究目标的新资料输入,沿用同一个 `case_id`,用新的 `batch_id` 和 `run_id` 区分。 +2. 读取行业方案,确认本次资料属于该行业边界;不属于边界的资料进入排除说明或相邻行业 review,不得混入核心结论。 +3. 如果本次需要更新行业方案,先在 `<行业>研报解析方案.md` 写清变更原因、影响范围和维护记录,并提交行业方案复审;复审通过前,不得把新方案作为正式分析依据。 +4. 在行业 `案例分析设计.md` 冻结本次资料来源、样本范围、case/batch/run、执行步骤、证据要求、输出物、存储路径、darkline 触发边界和验收方式。 +5. 设计审核未通过前,不得正式归档、转换、抽取或输出结论;需要先盘点资料时,必须标记为 dry-run。 +6. 按已审核设计执行研报分析:先归档和转换资料,再抽取事实、观点、指标、公司映射、产业链节点和资料缺口。 +7. 对关键指标、公司映射、产业链环节、供需价格库存成本等变量建立证据数据卡;缺少核心数据时进入缺口状态,不得直接写强结论。 +8. 单篇研报不能只做摘要,必须记录 doc_id、页码或段落定位、句子/表格索引、时间、单位、口径、对象归属、事实句、指标句、观点句、公司映射、风险句和置信度。 +9. 批量研报不能压成一个大摘要,必须按 batch 输出或更新 `input_manifest.csv`、`conversion_status.csv`、`evidence_fact_table.csv`、`classification_summary.csv`、`unresolved_data_gap.csv`、`source_gap_audit.csv`、`batch_summary.md`、`next_action_list.csv` 或等价结构化记录。 +10. 多篇资料之间存在支持、反对、重复观点或口径冲突时,优先分账记录冲突和证据来源,不得强行合并成单一结论。 +11. 需要公开资料补充、公告补证、市场反向补漏、新闻事件或暗线判断时,使用 `darkline` 或对应外部信息方法,并把补充来源、时间和置信度写入证据链;主动补数据按 5.4 执行,市场反向补漏按 5.5 执行,不能只写“已补漏”。 +12. 根据证据链形成行业视图、市场视图、公司视图和必要扩展文档;核心文档输出按 5.6 执行。 +13. 生成或更新行业级 manifest、案例级引用 manifest、验证报告和父体系 `result_index.md`。 +14. 在行业 `案例执行日志.md` 记录全过程、偏离、异常、自检和本轮结论边界。 +15. 提交执行审核;审核未通过前,不得对外交付或把案例标记完成。 + +### 5.3 研报资料归档和处理流程 + +适用场景:研报、公告、网页、数据表、图片、OCR 或外部资料进入项目,需要形成可复核证据链。 + +1. 原始研报、公告、网页快照和外部资料原件统一归档到 `ana-data/cases/<行业案例>/raw/`;raw 是行业统一池,不按 `case_id`、`batch_id` 或 `run_id` 拆分目录。 +2. raw 归档必须记录来源、取得时间、文件头识别、hash、原始文件名、规范化文件名、case_id、batch_id 和 run_id;重复文件不得覆盖,必须以 hash 或 manifest 说明关系。 +3. PDF、Office、网页、表格、图片或 OCR 资料转换到行业级 `converted/`,记录转换工具、参数、状态、异常和 raw 反查入口。 +4. 事实、观点、指标候选、公司映射、产业链节点、资料缺口和初步分类写入行业级 `extracted/` 或等价结构化记录。 +5. 公开资料补充、公告补证、市场反向补漏、新闻事件和暗线相关补充写入行业级 `supplement/`;凡需要网上补充消息或分析外部问题,必须使用 `darkline` 方法。 +6. 通用证据事实、来源定位、数据卡底座和 raw-to-converted trace 写入行业级 `evidence/`;案例结论证据映射写入案例级 `evidence/`。 +7. 正式人读输出、案例级引用清单和案例级 manifest 写入 `ana-data/cases/<行业案例>/<case_id>/outputs|manifest|evidence/`。 +8. 临时文件进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,结果入口或交付包索引进入 `ana-data/result/<行业案例>/<case_id>/`,图片、截图、OCR 图片或图册进入 `ana-data/img/<行业案例>/<case_id>/`。 +9. MySQL 或其他结构化记录必须能反查到 case_id、batch_id、run_id、raw、converted、evidence 和输出路径。 +10. 任何转换失败、OCR 失败、资料缺页、来源不明或证据不足,都必须记录状态和下一步处理,不得静默删除或跳过。 + +### 5.4 主动补数据和缺口审计流程 + +适用场景:研报、公告、网页、行情或外部资料已经产生初步抽取,但关键事实、指标、公司映射、投资读法或资料链路不足以支撑结论。 + +1. 出现以下情况必须主动补资料:关键数据缺失;研报只有结论没有支撑数据;提到关键资产、产能、订单、库存、价格、政策、客户认证但没有来源;提到受益公司但缺业务占比、利润弹性或资源/技术/渠道暴露;提到政策、出口管制、地缘风险但缺现实证据;提到技术壁垒、材料性能、客户认证、资产注入或整合但缺验证路径;投资读法需要判断当前股价或市场是否已经反映预期。 +2. 补资料前先把问题写入 `unresolved_data_gap.csv` 或等价结构化记录,至少记录缺什么、为什么缺、影响哪条结论、优先级、补资料问题、状态和责任 run。 +3. 需要联网、新闻公告、外部资料、事件链、证据链、市场显影或暗线判断时,必须使用 `darkline`;稳定事实优先补官方公告、交易所公告、政府数据、行业协会、交易所库存、海关统计、公司官网、投资者关系和可信公开资料。 +4. 补充资料必须归档到 `raw/` 或 `supplement/`,写入 `source_document`、manifest 或等价数据库记录,并抽取到 `evidence_fact`、指标、观点或公司映射。 +5. 补资料后必须回写原研报 readout、数据缺口、证据数据卡和结论强度;补不到的保持 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`,不得用故事或券商观点替代数据。 +6. 每批资料必须生成 `source_gap_audit.csv` 或等价记录,用来检查资料是否存在“已给但没读、读了但没归档、归档了但没索引、索引了但没进入证据链”的断点。 +7. 主动补数据和 source gap audit 是进入核心文档输出前的检查点;没有完成或没有明确豁免时,不得把人读文档写成覆盖完整。 + +### 5.4A 数据抓取脚本使用流程 + +适用场景:案例分析员需要抓取外部网页、保存公开资料快照、从本地 MySQL 导出行情/公司画像/市场广度,或执行市场反向补漏初筛。 + +1. 使用前先读取 `数据抓取脚本说明.md`,确认脚本用途、输入参数、输出落点和禁止事项。 +2. 使用脚本必须在行业 `案例分析设计.md` 中提前声明;如果执行中临时发现必须使用脚本,应先在执行日志记录偏离原因、影响范围和补救动作,并提交后续复审。 +3. 外部网页、新闻公告、事件链、市场显影或暗线相关抓取,必须同时使用 `darkline` 技能和信息拓扑方法;脚本只负责抓取和归档,不替代 darkline 分析。 +4. 本地 MySQL 导出必须只读,优先使用 `ana-data/tools/export_mysql_query.py` 或行业已审核的等价脚本;不得把数据库密码、token、cookie 或私有凭据写入命令、SQL、manifest 或文档。 +5. 市场反向补漏优先使用 `ana-data/tools/market_gap_scan_mysql.py` 从本地 `a_share_profile_snapshot` 和 `a_share_daily_price` 初筛,再按行业方案做核心业务重归因和 scope 闸门。 +6. 脚本输出必须进入行业 `supplement/`、`evidence/`、`manifest/` 或父体系 `tmp/result/img`;不得留在 `ana-data/tools/`,也不得散落到私人工作区。 +7. 执行日志必须记录脚本名、执行时间、case/batch/run、参数摘要、输出路径、manifest 路径、异常和自检结论;参数摘要不得包含密码。 +8. 脚本结果进入人读结论前,必须完成证据抽取、数据卡、来源时间戳、置信度和结论边界标记;抓取成功不等于证据成立。 + +### 5.5 市场反向补漏流程 + +适用场景:每批研报处理后、准备输出或更新行业视图/市场视图/公司视图前,或者任务需要判断行业覆盖完整性、公司覆盖完整性、市场显影、异动股票解释时。 + +1. 在行业 `案例分析设计.md` 声明本轮是否执行市场反向补漏;如果本轮只是容器初始化、纯转换、纯归档或明确不输出覆盖结论,可以写明不执行原因。 +2. 需要拉取行情、涨停、连续大涨、放量突破、逆行业上涨、相对强弱或资金持续显影数据时,必须使用 `darkline` 技能和对应外部信息方法,并记录数据来源、取得时间和口径。 +3. 默认扫描目标行业、主题或行业方案定义股票池的近 3 个月强显影股票清单;行业方案可以定义更适合该行业的窗口,但不能无记录跳过。 +4. 强显影至少检查:涨停或多次涨停、连续大涨、放量突破、逆行业上涨、明显强于同行、资金持续显影。 +5. 对每个强显影公司按核心业务重新归因,不能只按宽关键词、题材标签或研报覆盖标签归类。 +6. 每个对象必须过 `scope_type` 范围闸门:`CORE_INDUSTRY` 可进入核心补档队列;`ADJACENT_DOWNSTREAM` 进入相邻行业 review;`FALSE_THEME_OR_NOISE` 只保留审计记录,不得污染行业核心图谱。 +7. 对通过范围闸门的对象判断缺口类型:缺失子行业、缺失公司、缺失技术路线、缺失资源品种、缺失关键变量、缺失公司映射或题材噪声。 +8. 对 `CORE_INDUSTRY` 缺口写入补资料清单,补公告、年报、公司官网、交易所信息、行业公开资料和必要研报;补完后更新子行业清单、公司候选清单、核心变量、人读文档覆盖范围和证据链。 +9. 对 `ADJACENT_DOWNSTREAM` 只做相邻行业 review,不得直接并入当前行业核心结论;如确实影响当前行业,必须在行业方案或设计中说明边界变化并复审。 +10. 对 `FALSE_THEME_OR_NOISE` 只写排除原因和审计记录,不得因为股价强势就写入行业核心公司清单。 +11. 最低输出或等价记录包括:`market_manifestation_gap_audit.csv`、`market_manifestation_gap_priority.csv`、`market_manifestation_gap_summary.json` 或结构化表 `industry_analysis_market_manifestation_gap_audit`。 +12. 最低字段包括:`scan_id`、`industry_id`、`symbol`、`company_name`、`manifestation_date`、`manifestation_type`、`core_business_readout`、`scope_type`、`suspected_missing_track`、`gap_type`、`supplement_required_flag`、`supplement_question`、`review_status`。 +13. 市场反向补漏只用于发现资料缺口,不直接构成投资结论;补漏未完成前,不得把行业文档写成“主要公司已覆盖完整”或“主要赛道已覆盖完整”。 + +### 5.6 核心文档输出流程 + +适用场景:资料和证据已经达到人读文档输入条件,需要输出或更新核心文档。 + +1. 先检查证据是否足够支撑人读输出;只有 raw、converted 或 evidence extracted,不等于可以输出强结论。 +2. 输出前必须读取归档资料、结构化数据、未解决数据缺口、source_gap_audit 和市场反向补漏结果;市场反向补漏未执行时,必须说明适用性判断和设计依据。 +3. 输出必须围绕行业视图、市场视图、公司视图展开,细分行业、指标卡、公司深读、投资读法和暗线文档只是扩展产物。 +4. 写作和更新顺序从底层到总览:先更新结构化记录和证据数据卡,再更新子行业详细材料,再更新子行业总览,再更新公司文档,最后更新行业总览、市场总览和索引;最终交付仍以行业视图、市场视图、公司视图为上层入口。 +5. 成熟子行业、核心技术路线或核心公司在写强结论前必须有基础事实卡;事实卡应包含行业等价的市场规模、产销/供需、价格或收入/利润口径、库存或交付节奏、核心国家/区域/客户/公司、产业链位置和 A 股映射。某项不适用时写明不适用原因,不能静默省略。 +6. 每个重要结论必须包含来源、数据日期、历史比较、横向比较、结构占比或公司/链条案例、结论强度和失效条件。 +7. 关键变量和产业链流程必须用普通人能理解的语言解释,不能只给术语表、箭头图或标题式结论。 +8. 重要场景假设必须写影响映射:事件发生后影响哪些子行业、公司、价格、利润、订单、估值或情绪,并说明触发条件、失效条件和主要风险。 +9. 数据不足时必须降级为 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`,不得用券商观点或故事替代数据。 +10. 公司文档必须先给投资读法和当前状态,再展开业务结构、行业暴露、核心竞争力、证据链和风险。 +11. 市场反向补漏发现遗漏公司、子行业、资源品种、技术路线或关键变量时,先进入补资料和缺口流程;补完前不得写“覆盖完整”。 +12. 暗线、事件链、意图判断和市场显影假设必须单独分账,不能混入普通行业事实文档。 +13. 输出完成后,必须生成人读文档验收记录或等价验证说明,并能反查到证据、manifest 和原始资料。 +14. 核心文档完成后,必须提交输出审核或执行审核;审核通过前,不得对外交付,也不得把输出状态写成已完成。 + +### 5.7 审核后修复和回写流程 + +适用场景:设计审核、执行审核、复审或自检发现问题。 + +1. 审核员发现的问题主记录写入行业 `案例审计报告.md`;分析员不要把审计问题转写成问题记录来规避修复。 +2. 分析员自发现且本轮可处理的问题,写入执行日志、自检、验证报告、manifest、数据缺口表或结果包,并直接处理。 +3. 外部反馈、跨角色、跨轮或分析员无法自行闭环的问题,才写入行业 `案例问题记录.md`。 +4. 修复动作必须说明影响范围:行业方案、案例设计、执行日志、manifest、证据链、输出文档、存储路径或父级总纲。 +5. 如果修复改变流程、行业边界、核心变量、专属表或输出方案,必须回写 `<行业>研报解析方案.md`。 +6. 如果修复改变案例目标、状态、结论入口或完成状态,必须回写父级 `案例总纲.md`。 +7. 如果修复改变执行步骤、输入范围、证据要求或验收方式,必须回写行业 `案例分析设计.md` 并进入复审。 +8. 复审通过前,不得标记完成或对外交付。 + +### 5.8 审计触发规则 + +本项目口径是:方案类文件先审,设计先审,正式执行后审;任何影响行业边界、流程、证据、存储、输出或结论边界的变更必须复审。分析员遇到以下事项必须提交审核或复审: + +1. 新行业容器创建完成后,提交目录、继承关系和基础文档审核。 +2. `<行业>研报解析方案.md` 新建、从模板升格、重要优化,或变更行业边界、核心变量、输出方案、专属表、流程覆写、存储落点、缺口清单时,提交行业方案审核或复审。 +3. `案例分析设计.md` 新建,或变更资料范围、case/batch/run、执行步骤、证据要求、输出物、存储路径、darkline 触发边界或验收方式时,提交设计审核或复审。 +4. 正式资料归档、转换、抽取、补数、证据组织、核心文档输出或 manifest 归档完成后,提交执行审核。 +5. 核心文档准备对外交付、进入正式结果入口或回写完成状态前,必须通过输出审核或执行审核。 +6. 审计修复导致行业方案、案例设计、存储路径、证据链、输出文档、父级总纲或结论边界变化时,提交复审。 +7. 仅修改错别字、格式、链接显示等不影响流程、证据、存储、输出和结论边界的小修,可以记录在执行日志或维护记录中,不单独触发审核;审核员要求复审时除外。 +8. 管理端自检不能替代正式审核员审核。分析员可以先自检,但不能用自检结论冒充审核结论。 + +### 5.9 过程状态口径 + +1. `RAW_REGISTERED` / `RAW_ARCHIVED` 只表示原始资料已登记或归档,不表示已经分析。 +2. `TEXT_CONVERTED` 只表示资料完成转换,不表示已经抽取事实或指标。 +3. `CLASSIFIED` / `EVIDENCE_EXTRACTED` 只表示完成分类或证据抽取,不表示可以写强结论。 +4. `METRIC_NORMALIZED` 只表示指标标准化,不表示投资读法成立。 +5. `SUPPLEMENT_REQUIRED` 表示必须补资料;补资料完成前不得把缺口写成结论。 +6. `HUMAN_DOC_INPUT_READY` 只表示可以进入人读文档输出,不等于人读文档完成。 +7. `HUMAN_DOC_READY` 只表示人读文档完成,不等于执行审核通过。 +8. `HELD`、`HELD_BY_DATA_GAP`、`HELD_BY_EVIDENCE_GAP` 必须写清卡点、影响范围和下一步补救动作。 + +必须保留的 ana 流程底线: + +1. 来源可追踪。 +2. 总纲先登记。 +3. 设计先冻结。 +4. 设计先审核。 +5. 执行全留痕。 +6. 证据可复核。 +7. 结果包和 manifest 归档。 +8. 执行后审核。 +9. 问题有闭环。 +10. 结论不过读。 + +必须保留的研报专业底线: + +1. 接到新行业研报任务后,先创建或更新 `<行业>研报解析方案.md`。 +2. 行业方案必须继承 `研报解析架构.md`、`研报分析架构.md` 和父级 `案例存储体系.md`,并通过行业方案审核后才能支撑正式研报分析。 +3. 原始研报和外部资料必须进入行业统一 raw 池 `ana-data/cases/<行业案例>/raw/`;不得进入 `ana-data/cases/<行业案例>/<case_id>/raw/`,也不得按 batch 或 run 拆 raw 目录。 +4. 转换结果进入行业级 `converted/`,抽取结果进入行业级 `extracted/`,补充资料进入行业级 `supplement/`,通用证据事实进入行业级 `evidence/`,清单进入行业级 `manifest/`。 +5. 正式人读输出、案例级引用清单和案例结论证据映射进入 `ana-data/cases/<行业案例>/<case_id>/`;临时文件进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,结果入口或交付包索引进入 `ana-data/result/<行业案例>/<case_id>/`,图片进入 `ana-data/img/<行业案例>/<case_id>/`。 +6. 人读核心输出应围绕行业视图、市场视图、公司视图展开。 +7. 可复用结构化事实、指标、公司映射和索引可以进入 MySQL,但必须能反查到案例 ID 和文件路径。 +8. 暗线、事件链和市场显影内容必须按对应规则分离,不得混入普通行业事实。 +9. 每批正式研报处理后,凡准备输出覆盖性结论、公司清单、行业/市场/公司视图或投资读法,都必须执行或明确豁免市场反向补漏;补漏口径按 5.5 执行。 + +行业方案最低内容: + +1. 行业边界:本行业包含什么、不包含什么,哪些相邻行业需要单独 review。 +2. 核心变量:资源、技术、政策、需求、价格、库存、成本、金融属性、客户认证或其他主导变量。 +3. 输出方案:行业视图、市场视图、公司视图的文档结构和扩展文档清单。 +4. 专属表:本行业需要的行业专属表或文件型清单,以及字段含义、证据入口和复用边界。 +5. 存储落点:行业级 `raw/converted/extracted/supplement/evidence/manifest/`,案例级 `outputs/manifest/evidence/`,父体系 `tmp/result/img/`。 +6. 流程覆写:如果本行业不用母版默认流程,必须写清自己的流程、输入输出和审核点;不得取消父级总纲、设计审核、执行日志、执行审核和结论回写。 +7. 缺口清单:当前缺哪些资料、指标、公司映射、外部信息或市场显影检查。 +8. 市场反向补漏口径:目标股票池、默认时间窗口、强显影定义、scope 闸门、补资料队列和排除口径。 +9. 维护记录:每次正式批次或重要方案变化必须回写原因、影响范围和审核入口。 + +## 6. 新行业研报容器创建流程 + +创建新的行业研报研究方向时,案例分析员必须在 `ana-doc/` 下创建独立行业容器目录。行业容器不是一个案例,不在行业目录内创建 `案例总纲.md`;真实案例统一登记在父级 `ana-doc/案例总纲.md`。 ```text ana-doc/有色案例/ ana-doc/机器人案例/ +ana-doc/半导体案例/ ``` 每个行业案例目录根目录至少包含: @@ -63,21 +283,103 @@ 2. `案例分析规范.md` 3. `案例审核规范.md` 4. `案例存储体系.md` -5. `案例总纲.md` -6. `案例分析设计.md` -7. `案例执行日志.md` -8. `案例审计报告.md` -9. `案例问题记录.md` +5. `案例分析设计.md` +6. `案例执行日志.md` +7. `案例审计报告.md` +8. `案例问题记录.md` +9. `<行业>研报解析方案.md` -其中,行业目录内的 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 必须以本层 `ana-doc/` 的同名文档为母版,只记录行业或研究案例的本地补充,不得削弱父级规范。 +创建步骤: -行业目录内的 `案例总纲.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md` 作为该行业案例自己的运行账本独立维护,不需要复制父级账本内容。 +1. 确定行业名称、行业缩写、研究边界和案例目录名。 +2. 创建 `ana-doc/<行业>案例/`。 +3. 创建 8 个行业容器基础文档和 `<行业>研报解析方案.md`,不得在行业目录内创建 `案例总纲.md`。 +4. 行业目录内的 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 必须声明继承父级同名文档,只记录行业补充,不得削弱父级规范;没有真实行业自定义时应保持轻量,不复制父级主流程和审核流程。 +5. 行业目录内的 `案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md`、`案例问题记录.md` 作为该行业容器自己的事项、执行、审核和问题账本独立维护,不复制父级账本内容。 +6. 在父级 `目录导读.md` 登记行业案例目录。 +7. 按 `案例存储体系.md` 创建或使用行业数据目录 `ana-data/cases/<行业案例>/`、行业统一 raw 池、行业级通用产物目录和逐案例结果目录 `ana-data/cases/<行业案例>/<case_id>/`;逐案例目录不得包含 raw、converted、extracted、supplement 等通用资料库目录。 +8. 新行业目录创建完成后,应接受一次目录和继承关系审核。 -研报类行业案例还应在行业目录内创建行业研报解析方案,例如 `有色研报解析方案.md`、`机器人研报解析方案.md`。该方案继承研报解析、分析和存储母版,用于记录本行业的分析范围、核心变量、输出文档和行业专属表。 +行业案例命名规则: -## 7. 禁止事项 +1. 行业案例目录:`<行业名>案例/`。 +2. 行业研报解析方案:`<行业名>研报解析方案.md`。 +3. 案例 ID:`ANA-<行业缩写>-<YYYYMMDD>-<三位序号>`。 +4. 行业通用数据目录:`ana-data/cases/<行业名>案例/raw|converted|extracted|supplement|evidence|manifest/`。 +5. 案例目录:`ana-data/cases/<行业名>案例/<case_id>/`,只保存该案例的 outputs、引用 manifest 和案例证据映射。 +6. 父体系兼容目录:临时文件使用 `ana-data/tmp/<行业名>案例/<case_id>/<run_id>/`,结果入口或交付包索引使用 `ana-data/result/<行业名>案例/<case_id>/`,图片使用 `ana-data/img/<行业名>案例/<case_id>/`。 +7. raw 目录:固定为 `ana-data/cases/<行业名>案例/raw/`,所有案例共享同一个行业 raw 池。 +8. 行业缩写由行业方案首次创建时确定,并写入行业目录 `目录导读.md` 或 `<行业名>研报解析方案.md`。 -1. 不得把其他项目的业务结论、样本、图片或结果包复制为本项目正式案例。 -2. 不得绕过 `案例分析设计.md` 直接把执行结果标为完成。 -3. 不得把 `ana-data/tmp/` 当正式证据入口。 -4. 不得把未经证据支持的猜测写成结论;证据不足时应标记 `HELD_BY_EVIDENCE_GAP`。 +## 7. 行业子规范优先级和记录落点 + +行业目录内的 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 是行业子规范,必须以父级 `ana-doc/` 同名文档为母版。 + +行业子规范默认是继承入口,不是第二套母版。没有经过设计审核确认的行业自定义时,行业 `案例分析规范.md` 和 `案例审核规范.md` 应只保留继承关系、行业方案入口、当前自定义状态和少量行业补充检查;通用流程、阶段门、审核类型、存储分流和问题闭环规则统一写在父级 `ana-doc/` 母版中。 + +优先级规则: + +1. 父级 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 是第一遵守原则。 +2. 行业子规范可以细化行业流程、字段、输出物、样本选择和专属表。 +3. 除流程细化外,行业子规范不得与父级母版冲突。 +4. 如果行业方案定义了自己的研报专业流程,执行时按行业方案流程走;但不得取消父级总纲登记、设计冻结、设计审核、执行日志、证据包、执行审核、问题闭环和结论回写。 +5. 如果发现父级母版和行业子规范冲突,先按父级母版执行,并把冲突点提交人类确认。 +6. 行业专业变量、行业专属表、行业输出拆分和行业缺口清单,优先写入 `<行业>研报解析方案.md` 和行业 `案例分析设计.md`;只有需要长期覆盖所有该行业案例的规则,才写入行业子规范。 + +记录落点规则: + +1. 行业案例 ID、研究目标、边界、状态和结论入口,写入父级 `案例总纲.md`;父级总纲是唯一案例总账。 +2. 行业案例的事项拆解、批次设计、执行步骤、证据要求、输出物和验收方式,写入行业目录 `案例分析设计.md`。同一行业整体研报分析原则上是一个长期案例;分批读取资料使用 `batch_id` 和 `run_id` 区分,不因为每次 30 份资料而新建案例。 +3. 行业案例实际执行过程、资料读取、转换、抽取、补充、异常和证据路径,写入行业目录 `案例执行日志.md`;通用产物路径应指向行业级数据目录,案例自定义输出指向 `<case_id>/`。 +4. 行业案例设计审核、执行审核、复审和审计问题,写入行业目录 `案例审计报告.md`。 +5. 用户、外部 AI、人工同事等非执行责任人反馈的问题,或执行者无法自行闭环、需要跨轮/跨角色跟踪的事项,写入行业目录 `案例问题记录.md`。执行者自发现且能在本轮或本案例内处理的问题,写入行业目录 `案例执行日志.md`、自检、验证报告、manifest、数据缺口表或结果包,不写入问题记录。 +6. 行业研报分析范围、核心变量、输出方案和行业专属表定义,写入 `<行业>研报解析方案.md`。 +7. 父级 `ana-doc/` 记录体系级规则、跨行业规则、目录入口、父级案例总账和跨行业问题;不得承接单个行业的普通执行明细。 + +## 8. 外部信息补充和 darkline 使用口径 + +凡是在研报案例流程中需要去网上补充消息、收集外部信息、分析新闻公告、分析事件链、分析证据链、检查市场显影、判断暗线或解释异常市场表现,都必须使用 `darkline` 技能和 darkline 信息拓扑方法。 + +适用场景包括: + +1. 研报缺少关键事实,需要通过公开资料补充。 +2. 需要读取新闻、公告、政策、网页、交易所文件、监管文件或公司公开资料。 +3. 需要做市场反向补漏、强势标的排查、异动公司解释或假主题噪音排除。 +4. 需要判断事件链、证据链、意图、目标、组织行为或暗线。 +5. 需要把外部信息和 K 线显影、成交量、题材表现、公司异动联系起来。 + +执行要求: + +1. 在 `案例分析设计.md` 中说明本次是否需要外部信息补充或 darkline 分析。 +2. 在 `案例执行日志.md` 中记录使用 darkline 的任务模式、信息来源、关键节点、证据入口和结论边界。 +3. 网上补充资料进入 `supplement/`,证据链和来源定位进入 `evidence/`,来源清单进入 `manifest/`。 +4. darkline 结论必须描述意图、目标或行为链条;价格、库存、供需、估值或机制解释本身不能直接叫暗线。 +5. darkline 假设、事件链、市场显影和替代解释必须与普通行业事实分离记录。 + +## 9. 完成标准 + +研报类案例标记完成前至少满足: + +1. 行业目录、行业方案、父级总纲案例记录、行业设计、执行日志、审计报告和问题记录完整。 +2. 设计审核已通过。 +3. 原始研报和外部资料已进入行业统一 raw 池,且有 manifest 或等价清单;不存在逐案例、逐批次或逐 run 的 raw 原始资料目录。 +4. 行业级 raw、converted、extracted、supplement、evidence、manifest 路径清楚,案例级 outputs、引用 manifest、案例证据映射路径清楚,父体系 tmp/result/img 分流路径清楚。 +5. 行业视图、市场视图、公司视图或明确的 `HELD` 状态已经产出。 +6. 强结论能追溯到来源、数据日期、横向比较、历史比较、公司或链条案例。 +7. 可复用结构化数据如进入 MySQL,必须能反查案例 ID 和文件路径。 +8. 需要外部信息或暗线分析时,已按 `darkline` 规则留痕。 +9. 执行审核已通过;如有问题,已完成修复和复审,或明确暂缓原因。 + +## 10. 禁止事项 + +1. 不得把研报解析和研报分析方法全文拆散复制到多个规范、总纲、设计或日志里。 +2. 不得另建与 `案例存储体系.md` 平行的正式 `研报存储体系.md`。 +3. 不得把有色、矿区、某类资产或某个行业字段写成全行业通用要求。 +4. 不得把行业案例过程明细写回父级 `ana-doc/` 账本。 +5. 不得绕过 `案例分析设计.md` 或设计审核直接开始正式研报分析。 +6. 不得把 `tmp/` 当正式证据入口;不得把临时文件放回 `ana-data/cases/<行业案例>/<case_id>/`。 +7. 不得只采信券商结论,不拆事实、数据、假设、观点和证据。 +8. 不得把缺数据的观点写成确定结论;证据不足时应标记 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`。 +9. 不得把暗线、事件链和意图判断混入普通行业事实。 +10. 不得让研报结论绕过案例审核直接进入正式核心文档。 +11. 不得在行业容器目录内创建或维护平行的 `案例总纲.md`;真实案例必须登记到父级 `ana-doc/案例总纲.md`。 diff --git "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" index dcc6a84..0d8996b 100644 --- "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" +++ "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" @@ -1,17 +1,134 @@ -# 案例分析设计 +# 案例分析设计 -创建人员:management.admin -文件职责:记录 `project-info` 项目案例选择口径、执行步骤、证据要求、产物和验收方式。 -管理规范/模板:../../common/ana-doc/案例分析设计模版.md;../../common/ana-doc/案例分析环境创建指南.md。 -引用文件:案例分析规范.md;案例总纲.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。 +创建人员:management.admin +文件职责:记录 `project-info` 项目案例选择口径、执行步骤、证据要求、产物和验收方式。 +管理规范/模板:../../common/ana-doc/案例分析设计模版.md;../../common/ana-doc/案例分析环境创建指南.md。 +引用文件:案例分析规范.md;案例总纲.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。 记录方式:append-only 设计账本;每个案例设计追加到文件末尾,设计审核通过后才能执行正式案例。 -## 案例设计:ANA-SMOKE-001 +## 1. 当前设计总览 +| 设计 ID | 所属案例事项 | 目标 | 状态 | 设计审计 | +|---|---|---|---|---| +| `DESIGN-ANA-SMOKE-001` | `ANA-SMOKE-001` | 验证项目案例体系环境能从总纲追到设计、执行日志和审计报告 | 已记录,待审核员复核 | `AUDIT-ANA-SMOKE-001` | +| `DESIGN-ANA-REPORT-SYSTEM-20260625-001` | `ANA-REPORT-SYSTEM-20260625-001` | 将研报体系融入 `project-info/ana-doc` 案例体系 | 已执行,待审核员复核 | `AUDIT-ANA-REPORT-SYSTEM-20260625-001` | + +## 2. 设计记录模板 + +### <YYYY-MM-DD HH:mm:ss> <DESIGN-ID>:<设计标题> + +所属案例事项: +<ANA-ID / 名称> + +创建人员: +<创建人员> + +来源聊天记录: +```text +<粘贴关键聊天记录,或写明案例总纲中的来源位置> +``` + +目标对齐说明: +<说明本设计如何满足案例总纲目标;如有取舍,写明原因> + +案例选择口径: +<候选案例从哪里来,如何筛选,为什么这些案例代表当前目标> + +分析对象: +<股票 / 用户 / 模块 / 流程 / 事件 / 资料 / 其他> + +全流程步骤: + +1. <候选来源与候选池生成> +2. <具体案例选择> +3. <关键判断或操作步骤> +4. <结果记录> +5. <复盘与结论> + +逐案例执行流程: +```text +<写清每个案例实际执行时的证据链顺序> +``` + +执行流程冻结说明: +<说明设计审核通过后,执行员必须按上述流程执行;如需偏离,必须记录偏离原因并进入复审> + +证据要求: + +1. <每个案例必须保留哪些数据> +2. <每个关键判断必须指向什么证据> + +图片要求: +<如需要图片,说明标注要求;如不需要,说明替代证据> + +数据输出: +<case_index、case_step_trace、operation_ledger、image_manifest、summary 等> + +验收方式: +<如何判断本设计执行成功> + +未来函数 / 泄漏判断: +<是否需要防未来函数;如果不要求,写明原因> + +设计审计状态: +未审计 / 审计通过 / 审计不通过 / 暂缓 + +设计审计入口: +<案例审计报告.md 中 AUDIT-ID> + +执行日志入口: +<案例执行日志.md 中 LOG-ID> + +当前结论: +<当前设计是否可执行> + +## 3. 研报类设计补充模板 + +研报类案例除使用上方通用设计模板外,必须额外写清以下内容。没有这些字段,设计审核不得放行正式研报读取。 + +研报任务归属: + +| 字段 | 内容 | +|---|---| +| 父级案例 ID | <必须已登记父级 `案例总纲.md`> | +| 行业容器 | `ana-doc/<行业>案例/` | +| 行业方案 | `<行业>研报解析方案.md` | +| case_id | <长期案例或专题案例 ID> | +| batch_id | <本次输入批次,例如 BATCH-001;不等于新案例> | +| run_id | <本次执行轮次> | + +融合执行矩阵: + +| 阶段 | ana 控制点 | 研报专业动作 | 产物 / 路径 | 验收口径 | +|---|---|---|---|---| +| 来源和总纲 | 记录来源、目标、行业、边界 | 判断研报任务和行业范围 | 父级 `案例总纲.md` | 来源可追踪 | +| 行业方案 | 方法先成型 | 创建或更新行业方案 | `<行业>研报解析方案.md` | 方案不是模板 | +| 设计冻结 | 冻结输入、步骤、证据、输出 | 写清 batch/run、资料范围、存储落点、darkline 触发边界 | 行业 `案例分析设计.md` | 可指导执行 | +| 设计审核 | 审核通过才执行 | 审核方案和设计 | 行业 `案例审计报告.md` | 未通过不执行 | +| raw 归档 | 执行留痕从原始资料开始 | 原件入行业统一 raw 池,登记 hash、文件头和来源 | `ana-data/cases/<行业案例>/raw/`;行业 `manifest/` | raw 可追溯 | +| 转换抽取 | 过程证据可复核 | 转换、抽取事实/观点/指标/公司映射/缺口 | 行业 `converted/`、`extracted/` | 不只读不归档 | +| 补数分流 | 缺口不过读 | 公开资料补充、市场反向补漏、darkline 分流 | 行业 `supplement/`、`evidence/` | 缺口和暗线分账 | +| 证据数据卡 | 关键判断有证据 | 数据卡、来源定位、结论证据映射 | 行业和案例级 `evidence/` | 强结论可复核 | +| 人读输出 | 结果包归档 | 行业视图、市场视图、公司视图和扩展输出 | 案例级 `outputs/` | 三类视图不缺失 | +| 归档自检 | 全流程留痕 | manifest、验证报告、tmp/result/img 分流 | 行业/案例 `manifest/`;父体系 `tmp/result/img` | 路径可打开 | +| 执行审核和回写 | 审核、修复、复审 | 审计问题修复,回写总纲、设计、行业方案 | 审计报告;父级总纲;行业方案维护记录 | 未复审不交付 | + +数据和状态要求: + +1. 每个输入资料必须有来源、原始路径、归档路径、hash 或等价校验。 +2. `source_document`、`artifact_manifest`、`conversion_status`、`evidence_index` 或等价记录必须包含 `case_id`、`batch_id`、`run_id`。 +3. 缺核心数据时必须写 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`,不能用文字推理绕过。 +4. 需要网上补充、外部信息、新闻公告、市场显影或暗线分析时,必须在设计里声明使用 `darkline` 技能。 + +## 2026-06-25 20:55:00 DESIGN-ANA-SMOKE-001:案例体系初始化 dry-run 设计 + +- 设计 ID:DESIGN-ANA-SMOKE-001 - 所属案例:ANA-SMOKE-001 / 案例体系初始化 dry-run - 设计人员:management.admin - 创建时间:2026-06-25T20:55:00+08:00 - 当前状态:待审核员复核 +- 设计审计入口:`AUDIT-ANA-SMOKE-001` +- 执行日志入口:`RUN-ANA-SMOKE-001` ### 目标和边界 @@ -31,3 +148,43 @@ - PASS:上述检查项全部满足,且审核员确认没有旧项目业务内容混入。 - FAIL:基础文档缺失、目录缺失、规范冲突、审计入口错误或混入其他项目结论。 - HELD:需要人类确认项目范围或审核员无法读取必要文档。 + +## 2026-06-25 21:30:00 DESIGN-ANA-REPORT-SYSTEM-20260625-001:研报体系接入 ana-doc 设计 + +- 设计 ID:DESIGN-ANA-REPORT-SYSTEM-20260625-001 +- 所属案例:ANA-REPORT-SYSTEM-20260625-001 / 研报体系接入 ana-doc +- 设计人员:Codex +- 创建时间:2026-06-25 +- 当前状态:已按人类确认方案执行,待审核员复核 +- 设计审计入口:`AUDIT-ANA-REPORT-SYSTEM-20260625-001` +- 执行日志入口:`RUN-ANA-REPORT-SYSTEM-20260625-001` + +### 目标和边界 + +- 目标:把现有研报体系融入 `project-info/ana-doc` 案例体系,使后续行业研报研究可以按案例总纲、分析设计、执行日志、审计报告、问题记录和统一存储体系运行。 +- 边界:不执行真实研报读取,不迁移历史有色资料,不产出行业结论,不修改 common 母版。 + +### 执行范围 + +1. 创建 `ana-doc/研报体系/`,迁入 `研报解析架构.md` 和 `研报分析架构.md`。 +2. 不迁入独立 `研报存储体系.md`;将研报存储规则融入 `ana-doc/案例存储体系.md`。 +3. 更新父级 `案例分析规范.md`,写入研报体系接入流程、新行业创建流程、行业子规范优先级、记录落点和 darkline 使用口径。 +4. 更新父级 `案例审核规范.md`,写入研报案例审核清单、阻断项和证据抽查方法。 +5. 更新父级 `目录导读.md`,登记研报体系方法母版、行业案例目录和数据目录。 +6. 同步 `ana-doc/有色案例/` 子规范和 `有色研报解析方案.md`,删除旧 mirror 临时路径和独立研报存储母版引用。 +7. 创建 `ana-data/cases/有色案例/` 空目录入口。 + +### 验收方式 + +1. 父级 `ana-doc/研报体系/` 下只有 `研报解析架构.md`、`研报分析架构.md` 两份方法母版。 +2. 父级 `案例存储体系.md` 包含研报 `raw/converted/extracted/supplement/evidence/outputs/manifest/tmp` 目录规则。 +3. 父级 `案例分析规范.md` 能说明新行业案例如何创建、行业方案如何继承、过程记录落到哪里。 +4. 父级 `案例审核规范.md` 能支持审核员发现研报案例的流程、证据、存储、输出和结论问题。 +5. `有色案例/` 子规范不再引用旧 mirror 路径或独立 `研报存储体系.md` 作为正式执行入口。 +6. 未把有色、矿区等行业专属对象写成通用存储要求。 + +### PASS / FAIL / HELD + +- PASS:上述验收全部满足,且审核员确认未产生父级规范冲突。 +- FAIL:仍存在旧路径作为正式入口、平行存储母版、父子规范冲突、行业专属对象被写成通用规则,或审核链路缺失。 +- HELD:需要人类确认父级规则和行业子规则冲突点。 diff --git "a/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" index 603d59c..9890ece 100644 --- "a/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" +++ "b/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" @@ -1,42 +1,549 @@ -# 案例存储体系 +# 案例存储体系 -创建人员:management.admin -文件职责:记录 `project-info` 项目案例分析体系的数据、证据、图片、结果包和临时文件存储位置。 -管理规范/模板:../../common/ana-doc/案例存储体系创建指南.md;../../common/ana-doc/案例分析环境创建指南.md。 -引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md。 -记录方式:存储体系入口;目录、表结构或结果包口径变化时维护更新。 +创建人员:management.admin +文件职责:记录 `project-info` 项目案例分析体系的数据、证据、研报资料、图片、结果包、MySQL 追溯和临时文件存储位置。 +管理规范/模板:../../common/ana-doc/案例存储体系创建指南.md;../../common/ana-doc/案例分析环境创建指南.md。 +引用文件:案例分析规范.md;案例审核规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;研报体系/研报解析架构.md;研报体系/研报分析架构.md。 +记录方式:存储体系入口;目录、表结构、结果包口径、研报归档口径或 MySQL 追溯规则变化时维护更新。 -## 1. 目录映射 +## 1. 基本原则 + +本文件是 `project-info` 的统一案例存储母版。研报存储规则已经融入本文件,不另建平行的正式 `研报存储体系.md`。 + +核心原则: + +1. 文件系统保存原文、转换产物、证据包、结果包和 manifest。 +2. MySQL 保存可复用结构化事实、指标、公司映射、标签和索引。 +3. 所有正式文件型产物必须进入行业数据根目录、案例目录或父体系 `result/img` 目录,不能散落在私有工作区。 +4. 所有可复核结论必须能追溯到原始资料、转换结果、抽取事实、补充资料、证据索引或数据卡。 +5. 通用存储体系只定义跨行业底座,不预设具体行业专属表。 +6. 具体行业需要哪些表、字段和对象,由该行业的 `<行业>研报解析方案.md` 或具体 `案例分析设计.md` 定义。 +7. 暗线产物与普通行业事实分离存储、分离验收。 +8. 临时文件统一进入父体系 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,只能保存可重建中间产物,不得作为正式证据入口。 +9. 所有行业的原始资料只进入行业统一 `raw/` 池,不按 case、batch 或 run 分散存放。 +10. 凡是研报通用产物,例如转换文本、通用抽取结果、通用证据事实、通用补充资料和行业级 manifest,统一进入行业数据根目录;逐案例目录只保存该案例自己的输出、引用清单和结论证据映射。 +11. 数据抓取、MySQL 只读导出和市场反向补漏脚本统一放在 `ana-data/tools/`;脚本输出仍必须按行业和案例落到 `cases/`、`tmp/`、`result/` 或 `img/`,不得留在工具目录。 + +## 2. 目录映射 | 路径 | 作用 | 状态 | |---|---|---| -| `../ana-data/cases/` | 案例级结构化数据、证据 manifest、readout 和逐案例材料 | 已创建 | -| `../ana-data/result/` | 正式结果包、汇总表、审计辅助输出 | 已创建 | -| `../ana-data/img/` | 案例图片、图册、标注图和图片 manifest | 已创建 | -| `../ana-data/tmp/` | 临时数据和中间文件,不得当正式结果 | 已创建 | +| `../ana-data/cases/` | 逐行业统一 raw 池、行业级通用研报产物,以及逐案例正式输出、引用清单和证据映射 | 已创建 | +| `../ana-data/result/` | 父体系结果入口、对外交付包、跨案例汇总结果包、审计辅助输出、父级汇总表 | 已创建 | +| `../ana-data/img/` | 图片、图册、研报截图、OCR 图片、标注图和图片 manifest | 已创建 | +| `../ana-data/tmp/` | 临时数据和中间文件,按行业、case、run 分组,不得当正式结果 | 已创建 | +| `../ana-data/tools/` | 数据抓取、外部来源归档、本地 MySQL 只读导出和市场反向补漏脚本;不是正式数据目录 | 已创建 | -项目内正式路径默认使用项目根目录相对路径,例如 `ana-data/result/ANA-YYYYMMDD-主题-001/manifest.json`。 - -## 2. 推荐结果包结构 +项目内正式路径默认使用项目根目录相对路径,例如: ```text -ana-data/result/<case_id>/ - manifest.json - summary.md - evidence_index.csv - readout.md - image_manifest.csv # 如涉及图片 +ana-data/cases/有色案例/manifest/artifact_manifest.csv ``` -`manifest.json` 至少记录结果包 ID、生成时间、输入入口、文件清单、行数或哈希摘要。`summary.md` 只写摘要、结论边界和证据入口;大段原文应放在 readout 或 evidence 文件中。 +`ana-data/tools/` 只保存可复用脚本和工具说明。脚本运行产生的网页快照、SQL、CSV、summary、manifest、市场反向补漏结果或错误记录,必须进入对应行业 `supplement/`、`evidence/`、`manifest/` 或父体系 `tmp/result/img`,不得把工具目录当作结果包、证据包或临时文件池。 -## 3. 外部信息和 K 线数据 +## 3. 研报类案例目录结构 -外部信息、研报、公告、新闻和网页内容只记录来源、采集时间、摘要和证据入口。K 线和市场数据优先引用全局数据文档、数据库查询口径、结果包路径或 manifest,不在窗口或文档中粘贴大体量数据。 +每个正式研报行业必须有自己的行业数据根目录。原始研报、公告、网页快照和外部资料原件统一进入行业 raw 池,这是所有行业通用硬规则,不能按每个 case、batch 或 run 分散存放: -## 4. 禁止事项 +```text +ana-data/cases/<行业案例>/raw/ +``` -1. 不得把 `ana-data/tmp/` 中的文件当作正式证据包。 -2. 不得只有结论 summary 而没有案例级证据索引。 -3. 图片作为证据时必须有 manifest 或等价索引。 -4. 不得把数据库密码、授权 token 或私有凭据写入结果包。 +例如: + +```text +ana-data/cases/有色案例/raw/ +ana-data/cases/机器人案例/raw/ +``` + +禁止创建或使用以下形式保存原始资料: + +```text +ana-data/cases/<行业案例>/<case_id>/raw/ +ana-data/cases/<行业案例>/<case_id>/<batch_id>/raw/ +ana-data/cases/<行业案例>/<case_id>/<run_id>/raw/ +``` + +每个正式研报行业必须有自己的行业级通用产物目录。凡是与具体研究目标无关、可被同一行业内多个案例复用的研报处理产物,都进入行业根目录: + +```text +ana-data/cases/<行业案例>/ + raw/ # 行业统一原始资料池 + converted/ # 行业通用 PDF 转文本、表格抽取、OCR、格式标准化结果 + extracted/ # 行业通用事实抽取、观点拆解、指标候选、公司映射、资料缺口 + supplement/ # 行业通用公开资料补充、市场反向补漏、缺口补证 + evidence/ # 行业通用证据事实、来源定位、raw-to-converted trace、数据卡底座 + manifest/ # 行业级文件清单、来源清单、转换状态、迁移清单、处理批次索引 +``` + +每个正式研报案例必须有自己的案例级目录。案例级目录只保存与该案例研究目标、输出和审核相关的自定义产物: + +```text +ana-data/cases/<行业案例>/<case_id>/ + outputs/ # 该案例的人读输出、行业/市场/公司视图、readout、对外版本 + manifest/ # 该案例引用了哪些行业级资料、batch/run、审核清单和结果包索引 + evidence/ # 该案例专属证据选择、结论到证据映射、审计抽样证据 +``` + +研报案例还必须兼容父体系默认目录。临时、结果索引和图片不放入逐案例资料目录,而是按以下路径分流: + +```text +ana-data/tmp/<行业案例>/<case_id>/<run_id>/ # 临时文件和可重建中间产物 +ana-data/result/<行业案例>/<case_id>/ # 结果入口、对外交付包、跨案例汇总索引 +ana-data/img/<行业案例>/<case_id>/ # 图片、图册、截图、OCR 图片和图片 manifest +``` + +目录职责: + +1. 行业统一 `raw/`:只存原始资料。所有研报、公告、网页保存件、外部报告、PDF、Word、PPT、Excel、压缩包原件都必须先进入 `ana-data/cases/<行业案例>/raw/`,并保持不可覆盖、不可改写。不同案例、batch 或 run 对 raw 的使用关系通过 manifest 绑定,不通过复制 raw 文件或创建逐案例 raw 目录实现。 +2. 行业级 `converted/`:存转换后的文本、表格、OCR、页面切分结果和格式标准化结果,不存人工结论。转换产物可被同一行业多个案例复用,通过 `case_id`、`batch_id`、`run_id` 和 doc_id 在 manifest 中绑定使用关系。 +3. 行业级 `extracted/`:存从资料中抽出的通用事实、指标候选、观点、公司映射、产业链节点、资料缺口和初步分类结果。 +4. 行业级 `supplement/`:存公开资料补充、公告补证、网页来源、市场反向补漏、补充数据和来源快照。 +5. 行业级 `evidence/`:存通用证据事实、证据索引、raw-to-converted trace、来源定位、数据卡底座。案例结论专属证据映射放入 `<case_id>/evidence/`。 +6. 行业级 `manifest/`:存行业级文件清单、来源清单、hash、生成时间、工具参数、处理批次、版本索引和迁移清单。 +7. 案例级 `outputs/`:存该案例正式输出文档和结果表,包括行业视图、市场视图、公司视图、细分行业文档、公司文档、投资读法、对外可读版本。 +8. 案例级 `manifest/`:存该案例引用了哪些行业级资料、哪些 batch/run、哪些输出和审核清单;不得复制替代行业级通用 manifest。 +9. 案例级 `evidence/`:只存该案例结论到证据的选择、引用、裁剪和审计抽样,不替代行业级通用证据事实。 +10. 父体系 `tmp/`:存该案例该 run 的临时文件、转换缓存、调试中间件和可重建草稿;不得作为正式证据、正式结果或审核入口。 +11. 父体系 `result/`:存该案例的结果入口、对外交付包、父级汇总索引和跨案例汇总表;可以引用 `cases/<行业案例>/<case_id>/outputs/`,但不能替代证据链。 +12. 父体系 `img/`:存该案例产生或引用的图片、截图、OCR 图片、标注图和图片 manifest;图片被结论引用时必须在 manifest 或证据映射中登记。 + +## 4. Manifest 和文件登记 + +所有原始文件和正式产物都必须进入 manifest 或等价数据库记录。 + +最低字段: + +```text +artifact_id +case_id +batch_id +run_id +artifact_type +industry_case +industry_id +subindustry_id +company_id +logical_path +relative_path +absolute_path +file_name +file_ext +file_size +sha256 +source_doc_id +source_url +source_collected_at +raw_pool_path +artifact_status +created_at +``` + +`artifact_type` 建议枚举: + +```text +RAW_DOCUMENT +CONVERTED_TEXT +CONVERTED_MARKDOWN +CONVERTED_TABLE +EXTRACTED_FACT +EXTRACTED_METRIC +SUPPLEMENT_SOURCE +EVIDENCE_INDEX +DATA_CARD +REPORT_MARKDOWN +OUTPUT_TABLE +PACKAGE +MANIFEST +``` + +文件类型识别必须记录: + +```text +source_file_name +detected_type +archive_file_name +extension_added_by_archive_flag +extension_mismatch_flag +``` + +PDF、Office、网页、压缩包等资料不得只按扩展名判断。文件头为 `%PDF` 才按 PDF 处理;文件头为 `PK` 的 Office/zip 文件,即使扩展名写成 `.pdf`,也必须按 Office XML 或压缩包路径处理。 + +## 5. 状态口径 + +核心文件、资料、批次和结构化记录建议具备: + +```text +created_at +updated_at +source_snapshot_id +schema_version +data_status +processing_status +``` + +`data_status` 建议枚举: + +```text +READY +REVIEW +DATA_PARTIAL +MECHANISM_ONLY +HELD_BY_DATA_GAP +DEPRECATED +ERROR +``` + +`processing_status` 建议枚举: + +```text +RAW_REGISTERED +RAW_ARCHIVED +TEXT_CONVERTED +CLASSIFIED +EVIDENCE_EXTRACTED +METRIC_NORMALIZED +SUPPLEMENT_REQUIRED +SUPPLEMENT_ARCHIVED +HUMAN_DOC_INPUT_READY +HUMAN_DOC_READY +HELD_BY_DATA_GAP +ERROR +``` + +状态边界: + +1. `EVIDENCE_EXTRACTED` 不等于指标已标准化。 +2. `METRIC_NORMALIZED` 不等于投资结论成立。 +3. `HUMAN_DOC_INPUT_READY` 只表示可以进入人读文档输出。 +4. `HUMAN_DOC_READY` 只能由人读文档输出和验收流程写出。 +5. 缺核心数据时,必须使用 `SUPPLEMENT_REQUIRED`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_DATA_GAP`。 + +## 6. 通用结构化数据底座 + +MySQL 或等价结构化存储可维护以下跨行业通用对象。表名可以按项目实际数据库规范调整,但字段含义和追溯关系不能丢。 + +### 6.1 来源文档 + +用途:记录每篇研报、文章、公告、网页和数据表。 + +最低字段: + +```text +doc_id +case_id +doc_type +title +source_org +author +publish_date +collected_at +source_url +raw_file_path +converted_text_path +converted_markdown_path +file_sha256 +source_language +industry_id +subindustry_id +company_id +batch_id +run_id +doc_status +processing_status +``` + +### 6.2 证据事实中间层 + +用途:记录从资料中抽取的证据句、事实句、观点句和指标候选。它是原文和标准化指标之间的中间层。 + +最低字段: + +```text +evidence_fact_id +case_id +doc_id +industry_id +subindustry_id +company_id +source_text_path +source_page +source_table_id +source_sentence_index +evidence_text +evidence_type +business_dimension +numeric_value_raw +metric_candidate_name +metric_candidate_unit +metric_period +metric_date +chain_node_id +related_company_id +viewpoint_id +darkline_signal_flag +confidence_level +normalization_status +processing_status +data_status +``` + +`evidence_type` 建议枚举: + +```text +FACT_SENTENCE +METRIC_CANDIDATE +COMPANY_EVIDENCE +CHAIN_EVIDENCE +VIEWPOINT_EVIDENCE +DARKLINE_SIGNAL +DATA_GAP_EVIDENCE +``` + +### 6.3 通用指标、观点和读法 + +通用结构化数据至少应覆盖: + +1. 行业 / 子行业基础对象。 +2. 公司基础对象。 +3. 公司与行业关系。 +4. 产业链节点。 +5. 市场指标。 +6. 公司指标。 +7. 研报观点。 +8. 投资读法。 +9. 数据缺口。 +10. 转换状态。 +11. 来源缺口审计。 +12. 市场反向补漏审计。 +13. 人读文档验收回执。 + +这些结构化记录不得只保存结论。每条关键记录必须能追溯到 `case_id`、`source_document`、`evidence_fact`、文件路径和必要的 hash 或来源快照。 + +市场反向补漏产物按以下规则落点: + +1. 近 3 个月强显影股票清单、涨停/连续大涨/放量突破/逆行业上涨扫描结果、行情来源说明和外部数据快照,进入行业级 `supplement/`,并在行业级 `manifest/` 登记来源、取得时间、口径和 hash 或等价摘要。 +2. 公司核心业务重归因、`scope_type` 范围闸门、缺失子行业/公司/关键变量判断和排除理由,进入行业级 `evidence/` 或结构化表 `industry_analysis_market_manifestation_gap_audit`。 +3. `market_manifestation_gap_audit.csv`、`market_manifestation_gap_priority.csv`、`market_manifestation_gap_summary.json` 或等价结构化记录,进入行业级 `manifest/` 或 `supplement/`;如果某个正式案例引用这些补漏结果,再在案例级 `<case_id>/manifest/` 和 `<case_id>/evidence/` 记录引用关系。 +4. 市场反向补漏只保存缺口发现、补资料问题和审计结论,不保存未经证据验证的投资结论。 + +## 7. 行业专属扩展表 + +通用存储体系不定义任何具体行业的专属表。 + +具体行业可以在自己的 `<行业>研报解析方案.md` 或具体 `案例分析设计.md` 中定义扩展表,例如: + +```text +关键资产 +关键产能 +技术路线 +产品型号 +项目管线 +客户认证 +渠道结构 +政策资质 +专利 / 工艺 / 算法 +行业特有供给、需求、库存或价格结构 +``` + +每个行业扩展表必须说明: + +```text +table_name +purpose +适用行业和子行业 +对象定义 +最低字段 +唯一键 +与 source_document / evidence_fact / artifact_manifest 的追溯关系 +是否进入人读文档 +验收标准 +``` + +规则: + +1. 行业扩展表不能替代来源文档、manifest 和证据事实中间层。 +2. 扩展表中的每条关键记录必须能追溯到原始资料或证据句。 +3. 如果一个字段只对某个行业有效,不要写进通用表。 +4. 行业扩展表要先在行业方案或案例设计中定义,再进入正式执行和审核。 + +## 8. 暗线与外部信息存储 + +暗线产物必须和普通产业链、市场指标、公司事实分账。 + +外部信息补充和 darkline 相关产物落点: + +1. 外部原件、网页快照、公告原件:`raw/` 或 `supplement/`,按是否原始输入区分。 +2. 外部资料补充摘要、来源清单、网页抓取结果:`supplement/`。 +3. 事件链、证据链、市场显影和替代解释:`evidence/`。 +4. 暗线假设、应有之线、市场输出和反证:单独文件或结构化表,并在 `manifest/` 登记。 +5. 面向人的暗线文档:`outputs/`,不得混入普通行业事实文档。 + +暗线结构化记录至少能表达: + +```text +darkline_id +case_id +industry_id +subindustry_id +company_id +darkline_title +hypothesis_text +intention_actor +intention_goal +initial_signal_doc_ids_json +expected_line_summary +market_output_summary +confidence_level +alternative_explanation +darkline_status +report_path +``` + +## 9. 结果包和人读文档 + +逐案例正式输出优先进入: + +```text +ana-data/cases/<行业案例>/<case_id>/outputs/ +``` + +逐案例结果包至少包含: + +```text +summary.md +readout.md +case_input_manifest.csv +case_evidence_map.csv +human_doc_validation_receipt.csv +``` + +阶段性批量研报分析还必须输出或更新: + +```text +batch_summary.md +input_manifest.csv +output_manifest.csv +conversion_status.csv +evidence_fact_table.csv +classification_summary.csv +unresolved_data_gap.csv +source_gap_audit.csv +next_action_list.csv +``` + +这些批量产物优先进入案例级 `outputs/` 或 `manifest/`;其中 evidence、缺口、source gap 和结论证据映射如果被正式结论引用,还必须在案例级 `evidence/` 或行业级 `evidence/` 留下可追溯记录。不能只把批量产物放在 `tmp/`。 + +研报批量读取时,行业级 manifest、source_document、conversion_status、artifact_manifest 和 evidence_index 必须保留: + +```text +case_id +batch_id +run_id +raw_pool_path +raw_file_sha256 +``` + +同一案例多次读取资料时,使用 `batch_id` 区分输入批次,例如 `BATCH-001`、`BATCH-002`;使用 `run_id` 区分实际执行轮次。是否属于同一个案例由研究目标决定,不由每次 30 份文件的数量决定。 + +无论同一案例被分几批读取,raw 文件的物理落点仍然是 `ana-data/cases/<行业案例>/raw/`;`batch_id` 和 `run_id` 只能写在 manifest、source_document、conversion_status、evidence_index 或数据库记录中,不能通过拆 raw 目录表达。 + +同一案例分多批读取时,转换文本、通用抽取结果、通用证据事实和行业级 manifest 的物理落点仍然是行业级 `converted/`、`extracted/`、`evidence/`、`manifest/`。案例级 `<case_id>/manifest/` 只记录本案例引用了哪些行业级资料和批次,不复制一份通用资料库。 + +如涉及图片或图册,应包含: + +```text +image_manifest.csv +``` + +逐案例输出完成后,必须在父体系结果目录建立结果入口或交付包索引: + +```text +ana-data/result/<行业案例>/<case_id>/result_index.md +``` + +`ana-data/result/` 承接父体系默认结果入口、跨案例汇总、父级汇总、审计辅助输出或项目级打包;它不替代逐案例 `outputs/` 的详细输出和证据链,但审核员和外部读取者可以从这里进入结果包。 + +研报处理涉及图片、截图、图册、OCR 图片或标注图时,必须进入父体系图片目录: + +```text +ana-data/img/<行业案例>/<case_id>/ +``` + +人读核心输出应至少围绕三类视图展开: + +1. 行业视图。 +2. 市场视图。 +3. 公司视图。 + +细分行业文档、公司文档、投资读法、暗线文档、数据表和对外版本是上述三类视图的展开,不替代三类顶层视图。 + +## 10. 追溯链路 + +正式结论必须能走通: + +```text +人读结论 +-> investment_readout / report_viewpoint / market_metric / company_metric / 行业扩展表 +-> evidence_fact +-> source_document +-> artifact_manifest +-> raw_file_path + sha256 +``` + +反向也要能走通: + +```text +raw 文件 +-> source_document +-> converted 产物 +-> evidence_fact +-> metric / viewpoint / darkline / 行业扩展表 +-> 人读文档 +``` + +MySQL 记录不得只保存结论,必须能反查到行业统一 `raw/`、行业级 `converted/`、`extracted/`、`evidence/`、`manifest/`,以及对应案例目录中的 `outputs/`、`manifest/` 或案例级 `evidence/` 路径。 + +如果任意一环缺失,该结论只能标记为 `REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_DATA_GAP`,不能作为正式强结论。 + +## 11. 最低验收标准 + +完成一批行业资料或研报解析后,至少验收: + +1. 原始文档已归档到行业统一 `raw/`。 +2. 转换文档已归档到 `converted/`,或明确无需转换。 +3. 文档来源、hash、路径已写入 manifest 或数据库。 +4. 总行业、子行业、公司归类明确。 +5. 关键事实、关键指标和关键观点已拆分记录。 +6. 标准化指标能追溯到证据事实。 +7. 投资读法有证据来源、触发条件、失效条件和风险边界。 +8. 人读文档能追溯到结构化数据。 +9. 结构化数据能追溯到原始文档。 +10. 批次处理状态明确,不把 `EVIDENCE_EXTRACTED` 误读成 `HUMAN_DOC_READY`。 +11. 缺口清单明确记录缺什么、影响哪条结论、下一步从哪里补。 +12. 暗线内容单独分流,未混进普通事实表。 +13. 行业专属表只在具体行业方案或案例设计中定义,并能追溯到证据层。 +14. 不存在 `ana-data/cases/<行业案例>/<case_id>/raw/` 或其他逐案例、逐批次、逐 run 的 raw 原始资料目录。 +15. 通用转换、抽取、补充、证据事实和行业级 manifest 没有落到 `<case_id>/converted/`、`<case_id>/extracted/`、`<case_id>/supplement/` 或 `<case_id>/manifest/` 中。 +16. 临时文件进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,且未被正式证据或正式结果引用为主入口。 +17. 结果入口或交付包索引进入 `ana-data/result/<行业案例>/<case_id>/`。 +18. 图片、截图、OCR 图片或图册进入 `ana-data/img/<行业案例>/<case_id>/`,涉及结论引用时有 `image_manifest.csv` 或等价记录。 + +## 12. 禁止事项 + +1. 不另建与本文件平行的正式 `研报存储体系.md`。 +2. 不在通用底座里写具体行业专属表。 +3. 不只保存 Markdown 摘要而不保存原始来源。 +4. 不只存 PDF 文件而不抽取结构化信息。 +5. 不把研报观点直接写成事实。 +6. 不把公司投资读法写在文档里但不留证据或结构化入口。 +7. 不让总行业、子行业、公司关系只存在自然语言里。 +8. 不把临时转换文件当正式产物。 +9. 不重复转换同一个 PDF;应复用 `converted/` 缓存并记录转换状态。 +10. 不让报告文档和数据库各说各话。 +11. 不把数据库密码、授权 token 或私有凭据写入结果包。 +12. 不把任何行业的 raw 原始资料按 case、batch 或 run 分散存放。 +13. 不把研报通用处理产物按 case、batch 或 run 重复分散存放;案例目录只保存案例自定义输出、引用清单和结论证据映射。 +14. 不把临时文件放入 `ana-data/cases/<行业案例>/<case_id>/`;临时文件统一进入父体系 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`。 +15. 不把 `ana-data/tools/` 当作正式结果目录、证据目录、临时目录或凭据存放目录。 diff --git "a/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" "b/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" index 27f845f..8e39f73 100644 --- "a/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" +++ "b/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" @@ -1,36 +1,323 @@ -# 案例审核规范 +# 案例审核规范 -创建人员:management.admin -文件职责:记录 `project-info` 项目案例审核员必须遵守的本地审核规范。本文件引用 common 案例审核规范,不得削弱 common 硬约束。 -管理规范/模板:../../common/ana-doc/案例审核规范.md;../../common/ana-doc/案例分析环境创建指南.md。 -引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;../项目配置清单.md。 +创建人员:management.admin +文件职责:记录 `project-info` 项目案例审核员必须遵守的本地审核规范,覆盖研报案例的设计审核、执行审核、存储归档审核、输出审核、结论边界审核和复审。 +管理规范/模板:../../common/ana-doc/案例审核规范.md;../../common/ana-doc/案例分析环境创建指南.md。 +引用文件:案例分析规范.md;数据抓取脚本说明.md;案例存储体系.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;研报体系/研报解析架构.md;研报体系/研报分析架构.md;../项目配置清单.md。 记录方式:项目本地审核规范;审核口径变化时更新,并同步项目变更记录。 ## 1. 基本口径 本项目所有案例审核员必须同时遵守 `../../common/ana-doc/案例审核规范.md` 和本文件。`laoshen` 是本项目案例审核员,同时兼任案例分析开发审核员;案例分析开发相关审核结论统一写入 `ana-doc/案例审计报告.md`。 +审核员的目标不是只看 summary,而是确认案例是否真的按设计执行、证据是否可追溯、存储是否可复核、结论是否不过读、问题是否闭环。 + +本文件负责把 `研报解析架构.md` 和 `研报分析架构.md` 中的研报专业要求转化为 ana 案例体系的审核口径。行业目录内的 `案例审核规范.md` 默认只作为继承入口和行业补充检查,不应复制本文件的阶段门、审核类型、阻断条件和问题闭环规则。 + ## 2. 审核范围 审核员至少检查: -1. 设计是否明确案例来源、目标、边界、证据要求和产物。 +1. 设计是否明确案例来源、目标、边界、证据要求、输出物和验收方式。 2. 执行是否按设计完成,证据路径是否可打开、可追溯。 -3. 结论是否降读,是否避免交易建议和未经验证的因果判断。 -4. K 线、成交量、市场背景、替代解释是否按任务需要纳入。 -5. 是否存在从其他项目复制的旧内容、旧路径、旧结果包或旧业务结论。 -6. 是否遵守“主体内容落文档,窗口只展示摘要和证据入口”的上下文保护要求。 +3. 文件、证据、输出和 manifest 是否按 `案例存储体系.md` 归档。 +4. 研报观点是否被拆成事实、数据、观点、假设和缺口,而不是直接当事实。 +5. 结论是否降读,是否避免交易建议、收益承诺和未经验证的强因果判断。 +6. K 线、成交量、市场背景、替代解释、市场反向补漏是否按任务需要纳入。 +7. 暗线、事件链、意图判断是否与普通行业事实分离。 +8. 单篇定位、批量最低产物、`unresolved_data_gap.csv`、`source_gap_audit.csv` 和冲突观点分账是否完整。 +9. 是否存在从其他项目复制的旧内容、旧路径、旧结果包或旧业务结论。 +10. 是否遵守“主体内容落文档和结果包,窗口只展示摘要和证据入口”的上下文保护要求。 +11. 涉及外部抓取、本地 MySQL 导出或市场反向补漏脚本时,是否遵守 `数据抓取脚本说明.md`,脚本产物是否有 manifest、参数、SQL、hash、输出路径和只读边界。 +12. 审核请求引用的正式文档、条目 ID、结果包和证据入口是否在提交审核前已经落地;如无法证明提交前已存在,必须标记为补录风险或时序缺陷,不得直接给出无条件通过。 -## 3. 审计记录位置 +审核前置核查要求: + +1. 审核员接到设计审核、执行审核、输出审核或复审请求后,必须先核查消息中列出的审核对象是否真实存在。 +2. 前置核查至少记录:消息 ID、消息创建时间、审核对象路径、条目 ID、文件位置或行号、当前文件修改状态、是否存在提交后补录风险。 +3. 若审核对象在正式文档中不存在,审核结论只能为 `需补充`、`退回修改` 或 `HELD`,不得用消息摘要替代正式文档进行审核。 +4. 若审核对象当前存在但无法确认是否在提交前已存在,审计报告必须写明“提交前落地状态无法证明”,结论不得高于有条件通过,除非后续重新提交审核。 +5. 若确认存在提交后补录、先执行后补设计、先提交后补证据等时序倒置,必须作为审计问题记录,要求分析员按补录后的当前版本重新提交审核。 + +## 3. 审核类型 + +研报案例至少覆盖以下审核类型: + +1. 新行业容器创建审核:检查 `<行业>案例/` 目录、基础文档、行业方案、父级导读登记和审计入口是否完整,并确认行业目录没有平行的 `案例总纲.md`。 +2. 行业方案审核:检查 `<行业>研报解析方案.md` 是否继承研报解析架构、研报分析架构和父级案例存储体系。 +3. 案例设计审核:检查目标、边界、输入资料、执行步骤、证据要求、输出物、存储路径和验收方式是否完整。 +4. 执行过程审核:检查执行日志是否能还原研报读取、转换、抽取、补充、分析、输出和归档全过程。 +5. 存储归档审核:检查行业级 `raw/`、`converted/`、`extracted/`、`supplement/`、`evidence/`、`manifest/`,案例级 `outputs/`、`manifest/`、`evidence/`,以及父体系 `tmp/`、`result/`、`img/` 是否按规则使用。 +6. 输出文档审核:检查行业视图、市场视图、公司视图和扩展文档是否有证据支撑。 +7. 结论边界审核:检查强结论、投资读法、公司判断、行业判断是否过读。 +8. 复审:检查前次审计问题是否被修复,是否产生新问题;行业方案、案例设计、存储路径、证据链、输出文档或结论边界发生实质变化时,也必须进入复审。 + +行业子审核规范使用规则: + +1. 行业 `案例审核规范.md` 必须声明继承父级 `案例审核规范.md`、父级 `案例分析规范.md`、父级 `案例存储体系.md` 和两份研报方法母版。 +2. 没有行业自定义审核点时,行业 `案例审核规范.md` 只记录继承关系、当前覆写状态和少量行业补充检查。 +3. 行业专业审核点应来自 `<行业>研报解析方案.md`、行业 `案例分析设计.md` 和已通过的设计审核,不能削弱父级阶段门、阻断条件、证据追溯、存储归档和结论边界要求。 +4. 如果行业子审核规范和父级审核规范冲突,审核员先按父级审核规范执行,并把冲突点作为审计问题或规范维护事项处理。 + +## 4. 研报分析流程审核 + +审核员必须按 `案例分析规范.md` 的“案例分析员融合执行流程”检查研报案例,不得只看最终 summary。 + +| 阶段 | 审核重点 | 阻断条件 | +|---|---|---| +| `G0` 任务接入 | 来源聊天、目标、边界是否进入总纲或设计 | 来源不明、目标和用户要求不一致 | +| `G1` 行业容器 | 行业目录是否存在,是否无平行 `案例总纲.md` | 行业过程明细写回父级或行业内建总纲 | +| `G2` 行业方案 | `<行业>研报解析方案.md` 是否从模板升格为可执行方案 | 方案缺失、仍是模板、没有行业边界和输出方案 | +| `G3` 案例登记与设计 | 父级总纲是否登记真实案例,行业设计是否冻结 batch/run | 没有父级总纲,或把每批资料误建成新案例 | +| `G4` 设计审核 | 设计审核是否先于正式执行 | 未审核就正式分析 | +| `G5` 资料归档与转换 | raw、converted、manifest、hash、文件头识别是否完整 | raw 未归档、路径不可复核、转换状态不清 | +| `G6` 抽取与补数 | evidence、extracted、supplement、缺口和 darkline 是否按需处理 | 观点当事实、缺关键数据却写强结论 | +| `G7` 人读输出 | 行业视图、市场视图、公司视图是否有证据支撑 | 只有标题式结论或三类视图缺失 | +| `G8` 自检与归档 | tmp/result/img 分流、manifest、验证报告是否完整 | 临时文件当证据,缺 result 入口或图片 manifest | +| `G9` 执行审核与回写 | 审计、复审、总纲/设计/方案回写是否完成 | 未复审就标记完成或对外交付 | + +分析流程审核要求: + +| 审核面 | 必查问题 | 阻断条件 | +|---|---|---| +| 案例分析员融合执行流程 | 是否按 `案例分析规范.md` 的“案例分析员融合执行流程”执行,覆盖来源、总纲、设计、设计审核、执行、日志、结果包、执行审核、修复复审和回写 | 研报流程只写专业处理步骤,缺少 common 生命周期任一硬控制点 | +| ana 来源和总纲 | 研报任务来源、目标、行业、边界是否先进入父级总纲 | 只有行业方案或输出文档,父级总纲没有来源入口 | +| ana 设计冻结 | 行业设计是否写清 `case_id/batch_id/run_id`、输入范围、执行步骤、证据要求、输出和验收 | 设计只是标题或任务描述,不能指导执行 | +| 研报行业方案 | `<行业>研报解析方案.md` 是否把行业边界、核心变量、输出方案、专属表、流程覆写和缺口写清 | 方案仍是模板,或只引用母版但无行业展开 | +| 研报归档转换 | raw、converted、source_document、conversion_status、hash、文件头识别是否可追溯 | 只读资料、不归档,或转换结果无法反查 raw | +| 研报抽取补数 | extracted、evidence、supplement、数据卡、缺口、`unresolved_data_gap`、`source_gap_audit` 和 darkline 分流是否存在 | 观点直接进结论,缺核心数据却没有缺口状态 | +| 人读输出 | 行业视图、市场视图、公司视图是否从证据链生成 | 三类视图缺失,或细分文档替代顶层视图 | +| 存储分流 | 行业级通用产物、案例级输出、父体系 `tmp/result/img` 是否各归其位 | raw 或通用产物落入逐案例目录,tmp 被当正式证据 | +| 审计闭环 | 执行日志、审计报告、修复、复审、总纲/设计/方案回写是否完整 | 未复审就交付,或审计问题没有主记录 | + +行业方案审核必须单独给结论。审核员至少检查: + +1. 方案是否明确本行业包含和不包含的范围。 +2. 方案是否列出核心子行业、技术路线、商业模式、产业链分层或主导变量。 +3. 方案是否说明行业视图、市场视图、公司视图和扩展文档怎么输出。 +4. 方案是否定义行业专属表、文件型清单或明确本轮暂不建表。 +5. 方案是否说明 raw、converted、extracted、supplement、evidence、manifest、outputs、tmp、result、img 的落点。 +6. 方案是否说明是否覆写母版流程;如果覆写,是否保留父级总纲、设计审核、执行日志、执行审核、问题闭环和结论回写。 +7. 方案是否明确缺口清单、市场反向补漏和 darkline 触发边界。 +8. 方案是否仍写着“模板”“待正式任务补齐”等不能支撑正式执行的状态。若仍是模板,只能允许容器初始化或体系 dry-run,不得允许正式研报分析。 + +管理端自检和正式审核必须区分。Codex 或管理端可以做体系维护自检,但自检结论不能冒充 `case_analysis.reviewer / laoshen` 的正式审核结论;正式放行仍以项目配置清单中的审核员角色为准。 + +方案、设计和输出复审触发规则: + +1. `<行业>研报解析方案.md` 新建、从模板升格、重要优化,或变更行业边界、核心变量、输出方案、专属表、流程覆写、存储落点、缺口清单时,必须审核或复审。 +2. `案例分析设计.md` 新建,或变更资料范围、case/batch/run、执行步骤、证据要求、输出物、存储路径、darkline 触发边界或验收方式时,必须审核或复审。 +3. 正式资料归档、转换、抽取、补数、证据组织、核心文档输出或 manifest 归档完成后,必须执行审核。 +4. 核心文档准备对外交付、进入正式结果入口或回写完成状态前,必须通过输出审核或执行审核。 +5. 仅修改错别字、格式、链接显示等不影响流程、证据、存储、输出和结论边界的小修,可以只抽查维护记录;如审核员判断影响可复核性,仍应要求复审。 + +市场反向补漏审核要求: + +1. 设计是否说明本轮是否需要市场反向补漏;如果不做,是否有清楚的适用性判断。 +2. 需要做补漏时,是否使用 `darkline` 拉取或分析近 3 个月强显影股票清单,至少覆盖涨停或多次涨停、连续大涨、放量突破、逆行业上涨、明显强于同行、资金持续显影。 +3. 是否按公司核心业务重新归因,而不是只按题材标签、宽关键词或研报覆盖标签归类。 +4. 是否给每个对象标记 `scope_type`:`CORE_INDUSTRY`、`ADJACENT_DOWNSTREAM` 或 `FALSE_THEME_OR_NOISE`。 +5. `CORE_INDUSTRY` 是否进入补资料清单;`ADJACENT_DOWNSTREAM` 是否单独 review;`FALSE_THEME_OR_NOISE` 是否只保留审计记录。 +6. 是否产出 `market_manifestation_gap_audit.csv`、`market_manifestation_gap_priority.csv`、`market_manifestation_gap_summary.json` 或等价结构化表。 +7. 是否把市场反向补漏用于发现缺口,而不是直接当作投资结论或公司推荐依据。 + +## 5. 设计审核 + +设计审核在正式执行前进行。行业方案未通过审核或复审时,设计审核不得放行;设计审核未通过,不得进入正式研报分析执行。 + +必须检查: + +1. 父级 `案例总纲.md` 是否记录来源聊天、上游依据、行业范围、目标和边界。 +2. 是否确认行业案例目录;不存在时是否按新行业创建流程创建。 +3. 是否读取父级 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 和研报方法母版。 +4. 是否创建或更新 `<行业>研报解析方案.md`。 +5. 行业方案是否说明行业边界、子行业、核心变量、人读输出、行业专属表和缺口。 +6. 设计是否明确原始资料来源、样本范围、执行步骤、证据要求、输出物、存储路径和验收方式。 +7. 设计是否把 `案例分析规范.md` 的“案例分析员融合执行流程”落成具体步骤,而不是只写阶段名或最终目标。 +8. 是否说明是否需要外部信息补充、市场反向补漏或 darkline 分析;需要市场反向补漏时,是否写明近 3 个月强显影股票扫描口径、scope 闸门、补资料输出和不把市场显影直接当投资结论的边界。 +9. 是否说明主动补数据触发条件、`unresolved_data_gap.csv`、`source_gap_audit.csv`、单篇/批量最低产物和冲突观点分账要求。 +10. 是否说明 MySQL 或结构化记录的使用范围和追溯方式。 +11. 如需使用 `ana-data/tools/` 脚本,是否说明脚本名、输入范围、关键词或 SQL 来源、输出路径、manifest、只读边界和复核方式。 +12. 是否明确 `PASS / FAIL / HELD` 或等价验收标准。 +13. 设计条目是否在提交设计审核前已经写入正式 `案例分析设计.md` 或行业子目录对应设计账本;审核员必须记录条目 ID、文件路径和行号。若设计条目为提交后补录,必须退回或要求重新提交审核。 + +如果案例事项使用行业自定义流程,设计审核必须检查该流程是否满足父级案例体系硬约束。行业流程通过设计审核后,执行审核以已通过的行业流程为准;只有发现行业流程违反父级硬约束时,才要求整改。 + +## 6. 执行审核 + +执行审核在案例执行后进行。执行审核未通过,不得把案例事项标记为完成或可交付。 + +必须检查: + +1. 执行是否按已审核通过的设计进行。 +2. 执行日志是否记录资料归档、转换、抽取、补充、证据、输出和自检。 +3. 执行日志是否能按“案例分析员融合执行流程”还原:来源总纲、行业方案、设计审核、raw 归档、转换抽取、补数分流、证据数据卡、人读输出、归档自检、执行审核。 +4. 原始资料是否全部进入行业统一 raw 池 `ana-data/cases/<行业案例>/raw/`,且未被覆盖、改写。 +5. 转换文本、表格、OCR、页面切分结果是否进入行业级 `converted/`。 +6. 事实、指标、观点、公司映射、缺口是否进入行业级 `extracted/` 或等价结构化记录。 +7. 外部公开资料补充和市场反向补漏是否进入行业级 `supplement/`,市场显影证据、范围闸门和补漏结论是否进入行业级 `evidence/` 或等价结构化记录。 +8. 通用证据事实、数据卡底座、来源定位是否进入行业级 `evidence/`;案例结论证据映射是否进入案例级 `evidence/`。 +9. 单篇研报是否保留 doc_id、页码或段落定位、句子/表格索引、时间、单位、口径、对象归属和置信度。 +10. 批量研报是否输出或更新 `input_manifest.csv`、`conversion_status.csv`、`evidence_fact_table.csv`、`classification_summary.csv`、`unresolved_data_gap.csv`、`source_gap_audit.csv`、`batch_summary.md`、`next_action_list.csv` 或等价结构化记录。 +11. 资料之间的支持、反对、重复观点和口径冲突是否分账记录,没有被强行合并。 +12. 正式输出是否进入案例级 `outputs/`。 +13. 行业级 `manifest/` 是否记录文件清单、来源清单、处理批次、执行轮次、hash 或等价摘要,并包含 `case_id`、`batch_id`、`run_id`;案例级 `manifest/` 是否记录本案例引用了哪些行业级资料。 +14. 临时文件是否进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,且没有被当成正式证据或正式结果入口。 +15. 结果入口或交付包索引是否进入 `ana-data/result/<行业案例>/<case_id>/`;涉及图片时,图片、截图、OCR 图片或图册是否进入 `ana-data/img/<行业案例>/<case_id>/`。 +16. MySQL 或结构化记录是否能反查案例 ID、原始资料、转换结果、证据和输出路径。 +17. 如使用 `ana-data/tools/` 脚本,输出是否进入行业 `supplement/evidence/manifest` 或父体系 `tmp/result/img`,SQL 是否只读,manifest 是否记录脚本参数、输出路径和 row_count。 +18. 结论是否没有超过证据。 + +执行审核还必须抽查本轮是否正确处理 `batch_id` 和 `run_id`: + +1. 同一研究目标的多次资料读取是否仍属于同一个案例。 +2. batch 是否只表达输入批次,不表达新的行业案例。 +3. run 是否只表达执行轮次,不替代设计审核或审计记录。 +4. manifest、source_document、conversion_status、evidence_index 和案例输入清单中的 `case_id/batch_id/run_id` 是否一致。 + +## 7. 输出审核 + +输出审核在核心文档对外交付、进入正式结果入口或回写完成状态前进行。审核员必须检查人读文档是否真正满足研报体系的输出要求: + +1. 行业视图是否讲清行业是什么、怎么运行、核心变量和产业链逻辑。 +2. 市场视图是否讲清价格、库存、供需、政策、资金显影和市场阶段。 +3. 公司视图是否讲清公司业务结构、行业暴露、核心竞争力、投资读法、风险和失效条件。 +4. 关键结论是否有来源、数据日期、历史比较、横向比较、公司或链条案例。 +5. 专业术语是否用普通人能理解的方式解释。 +6. 研报观点、事实、推理、暗线假设和投资读法是否分账。 +7. 数据不足时是否降级为 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`。 +8. 输出前是否读取市场反向补漏结果;如果发现遗漏公司、子行业、资源品种、技术路线或关键变量,是否先进入补资料和缺口流程。 +9. 成熟子行业、核心技术路线或核心公司是否具备基础事实卡;缺失基础事实时是否降级,不直接写强结论。 +10. 人读文档是否按结构化记录和证据数据卡 -> 子行业详细材料 -> 子行业总览 -> 公司文档 -> 行业/市场总览和索引的顺序更新,最终入口是否仍是行业视图、市场视图、公司视图。 +11. 重要场景假设是否写清影响映射、触发条件、失效条件和主要风险。 +12. 对外交付版本是否能从 `ana-data/result/<行业案例>/<case_id>/result_index.md` 进入,并能反查到 `outputs/`、证据映射和 manifest。 + +## 8. 研报案例高风险问题清单 + +审核员必须重点发现以下问题: + +1. 没有创建行业容器目录,把行业案例过程明细写回父级 `ana-doc/`,或在行业目录内创建平行的 `案例总纲.md`。 +2. 行业子规范和父级 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 冲突。 +3. 行业子审核规范或行业子分析规范复制父级通用流程后形成第二套母版,导致执行 AI 不清楚以父级还是子级为准。 +4. 行业方案缺失,或行业方案没有继承研报解析架构、研报分析架构和父级案例存储体系。 +5. 行业方案仍是模板、没有行业边界、没有输出方案或没有专属表/缺口定义,却开始正式研报分析。 +6. 设计审核未通过就开始正式研报分析。 +7. 案例设计没有写清目标、边界、资料来源、证据要求、输出文档和验收方式。 +8. 案例设计只写阶段名或最终目标,没有把 ana 控制点和研报专业动作融合成可执行步骤。 +9. 审核请求引用的设计、执行日志、审计对象、结果包或证据入口在提交审核时未落地,后续补录后冒充审核前记录。 +10. 把同一长期行业案例的资料批次误拆成多个正式案例,或把不同研究目标误塞进同一个案例。 +11. 原始研报没有进入行业统一 raw 池 `ana-data/cases/<行业案例>/raw/`,按 case/batch 分散存放 raw,或 raw 原始文件被覆盖、改写。 +12. 转换文本、表格、OCR、抽取结果、补充资料没有进入行业级统一目录,或输出文档没有进入案例级 `outputs/`。 +13. 临时文件没有进入父体系 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,被放入案例资料目录,或被当成正式证据、正式结果入口。 +14. 结果入口或交付包索引没有进入父体系 `ana-data/result/<行业案例>/<case_id>/`;涉及图片时图片没有进入 `ana-data/img/<行业案例>/<case_id>` 或缺少图片 manifest。 +15. 没有 manifest、来源清单、证据索引或等价可追踪记录。 +16. MySQL 结构化记录不能反查到行业级原始资料、转换结果、抽取结果、证据,或案例级输出路径。 +17. 只采信券商结论,没有拆出事实、数据、假设、观点和证据。 +18. 核心指标没有数据卡,或缺少数据日期、来源、历史比较、横向比较和结论强度。 +19. 重要结论没有公司、项目、链条、数据或案例支撑。 +20. 用故事、机制解释或专家观点替代指标数据。 +21. 缺少市场反向补漏,或只写“已补漏”但没有近 3 个月强显影股票清单、核心业务重归因、scope 闸门、缺口清单和补充资料记录。 +22. 行业边界被关键词污染,把相邻行业、下游噪音或伪主题纳入核心结论。 +23. 暗线、事件链和意图判断混入普通行业事实。 +24. 需要网上补充、外部信息、新闻公告、事件链、市场显影或暗线分析时,没有使用 `darkline` 技能。 +25. 批量处理没有 `unresolved_data_gap.csv`、`source_gap_audit.csv`、`batch_summary.md`、`next_action_list.csv` 或等价记录。 +26. 资料之间存在支持、反对、重复观点或口径冲突,但输出里被合并成单一结论。 +27. 输出文档只有标题式结论,没有证据、推理、失效条件和结论边界。 +28. 行业视图、市场视图、公司视图缺失,或被细分文档替代。 +29. 公司文档没有投资读法、风险、证据链或当前状态判断。 +30. 基础事实卡缺失、核心变量无数据卡、场景假设无影响映射,却输出强结论或投资读法。 +31. 结论超过证据,资料不足却没有标记 `DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP`。 +32. 审计问题没有进入 `案例审计报告.md`,需跨轮或跨角色跟踪的问题没有进入 `案例问题记录.md`,或执行者自发现且可处理的问题被误写入 `案例问题记录.md`。 +33. 行业方案、案例设计、核心输出、存储路径、证据链或结论边界发生重要变化,但没有提交复审。 +34. 核心文档输出完成后,没有通过输出审核或执行审核就对外交付、进入正式结果入口或回写完成状态。 +35. 抓取脚本、SQL、网页快照、市场反向补漏结果或查询 CSV 留在 `ana-data/tools/`、私人工作区或未登记路径,没有进入规范落点。 +36. 使用脚本执行写库 SQL、泄露数据库密码/token/cookie,或把市场显影扫描结果直接写成投资结论。 + +## 9. 证据抽查方法 + +审核员不仅阅读结论,还要抽查证据链。 + +建议方法: + +1. 从父级案例总纲追到行业目录案例设计、执行日志、审计报告和问题记录,确认链路完整。 +2. 从输出文档反向追到案例级证据映射,再追到行业级 `evidence/`、`extracted/`、`converted/` 和 `raw/`。 +3. 抽查 1-3 个强结论,确认来源、数据日期、横向比较、历史比较和公司案例是否存在。 +4. 抽查 1-3 个公司或细分行业,确认公司映射、指标和投资读法没有过读。 +5. 抽查 manifest 和文件路径,确认不是临时文件、私有工作区或旧项目路径。 +6. 对涉及脚本或自动化输出的结果,检查输入范围、参数、输出路径和证据包是否与案例设计一致。 +7. 对涉及市场显影或暗线的内容,检查是否使用 darkline,并与普通行业事实分离。 +8. 对涉及 `ana-data/tools/` 的结果,抽查脚本 SQL 或参数、只读边界、row_count、hash、manifest 和输出文件是否能互相反查。 + +## 10. 审核结论 + +审核结论使用: + +```text +通过 +有条件通过 +不通过 +HELD +``` + +结论必须包含: + +1. 审核 ID。 +2. 审核类型:行业容器创建审核 / 行业方案审核 / 设计审核 / 执行审核 / 存储归档审核 / 输出审核 / 结论边界审核 / 复审。 +3. 审核对象。 +4. 审核依据。 +5. 检查结果。 +6. 问题清单。 +7. 阻断项。 +8. 需要修复的文档、结果包或路径。 +9. 是否允许进入下一阶段。 + +`有条件通过` 只能用于不影响追溯、证据可信度和结论边界的轻微问题;凡影响证据链、存储归档、设计冻结、审核闭环或结论边界的问题,不得有条件通过。 + +## 11. 必须阻断的问题 + +以下问题必须阻断: + +1. 设计目标和来源聊天不一致。 +2. 设计审核未通过就执行正式案例。 +3. 行业方案缺失且任务属于新行业研报案例。 +4. 行业方案仍是模板或缺少行业边界、核心变量、输出方案、专属表/缺口定义,却进入正式分析。 +5. 行业子规范违反父级规范或父级存储体系。 +6. 原始资料未进入行业统一 raw 池,或无法确认来源、hash、路径。 +7. 关键判断缺证据,导致无法复核。 +8. manifest、证据索引或结果包缺失,导致链路断裂。 +9. MySQL 或结构化记录无法反查原始资料、转换结果、证据和输出路径。 +10. 使用未来信息支持实时判断、交易结论或收益结论。 +11. 结论明显过读。 +12. 暗线、事件链和普通行业事实混写并影响结论。 +13. 需要外部信息、新闻公告、市场显影或暗线分析时未使用 `darkline`。 +14. 批量研报分析缺少 `unresolved_data_gap.csv`、`source_gap_audit.csv`、核心 manifest 或证据索引,导致缺口、来源或批次无法复核。 +15. 核心文档缺少行业视图、市场视图、公司视图,或基础事实卡、数据卡、证据链缺失导致强结论不可复核。 + +## 12. 不应阻断的问题 + +以下问题一般不阻断,但可以记录为修正建议: + +1. 文档格式不够美观,但关键路径和证据可读。 +2. 字段名不完全一致但映射关系清楚。 +3. 非关键备注缺失。 +4. 非关键案例的轻微说明不足。 +5. 后续工程化尚未开始。 +6. 输出文档仍需润色,但证据链、结论边界和审核入口完整。 + +## 13. 审计记录位置 | 情况 | 主记录位置 | |---|---| | 初始化审计 | `案例审计报告.md` | -| 设计审核 | `案例审计报告.md` | -| 执行审核 | `案例审计报告.md` | +| 新行业容器创建审核 | 行业目录 `案例审计报告.md`;父级 `案例总纲.md` 登记相关案例入口 | +| 行业方案审核 | 行业目录 `案例审计报告.md` | +| 设计审核 | 行业目录或父级对应 `案例审计报告.md` | +| 执行审核 | 行业目录或父级对应 `案例审计报告.md` | +| 存储归档审核 | 行业目录或父级对应 `案例审计报告.md` | +| 输出审核 | 行业目录或父级对应 `案例审计报告.md` | +| 结论边界审核 | 行业目录或父级对应 `案例审计报告.md` | +| 复审 | 原审核记录所在 `案例审计报告.md` | | 审计发现问题 | `案例审计报告.md` 为主,`案例问题记录.md` 只做跨轮索引 | -| 非审计来源问题 | `案例问题记录.md` | +| 外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计问题 | `案例问题记录.md` | -## 4. 审核结论 - -审核结论使用:`通过`、`有条件通过`、`不通过`、`HELD`。结论必须包含证据入口、阻断项、需要修复的文档或结果包路径。 +审核员不得直接改被审计主产物来掩盖问题。如需修改规范,应创建规范维护事项或取得案例体系维护授权,并记录原因、影响范围和复审入口。 diff --git "a/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" index b2d3c32..068adac 100644 --- "a/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" +++ "b/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" @@ -6,6 +6,73 @@ 引用文件:案例审核规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例问题记录.md;../项目配置清单.md。 记录方式:append-only 审计账本;审核结论和审计问题追加到文件末尾。 +固定口径:案例审核员发现的问题完整记录在本文;只有需要跨轮跟踪、跨案例汇总或长期处理时,才在 `案例问题记录.md` 中建立索引,不重复全文。 + +## 1. 当前审计总览 + +| 审计 ID | 审计对象 | 审计类型 | 审核员 | 结论 | 时间 | +|---|---|---|---|---|---| +| `AUDIT-ANA-SMOKE-001` | `ANA-SMOKE-001` / `DESIGN-ANA-SMOKE-001` / `RUN-ANA-SMOKE-001` | 初始化自检 | management.admin,待正式审核员复核 | 待复核 | 2026-06-25 | +| `AUDIT-ANA-DOCS-REBUILD-REVIEW` | `ana-doc/` 本地案例分析体系文档 | 初始化复审 | case_analysis.reviewer / laoshen | 通过 | 2026-06-25 | +| `AUDIT-ANA-REPORT-SYSTEM-20260625-001` | `ANA-REPORT-SYSTEM-20260625-001` | 体系接入自检 | Codex,待正式审核员复核 | 待复核 | 2026-06-25 | + +## 2. 审计记录模板 + +### <YYYY-MM-DD HH:mm:ss> <AUDIT-ID>:<审计标题> + +审计对象: +<ANA-ID / DESIGN-ID / LOG-ID / PACK-ID> + +审计类型: +设计审核 / 执行审核 / 复审 + +审核员: +<审核员> + +来源聊天记录 / 上游依据: +<粘贴关键聊天记录,或写明案例总纲、上游文档、聊天记录路径> + +依据文档: + +1. `../../common/ana-doc/案例分析规范.md` +2. `../../common/ana-doc/案例审核规范.md` +3. `案例总纲.md` +4. `案例分析设计.md` +5. `案例执行日志.md` +6. `案例存储体系.md` + +检查结果: + +| 检查项 | 结果 | 说明 | +|---|---|---| +| 来源聊天记录已进入总纲 | PASS / FAIL / N/A | | +| 设计目标对齐来源要求 | PASS / FAIL / N/A | | +| 案例选择口径合理 | PASS / FAIL / N/A | | +| 全流程步骤覆盖候选到结论 | PASS / FAIL / N/A | | +| 执行按设计进行 | PASS / FAIL / N/A | | +| 关键判断有证据 | PASS / FAIL / N/A | | +| 结论没有过读 | PASS / FAIL / N/A | | +| 证据链可追踪 | PASS / FAIL / N/A | | + +发现问题: + +1. <如无写“无”> + +审计结论: +通过 / 不通过 / 暂缓 + +是否阻断: +是 / 否 + +是否允许进入下一阶段: +是 / 否 + +建议动作: +<下一步> + +复审要求: +<是否需要复审> + ## 2026-06-25 AUDIT-ANA-SMOKE-001 - 审计 ID:AUDIT-ANA-SMOKE-001 @@ -45,3 +112,31 @@ - 结论:通过。 - 是否允许进入后续阶段:允许。后续具体案例分析事项仍需按案例设计审核和执行审核流程单独审计。 +## 2026-06-25 AUDIT-ANA-REPORT-SYSTEM-20260625-001 + +- 审计 ID:AUDIT-ANA-REPORT-SYSTEM-20260625-001 +- 审计事项:ANA-REPORT-SYSTEM-20260625-001 / 研报体系接入 ana-doc +- 审计类型:体系接入自检,待案例审核员复核 +- 提交方:Codex +- 审核方:case_analysis.reviewer / laoshen +- 审计对象:`ana-doc/` 研报体系接入改造 +- 审计依据:`案例分析规范.md`;`案例审核规范.md`;`案例存储体系.md`;`研报体系/研报解析架构.md`;`研报体系/研报分析架构.md` +- 当前结论:待审核员复核 + +### 管理端自检 + +- 研报方法母版:`研报解析架构.md`、`研报分析架构.md` 已迁入 `ana-doc/研报体系/`。 +- 存储母版:未创建平行 `研报存储体系.md`,研报存储规则已融入 `案例存储体系.md`。 +- 分析规范:已写入研报体系接入流程、新行业创建流程、行业子规范优先级、记录落点和 darkline 外部信息规则。 +- 审核规范:已写入研报案例审核类型、高风险问题、证据抽查、阻断项和审计记录位置。 +- 有色模板:已同步父级新口径,删除旧 mirror 临时路径和独立研报存储母版引用。 +- 通用性:通用存储体系未固化有色、矿区等行业专属表;行业专属表由行业方案或案例设计定义。 + +### 待审核员确认 + +1. 父级 `案例分析规范.md` 是否没有削弱 common 案例体系硬约束。 +2. 父级 `案例存储体系.md` 是否能承接研报原始资料、转换结果、证据、输出、manifest 和 MySQL 追溯。 +3. 父级 `案例审核规范.md` 是否能发现研报案例主要流程、证据、存储、输出和结论问题。 +4. `有色案例/` 子规范是否与父级母版兼容。 +5. 是否允许后续进入历史有色资料归档和 30 份 PDF 试运行阶段。 + diff --git "a/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" "b/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" index c41c308..8e0741d 100644 --- "a/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" +++ "b/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" @@ -6,13 +6,64 @@ 引用文件:案例分析规范.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。 记录方式:append-only 滚动账本;新增案例或状态变化时追加记录。 -## 1. 当前总览 +## 1. 当前案例分析总览 -| 案例 ID | 名称 | 状态 | 结论 | -|---|---|---|---| -| `ANA-SMOKE-001` | 案例体系初始化 dry-run | 已记录,待审核员复核 | 环境链路可承接案例分析;无真实业务结论 | +| 案例事项 ID | 名称 | 来源 | 目标 | 状态 | 当前结论 | 审计状态 | +|---|---|---|---|---|---|---| +| `ANA-SMOKE-001` | 案例体系初始化 dry-run | 初始化反馈 | 验证项目案例体系环境能从总纲追到设计、执行日志和审计报告 | 已记录,待审核员复核 | 环境链路可承接案例分析;无真实业务结论 | `AUDIT-ANA-SMOKE-001` 待复核;`AUDIT-ANA-DOCS-REBUILD-REVIEW` 通过 | +| `ANA-REPORT-SYSTEM-20260625-001` | 研报体系接入 ana-doc | 人类确认研报体系融入 ana | 将研报解析、分析和存储规则融入 `project-info/ana-doc` | 已执行,待审核员复核 | 研报方法母版已迁入,研报存储规则已融入父级存储体系,父级规范和有色模板已同步 | `AUDIT-ANA-REPORT-SYSTEM-20260625-001` 待复核 | +| `ANA-YS-TEMPLATE-001` | 有色行业研报容器初始化 | 人类要求创建有色行业容器 | 建立 `ana-doc/有色案例/` 行业容器和有色方案入口 | 已迁入父级总纲,待审核员复核 | 有色行业容器已创建;行业目录不再维护独立案例总纲 | `AUDIT-ANA-YS-TEMPLATE-001` 待复核 | +| `ANA-YS-INDUSTRY-001` | 有色行业整体研报分析 | 人类要求有色行业研报按行业整体案例长期承接 | 长期承接有色行业研报归档、解析、证据沉淀、行业/市场/公司视图输出和后续增量更新 | 进行中;`BATCH-001` 试运行完成,待正式审核员复核 | `BATCH-001` 30 份 PDF 已完成归档、manifest、转换、证据链和父体系 result/tmp/img 入口;尚未形成有色行业正式结论 | `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` 待复核 | -## 2. 案例事项:ANA-SMOKE-001 +## 2. 记录模板 + +### <YYYY-MM-DD HH:mm:ss> <ANA-ID>:<案例分析事项名称> + +创建人员: +<创建人员> + +来源聊天记录: +```text +<粘贴关键聊天记录,或写明聊天记录路径> +``` + +方法论 / 上游依据: +<笔记、规则、文档、样本包、上游结论> + +背景: +<为什么要做这批案例分析> + +目标: +<希望通过案例分析验证、理解或沉淀什么> + +边界: +<本轮做什么,不做什么> + +案例范围: +<案例类型、时间范围、样本范围、对象范围> + +当前状态: +未开始 / 进行中 / 待审核 / 完成 / 暂缓 / 取消 + +当前结论: +<当前可读结论;没有结论时写“暂无”> + +设计入口: +<案例分析设计.md 或行业目录案例分析设计.md 中 DESIGN-ID> + +执行日志入口: +<案例执行日志.md 或行业目录案例执行日志.md 中 LOG-ID> + +结果包入口: +<ana-data/result/... 或 ana-data/cases/<行业案例>/<case_id>/outputs/...> + +审计入口: +<案例审计报告.md 或行业目录案例审计报告.md 中 AUDIT-ID> + +需问题记录承接的非审计问题 / 审计问题索引入口: +<案例问题记录.md 中 ISSUE-ID;如无写“无”> + +## 3. 案例事项:ANA-SMOKE-001 - 案例 ID:ANA-SMOKE-001 - 案例名称:案例体系初始化 dry-run @@ -22,8 +73,56 @@ - 背景:修复 `project-info` 初始创建时案例体系目录和本地文档未按创建指南完整落地的问题。 - 目标:验证 `ana-doc/`、`ana-data/`、设计、执行日志、审计报告和问题记录之间能形成最小可追溯链路。 - 边界:本事项不是股市业务案例,不分析具体股票、研报、新闻或收益,不产生交易建议。 -- 设计入口:`ana-doc/案例分析设计.md#案例设计ana-smoke-001` +- 设计入口:`ana-doc/案例分析设计.md` / `DESIGN-ANA-SMOKE-001` - 执行入口:`ana-doc/案例执行日志.md#2026-06-25-run-ana-smoke-001` - 审计入口:`ana-doc/案例审计报告.md#2026-06-25-audit-ana-smoke-001` - 结果包入口:无真实结果包;本事项为体系 dry-run。 - 当前结论:本地文档和数据目录已补齐,仍需审核员确认是否满足 `common/ana-doc/案例分析环境创建指南.md`。 + +## 4. 案例事项:ANA-REPORT-SYSTEM-20260625-001 + +- 案例 ID:ANA-REPORT-SYSTEM-20260625-001 +- 案例名称:研报体系接入 ana-doc +- 创建人员:Codex +- 创建时间:2026-06-25 +- 当前状态:已执行,待审核员复核 +- 背景:人类确认将现有研报体系融入 `project-info/ana-doc` 案例体系,不另起一套平行体系。 +- 目标:迁入研报解析和研报分析方法母版,融合研报存储规则到父级案例存储体系,并让案例分析规范、审核规范、有色案例模板可按新体系运行。 +- 边界:本事项只做体系文档接入和有色模板同步,不执行历史有色资料迁移,不跑 30 份 PDF 试运行,不产出行业投资结论。 +- 设计入口:`ana-doc/案例分析设计.md` / `DESIGN-ANA-REPORT-SYSTEM-20260625-001` +- 执行入口:`ana-doc/案例执行日志.md#2026-06-25-run-ana-report-system-20260625-001` +- 审计入口:`ana-doc/案例审计报告.md#2026-06-25-audit-ana-report-system-20260625-001` +- 结果包入口:无单独结果包;产物为 `ana-doc/` 规范和方法母版更新。 +- 当前结论:研报体系已按“融入 ana,不替换 ana”原则接入父级案例体系,需审核员复核规则一致性和可执行性。 + +## 5. 案例事项:ANA-YS-TEMPLATE-001 + +- 案例 ID:ANA-YS-TEMPLATE-001 +- 案例名称:有色行业研报容器初始化 +- 创建人员:Codex +- 创建时间:2026-06-25 +- 当前状态:已迁入父级总纲,待审核员复核 +- 背景:人类要求在 `ana-doc/` 下创建有色行业研报承接目录,并明确该目录只是行业容器,不是一个案例。 +- 目标:建立 `ana-doc/有色案例/` 行业容器,形成有色子规范、设计、执行日志、审计报告、问题记录、存储补充和有色研报解析方案入口。 +- 边界:只创建行业容器和继承规则,不导入历史有色研报结论,不执行正式研报分析。 +- 设计入口:`ana-doc/有色案例/案例分析设计.md` / `DESIGN-ANA-YS-TEMPLATE-001` +- 执行入口:`ana-doc/有色案例/案例执行日志.md#2026-06-25-run-ana-ys-template-001` +- 审计入口:`ana-doc/有色案例/案例审计报告.md#2026-06-25-audit-ana-ys-template-001` +- 结果包入口:暂无正式结果包。 +- 当前结论:有色行业容器已落地;行业目录不再维护独立 `案例总纲.md`,后续真实有色案例统一登记在本父级总纲。 + +## 6. 案例事项:ANA-YS-INDUSTRY-001 + +- 案例 ID:ANA-YS-INDUSTRY-001 +- 案例名称:有色行业整体研报分析 +- 创建人员:Codex +- 创建时间:2026-06-25 +- 当前状态:进行中;`BATCH-001` 试运行完成,待正式审核员复核 +- 背景:人类确认有色目录是行业容器,正式有色研报分析应作为一个行业整体案例长期承接;每次资料读取用 batch/run 记录,不因 30 份资料自动新建案例。 +- 目标:长期承接有色行业研报归档、解析、证据沉淀、行业视图、市场视图、公司视图输出和后续增量更新;`BATCH-001` 只验证行业级 raw、converted、extracted、evidence、manifest 与案例级 outputs/引用清单能否闭环。 +- 边界:`BATCH-001` 不输出有色行业投资结论;不做外部信息补充;不做市场反向补漏;不写 MySQL;不替代正式审核员复核。 +- 设计入口:`ana-doc/有色案例/案例分析设计.md` / `DESIGN-ANA-YS-INDUSTRY-001` +- 执行入口:`ana-doc/有色案例/案例执行日志.md` / `RUN-ANA-YS-INDUSTRY-001-BATCH-001` +- 审计入口:`ana-doc/有色案例/案例审计报告.md` / `AUDIT-ANA-YS-INDUSTRY-001-BATCH-001` +- 结果包入口:`ana-data/result/有色案例/ANA-YS-INDUSTRY-001/result_index.md` +- 当前结论:`BATCH-001` 30 份 PDF 已完成 raw 归档、行业级 manifest 登记、pypdf 文本转换、样本元数据抽取、evidence trace 和父体系 result/tmp/img 分流;PyMuPDF/fitz 缺失和旧铜铝目录无扩展名文件属于执行自检发现,已分别落入执行日志、验证报告和数据缺口表,不作为问题记录闭环。当前仍未形成有色行业正式结论。 diff --git "a/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" index 62b0ff5..88b61e5 100644 --- "a/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" +++ "b/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" @@ -6,10 +6,77 @@ 引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例审计报告.md;案例存储体系.md。 记录方式:append-only 执行日志;每次案例执行、重跑或修复追加记录。 +## 1. 当前执行总览 + +| 日志 ID | 所属设计 | 案例范围 | 状态 | 结果包 | 审计 | +|---|---|---|---|---|---| +| `RUN-ANA-SMOKE-001` | `DESIGN-ANA-SMOKE-001` | 案例体系初始化 dry-run | 完成,待审核员复核 | 无真实结果包 | `AUDIT-ANA-SMOKE-001` | +| `RUN-ANA-REPORT-SYSTEM-20260625-001` | `DESIGN-ANA-REPORT-SYSTEM-20260625-001` | 研报体系接入 ana-doc | 已执行,待审核员复核 | 文档体系更新 | `AUDIT-ANA-REPORT-SYSTEM-20260625-001` | +| `RUN-ANA-ISSUE-BOUNDARY-20260625-001` | `DESIGN-ANA-REPORT-SYSTEM-20260625-001` | 案例问题记录边界规范维护 | 已完成,待审核员复核 | 规范和结果包口径更新 | 待复核 | +| `RUN-ANA-INDUSTRY-CONTAINER-20260625-001` | `DESIGN-ANA-REPORT-SYSTEM-20260625-001` | 行业容器结构调整 / 有色 raw 池迁移 | 已完成,待审核员复核 | 有色 pilot manifest 路径更新 | 待复核 | + +## 2. 执行记录模板 + +### <YYYY-MM-DD HH:mm:ss> <LOG-ID>:<执行标题> + +所属案例事项: +<ANA-ID> + +关联设计: +<DESIGN-ID> + +执行人员: +<执行人员> + +执行目标: +<本次执行要完成什么> + +输入: +<方法论文档、候选池、数据源、图片源、上游结果> + +执行过程: + +1. <关键步骤 1> +2. <关键步骤 2> + +关键节点记录: + +| 节点 | 说明 | 数据路径 | 图片路径 | 结论 | +|---|---|---|---|---| +| 候选来源 | <如何得到候选> | <path> | <path> | <结论> | +| 案例选择 | <为什么选这些案例> | <path> | <path> | <结论> | +| 关键判断 | <按什么规则判断> | <path> | <path> | <结论> | +| 结果复盘 | <最终结果> | <path> | <path> | <结论> | + +逐案例证据链记录: + +| 案例 ID | 候选来源 | 入选理由 | 背景证据 | 关键判断 / 操作 | 数据路径 | 图片路径 | 结果 | 是否符合设计 | +|---|---|---|---|---|---|---|---|---| +| <CASE-ID> | <候选池或上游来源> | <为什么选中> | <背景数据或背景图> | <按设计逐步记录关键判断或操作> | <path> | <path> | <结果> | 是 / 否;如否说明偏离 | + +输出: +<结果包、表、图片、readout、summary> + +偏离设计: +<如无写“无”;如有,说明原因和影响> + +自检结果: +<文件是否存在、行数是否合理、图片是否可读、关键证据是否齐全> + +执行结果 / 结论回写: +<本次执行最终结果;如影响案例总纲或设计,写明已回写位置或待回写原因> + +当前状态: +完成 / 部分完成 / 失败 / 暂缓 + +审计入口: +<案例审计报告.md 中 AUDIT-ID> + ## 2026-06-25 RUN-ANA-SMOKE-001 - run ID:RUN-ANA-SMOKE-001 - 所属案例:ANA-SMOKE-001 +- 关联设计:DESIGN-ANA-SMOKE-001 - 执行人员:management.admin - 执行类型:体系初始化 dry-run - 当前状态:完成,待审核员复核 @@ -38,3 +105,125 @@ 本 run 只证明体系文档链路已按指南补齐,不证明任何股市业务结论。 +## 2026-06-25 RUN-ANA-REPORT-SYSTEM-20260625-001 + +- run ID:RUN-ANA-REPORT-SYSTEM-20260625-001 +- 所属案例:ANA-REPORT-SYSTEM-20260625-001 +- 关联设计:DESIGN-ANA-REPORT-SYSTEM-20260625-001 +- 执行人员:Codex +- 执行类型:研报体系接入 ana-doc +- 当前状态:已执行,待审核员复核 + +### 执行步骤 + +1. 读取父级 `ana-doc/` 现有规范、审核规范、存储体系和目录导读。 +2. 读取 mirror 本地研报体系建设方案和研报核心文档,确认“融入 ana,不替换 ana”的原则。 +3. 创建 `ana-doc/研报体系/`。 +4. 迁入 `研报解析架构.md` 和 `研报分析架构.md`,并在项目内版本中补充 `project-info` 接入口径。 +5. 未创建独立 `ana-doc/研报体系/研报存储体系.md`;将研报存储规则写入父级 `案例存储体系.md`。 +6. 重写父级 `案例分析规范.md`,补充研报体系接入流程、新行业创建流程、行业子规范优先级、记录落点和 darkline 外部信息规则。 +7. 重写父级 `案例审核规范.md`,补充研报案例审核类型、高风险问题、证据抽查、阻断项和审计记录位置。 +8. 重写父级 `案例存储体系.md`,补充研报类案例目录、manifest、状态、结构化数据底座、行业扩展表、暗线分账和追溯链路。 +9. 重写父级 `目录导读.md`,登记研报体系方法母版、数据目录和行业案例入口。 +10. 同步 `ana-doc/有色案例/` 下子规范、存储体系、分析设计和 `有色研报解析方案.md`,移除旧 mirror 临时路径和独立研报存储母版引用。 +11. 创建 `ana-data/cases/有色案例/.gitkeep`,保留有色案例数据分组入口。 + +### 产物 + +- `ana-doc/研报体系/研报解析架构.md` +- `ana-doc/研报体系/研报分析架构.md` +- `ana-doc/目录导读.md` +- `ana-doc/案例分析规范.md` +- `ana-doc/案例审核规范.md` +- `ana-doc/案例存储体系.md` +- `ana-doc/有色案例/目录导读.md` +- `ana-doc/有色案例/案例分析规范.md` +- `ana-doc/有色案例/案例审核规范.md` +- `ana-doc/有色案例/案例存储体系.md` +- `ana-doc/有色案例/案例分析设计.md` +- `ana-doc/有色案例/有色研报解析方案.md` +- `ana-data/cases/有色案例/.gitkeep` + +### 未执行事项 + +1. 未迁移历史有色研报资料。 +2. 未执行 30 份 PDF 试运行。 +3. 未生成行业投资结论。 +4. 未修改 common 规范。 + +### 自检 + +1. `ana-doc/研报体系/` 下未创建独立 `研报存储体系.md`。 +2. 旧 mirror 本地路径未作为正式执行入口保留在 `ana-doc`。 +3. 通用存储体系未固化有色、矿区等行业专属表。 +4. 有色案例子规范已声明继承父级同名文档和父级存储体系。 + +## 2026-06-25 RUN-ANA-ISSUE-BOUNDARY-20260625-001 + +- run ID:RUN-ANA-ISSUE-BOUNDARY-20260625-001 +- 所属案例:ANA-REPORT-SYSTEM-20260625-001 +- 关联设计:DESIGN-ANA-REPORT-SYSTEM-20260625-001 +- 执行人员:Codex +- 执行类型:案例问题记录边界规范维护 +- 当前状态:已完成,待审核员复核 + +### 执行步骤 + +1. 复查 common 案例体系中 `案例问题记录模版.md`、`案例分析规范.md`、`案例分析环境创建指南.md`、`目录导读.md` 和 `案例总纲模版.md` 的问题记录口径。 +2. 将“执行者自发现且能在本轮或本案例内处理的问题”明确排除在 `案例问题记录.md` 之外。 +3. 同步更新 `project-info/ana-doc` 父级本地规范、审核规范、目录导读和案例问题记录。 +4. 同步更新 `ana-doc/有色案例/` 的分析设计、审核规范、目录导读、执行日志、审计报告和案例问题记录。 +5. 将 `ANA-YS-INDUSTRY-001` 中 PyMuPDF/fitz 缺失和旧铜铝目录无扩展名文件从有色案例问题记录迁回执行日志、验证报告和数据缺口表。 + +### 产物 + +- `../../common/ana-doc/案例问题记录模版.md` +- `../../common/ana-doc/案例分析规范.md` +- `../../common/ana-doc/案例分析环境创建指南.md` +- `../../common/ana-doc/目录导读.md` +- `../../common/ana-doc/案例总纲模版.md` +- `ana-doc/案例分析规范.md` +- `ana-doc/案例审核规范.md` +- `ana-doc/目录导读.md` +- `ana-doc/案例问题记录.md` +- `ana-doc/有色案例/案例分析设计.md` +- `ana-doc/有色案例/案例审核规范.md` +- `ana-doc/有色案例/目录导读.md` +- `ana-doc/有色案例/案例执行日志.md` +- `ana-doc/有色案例/案例审计报告.md` +- `ana-doc/有色案例/案例问题记录.md` +- `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/summary.md` +- `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/outputs/validation_report.md` + +### 自检 + +1. 执行者自发现且可处理的问题,落点为执行日志、自检、验证报告、manifest、数据缺口表或结果包。 +2. `案例问题记录.md` 只承接外部反馈、执行者无法自行闭环、需跨轮/跨角色跟踪的非审计问题,以及审计问题索引。 +3. 有色案例问题记录当前无有效问题记录。 + +## 2026-06-25 RUN-ANA-INDUSTRY-CONTAINER-20260625-001 + +- run ID:RUN-ANA-INDUSTRY-CONTAINER-20260625-001 +- 所属案例:ANA-REPORT-SYSTEM-20260625-001 +- 关联设计:DESIGN-ANA-REPORT-SYSTEM-20260625-001 +- 执行人员:Codex +- 执行类型:行业容器结构调整 / 有色 raw 池迁移 +- 当前状态:已完成,待审核员复核 + +### 执行步骤 + +1. 将行业目录规则从“行业目录自带案例总纲”调整为“父级 `案例总纲.md` 是唯一案例总账,行业目录只是容器”。 +2. 更新父级 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 和 `目录导读.md`。 +3. 将 `ana-doc/有色案例/案例总纲.md` 中的 `ANA-YS-TEMPLATE-001` 和 `ANA-YS-INDUSTRY-001` 迁入父级 `案例总纲.md`。 +4. 删除 `ana-doc/有色案例/案例总纲.md`。 +5. 更新 `ana-doc/有色案例/` 下目录导读、分析规范、审核规范、存储体系、分析设计、执行日志、审计报告、问题记录和有色研报解析方案。 +6. 将 `ANA-YS-INDUSTRY-001` 的 30 个 raw PDF 从 `ana-data/cases/有色案例/ANA-YS-INDUSTRY-001/raw/` 迁移到行业统一 raw 池 `ana-data/cases/有色案例/raw/`。 +7. 更新 pilot 的 `artifact_manifest.csv`、`source_document.csv`、`migration_manifest.csv`、`conversion_status.csv`、`evidence_index.csv` 和校验清单,补充 `batch_id=BATCH-001`、`run_id=RUN-ANA-YS-INDUSTRY-001-BATCH-001` 并修正 raw 路径。 + +### 自检 + +1. 行业容器目录不再维护 `案例总纲.md`。 +2. 父级 `案例总纲.md` 已承接有色模板初始化和 pilot 试运行两个案例事项。 +3. 有色 raw 文件已统一在 `ana-data/cases/有色案例/raw/`。 +4. 逐案例目录继续保留 converted、extracted、supplement、evidence、outputs、manifest 和 tmp。 + diff --git "a/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" index 520ac02..33a45f1 100644 --- "a/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" +++ "b/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" @@ -1,21 +1,78 @@ # 案例问题记录 创建人员:management.admin -文件职责:记录 `project-info` 项目案例分析体系中非审计来源问题,或审计问题的跨轮索引。 +文件职责:记录 `project-info` 项目案例分析体系中外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计来源问题,或审计问题的跨轮索引。 管理规范/模板:../../common/ana-doc/案例问题记录模版.md;../../common/ana-doc/案例分析环境创建指南.md。 引用文件:案例审计报告.md;案例执行日志.md;案例总纲.md;../项目问题记录.md。 记录方式:append-only 问题账本;新增问题、状态变化和复验结论追加记录。 +口径说明:执行 AI 或案例分析员在执行中自发现、且能在本轮或本案例内修复、回退、降级或形成明确处理结果的问题,不写入本文件;处理过程应记录到 `案例执行日志.md`、自检、验证报告、manifest、数据缺口表或对应结果包。 + ## 1. 当前问题总览 -| 问题 ID | 来源 | 严重级别 | 状态 | 主记录 | -|---|---|---|---|---| -| ANA-ISSUE-20260625-DOCS-INIT-001 | 人类反馈 | 中 | 已由 management.admin 重建,待审核员复核 | `案例审计报告.md#2026-06-25-audit-ana-smoke-001` | +| 问题 ID | 所属案例 | 类型 | 严重级别 | 状态 | 责任方 | +|---|---|---|---|---|---| +| `ANA-ISSUE-20260625-DOCS-INIT-001` | `ANA-SMOKE-001` | 人类反馈 / 文档初始化问题 | P2 一般 | 已由 management.admin 重建,待审核员复核 | management.admin | -## 2. 问题记录 +## 2. 问题记录模板 + +### <YYYY-MM-DD HH:mm:ss> <ISSUE-ID>:<问题标题> + +所属案例事项: +<ANA-ID / CASE-ID / DESIGN-ID / LOG-ID> + +问题类型: +设计问题 / 执行问题 / 数据问题 / 图片问题 / 证据链问题 / 结论过读 / 未来函数 / 待归因 + +严重级别: +P0 阻断 / P1 重要 / P2 一般 / P3 建议 + +发现人: +<发现人> + +来源类型: +外部非审计反馈 / 执行者无法自行闭环问题 / 跨轮跟踪索引 / 审计问题索引 + +原始反馈原文或入口: +<逐字原文;如原文较长,写附件路径、消息 ID、会话时间> + +原子需求拆解: +<原文 -> 原子需求 -> 证据入口 -> 关闭条件> + +关联审计: +<案例审计报告.md 中 AUDIT-ID;非审计反馈可写无> + +证据: +<文件、表、图片、日志路径,或粘贴关键片段> + +问题描述: +<问题是什么> + +影响: +<影响案例结论、流程、证据链、可复核性还是只是建议> + +建议修复: +<建议怎么修,不要无边界加码> + +当前状态: +未处理 / 修复中 / 待复审 / 已关闭 / 暂缓 + +复审结论: +<复审结果;未复审写“待复审”> + +关闭条件: +<什么条件下可以关闭> + +## 3. 问题记录 ### ANA-ISSUE-20260625-DOCS-INIT-001:初始案例体系文档未按创建指南项目化 +- 所属案例事项:ANA-SMOKE-001 +- 问题类型:文档初始化问题 +- 严重级别:P2 一般 +- 发现人:人类 +- 来源类型:外部非审计反馈 +- 关联审计:`AUDIT-ANA-SMOKE-001` - 来源:人类反馈。 - 描述:此前 `project-info` 的 `ana-doc/` 文档由 common 模板机械复制,未按案例分析环境创建指南完成项目化入口、存储体系、dry-run 和初始化审计。 - 影响:案例体系虽有文件,但不能可靠承接正式案例分析事项。 diff --git "a/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" index 7fc6f9b..342c4aa 100644 --- "a/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" +++ "b/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" @@ -1,51 +1,134 @@ -# ana-doc 目录导读 +# ana-doc 目录导读 -创建人员:management.admin -文件职责:说明 `project-info` 项目案例分析体系文档入口和相邻数据目录用途。 -管理规范/模板:../项目规范.md;../../common/ana-doc/案例分析环境创建指南.md;../../common/ana-doc/案例分析规范.md。 -引用文件:案例分析规范.md;案例审核规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md;../项目配置清单.md。 +创建人员:management.admin +文件职责:说明 `project-info` 项目案例分析体系文档入口、研报体系方法母版、行业案例目录和相邻数据目录用途。 +管理规范/模板:../项目规范.md;../../common/ana-doc/案例分析环境创建指南.md;../../common/ana-doc/案例分析规范.md。 +引用文件:研报体系导读.md;案例分析规范.md;案例审核规范.md;案例存储体系.md;数据抓取脚本说明.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;研报体系/研报解析架构.md;研报体系/研报分析架构.md;../项目配置清单.md。 记录方式:目录入口文档;本目录正式文件新增、删除、改名或职责变化时同步更新。 ## 1. 本体系定位 -`project-info` 的案例分析体系用于沉淀股市信息案例,包括研报、公告、新闻、公开网络信息、K 线显影、数据证据和分析结论。案例体系只记录可复核的案例链路,不替代实验体系的可执行验证,也不直接给出交易建议。 +`project-info` 的案例分析体系用于承接研报研究、行业资料分析、外部信息补充、市场显影检查、暗线分流、证据归档、核心文档输出和审核闭环。 -## 2. 文档入口 +案例体系只记录可复核的案例链路,不替代实验体系的可执行验证,也不直接给出交易指令。研报体系进入本项目后,作为 `ana-doc` 案例体系的一部分运行:案例生命周期、设计审核、执行日志、审计闭环以 ana 体系为主;研报解析和研报分析方法作为专业步骤嵌入。 + +## 2. 父级文档入口 | 文件 | 作用 | |---|---| -| `案例分析规范.md` | 本项目案例分析本地规范入口,引用 common 规范并说明本项目补充口径 | -| `案例审核规范.md` | 本项目案例审核本地规范入口,引用 common 审核规范并说明审核员职责 | -| `案例总纲.md` | 案例事项背景、目标、边界、状态和结论账本 | -| `案例分析设计.md` | 案例选择口径、执行步骤、证据要求和验收方式 | -| `案例执行日志.md` | 案例执行过程、关键节点、数据和证据路径 | +| `研报体系导读.md` | 研报体系工作入口,说明案例分析员、审核员和体系维护者如何读取核心文档、执行案例、提交审核和归档产物 | +| `案例分析规范.md` | 本项目案例分析本地规范入口,融合研报解析架构和研报分析架构流程,含研报体系接入流程、资料归档、主动补数据、市场反向补漏、核心文档输出、行业子规范优先级和 darkline 使用规则 | +| `案例审核规范.md` | 本项目案例审核本地规范入口,融合研报解析架构和研报分析架构的审核要求,含研报案例设计审核、执行审核、存储审核、输出审核、结论边界审核和复审清单 | +| `案例存储体系.md` | 案例数据、研报资料、证据、结果包、manifest、MySQL 追溯和临时文件存储口径 | +| `数据抓取脚本说明.md` | `ana-data/tools/` 数据抓取、外部来源归档、本地 MySQL 只读导出和市场反向补漏脚本使用说明 | +| `案例总纲.md` | 父级案例事项背景、目标、边界、状态和结论账本 | +| `案例分析设计.md` | 父级案例选择口径、执行步骤、证据要求和验收方式 | +| `案例执行日志.md` | 父级案例执行过程、关键节点、数据和证据路径 | | `案例审计报告.md` | 初始化审计、设计审核、执行审核、复审和审计问题主记录 | -| `案例问题记录.md` | 非审计来源问题,或审计问题跨轮索引 | -| `案例存储体系.md` | 案例数据、证据、图片、结果包和临时文件存储口径 | +| `案例问题记录.md` | 外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计问题,或审计问题跨轮索引 | -## 3. 数据目录 +父级 `ana-doc/` 只记录体系级规则、跨行业规则、目录入口和跨行业问题;单个行业研报案例的过程明细写入对应行业案例目录。 + +## 3. 研报体系方法母版 + +| 文件 | 作用 | +|---|---| +| `研报体系/研报解析架构.md` | 行业研报解析方法母版;定义行业方案继承机制、行业/市场/公司三类视图和解析输出底线 | +| `研报体系/研报分析架构.md` | 行业研报分析方法母版;定义资料归档、转换、证据抽取、指标标准化、主动补数据、市场反向补漏、暗线分流和人读文档闭环 | + +说明: + +1. `研报解析架构.md` 和 `研报分析架构.md` 是方法母版,保留在 `ana-doc/研报体系/`。 +2. 研报存储规则已经融入 `案例存储体系.md`,不在 `ana-doc/研报体系/` 下另建正式 `研报存储体系.md`。 +3. 方法母版中出现的有色、铜、矿区等内容是示例,不是跨行业通用表或通用对象要求。 +4. 具体行业需要哪些对象、字段、表和输出文档,由该行业自己的 `<行业>研报解析方案.md` 定义。 + +## 4. 数据目录 | 目录 | 作用 | |---|---| -| `../ana-data/cases/` | 案例级结构化数据和逐案例证据目录 | -| `../ana-data/result/` | 正式结果包、汇总表、审计辅助输出 | -| `../ana-data/img/` | 案例图片、图册、标注图和图片 manifest | -| `../ana-data/tmp/` | 临时数据和中间产物,不得作为正式证据入口 | +| `../ana-data/cases/` | 逐行业统一 raw 池、行业级通用研报产物,以及逐案例正式输出、引用清单和证据映射 | +| `../ana-data/result/` | 父体系结果入口、对外交付包、跨案例汇总结果包、审计辅助输出、父级汇总表 | +| `../ana-data/img/` | 图片、图册、研报截图、OCR 图片、标注图和图片 manifest | +| `../ana-data/tmp/` | 临时数据和中间产物,按行业、case、run 分组,不得作为正式证据入口 | +| `../ana-data/tools/` | 数据抓取、MySQL 只读导出和市场反向补漏脚本;脚本产物不得留在此目录 | -## 4. 行业 / 研究案例目录 +研报类行业级通用资料库默认使用: -正式行业研报研究应按独立文件夹管理。每个新的行业研究案例必须在 `ana-doc/` 下创建自己的案例文件夹,并在文件夹根目录创建与本层 `ana-doc/` 对应的一组案例文档。 +```text +ana-data/cases/<行业案例>/ + raw/ + converted/ + extracted/ + supplement/ + evidence/ + manifest/ +``` + +研报类逐案例自定义结果目录默认使用: + +```text +ana-data/cases/<行业案例>/<case_id>/ + outputs/ + manifest/ + evidence/ +``` + +研报类父体系兼容目录默认使用: + +```text +ana-data/tmp/<行业案例>/<case_id>/<run_id>/ +ana-data/result/<行业案例>/<case_id>/ +ana-data/img/<行业案例>/<case_id>/ +``` + +研报类行业统一 raw 池默认使用: + +```text +ana-data/cases/<行业案例>/raw/ +``` + +所有原始研报、公告、网页快照和外部资料原件必须先进入行业统一 `raw/`。转换、抽取、补充、通用证据事实和行业级 manifest 进入行业级目录;逐案例目录只保存输出、案例引用清单和案例结论证据映射。临时文件进入 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,结果入口或交付包索引进入 `ana-data/result/<行业案例>/<case_id>/`,图片进入 `ana-data/img/<行业案例>/<case_id>/`。raw 与具体案例、批次、执行轮次的关系由 manifest 中的 `case_id`、`batch_id`、`run_id` 绑定。不得创建 `ana-data/cases/<行业案例>/<case_id>/raw/`,也不得按 batch 或 run 拆 raw 原始资料目录。 + +## 5. 行业 / 研究案例目录 + +正式行业研报研究应按行业容器文件夹管理。每个新的行业方向必须在 `ana-doc/` 下创建自己的行业容器文件夹;行业容器不是一个案例,不创建自己的 `案例总纲.md`。 | 目录 | 作用 | 状态 | |---|---|---| -| `有色案例/` | 有色行业研报案例模板和后续有色研报研究入口 | 已创建模板 | +| `有色案例/` | 有色行业研报容器和后续有色研报研究入口 | 已创建 | -行业案例目录中的规范类和存储类文档以本层 `ana-doc/` 的同名文档为母版;总纲、分析设计、执行日志、审计报告和问题记录作为该行业案例自己的账本独立维护。 +每个行业案例目录根目录至少包含: -## 5. 当前案例入口 +1. `目录导读.md` +2. `案例分析规范.md` +3. `案例审核规范.md` +4. `案例存储体系.md` +5. `案例分析设计.md` +6. `案例执行日志.md` +7. `案例审计报告.md` +8. `案例问题记录.md` +9. `<行业>研报解析方案.md` + +行业案例目录中的规范类和存储类文档以本层 `ana-doc/` 的同名文档为母版;行业 `案例分析规范.md` 和 `案例审核规范.md` 默认只作为轻量继承入口和行业补充,不复制父级主流程、阶段门、审核类型和阻断条件。分析设计、执行日志、审计报告和问题记录作为该行业容器自己的事项、执行、审核和问题账本独立维护。真实案例统一登记在父级 `案例总纲.md`,行业目录不得创建平行的 `案例总纲.md`。 + +## 6. 当前案例入口 | 案例 ID | 名称 | 状态 | 入口 | |---|---|---|---| -| `ANA-SMOKE-001` | 案例体系初始化 dry-run | 初始化完成,待审核员复核 | `案例总纲.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md` | +| `ANA-SMOKE-001` | 案例体系初始化 dry-run | 初始化审核通过 | `案例总纲.md`、`案例分析设计.md`、`案例执行日志.md`、`案例审计报告.md` | +| `ANA-YS-TEMPLATE-001` | 有色行业研报容器初始化 | 已迁入父级总纲,待审核员复核 | `案例总纲.md`、`有色案例/案例分析设计.md`、`有色案例/案例执行日志.md`、`有色案例/案例审计报告.md` | +| `ANA-YS-INDUSTRY-001` | 有色行业整体研报分析 | 进行中;`BATCH-001` 30 PDF 存储与转换试运行已完成,待正式审核员复核 | `案例总纲.md`、`有色案例/案例分析设计.md`、`有色案例/案例执行日志.md`、`有色案例/案例审计报告.md` | -新增正式案例时,应先在 `案例总纲.md` 登记,再在 `案例分析设计.md` 补设计;设计审核通过后才能执行。 +新增正式案例时,应先在父级 `案例总纲.md` 登记,再在对应行业目录 `案例分析设计.md` 补事项拆解、批次设计和执行方案;设计审核通过后才能执行。 + +## 7. 执行入口选择 + +AI 接到研报或行业资料分析任务时,先判断任务落点: + +1. 跨行业通用规则、父级规范、研报方法母版维护:落父级 `ana-doc/`。 +2. 单个行业研报分析、资料读取、输出文档、证据链、执行日志、审计问题:案例登记落父级总纲,事项拆解和过程明细落对应行业案例目录;执行者自发现且可处理的问题写入执行日志、自检或验证报告,不写入问题记录。 +3. 行业原始资料和通用研报产物:落 `ana-data/cases/<行业案例>/raw|converted|extracted|supplement|evidence|manifest/`;逐案例输出、引用清单和案例证据映射:落 `ana-data/cases/<行业案例>/<case_id>/`。 +4. 临时文件:落 `ana-data/tmp/<行业案例>/<case_id>/<run_id>/`,不得作为正式证据入口。 +5. 结果入口、对外交付包、跨案例汇总:落 `ana-data/result/<行业案例>/<case_id>/`;图片、截图、OCR 图片、图册和标注图:落 `ana-data/img/<行业案例>/<case_id>/`。 +6. 数据抓取和只读导出脚本:从 `ana-data/tools/` 执行,使用说明看 `数据抓取脚本说明.md`;输出仍按行业和案例进入 `supplement/evidence/manifest/tmp/result/img`。 diff --git "a/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\345\210\206\346\236\220\346\236\266\346\236\204.md" "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\345\210\206\346\236\220\346\236\266\346\236\204.md" new file mode 100644 index 0000000..c7e576d --- /dev/null +++ "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\345\210\206\346\236\220\346\236\266\346\236\204.md" @@ -0,0 +1,553 @@ +# 研报分析架构 + +本文档是面向外部阅读的研报收集与分析体系说明。它回答三个问题: + +1. 研报、公告、文章和公开数据进入体系后,如何变成可验证的行业分析。 +2. 分析结果如何区分事实、指标、观点、投资读法和暗线线索。 +3. 执行 AI 或分析人员应该按什么顺序处理资料,避免只读不归档、只写结论不留证据。 + +项目接入口径:本文档在 `project-info` 中作为研报分析方法母版使用。正式执行时,案例生命周期、设计审核、执行日志、审计闭环遵守 `ana-doc/案例分析规范.md`;文件、证据、结果包和 MySQL 追溯规则遵守 `ana-doc/案例存储体系.md`。 + +## 1. 文档定位 + +本体系适用于所有需要做研报、公告、文章和公开数据解析的行业。 + +它不是单纯的“研报摘要工具”,而是一套把外部资料变成可追溯证据、结构化数据和人读文档的工作闭环。 + +核心目标: + +```text +资料进入 +-> 原始归档 +-> 文本转换 +-> 证据抽取 +-> 指标标准化 +-> 观点校验 +-> 缺口补数 +-> 人读文档输出 +-> 验收与追溯 +``` + +## 2. 两段式工作边界 + +整个体系分成两段。 + +第一段是信息收集与分析归档: + +```text +收集资料 +-> 归档 raw +-> 转换 text / markdown / table +-> 分类到行业 / 子行业 / 公司 +-> 抽取证据句、事实、指标、观点 +-> 主动补公开数据 +-> 写入文件清单、数据表、MySQL +-> 输出 readout、缺口清单、下一步动作 +``` + +第二段是输出核心文档给用户阅读: + +```text +消费第一段沉淀的证据、指标、观点和公司映射 +-> 更新行业总览 +-> 更新市场总览 +-> 更新子行业总览和详细介绍 +-> 更新公司文档 +-> 更新暗线文档 +-> 做人读验收 +``` + +边界要求: + +1. 只完成 raw 归档、文本转换或证据抽取,不能说核心文档已经完成。 +2. 只写结论但没有来源、证据和指标支撑,不能进入正式结论。 +3. 研报观点不能直接当事实,必须保留来源和置信度。 +4. 关键数据缺失时,必须进入补数或缺口状态,不能用文字推理绕过去。 + +## 3. 输入范围 + +允许进入体系的资料包括: + +```text +PDF 研报 +网页研报 +行业文章 +上市公司公告 +交易所公告 +政府政策 +行业协会数据 +海关 / 统计数据 +商品价格 / 库存 / 供需数据表 +公司官网和投资者关系资料 +新闻事件 +人工补充资料 +``` + +每个输入都必须进入来源清单,例如 `industry_analysis_source_document` 或等价的 manifest。外部收件目录只能作为来源路径,不能代替正式归档。 + +## 4. 核心原则 + +1. 研报是主输入,但不是唯一输入。 +2. 原始资料必须归档,不能只保留摘要。 +3. 所有可结构化的信息都尽量入库。 +4. 人读文档必须能追溯到结构化数据和原始来源。 +5. 结构化数据必须能追溯到证据句、页码、文件和 hash。 +6. 观点、事实、指标、暗线线索必须分账,不得混写。 +7. 缺口要显式记录,不能靠口头判断掩盖。 +8. 同一 PDF 只转换一次,后续复用缓存产物。 +9. 批量处理必须输出批次 summary、manifest、缺口清单和下一步动作。 + +## 5. 标准状态流转 + +每篇资料和每个批次都要有处理状态,避免把“已读”“已抽证据”“已形成指标”“已支撑人读文档”混在一起。 + +建议状态: + +```text +RAW_REGISTERED: 资料已登记,但未归档。 +RAW_ARCHIVED: 原始文件或网页保存件已归档,hash 已记录。 +TEXT_CONVERTED: 已完成文本、Markdown 或表格转换。 +CLASSIFIED: 已归到总行业 / 子行业 / 公司。 +EVIDENCE_EXTRACTED: 已抽出证据句、事实句、观点句或公司证据。 +METRIC_NORMALIZED: 关键指标已标准化成可横向比较的数据。 +SUPPLEMENT_REQUIRED: 发现关键缺口,需要主动补公开资料。 +SUPPLEMENT_ARCHIVED: 补充资料已归档并能追溯。 +HUMAN_DOC_INPUT_READY: 证据、指标和公司映射足以进入核心文档输出。 +HUMAN_DOC_READY: 已经按核心文档输出方案完成给人看的文档。 +HELD_BY_DATA_GAP: 关键数据缺失,不能支撑强结论。 +ERROR: 转换、归档、入库或校验失败。 +``` + +使用边界: + +1. `EVIDENCE_EXTRACTED` 只说明有证据句,不说明指标已标准化。 +2. `METRIC_NORMALIZED` 只说明数据可比较,不说明投资结论成立。 +3. `HUMAN_DOC_INPUT_READY` 才能进入核心文档输出流程。 +4. 缺核心数据时必须停在 `SUPPLEMENT_REQUIRED` 或 `HELD_BY_DATA_GAP`。 + +## 6. 标准处理流程 + +### 6.1 收集原始资料 + +先把原始文件或链接登记下来。 + +必须记录: + +```text +标题 +来源机构 +作者 +发布时间 +收集时间 +原始 URL +原始文件路径 +行业 / 子行业 / 公司初步归属 +``` + +### 6.2 原始文件归档 + +原始 PDF、网页保存件、公告和数据表必须放入统一资料库。 + +具体行业推荐 raw 路径: + +```text +ana-data/cases/<行业案例>/raw/ +``` + +这是所有行业共享的行业级原始资料池。不得把 raw 原始资料放入 `ana-data/cases/<行业案例>/<case_id>/raw/`,也不得按 batch 或 run 拆分 raw 目录;case、batch、run 与 raw 的关系必须写入 manifest、source_document、conversion_status、evidence_index 或数据库记录。 + +归档后记录: + +```text +raw_file_path +file_sha256 +file_size +source_snapshot_id +detected_type +archive_status +``` + +文件类型以文件头为准,不只相信扩展名。无扩展名、扩展名缺失、扩展名和文件头不一致的资料,都必须先识别格式。 + +### 6.3 文本转换 + +PDF 和网页需要转换成可解析文本。 + +转换优先级: + +```text +PyMuPDF / fitz: 优先,用于快速正文提取。 +pdfplumber: 用于表格密集型 PDF。 +pypdf: 用于简单文本。 +OCR: 仅在扫描版 PDF 必须处理时启用。 +``` + +转换产物放入: + +```text +ana-data/cases/<行业案例>/converted/ +``` + +同一文件只转换一次,后续读取 converted 缓存。 + +转换文本属于行业级通用研报产物,不按 case、batch 或 run 分散存放;具体案例通过 manifest 中的 `case_id`、`batch_id`、`run_id` 引用该转换产物。 + +### 6.4 分类到行业对象 + +资料至少要归到一个对象层级: + +```text +总行业 +子行业 +公司 +``` + +分类规则: + +1. 只讲行业,归到 `industry_id`。 +2. 讲某个细分产品、技术路线、应用场景或商业模式,归到 `subindustry_id`。 +3. 讲某家公司,归到 `company_id`,同时保留行业和子行业。 +4. 跨多个细分方向或公司,允许拆成多条观点、指标和关系。 +5. 无法判断,标记 `REVIEW`,不进入正式汇总。 + +### 6.5 识别主导变量 + +完成初步分类后,先判断该子行业或公司的主导变量,再决定后续重点抽取什么数据。不能默认所有行业都用产量、销量、销售额模板。 + +常见主导变量: + +```text +资源供给型 +成本曲线型 +技术壁垒型 +政策 / 国际关系型 +金融属性型 +需求爆发型 +公司资产型 +``` + +至少记录: + +```text +primary_driver_type +driver_type_list +core_focus_list +validation_metric_list +driver_selection_reason +``` + +示例: + +1. 上游关键要素受限,归供给约束型。 +2. 政策准入、出口限制、监管变化,归政策 / 国际关系型。 +3. 工艺、算法、客户认证、产品性能门槛,归技术壁垒型。 +4. 需求、价格、资金属性共同驱动的方向,可以同时具备需求属性和金融属性。 + +### 6.6 内容解析 + +每篇资料按五类信息拆分: + +```text +产业链事实 +市场数据 +公司数据 +研报观点 +主导变量和核心重点 +``` + +对应入库关系: + +```text +产业链事实 -> chain_node / company_industry_link / 行业扩展表 +市场数据 -> market_metric / 行业扩展表 +公司数据 -> company / company_metric +研报观点 -> report_viewpoint +主导变量 -> subindustry / subindustry_core_variable +``` + +证据句、事实句、观点句和指标候选先进入 `evidence_fact`,再标准化到市场指标、公司指标或观点表。这样可以保留原文到结论之间的中间层。 + +### 6.7 单篇研报实际分析动作 + +执行 AI 或分析人员实际读一篇研报时,不能只做摘要。建议按下面动作顺序走: + +```text +确认资料身份和来源 +-> 归档 raw 并记录 hash +-> 转换或定位可读文本 +-> 快速识别报告主题、覆盖对象和核心结论 +-> 拆出事实句、指标句、观点句、公司映射和风险句 +-> 给每条重要信息挂 doc_id、页码、句子索引或表格索引 +-> 标准化时间、单位、口径和对象归属 +-> 对照已有行业、子行业、公司文档查重和补充 +-> 判断哪些观点缺公开数据支撑 +-> 主动补公告、协会、海关、交易所、公司 IR 等资料 +-> 写入 evidence_fact、market_metric、company_metric、report_viewpoint 等对象 +-> 形成 readout,但标注置信度和数据缺口 +-> 扫描是否存在暗线线索,必要时分流 +-> 更新人读文档或写入 next_action_list +``` + +实际输出时要区分三种结果: + +1. `事实沉淀`:已经能追溯到来源的产业链事实、公司事实和数据事实。 +2. `观点沉淀`:研报或分析者的判断,必须有置信度和验证指标。 +3. `结论沉淀`:只有在事实、指标和缺口检查完成后,才可以进入人读文档或投资读法。 + +### 6.8 批量研报实际分析动作 + +批量处理时,不能把多篇研报压成一个大摘要。建议按批次走: + +```text +建立 input_manifest +-> 按文件 hash 去重 +-> 批量归档 raw +-> 批量转换 text / markdown / table +-> 按行业、子行业、公司初分 +-> 逐篇抽 evidence_fact +-> 合并同类指标并统一口径 +-> 汇总观点差异和冲突 +-> 列 unresolved_data_gap +-> 做 source_gap_audit +-> 做市场反向补漏 +-> 做暗线分流 +-> 输出 batch_summary 和 next_action_list +``` + +批量结论必须保留“哪些资料支持、哪些资料反对、哪些资料只是重复观点”。如果不同研报之间存在口径冲突,优先记录冲突,不要强行合并成单一结论。 + +## 7. 主动补数据机制 + +研报中出现以下情况时,必须主动补资料: + +1. 关键数据缺失。 +2. 研报只有结论,没有支撑数据。 +3. 提到关键资产、产能、订单、库存、价格、政策或客户认证,但没有来源。 +4. 提到受益公司,但没有业务占比、利润弹性或资源权益。 +5. 提到政策、出口管制、海外权益、地缘风险,但缺少现实证据。 +6. 提到技术壁垒、客户认证、材料性能、资产注入或国资整合,但缺验证路径。 +7. 公司投资建议需要判断当前股价是否已经反映预期。 + +补数流程: + +```text +确定缺口 +-> 列出要查的问题 +-> 搜索公开资料 +-> 记录来源和链接 +-> 归档补充资料 +-> 写入 source_document +-> 抽取事实或观点 +-> 更新原研报解析结论 +``` + +资料优先级: + +```text +官方公告、交易所公告、政府数据 +> 行业协会 / 交易所库存 / 海关统计 +> 公司官网 / 投资者关系 +> 新闻 +> 其他研报观点 +``` + +## 8. 市场反向补漏 + +研报和公开资料是正向输入,但行业分析不能只跟着资料目录走。每批资料处理后,需要用市场已经显影的公司反查体系是否漏了子行业、技术路线或核心公司。 + +触发条件: + +```text +某行业近 3 个月出现涨停、连续大涨或放量突破公司。 +某公司明显强于同行,但当前体系没有公司文档或只被宽标签覆盖。 +某子行业资料很少,但市场里已有资金持续显影。 +某个强显影公司核心业务不在当前子行业清单中。 +``` + +市场反向补漏只用于发现资料缺口,不直接构成投资结论。 + +范围分层: + +```text +CORE_INDUSTRY: 主业明确属于目标行业,可进入补档队列。 +ADJACENT_DOWNSTREAM: 相邻下游、材料应用、设备或客户链条,需要单独 review。 +FALSE_THEME_OR_NOISE: 只是概念、宽关键词或题材噪声,只保留审计。 +``` + +执行流程: + +```text +确定目标行业 / 主题 +-> 拉取近 3 个月强显影股票清单 +-> 按公司核心业务重归因 +-> 过 scope_type 范围闸门 +-> 判断缺失子行业 / 缺失公司 / 缺失关键变量 / 题材噪声 +-> 对缺失项写入补资料清单 +-> 补公告、年报、公司官网、行业公开资料和必要研报 +-> 更新子行业清单、公司候选清单和人读文档覆盖范围 +``` + +最低输出: + +```text +market_manifestation_gap_audit.csv +market_manifestation_gap_priority.csv +market_manifestation_gap_summary.json +industry_analysis_market_manifestation_gap_audit +``` + +最低字段: + +```text +scan_id +industry_id +symbol +company_name +manifestation_date +manifestation_type +core_business_readout +scope_type +suspected_missing_track +gap_type +supplement_required_flag +supplement_question +review_status +``` + +## 9. 暗线技术的作用 + +暗线不是普通供需、价格、库存、产量或券商观点。暗线用于识别资料中隐含的意图、目标、组织行为、政策铺垫、资本动作或市场显影背后的非显性逻辑。 + +暗线技术解决四个问题: + +1. 把疑似暗线线索从普通产业链事实中分流出来,避免污染正常行业分析。 +2. 把零散线索组织成可验证假设,而不是凭感觉写故事。 +3. 为每条假设建立“前置铺垫、后续应有之线、市场输出、反证”的跟踪框架。 +4. 让暗线结论有状态、有证据、有置信度,可被后续复盘推翻或确认。 + +暗线处理主线: + +```text +研报 / 新闻 / 政策 / 公告中的异常线索 +-> 反推可能的意图、目标或组织行为 +-> 找前置铺垫和后续应有之线 +-> 验证现实事件链 +-> 判断影响哪个子行业、公司、风格或股票 +-> 单独输出暗线文档 +``` + +普通分析与暗线分流: + +```text +普通事实 -> chain_node / market_metric / company_metric +普通观点 -> report_viewpoint +疑似暗线线索 -> report_viewpoint.darkline_signal_flag=1 +明确暗线假设 -> darkline_hypothesis +暗线证据 -> darkline_evidence_link +暗线市场输出 -> darkline_market_output +``` + +硬边界: + +1. 商品价格、库存、供需变化本身不是暗线。 +2. 研报看多、目标价上调、行业景气判断本身不是暗线。 +3. 暗线必须涉及意图、目标、组织行为、人心变化或资本 / 政策动作。 +4. 暗线假设不是投资结论,必须有证据、置信度和反证路径。 +5. 暗线文档单独输出,不写进普通子行业详细介绍里。 + +## 10. 人读文档输出顺序 + +结构化数据和补充资料最终服务人读文档。输出顺序必须从底层到总览: + +```text +先更新数据表和结构化记录 +-> 再更新子行业详细介绍 +-> 再更新子行业总览 +-> 再更新公司文档 +-> 最后更新行业总览和索引 +``` + +原因:总览必须来自已经整理过的事实和结论,不能先凭感觉写总览。 + +## 11. 每轮最低输出 + +每轮研报分析至少输出或更新: + +```text +source_document 记录 +artifact_manifest 记录 +解析摘要或 readout +相关 MySQL 表 +相关人读文档 +必要时输出暗线文档 +``` + +如果是阶段性批量分析,还要输出: + +```text +batch_summary.md +input_manifest.csv +output_manifest.csv +conversion_status.csv +evidence_fact_table.csv +classification_summary.csv +unresolved_data_gap.csv +source_gap_audit.csv +next_action_list.csv +``` + +说明: + +1. `evidence_fact_table.csv` 记录“原文哪句话支撑哪个事实或指标”。 +2. `unresolved_data_gap.csv` 记录缺什么、为什么缺、影响哪条结论。 +3. `source_gap_audit.csv` 防止资料已给但没读、读了但没归档、归档了但没索引。 +4. 即使某批只做补档或复盘,也必须输出 summary、manifest 和缺口审计。 + +## 12. 验收标准 + +一轮研报分析完成后,至少检查: + +1. 原始资料是否归档。 +2. 转换资料是否归档,或明确无需转换。 +3. 来源、路径、hash 是否记录。 +4. 总行业、子行业、公司分类是否明确。 +5. 产业链事实、市场数据、公司数据、研报观点是否分账。 +6. 关键缺口是否已主动补资料,无法补的是否记录数据缺口。 +7. 暗线线索是否单独分流。 +8. 人读文档是否更新。 +9. 人读文档能否追溯到结构化数据。 +10. 结构化数据能否追溯到原始来源。 +11. 批次状态是否明确停在正确阶段。 +12. 每个 raw 来源是否至少有一个 `source_document` 记录。 +13. 每个 converted 文本是否能追溯到 raw 文件和 hash。 +14. 每条证据句是否能追溯到 `doc_id`、`text_path`、`source_snapshot_id`、页码或句子索引。 +15. 每个标准化指标是否能追溯到证据句或公开数据来源。 +16. 每个关键结论需要的数据是否在 `unresolved_data_gap.csv` 中被检查过。 +17. 如果资料覆盖多个细分方向、多个公司或多个暗线线索,是否拆分记录,而不是只留一条摘要。 +18. 如果发现暗线,是否按暗线分流,不和普通产业链事实混存。 + +## 13. 禁止事项 + +1. 不只读研报不归档。 +2. 不只写摘要不入库。 +3. 不把研报观点直接当事实。 +4. 不把缺数据的观点写成确定结论。 +5. 不把暗线混进普通产业链事实。 +6. 不重复转换同一个 PDF。 +7. 不让总览文档和数据库各说各话。 +8. 不把无法追溯来源的数据写进正式结论。 + +## 14. 给执行 AI 的最小阅读顺序 + +执行 AI 在接手一个新行业或安装暗线能力时,最少读取: + +```text +1. ana-doc/案例分析规范.md +2. ana-doc/案例存储体系.md +3. ana-doc/研报体系/研报解析架构.md +4. ana-doc/研报体系/研报分析架构.md +5. ana-doc/<行业案例>/<行业>研报解析方案.md +6. 父级 `ana-doc/案例总纲.md` 中该案例记录、该行业目录的案例分析设计和报告索引 +``` + +暗线能力本身是一套分析和分流方法,不依赖必须导入某个固定数据包。数据包只是行业资料输入。没有数据包时,可以安装并理解暗线方法;要在具体行业中产出结论,才需要接入该行业资料、manifest、证据和历史文档。 diff --git "a/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\350\247\243\346\236\220\346\236\266\346\236\204.md" "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\350\247\243\346\236\220\346\236\266\346\236\204.md" new file mode 100644 index 0000000..a49ed3a --- /dev/null +++ "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273/\347\240\224\346\212\245\350\247\243\346\236\220\346\236\266\346\236\204.md" @@ -0,0 +1,310 @@ +# 研报解析架构 + +本文档是行业研报解析的母版架构。所有具体行业的研报解析方案,都必须以本文档为核心架构和核心原则进行展开。 + +项目接入口径:本文档在 `project-info` 中作为研报解析方法母版使用。后文出现的有色、铜、矿区等内容是行业示例,不是跨行业通用对象或通用表要求。具体行业需要哪些对象、字段、专属表和输出文档,由该行业自己的 `<行业名>研报解析方案.md` 定义,并且不得违反 `ana-doc/案例分析规范.md`、`ana-doc/案例审核规范.md` 和 `ana-doc/案例存储体系.md`。 + +## 0. 行业方案继承机制 + +执行 AI 或分析人员拿到本文档,并被指派某个具体行业后,第一件事不是直接读研报,而是先创建该行业自己的研报解析方案。 + +命名建议: + +```text +<行业名>研报解析方案.md +``` + +例如: + +```text +机器人研报解析方案.md +半导体研报解析方案.md +有色研报解析方案.md +``` + +行业方案必须说明: + +1. 本行业的分析目标和边界。 +2. 本行业的核心子行业、技术路线、商业模式或产业链分层。 +3. 本行业需要额外定义哪些行业专属表。 +4. 本行业的人读文档输出方案。 +5. 本行业是否覆写母版流程;如果覆写,必须写清楚新流程。 +6. 本行业当前还缺哪些数据、资料和验证指标。 + +继承规则: + +1. 母版规定的是底线,不是示例建议。 +2. 行业方案可以细化母版,也可以在流程上覆写母版。 +3. 如果行业方案定义了自己的流程,执行时按行业方案流程走。 +4. 如果行业方案没有定义自己的流程,执行时按母版默认流程走。 +5. 除流程以外,行业方案不得违反母版要求。 +6. 行业方案不能绕过 `raw 归档`、`manifest`、`source_document`、`evidence_fact`、`指标标准化`、`观点不当事实`、`缺口清单`、`暗线分流`、`人读验收` 和 `可追溯链路`。 + +行业方案必须在研报解读过程中持续优化。每当发现新的主导变量、关键表、核心公司分类、输出文档结构、暗线识别规则或流程缺陷,都要回写到行业方案,并说明变更原因。 + +行业专属表只在行业方案中定义。母版只规定扩展表必须可追溯、可验收、可迁移,不规定某个行业一定要有哪些专属表。 + +## 三大的分析汇总方向 +目前所有的东西分: +1. 产业链比如:就是有色整个产业链的情况,比如铜,主要的矿在哪,主要的开采公 + 司有哪些(哪些是中国企业,哪些国外企业),下游主要使用厂商或者公司有哪些。总的涵盖两部分: +-- 产业链的详细介绍 +-- 产业链内部的运行方式(我打个比喻,产业详情介绍类似 一个公司内部不同部门的详细介绍,那么产业链内部运行方式,就是公司运作的时候,各个部门是如何配合起来的)这个内部运转方式核心是要追着订单走,从订单开始到最终订单交付的流程产业链怎么走的 +2. 市场相关当前市场的情况,有整体的市场数据,2025年,2026年整体行业的销售生产数据,其中前5名公司的销售额占比或者生产占比等 +3. 公司方向,只针对该行业的公司进行分析,但是分析的时候是以公司角度不是以行业角度,因为一个公司可能涉及多个行业 + +## 核心理念 +1. 产业链的描述的核心理念是为了让一个普通人都能看懂,且让一个普通人能快速的了解整个行业,要让一个普通人快速了解这个行业有几个关键点: +-- 整体输出文档一定要详尽且生动,关键结论和关键流程,一定要适当的展开,像讲故事一样,有案例,有数据,这样才能让人知道结论是如何来的, 总的来说所有核心结论和流程,都有把前因后果讲清楚 +-- 当结论有多项因素影响时,一定要对多项因素进行横向对比,否则很难知道到底哪个更重要,占比多少 +-- 一些专业名词一定要解释,而且要解释的够大白话和详细 +-- 产业链里如果有不同的技术路线,尤其是有新的技术路线一定要重点解释,并且跟老的路线最横向对比 +2. 市场的描述的目的是为了让一个普通人快速的了解市场行情,整个行业是向上的还向下的,核心公司在行业里的占比,这样一个普通人就能快速了解到整个大行业的趋势,前景,以及里面的核心标的,这里几个关键点如下: +-- 所有的东西结论一定要有数据支撑 +-- 关键的行业,关键的公司一定核心数据的横向对比 +-- 整体市场,行业的关键数据一定要有展开说明,也就是要有数据,也要有解释 + +3. 公司的描述是为了让普通人快速了解这个投资标的情况这里也有几个关键点: +-- 公司的核心团队 +-- 公司的盈利模式 +-- 公司的核心赛道,以及在赛道的位置 +-- 公司在对应行业的地位,占比(分国内和国际) +特例:对这公司一些重要产品,甚至有可能还有没有开始对外销售,但是我们并不能忽略这些产品,因为这对投资也非常重要(比如说中国的A股的玻璃基板目前还没有对外销售但是每次突破股价都会大涨)针对这类产品最好能按照:产品展示、送样、联调、定点、小批量、批量、主供 / 独供 这种类型的方式进行阶段性的解释和总结(这个方式不一定适用所有情况) +-- 公司在该行业的业务在公司里的占比,以及在公司里的地位 +-- 该公司对应的该行业的业务是否会分拆上市 + + +### 案例 + +#### 铜行业案例 + +下面是原来铜详细介绍输出文档输出的东西: +******************************************* + +铜当前的主导变量不是单一销量,而是五类变量叠加。 + +| 主导变量 | 重要性 | 具体含义 | 主要影响 | +| --- | --- | --- | --- | +| 资源供给 | 高 | 铜矿扩产慢,海外矿山扰动、罢工、政策、品位下降都会影响精矿供给 | 利好权益矿和资源端 | +| 需求增量 | 高 | AI 数据中心、电网投资、新能源车、储能、风光、军工电子 | 支撑铜价中枢 | +| 利润分配 | 高 | TC/RC 决定矿端和冶炼端利润分配 | TC/RC 低时矿山强、纯冶炼弱 | +| 金融属性 | 中高 | 美元、利率、通胀、风险偏好、跨市场库存 | 影响铜价节奏和波动 | +| 库存结构 | 中 | LME、SHFE、COMEX 库存和现货升贴水 | 影响短线强弱 | + +******************************************* + +这个案例里给出了很多核心的结论但是问题也很明显,太干巴巴了,用户看了根本不知道原因,比如资源供给 为什么重要性是高?前因后果没说清楚,用户只是看了结论,并不能真正的理解它 + +需求增量 高,为什么高,是不是应该给数据支撑,AI 数据中心、电网投资、新能源车、储能、风光、军工电子 应该有个占比的对比,比如说: +所有的铜用量,AI 数据中心、电网投资、新能源车、储能、风光、军工电子 占了全部的百分之99,然后每年增速是百分之50,然后 AI占了 这百分之99的百分之50,电网占了其中的百分之40等等 这样就很生动 + +利润分配也是类似 + + + +## 分析思路 +1. 整体分析思路按总分的方式,第一个总就上面的两个大的分析汇总方向,分下面的子行业,同时子行业又是公司的总,公司是子行业的分。 +2. 第一个产业链总览和产业链市场相关(只是不同说的视角,一个是产业链视角,一个市场事业视角)要说清楚以下事项: +-- 整个产业链的详细描述:比如说产业链是如何流转的,产业链的整体背景,产业链有哪些子行业,每个子行业是做什么的等等,其他(可以补充) +-- 整个产业链里哪些哪几个子行业最有话语权,哪些几个行业是承压的,为什么是这样的情况 +3. 产业链内部的运行方式(我打个比喻,产业详情介绍类似 一个公司内部不同部门的详细介绍,那么产业链内部运行方式,就是公司运作的时候,各个部门是如何配合起来的) +-- 运行情况,运行周期(比如说,我只是打个比方不一定是真实情况:某个矿区每年1季度开采铜,其他3个季度就不开采了,这就是运行周期) +-- 内部详细的运作方式(这里我需要尽量详细比如说 铜开采完怎么怎么处理然后交个下个公司进行精炼整合,然后交給下一个公司进行其他行为(行为尽量详细)) +4. 子行业的最核心的关注点两个: +-- 该行业内的公司的普遍商业模式是什么?是靠卖量赚钱,还是靠平台吸流量赚钱 +-- 该行业内的核心竞争力是什么,列出前3点(可以少于3点)?比如是靠技术壁垒,比如是靠客户关系,比如得有自己的矿山资源 +5. 把子行业上面两个关注点细化成N个核心重点(比如商业模式是靠销售量和净利润:那可能核心重点就是A.客户关系 B.产品的利润比 C.产品的年损耗率 ,然后核心竞争力比如是: +D技术实力,E销售能力,那这A,B,C,D,E这5点就是核心重点) +6. 整个子行业的描述方式就汇总出来如下,同时还是两个视角,产业链视角和市场视角: +-- 行业的详细介绍包括:行业背景,行业全球分布,行业的核心要点(上面的N个核心重点)并通过些核心点行业里最核心的公司介绍出来(比如什么什么哪几个公司最强),以及未来的展望 +-- 围绕上面N个核心重点,做公司(或者矿区)之间的横向对比,以及未来的展望 +7. 公司的核心团队,包括公司的文化,理念和其他基本信息 +8. 公司,就围绕着N个核心重点来介绍它针对这N个核心重点建造的壁垒,同时介绍清楚维护该壁垒的核心团队或者资源比如: +-- 技术团队很牛逼,技术经验很丰富,行业周期长等等所以技术壁垒很强 +-- 比如公司有很多座矿山,公司有特别牛海外公关团队专门跟政府谈判买矿山等等 + +后面的架构就是基于这个思路输出出来的对有色的产物,但是不一定对,所以需要看研报的过程中不停地调整,且可能要根据不同的矿品种来调整 + +## 核心输出文档 +1. 产业链的描述的核心理念是为了让一个普通人都能看懂,且让一个普通人能快速的了解整个行业,要让一个普通人快速了解这个行业有几个关键点: +-- 整体输出文档一定要详尽且生动,关键结论和关键流程,一定要适当的展开,像讲故事一样,有案例,有数据,这样才能让人知道结论是如何来的, 总的来说所有核心结论和流程,都有把前因后果讲清楚 +-- 当结论有多项因素影响时,一定要对多项因素进行横向对比,否则很难知道到底哪个更重要,占比多少 +-- 一些专业名词一定要解释,而且要解释的够大白话和详细 +-- 产业链里如果有不同的技术路线,尤其是有新的技术路线一定要重点解释,并且跟老的路线最横向对比 +2. 市场的描述的目的是为了让一个普通人快速的了解市场行情,整个行业是向上的还向下的,核心公司在行业里的占比,这样一个普通人就能快速了解到整个大行业的趋势,前景,以及里面的核心标的,这里几个关键点如下: +-- 所有的东西结论一定要有数据支撑 +-- 关键的行业,关键的公司一定核心数据的横向对比 +-- 整体市场,行业的关键数据一定要有展开说明,也就是要有数据,也要有解释 +3. 公司的描述是为了让普通人快速了解这个投资标的情况,看该公司是否值不值得投资这里也有几个关键点: +-- 公司的核心团队 +-- 公司的盈利模式 +-- 公司的核心赛道,以及在赛道的位置 +-- 公司在对应行业(目前分析的行业)的地位,占比(分国内和国际) +特例:对这公司一些重要产品,甚至有可能还有没有开始对外销售,但是我们并不能忽略这些产品,因为这对投资也非常重要(比如说中国的A股的玻璃基板目前还没有对外销售但是每次突破股价都会大涨)针对这类产品最好能按照:产品展示、送样、联调、定点、小批量、批量、主供 / 独供 这种类型的方式进行阶段性的解释和总结(这个方式不一定适用所有情况) +-- 投资该公司的风险点 +-- 公司在该行业的业务在公司里的占比,以及在公司里的地位(过去,现在,未来) +-- 该公司对应的该行业的业务是否会分拆上市 +-- 对该行业核心业务的投入占比 + + +后续库里的内容能支撑 +假设流程: +1. 如果某个假设发生以后,会影响哪些行业,最受影响的公司有哪些,具体是什么影响?比如:美伊战争发生了,对有色的影响 + + +## 核心文档输出参考流程(当前有效版) + +本节为当前有效口径,覆盖上方旧流程草稿。核心文档输出必须先贴合三类人能直接阅读的主文档,再在每一类下面展开当前行业架构里的总体、子行业、市场和公司层级。不能把“基础事实卡、主导变量、产业链故事、数据对比、公司对比”这些流程产物当成最终文档主位。 + +### 1. 三类核心文档是最上层输出 + +| 上层核心文档 | 文档目的 | 下层展开方式 | 必须包含的材料模块 | 校验重点 | +| --- | --- | --- | --- | --- | +| 行业视角文档 | 讲清行业是什么、怎么运行、怎么赚钱 | 总体行业 -> 子行业 -> 子行业里的关键公司/资产 | 基础事实卡、产业链流转、子行业展开、盈利模式、核心变量、关键数据排序 | 是否能让人理解行业本身,而不是只看到投资结论 | +| 市场视角文档 | 讲清当前市场状态、利润传导和未来阶段 | 总体市场 -> 子行业市场 -> 子行业核心公司分配比例 | 价格、销量、产量、库存、供需、利润、TC/RC、下游消耗占比、未来1季度/1年/3年推演 | 是否有数据、横向对比、历史对比和市场阶段判断 | +| 公司视角文档 | 讲清单个公司的全视角投资价值 | 单公司全景 -> 公司涉足行业 -> 核心赛道 -> 对应目标行业业务 -> 股价和投资建议 | 公司业务结构、核心赛道、业绩、市场份额、资源/技术/团队壁垒、分拆上市可能、估值和股价位置 | 是否能支持“这家公司好不好、现在值不值得看”的判断 | + +三类核心文档的关系: + +1. 行业视角里的“公司”,主要说明该公司在这个赛道里的位置。例如铜行业里,某公司是矿端强、冶炼强、加工强,还是副产品强。 +2. 公司视角里的“公司”,是该公司的全视角,不限于当前行业。要说明它涉足哪些行业,核心赛道是什么,有没有非当前行业的关键业务,以及这些业务是否有分拆上市或估值重估可能。 +3. 市场视角里的“公司”,主要用于市场分配和受益比例判断。比如某个子行业涨价、供给收缩、需求爆发时,哪些公司最直接受益,受益程度如何排序。 +4. 总体 -> 子行业 -> 公司/市场,是三类核心文档下面的下层展开结构,不是第四类核心文档。 +5. 基础事实卡、主导变量、产业链故事、关键数据对比、公司横向对比、场景假设和投资读法,都是支撑这三类核心文档的材料模块,不能独立替代三类核心文档。 + +### 2. 核心文档输出参考流程 + +1. 确定文档目标和边界 + - 先确认本次输出属于行业视角、市场视角、公司视角,还是三者组合。 + - 明确本次文档回答的问题:讲行业本身、讲市场阶段、还是讲公司投资价值。 + - 不同金属/材料不能套同一模板,必须先判断这个品种的核心变量是资源、技术、国际关系、需求、库存、政策还是金融属性。 + +2. 读取数据中心和资料来源 + - 先读已经归档的研报、公开资料、MySQL结构化数据、数据缺口清单和索引。 + - 新补资料必须记录来源、时间、路径或数据库记录,不能只凭记忆写结论。 + - 如果关键数据缺失,要在文档里标 DATA_GAP_REVIEW,不能用空泛判断替代数据。 + - 同步读取市场反向补漏结果:近 3 个月涨停、连续大涨、放量突破、逆行业上涨等强显影公司是否暴露了未覆盖子行业、技术路线、资源品种或核心公司。 + - 如果市场反向补漏发现遗漏对象,先进入缺口清单和补资料流程;补完前不能把该行业文档写成“主要公司/主要赛道已覆盖完整”。 + +3. 建立基础事实卡 + - 每个成熟子行业或核心金属都要先有基础事实:全球产量/消费量、中国占比、主要产地、主要企业、当前价格、历史价格区间、库存、供需平衡、主要下游占比、A股映射。 + - 基础事实卡是后面所有判断的地基。没有基础事实,就不能直接写强结论。 + +4. 解释商业模式和核心竞争力 + - 讲清楚这条产业链如何赚钱:货物流怎么走,钱流怎么走,利润在哪一段沉淀。 + - 专业术语必须用白话解释。例如 TC/RC、升贴水、库存、权益矿、自给率、套保等,不能只列名词。 + - 公司的核心竞争力要落到资源、成本、技术、客户、团队、牌照、海外能力、资本开支和扩产能力等具体维度。 + +5. 找主导变量模型 + - 按当前阶段给变量排序,例如资源供给、需求增量、利润分配、库存结构、金融属性、政策和国际关系。 + - 每个高重要性变量都要有数据卡:当前值、历史对比、横向对比、来源、影响链条、受益公司和不利公司。 + - 关键数据必须横向对比和排序,不只公司要横向对比。比如铜的下游消耗要列出电网、建筑、家电、新能源车、AI数据中心、储能、军工电子等主要方向的消耗量或占比,并说明谁是最大头、谁是新增量、谁只是边际故事。 + - 数据对比至少包含三类:历史对比、横向对比、结构占比。 + +6. 写产业链故事和运行周期 + - 不能只画箭头,要把上游、中游、下游如何相互影响讲成故事。 + - 重点写清:供给怎么形成,需求从哪里来,价格怎么传导,利润怎么分配,库存和贸易如何改变短期节奏。 + - 关键结论必须配案例或数据。例如矿端强于冶炼端,要说明 TC/RC、权益矿比例、副产品和库存套保如何影响利润。 + +7. 判断当前市场状态 + - 分清长期产业趋势、中期周期位置、短期交易拥挤度。 + - 市场状态至少要看价格、库存、供需、政策、汇率/利率、资金偏好、行业景气和A股位置。 + - 如果某个结论只适用于短期或某个窗口,要明确写窗口,不能扩大成长期判断。 + +8. 做关键数据和公司横向对比 + - 先做数据横向对比,再做公司横向对比。数据不清楚时,公司强弱判断容易变成主观排序。 + - 关键数据横向对比包括:产量、消费量、库存、价格、成本、利润分配、下游占比、进口依赖、资源集中度、扩产节奏、供给扰动、需求增量。 + - 同一子行业公司要横向比较:资源量、产量、成本、技术、客户、扩产、管理团队、财务质量、估值、股价位置和催化。 + +9. 做场景假设影响映射 + - 对重要假设做影响链:如果某事件发生,会影响哪些金属、哪些子行业、哪些公司,影响是价格、利润、订单、估值还是情绪。 + - 暗线/事件链要和普通行业事实分账:可以引用暗线结论,但必须标明它是意图假设或事件推演,不得混成已确认事实。 + +10. 形成投资读法 + - 最终输出要回答:最值得看的方向是什么,最直接受益公司是谁,二线扩散公司是谁,现在能不能买,什么情况要等,什么情况要回避。 + - 每条投资读法都要有触发条件、失效条件和主要风险。 + - 如果数据不足,只能输出观察清单或补数清单,不能硬给强投资结论。 + +11. 审核校验 + - 检查三类核心文档是否分清:行业视角、市场视角、公司视角。 + - 检查所有关键结论是否有数据、案例、来源或明确推理链支撑。 + - 检查是否有“只有结论没有展开”的段落;如果有,必须补背景、数据、案例或降级。 + - 检查基础事实是否缺失,术语是否解释,关键数据横向对比是否完成,公司横向对比是否完成,关键公司是否覆盖。 + - 检查文档是否区分事实、推理、研报观点、暗线假设和投资建议。 + +12. 发布和归档 + - 输出文档后更新索引、数据来源、数据缺口和归档记录。 + - 能结构化的数据尽量进入数据库或数据表;文档只做面向人的解释和读法。 + - 后续新资料、新案例、新数据若改变结论,要新增版本或更新记录,不要无痕覆盖。 + +写作底线:关键结论只能作为标题,后面必须展开“背景是什么、数据是什么、案例是什么、为什么这样推、对公司和股票意味着什么”。如果这五项讲不清,结论就要降级。 + +## 附录 A:有色分析架构示例(非通用要求) + +本附录只作为有色行业示例,帮助执行 AI 理解如何把母版原则展开到一个具体行业。这里出现的有色、铜、矿区、矿山、权益矿、TC/RC 等对象,不是所有行业必须具备的通用对象、字段、表或流程。其他行业必须先创建自己的 `<行业名>研报解析方案.md`,再按该行业的商业模式、技术路线、产业链和核心变量重新定义对象和输出。 + +参考上面的整个研报的分析思路,进行了以下有色分析架构的拆解 + +### 总体概述 +核心两个文档 +1.有色的产业链总览.md (行业视角) +2.有色的市场情况总览.md (市场视角) + +### 子行业 +对子行业的分析包含如下,同时也分成两个文档市场和产业链: +产业链相关(行业视角): +1.有色每一个子行业的产业链,整个链条的描述, +可能的链条如下:矿区,开采公司,精炼公司,再加工公司,最后使用的公司和场景(在读研报的过程中尽量优化这个链条,让它更合理) +2.链条上最核心的公司的有哪些,具体负责做什么 +3.同类核心公司的核心指标(来源于核心竞争力分析)的横向对比: +-- 销售能力 +-- 资源能力 +-- 技术实力 +-- 其他(可以补充) +4.同类核心矿区的核心数据横向对比: +-- 对应的有色金属年开采或生产总量(如果有) +-- 对应的有色金属的总量,以及分布情况(比如容易开采的占多少,不容易开采的,以及类似维度的数据) +-- 稳定开采情况(比如有战争吗?有内乱吗?是不是动不动就会撕毁协议) +5.其他 + +子行业市场情况(市场视角): +1. 不同行业和产品对有色金属使用的情况,以及对应的占比, 以及最近几年的使用情况和未来几年的使用情况的预估 +2. 产业链核心链条,矿区的核心数据对比: +-- 对应的有色金属年开采或生产总量(如果有) +-- 对应的有色金属的总量,以及分布情况(比如容易开采的占多少,不容易开采的,以及类似维度的数据) +-- 其他(可以补充) +3. 同类核心公司的核心指标(市场占比核心数据)的横向对比: +-- 对应的有色金属的开采或生产总量(如果有) +-- 对应的有色金属的销售总量(如果有) +-- 对应的有色金属的使用总量(如果有) +-- 其他(可以补充) +4. 供需关系的情况,以及最近几年的情况和未来几年的情况的预估 +5. 最近10年和未来几年对应有色金属的核心指标的环比 +-- 销售价格 +-- 开采量 +-- 使用量 +-- 储备量 + + +### 矿区和公司(公司视角) + +应该包含产业链里核心公司的矿区的公司数据(公司整体情况): +1. 公司的基本情况(创立年份,国家,员工规模) +2. 公司的核心销售,生产,盈利等数据 +3. 公司的核心的团队介绍 +4. 公司的主营业务,核心竞争力,有色这块在公司的业务占比(有可能公司的主营业务不是有色) +5. 公司的有色相关业务有没有分拆上市的可能 +6. 其他(可以补充) +公司的市场数据(公司市场视角): +1. 公司的去年今年的盈利数据 +2. 有色这块在盈利数据里的占比 +3. 公司的市场数据 +4. 有色这块在公司的市场数据占比 +核心判断: +1. 该公司整体是上否是一个很优质的投资标的(需要列几个维度出来,进行评分) + + + +### 有价值的暗线 + +如果发现有价值的暗线按暗线的方式记录下来,单独输出一个暗线文档 diff --git "a/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273\345\257\274\350\257\273.md" "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273\345\257\274\350\257\273.md" new file mode 100644 index 0000000..7a919c6 --- /dev/null +++ "b/ana-doc/\347\240\224\346\212\245\344\275\223\347\263\273\345\257\274\350\257\273.md" @@ -0,0 +1,286 @@ +# 研报体系导读 + +创建人员:Codex +文件职责:作为 `project-info/ana-doc` 研报体系入口导读,说明案例分析员、审核员和体系维护者在本体系下如何工作,以及应引用哪些核心文档。 +管理规范/模板:目录导读.md;案例分析规范.md;案例审核规范.md;案例存储体系.md。 +引用文件:案例分析规范.md;案例审核规范.md;案例存储体系.md;数据抓取脚本说明.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;研报体系/研报解析架构.md;研报体系/研报分析架构.md。 +记录方式:体系入口导读;父级研报流程、存储口径、审核口径或行业目录创建方式变化时同步更新。 + +## 1. 本导读定位 + +本文不是新的流程母版,也不替代任何规范文件。它只回答一个问题:AI 或人工进入 `ana-doc` 研报体系后,应该先看什么、按什么顺序工作、产物写到哪里、由谁审核。 + +正式规则以以下核心文档为准: + +1. 分析流程看 `案例分析规范.md`。 +2. 审核流程看 `案例审核规范.md`。 +3. 存储和落点看 `案例存储体系.md`。 +4. 研报专业方法看 `研报体系/研报解析架构.md` 和 `研报体系/研报分析架构.md`。 +5. 具体行业差异看对应行业目录下的 `<行业>研报解析方案.md`。 + +行业子目录里的 `案例分析规范.md`、`案例审核规范.md` 和 `案例存储体系.md` 默认只是轻量继承入口。没有经过审核确认的行业自定义时,不要把父级主流程复制到行业子目录形成第二套母版。 + +## 2. 最小阅读顺序 + +案例分析员接到研报或行业资料任务后,至少按顺序读取: + +1. `研报体系导读.md` +2. `案例分析规范.md` +3. `案例存储体系.md` +4. 涉及外部抓取、本地 MySQL 导出或市场反向补漏时读取 `数据抓取脚本说明.md` +5. `研报体系/研报解析架构.md` +6. `研报体系/研报分析架构.md` +7. 目标行业目录的 `<行业>研报解析方案.md` +8. 目标行业目录的 `案例分析设计.md` + +审核员接到设计审核、执行审核、输出审核或复审任务后,至少按顺序读取: + +1. `研报体系导读.md` +2. `案例审核规范.md` +3. `案例分析规范.md` +4. `案例存储体系.md` +5. 被审核行业的 `<行业>研报解析方案.md` +6. 被审核行业的 `案例分析设计.md` +7. 被审核行业的 `案例执行日志.md` +8. 对应 manifest、evidence、outputs、result 入口 + +体系维护者修改规则时,必须同时检查: + +1. `目录导读.md` +2. `研报体系导读.md` +3. `案例分析规范.md` +4. `案例审核规范.md` +5. `案例存储体系.md` +6. 受影响行业目录内的轻量继承文档 + +## 3. 核心文档职责 + +| 文档 | 使用者 | 职责 | +|---|---|---| +| `目录导读.md` | 所有人 | 说明 `ana-doc` 目录、行业容器、数据目录和当前案例入口 | +| `研报体系导读.md` | 所有人 | 说明如何进入研报体系工作,指向核心规范 | +| `案例分析规范.md` | 案例分析员 | 唯一分析流程入口,包含研报体系接入流程、资料归档、主动补数据、市场反向补漏、核心文档输出和审计触发规则 | +| `案例审核规范.md` | 审核员 | 唯一审核流程入口,包含设计审核、执行审核、存储审核、输出审核、结论边界审核和复审规则 | +| `案例存储体系.md` | 分析员、审核员 | 定义 raw、converted、extracted、supplement、evidence、manifest、outputs、tmp、result、img 和 MySQL 追溯口径 | +| `数据抓取脚本说明.md` | 分析员、审核员 | 说明 `ana-data/tools/` 中外部抓取、本地 MySQL 只读导出和市场反向补漏脚本的使用、落点和审核口径 | +| `研报体系/研报解析架构.md` | 分析员、方案编写者 | 定义行业方案继承机制、三类核心视图和解析原则 | +| `研报体系/研报分析架构.md` | 分析员、审核员 | 定义研报资料处理、证据抽取、主动补数据、市场反向补漏、暗线分流和人读文档闭环 | +| `案例总纲.md` | 分析员、审核员 | 父级真实案例账本;行业容器不创建平行总纲 | +| `案例分析设计.md` | 分析员、审核员 | 父级或行业内的事项设计、批次设计、执行步骤、证据要求和验收方式 | +| `案例执行日志.md` | 分析员、审核员 | 记录实际执行过程、偏离、异常、自检和证据入口 | +| `案例审计报告.md` | 审核员 | 记录设计审核、执行审核、输出审核、复审和审计问题 | +| `案例问题记录.md` | 外部反馈、跨轮跟踪 | 只记录外部反馈、执行者无法自行闭环或需跨轮/跨角色跟踪的非审计问题 | + +## 4. 行业容器和真实案例 + +行业目录是容器,不是一个真实案例。例如: + +```text +ana-doc/有色案例/ +ana-doc/机器人案例/ +``` + +真实案例统一登记到父级 `案例总纲.md`。同一行业长期研究通常是一个长期案例,多次读取资料使用 `batch_id` 和 `run_id` 区分;只有研究目标不同,才新建不同案例。 + +行业目录根目录保留以下文档: + +1. `目录导读.md` +2. `案例分析规范.md` +3. `案例审核规范.md` +4. `案例存储体系.md` +5. `案例分析设计.md` +6. `案例执行日志.md` +7. `案例审计报告.md` +8. `案例问题记录.md` +9. `<行业>研报解析方案.md` + +其中行业 `案例分析规范.md`、`案例审核规范.md`、`案例存储体系.md` 默认只声明继承关系和少量行业补充。行业专业变量、专属字段、行业输出拆分、专属表和缺口清单,优先写入 `<行业>研报解析方案.md` 和该行业 `案例分析设计.md`。 + +## 5. 案例分析员工作方式 + +### 5.1 新行业首次接入 + +案例分析员第一次接到某个行业任务时: + +1. 在父级 `案例总纲.md` 登记行业任务来源、目标、边界和预期输出。 +2. 创建或确认 `ana-doc/<行业>案例/`,不得在行业目录内创建 `案例总纲.md`。 +3. 创建行业容器基础文档和 `<行业>研报解析方案.md`。 +4. 行业方案必须继承 `研报体系/研报解析架构.md`、`研报体系/研报分析架构.md`、`案例分析规范.md`、`案例审核规范.md` 和 `案例存储体系.md`。 +5. 行业方案写清行业边界、核心变量、输出方案、专属表、存储落点、市场反向补漏口径、darkline 触发边界和缺口清单。 +6. 提交新行业容器创建审核和行业方案审核。 +7. 审核通过前,只能做容器初始化、资料清点或 dry-run,不得进入正式研报结论输出。 + +### 5.2 已有行业批次分析 + +案例分析员接到一批研报、公告、网页、数据表或外部资料时: + +1. 确认父级 `案例总纲.md` 中已有真实案例。 +2. 确认本批资料的 `case_id`、`batch_id`、`run_id`。 +3. 读取行业方案,确认资料是否在行业边界内。 +4. 在行业 `案例分析设计.md` 冻结资料来源、样本范围、执行步骤、证据要求、输出物、存储路径、darkline 触发边界和验收方式。 +5. 设计审核未通过前,不得正式归档、转换、抽取或输出结论。 +6. 按 `案例分析规范.md` 执行资料归档、转换、抽取、主动补数据、市场反向补漏、暗线分流、核心文档输出和审计触发。 +7. 在行业 `案例执行日志.md` 记录全过程、偏离、异常、自检和本轮结论边界。 +8. 生成或更新 manifest、evidence、outputs、result 入口和验证记录。 +9. 提交执行审核或输出审核。 + +### 5.3 单篇和批量产物 + +单篇研报不能只做摘要,必须保留: + +1. doc_id。 +2. 页码、段落、句子或表格定位。 +3. 时间、单位、口径和对象归属。 +4. 事实句、指标句、观点句、公司映射、风险句。 +5. 证据置信度和数据缺口。 + +批量研报不能压成一个大摘要,必须输出或更新: + +1. `input_manifest.csv` +2. `conversion_status.csv` +3. `evidence_fact_table.csv` +4. `classification_summary.csv` +5. `unresolved_data_gap.csv` +6. `source_gap_audit.csv` +7. `batch_summary.md` +8. `next_action_list.csv` + +如果资料之间存在支持、反对、重复观点或口径冲突,必须分账记录,不能强行合并成单一结论。 + +### 5.4 外部信息和 darkline + +凡是在研报案例流程中需要网上补充消息、收集外部信息、分析新闻公告、分析事件链、分析证据链、检查市场显影、判断暗线或解释异常市场表现,都必须使用 `darkline` 技能和 darkline 信息拓扑方法。 + +darkline 内容必须与普通行业事实分账。价格、库存、供需、估值或机制解释本身不能直接叫暗线;暗线必须描述意图、目标、组织行为、人心变化、政策铺垫、资本动作或事件链。 + +## 6. 审核员工作方式 + +审核员不是只看 summary,而是检查案例是否按设计执行、证据是否可追溯、存储是否可复核、结论是否不过读、问题是否闭环。 + +审核员至少按 `案例审核规范.md` 执行以下审核: + +1. 新行业容器创建审核。 +2. 行业方案审核。 +3. 设计审核。 +4. 执行审核。 +5. 存储归档审核。 +6. 输出审核。 +7. 结论边界审核。 +8. 复审。 + +设计审核重点: + +1. 父级总纲是否登记真实案例。 +2. 行业方案是否可执行,不是模板。 +3. 设计是否写清 case/batch/run、输入范围、执行步骤、证据要求、输出物、存储路径和验收方式。 +4. 是否说明主动补数据、市场反向补漏、darkline、单篇/批量最低产物、`unresolved_data_gap` 和 `source_gap_audit`。 + +执行审核重点: + +1. raw 是否进入行业统一 raw 池。 +2. converted、extracted、supplement、evidence、manifest 是否按 `案例存储体系.md` 落点。 +3. 单篇定位和批量最低产物是否存在。 +4. 数据卡、证据链、缺口清单和 source gap audit 是否可复核。 +5. 暗线、市场显影和普通行业事实是否分账。 +6. 输出是否进入案例级 outputs 和 result 入口。 + +输出审核重点: + +1. 是否有行业视图、市场视图、公司视图。 +2. 是否有基础事实卡、核心变量数据卡、历史比较、横向比较和结构占比。 +3. 市场反向补漏发现的遗漏对象是否进入补资料和缺口流程。 +4. 重要场景假设是否有影响映射、触发条件、失效条件和主要风险。 +5. 公司文档是否先给投资读法和当前状态,再展开业务结构、行业暴露、核心竞争力、证据链和风险。 + +审核结论写入 `案例审计报告.md`。审计发现的问题主记录也写入 `案例审计报告.md`,不要转写成 `案例问题记录.md` 来规避修复。 + +## 7. 存储和产物落点 + +原始资料统一进入行业 raw 池: + +```text +ana-data/cases/<行业案例>/raw/ +``` + +行业级通用产物进入: + +```text +ana-data/cases/<行业案例>/converted/ +ana-data/cases/<行业案例>/extracted/ +ana-data/cases/<行业案例>/supplement/ +ana-data/cases/<行业案例>/evidence/ +ana-data/cases/<行业案例>/manifest/ +``` + +案例级正式输出和引用关系进入: + +```text +ana-data/cases/<行业案例>/<case_id>/outputs/ +ana-data/cases/<行业案例>/<case_id>/manifest/ +ana-data/cases/<行业案例>/<case_id>/evidence/ +``` + +父体系兼容目录: + +```text +ana-data/tmp/<行业案例>/<case_id>/<run_id>/ +ana-data/result/<行业案例>/<case_id>/ +ana-data/img/<行业案例>/<case_id>/ +``` + +数据抓取和只读导出脚本统一放在: + +```text +ana-data/tools/ +``` + +工具目录只保存脚本,不保存正式抓取结果。脚本产物必须按 `案例存储体系.md` 进入行业 `supplement/evidence/manifest` 或父体系 `tmp/result/img`,并在执行日志和 manifest 中留痕。 + +禁止事项: + +1. 不得创建 `ana-data/cases/<行业案例>/<case_id>/raw/` 保存原始资料。 +2. 不得按 batch 或 run 拆 raw 原始资料目录。 +3. 不得把临时文件当正式证据入口。 +4. 不得只保存结论而无法反查 raw、converted、evidence、manifest 和输出路径。 + +## 8. 问题、审计和回写 + +问题记录口径: + +1. 审核员发现的问题主记录写入 `案例审计报告.md`。 +2. 分析员自发现且本轮可处理的问题,写入 `案例执行日志.md`、自检、验证报告、manifest、数据缺口表或结果包,并直接处理。 +3. 外部反馈、跨角色、跨轮或分析员无法自行闭环的问题,才写入 `案例问题记录.md`。 + +回写口径: + +1. 行业方案变化,回写 `<行业>研报解析方案.md` 并提交方案复审。 +2. 执行步骤、输入范围、证据要求或验收方式变化,回写 `案例分析设计.md` 并提交设计复审。 +3. 结论入口、完成状态或案例目标变化,回写父级 `案例总纲.md`。 +4. 输出文档、证据链、manifest、存储路径变化,回写对应结果包和审计记录。 + +审核或复审未通过前,不得标记完成或对外交付。 + +## 9. 完成标准 + +一个研报案例或批次至少满足以下条件,才可以进入交付或阶段完成状态: + +1. 父级总纲有真实案例登记。 +2. 行业方案可执行,且通过行业方案审核。 +3. 案例分析设计通过设计审核。 +4. 原始资料、转换产物、抽取事实、补充资料、证据、manifest 和输出路径可追溯。 +5. 单篇定位、批量最低产物、数据缺口、source gap audit 和市场反向补漏按需完成。 +6. 人读文档以行业视图、市场视图、公司视图为核心入口。 +7. 强结论有来源、数据日期、历史比较、横向比较、结构占比或公司/链条案例。 +8. 暗线、事件链、意图判断与普通行业事实分离。 +9. 执行审核、输出审核或复审已通过。 + +如果以上条件不满足,应使用 `HELD`、`DATA_GAP_REVIEW`、`DATA_PARTIAL`、`MECHANISM_ONLY` 或 `HELD_BY_EVIDENCE_GAP` 等状态,不得用强结论覆盖缺口。 + +## 10. 最重要的原则 + +1. 父级规范是母版,行业子规范默认只做轻量继承。 +2. 真实案例登记在父级总纲,行业目录只是行业容器和过程账本。 +3. raw 原始资料只进行业统一 raw 池。 +4. 结论必须能反查证据,证据必须能反查来源。 +5. 需要外部信息、市场显影或暗线判断时必须使用 darkline。 +6. 审核未通过不得交付。 -- Gitblit v1.9.3