One Slack app. One settings owner. Trending News keeps its workflow and abilities.
What moves
| From | To |
|---|---|
TNA option prc_agents_trending_news_settings.slack | Option prc_slack_settings (one-time copy on plugins_loaded) |
Legacy option prc_nexus_slack_settings | Same prc_slack_settings copy when TNA slack fields are empty |
TNA Events API /wp-json/prc-agents-trending-news/v2/slack/* | Canonical /wp-json/prc-slack/v1/{events,interactions} |
Specialist agent prc-agents-trending-news-analyst | prc-nexus plus a trending-news system registration |
| TNA Slack app manifests | plugins/prc-slack/manifest.staging.yml and manifest.production.yml |
The TNA slack fields are not deleted from the old option. prc-slack copies them once when prc_slack_settings has no token or signing secret yet. After that, manage the connection at Settings → PRC Slack.
Webhook URLs
Prefer /wp-json/prc-slack/v1/events and /wp-json/prc-slack/v1/interactions. The TNA and legacy Nexus paths still ACK for one release and send Deprecation: true.
Slack app
Committed manifests already use the real request URLs: production www.pewresearch.org and staging alpha.pewresearch.org/pewresearch-org. Release workflows apply manifest.staging.yml or manifest.production.yml via Slack apps.manifest.update when those files (or includes/nexus/) change. You can still upload YAML by hand, or run wp prc-slack manifest --env=staging (or production) on the target site to print JSON. Applying agent_view on a live Slack app is irreversible. A human must pick which live Slack app becomes PRC Nexus and invite it to #publish / #decoded. Rollback is a re-dispatch of deploy-platform-services.yml for the previous git tag with matching confirm and force_all=true.