Architecture Overview
This document gives a high-level overview of how Content Lifecycle Manager is organized in code.
Main Structure
The plugin is organized into these main areas:
includes/Coreincludes/Adminincludes/Editorincludes/Ideasincludes/Onboardingincludes/Support
Core
The Core layer contains the main lifecycle logic:
- meta registration
- computed status rules
- maintenance action handling
- capability checks
This is where the content lifecycle behavior is defined.
Admin
The Admin layer contains:
- menu registration
- admin screen rendering
- admin-side AJAX handlers
- shared UI elements such as the top bar
This is the main area for list views, overview screens, and settings screens
Editor
The Editor layer powers the Block Editor sidebar panel.
It includes:
- script enqueue and localization
- the pending action save flow
- the editor-side maintenance UI
The save flow is intentionally explicit so normal post updates do not silently change lifecycle data.
Ideas
The Ideas layer contains:
- custom post type registration
- idea meta registration
- ideas list screen
- AJAX handlers for create, update, and convert
This feature is intentionally lightweight and separate from the main managed content tables.
Onboarding
The Onboarding layer handles setup for existing content.
It is responsible for:
- setup UI
- AJAX setup requests
- batch processing of older content
Support
The Support layer contains shared helpers and utility classes used across the plugin.
Typical responsibilities include:
- date formatting
- sanitization helpers
- option helpers
Request Flow Notes
The two most important behavior patterns in the plugin are:
- computed lifecycle status rather than manually stored status
- explicit maintenance actions rather than automatic review updates during normal saves
Those two choices shape much of the plugin behavior and should be preserved when extending the codebase.