Inspiration
In modern engineering teams, Slack is where work happens—and where critical context can disappear. Threads grow quickly, updates arrive across time zones, and teams lose time catching up, repeating standups, and tracking unresolved blockers.
We built KnotPilot to make Slack calmer and more actionable: an AI co-pilot that turns conversations into concise summaries, structured standups, visible blockers, and grounded answers.
What it does
KnotPilot transforms Slack activity into useful team intelligence:
- 🌅 Async Daily Standups: Collects updates through an interactive Slack flow and posts a concise digest.
- 🧵 Thread Summaries: Summarizes recent channel discussion and extracts action items.
- 🚧 Blocker Tracking: Records standup blockers with owners so teams can quickly see what needs attention.
- 🔎 Research Assistant: Answers
/knotpilot ask <question>using configured real-time search sources. - 🗂️ DataHub-Powered Governance Answers: Answers
/knotpilot data <question>from a governed DataHub catalog through DataHub’s open-source MCP server—for example, questions about data retention, ownership, schemas, and lineage.
How we built it
KnotPilot is built as a Slack-native AI application with a React landing page and a Python backend:
- Frontend: React, Vite, Tailwind CSS, and Vercel for the public landing page and Slack installation entry point.
- Slack Agent Backend: FastAPI, Python, Slack Bolt, Slack Events API, OAuth, slash commands, Block Kit, and App Home.
- Persistence: SQLite for local development and AWS Aurora PostgreSQL for production installation and configuration metadata.
- AI Layer: Anthropic-powered summaries and answers, with structured output for thread action items.
- DataHub Integration: Open-source DataHub Core is used as the metadata catalog. KnotPilot connects through the official open-source DataHub MCP server in read-only mode to retrieve catalog context for governance questions.
- Privacy Boundary: Slack message content is fetched only when needed for a user-requested summary and is not persisted by KnotPilot. DataHub catalogs application metadata and approved governance documentation—not Slack message bodies.
Challenges we ran into
- Slack’s acknowledgement deadline: Slack expects slash commands and events to be acknowledged quickly. We acknowledge requests immediately, then perform slower work such as summarization, research, or catalog lookups before replying through Slack.
- Keeping answers grounded: Research answers need current sources, while governance answers need trustworthy internal metadata. We separated real-time web research from DataHub MCP catalog retrieval so each answer is grounded in the right context.
- Privacy-aware metadata design: Adding a data catalog could have expanded the project’s data footprint. We designed the DataHub integration around schemas, ownership, retention documentation, and lineage—not archived Slack conversations.
- Multi-workspace security: Supporting Slack OAuth requires careful installation storage, signed-request validation, scoped permissions, and isolation between workspaces.
Accomplishments that we're proud of
- ⚡ Built a complete Slack workflow for standups, summaries, blockers, research, and governance questions.
- 🗂️ Added a meaningful DataHub Core + MCP integration instead of using DataHub only as a demo dependency.
- 🔐 Preserved a privacy-first design: no Slack message archive, encrypted production metadata storage, and read-only DataHub queries.
- 💬 Created Block Kit responses that keep standup and research workflows inside Slack.
What we learned
- A catalog makes AI answers more trustworthy: LLMs are more useful when they can retrieve governed context about ownership, schema, lineage, and policy.
- Privacy must shape the architecture: Useful AI workflows do not require retaining every message or expanding data access unnecessarily.
- ChatOps needs concise interaction design: Clear commands, structured Block Kit output, and immediate acknowledgement matter as much as model quality.
What's next for KnotPilot
- 📊 Weekly standup trends and sprint retrospective summaries.
- 🔌 Optional Jira and GitHub integrations for turning blockers into tracked work.
- 🏷️ DataHub-driven ownership, glossary, and lineage enrichment for stronger governance answers.
- 🔐 Production deployment of DataHub with scoped service credentials and role-based catalog access.
Built With
- amazon-web-services
- anthropic
- aws-aurora
- datahub
- docker
- fastapi
- model-context-protocol
- oauth-2.0
- postgresql
- python
- react
- rest-api
- slack-api
- slack-block-kit
- slack-bolt
- slack-events-api
- tailwindcss
- typescript
- vercel
- vite
Log in or sign up for Devpost to join the conversation.