[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69B6435KYGSK2AV9QKDDWFP":3,"skill-same:01M69B6435KYGSK2AV9QKDDWFP":78},{"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":26,"publishedAt":50,"linkOnly":51,"markdownContent":52,"markdownBody":53,"frontMatter":54,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":6,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M69B6435KYGSK2AV9QKDDWFP","newsletter-style-email-composer",null,"Use when the user asks to email a report, findings, or metrics to someone as a polished, newsletter-style message. Builds an Outlook-safe HTML email from figures that already exist (headline, KPI tiles, up to two bar charts drawn with HTML table cells so they render in classic Outlook, Gmail and dark mode, short findings, data notes and the non-audit disclaimer) using the shared brand tokens, attaches the PDF report, and creates a draft for the user to review. Do NOT use for a short plain-text status update, or for building the underlying analysis, charts, or report itself -- this skill only composes the email.","microsoft\u002Fcopilot-studio-gallery","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69B5GK6Q5V7Q6S3Q3DAKAAB",16,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fsales-analyser\u002Fsolution\u002Fbotcomponents\u002Fcrf9c_salesanalyser_WEs93i.file.skillmd_oCdhy\u002Ffiledata\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49],"composer","newsletter style email composer","email","email composer","style","newsletter","text","when","mode","plain-text","render","shared","up","only","short","PDF","Charts","analysis","notes","status","safe","review","gmail","2026-11-10 10:12:30",false,"---\nname: newsletter-style-email-composer\ndescription: \"Use when the user asks to email a report, findings, or metrics to someone as a polished, newsletter-style message. Builds an Outlook-safe HTML email from figures that already exist (headline, KPI tiles, up to two bar charts drawn with HTML table cells so they render in classic Outlook, Gmail and dark mode, short findings, data notes and the non-audit disclaimer) using the shared brand tokens, attaches the PDF report, and creates a draft for the user to review. Do NOT use for a short plain-text status update, or for building the underlying analysis, charts, or report itself -- this skill only composes the email.\"\n---\n\n# Newsletter-style email composer\n\nComposes the email only. Figures, Data notes and the PDF come from the analysis and report skills - if they\ndon't exist yet, run those first. Never recompute a number here.\n\n> **Branding - edit here.** Colours, font stack, eyebrow and the footer disclaimer come from\n> `spreadsheet-data-analysis-reporting\u002Fassets\u002Fstyle-tokens.json`, the single brand file shared with the\n> charts and the PDF. The template in this skill contains no colour values.\n> **Logo:** not shown in the email by design. Without a base64 `data:` image the only options are an\n> inline (CID) attachment - which the Draft an email tool can't create - or an externally hosted image URL,\n> which most clients block by default. The logo appears in the attached PDF; swap it via `brand.logo_path`.\n\n## 1. Gather (ask only for what's missing)\n- **Recipients and subject.** Ask if not given; the email is a draft, so a sensible subject is fine.\n- **Content to reuse:** headline, 2-4 KPIs, the figures behind 1-2 simple charts, up to 3 bullets per finding,\n  recommendations, the Data notes.\n- **The PDF** (`report.pdf`) in the sandbox working folder, from the report skill.\n\n## 2. Build the body\nCopy `assets\u002Femail-content-example.json` to `email_content.json`, fill it in, then run:\n```\npython scripts\u002Fbuild_email.py email_content.json email.html --pdf report.pdf\n```\n- Charts are **HTML table-cell bars** (`bar_charts`): `mode: \"bars\"` for values (use `highlight` for the focus\n  item), `mode: \"variance\"` for change (positive\u002Fnegative colours plus signed labels). Max 2 charts, 8 bars.\n- **No images in the body** - no base64 `data:` images, no SVG, no external image URLs. The full charts are\n  in the attached PDF.\n- The script fills brand tokens, sets the hidden preheader (headline by default), adds the \"full report is\n  attached as a PDF\" line, the Data notes footnote and the disclaimer, and warns if the body nears Gmail's\n  102 KB clipping limit or the PDF is large. It also writes `email.html.attachment.json` (PDF name and\n  sandbox path).\n\n## 3. Create the draft\nUse the **Draft an email message** tool: `To`, `Subject`, `Body` = contents of `email.html`, and\n`Attachments` = the PDF, named per `email.html.attachment.json` and referenced by its **sandbox file path**.\nThe tool reads the file from that path, so don't base64-encode the PDF or paste its content into the\nconversation.\n- If the tool rejects the attachment, tell the user and give them the PDF as a chat attachment instead.\n  Never upload it to SharePoint.\n- Tell the user it's a **draft** waiting in their mailbox for review - nothing is sent.\n\n## Done when\nHeadline, KPIs, bars and bullets match the analysis; Data notes and disclaimer are present; the PDF is\nattached; `build_email.py` ran without errors; the draft exists with the right recipients and\nsubject. Rendering rules and client quirks: `references\u002Femail-rendering-and-accessibility-notes.md`.\n","# Newsletter-style email composer\n\nComposes the email only. Figures, Data notes and the PDF come from the analysis and report skills - if they\ndon't exist yet, run those first. Never recompute a number here.\n\n> **Branding - edit here.** Colours, font stack, eyebrow and the footer disclaimer come from\n> `spreadsheet-data-analysis-reporting\u002Fassets\u002Fstyle-tokens.json`, the single brand file shared with the\n> charts and the PDF. The template in this skill contains no colour values.\n> **Logo:** not shown in the email by design. Without a base64 `data:` image the only options are an\n> inline (CID) attachment - which the Draft an email tool can't create - or an externally hosted image URL,\n> which most clients block by default. The logo appears in the attached PDF; swap it via `brand.logo_path`.\n\n## 1. Gather (ask only for what's missing)\n- **Recipients and subject.** Ask if not given; the email is a draft, so a sensible subject is fine.\n- **Content to reuse:** headline, 2-4 KPIs, the figures behind 1-2 simple charts, up to 3 bullets per finding,\n  recommendations, the Data notes.\n- **The PDF** (`report.pdf`) in the sandbox working folder, from the report skill.\n\n## 2. Build the body\nCopy `assets\u002Femail-content-example.json` to `email_content.json`, fill it in, then run:\n```\npython scripts\u002Fbuild_email.py email_content.json email.html --pdf report.pdf\n```\n- Charts are **HTML table-cell bars** (`bar_charts`): `mode: \"bars\"` for values (use `highlight` for the focus\n  item), `mode: \"variance\"` for change (positive\u002Fnegative colours plus signed labels). Max 2 charts, 8 bars.\n- **No images in the body** - no base64 `data:` images, no SVG, no external image URLs. The full charts are\n  in the attached PDF.\n- The script fills brand tokens, sets the hidden preheader (headline by default), adds the \"full report is\n  attached as a PDF\" line, the Data notes footnote and the disclaimer, and warns if the body nears Gmail's\n  102 KB clipping limit or the PDF is large. It also writes `email.html.attachment.json` (PDF name and\n  sandbox path).\n\n## 3. Create the draft\nUse the **Draft an email message** tool: `To`, `Subject`, `Body` = contents of `email.html`, and\n`Attachments` = the PDF, named per `email.html.attachment.json` and referenced by its **sandbox file path**.\nThe tool reads the file from that path, so don't base64-encode the PDF or paste its content into the\nconversation.\n- If the tool rejects the attachment, tell the user and give them the PDF as a chat attachment instead.\n  Never upload it to SharePoint.\n- Tell the user it's a **draft** waiting in their mailbox for review - nothing is sent.\n\n## Done when\nHeadline, KPIs, bars and bullets match the analysis; Data notes and disclaimer are present; the PDF is\nattached; `build_email.py` ran without errors; the draft exists with the right recipients and\nsubject. Rendering rules and client quirks: `references\u002Femail-rendering-and-accessibility-notes.md`.\n",{"name":5,"description":7},"main","61fc526426f0f3638ce793490e5032ee247c0cb0","submissions\u002Fsales-analyser\u002Fsolution\u002Fbotcomponents\u002Fcrf9c_salesanalyser_WEs93i.file.skillmd_oCdhy\u002Ffiledata",25,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-15 02:44:12",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add microsoft\u002Fcopilot-studio-gallery --skill newsletter-style-email-composer",{"tool":70,"command":71},"bunx","bunx skills add microsoft\u002Fcopilot-studio-gallery --skill newsletter-style-email-composer",{"tool":73,"command":74},"pnpm","pnpm dlx skills add microsoft\u002Fcopilot-studio-gallery --skill newsletter-style-email-composer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fsales-analyser\u002Fsolution\u002Fbotcomponents\u002Fcrf9c_salesanalyser_WEs93i.file.skillmd_oCdhy\u002Ffiledata\u002FSKILL.md",true,[],[79,93,110,135,169,195],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":86,"publishedAt":50},"01M69B6A39RF106PPXC8V5DD32","dock-assignment-pass-pdf","Render the completed truck loading-dock assignment as a driver-facing one-page PDF.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fwandelay-loading-bay-pickup\u002Fsolution\u002Fbotcomponents\u002Fcrf98_curbsidepickupassistant_Q0mRmz.file.skillmd_gYycZ\u002Ffiledata\u002FSKILL.md",[85],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[42,87,88,89,37,90,91,92],"dock assignment pass pdf","one-page","loading","driver","as","page",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":50},"01M69B687V6ME6HZZKTPPRHBXT","loading-dock-selector","Reason over weather, one current dock snapshot, optional ETA, and verified Drive Priority Pass to select and explain one loading dock.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fwandelay-loading-bay-pickup\u002Fsolution\u002Fbotcomponents\u002Fcrf98_curbsidepickupassistant_Q0mRmz.file.skillmd_FPadO\u002Ffiledata\u002FSKILL.md",[],[100,89,101,102,103,104,105,106,107,108,109],"loading dock selector","selector","select","reason","verified","eta","drive","snapshot","explain","weather",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":122,"publishedAt":50},"01M69B6247HGXJN2SMMXSZ6RA9","polished-report-builder","Use when the user asks to turn analysis results, metrics, or findings into a polished, presentation-ready report, one-pager, or executive summary -- especially when existing analysis (e.g. from the spreadsheet analysis skill) needs to become a document someone will actually read. Builds a branded PDF with reportlab from a short content file (headline, KPI tiles, one chart per point, data notes and the non-audit disclaimer) using the shared brand tokens, and runs a QA pass before delivery to catch walls of text, chart clutter, low-resolution charts, missing data notes or poor contrast. Do NOT use for a quick inline chat answer, a single ad-hoc chart with no report structure around it, a raw data export with no narrative, or to compute the figures themselves.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fsales-analyser\u002Fsolution\u002Fbotcomponents\u002Fcrf9c_salesanalyser_WEs93i.file.skillmd_k_QDN\u002Ffiledata\u002FSKILL.md",[116,117],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[123,124,125,126,43,44,127,128,42,45,129,130,33,34,131,132,133,38,134,41],"builder","report builder","report","polished report builder","spreadsheet","qa","executive summary","chart","data export","catch","quick","ready",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":150,"publishedAt":50},"01M69B5ZZQAN0F4G895841974H","spreadsheet-data-analysis-reporting","Use for any request that needs figures from the sales spreadsheets (Excel\u002FCSV), even a single file or a single period - e.g. 'analyse Q4', 'how did sales do last month', 'compare regions', YoY\u002FMoM\u002FQoQ\u002FYTD growth, top products, share of revenue, trends, outliers, currency-converted totals, or building\u002Fupdating a consolidated master file. Finds and loads the relevant files, cleans and normalises them, computes metrics with standard definitions and edge-case handling, flags outliers and data issues, explains every transformation, and produces on-brand charts. Use this before the report or email skills whenever numbers must be computed. Do NOT use for questions that need no data (e.g. 'what does YoY mean') or for re-formatting results already computed in this conversation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fsales-analyser\u002Fsolution\u002Fbotcomponents\u002Fcrf9c_salesanalyser_WEs93i.file.skillmd_6IAVT\u002Ffiledata\u002FSKILL.md",[141,144,147],{"categoryNo":142,"categoryName":143,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":145,"categoryName":146,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":148,"categoryName":149,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000033","数据分析师",[151,152,153,154,127,44,155,156,157,158,159,160,161,162,163,164,43,165,166,167,168],"data","data analysis","spreadsheet data analysis reporting","reporting","re","top","request","analyse","how","revenue","currency","flags","conversation","files","issues","spreadsheets","xlsx","relevant",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":179,"publishedAt":50},"01M69B5YC45P39BX11JGAC2NGC","generating-podcast-script","Use this skill whenever the user asks to write, generate, or create a podcast script or podcast episode — from a topic, or from source material such as a news digest, newsletter, email review, or set of articles — and optionally convert it to audio with Azure Text-to-Speech. Handles the initial request and every follow-up refinement (source, topic, length, cast, narration) in the same task.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fpodcast-generation-agent\u002Fsolution\u002Fbotcomponents\u002Fcr88d_podcastdemo_OMpe9u.file.skillmd_A9jgI\u002Ffiledata\u002FSKILL.md",[175,176],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":177,"categoryName":178,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[180,181,182,183,184,185,186,187,48,188,189,157,190,91,191,192,32,39,193,33,194],"script","podcast","podcast script","generating podcast script","speech","generate","create","azure","SET","source","follow-up","digest","narration","write","Audio",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":204,"publishedAt":50},"01M69B5WQ38T2TR7RRP84SHRAX","internal-consistency-review","Use when the user asks for the Internal Consistency Review of a contract, or asks to check a contract for internal conflicts, inconsistencies between sections, or gaps and unfilled elements. Do NOT use for comparing the contract against external law - that is the separate Legal Compliance Review skill.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcopilot-studio-gallery\u002Fblob\u002Fmain\u002Fsubmissions\u002Fcontract-compliance-reviewer\u002Fsolution\u002Fbotcomponents\u002FDefault_Contract_Compliance_Reviewer_8c0b11.file.skillmd_maMHB\u002Ffiledata\u002FSKILL.md",[201],{"categoryNo":202,"categoryName":203,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000037","律师与法务",[205,206,48,207,34,208,209,210,211,212,213,214,215,216,217,218,219,220,221],"consistency","internal consistency review","contract","gaps","for","compliance review","elements","review skill","do","legal","conflicts","legal compliance","use","user","check","compliance","legal compliance review"]