CM93 MySQL importer validated baseline

This commit is contained in:
kaotei
2026-09-02 09:50:12 +08:00
commit 9d56592cad
62 changed files with 24778 additions and 0 deletions

61
AGENTS.md Normal file
View File

@@ -0,0 +1,61 @@
# Codex / AI Agent 项目规则
## 当前目标
第一阶段已经具备 `CM93 → MySQL` 完整导入与审计代码。当前工作是用真实 `CM93JAPAN` 数据运行、诊断和修复实际兼容问题。
**不要提前实现 PBF。**
## 固定基线
- Windows 11
- Python 3.12.10
- MySQL 5.7.34-log
- CM93 根目录:`D:\Ship\CM93V2\CM93JAPAN`
- DB Schema:`sql/001_schema_mysql57.sql`
## 不可破坏规则
1. 禁止 MySQL 8 专用 SQL。
2. 禁止 float32 存最终经纬度。
3. 禁止 importer simplify/snap/quantize/round geometry。
4. 禁止自动 make_valid 后覆盖原 Polygon。
5. raw decoded tables、raw feature、raw attribute 必须可保留。
6. `_wgsox/_wgsoy` 必须保存。
7. 每个 feature 必须可追溯 dataset/cell/source_record_index。
8. 未知 object/attribute 不得静默跳过;无法确定长度时 cell 必须 FAILED。
9. parser 任一 header/count/EOF 不一致时 cell 必须 FAILED。
10. 每个 cell 独立事务;失败不得破坏其他 DONE cell。
11. DONE cell 支持续导跳过。
12. 不复制 OpenCPN GPL 源文件或类实现;保持独立实现。
13. PBF 不属于当前阶段。
## 实际运行顺序
```powershell
cm93db env-check
cm93db db-check
cm93db scan
cm93db inspect-dicts
cm93db import --scale G --limit 10
cm93db audit --scale G --limit 10 --precision-samples 32
```
Pilot PASS 后再全量。
## 修复要求
发现失败时,优先保留一个具体失败 cell 作为回归输入,并报告:
- cell 路径
- parser stage
- byte position/record index
- header source counts
- 实际异常
- 修改前后审计结果
不得通过 catch-and-skip 使任务“看起来完成”。
## 文档
项目说明、报告、设计记录使用中文;代码稳定标识符、数据库字段使用英文。