Plan a Discord bot deployment

Check shared versus own-app requirements, declared intents and optional channel permission data. Returns concrete setup steps. No Discord token, account, server or connection is inspected or changed.

Opening this form does not run the check.

Example JSON request
{
  "bot_type": "undecided",
  "requirements": [
    "direct_messages",
    "custom_avatar"
  ],
  "manage_server": true,
  "message_content_intent": false,
  "shared_bot_in_server": false
}
Supported fields and limits (JSON Schema)
{
  "$defs": {
    "DiscordChannelInput": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "pattern": "^[0-9]{1,20}$",
          "title": "Id",
          "type": "string"
        },
        "type": {
          "default": 0,
          "enum": [
            0,
            5
          ],
          "title": "Type",
          "type": "integer"
        },
        "permission_overwrites": {
          "items": {
            "$ref": "#/$defs/DiscordOverwriteInput"
          },
          "maxItems": 15,
          "title": "Permission Overwrites",
          "type": "array"
        }
      },
      "required": [
        "id"
      ],
      "title": "DiscordChannelInput",
      "type": "object"
    },
    "DiscordOverwriteInput": {
      "additionalProperties": false,
      "properties": {
        "id": {
          "pattern": "^[0-9]{1,20}$",
          "title": "Id",
          "type": "string"
        },
        "type": {
          "enum": [
            0,
            1
          ],
          "title": "Type",
          "type": "integer"
        },
        "allow": {
          "default": "0",
          "pattern": "^[0-9]{1,20}$",
          "title": "Allow",
          "type": "string"
        },
        "deny": {
          "default": "0",
          "pattern": "^[0-9]{1,20}$",
          "title": "Deny",
          "type": "string"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DiscordOverwriteInput",
      "type": "object"
    },
    "DiscordReplyInput": {
      "additionalProperties": false,
      "properties": {
        "guild_id": {
          "pattern": "^[0-9]{1,20}$",
          "title": "Guild Id",
          "type": "string"
        },
        "member_id": {
          "pattern": "^[0-9]{1,20}$",
          "title": "Member Id",
          "type": "string"
        },
        "channel": {
          "$ref": "#/$defs/DiscordChannelInput"
        },
        "role_permissions": {
          "maxProperties": 15,
          "patternProperties": {
            "^[0-9]{1,20}$": {
              "pattern": "^[0-9]{1,20}$",
              "type": "string"
            }
          },
          "title": "Role Permissions",
          "type": "object"
        },
        "member_role_ids": {
          "items": {
            "pattern": "^[0-9]{1,20}$",
            "type": "string"
          },
          "maxItems": 15,
          "title": "Member Role Ids",
          "type": "array"
        },
        "respond_in_threads": {
          "default": false,
          "title": "Respond In Threads",
          "type": "boolean"
        }
      },
      "required": [
        "guild_id",
        "member_id",
        "channel",
        "role_permissions"
      ],
      "title": "DiscordReplyInput",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "bot_type": {
      "default": "undecided",
      "enum": [
        "shared",
        "own",
        "undecided"
      ],
      "title": "Bot Type",
      "type": "string"
    },
    "requirements": {
      "items": {
        "enum": [
          "direct_messages",
          "custom_avatar",
          "ai_actions",
          "multiple_bots",
          "welcome_messages"
        ],
        "type": "string"
      },
      "maxItems": 5,
      "title": "Requirements",
      "type": "array"
    },
    "manage_server": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Manage Server"
    },
    "message_content_intent": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Message Content Intent"
    },
    "server_members_intent": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Server Members Intent"
    },
    "shared_bot_in_server": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Shared Bot In Server"
    },
    "application_id": {
      "anyOf": [
        {
          "pattern": "^[0-9]{1,20}$",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Application Id"
    },
    "permissions": {
      "anyOf": [
        {
          "$ref": "#/$defs/DiscordReplyInput"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "title": "DiscordReadinessInput",
  "type": "object"
}

Tool version: public-discord-readiness-v1