Skip to content

behavior: real notifier for help-wanted-roles (replace LoggingNotifier stub) #82

@themightychris

Description

@themightychris

Gap

specs/behaviors/help-wanted-roles.md and specs/api/projects-help-wanted.md describe notifications going out when someone expresses interest in a help-wanted role.

Today: LoggingNotifier is a no-op stub that logs the intended notification and returns delivered: true without actually sending anything. Users expressing interest never trigger a real message to the role's contacts.

Scope (decision-required)

A single notifier interface, one implementation. Pick one:

  • Email-only (likely simplest first cut) — SMTP via an existing provider (mailgun/postmark/SES). Person record's email comes from the private profile bucket.
  • Slack DM — uses the existing SAML IdP credential trust to map Person → Slack user; sends DM via Slack Web API. No email leakage.
  • Both — email is fallback when Slack DM fails or recipient doesn't have a linked Slack account.

Pre-implementation decision needs an owner-call on:

  1. Which channel(s)
  2. Where credentials live (sealed secret in cluster repo)
  3. Templating shape (a few hardcoded templates is fine; no full templating engine needed)

Test plan

  • Unit: notifier interface contract; mock impl
  • Integration: real notification delivery against a sandbox inbox / sandbox Slack channel before cutover

Why this matters at cutover

Help-wanted-roles is in the v1 surface. Silent acceptance with no follow-up message is a noticeably worse UX than the current laddr workflow (which does email out).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions