Integrations
Each connection states the highest band it lets the engine reach, and the exact scopes it holds.
GitHub — acme/site
connectedgatedInstalled on 1 repository. Branch prefix aeo/, base branch main. The app can open pull requests; it cannot merge them.
Turns a drafted fix into a real pull request. The app can open PRs; it cannot merge them, and no scope we request would let it.
Connected 2 Jul 2026
Google Search Console
connectedreadProperty acme.com. Used for rank and impression data only.
Supplies classic rank and impression data so the SEO screen can show where ranking and citation disagree.
Connected 2 Jul 2026
CMS (Contentful-compatible)
not connectedgatedNot connected. Without it, request_publish has nowhere to publish and will fail closed.
Lets request_publish put an approved content change live. Without it that tool fails closed rather than pretending to work.
Slack — #growth
needs attentionreadWebhook returned 404 on the last 3 alerts. The channel was probably archived.
Pushes alerts into a channel. Read-only in every direction — nothing in Slack can drive the engine.
Connected 3 Jun 2026
What we never ask for
The scopes we deliberately do not request, and why.
- Merge or write to a default branch — Every change lands as a PR against a branch. Merging is yours.
- Delete anything — No integration we request carries a delete permission on any surface.
- Read private repository source beyond the target repo — The GitHub app is installed per-repository, not per-organisation.
- Write to Slack — Alerts are one-way. A Slack message can never trigger a fix.