[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RMPH2XFBSTWVTST842B8T":3,"skill-same:01M71RMPH2XFBSTWVTST842B8T":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":13,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M71RMPH2XFBSTWVTST842B8T","azure-servicebus-ts",null,"Build messaging applications using Azure Service Bus SDK for JavaScript (@azure\u002Fservice-bus). Use when implementing queues, topics\u002Fsubscriptions, message sessions, dead-letter handling, or enterpri...","javiertarazon\u002Fide-agente-free-jt7-","javiertarazon","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F153141207?v=4","01M71R52TB3S9HXKH6WSNT8A7V","01M71R52VG5KS2DKDDH4GDQ30A",0,"MIT","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fazure-servicebus-ts\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"azure","azure servicebus ts","service","subscriptions","sdk","build","topics","message","javascript","unknown","when","azure service bus","use","sessions","implementing","applications","for","messaging","community","letter","2026-11-10 13:02:02",false,"---\nname: azure-servicebus-ts\ndescription: \"Build messaging applications using Azure Service Bus SDK for JavaScript (@azure\u002Fservice-bus). Use when implementing queues, topics\u002Fsubscriptions, message sessions, dead-letter handling, or enterpri...\"\npackage: \"@azure\u002Fservice-bus\"\nrisk: unknown\nsource: community\n---\n\n# Azure Service Bus SDK for TypeScript\n\nEnterprise messaging with queues, topics, and subscriptions.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fservice-bus @azure\u002Fidentity\n```\n\n## Environment Variables\n\n```bash\nSERVICEBUS_NAMESPACE=\u003Cnamespace>.servicebus.windows.net\nSERVICEBUS_QUEUE_NAME=my-queue\nSERVICEBUS_TOPIC_NAME=my-topic\nSERVICEBUS_SUBSCRIPTION_NAME=my-subscription\n```\n\n## Authentication\n\n```typescript\nimport { ServiceBusClient } from \"@azure\u002Fservice-bus\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst fullyQualifiedNamespace = process.env.SERVICEBUS_NAMESPACE!;\nconst client = new ServiceBusClient(fullyQualifiedNamespace, new DefaultAzureCredential());\n```\n\n## Core Workflow\n\n### Send Messages to Queue\n\n```typescript\nconst sender = client.createSender(\"my-queue\");\n\n\u002F\u002F Single message\nawait sender.sendMessages({\n  body: { orderId: \"12345\", amount: 99.99 },\n  contentType: \"application\u002Fjson\",\n});\n\n\u002F\u002F Batch messages\nconst batch = await sender.createMessageBatch();\nbatch.tryAddMessage({ body: \"Message 1\" });\nbatch.tryAddMessage({ body: \"Message 2\" });\nawait sender.sendMessages(batch);\n\nawait sender.close();\n```\n\n### Receive Messages from Queue\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\n\u002F\u002F Receive batch\nconst messages = await receiver.receiveMessages(10, { maxWaitTimeInMs: 5000 });\nfor (const message of messages) {\n  console.log(`Received: ${message.body}`);\n  await receiver.completeMessage(message);\n}\n\nawait receiver.close();\n```\n\n### Subscribe to Messages (Event-Driven)\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\nconst subscription = receiver.subscribe({\n  processMessage: async (message) => {\n    console.log(`Processing: ${message.body}`);\n    \u002F\u002F Message auto-completed on success\n  },\n  processError: async (args) => {\n    console.error(`Error: ${args.error}`);\n  },\n});\n\n\u002F\u002F Stop after some time\nsetTimeout(async () => {\n  await subscription.close();\n  await receiver.close();\n}, 60000);\n```\n\n### Topics and Subscriptions\n\n```typescript\n\u002F\u002F Send to topic\nconst topicSender = client.createSender(\"my-topic\");\nawait topicSender.sendMessages({\n  body: { event: \"order.created\", data: { orderId: \"123\" } },\n  applicationProperties: { eventType: \"order.created\" },\n});\n\n\u002F\u002F Receive from subscription\nconst subscriptionReceiver = client.createReceiver(\"my-topic\", \"my-subscription\");\nconst messages = await subscriptionReceiver.receiveMessages(10);\n```\n\n## Message Sessions\n\n```typescript\n\u002F\u002F Send session message\nconst sender = client.createSender(\"session-queue\");\nawait sender.sendMessages({\n  body: { step: 1, data: \"First step\" },\n  sessionId: \"workflow-123\",\n});\n\n\u002F\u002F Receive session messages\nconst sessionReceiver = await client.acceptSession(\"session-queue\", \"workflow-123\");\nconst messages = await sessionReceiver.receiveMessages(10);\n\n\u002F\u002F Get\u002Fset session state\nconst state = await sessionReceiver.getSessionState();\nawait sessionReceiver.setSessionState(Buffer.from(JSON.stringify({ progress: 50 })));\n\nawait sessionReceiver.close();\n```\n\n## Dead-Letter Handling\n\n```typescript\n\u002F\u002F Move to dead-letter\nawait receiver.deadLetterMessage(message, {\n  deadLetterReason: \"Validation failed\",\n  deadLetterErrorDescription: \"Missing required field: orderId\",\n});\n\n\u002F\u002F Process dead-letter queue\nconst dlqReceiver = client.createReceiver(\"my-queue\", { subQueueType: \"deadLetter\" });\nconst dlqMessages = await dlqReceiver.receiveMessages(10);\nfor (const msg of dlqMessages) {\n  console.log(`DLQ Reason: ${msg.deadLetterReason}`);\n  \u002F\u002F Reprocess or log\n  await dlqReceiver.completeMessage(msg);\n}\n```\n\n## Scheduled Messages\n\n```typescript\nconst sender = client.createSender(\"my-queue\");\n\n\u002F\u002F Schedule for future delivery\nconst scheduledTime = new Date(Date.now() + 60000); \u002F\u002F 1 minute from now\nconst sequenceNumber = await sender.scheduleMessages(\n  { body: \"Delayed message\" },\n  scheduledTime\n);\n\n\u002F\u002F Cancel scheduled message\nawait sender.cancelScheduledMessages(sequenceNumber);\n```\n\n## Message Deferral\n\n```typescript\n\u002F\u002F Defer message for later\nawait receiver.deferMessage(message);\n\n\u002F\u002F Receive deferred message by sequence number\nconst deferredMessage = await receiver.receiveDeferredMessages(message.sequenceNumber!);\nawait receiver.completeMessage(deferredMessage[0]);\n```\n\n## Peek Messages (Non-Destructive)\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\n\u002F\u002F Peek without removing\nconst peekedMessages = await receiver.peekMessages(10);\nfor (const msg of peekedMessages) {\n  console.log(`Peeked: ${msg.body}`);\n}\n```\n\n## Key Types\n\n```typescript\nimport {\n  ServiceBusClient,\n  ServiceBusSender,\n  ServiceBusReceiver,\n  ServiceBusSessionReceiver,\n  ServiceBusMessage,\n  ServiceBusReceivedMessage,\n  ProcessMessageCallback,\n  ProcessErrorCallback,\n} from \"@azure\u002Fservice-bus\";\n```\n\n## Receive Modes\n\n```typescript\n\u002F\u002F Peek-Lock (default) - message locked until completed\u002Fabandoned\nconst receiver = client.createReceiver(\"my-queue\", { receiveMode: \"peekLock\" });\nawait receiver.completeMessage(message);   \u002F\u002F Remove from queue\nawait receiver.abandonMessage(message);    \u002F\u002F Return to queue\nawait receiver.deferMessage(message);      \u002F\u002F Defer for later\nawait receiver.deadLetterMessage(message); \u002F\u002F Move to DLQ\n\n\u002F\u002F Receive-and-Delete - message removed immediately\nconst receiver = client.createReceiver(\"my-queue\", { receiveMode: \"receiveAndDelete\" });\n```\n\n## Best Practices\n\n1. **Use Entra ID auth** - Avoid connection strings in production\n2. **Reuse clients** - Create `ServiceBusClient` once, share across senders\u002Freceivers\n3. **Close resources** - Always close senders\u002Freceivers when done\n4. **Handle errors** - Implement `processError` callback for subscription receivers\n5. **Use sessions for ordering** - When message order matters within a group\n6. **Configure dead-letter** - Always handle DLQ messages\n7. **Batch sends** - Use `createMessageBatch()` for multiple messages\n\n## Reference Documentation\n\nFor detailed patterns, see:\n\n- Queues vs Topics Patterns - Queue\u002Ftopic patterns, sessions, receive modes, message settlement\n- Error Handling and Reliability - ServiceBusError codes, DLQ handling, lock renewal, graceful shutdown\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure Service Bus SDK for TypeScript\n\nEnterprise messaging with queues, topics, and subscriptions.\n\n## Installation\n\n```bash\nnpm install @azure\u002Fservice-bus @azure\u002Fidentity\n```\n\n## Environment Variables\n\n```bash\nSERVICEBUS_NAMESPACE=\u003Cnamespace>.servicebus.windows.net\nSERVICEBUS_QUEUE_NAME=my-queue\nSERVICEBUS_TOPIC_NAME=my-topic\nSERVICEBUS_SUBSCRIPTION_NAME=my-subscription\n```\n\n## Authentication\n\n```typescript\nimport { ServiceBusClient } from \"@azure\u002Fservice-bus\";\nimport { DefaultAzureCredential } from \"@azure\u002Fidentity\";\n\nconst fullyQualifiedNamespace = process.env.SERVICEBUS_NAMESPACE!;\nconst client = new ServiceBusClient(fullyQualifiedNamespace, new DefaultAzureCredential());\n```\n\n## Core Workflow\n\n### Send Messages to Queue\n\n```typescript\nconst sender = client.createSender(\"my-queue\");\n\n\u002F\u002F Single message\nawait sender.sendMessages({\n  body: { orderId: \"12345\", amount: 99.99 },\n  contentType: \"application\u002Fjson\",\n});\n\n\u002F\u002F Batch messages\nconst batch = await sender.createMessageBatch();\nbatch.tryAddMessage({ body: \"Message 1\" });\nbatch.tryAddMessage({ body: \"Message 2\" });\nawait sender.sendMessages(batch);\n\nawait sender.close();\n```\n\n### Receive Messages from Queue\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\n\u002F\u002F Receive batch\nconst messages = await receiver.receiveMessages(10, { maxWaitTimeInMs: 5000 });\nfor (const message of messages) {\n  console.log(`Received: ${message.body}`);\n  await receiver.completeMessage(message);\n}\n\nawait receiver.close();\n```\n\n### Subscribe to Messages (Event-Driven)\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\nconst subscription = receiver.subscribe({\n  processMessage: async (message) => {\n    console.log(`Processing: ${message.body}`);\n    \u002F\u002F Message auto-completed on success\n  },\n  processError: async (args) => {\n    console.error(`Error: ${args.error}`);\n  },\n});\n\n\u002F\u002F Stop after some time\nsetTimeout(async () => {\n  await subscription.close();\n  await receiver.close();\n}, 60000);\n```\n\n### Topics and Subscriptions\n\n```typescript\n\u002F\u002F Send to topic\nconst topicSender = client.createSender(\"my-topic\");\nawait topicSender.sendMessages({\n  body: { event: \"order.created\", data: { orderId: \"123\" } },\n  applicationProperties: { eventType: \"order.created\" },\n});\n\n\u002F\u002F Receive from subscription\nconst subscriptionReceiver = client.createReceiver(\"my-topic\", \"my-subscription\");\nconst messages = await subscriptionReceiver.receiveMessages(10);\n```\n\n## Message Sessions\n\n```typescript\n\u002F\u002F Send session message\nconst sender = client.createSender(\"session-queue\");\nawait sender.sendMessages({\n  body: { step: 1, data: \"First step\" },\n  sessionId: \"workflow-123\",\n});\n\n\u002F\u002F Receive session messages\nconst sessionReceiver = await client.acceptSession(\"session-queue\", \"workflow-123\");\nconst messages = await sessionReceiver.receiveMessages(10);\n\n\u002F\u002F Get\u002Fset session state\nconst state = await sessionReceiver.getSessionState();\nawait sessionReceiver.setSessionState(Buffer.from(JSON.stringify({ progress: 50 })));\n\nawait sessionReceiver.close();\n```\n\n## Dead-Letter Handling\n\n```typescript\n\u002F\u002F Move to dead-letter\nawait receiver.deadLetterMessage(message, {\n  deadLetterReason: \"Validation failed\",\n  deadLetterErrorDescription: \"Missing required field: orderId\",\n});\n\n\u002F\u002F Process dead-letter queue\nconst dlqReceiver = client.createReceiver(\"my-queue\", { subQueueType: \"deadLetter\" });\nconst dlqMessages = await dlqReceiver.receiveMessages(10);\nfor (const msg of dlqMessages) {\n  console.log(`DLQ Reason: ${msg.deadLetterReason}`);\n  \u002F\u002F Reprocess or log\n  await dlqReceiver.completeMessage(msg);\n}\n```\n\n## Scheduled Messages\n\n```typescript\nconst sender = client.createSender(\"my-queue\");\n\n\u002F\u002F Schedule for future delivery\nconst scheduledTime = new Date(Date.now() + 60000); \u002F\u002F 1 minute from now\nconst sequenceNumber = await sender.scheduleMessages(\n  { body: \"Delayed message\" },\n  scheduledTime\n);\n\n\u002F\u002F Cancel scheduled message\nawait sender.cancelScheduledMessages(sequenceNumber);\n```\n\n## Message Deferral\n\n```typescript\n\u002F\u002F Defer message for later\nawait receiver.deferMessage(message);\n\n\u002F\u002F Receive deferred message by sequence number\nconst deferredMessage = await receiver.receiveDeferredMessages(message.sequenceNumber!);\nawait receiver.completeMessage(deferredMessage[0]);\n```\n\n## Peek Messages (Non-Destructive)\n\n```typescript\nconst receiver = client.createReceiver(\"my-queue\");\n\n\u002F\u002F Peek without removing\nconst peekedMessages = await receiver.peekMessages(10);\nfor (const msg of peekedMessages) {\n  console.log(`Peeked: ${msg.body}`);\n}\n```\n\n## Key Types\n\n```typescript\nimport {\n  ServiceBusClient,\n  ServiceBusSender,\n  ServiceBusReceiver,\n  ServiceBusSessionReceiver,\n  ServiceBusMessage,\n  ServiceBusReceivedMessage,\n  ProcessMessageCallback,\n  ProcessErrorCallback,\n} from \"@azure\u002Fservice-bus\";\n```\n\n## Receive Modes\n\n```typescript\n\u002F\u002F Peek-Lock (default) - message locked until completed\u002Fabandoned\nconst receiver = client.createReceiver(\"my-queue\", { receiveMode: \"peekLock\" });\nawait receiver.completeMessage(message);   \u002F\u002F Remove from queue\nawait receiver.abandonMessage(message);    \u002F\u002F Return to queue\nawait receiver.deferMessage(message);      \u002F\u002F Defer for later\nawait receiver.deadLetterMessage(message); \u002F\u002F Move to DLQ\n\n\u002F\u002F Receive-and-Delete - message removed immediately\nconst receiver = client.createReceiver(\"my-queue\", { receiveMode: \"receiveAndDelete\" });\n```\n\n## Best Practices\n\n1. **Use Entra ID auth** - Avoid connection strings in production\n2. **Reuse clients** - Create `ServiceBusClient` once, share across senders\u002Freceivers\n3. **Close resources** - Always close senders\u002Freceivers when done\n4. **Handle errors** - Implement `processError` callback for subscription receivers\n5. **Use sessions for ordering** - When message order matters within a group\n6. **Configure dead-letter** - Always handle DLQ messages\n7. **Batch sends** - Use `createMessageBatch()` for multiple messages\n\n## Reference Documentation\n\nFor detailed patterns, see:\n\n- Queues vs Topics Patterns - Queue\u002Ftopic patterns, sessions, receive modes, message settlement\n- Error Handling and Reliability - ServiceBusError codes, DLQ handling, lock renewal, graceful shutdown\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":27,"source":36,"package":43,"description":7},"@azure\u002Fservice-bus","release\u002Fv4.2.11-panel-pro","a92ea02bcf7e2b3dbaf46d49696c29a3cb490d4f",".github\u002Fskills\u002Fazure-servicebus-ts","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-","https:\u002F\u002Fgithub.com\u002Fjaviertarazon","2026-07-12 07:10:45",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add javiertarazon\u002Fide-agente-free-jt7- --skill azure-servicebus-ts",{"tool":56,"command":57},"bunx","bunx skills add javiertarazon\u002Fide-agente-free-jt7- --skill azure-servicebus-ts",{"tool":59,"command":60},"pnpm","pnpm dlx skills add javiertarazon\u002Fide-agente-free-jt7- --skill azure-servicebus-ts","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fazure-servicebus-ts\u002FSKILL.md",true,[],[65,92,118,138,153,175],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":76,"publishedAt":38},"01M71TQ7Q6Z10VWF3C2H5X1KW9","zustand-store-ts","Create Zustand stores with TypeScript, subscribeWithSelector middleware, and proper state\u002Faction separation. Use when building React state management, creating global stores, or implementing reacti...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzustand-store-ts\u002FSKILL.md",[71],{"categoryNo":72,"categoryName":73,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[77,78,79,36,80,32,30,81,28,27,82,83,84,85,86,87,88,89,90,91],"zustand","store","zustand store ts","middleware","react state management","react","with","state","create","state management","typescript","action","management","separation","global",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":38},"01M71TQ5EAR40G6W0MV5ZDVEZT","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoom-automation\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000023","Skill与智能体开发",[102,103,104,36,105,34,106,107,108,27,109,110,111,112,113,114,115,116,89,117],"zoom automation","zoom","automation","creation","search","schemas","MCP","first","via","meeting","search tools","tracking","webinars","composio","recordings","Tools",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":38},"01M71TQ29B1EYBCEAP1ZBGXQ1A","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzoho-crm-automation\u002FSKILL.md",[124],{"categoryNo":99,"categoryName":100,"taxonomyType":74,"taxonomyTypeDesc":75},[126,127,104,128,129,130,36,131,132,34,133,106,107,134,108,27,135,136,137,85],"crm automation","zoho crm automation","crm","zoho crm","zoho","leads","manage leads","manage","records","convert","tasks","contacts",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":145,"publishedAt":38},"01M71TPZPMN60DH0XV58KVHY23","zendesk-automation","Automate Zendesk tasks via Rube MCP (Composio): tickets, users, organizations, replies. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzendesk-automation\u002FSKILL.md",[144],{"categoryNo":99,"categoryName":100,"taxonomyType":74,"taxonomyTypeDesc":75},[146,104,147,36,34,106,107,108,148,27,136,149,150,109,110,151,112,115,117,152],"zendesk automation","zendesk","organizations","replies","users","tickets","automate",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":159,"publishedAt":38},"01M71TPXDWKHKG4N6TVEPXWD0N","zapier-make-patterns","No-code automation democratizes workflow building. Zapier and Make (formerly Integromat) let non-developers automate business processes without writing code. But no-code doesn't mean no-complexity ...","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fzapier-make-patterns\u002FSKILL.md",[],[160,161,162,163,164,165,166,167,168,104,169,27,170,171,172,173,174,152],"zapier make patterns","zapier","patterns","make","No-Code","complexity","writing","spawner","business","workflow","code","integromat","apache","processes","but",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":184,"publishedAt":38},"01M71TPT5T10WXNKW9G7ZXZ27W","youtube-summarizer","Extract transcripts from YouTube videos and generate comprehensive, detailed summaries using intelligent analysis frameworks","https:\u002F\u002Fgithub.com\u002Fjaviertarazon\u002Fide-agente-free-jt7-\u002Fblob\u002Frelease\u002Fv4.2.11-panel-pro\u002F.github\u002Fskills\u002Fyoutube-summarizer\u002FSKILL.md",[181],{"categoryNo":182,"categoryName":183,"taxonomyType":74,"taxonomyTypeDesc":75},"01JBSEEDCAT000000000000016","图像与多媒体",[185,186,187,188,36,189,190,191,192,193,194,195,170,196,197,198,199,200,201,202],"summarizer","youtube","youtube summarizer","Video","content-analysis","frameworks","copilot","2025","github-copilot","extract transcripts","analysis","codex","cli","summaries","github","generate","summarization","2026"]