flowchart LR
subgraph slack_platform["Slack Platform"]
workspace_signals["Workspace signals"] --> realtime_search["Real-Time Search API"]
end
subgraph rescueops_service["RescueOps Agent Service"]
rts_adapter["RTS evidence adapter"] --> evidence_graph["Evidence graph"]
evidence_graph --> rescuecase_engine["RescueCase engine"]
rescuecase_engine --> action_planner["Action planner"]
mcp_context["MCP business context"] --> rescuecase_engine
signal_discovery["Signal discovery"] --> rescuecase_engine
grounded_reasoning["Grounded reasoning layer"] --> action_planner
end
subgraph outcomes["Outcomes in Slack"]
agent_response["Agent response"] --> rescue_execution["Rescue execution"]
rescue_execution --> impact_receipt["Impact receipt"]
end
realtime_search --> rts_adapter
action_planner --> agent_response
RescueOps uses Slack Real-Time Search as the primary evidence path:
- Capability check:
rescueops/rts_search.pycallsassistant.search.infothrough/rescueops rts-check. - Live evidence scan:
/rescueops scan <account>and/rescueops live <account>callassistant.search.contextand convert live Slack snippets into weighted evidence. - Business enrichment: when
RESCUEOPS_USE_MCP=1,rescueops/mcp_client.pycalls the local MCP server for CRM, support, incident, and ownership context. - Demo fallback:
data/demo_workspace.jsonis used only for tests,/rescueops demo, or when Slack credentials/access are unavailable.
Live Slack evidence, MCP context, and discovered patterns feed the same RescueCase pipeline, so the Slack card, score explanation, owner plan, rescue room, customer-safe update, and impact receipt are generated from the evidence returned at scan time.
flowchart TD
A["Account"] --> B["Slack and business evidence"]
B --> C["Risk score"]
C --> D["Root causes"]
D --> E["Owners"]
E --> F["Approved actions"]
F --> G["Protected revenue outcome"]
rescueops/rts_search.pyverifies Slack Real-Time Search withassistant.search.info, queries live Slack evidence withassistant.search.context, and converts returned snippets into evidence.rescueops/evidence_provider.pychooses live RTS, demo, hybrid, or MCP-enriched evidence modes.rescueops/mcp_client.pyandrescueops/mcp_business_server.pyimplement the MCP server integration for CRM, support, Jira, and incident-style business context.rescueops/signal_discovery.pymines repeated phrases from the current evidence set so workspace-specific patterns appear in score explanations and Slack AI briefs.rescueops/risk_engine.pyturns current evidence into score components, root causes, owners, rescue actions, and impact metrics.rescueops/rescue_policy.pyloads policy-driven owner mappings, due dates, and action templates fromdata/rescue_policy.json.rescueops/rescue_reasoner.pyoptionally calls a local Qwen3/OpenAI-compatible reasoning model to rewrite case briefs, rescue plans, owner updates, and customer-safe updates from groundedRescueCaseJSON. Guardrails strip reasoning traces and reject unsupported money claims before posting to Slack.rescueops/slack_ai_agent.pyhandles Slack AI assistant prompts and app-mention briefs, forwarding Slack eventaction_tokeninto the RTS path when Slack provides it.rescueops/socket_app.pyexecutes the Slack workflow through/rescueops, Block Kit buttons, channel creation, and message posting.
/rescueops rts-check
/rescueops scan acme
/rescueops live acme
/rescueops demo acme
/rescueops rts-check proves Slack RTS availability and /rescueops live acme demonstrates the live proof path: Live Slack RTS + MCP business context. /rescueops scan acme and /rescueops live acme run the live RTS lane and display the evidence source on the Slack card. /rescueops demo acme is the named deterministic fallback. /rescueops hybrid acme is an optional comparison mode.