Skip to content

分类体系规范化:目录结构治理 + 版本化基础设施 #90

@firstdata-dev

Description

@firstdata-dev

背景

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-energy
  • J-information-communication, K-finance-insurance
  • M-professional-scientific, P-education, R-arts-entertainment

自定义命名(下划线/自然语言):

  • computer_science_ai, finance_markets, sports

sportsR-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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions