Use when designing page hierarchies, page templates, layout zones, or sitemap structures. Covers page sets, template inheritance, component zones, and page tree APIs for headless CMS architectures.
View on GitHubmelodic-software/claude-code-plugins
content-management-system
plugins/content-management-system/skills/page-structure-design/SKILL.md
January 21, 2026
Select agents to install to:
npx add-skill https://github.com/melodic-software/claude-code-plugins/blob/main/plugins/content-management-system/skills/page-structure-design/SKILL.md -a claude-code --skill page-structure-designInstallation paths:
.claude/skills/page-structure-design/# Page Structure Design
Guidance for designing page hierarchies, templates, and modular page composition systems for headless CMS.
## When to Use This Skill
- Designing page tree structures
- Creating page templates with zones
- Implementing page builder functionality
- Planning sitemap generation
- Building modular page composition
## Page Hierarchy Patterns
### Basic Page Tree
```csharp
public class Page
{
public Guid Id { get; set; }
public string Title { get; set; } = string.Empty;
public string Slug { get; set; } = string.Empty;
// Hierarchy
public Guid? ParentId { get; set; }
public Page? Parent { get; set; }
public List<Page> Children { get; set; } = new();
// Computed path
public string Path { get; set; } = string.Empty; // /about/team/leadership
public int Depth { get; set; }
public int Order { get; set; }
// Template and content
public string Template { get; set; } = string.Empty;
public PageContent Content { get; set; } = new();
}
```
### Page Sets (Collections)
```csharp
// Page set for grouping related pages
public class PageSet
{
public Guid Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Slug { get; set; } = string.Empty;
public PageSetType Type { get; set; }
// Configuration
public string ItemTemplate { get; set; } = string.Empty;
public string ListTemplate { get; set; } = string.Empty;
public int ItemsPerPage { get; set; } = 10;
// URL pattern
public string UrlPattern { get; set; } = string.Empty; // /blog/{slug}
}
public enum PageSetType
{
Blog, // Chronological posts
Portfolio, // Project showcase
Team, // Team members
Products, // Product catalog
FAQ, // Q&A collection
Custom // User-defined
}
```
## Template System
### Template Definition
```csharp
public class PageTemplate
{
public string Name { get; set; } = string.Empty;
public string Display