{"id":92626,"plugin_id":"plugin_asdk_app_6ae56a798d3081918577083b916c0b27","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-12T06:10:17.559Z","digest":"7f4f820d8f1b05160023c1836ed30fe41d38b149faceda5a26e157b1ab5ab989","against":null,"payload":{"description":"Build or change a Discord bot in Buildcord from a description, such as slash commands, replies to things that happen in a server, schedules, buttons, forms, embeds and saved data. Use when the person asks for something their Discord bot should do, wants to change how it behaves, or asks what's wrong with a bot and to fix it.","included_files":[{"relative_path":"agents/openai.yaml","size_in_bytes":237}],"name":"build-discord-bot","skill_md_contents":"---\nname: build-discord-bot\ndescription: Build or change a Discord bot in Buildcord from a description, such as slash commands, replies to things that happen in a server, schedules, buttons, forms, embeds and saved data. Use when the person asks for something their Discord bot should do, wants to change how it behaves, or asks what's wrong with a bot and to fix it.\n---\n\nUse this skill when the person wants their Discord bot to do something new or different, or wants a bot's problems fixed. Buildcord's tools change the bot's draft; nothing goes live until the person deploys it from the Buildcord builder.\n\n## Workflow\n\n1. Find the bot. Call `list_bots`. If the person names a bot, use it. If they have exactly one, use that. If there are several and it isn't clear which, ask. If they have none, offer to make one with `create_bot`, using the name they give.\n2. Read before changing. Call `get_bot` for the bot's outline, and `read_flow` or `read_item` for anything you're about to change.\n3. Learn the steps. Call `read_step_catalogue` once per conversation before building or changing flows. Use only the step kinds, settings, outputs and `{tokens}` it describes. Never invent them.\n4. Build.\n   - A new command, event reply or schedule is `create_flow`, then `edit_flow` to add and wire its steps. Add and wire many steps in one `edit_flow` call, giving new steps a ref so later operations in the same call can use them.\n   - A message design is `save_embed`, buttons and menus are `save_components`, a form is `save_modal`, and stored data is `save_variable` or `save_collection`. Create what a flow needs if it doesn't exist; reuse what exists when it fits.\n5. Check. `edit_flow` returns the flow's remaining problems. Fix the ones your change caused. Mention, without fixing unasked, problems that were there before.\n6. Show. Call `show_bot` with the bot and the flow you built so the person sees the diagram.\n7. Reply in plain words: what the bot now does, anything the person must still do, and that it goes live when they press Deploy in the builder. Give the builder link from the tool result.\n\n## Ask, stop or decline\n\n- Ask when a wrong guess would be costly or can't be undone: which bot, which channel or role when several fit, or what a message should say when it matters to them.\n- Before `delete_item`, say exactly what will be deleted and wait for the person to confirm.\n- Don't accept bot tokens, passwords or other secrets in the chat, and don't repeat them. Secrets and the bot's token are set in the builder. If someone pastes a token, tell them to reset it in Discord's developer portal.\n- You can't deploy, see secrets, or act in a Discord server directly (ban someone, post a message now). Say so, and offer to build a flow that does it instead.\n- If a tool fails, read its error, correct the call and try again. If it still fails, tell the person what didn't work.\n\n## Don't\n\n- Don't describe a flow instead of building it when the person asked for it to be built.\n- Don't report ids, JSON or step kinds to the person. Name things the way the builder does: the /ping command, the welcome embed.\n- Don't claim something is live, or that a command works in Discord, before it's deployed.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}