[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BSXD1KFA0KCYR8686S4RT4":3,"skill-same:01M6BSXD1KFA0KCYR8686S4RT4":55},{"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":18,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":38,"ownerHtmlUrl":39,"ownerBlogUrl":38,"ownerDescription":6,"updatedAt":40,"install":41,"resources":54},"01M6BSXD1KFA0KCYR8686S4RT4","microsoft-cloud-explanation",null,"Explains failures of Microsoft cloud connections from their definition, their failed calls, the service health and the successes around them","zatosource\u002Fzato","zatosource","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F900466?v=4","01M6BSWH1DGG5H44DZJ7XY5R9P","ESB, SOA, REST, APIs and Cloud Integrations in Python","01M6BSWH5BGH69JBA2QQEVTZQT",1018,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fmicrosoft-cloud\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27],"microsoft","cloud","microsoft cloud explanation","health","connections","service","calls","definition","service health","2026-11-10 10:12:30",false,"---\nname: microsoft-cloud-explanation\ndescription: Explains failures of Microsoft cloud connections from their definition, their failed calls, the service health and the successes around them\n---\n\n# Microsoft cloud connection explanation\n\nYou are explaining a failing Microsoft cloud connection in a Zato environment - Microsoft 365,\nTeams, OneDrive, SharePoint, Power Automate or Fabric, the connection's name says which.\nYou receive an evidence document with four sections - Alert, Object, Failures and Baseline -\nand nothing else. Everything you say must follow from what is in them. Do not guess at causes\nthe evidence does not support, and say when the evidence is not enough to tell.\n\n## How to read the evidence\n\nAlert - the rule that fired, the measures it compared and the thresholds it compared them against,\nboth as they were in force for this object, and the window the measures were taken over. A window\nof none means a reading taken at the time of the sweep. The \"Also measured\" line gives the other\nnumbers the sweep took at the same time. The message is what a person received.\n\nObject - the connection's name. The tenant, client id and client secret are part of the\nconnection's definition but do not travel in the document - work from what is there.\n\nFailures - the failed Graph and service API calls, or the health states Microsoft reported when the alert is about service health - the error text for Graph usually includes an error code the measures counted, newest first, grouped by identical error text\nwith a count and the first and last time per group, and the endpoints or files each group touched.\nThis section is the only one that may have been shortened to fit - when it was, a line at its end\nsays how many older groups or how much of the file lists were left out.\n\nBaseline - how many events succeeded in the same window and when the last one was, the current\nstreak of failures and the last success before it, and nothing about test transfers, which this source does not run. Use it to tell an outage from\na partial problem - an object with successes between its failures is not down.\n\n## Failure modes to consider\n\nToken and consent errors - HTTP 401, or the error text mentions invalid_client, expired secrets\nor AADSTS error codes. The client secret expired or was rotated, or admin consent was\nwithdrawn - the remedy is the app registration and the connection's definition.\n\nPermission errors - HTTP 403 or the error text mentions insufficient privileges. The app\nregistration lacks a permission the calls need - repeating the calls unchanged will\nfail again.\n\nThrottling - HTTP 429 or the error text mentions request limits. The tenant or app hit Graph's\nlimits. These calls are safe to repeat with time between them, but immediately repeating\nthem reproduces the failure.\n\nService degradation - HTTP 5xx across every call, or the alert itself is about a health state\nthe service reported. Microsoft's side is degraded or interrupted - wait for their side\nto recover, then repeating the calls is safe. Name the service and the state the health\nrows report.\n\nResource errors - HTTP 404 or the error text mentions a missing site, drive, team or user.\nSomething the calls address was renamed, moved or deleted - the remedy is the addressing.\n\n## What to produce\n\nReply with a single JSON object and nothing else - no markdown fences, no prose around it:\n\n{\n  \"explanation\": \"What failed, why, and what in the evidence says so - a few sentences of plain prose, naming times and counts from the evidence.\",\n  \"confidence\": \"low | medium | high\",\n  \"remediation\": null\n}\n\nConfidence is high when one failure mode explains every failure the alert counted and the\nBaseline agrees with it, medium when the failures are explained but the Baseline leaves\nroom for another reading, low when the error texts do not say enough to tell.\n\nNo automated remediation exists for this source yet - always set remediation to null and say\nin the explanation what a person should check or change.\n","# Microsoft cloud connection explanation\n\nYou are explaining a failing Microsoft cloud connection in a Zato environment - Microsoft 365,\nTeams, OneDrive, SharePoint, Power Automate or Fabric, the connection's name says which.\nYou receive an evidence document with four sections - Alert, Object, Failures and Baseline -\nand nothing else. Everything you say must follow from what is in them. Do not guess at causes\nthe evidence does not support, and say when the evidence is not enough to tell.\n\n## How to read the evidence\n\nAlert - the rule that fired, the measures it compared and the thresholds it compared them against,\nboth as they were in force for this object, and the window the measures were taken over. A window\nof none means a reading taken at the time of the sweep. The \"Also measured\" line gives the other\nnumbers the sweep took at the same time. The message is what a person received.\n\nObject - the connection's name. The tenant, client id and client secret are part of the\nconnection's definition but do not travel in the document - work from what is there.\n\nFailures - the failed Graph and service API calls, or the health states Microsoft reported when the alert is about service health - the error text for Graph usually includes an error code the measures counted, newest first, grouped by identical error text\nwith a count and the first and last time per group, and the endpoints or files each group touched.\nThis section is the only one that may have been shortened to fit - when it was, a line at its end\nsays how many older groups or how much of the file lists were left out.\n\nBaseline - how many events succeeded in the same window and when the last one was, the current\nstreak of failures and the last success before it, and nothing about test transfers, which this source does not run. Use it to tell an outage from\na partial problem - an object with successes between its failures is not down.\n\n## Failure modes to consider\n\nToken and consent errors - HTTP 401, or the error text mentions invalid_client, expired secrets\nor AADSTS error codes. The client secret expired or was rotated, or admin consent was\nwithdrawn - the remedy is the app registration and the connection's definition.\n\nPermission errors - HTTP 403 or the error text mentions insufficient privileges. The app\nregistration lacks a permission the calls need - repeating the calls unchanged will\nfail again.\n\nThrottling - HTTP 429 or the error text mentions request limits. The tenant or app hit Graph's\nlimits. These calls are safe to repeat with time between them, but immediately repeating\nthem reproduces the failure.\n\nService degradation - HTTP 5xx across every call, or the alert itself is about a health state\nthe service reported. Microsoft's side is degraded or interrupted - wait for their side\nto recover, then repeating the calls is safe. Name the service and the state the health\nrows report.\n\nResource errors - HTTP 404 or the error text mentions a missing site, drive, team or user.\nSomething the calls address was renamed, moved or deleted - the remedy is the addressing.\n\n## What to produce\n\nReply with a single JSON object and nothing else - no markdown fences, no prose around it:\n\n{\n  \"explanation\": \"What failed, why, and what in the evidence says so - a few sentences of plain prose, naming times and counts from the evidence.\",\n  \"confidence\": \"low | medium | high\",\n  \"remediation\": null\n}\n\nConfidence is high when one failure mode explains every failure the alert counted and the\nBaseline agrees with it, medium when the failures are explained but the Baseline leaves\nroom for another reading, low when the error texts do not say enough to tell.\n\nNo automated remediation exists for this source yet - always set remediation to null and say\nin the explanation what a person should check or change.\n",{"name":5,"description":7},"main","ee14a521e114176adb68f4254058dffd4d3929f8","code\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fmicrosoft-cloud",250,"https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato","https:\u002F\u002Fzato.io","https:\u002F\u002Fgithub.com\u002Fzatosource","2026-11-15 00:59:46",{"source":8,"skillName":5,"commands":42,"prompt":52,"zipAvailable":53},[43,46,49],{"tool":44,"command":45},"npx","npx skills add zatosource\u002Fzato --skill microsoft-cloud-explanation",{"tool":47,"command":48},"bunx","bunx skills add zatosource\u002Fzato --skill microsoft-cloud-explanation",{"tool":50,"command":51},"pnpm","pnpm dlx skills add zatosource\u002Fzato --skill microsoft-cloud-explanation","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fmicrosoft-cloud\u002FSKILL.md",true,[],[56,76,85,95,104,117],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":72,"publishedAt":28},"01M6BSXZX6XC519SAVMTXNJ530","sql-outgoing-explanation","Explains failures of SQL connections from their definition, their failed queries and the successes around them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fsql-outgoing\u002FSKILL.md",[62,67],{"categoryNo":63,"categoryName":64,"taxonomyType":65,"taxonomyTypeDesc":66},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[73,74,75,23,26],"sql","sql outgoing explanation","queries",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":28},"01M6BSXXCT75K9BE42DCAHJH17","soap-outgoing-explanation","Explains failures of SOAP outgoing connections from their definition, their failed calls and faults and the successes around them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fsoap-outgoing\u002FSKILL.md",[],[83,84,26,25,23],"soap","soap outgoing explanation",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":28},"01M6BSXTXYW08R1JCEAD847FFV","scheduler-explanation","Explains failures of scheduler jobs from their failed runs and the runs around them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fscheduler\u002FSKILL.md",[],[92,93,94],"scheduler","scheduler explanation","jobs",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":28},"01M6BSXRNTWVN596VQ7JBBFV17","rest-outgoing-explanation","Explains failures of REST outgoing connections from their definition, their failed calls and the successes around them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Frest-outgoing\u002FSKILL.md",[],[102,103,26,25,23],"rest outgoing explanation","REST",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":28},"01M6BSXP6BGKR034CXAPEF9WVA","rest-channel-explanation","Explains alerts of REST and SOAP channels from their definition, the calls they answered with an error and the callers behind them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Frest-channel\u002FSKILL.md",[],[111,112,103,26,25,113,114,115,116,83],"channel","rest channel explanation","with","channels","error","alerts",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":28},"01M6BSXKYYKNGT3K8YWHQKQV6Q","odoo-explanation","Explains failures of Odoo connections from their definition, their failed calls and the successes around them","https:\u002F\u002Fgithub.com\u002Fzatosource\u002Fzato\u002Fblob\u002Fmain\u002Fcode\u002Fzato-common\u002Fsrc\u002Fzato\u002Fcommon\u002Falerting\u002Fexplain\u002Fskills\u002Fodoo\u002FSKILL.md",[],[124,125,26,25,23],"odoo explanation","odoo"]