名称: 审计模式 描述: 审计内容模式以遵循最佳实践、保持一致性并识别潜在问题。检查命名、关系和字段使用。 参数提示: [–fix] [–severity all|high|medium] 允许工具: Read, Glob, Grep, Task, Skill
审计模式命令
分析内容模式以遵循最佳实践和识别潜在问题。
使用
/cms:audit-schema
/cms:audit-schema --severity high
/cms:audit-schema --fix
选项
- –fix: 为识别的问题提供修复建议
- –severity: 按问题严重性筛选 (all|high|medium)
工作流
步骤 1: 定位模式定义
在以下位置搜索内容类型定义:
- YAML/JSON 规范文件
- C# 实体模型
- 迁移文件
步骤 2: 调用技能
调用相关技能进行分析:
content-type-modeling- 类型模式content-relationships- 关系完整性dynamic-schema-design- JSON 列使用
步骤 3: 执行审计
命名约定审计:
- 类型名称使用 PascalCase
- 字段名称使用 camelCase
- 一致的复数形式
- 描述性名称
字段使用审计:
- 必需字段有默认值或验证
- 可选字段正确标记
- 字段类型适用于数据
- 无重复字段
关系审计:
- 所有引用可解析
- 定义反向关系
- 无循环依赖
- 基数正确
最佳实践审计:
- 为可编辑内容启用版本控制
- 存在 Slug/route 字段
- 公开内容有 SEO 字段
- 审计字段(创建、修改)
步骤 4: 生成报告
## 模式审计报告
### 摘要
- 内容类型: 12
- 总字段: 87
- 关系: 24
- 发现问题: 8 (3 高, 4 中, 1 低)
### 高严重性问题
#### [H1] 缺少必需验证
**类型:** Product
**字段:** price
**问题:** 必需字段无默认值
**修复:** 添加 `[Required]` 属性或默认值
#### [H2] 循环依赖
**类型:** Category ↔ Product
**问题:** 双向引用可能导致序列化问题
**修复:** 使用懒加载或 DTOs
### 中严重性问题
#### [M1] 命名不一致
**类型:** blogPost (应为 BlogPost)
**修复:** 重命名为 PascalCase
#### [M2] 缺少反向关系
**类型:** ProductVariant → Product
**问题:** 无导航属性返回 Product
**修复:** 将 `Product` 属性添加到 ProductVariant
### 低严重性问题
#### [L1] 未使用字段
**类型:** Article
**字段:** legacyId
**问题:** 字段在代码库中似乎未使用
**修复:** 如果迁移完成则删除
### 建议
1. 为 Product 内容类型添加版本控制
2. 考虑为 Event 内容类型添加 SEO 部分
3. 审查 Categories 的分类深度(当前为 5 级)
步骤 5: 应用修复(如果 --fix)
对于可修复的问题,生成修正后的模式:
// 之前
public class Product
{
public decimal price { get; set; } // M1: 错误的大小写
}
// 之后(建议修复)
public class Product
{
[Required]
public decimal Price { get; set; } // 修复: PascalCase, Required
}
审计类别
| 类别 | 检查项 |
|---|---|
| 命名 | 大小写、约定、清晰度 |
| 字段 | 类型、验证、使用 |
| 关系 | 完整性、基数、循环 |
| 最佳实践 | 版本控制、SEO、审计跟踪 |
| 性能 | 索引、查询模式 |
相关技能
content-type-modeling- 内容类型模式content-relationships- 关系模式dynamic-schema-design- JSON 列模式