Help
How Mo works — Slack commands, pull request checks, and everything in between.
How Mo works
Mo connects your Slack conversations to your code review process. The workflow is simple:
Capture decisions in Slack
When your team agrees on something in Slack, mention Mo to record it. Mo reads the conversation, extracts the decision, and stores it.
Open a pull request (or merge request)
When a developer opens a PR in GitHub or a MR in GitLab, Mo automatically checks the code diff against all approved decisions.
Get results before merging
Mo posts a status check and a comment on the PR/MR before it is merged — not after. If the code contradicts a decision, Mo flags it so the team can address it before it reaches production.
Slack commands
All commands work by mentioning Mo in the channel where the conversation happened. Mo reads the thread context automatically.
Capture a decision
Reads the conversation and captures one or more decisions from it.
Same as above — both forms work.
Undo or reject a decision
Rejects the most recent decision for this project.
Same as undo — rejects the last decision.
Rejects a specific decision by quoting its title.
Natural language also works.
Rejects the most recent decision.
Rejects the most recent decision.
Ask Mo about decisions
Shows the most recent decision with details.
Shows the 5 most recent decisions for the project.
Same as above — lists recent decisions.
Shows a count breakdown: approved, rejected, pending.
Tells you when a specific decision was made and by whom.
Tells you who captured a decision matching the quoted text.
Tells you who undid a specific decision.
Show this command list
Lists every Slack command Mo supports (same as this Help page).
Shows all commands.
Shows all commands.
Shows all commands.
Shows all commands.
Multi-decision conversations
Mo can extract multiple decisions from a single conversation. For example:
John: Let's do a 14-day trial.
Mary: I agree. We should also send a reminder
the day before the trial ends.
Oscar: @mo approve this
Mo analyzes the full thread and may create one combined decision or two separate ones, depending on context. Each decision is linked back to the specific messages that informed it, so you can always trace where it came from.
If a new decision contradicts a previous one (e.g., changing the trial from 30 days to 14 days), Mo will supersede the old decision automatically.
Pull requests — GitHub
Once GitHub is connected in the Integrations page, Mo will automatically check every new pull request opened on the selected repositories.
How to create a pull request
# Create a new branch and make your changes git checkout -b feature/my-change # Stage and commit git add . git commit -m "Implement 14-day trial" # Push the branch git push -u origin feature/my-change
Then open a pull request on GitHub — either from the link Git gives you in the terminal, or from the GitHub UI by navigating to your repo and clicking Compare & pull request.
Once the PR is open, Mo reads the code diff and compares it against your approved decisions. If it finds a conflict, it posts a comment on the PR and marks the check as failed. Otherwise, the check passes.
Merge requests — GitLab
Once GitLab is connected in the Integrations page, Mo checks every new merge request opened on the selected projects.
How to create a merge request
# Create a new branch and make your changes git checkout -b feature/my-change # Stage and commit git add . git commit -m "Implement 14-day trial" # Push the branch git push -u origin feature/my-change
Then open a merge request on GitLab — from the link Git gives you after pushing, or from the GitLab UI under your project’s Merge Requests tab clicking New merge request.
Mo reads the MR diff and checks it against approved decisions, just like with GitHub. Conflicts are posted as comments on the MR.
What Mo checks
When a PR or MR is opened, Mo compares the code changes (the diff) against all approved decisions for the project. It looks for:
Code that directly contradicts a decision (e.g., setting a trial to 22 days when the decision says 14).
Missing implementations that a decision requires.
Configuration or constant values that don’t align with what was agreed.
Results appear on the Checks page in the Mo app, and as comments and status checks directly on the PR/MR.
Decisions page
The Decisions page shows all captured decisions for your project. It has two views:
Current decisions — Decisions grouped by feature or area. This is the structured view.
History — A chronological timeline of every decision change, including who made it and what Slack messages it was based on.
You can also add decisions manually from the Decisions page without going through Slack.
Contact us
Questions or feedback? We aim to respond within 24 hours. Copy the address below and open it in your email client, or use Copy and paste it into a new message.