Audit content schema for best practices, consistency, and potential issues. Checks naming, relationships, and field usage.
Scanned 6/7/2026
Install via CLI
openskills install melodic-software/claude-code-plugins---
name: audit-schema
description: Audit content schema for best practices, consistency, and potential issues. Checks naming, relationships, and field usage.
argument-hint: "[--fix] [--severity all|high|medium]"
allowed-tools: Read, Glob, Grep, Task, Skill
---
# 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
No comments yet. Be the first to comment!