discord-bot-architect
Enables developers to create production-ready Discord bots using Discord.js and Pycord, covering essential features and best practices.
Install this skill
Security score
The discord-bot-architect skill was audited on May 12, 2026 and we found 47 security issues across 3 threat categories, including 2 high-severity. Review the findings below before installing.
Categories Tested
Security Issues
Direct command execution function call
| 792 | manager.spawn(); |
Direct command execution function call
| 1297 | manager.spawn(); |
Template literal with variable interpolation in command context
| 98 | await interaction.editReply(`Pong! Latency: ${latency}ms`); |
Template literal with variable interpolation in command context
| 114 | console.error(`No command matching ${interaction.commandName}`); |
Template literal with variable interpolation in command context
| 157 | console.log(`Refreshing ${commands.length} commands...`); |
Template literal with variable interpolation in command context
| 171 | console.log(`Successfully registered ${data.length} commands`); |
Template literal with variable interpolation in command context
| 363 | await i.update({ content: `You selected: ${i.values.join(', ')}` }); |
Template literal with variable interpolation in command context
| 414 | content: `Thanks for your feedback!\n**${title}**\n${body}`, |
Template literal with variable interpolation in command context
| 541 | content: `Result: ${aiResponse}`, |
Template literal with variable interpolation in command context
| 605 | { name: 'Servers', value: `${client.guilds.cache.size}`, inline: true }, |
Template literal with variable interpolation in command context
| 606 | { name: 'Users', value: `${client.users.cache.size}`, inline: true }, |
Template literal with variable interpolation in command context
| 669 | console.log(`Rate limited! Retry after ${info.retryAfter}ms`); |
Template literal with variable interpolation in command context
| 670 | console.log(`Route: ${info.route}`); |
Template literal with variable interpolation in command context
| 671 | console.log(`Global: ${info.global}`); |
Template literal with variable interpolation in command context
| 781 | console.log(`Launched shard ${shard.id}`); |
Template literal with variable interpolation in command context
| 784 | console.log(`Shard ${shard.id} ready`); |
Template literal with variable interpolation in command context
| 788 | console.log(`Shard ${shard.id} disconnected`); |
Template literal with variable interpolation in command context
| 801 | console.log(`Shard ${client.shard.ids[0]} ready with ${client.guilds.cache.size} guilds`); |
Template literal with variable interpolation in command context
| 899 | await interaction.editReply(`Result: ${aiResponse}`); |
Template literal with variable interpolation in command context
| 1277 | console.log(`Shard ${id} resumed, replayed ${replayedEvents} events`); |
Template literal with variable interpolation in command context
| 1281 | console.log(`Shard ${id} disconnected`); |
Template literal with variable interpolation in command context
| 1285 | console.log(`Shard ${id} reconnecting...`); |
Access to .env file
| 79 | client.login(process.env.DISCORD_TOKEN); |
Access to .env file
| 153 | const rest = new REST().setToken(process.env.DISCORD_TOKEN); |
Access to .env file
| 167 | Routes.applicationCommands(process.env.CLIENT_ID), |
Access to .env file
| 189 | ├── .env |
Access to .env file
| 284 | ├── .env |
Access to .env file
| 666 | .setToken(process.env.DISCORD_TOKEN); |
Access to .env file
| 775 | token: process.env.DISCORD_TOKEN, |
Access to .env file
| 1020 | const rest = new REST().setToken(process.env.DISCORD_TOKEN); |
Access to .env file
| 1024 | if (process.env.GUILD_ID) { |
Access to .env file
| 1027 | process.env.CLIENT_ID, |
Access to .env file
| 1028 | process.env.GUILD_ID |
Access to .env file
| 1038 | Routes.applicationCommands(process.env.CLIENT_ID), |
Access to .env file
| 1107 | client.login(process.env.DISCORD_TOKEN); |
Access to .env file
| 1114 | .env |
Access to .env file
| 1115 | .env.local |
Access to .env file
| 1130 | # .env (never commit) |
Access to .env file
| 1138 | const token = process.env.DISCORD_TOKEN; |
Access to .env file
| 1294 | token: process.env.DISCORD_TOKEN, |
External URL reference
| 325 | .setURL('https://discord.js.org') |
External URL reference
| 598 | .setURL('https://example.com') |
External URL reference
| 610 | .setImage('https://example.com/banner.png') |
External URL reference
| 629 | url="https://example.com" |
External URL reference
| 638 | embed.set_image(url="https://example.com/banner.png") |
External URL reference
| 953 | 1. Go to https://discord.com/developers/applications |
External URL reference
| 1165 | https://discord.com/api/oauth2/authorize |