Prepare project for pipeline takeover: task tracker, UX doc, CLAUDE.md pointers

Adds docs/tasks/ (16 epics + 102 stories converted to task/subtask files with
statuses.md as the new status source of truth) and docs/ux-design.md
(retrospective design-system reference), and points CLAUDE.md at them.
docs/prd.md and docs/architecture.md are kept as BMAD wrote them; the legacy
docs/stories/, docs/epics/, docs/qa/gates/ and .bmad-core/ stay in place as
historical/traceability records, superseded but not deleted.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Naser Mansour
2026-09-27 22:02:23 +03:00
parent 147231f216
commit 0f9d12c3cf
121 changed files with 3628 additions and 1 deletions
+30
View File
@@ -0,0 +1,30 @@
---
id: 5-2
title: 5-2 Post Management Dashboard
status: QA Review
date: 2026-09-27
parent: 5
---
## Description
As an admin, I want a dashboard to manage all blog posts, So that I can organize, publish, and maintain content efficiently. Context: Integrates with: posts table, admin_logs table; Technology: Livewire Volt with pagination; Follows pattern: Admin list pattern (see similar components in `resources/views/livewire/admin/`). Create Volt component at: resources/views/livewire/admin/posts/index.blade.php. Full implementation history: docs/stories/story-5.2-post-management-dashboard.md
## Acceptance Criteria
- [ ] Display all posts with:
- [ ] Pagination (10/25/50 per page)
- [ ] Filter by status (draft/published/all)
- [ ] Search by title or body content
- [ ] Sort by date (newest/oldest)
- [ ] Edit post
- [ ] Delete (with confirmation)
- [ ] Publish/unpublish toggle
- [ ] Bulk delete option (optional) - **OUT OF SCOPE**
- [ ] Bilingual labels
- [ ] Audit log for delete and status change actions
- [ ] Authorization check (admin only) on all actions
- [ ] Tests for list operations
- [ ] Handle post not found gracefully (race condition on delete)
- [ ] Per-page selector visible in UI (10/25/50 options)
- [ ] Bulk delete is **out of scope** for this story (marked optional)