[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6R1CC2DBH349PCKT8KJ5TXA":3,"skill-same:01M6R1CC2DBH349PCKT8KJ5TXA":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6R1CC2DBH349PCKT8KJ5TXA","Telegram Bot Builder",null,"This skill should be used when the user asks to \"create a Telegram bot\", \"build a Telegram chatbot\", \"set up a Telegram webhook\", \"add inline keyboards to a bot\", \"handle Telegram callback queries\", \"implement Telegram payments\", \"send media via Telegram bot\", \"configure Telegram bot commands\", \"deploy a Telegram bot\", or mentions the Telegram Bot API, telegram bot tokens, getUpdates, setWebhook, or bot frameworks like node-telegram-bot-api, grammy, python-telegram-bot, or aiogram. Provides comprehensive guidance for building production-ready Telegram bots with Node.js and Python.","Mishit18\u002Fclaude-code-templates","Mishit18","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F244127857?v=4","01M6QXBYKWM76HSKYDNWSKKE41","Mishit Sharma","01M6QXBYRJ0CAVM51S1RTEKTZZ",1,"MIT","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"telegram","builder","bot","telegram bot","up","when","send","inline","production-ready","webhook","bots","ready","node","configure","Media","api","SET","payments","create","2026-11-10 10:12:30",false,"---\nname: Telegram Bot Builder\ndescription: This skill should be used when the user asks to \"create a Telegram bot\", \"build a Telegram chatbot\", \"set up a Telegram webhook\", \"add inline keyboards to a bot\", \"handle Telegram callback queries\", \"implement Telegram payments\", \"send media via Telegram bot\", \"configure Telegram bot commands\", \"deploy a Telegram bot\", or mentions the Telegram Bot API, telegram bot tokens, getUpdates, setWebhook, or bot frameworks like node-telegram-bot-api, grammy, python-telegram-bot, or aiogram. Provides comprehensive guidance for building production-ready Telegram bots with Node.js and Python.\n---\n\n# Telegram Bot Builder\n\nComprehensive guidance for building Telegram bots using the Bot API (v9.4). Covers both Node.js and Python ecosystems with production-ready patterns for authentication, messaging, keyboards, media handling, payments, inline mode, webhooks, and deployment.\n\n## When to Use This Skill\n\nUse this skill when:\n- Building a new Telegram bot from scratch\n- Integrating Telegram messaging into an existing application\n- Setting up webhooks or long polling for bot updates\n- Creating interactive menus with inline keyboards and callback queries\n- Handling media (photos, videos, documents, stickers)\n- Implementing Telegram Payments or Telegram Stars\n- Building inline mode functionality\n- Managing groups, channels, or forum topics via bot\n- Deploying bots to production (Docker, PM2, serverless)\n\n## Core Concepts\n\n### Authentication\n\nEvery bot has a unique token obtained from [@BotFather](https:\u002F\u002Ft.me\u002FBotFather). Token format: `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`.\n\nAll API calls go to: `https:\u002F\u002Fapi.telegram.org\u002Fbot\u003CTOKEN>\u002FMETHOD_NAME`\n\n```bash\n# .env file\nBOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11\n```\n\nStore the token in environment variables. Never commit it to source code.\n\n### Receiving Updates: Polling vs Webhook\n\n**Long Polling** (`getUpdates`) - Simpler, no HTTPS required, ideal for development:\n\n```javascript\n\u002F\u002F Node.js with node-telegram-bot-api\nconst bot = new TelegramBot(process.env.BOT_TOKEN, { polling: true });\n```\n\n```python\n# Python with python-telegram-bot\napp = Application.builder().token(os.getenv(\"BOT_TOKEN\")).build()\napp.run_polling()\n```\n\n**Webhook** (`setWebhook`) - Better for production, lower latency, requires HTTPS (ports 443, 80, 88, or 8443):\n\n```javascript\nbot.setWebHook('https:\u002F\u002Fyourdomain.com\u002Fwebhook', { secret_token: SECRET });\n```\n\nChoose polling for development and small bots. Choose webhooks for production deployments handling high traffic.\n\n### Message Types & Formatting\n\nSend text with `sendMessage`. Supported parse modes:\n\n- **HTML**: `\u003Cb>bold\u003C\u002Fb>`, `\u003Ci>italic\u003C\u002Fi>`, `\u003Ccode>code\u003C\u002Fcode>`, `\u003Cpre>block\u003C\u002Fpre>`, `\u003Ca href=\"url\">link\u003C\u002Fa>`, `\u003Ctg-spoiler>spoiler\u003C\u002Ftg-spoiler>`\n- **MarkdownV2**: `*bold*`, `_italic_`, `` `code` ``, ` ```block``` `, `[link](url)`, `||spoiler||`. Requires escaping: `_*[]()~>#+-=|{}.!`\n\nPrefer HTML for easier escaping. Use MarkdownV2 when simpler formatting suffices.\n\n### Keyboards & Interactive Elements\n\n**Inline Keyboard** - Buttons attached to messages:\n\n```javascript\nbot.sendMessage(chatId, 'Choose:', {\n  reply_markup: {\n    inline_keyboard: [\n      [{ text: 'Option A', callback_data: 'a' }, { text: 'Option B', callback_data: 'b' }],\n      [{ text: 'Visit Site', url: 'https:\u002F\u002Fexample.com' }]\n    ]\n  }\n});\n```\n\n**Reply Keyboard** - Custom keyboard below input field:\n\n```javascript\nbot.sendMessage(chatId, 'Choose:', {\n  reply_markup: {\n    keyboard: [[{ text: '? Stats' }, { text: '⚙️ Settings' }]],\n    resize_keyboard: true,\n    one_time_keyboard: true\n  }\n});\n```\n\nHandle inline button presses with `callback_query`. The `callback_data` field is limited to 64 bytes. Always call `answerCallbackQuery` to dismiss the loading indicator.\n\n### Sending Media\n\n```javascript\n\u002F\u002F Photo (file_id, URL, or upload)\nbot.sendPhoto(chatId, 'https:\u002F\u002Fexample.com\u002Fphoto.jpg', { caption: 'A photo' });\n\n\u002F\u002F Document\nbot.sendDocument(chatId, fs.createReadStream('.\u002Ffile.pdf'), { caption: 'Report' });\n\n\u002F\u002F Album (2-10 items)\nbot.sendMediaGroup(chatId, [\n  { type: 'photo', media: 'https:\u002F\u002Fexample.com\u002F1.jpg', caption: 'First' },\n  { type: 'photo', media: 'https:\u002F\u002Fexample.com\u002F2.jpg' }\n]);\n```\n\nThree ways to specify files: `file_id` (reuse previously uploaded), HTTP URL (Telegram downloads it), or multipart upload. File limits: 50MB upload, 20MB download via Bot API.\n\n### Conversation State\n\nFor multi-step interactions (registration, forms, wizards), maintain conversation state per chat:\n\n- **Node.js**: Use a `Map` or Redis to track `{ step, data }` per `chatId`\n- **Python**: Use `ConversationHandler` from `python-telegram-bot` (built-in state machine)\n\nSee `reference\u002Fpatterns_and_examples.md` for complete conversation flow implementations.\n\n### Error Handling\n\nHandle common error scenarios:\n- **429 Too Many Requests**: Read `retry_after` from response, wait, then retry\n- **403 Forbidden**: Bot was blocked by user or removed from chat\n- **400 Bad Request**: Invalid parameters (check `description` field)\n- **409 Conflict**: Another bot instance using same token with polling\n\nRate limits: ~30 messages\u002Fsecond to different chats, ~20 messages\u002Fminute to same group. Implement exponential backoff for retries.\n\n### Bot Commands\n\nRegister commands visible in the Telegram menu:\n\n```javascript\nbot.setMyCommands([\n  { command: 'start', description: 'Start the bot' },\n  { command: 'help', description: 'Show help' },\n  { command: 'settings', description: 'Bot settings' }\n]);\n```\n\nCommands can be scoped to specific chats, users, or languages using `BotCommandScope`.\n\n## Common Patterns\n\n### Quick Start (Node.js)\n\n```bash\nmkdir my-bot && cd my-bot\nnpm init -y\nnpm install node-telegram-bot-api dotenv\necho \"BOT_TOKEN=your_token_here\" > .env\n```\n\n### Quick Start (Python)\n\n```bash\nmkdir my-bot && cd my-bot\npip install python-telegram-bot python-dotenv\necho \"BOT_TOKEN=your_token_here\" > .env\n```\n\n### Popular Libraries\n\n| Language | Library | Style | Best For |\n|---|---|---|---|\n| Node.js | `node-telegram-bot-api` | Callback-based | Simple bots, quick prototypes |\n| Node.js | `grammy` | Middleware-based | Complex bots, plugins |\n| Node.js | `telegraf` | Middleware-based | Mature ecosystem |\n| Python | `python-telegram-bot` | Handler-based | Full-featured, conversations |\n| Python | `aiogram` | Async-first | High-performance async bots |\n\n### Key API Method Categories\n\n| Category | Key Methods |\n|---|---|\n| Messages | `sendMessage`, `sendPhoto`, `sendVideo`, `sendDocument`, `editMessageText`, `deleteMessage` |\n| Keyboards | `InlineKeyboardMarkup`, `ReplyKeyboardMarkup`, `answerCallbackQuery` |\n| Chat Mgmt | `getChat`, `banChatMember`, `promoteChatMember`, `setChatPermissions` |\n| Files | `getFile`, `sendMediaGroup`, `sendDocument` |\n| Inline Mode | `answerInlineQuery` with `InlineQueryResult*` types |\n| Payments | `sendInvoice`, `answerPreCheckoutQuery` (use `currency: \"XTR\"` for Telegram Stars) |\n| Bot Config | `setMyCommands`, `setMyDescription`, `setWebhook` |\n\n## Deployment Options\n\n- **PM2**: `pm2 start bot.js --name telegram-bot` - Process manager with auto-restart\n- **Docker**: Containerized deployment with `docker-compose`\n- **Serverless**: Webhook handler as Vercel\u002FAWS Lambda function\n- **VPS**: Direct deployment with systemd service\n\nSee `reference\u002Fpatterns_and_examples.md` for Docker, PM2, and serverless deployment configurations.\n\n## Security Checklist\n\n- Store `BOT_TOKEN` in environment variables\n- Validate `X-Telegram-Bot-Api-Secret-Token` on webhook endpoints\n- Verify user IDs for admin commands\n- Implement per-user rate limiting\n- Sanitize user input before database storage\n- Use HTTPS for all webhook endpoints\n- Restrict `allowed_updates` to only needed types\n\n## Reference Files\n\nFor detailed API documentation and implementation patterns, consult:\n\n- **[`reference\u002Fapi_methods.md`](.\u002Freference\u002Fapi_methods.md)** - Complete list of 100+ Bot API methods organized by category (messaging, chat management, stickers, payments, inline mode, games, forum topics, gifts, passport, and more)\n- **[`reference\u002Fapi_types.md`](.\u002Freference\u002Fapi_types.md)** - Complete list of 200+ Bot API types with all fields (Update, Message, Chat, User, keyboards, media types, payment types, chat members, reactions, and more)\n- **[`reference\u002Fpatterns_and_examples.md`](.\u002Freference\u002Fpatterns_and_examples.md)** - Production-ready implementation patterns for Node.js and Python including: inline keyboards, webhooks, media handling, conversation state management, database integration, admin panels, multi-language support, Docker\u002FPM2\u002Fserverless deployment, Telegram Stars payments, and inline mode\n\nWhen building a bot, start with SKILL.md for core concepts, then load the appropriate reference file for detailed API information or implementation patterns as needed.\n\n","# Telegram Bot Builder\n\nComprehensive guidance for building Telegram bots using the Bot API (v9.4). Covers both Node.js and Python ecosystems with production-ready patterns for authentication, messaging, keyboards, media handling, payments, inline mode, webhooks, and deployment.\n\n## When to Use This Skill\n\nUse this skill when:\n- Building a new Telegram bot from scratch\n- Integrating Telegram messaging into an existing application\n- Setting up webhooks or long polling for bot updates\n- Creating interactive menus with inline keyboards and callback queries\n- Handling media (photos, videos, documents, stickers)\n- Implementing Telegram Payments or Telegram Stars\n- Building inline mode functionality\n- Managing groups, channels, or forum topics via bot\n- Deploying bots to production (Docker, PM2, serverless)\n\n## Core Concepts\n\n### Authentication\n\nEvery bot has a unique token obtained from [@BotFather](https:\u002F\u002Ft.me\u002FBotFather). Token format: `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`.\n\nAll API calls go to: `https:\u002F\u002Fapi.telegram.org\u002Fbot\u003CTOKEN>\u002FMETHOD_NAME`\n\n```bash\n# .env file\nBOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11\n```\n\nStore the token in environment variables. Never commit it to source code.\n\n### Receiving Updates: Polling vs Webhook\n\n**Long Polling** (`getUpdates`) - Simpler, no HTTPS required, ideal for development:\n\n```javascript\n\u002F\u002F Node.js with node-telegram-bot-api\nconst bot = new TelegramBot(process.env.BOT_TOKEN, { polling: true });\n```\n\n```python\n# Python with python-telegram-bot\napp = Application.builder().token(os.getenv(\"BOT_TOKEN\")).build()\napp.run_polling()\n```\n\n**Webhook** (`setWebhook`) - Better for production, lower latency, requires HTTPS (ports 443, 80, 88, or 8443):\n\n```javascript\nbot.setWebHook('https:\u002F\u002Fyourdomain.com\u002Fwebhook', { secret_token: SECRET });\n```\n\nChoose polling for development and small bots. Choose webhooks for production deployments handling high traffic.\n\n### Message Types & Formatting\n\nSend text with `sendMessage`. Supported parse modes:\n\n- **HTML**: `\u003Cb>bold\u003C\u002Fb>`, `\u003Ci>italic\u003C\u002Fi>`, `\u003Ccode>code\u003C\u002Fcode>`, `\u003Cpre>block\u003C\u002Fpre>`, `\u003Ca href=\"url\">link\u003C\u002Fa>`, `\u003Ctg-spoiler>spoiler\u003C\u002Ftg-spoiler>`\n- **MarkdownV2**: `*bold*`, `_italic_`, `` `code` ``, ` ```block``` `, `[link](url)`, `||spoiler||`. Requires escaping: `_*[]()~>#+-=|{}.!`\n\nPrefer HTML for easier escaping. Use MarkdownV2 when simpler formatting suffices.\n\n### Keyboards & Interactive Elements\n\n**Inline Keyboard** - Buttons attached to messages:\n\n```javascript\nbot.sendMessage(chatId, 'Choose:', {\n  reply_markup: {\n    inline_keyboard: [\n      [{ text: 'Option A', callback_data: 'a' }, { text: 'Option B', callback_data: 'b' }],\n      [{ text: 'Visit Site', url: 'https:\u002F\u002Fexample.com' }]\n    ]\n  }\n});\n```\n\n**Reply Keyboard** - Custom keyboard below input field:\n\n```javascript\nbot.sendMessage(chatId, 'Choose:', {\n  reply_markup: {\n    keyboard: [[{ text: '? Stats' }, { text: '⚙️ Settings' }]],\n    resize_keyboard: true,\n    one_time_keyboard: true\n  }\n});\n```\n\nHandle inline button presses with `callback_query`. The `callback_data` field is limited to 64 bytes. Always call `answerCallbackQuery` to dismiss the loading indicator.\n\n### Sending Media\n\n```javascript\n\u002F\u002F Photo (file_id, URL, or upload)\nbot.sendPhoto(chatId, 'https:\u002F\u002Fexample.com\u002Fphoto.jpg', { caption: 'A photo' });\n\n\u002F\u002F Document\nbot.sendDocument(chatId, fs.createReadStream('.\u002Ffile.pdf'), { caption: 'Report' });\n\n\u002F\u002F Album (2-10 items)\nbot.sendMediaGroup(chatId, [\n  { type: 'photo', media: 'https:\u002F\u002Fexample.com\u002F1.jpg', caption: 'First' },\n  { type: 'photo', media: 'https:\u002F\u002Fexample.com\u002F2.jpg' }\n]);\n```\n\nThree ways to specify files: `file_id` (reuse previously uploaded), HTTP URL (Telegram downloads it), or multipart upload. File limits: 50MB upload, 20MB download via Bot API.\n\n### Conversation State\n\nFor multi-step interactions (registration, forms, wizards), maintain conversation state per chat:\n\n- **Node.js**: Use a `Map` or Redis to track `{ step, data }` per `chatId`\n- **Python**: Use `ConversationHandler` from `python-telegram-bot` (built-in state machine)\n\nSee `reference\u002Fpatterns_and_examples.md` for complete conversation flow implementations.\n\n### Error Handling\n\nHandle common error scenarios:\n- **429 Too Many Requests**: Read `retry_after` from response, wait, then retry\n- **403 Forbidden**: Bot was blocked by user or removed from chat\n- **400 Bad Request**: Invalid parameters (check `description` field)\n- **409 Conflict**: Another bot instance using same token with polling\n\nRate limits: ~30 messages\u002Fsecond to different chats, ~20 messages\u002Fminute to same group. Implement exponential backoff for retries.\n\n### Bot Commands\n\nRegister commands visible in the Telegram menu:\n\n```javascript\nbot.setMyCommands([\n  { command: 'start', description: 'Start the bot' },\n  { command: 'help', description: 'Show help' },\n  { command: 'settings', description: 'Bot settings' }\n]);\n```\n\nCommands can be scoped to specific chats, users, or languages using `BotCommandScope`.\n\n## Common Patterns\n\n### Quick Start (Node.js)\n\n```bash\nmkdir my-bot && cd my-bot\nnpm init -y\nnpm install node-telegram-bot-api dotenv\necho \"BOT_TOKEN=your_token_here\" > .env\n```\n\n### Quick Start (Python)\n\n```bash\nmkdir my-bot && cd my-bot\npip install python-telegram-bot python-dotenv\necho \"BOT_TOKEN=your_token_here\" > .env\n```\n\n### Popular Libraries\n\n| Language | Library | Style | Best For |\n|---|---|---|---|\n| Node.js | `node-telegram-bot-api` | Callback-based | Simple bots, quick prototypes |\n| Node.js | `grammy` | Middleware-based | Complex bots, plugins |\n| Node.js | `telegraf` | Middleware-based | Mature ecosystem |\n| Python | `python-telegram-bot` | Handler-based | Full-featured, conversations |\n| Python | `aiogram` | Async-first | High-performance async bots |\n\n### Key API Method Categories\n\n| Category | Key Methods |\n|---|---|\n| Messages | `sendMessage`, `sendPhoto`, `sendVideo`, `sendDocument`, `editMessageText`, `deleteMessage` |\n| Keyboards | `InlineKeyboardMarkup`, `ReplyKeyboardMarkup`, `answerCallbackQuery` |\n| Chat Mgmt | `getChat`, `banChatMember`, `promoteChatMember`, `setChatPermissions` |\n| Files | `getFile`, `sendMediaGroup`, `sendDocument` |\n| Inline Mode | `answerInlineQuery` with `InlineQueryResult*` types |\n| Payments | `sendInvoice`, `answerPreCheckoutQuery` (use `currency: \"XTR\"` for Telegram Stars) |\n| Bot Config | `setMyCommands`, `setMyDescription`, `setWebhook` |\n\n## Deployment Options\n\n- **PM2**: `pm2 start bot.js --name telegram-bot` - Process manager with auto-restart\n- **Docker**: Containerized deployment with `docker-compose`\n- **Serverless**: Webhook handler as Vercel\u002FAWS Lambda function\n- **VPS**: Direct deployment with systemd service\n\nSee `reference\u002Fpatterns_and_examples.md` for Docker, PM2, and serverless deployment configurations.\n\n## Security Checklist\n\n- Store `BOT_TOKEN` in environment variables\n- Validate `X-Telegram-Bot-Api-Secret-Token` on webhook endpoints\n- Verify user IDs for admin commands\n- Implement per-user rate limiting\n- Sanitize user input before database storage\n- Use HTTPS for all webhook endpoints\n- Restrict `allowed_updates` to only needed types\n\n## Reference Files\n\nFor detailed API documentation and implementation patterns, consult:\n\n- **[`reference\u002Fapi_methods.md`](.\u002Freference\u002Fapi_methods.md)** - Complete list of 100+ Bot API methods organized by category (messaging, chat management, stickers, payments, inline mode, games, forum topics, gifts, passport, and more)\n- **[`reference\u002Fapi_types.md`](.\u002Freference\u002Fapi_types.md)** - Complete list of 200+ Bot API types with all fields (Update, Message, Chat, User, keyboards, media types, payment types, chat members, reactions, and more)\n- **[`reference\u002Fpatterns_and_examples.md`](.\u002Freference\u002Fpatterns_and_examples.md)** - Production-ready implementation patterns for Node.js and Python including: inline keyboards, webhooks, media handling, conversation state management, database integration, admin panels, multi-language support, Docker\u002FPM2\u002Fserverless deployment, Telegram Stars payments, and inline mode\n\nWhen building a bot, start with SKILL.md for core concepts, then load the appropriate reference file for detailed API information or implementation patterns as needed.\n\n",{"name":5,"description":7},"main","015422534a7457348a313b6381f0255d3364eb8c","cli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder",0,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates","https:\u002F\u002Fgithub.com\u002FMishit18","2026-11-11 17:58:24",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add Mishit18\u002Fclaude-code-templates --skill \"Telegram Bot Builder\"",{"tool":61,"command":62},"bunx","bunx skills add Mishit18\u002Fclaude-code-templates --skill \"Telegram Bot Builder\"",{"tool":64,"command":65},"pnpm","pnpm dlx skills add Mishit18\u002Fclaude-code-templates --skill \"Telegram Bot Builder\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder\u002FSKILL.md",true,[69,75,79],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"reference\u002Fapi_methods.md","REFERENCE","参考文档",15343,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder\u002Freference\u002Fapi_methods.md",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"reference\u002Fapi_types.md",22766,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder\u002Freference\u002Fapi_types.md",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"reference\u002Fpatterns_and_examples.md",27798,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftelegram-bot-builder\u002Freference\u002Fpatterns_and_examples.md",[84,115,141,168,194,219],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":88,"licenseFileUrl":89,"sourceHtmlUrl":90,"categories":91,"keywords":95,"publishedAt":43},"01M6R4ARN4W2VZRDERDTMN1KP0","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[96,97,98,99,25,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114],"web artifacts builder","web","artifacts","artifacts builder","frontend","css","components","react","routing","state management","state","file","Tailwind","use","single-file","ui components","multi","for","single",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":88,"licenseFileUrl":119,"sourceHtmlUrl":120,"categories":121,"keywords":126,"publishedAt":43},"01M6R45GXREM5DP8T08MAC788H","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[122,125],{"categoryNo":123,"categoryName":124,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":93,"categoryName":94,"taxonomyType":21,"taxonomyTypeDesc":22},[127,128,129,100,130,131,97,132,133,134,135,136,137,138,139,140,113],"testing","webapp testing","webapp","screenshots","playwright","debugging","toolkit","browser","ui","logs","applications","behavior","local","with",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":145,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":43},"01M6R2GYJ470X8EB7R58V0B68K","think-tank","Run a Virtual Think Tank — a structured multi-persona debate — before planning or making architectural\u002Fdesign\u002Fstrategic decisions. Use this skill whenever the user is about to plan a system, make a technology choice, evaluate trade-offs, decide on an approach, or faces any decision where multiple perspectives would sharpen the outcome. Also trigger when the user says \"think tank\", \"debate this\", \"perspectives on\", \"trade-offs\", \"should I use X or Y\", \"help me decide\", \"before we plan\", or asks for pros\u002Fcons of competing approaches. This skill should run BEFORE any implementation planning begins — it produces a structured analysis that feeds into better plans.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FSKILL.md",[],[149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,29],"think tank","think","design","run","feeds","analysis","persona","plan","sharpen","virtual","decision","choice","decide","perspectives","outcome","me","debate","make","trade-offs",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":88,"licenseFileUrl":172,"sourceHtmlUrl":173,"categories":174,"keywords":178,"publishedAt":43},"01M6R2FSR55AVRFA9YZ8SC2GZG","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FSKILL.md",[175],{"categoryNo":176,"categoryName":177,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[179,180,181,42,182,183,184,185,186,187,188,189,190,191,140,113,192,29,193],"skill creator","creator","workflows","update","capabilities","knowledge","tool","integrations","specialized","guide","new skill","existing skill","users","Existing","new",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":43},"01M6R2FK42ZZ4HJTJVVK9WJBBP","ship-learn-next","Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fship-learn-next\u002FSKILL.md",[],[201,202,203,204,205,206,207,208,109,209,210,211,212,213,214,215,216,217,218,29],"learn","ship learn next","ship","next","framework","learning","read","write","advice","implementation","youtube","plans","quest","transform","actionable","action","lessons","youtube transcripts",{"skillNo":220,"name":221,"nameZh":6,"description":222,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":88,"licenseFileUrl":223,"sourceHtmlUrl":224,"categories":225,"keywords":232,"publishedAt":43},"01M6R2088G1RHDA5MDX16HASRB","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FSKILL.md",[226,229],{"categoryNo":227,"categoryName":228,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":230,"categoryName":231,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[233,234,235,180,236,237,238,239,184,109,164,191,166,240,241,113,242,29],"slack gif creator","slack","gif","validation","Tools","constraints","Animation","Utilities","concepts","request"]