field-consistency-check

j4xie's avatarfrom j4xie

检查前后端字段名一致性。自动比较后端 Entity 与前端 Interface 的所有字段,发现缺失或不一致的字段。使用此 Skill 确保数据模型统一。

⭐0stars🔀1forks📁View on GitHub🕐Updated Jan 10, 2026⬇️3downloads

When & Why to Use This Skill

This Claude skill automates the validation of field consistency between backend Java Entities and frontend TypeScript Interfaces. By performing static analysis on source code, it identifies missing, mismatched, or incorrectly named fields, ensuring a unified data model across the full stack and preventing runtime errors caused by API contract drift.

Use Cases

  • Synchronizing frontend TypeScript interfaces with backend Java DTOs/Entities after database schema updates to prevent integration bugs.
  • Automating the detection of field naming discrepancies (e.g., camelCase vs snake_case) during full-stack refactoring projects.
  • Performing pre-deployment audits to verify that API contracts are consistently implemented across different service layers.
  • Mapping and documenting the relationship between backend data structures and frontend UI models in legacy codebases.
namefield-consistency-check
description检查前后端字段名一致性。自动比较后端 Entity 与前端 Interface 的所有字段,发现缺失或不一致的字段。使用此 Skill 确保数据模型统一。

字段一致性检查 Skill

Entity/Interface 映射表

后端 Entity 前端文件 Interface 名
Customer customerApiClient.ts Customer
Supplier supplierApiClient.ts Supplier
User userApiClient.ts UserDTO
Factory platformApiClient.ts FactoryDTO
FactoryEquipment equipmentApiClient.ts Equipment
MaterialBatch materialBatchApiClient.ts MaterialBatch
RawMaterialType materialTypeApiClient.ts MaterialType
ProductType productTypeApiClient.ts ProductType
QualityInspection qualityInspectionApiClient.ts QualityInspection
ShipmentRecord shipmentApiClient.ts ShipmentRecord
DisposalRecord disposalRecordApiClient.ts DisposalRecord

快速检查命令

cd /Users/jietaoxie/my-prototype-logistics

# 提取后端字段
grep -E "private (String|Long|Boolean|Integer|BigDecimal|LocalDateTime)" \
  backend-java/src/main/java/com/cretas/aims/entity/Customer.java | \
  grep -v "//" | awk '{print $3}' | sed 's/;//' | sort

# 提取前端字段
awk '/export interface Customer \{/,/^\}/' \
  frontend/CretasFoodTrace/src/services/api/customerApiClient.ts | \
  grep -E "^\s+\w+[\?:]" | awk '{print $1}' | sed 's/[?:]//' | sort

# 对比差异
comm -23 /tmp/be.txt /tmp/fe.txt  # 只在后端
comm -13 /tmp/be.txt /tmp/fe.txt  # 只在前端

字段命名差异表

Entity 电话字段 地址字段
Factory contactPhone address
Supplier contactPhone + phone address
Customer contactPhone + phone shippingAddress + billingAddress
User phone -

修复流程

  1. 查看后端字段: grep -E "private" entity/XXX.java
  2. 更新前端 Interface 与后端一致
  3. 编译检查: npx tsc --noEmit --skipLibCheck

相关路径

  • 后端 Entity: backend-java/src/main/java/com/cretas/aims/entity/
  • 前端 API: frontend/CretasFoodTrace/src/services/api/