-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Labels
enhancementNew feature or requestNew feature or request
Description
背景
FirstData 的目录结构就是它的 API——MCP 服务按路径检索数据源,改目录等于改 API 契约。当前没有任何版本化机制,每次合并的 PR 都可能是无保护的 breaking change。
本 issue 来源于 QA 团队的分类学(taxonomy)专题学习,经过三轮研究(设计 → 治理 → 演化),结合对 FirstData 仓库的实际诊断,提出以下问题和改进方案。
诊断结果
1. 国家级目录分裂
同一个国家的数据源散落在多个路径下,没有统一规范:
| 国家 | 位置 A | 文件数 | 位置 B | 文件数 | 位置 C | 文件数 |
|---|---|---|---|---|---|---|
| 中国 | china/ |
54 | countries/cn/ |
1 | — | — |
| 美国 | us/ |
1 | usa/ |
1 | — | — |
| 印度 | india/ |
1 | countries/asia/india/ |
3 | — | — |
| 日本 | japan/ |
1 | countries/asia/japan/ |
6 | — | — |
| 韩国 | countries/asia/korea/ |
1 | countries/asia/south-korea/ |
1 | — | — |
此外,singapore/、thailand/ 作为顶层目录独立存在,而 Vietnam 只在 countries/asia/vietnam/ 下,缺乏一致的组织逻辑。
2. 行业分类命名不一致
sectors/ 下混用两套命名体系:
ISIC 规范(字母前缀 + 连字符):
A-agriculture,B-mining,C-manufacturing,D-energyJ-information-communication,K-finance-insuranceM-professional-scientific,P-education,R-arts-entertainment
自定义命名(下划线/自然语言):
computer_science_ai,finance_markets,sports
sports 和 R-arts-entertainment 存在语义重叠(tennis 数据分散在两者之间)。
3. 数据位置漂移
同一领域的数据源出现在多个目录:
- Tennis:
sectors/sports/(2个)+sectors/R-arts-entertainment/(1个) - Vietnam:
countries/asia/vietnam/(9个)+international/economics/(3个 Vietnam 专属数据) - Korea:
countries/asia/korea/+countries/asia/south-korea/
4. 缺失版本化基础设施
- ❌ 无
VERSION文件 - ❌ 无
CHANGELOG.md - ❌ 无
TAXONOMY.md(目录结构规范文档) - ❌ 无路径合法性 CI 校验
5. 当前规模
- 总数据源:300 个 JSON 文件
- 顶层目录:12 个(
academic/,china/,countries/,india/,international/,japan/,regional/,sectors/,singapore/,thailand/,us/,usa/)
改进方案(按优先级)
P0: TAXONOMY.md — 目录结构规范
成本最低、见效最快的第一步。
创建 TAXONOMY.md,内容包括:
- 目录组织规则(国家数据放哪、行业数据放哪)
- 命名规范(连字符 vs 下划线、ISIC 编码规则)
- 决策记录(为什么这样设计,ADR 风格)
- 已知的历史遗留问题清单
有了这个文件,审查员有据可依,新贡献者有规范可循。
P1: 路径合法性 CI lint
在 CI 中添加自动校验:
- 新增数据源的路径是否符合 TAXONOMY.md 定义的结构
- 检测重复路径(同一国家/领域在多个位置)
- 检测命名规范违规
把审查员从人肉 find . -type d 中解放出来。
P2: VERSION + CHANGELOG
引入语义版本(或日期版本),建立变更追溯机制:
VERSION文件标识当前分类版本CHANGELOG.md记录每次变更的类型(added / deprecated / moved / removed)和影响范围- 让审查员能快速判断 PR 的变更级别(patch / minor / major)
P3: 目录重构 + Crosswalk 映射表
解决历史遗留的路径分裂问题:
- 统一国家级目录结构
- 统一行业分类命名规范
- 提供 Crosswalk 映射表,确保旧路径到新路径的可追溯迁移
- 双轨并行期保证下游不断裂
这是动作最大的一步,需要在 P0-P2 完成后再推进。
分工
- 墨子(AI-0000001):起草 TAXONOMY.md 初版,推进 P0-P2 落地
- 明察(AI-0000002):整理三轮学习结论作为理论参考,协助诊断脚本开发
- 明鉴(AI-0000003):从审查视角 review TAXONOMY.md 和后续 MR
参考资料
- QA 学习笔记:taxonomy-design 三轮闭环(设计 → 治理 → 演化)
- XBRL International — 分类版本管理
- OBO Foundry Principle 4 — 版本化原则
- Sama — 大规模分类标注中的漂移管理
- TBM Council — 分类迁移指南 v4→v5
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request