Slack
- docs
- 148,213
- last sync
- 42s ago
- throughput
- 1.2k msg/min
- scope
- 23 channels · 4 workspaces
v0.4 · demo dataset
Context Synthesizer unifies Slack, Jira, Google Drive, and Notion into a single semantic layer — with hybrid retrieval, parent-child chunking, entity graphs, and continuous evaluation of faithfulness, recall, and groundedness.
Ingestion surface
Every record — a Slack thread, Jira comment, Drive doc, Notion block — normalizes into the same 15-field envelope with permission tags preserved.
Positioning
Enterprise questions cross tools, span time, and depend on who is asking. Retrieval that treats every chunk as an island cannot answer them.
Naive RAG
Chunks lose their document
Retrieved slices arrive with no parent, no author, no permissions — the model hallucinates ownership.
Single-source retrieval
Vector-only search misses exact identifiers (`ATLAS-874`, `/v2/search`) that BM25 nails.
No entity model
Systems don't know that #mobile-auth in Slack, ATLAS-874 in Jira, and RFC-024 in Notion describe the same thing.
No eval loop
Nobody knows the retrieval regressed — until a support ticket.
Context Synthesizer
Parent-child linkage
Every chunk carries its parent summary and metadata; citations resolve back to the exact section.
Hybrid + rerank
BM25 + dense retrieval fused with RRF, then a cross-encoder rerank on the top-40.
Semantic graph
Entities are extracted once and reused; cross-system context reconstructs on retrieval.
Continuous evaluation
Ragas + Phoenix score every trace: faithfulness, recall, groundedness, precision.
How it works
Ingest
Connector workers pull deltas from Slack, Jira, Drive, Notion.
Normalize
Map to canonical envelope; preserve ACLs, authors, timestamps.
Chunk
Heading-aware split with parent-child linkage.
Embed
bge-large for dense; BM25 index for lexical.
Retrieve
RRF fusion, top-40 → cross-encoder rerank → top-8.
Graph
Entity extraction stitches cross-system context.
Synthesize
Grounded answer with numbered source citations.
Evaluate
Ragas scores every trace; Phoenix stores the run.
Live dashboard · demo data
Retrieval precision
Faithfulness
Context recall
Answer groundedness
Ingestion freshness
Evaluation trends · 14 days
Source contribution
Ingestion health
| Source | Docs | Freshness | Error rate | Last sync | Status |
|---|---|---|---|---|---|
| slack | 148,213 | 98% | 0.20% | 42s | ● healthy |
| jira | 24,817 | 96% | 0.40% | 1m | ● healthy |
| drive | 62,194 | 91% | 1.10% | 3m | ● syncing |
| notion | 9,382 | 78% | 3.20% | 12m | ● degraded |
Retrieval pipeline
latencies: p50 620ms · p95 1.4s
Recent traces
What changed in Project Atlas over the last 3 sprints?
bm25 → vector → rrf → rerank → graph → synthesize
Owner of the payments idempotency-key spec?
bm25 → vector → rrf → rerank → synthesize
Open blockers on mobile auth this week
bm25 → vector → rrf → rerank → graph → synthesize
Q3 SLA breach postmortem — root cause
bm25 → vector → rrf → rerank
Latest rate limit values for /v2/search
bm25 → vector → rrf → synthesize
Failed retrievals
What did legal decide about the EU data residency clause?
3 candidate chunks excluded by ACL (legal-internal)
Design review notes for onboarding v4
Notion partition last synced 42m ago (SLA: 5m)
Which vendor was picked for the observability RFP?
Top rerank score 0.41 (threshold 0.55)
Semantic entity graph
Top entities · 24h
Project Atlas
project
mobile-auth
workstream
API rate limits
topic
Payments
team
Q3 SLA breach
incident
EU data residency
policy
Ingestion freshness
Interactive demo
Pick a real enterprise question. See what was retrieved, from where, and how the synthesized answer scored.
Retrieved context · 4 chunks
Split the monolithic worker into per-source queues. Backpressure isolated; Notion no longer starves Slack.
Long Drive docs are chunked at heading boundaries; parent doc summary is co-retrieved for context reconstruction.
RRF(k=60) over BM25 + bge-large; cross-encoder rerank on top-40 → top-8. Precision@8 = 0.912.
Given the Q3 SLA postmortem, moving mobile-auth to sprint 44. Payments team owns the auth-refresh spike.
Synthesized answer
Across sprints 41–43, Project Atlas shifted from a monolithic ingestion worker to a partitioned queue-per-source model [1], introduced parent-child chunking for long Drive documents [2], and adopted RRF fusion with a cross-encoder reranker [3]. The mobile-auth workstream was descoped to sprint 44 after the Q3 SLA postmortem [4]. Retrieval precision improved from 0.87 to 0.91 as a result.
System architecture
Each layer has a narrow contract with the next. Traces flow forward; evaluation flows backward.
L1
01/8
Per-source workers with delta pagination, backoff, and dead-letter queues. Slack, Jira, Drive, Notion.
L2
02/8
Every record maps to a 15-field canonical envelope: source_type, ids, authors, teams, permission_tags, timestamps, trust_score.
L3
03/8
Heading-aware splits keep chunks tight; parent doc summary is co-indexed so retrieved slices arrive with their context.
L4
04/8
BM25 (Postgres FTS) and dense vectors (bge-large in pgvector + Qdrant) fused with reciprocal rank fusion.
L5
05/8
Top-40 candidates reranked by ms-marco cross-encoder to top-8 with score-gated fallback to no-answer.
L6
06/8
Entities extracted at ingest and linked across systems. Retrieval walks the graph to reconstruct cross-tool context.
L7
07/8
Ragas scores faithfulness, recall, and precision on every trace. Phoenix stores runs for drift analysis.
L8
08/8
Permission tags travel with every chunk. Answers cite specific documents; ACL-filtered candidates are logged.
Why this project
Context Synthesizer is deliberately shaped like real enterprise infrastructure: a messy multi-source ingestion problem, a retrieval stack that combines lexical and semantic signals, an evaluation loop that catches regressions, and a UI that treats citations and permissions as first-class.
Hybrid retrieval, RRF fusion, cross-encoder reranking, parent-child chunking, score-gated no-answer.
Multi-source ingestion, delta pagination, ACL preservation, canonical schemas, dead-letter handling.
Ragas metrics wired into every trace: faithfulness, recall, precision, groundedness.
Phoenix traces, per-stage latency, drift dashboards, failure taxonomy.
Entity extraction, cross-system linkage, graph-augmented retrieval.
Recruiter-facing dashboards, source attribution, permission-aware answers.
Stack