Repository navigation
Open
1 / 71 of 7 issues completedLabels
area: botsTeams, Slack, Discord, GitHub, Linear adaptersTeams, Slack, Discord, GitHub, Linear adaptersepicLarge feature split into smaller issuesLarge feature split into smaller issuespriority: lowNice to haveNice to have
Milestone
Description
Goal
Answer questions where the team works, with cited sources, behind one adapter contract. Bots run inside waymark serve (#95), answer with each asker's permissions (#97) and use the optional LLM provider (#89); without an LLM they reply with the best sources.
Issues
| Issue | What | Depends on |
|---|---|---|
#101 Answer engine (waymark ask) |
retrieval + cited answer, LLM optional | #89 |
| #102 Bot runtime: adapter contract, user mapping, policy, rate limits | shared pipeline | #101, #93, #94, #95, #97 |
#103 Slack (Socket Mode, @slack/bolt) |
mentions + DMs, no public URL | #102 |
#104 Microsoft Teams (Teams SDK, @microsoft/teams.apps) |
mentions + 1:1 | #102 |
| #105 Discord (Gateway websocket) | @mention or DM | #102 |
#106 GitHub (@waymark-bot in issue/PR comments) |
webhooks, separate write app | #102 |
| #107 Linear (agent sessions) | mentions / delegation | #102 |
Order: #101 (can start once #89 lands) → #102 (after epic #18's #93-#95 and #97) → #103-#107 in parallel.
Conventions for every issue
- Each platform uses its own "Waymark Bot" identity with write scopes; connector identities stay read-only (ADR-0002).
- Unlinked platform users are denied by default (
bots.unlinkedUsers: "deny"); link withwaymark user link <name> <platform> <id>. - Acknowledge inside the platform deadline before any search/LLM work; verify every webhook signature on the raw body.
- Retrieved documents are untrusted data in prompts (OWASP LLM01); answers keep only source URLs.
- Fake platform seams in tests; one manual check per platform on an account the maintainer chooses (result in the PR, no content).
- New runtime dependencies allowed only where named:
@slack/bolt(Slack bot: answer @mentions and DMs over Socket Mode (no public URL) #103),@microsoft/teams.apps(Microsoft Teams bot via the Teams SDK, hosted insidewaymark serve#104).
Definition of done
- The same question asked in Slack, Teams, Discord, a GitHub issue and Linear returns the same cited sources for the same linked user.
- A user without access to a source never gets it cited in any bot.
-
docs/bots.mdcovers setup per platform, linking users and privacy.
Evidence
- Slack Socket Mode: https://docs.slack.dev/apis/events-api/using-socket-mode ; Bolt for JS: https://docs.slack.dev/tools/bolt-js/
- Teams SDK: https://learn.microsoft.com/en-us/microsoftteams/platform/teams-sdk/ (Bot Framework SDK archived: https://github.com/microsoft/botbuilder-js)
- Discord Gateway (mentions and DMs without the privileged message-content intent): https://docs.discord.com/developers/events/gateway
- GitHub webhooks: https://docs.github.com/en/webhooks/webhook-events-and-payloads
- Linear agents: https://linear.app/developers/agents
Metadata
Metadata
Assignees
Labels
area: botsTeams, Slack, Discord, GitHub, Linear adaptersTeams, Slack, Discord, GitHub, Linear adaptersepicLarge feature split into smaller issuesLarge feature split into smaller issuespriority: lowNice to haveNice to have
Activity
waymark askcomposes a cited answer from the knowledge base (LLM optional) #101waymark serve#104@waymark-botmentions in issue and PR comments (webhooks) #106