Inspiration

What it doesInspiration

Sales promises something. Engineering already documented, months ago, that it can't be done. Nobody connects the two because nobody has visibility across both the Slack thread and the Confluence post-mortem live in different worlds. The commitment gets made, and the cost surfaces at delivery.

What it does Align watches what one team is saying in Slack and checks it against what another team has already documented in Confluence, then flags the clash before the commitment is made. Nobody asks it a question it runs on its own and surfaces a risk no single person knew to look for.

How we built it Four stages: Ingest (Slack messages plus text pulled out of attached PDFs and Word docs), Summarise (Mistral extracts structured facts entity, attribute, value, status, confidence, and a verbatim quote as evidence), Retrieve (Confluence CQL search over the engineering space), Verify (Mistral judges whether the two genuinely contradict).

Python, Streamlit, SQLite for organisational memory, and Mistral for every LLM call via strict Pydantic response schemas. A MOCK mode runs the whole thing off saved fixtures — no network, no keys, nothing to fail on stage.

Challenges we ran into Reusing one fact schema for both sources quietly broke Confluence extraction: it demanded Slack message IDs a wiki page doesn't have, and the field descriptions — which get sent to the model as part of the strict schema — told it to quote Slack. Facts came back untraceable, which defeats the whole point when the output is "this document contradicts you." We split the schema by source so each fact cites what it actually came from.

Smaller ones: the Mistral SDK restructured its package in 2.x, so every tutorial import is wrong. And a search term containing a quote could rewrite our CQL query into a different Confluence space.

Accomplishments that we're proud of Retrieval deliberately returns decoy pages documents that mention SAP without contradicting anything so the verify stage has to actually reason rather than keyword-match. Every fact carries a verbatim quote and a link back to its source, so an alert is auditable rather than something you take on faith. And 44 checks run with no API key, no network, and no credits spent.

What we learned Field descriptions in a structured-output schema are prompt. We changed one word and changed what the model returned. Also: an alert nobody can trace is an alert nobody trusts provenance turned out to be the feature, not the plumbing.

What's next for Align Wiring the four stages into a scheduled background run, alert de-duplication so the same clash is never raised twice, writing back into the Slack thread where the commitment was made, and extending beyond Sales/Engineering to any two teams whose assumptions drift.

Built With

Share this project:

Updates

Submission history