Claude
Skills
Sign in
Back

audit-schema

Included with Lifetime
$97 forever

Audit content schema for best practices, consistency, and potential issues. Checks naming, relationships, and field usage.

Security

What this skill does


# Audit Schema Command

Analyze content schema for best practices and potential issues.

## Usage

```bash
/cms:audit-schema
/cms:audit-schema --severity high
/cms:audit-schema --fix
```

## Options

- **--fix**: Suggest fixes for identified issues
- **--severity**: Filter by issue severity (all|high|medium)

## Workflow

### Step 1: Locate Schema Definitions

Search for content type definitions in:

- YAML/JSON specification files
- C# entity models
- Migration files

### Step 2: Invoke Skills

Invoke relevant skills for analysis:

- `content-type-modeling` - Type patterns
- `content-relationships` - Relationship integrity
- `dynamic-schema-design` - JSON column usage

### Step 3: Perform Audits

**Naming Convention Audit:**

- PascalCase for type names
- camelCase for field names
- Consistent pluralization
- Descriptive names

**Field Usage Audit:**

- Required fields have defaults or validation
- Optional fields marked correctly
- Field types appropriate for data
- No duplicate fields

**Relationship Audit:**

- All references resolve
- Inverse relationships defined
- No circular dependencies
- Cardinality correct

**Best Practices Audit:**

- Versioning enabled for editable content
- Slug/route fields present
- SEO fields for public content
- Audit fields (created, modified)

### Step 4: Generate Report

```markdown
## Schema Audit Report

### Summary
- Content Types: 12
- Total Fields: 87
- Relationships: 24
- Issues Found: 8 (3 high, 4 medium, 1 low)

### High Severity Issues

#### [H1] Missing Required Validation
**Type:** Product
**Field:** price
**Issue:** Required field has no default value
**Fix:** Add `[Required]` attribute or default value

#### [H2] Circular Dependency
**Types:** Category ↔ Product
**Issue:** Bidirectional reference may cause serialization issues
**Fix:** Use lazy loading or DTOs

### Medium Severity Issues

#### [M1] Inconsistent Naming
**Type:** blogPost (should be BlogPost)
**Fix:** Rename to PascalCase

#### [M2] Missing Inverse Relationship
**Type:** ProductVariant → Product
**Issue:** No navigation property back to Product
**Fix:** Add `Product` property to ProductVariant

### Low Severity Issues

#### [L1] Unused Field
**Type:** Article
**Field:** legacyId
**Issue:** Field appears unused in codebase
**Fix:** Remove if migration complete

### Recommendations

1. Add versioning to Product content type
2. Consider adding SEO part to Event content type
3. Review taxonomy depth for Categories (currently 5 levels)
```

### Step 5: Apply Fixes (if --fix)

For fixable issues, generate corrected schema:

```csharp
// Before
public class Product
{
    public decimal price { get; set; } // M1: wrong casing
}

// After (suggested fix)
public class Product
{
    [Required]
    public decimal Price { get; set; } // Fixed: PascalCase, Required
}
```

## Audit Categories

| Category | Checks |
|----------|--------|
| Naming | Casing, conventions, clarity |
| Fields | Types, validation, usage |
| Relationships | Integrity, cardinality, cycles |
| Best Practices | Versioning, SEO, audit trails |
| Performance | Indexing, query patterns |

## Related Skills

- `content-type-modeling` - Content type patterns
- `content-relationships` - Relationship patterns
- `dynamic-schema-design` - JSON column patterns

Related in Security