Skip to content

[OpenSpec] engagement-announcements #691

Open

Description

@github-actions

⚠️ OpenSpec-managed issue — this content is automatically synced
from the openspec/ directory. Manual edits will be overwritten on next sync.

Artifacts

Specs

Tasks

  • 1. Add the two tables in one migration with builders, entities and mappers (including notified_at). Verify: migration test.
  • 2. Seed announcement.manage, announcement.read, announcement.follow, announcement.comment and add the announcement_editor_groups admin setting. Verify: action-matrix test.
  • 3. Implement AnnouncementService (create, update, publish, visibleTo, drafts for authors, notice end time required, reach count). Verify: PHPUnit.
  • 4. Add AnnouncementController routes for list, get, create, update, publish, delete, follow and unfollow, each with the action check and no IDOR (visibility checked per id). Verify: PHPUnit and route-reachability.
  • 5. Wire likes and comments through ICommentsManager with object type launchpad_announcement and the access check. Verify: PHPUnit with the comments manager.
  • 6. Add announcement_published to lib/Notification/Notifier.php and AnnouncementNotifyJob to appinfo/info.xml. Verify: PHPUnit that followers are notified once.
  • 7. Add the announcements widget to src/constants/widgetRegistry.js with card, category filter, like and comment counts. Verify: Vitest.
  • 8. Build the announcement editor modal with the preview step, reach count and "Preview as". Verify: Vitest and an axe check.
  • 9. Add the notice banner region to src/views/WorkspaceApp.vue with dismiss for dismissible notices. Verify: Vitest.
  • 10. Add follow and unfollow per category in the widget. Verify: Vitest.
  • 11. Add the three demo announcements. Verify: PHPUnit on the showcase.
  • 12. Playwright for the notice flow and a liked, commented news item.
  • 13. Add nl and en strings, copy the spec to openspec/specs/announcements/spec.md on archive, and set e-announcements, d-news-preview and e-maintenance to built in the parity matrix with evidence lines.

Design

See design.md for technical design details.


Synced from openspec/changes/engagement-announcements by OpenSpec workflow
App: launchpad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    openspecManaged by OpenSpec workflowopenspec:tasksOpenSpec phase: Tasks

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions