CMSAICORE

CMS comments with AI-assisted moderation

Add moderated Comment entities on CMS Content using HasTranslations (CommentTranslation) with CMS overrides (HasCommentTranslations: write current locale only; read current locale or chronological original). Standard CRUD + optional AI classification. Option A (default): confident approve/reject closes immediately (1/1); uncertain sets approvers_required=1, disapprovers_required=2 + preliminary AI disapprove() so humans can override. Option B (config): always 2 votes (AI first, human second).

State
Done
Progress
100%
Steps
64 / 64
Started
2026-09-30
Finished
2026-10-07
Modules
LaraCMS, LaraAI, LaraCore

Tasks.

  • Task 1: CMSTables enum + comments migration5/5
  • Task 2: Moderation audit log migration2/2
  • Task 3: HasCommentTranslations trait + CommentTranslation model6/6
  • Task 4: Comment model + approval bridge + Content::comments()5/5
  • Task 5: CommentModerationLog model3/3
  • Task 6: CMS entity registration for CRUD3/3
  • Task 7: CommentRequiresModeration event + dispatch4/4
  • Task 8: AI config + system moderator user4/4
  • Task 9: CommentModerationContextBuilder4/4
  • Task 10: Prompt + CommentModerationService (classifier)5/5
  • Task 11: ModerateCommentJob — vote logic4/4
  • Task 12: AI listener + EventServiceProvider4/4
  • Task 13: Filament — show AI state on Comment modifications4/4
  • Task 14: CrudService — pass moderator reason3/3
  • Task 15: End-to-end CMS feature tests5/5
  • Task 16: Final verification3/3