Inspiration
Every developer has been there — you hit a problem, open the runbook, follow the steps, and it still doesn't work. Then a teammate says "oh that changed, there was a message in #platform about it." You find the thread. The fix was there all along, buried under 40 other messages, never making it back to the doc.
This happens constantly:
- Build keeps failing — Node version changed to 20, announced in
#backend, setup doc still says 18 - Wrong escalation contact — person left two months ago, real path lives in a
#eng-opsthread - Can't deploy — December freeze was posted in the channel, never touched the runbook
- Rollback command errors — old CLI syntax in the doc, new one posted after a migration and forgotten
- Staging URL broken — moved to a new subdomain, announced once, now only exists in people's memory
The fix is always in Slack. The doc is always wrong. And nobody updates it — not because they don't care, but because by the time the moment passes, there's already something else to deal with.
TrueDocs closes that gap automatically. It watches the channels your team already uses and brings the docs in sync — without asking anyone to change how they work.
What it does
TrueDocs is a Slack agent that watches your channels for announcements that contradict or extend what's written in your Confluence documentation, then proposes targeted updates — with one-click approval to apply them live.
/truedocs-scan
Run this in any registered Slack channel. TrueDocs looks back over the configured time window (1 hour to 1 week), reads all the human messages, and compares them against the linked Confluence page. If anything changed — a value, a step, a deadline, a contact — it posts a drift card right in the channel.
The drift card looks like a code review diff. You see exactly what the doc currently says, what the Slack announcement suggests it should say, and which specific message triggered the flag. Then you click Apply to Confluence or Skip on each item, one by one. No bulk updates. You stay in control.
/truedocs-ask
Ask any question about a linked Confluence page directly in Slack. Instead of opening a browser and searching through the doc, you just type the question. TrueDocs pulls the answer from the live Confluence page and using the Real-Time Search API it also checks recent channel messages for anything newer that hasn't made it to the doc yet. Both sources are fetched simultaneously and Claude reconciles them into a single reply.
The answer is color-coded based on what was found:
- Green — both sources agree. Confident, unified answer.
- Blue — answer is in the doc; no relevant Slack activity found.
- Orange — answer found in recent Slack but absent from the doc. A one-click "Update Documentation" button triggers a scan to write it to Confluence.
- Red — sources contradict each other. Both values are shown side by side so you can see exactly where they diverge, with a prompt to run a scan and resolve it.
How I built it
Architecture

| Layer | Technology |
|---|---|
| Slack integration | slack-bolt — Socket Mode for real-time events, slash commands, Block Kit actions |
| AI / LLM | Claude Sonnet 4.6 via Anthropic API |
| Agent framework | PydanticAI |
| Deployment | Docker on GCP |
Qualifying technologies used
Real-Time Search — /truedocs-ask uses the Real-Time Search API to fetch live channel messages alongside the Confluence page whenever a question is asked. Both sources are retrieved simultaneously so Claude always answers from the current state of the channel — not from a snapshot or a cache. This is what enables the contradiction detection: when Slack says one thing and the doc says another, the answer reflects both, in real time.
Slack AI capabilities — TrueDocs runs as a Slack AI Assistant. When a user opens a DM or @mentions the bot, it surfaces suggested conversation starters, streams its response token-by-token so the answer appears in real time, and shows a live status indicator while Claude is thinking. Conversation history is tracked per thread so follow-up questions work naturally without the user repeating context.
Accomplishments that I'm proud of
What I'm most proud of isn't the AI part. It's the per-item approval model. Early on I built it to apply all changes at once, and it immediately felt wrong. Documentation is nuanced — a Slack message might be context-specific, a one-time exception, not a permanent update. So I slowed it down. One item, one decision, one click. That design choice is what makes it trustworthy rather than just clever.
Stale docs aren't a startup problem or an enterprise problem — they're a people problem. Behind every outdated runbook is a team that moved fast and never looked back. A new engineer following wrong steps on their first on-call shift. A deployment that went sideways because the procedure quietly changed two weeks ago. These aren't edge cases — they happen everywhere, every week. I built Truedocs because the fix shouldn't require discipline or process overhead. It should just happen, in the tools teams already use. If it saves even one developer from a bad incident, or helps one team trust their docs again — that's more than enough for me.
What's next for Truedocs
More documentation platforms. Confluence is the starting point, but the architecture is platform-agnostic. Google Docs, Notion, and GitHub wikis are next — the core pipeline stays the same, only the integration layer changes.
Jira & Linear integration. When drift is detected, optionally raise a ticket so the doc update goes through the team's existing review process rather than being applied immediately.
Drift analytics dashboard. A lightweight view showing which docs drift most often, which channels generate the most updates, and how quickly teams act on suggestions — giving engineering leads visibility into where knowledge is moving fastest.
Log in or sign up for Devpost to join the conversation.