Pre-submission audit
Paste your app manifest below. It is parsed in this browser and nothing is uploaded anywhere. You get the same list a reviewer works from: what blocks submission outright, and what you will be asked to justify in writing.
In Slack: api.slack.com/apps → your app → Features → App
Manifest → JSON tab → copy the whole thing.
Most write-ups treat the Directory checklist as a form to fill in. In practice one thing drives the majority of send-backs: scope justification. Slack applies least privilege, and a reviewer will ask, scope by scope, which declared feature uses it. A scope no feature can reach is not a warning — it is a rejection with a request to remove or explain.
So this audit does not just check whether fields are filled in. It derives the set of scopes your declared features and subscribed events could possibly use, and diffs it against what you request. That diff is the conversation you are going to have with the reviewer, written down before you have it.
bot, read, post,
client) instead of granular bot scopes.X-Slack-Retry-Num, and duplicate side effects get noticed.Retry-After rather than retrying
immediately.app_uninstalled and
tokens_revoked.