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:

1

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.

2

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.

3

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

@mo approve this

Reads the conversation and captures one or more decisions from it.

@mo approve

Same as above — both forms work.

Undo or reject a decision

@mo undo that

Rejects the most recent decision for this project.

@mo disregard that

Same as undo — rejects the last decision.

@mo undo "Trial must be 14 days"

Rejects a specific decision by quoting its title.

@mo get rid of that last decision

Natural language also works.

@mo changed my mind

Rejects the most recent decision.

@mo nevermind

Rejects the most recent decision.

Tip: When you undo a decision by quoting its title, Mo searches approved decisions that match the quoted text. Gray text in quotes in the commands above is an example only — use your real decision title. If you don’t quote a title, Mo removes the most recently approved decision.

Ask Mo about decisions

@mo what was our last decision?

Shows the most recent decision with details.

@mo list decisions

Shows the 5 most recent decisions for the project.

@mo show me our decisions

Same as above — lists recent decisions.

@mo how many decisions do we have?

Shows a count breakdown: approved, rejected, pending.

@mo when did we say "14-day trial"?

Tells you when a specific decision was made and by whom.

@mo who said we should do "trial"?

Tells you who captured a decision matching the quoted text.

@mo who rejected "trial"?

Tells you who undid a specific decision.

Show this command list

@mo help

Lists every Slack command Mo supports (same as this Help page).

@mo what are your prompts?

Shows all commands.

@mo what things can i ask you?

Shows all commands.

@mo what can i ask you?

Shows all commands.

@mo how to

Shows all commands.

Tip: Put the topic in quotes so Mo knows what to search for. Text in gray in the commands above is only an example — use your own decision title or keywords. Without quotes, Mo shows general information like the most recent decisions or a count summary.

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.

Important: Mo checks the diff before the PR is merged. This gives you time to fix any conflicts before the code reaches your main branch.

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.