2.1 KiB
2.1 KiB
Task 005: Article Intake, Dashboard, And Detail Shell
Development description: Build the first user-visible workflow slice where an Editor creates an article brief, sees it on the dashboard, and opens an article detail page with workflow history.
Implementation Details
- Backend endpoints:
POST /api/articlesGET /api/articlesGET /api/articles/{article_id}
- Article creation requires:
brief_descriptiontarget_site_id- optional
content_type - optional
primary_keyword
- Creation behavior:
- Creates article with
ARTICLE_BRIEF_CREATED. - Attaches target site.
- Writes
ARTICLE_CREATEDworkflow event.
- Creates article with
- Frontend screens:
- Dashboard with article title/working title, target website, status, assigned editor, last updated, next required action, and publishing status.
- New article form.
- Article detail shell with status summary and timeline.
Public Interface
- Editor submits a brief in the UI.
- Dashboard updates with the created article.
- Article detail page shows the workflow event timeline.
Acceptance Criteria
- TDD pre-requirement: before implementation, write one failing API behavior test for creating an article and seeing
ARTICLE_BRIEF_CREATED; add UI tests after API green and record evidence inResult. - Editor can create an article brief for a configured target site.
- Created article appears in
GET /api/articles. - Article detail includes target site summary and workflow history.
- Article creation writes a workflow event with actor and timestamp.
- Invalid target site returns a validation error.
- Frontend form shows validation errors without losing typed brief text.
Verification
- Run backend article API tests.
- Run frontend component/page tests for dashboard and form.
- Run a Docker Compose smoke flow from UI brief creation to article detail.
Result
- Status: Pending execution.
- TDD plan: To be filled during execution.
- Red evidence: To be filled during execution.
- Green evidence: To be filled during execution.
- Refactor notes: To be filled during execution.
- Verification output: To be filled during execution.