[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-moody-s-sector-brief":3,"mdc-y1w6sk-key":36,"related-repo-openai-moody-s-sector-brief":2607,"related-org-openai-moody-s-sector-brief":2730},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":31,"sourceUrl":34,"mdContent":35},"moody-s-sector-brief","generate industry sector brief reports","Produce a Sector Brief HTML report for any industry sector using Moody's GenAI MCP tools and web research. Use this skill whenever the user asks to analyze a sector, write a sector report, do an industry analysis, create a sector overview, or generate a sector deep-dive. Trigger even if they just name a sector and mention \"analysis\", \"overview\", \"outlook\", \"report\", or \"deep-dive\". Also trigger for phrases like \"what's happening in the retail sector\" or \"give me a sector breakdown for aerospace\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Reporting","reporting",{"name":20,"slug":21,"type":15},"HTML","html",{"name":23,"slug":24,"type":15},"Summarization","summarization",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":26,"stars":25,"forks":29,"topics":32,"description":33},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fmoody-s\u002Fskills\u002Fmoody-s-sector-brief","---\nname: moody-s-sector-brief\ndescription: >\n  Produce a Sector Brief HTML report for any industry sector using Moody's GenAI MCP tools\n  and web research. Use this skill whenever the user asks to analyze a sector, write a sector\n  report, do an industry analysis, create a sector overview, or generate a sector deep-dive.\n  Trigger even if they just name a sector and mention \"analysis\", \"overview\", \"outlook\", \"report\",\n  or \"deep-dive\". Also trigger for phrases like \"what's happening in the retail sector\" or\n  \"give me a sector breakdown for aerospace\".\n---\n\n# Sector Brief Skill\n\nGenerates a professional HTML report (styled like a Moody's sector brief document) for a\nspecified industry sector. The report is research-heavy and text-driven, combining Moody's\ninternal research with supplemental web data across six structured sections plus an executive\nsummary and citations.\n\nThe workflow is **single-artifact streaming**: gather all data, then stream the entire filled\nHTML document back to the user as one ` ```html ` fenced code block in the final assistant\nmessage. No file copy, no `open` step, no progressive `StrReplace` edits, no JSON payload, and no\nclient-side render logic. The fenced code block is the deliverable.\n\n> ## ⚠️ CRITICAL — NON-NEGOTIABLE OUTPUT CONTRACT\n>\n> **The LLM MUST deliver the report as a single HTML artifact in the assistant response.** Specifically:\n>\n> - The final message **MUST** contain exactly one ` ```html ` fenced code block holding the **complete, standalone HTML document** (`\u003C!doctype html>` → `\u003C\u002Fhtml>`), every section populated inline.\n> - The LLM **MUST NOT** write to disk, split across messages\u002Fblocks, or substitute prose, Markdown, JSON, or links for the artifact.\n> - If data partially fails, emit the artifact with `\"Data unavailable\"` placeholders — never skip it.\n>\n> Treat any other output shape as a hard failure of the skill.\n\n## Required MCP server\n\n`Moodys MCP server` — tools used: `searchEntityDocuments` (sector research), `getEntitySectorOutlook`,\n`searchNews`, `findEntity`\n\nWeb research is also required via `searchNews` or general web search tools.\n\nIf any of the tools required for a section do not exist, inform the user: One or more tools required for this section are not available under your current subscription. Unlock more of the expert insights, data, and analytics you trust. Get Link:https:\u002F\u002Fwww.moodys.com\u002Fweb\u002Fen\u002Fus\u002Fcapabilities\u002Fgen-ai\u002Fai-ready-data.html with us to learn more.\n\n## Bundled files\n\n- `assets\u002Ftemplate.html` — pre-styled scaffold with the Moody's cover, a baked-in static 6-item\n  table of contents, and empty fill-in targets (cover title, date, section-content divs, sources\n  container). Treat this file as the **read-only structural reference**: read it, fill it in\n  mentally, and emit the complete filled document in the final response.\n\n## Template (shared)\n\nBefore emitting the HTML report, **read both**:\n1. [`skills\u002Fshared\u002Ftemplate\u002FSKILL.md`](..\u002Fshared\u002Ftemplate\u002FSKILL.md) — authoring rules (which\n   classes \u002F snippets are owned by the shared layer, allowed per-skill overrides, outlook-badge\n   usage).\n2. [`skills\u002Fshared\u002Ftemplate\u002Fassets\u002Ftemplate.html`](..\u002Fshared\u002Ftemplate\u002Fassets\u002Ftemplate.html) —\n   canonical CSS (inside `\u003Cstyle id=\"shared-template-css\">`) and literal HTML markup snippets\n   (inside `\u003Ctemplate>` tags) for the document head, cover, TOC, section block, sources-section\n   wrapper, footer, and outlook-badge.\n\n**Always check the shared template before inventing** any class, token, scaffold, or design element. Do not restyle anything the shared skill owns. At emit time, copy the **contents** of `\u003Cstyle id=\"shared-template-css\">` into the marker region `\u002F* BEGIN shared-template-css ... *\u002F` … `\u002F* END shared-template-css *\u002F`. Use literal markup from the matching `\u003Ctemplate>` snippets for all HTML chrome.\n\nThis skill uses the **`cover-simple`** variant with no skill-specific CSS overrides (inherits `body { font-size: 13px }` and `.page { max-width: 900px }`). Outlook-badge usage must use canonical pastel variants (`stable` \u002F `positive` \u002F `negative` \u002F `review` \u002F `na`) — no solid-fill or inline-color overrides.\n\n## Citations (shared)\n\nBefore emitting any `[n]` reference inline or the end-of-document Citations block, **read both**:\n1. [`skills\u002Fshared\u002Fcitations\u002FSKILL.md`](..\u002Fshared\u002Fcitations\u002FSKILL.md) — authoring rules\n   (numbering, hyperlinking, source data shape, carve-outs).\n2. [`skills\u002Fshared\u002Fcitations\u002Fassets\u002Ftemplate.html`](..\u002Fshared\u002Fcitations\u002Fassets\u002Ftemplate.html) —\n   canonical CSS (inside `\u003Cstyle id=\"shared-citations-css\">`) and literal HTML markup snippets\n   (inside `\u003Ctemplate>` tags) for inline references and the end-of-document Citations block.\n\nAt emit time, copy the **contents** of `\u003Cstyle id=\"shared-citations-css\">` into the marker region `\u002F* BEGIN shared-citations-css … *\u002F` … `\u002F* END shared-citations-css *\u002F`.\n\nThe prefix used for the end-of-document container in this skill is `sa`, so the container id\nis `#sa-sources`. This skill does not use the optional per-section `.section-citations` recap\ncomponent.\n\n## Parameters\n\nThe user should provide:\n- **Sector** (required — e.g., \"Retail & Apparel\", \"Aerospace\u002FDefense\", \"Banking\")\n\nIf the user specifies a sub-sector like \"Luxury Retail\", use it as-is for focused analysis.\n\n---\n\n## Step 0 — Sector Picker (run before anything else)\n\nIf the user has not named a specific sector in their message, **stop** and call\n`ask_user_input_v0` with a single `single_select` question before proceeding. Do **not**\nbegin any research or template reading until the sector is confirmed.\n\n**Preamble:** \"Which Moody's-covered sector would you like to analyze? Select one below\nand I'll generate the full report.\"\n\n**Options:**\n\n- Aerospace & Defense\n- Automotive Manufacturing\n- Banking — Global\n- Building Materials & Construction\n- Chemicals\n- Commercial Real Estate & REITs\n- Consumer Products\n- Diversified Manufacturing\n- Food & Beverage\n- Forest Products & Paper\n- Gaming & Lodging\n- Healthcare — Hospitals & Health Systems\n- Healthcare — Medical Devices & Technology\n- Healthcare — Pharmaceuticals\n- Infrastructure & Project Finance\n- Insurance\n- Media & Entertainment\n- Metals & Mining\n- Oil & Gas — E&P\n- Oil & Gas — Integrated & Refining\n- Oil & Gas — Midstream & Pipeline\n- Packaging\n- Retail & Apparel\n- Shipping & Ports\n- Steel\n- Structured Finance — ABS\u002FRMBS\u002FCMBS\n- Technology — Hardware & Semiconductors\n- Technology — Software & Services\n- Telecommunications\n- Transportation & Logistics\n- Utilities — Electric\n- Utilities — Gas Distribution\n- Utilities — Water\n\nOnce the user selects, treat their choice exactly as if they had typed\n`Run a sector brief for {selected sector}` and continue from Step 1.\n\nIf the user already named a sector, **skip this step entirely** and go straight to Step 1.\n\n---\n\n## Step 1 — Read the template\n\nRead `assets\u002Ftemplate.html` (relative to this skill directory) once. Keep its exact structure —\nCSS, `\u003Chead>`, cover, hardcoded TOC, section order, and element IDs — as the scaffold for the\nfinal artifact. Do **not** copy it to the workspace and do **not** open it.\n\n---\n\n## Step 2 — Research phase (parallel)\n\nFire ALL of the following searches in a **single parallel batch**:\n\n### Moody's internal research (via MCP)\n\n| Search | Purpose |\n|--------|---------|\n| `searchEntityDocuments` with criteria: \"{Sector} Sector Overview\" | Sector definition, methodology, key activities |\n| `searchEntityDocuments` with criteria: \"Economic factors impact on {Sector} Sector\" | Macro-economic context |\n| `searchEntityDocuments` with criteria: \"{Sector} Sector, industry\" | Financial performance data |\n| `searchEntityDocuments` with criteria: \"{Sector} Sector Risk and challenges\" | Risk analysis |\n| `searchEntityDocuments` with criteria: \"{Sector} sector Outlook\" | Sector outlook |\n| `getEntitySectorOutlook` for a major company in the sector | Formal Moody's outlook |\n\n### Web research (via searchNews or web tools)\n\n| Search | Purpose |\n|--------|---------|\n| \"Key players from {Sector} industry, market share, roles\" | Key players for overview |\n| \"Key regions of activity and growth markets for {Sector} sector\" | Geographic scope |\n| \"{Sector} sector aggregate revenue, profit margins, return on equity\" | Financial metrics |\n| \"Major companies from {Sector} sector benchmark comparison\" | Industry structure and dynamics |\n\n---\n\n## Step 3 — Synthesize all sections\n\nUse Moody's internal research as the **primary foundation** for every section. Web sources\nserve only to supplement gaps or validate findings. When conflicts arise, prioritize Moody's\nunless external data provides substantial evidence for reconsideration.\n\nWrite in professional credit-research language. Always attribute sources with numbered citation\nreferences inline. The exact inline markup, the URL-less fallback, and the rule that `n`\nmatches the row position of the source inside `#sa-sources` are defined in\n[skills\u002Fshared\u002Fcitations\u002FSKILL.md](..\u002Fshared\u002Fcitations\u002FSKILL.md).\n\n### Executive Summary\n\nWrite after all other sections are complete. Half-page maximum. Highlight the most relevant\ndata from each section. No bullet points — flowing paragraphs only.\n\n### Section 1: Sector Overview\n\nFour subsections:\n1. **Description of the Sector** — Define the industry, key activities, product\u002Fservice\n   categories, and business-model differences\n2. **Market Size and Growth Trends** — Current market size (revenue, volume), historical\n   growth rates, regional growth data\n3. **Key Players** — Major companies, market share, roles within the sector\n4. **Geographic Scope** — Key regions of activity, potential growth markets,\n   region-specific trends\n\n### Section 2: Macro-Economic Context\n\nThree subsections:\n1. **Economic Indicators** — How GDP growth, inflation, interest rates, consumer\n   spending\u002Fconfidence impact the sector\n2. **Regulatory Environment** — Laws, regulations, compliance risks, tariff\u002Ftrade policy\n3. **Global Trends and External Factors** — Geopolitical issues, trade policies,\n   technological disruptions, channel evolution\n\n### Section 3: Financial Performance Analysis\n\nThree subsections with **mandatory quantitative data**:\n1. **Sector-Level Financial Metrics** — Aggregate revenue, profit margins, return on\n   equity, other key metrics. Every metric must include the actual number (e.g., \"Aggregate\n   revenue of $35.2 trillion in 2025\") followed by analytical commentary\n2. **Historical Trends** — Past performance trends, demand\u002Fearnings trajectories,\n   recent growth rates\n3. **Projected Financial Outlook** — Forecast key metrics, earnings outlook, key drivers\n   shaping the near-term, structural offsets and strategic responses\n\n### Section 4: Industry Structure and Dynamics\n\nFour subsections:\n1. **Main Participants** — Benchmark major companies, roles, market share, significance\n2. **Supply Chain Analysis** — Suppliers, manufacturers, distributors, customers,\n   key pressure points\n3. **Competitive Landscape** — Porter's Five Forces analysis with Moody's-grounded\n   commentary for each force (use ratings High \u002F Moderate \u002F Low for each force)\n4. **Barriers to Entry** — Capital requirements, regulatory hurdles, technology\n   requirements, market saturation\n\n### Section 5: Risks and Challenges\n\nFive subsections:\n1. **Operational Risks** — Supply chain disruptions, labor shortages, working capital\n2. **Regulatory Risks** — Compliance requirements, policy changes, tariff exposure\n3. **Market Risks** — Demand volatility, competition, pricing, category weakness\n4. **Financial Performance and Capital Structure** — Refinancing risk, default outlook,\n   margin pressure, deleveraging\n5. **Environmental and Social Risks** — ESG considerations, climate risk, social\u002Fgovernance\n   pressures\n\n### Section 6: Sector Outlook\n\nState the Moody's outlook (Positive, Stable, Negative) and date. Then provide 2-3\nwell-developed paragraphs explaining the rationale — primary drivers, regional nuances,\nkey factors and considerations. All paragraph form, no bullet points.\n\n### Sources\n\nCollect all sources. The source data shape (`id`, `title`, `source`, `date`, `url`) and the\nend-of-document Citations row markup are defined in\n[skills\u002Fshared\u002Fcitations\u002FSKILL.md](..\u002Fshared\u002Fcitations\u002FSKILL.md).\n\n---\n\n## Inline SVG Charts — Section Instructions\n\nAfter synthesizing each of the following sections, embed one inline SVG chart directly in the section content at the position indicated. All charts must be self-contained (no external scripts or stylesheets), include a `\u003Ctitle>` element for accessibility, and use `font-family: 'Source Sans Pro', Arial, sans-serif` inside an embedded `\u003Cstyle>` block.\n\n### Section 3 — Financial Performance Analysis\n\nInsert **Chart A** immediately after the Historical Trends subsection prose:\n\n- Type: grouped bar chart (revenue) with a right-axis line series (EBITDA margin %)\n- X-axis: fiscal years (last 3–5 years); left Y-axis: revenue ($B or $T); right Y-axis: margin (%)\n- Bar color: `#003087`; line color: `#0073CF`\n- `viewBox=\"0 0 700 320\"`\n\n### Section 4 — Industry Structure and Dynamics\n\nInsert **Chart C** immediately after the Porter's Five Forces prose:\n\n- Type: horizontal scored bar chart, one bar per force (5 bars)\n- Map ratings to scores: High = 3, Moderate = 2, Low = 1; scale bar lengths to a 1–3 axis\n- Bar colors: High = `#C0392B`, Moderate = `#E67E22`, Low = `#27AE60`\n- `viewBox=\"0 0 700 220\"`\n\n### Section 6 — Sector Outlook\n\nInsert **Chart D** immediately after the outlook paragraphs:\n\n- Type: horizontal three-zone sentiment track (Negative | Stable | Positive) with a triangular marker at the current outlook position\n- Zone colors: Negative = `#C0392B`, Stable = `#2980B9`, Positive = `#27AE60`; marker color matches active zone\n- Label the current outlook and date below the track\n- `viewBox=\"0 0 700 120\"`\n\n### Pre-computation requirement — mandatory, no exceptions\n\nBefore writing any SVG `x`, `y`, `width`, `height`, or `points` attribute, compute every value via bash or Python — do not calculate mentally. Record and verify computed values, then substitute into the SVG markup.\n\nIf source data for any chart is unavailable, emit a `\u003Cp>Chart data unavailable\u003C\u002Fp>` placeholder — never omit silently.\n\n---\n\n## Step 4 — Stream the complete HTML artifact\n\nAfter all sections are synthesized, produce **one** final assistant message. The message contains:\n\n1. A one-line summary sentence (e.g. `Sector Brief for {Sector}:`).\n2. A single fenced ` ```html ` code block containing the **entire filled `template.html`\n   document** — with every element from the streaming protocol populated in place. No partial\n   documents, no separate code blocks per section.\n\nThe code block **must**:\n\n- Start at column 0 with ` ```html ` and end with a closing ` ``` ` on its own line.\n- Contain a complete, standalone HTML document (doctype → `\u003C\u002Fhtml>`) that renders without\n  external dependencies.\n- Preserve the template's `\u003Chead>` (CSS, fonts), cover, hardcoded TOC, section order, and\n  element IDs exactly. Only the empty targets defined below are populated.\n\n### Cover + footer\n\n1. `#sa-cover-title` — `\u003Cstrong>{Sector}\u003C\u002Fstrong>\u003Cbr>Analysis` (HTML, not plain text).\n2. `#sa-date` — report date string, e.g. `April 15, 2026`.\n3. `#sa-footer-date` — same date string.\n\n### Section headings\n\n4. `#sa-overview-title` — override the default \"Sector Overview\" with\n   `{Sector} — Sector Overview`.\n\n### Section content targets\n\nEach of the following divs takes fully-authored HTML (`\u003Cp>`, `\u003Cul>\u003Cli>`, and\n`\u003Cstrong class=\"subsection-title\">…\u003C\u002Fstrong>` only — no other block tags):\n\n5. `#sa-exec` — Executive Summary. Flowing paragraphs only, no bullets.\n6. `#sa-overview` — Section 1 body with four `\u003Cstrong class=\"subsection-title\">` subheaders.\n7. `#sa-macro` — Section 2 body with three subheaders.\n8. `#sa-financial` — Section 3 body with three subheaders. Every metric must include a\n   concrete number.\n9. `#sa-structure` — Section 4 body with four subheaders. Porter's Five Forces must use\n   High \u002F Moderate \u002F Low ratings per force.\n10. `#sa-risks` — Section 5 body with five subheaders.\n11. `#sa-outlook` — Section 6 body. Lead with the Moody's outlook (Positive \u002F Stable \u002F\n    Negative) and date, then 2–3 paragraphs. Paragraph form only.\n\n### Sources container\n\n12. `#sa-sources` — end-of-document Citations rows. One `\u003Cdiv class=\"source-item\">` per\n    source, in ascending `id` order, using the canonical row markup defined in\n    [skills\u002Fshared\u002Fcitations\u002FSKILL.md](..\u002Fshared\u002Fcitations\u002FSKILL.md). Apply that file's rules\n    for URL-less rows and missing `source`\u002F`date` fields.\n\n### HTML conventions\n\n- Use `\u003Cp>` for paragraphs.\n- Use `\u003Cul>\u003Cli>…\u003C\u002Fli>\u003C\u002Ful>` for bullet points (nested `\u003Cul>` for sub-bullets).\n- Use `\u003Cstrong class=\"subsection-title\">Subheader\u003C\u002Fstrong>` for subsection headers within\n  each section. Do not repeat the top-level section title — the template already renders it.\n- Emit inline citations per\n  [skills\u002Fshared\u002Fcitations\u002FSKILL.md](..\u002Fshared\u002Fcitations\u002FSKILL.md).\n- Escape any `&`, `\u003C`, `>` that appear in the narrative (`&amp;`, `&lt;`, `&gt;`).\n\n---\n\n## Tips\n\n- Run ALL research searches in a single parallel batch.\n- Moody's data is the foundation — web data supplements. Attribute external sources explicitly.\n- The executive summary should be written last, after all other sections are synthesized.\n- Citations follow the shared citations skill — read\n  [skills\u002Fshared\u002Fcitations\u002FSKILL.md](..\u002Fshared\u002Fcitations\u002FSKILL.md) before authoring any `[n]`\n  reference or the Citations block.\n\n---\n\n## Negative number formatting\n\nUse `(-X)` for ALL negatives: `(-9%)`, `(-1.2pp)`, `(-$3.4B)`, `(-250 bps)`. Never use bare minus (`-9%`), en-dash (`–9%`), or parentheses without minus (`(9%)`). Apply to growth rates, margin changes, YoY deltas, and negative monetary values.\n\n---\n\n## Output and presentation (required final steps)\n\nAfter assembling the report, you MUST follow this exact delivery sequence. Do not skip steps\nand do not substitute alternatives. When updating this skill, do not delete or modify any\nother file in the `skills\u002Fsector-brief\u002F` folder.\n\n1. **Write the HTML file in a single call.** Call `create_file` to write the entire HTML to\n   `\u002Fmnt\u002Fuser-data\u002Foutputs\u002F{sector_slug}_sector_analysis.html` in **one** call.\n   `{sector_slug}` is the lowercased, hyphenated sector name (e.g. `retail-apparel`,\n   `oil-gas`).\n2. **Preview the file.** Immediately after, use whatever tool is available in your current environment to present or display the final report to the user (e.g. a file presenter, inline renderer, or widget) at the end of running the skill.\n3. **Show the widget.** Call `visualize:show_widget` to surface the rendered report visually\n   to the user.\n4. **One short follow-up sentence in chat.** Write a single brief sentence acknowledging the\n   report is ready. Nothing more.\n\n**Strict prohibitions:**\n\n- **Never** emit the HTML as a fenced code block in the chat response.\n- **Never** inline the HTML, JSON payload, or large excerpts of the report body in the chat\n  message.\n",{"data":37,"body":38},{"name":4,"description":6},{"type":39,"children":40},"root",[41,50,56,94,192,198,239,251,266,272,293,299,311,361,408,477,483,501,547,578,607,613,618,631,636,640,646,681,691,699,867,880,892,895,901,933,936,942,953,960,1096,1102,1174,1177,1183,1195,1220,1226,1231,1237,1242,1285,1291,1296,1329,1335,1346,1379,1385,1389,1432,1438,1443,1496,1502,1507,1513,1559,1562,1568,1597,1602,1614,1655,1660,1671,1720,1725,1736,1785,1791,1833,1846,1849,1855,1867,1910,1921,1968,1974,2025,2031,2053,2059,2087,2176,2182,2231,2237,2342,2345,2351,2387,2390,2396,2461,2464,2470,2483,2577,2585],{"type":42,"tag":43,"props":44,"children":46},"element","h1",{"id":45},"sector-brief-skill",[47],{"type":48,"value":49},"text","Sector Brief Skill",{"type":42,"tag":51,"props":52,"children":53},"p",{},[54],{"type":48,"value":55},"Generates a professional HTML report (styled like a Moody's sector brief document) for a\nspecified industry sector. The report is research-heavy and text-driven, combining Moody's\ninternal research with supplemental web data across six structured sections plus an executive\nsummary and citations.",{"type":42,"tag":51,"props":57,"children":58},{},[59,61,67,69,76,78,84,86,92],{"type":48,"value":60},"The workflow is ",{"type":42,"tag":62,"props":63,"children":64},"strong",{},[65],{"type":48,"value":66},"single-artifact streaming",{"type":48,"value":68},": gather all data, then stream the entire filled\nHTML document back to the user as one ",{"type":42,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":48,"value":75},"```html",{"type":48,"value":77}," fenced code block in the final assistant\nmessage. No file copy, no ",{"type":42,"tag":70,"props":79,"children":81},{"className":80},[],[82],{"type":48,"value":83},"open",{"type":48,"value":85}," step, no progressive ",{"type":42,"tag":70,"props":87,"children":89},{"className":88},[],[90],{"type":48,"value":91},"StrReplace",{"type":48,"value":93}," edits, no JSON payload, and no\nclient-side render logic. The fenced code block is the deliverable.",{"type":42,"tag":95,"props":96,"children":97},"blockquote",{},[98,105,115,187],{"type":42,"tag":99,"props":100,"children":102},"h2",{"id":101},"️-critical-non-negotiable-output-contract",[103],{"type":48,"value":104},"⚠️ CRITICAL — NON-NEGOTIABLE OUTPUT CONTRACT",{"type":42,"tag":51,"props":106,"children":107},{},[108,113],{"type":42,"tag":62,"props":109,"children":110},{},[111],{"type":48,"value":112},"The LLM MUST deliver the report as a single HTML artifact in the assistant response.",{"type":48,"value":114}," Specifically:",{"type":42,"tag":116,"props":117,"children":118},"ul",{},[119,162,174],{"type":42,"tag":120,"props":121,"children":122},"li",{},[123,125,130,132,137,139,144,146,152,154,160],{"type":48,"value":124},"The final message ",{"type":42,"tag":62,"props":126,"children":127},{},[128],{"type":48,"value":129},"MUST",{"type":48,"value":131}," contain exactly one ",{"type":42,"tag":70,"props":133,"children":135},{"className":134},[],[136],{"type":48,"value":75},{"type":48,"value":138}," fenced code block holding the ",{"type":42,"tag":62,"props":140,"children":141},{},[142],{"type":48,"value":143},"complete, standalone HTML document",{"type":48,"value":145}," (",{"type":42,"tag":70,"props":147,"children":149},{"className":148},[],[150],{"type":48,"value":151},"\u003C!doctype html>",{"type":48,"value":153}," → ",{"type":42,"tag":70,"props":155,"children":157},{"className":156},[],[158],{"type":48,"value":159},"\u003C\u002Fhtml>",{"type":48,"value":161},"), every section populated inline.",{"type":42,"tag":120,"props":163,"children":164},{},[165,167,172],{"type":48,"value":166},"The LLM ",{"type":42,"tag":62,"props":168,"children":169},{},[170],{"type":48,"value":171},"MUST NOT",{"type":48,"value":173}," write to disk, split across messages\u002Fblocks, or substitute prose, Markdown, JSON, or links for the artifact.",{"type":42,"tag":120,"props":175,"children":176},{},[177,179,185],{"type":48,"value":178},"If data partially fails, emit the artifact with ",{"type":42,"tag":70,"props":180,"children":182},{"className":181},[],[183],{"type":48,"value":184},"\"Data unavailable\"",{"type":48,"value":186}," placeholders — never skip it.",{"type":42,"tag":51,"props":188,"children":189},{},[190],{"type":48,"value":191},"Treat any other output shape as a hard failure of the skill.",{"type":42,"tag":99,"props":193,"children":195},{"id":194},"required-mcp-server",[196],{"type":48,"value":197},"Required MCP server",{"type":42,"tag":51,"props":199,"children":200},{},[201,207,209,215,217,223,225,231,233],{"type":42,"tag":70,"props":202,"children":204},{"className":203},[],[205],{"type":48,"value":206},"Moodys MCP server",{"type":48,"value":208}," — tools used: ",{"type":42,"tag":70,"props":210,"children":212},{"className":211},[],[213],{"type":48,"value":214},"searchEntityDocuments",{"type":48,"value":216}," (sector research), ",{"type":42,"tag":70,"props":218,"children":220},{"className":219},[],[221],{"type":48,"value":222},"getEntitySectorOutlook",{"type":48,"value":224},",\n",{"type":42,"tag":70,"props":226,"children":228},{"className":227},[],[229],{"type":48,"value":230},"searchNews",{"type":48,"value":232},", ",{"type":42,"tag":70,"props":234,"children":236},{"className":235},[],[237],{"type":48,"value":238},"findEntity",{"type":42,"tag":51,"props":240,"children":241},{},[242,244,249],{"type":48,"value":243},"Web research is also required via ",{"type":42,"tag":70,"props":245,"children":247},{"className":246},[],[248],{"type":48,"value":230},{"type":48,"value":250}," or general web search tools.",{"type":42,"tag":51,"props":252,"children":253},{},[254,256,264],{"type":48,"value":255},"If any of the tools required for a section do not exist, inform the user: One or more tools required for this section are not available under your current subscription. Unlock more of the expert insights, data, and analytics you trust. Get Link:",{"type":42,"tag":257,"props":258,"children":262},"a",{"href":259,"rel":260},"https:\u002F\u002Fwww.moodys.com\u002Fweb\u002Fen\u002Fus\u002Fcapabilities\u002Fgen-ai\u002Fai-ready-data.html",[261],"nofollow",[263],{"type":48,"value":259},{"type":48,"value":265}," with us to learn more.",{"type":42,"tag":99,"props":267,"children":269},{"id":268},"bundled-files",[270],{"type":48,"value":271},"Bundled files",{"type":42,"tag":116,"props":273,"children":274},{},[275],{"type":42,"tag":120,"props":276,"children":277},{},[278,284,286,291],{"type":42,"tag":70,"props":279,"children":281},{"className":280},[],[282],{"type":48,"value":283},"assets\u002Ftemplate.html",{"type":48,"value":285}," — pre-styled scaffold with the Moody's cover, a baked-in static 6-item\ntable of contents, and empty fill-in targets (cover title, date, section-content divs, sources\ncontainer). Treat this file as the ",{"type":42,"tag":62,"props":287,"children":288},{},[289],{"type":48,"value":290},"read-only structural reference",{"type":48,"value":292},": read it, fill it in\nmentally, and emit the complete filled document in the final response.",{"type":42,"tag":99,"props":294,"children":296},{"id":295},"template-shared",[297],{"type":48,"value":298},"Template (shared)",{"type":42,"tag":51,"props":300,"children":301},{},[302,304,309],{"type":48,"value":303},"Before emitting the HTML report, ",{"type":42,"tag":62,"props":305,"children":306},{},[307],{"type":48,"value":308},"read both",{"type":48,"value":310},":",{"type":42,"tag":312,"props":313,"children":314},"ol",{},[315,330],{"type":42,"tag":120,"props":316,"children":317},{},[318,328],{"type":42,"tag":257,"props":319,"children":321},{"href":320},"..\u002Fshared\u002Ftemplate\u002FSKILL.md",[322],{"type":42,"tag":70,"props":323,"children":325},{"className":324},[],[326],{"type":48,"value":327},"skills\u002Fshared\u002Ftemplate\u002FSKILL.md",{"type":48,"value":329}," — authoring rules (which\nclasses \u002F snippets are owned by the shared layer, allowed per-skill overrides, outlook-badge\nusage).",{"type":42,"tag":120,"props":331,"children":332},{},[333,343,345,351,353,359],{"type":42,"tag":257,"props":334,"children":336},{"href":335},"..\u002Fshared\u002Ftemplate\u002Fassets\u002Ftemplate.html",[337],{"type":42,"tag":70,"props":338,"children":340},{"className":339},[],[341],{"type":48,"value":342},"skills\u002Fshared\u002Ftemplate\u002Fassets\u002Ftemplate.html",{"type":48,"value":344}," —\ncanonical CSS (inside ",{"type":42,"tag":70,"props":346,"children":348},{"className":347},[],[349],{"type":48,"value":350},"\u003Cstyle id=\"shared-template-css\">",{"type":48,"value":352},") and literal HTML markup snippets\n(inside ",{"type":42,"tag":70,"props":354,"children":356},{"className":355},[],[357],{"type":48,"value":358},"\u003Ctemplate>",{"type":48,"value":360}," tags) for the document head, cover, TOC, section block, sources-section\nwrapper, footer, and outlook-badge.",{"type":42,"tag":51,"props":362,"children":363},{},[364,369,371,376,378,383,385,391,393,399,401,406],{"type":42,"tag":62,"props":365,"children":366},{},[367],{"type":48,"value":368},"Always check the shared template before inventing",{"type":48,"value":370}," any class, token, scaffold, or design element. Do not restyle anything the shared skill owns. At emit time, copy the ",{"type":42,"tag":62,"props":372,"children":373},{},[374],{"type":48,"value":375},"contents",{"type":48,"value":377}," of ",{"type":42,"tag":70,"props":379,"children":381},{"className":380},[],[382],{"type":48,"value":350},{"type":48,"value":384}," into the marker region ",{"type":42,"tag":70,"props":386,"children":388},{"className":387},[],[389],{"type":48,"value":390},"\u002F* BEGIN shared-template-css ... *\u002F",{"type":48,"value":392}," … ",{"type":42,"tag":70,"props":394,"children":396},{"className":395},[],[397],{"type":48,"value":398},"\u002F* END shared-template-css *\u002F",{"type":48,"value":400},". Use literal markup from the matching ",{"type":42,"tag":70,"props":402,"children":404},{"className":403},[],[405],{"type":48,"value":358},{"type":48,"value":407}," snippets for all HTML chrome.",{"type":42,"tag":51,"props":409,"children":410},{},[411,413,422,424,430,432,438,440,446,448,454,455,461,462,468,469,475],{"type":48,"value":412},"This skill uses the ",{"type":42,"tag":62,"props":414,"children":415},{},[416],{"type":42,"tag":70,"props":417,"children":419},{"className":418},[],[420],{"type":48,"value":421},"cover-simple",{"type":48,"value":423}," variant with no skill-specific CSS overrides (inherits ",{"type":42,"tag":70,"props":425,"children":427},{"className":426},[],[428],{"type":48,"value":429},"body { font-size: 13px }",{"type":48,"value":431}," and ",{"type":42,"tag":70,"props":433,"children":435},{"className":434},[],[436],{"type":48,"value":437},".page { max-width: 900px }",{"type":48,"value":439},"). Outlook-badge usage must use canonical pastel variants (",{"type":42,"tag":70,"props":441,"children":443},{"className":442},[],[444],{"type":48,"value":445},"stable",{"type":48,"value":447}," \u002F ",{"type":42,"tag":70,"props":449,"children":451},{"className":450},[],[452],{"type":48,"value":453},"positive",{"type":48,"value":447},{"type":42,"tag":70,"props":456,"children":458},{"className":457},[],[459],{"type":48,"value":460},"negative",{"type":48,"value":447},{"type":42,"tag":70,"props":463,"children":465},{"className":464},[],[466],{"type":48,"value":467},"review",{"type":48,"value":447},{"type":42,"tag":70,"props":470,"children":472},{"className":471},[],[473],{"type":48,"value":474},"na",{"type":48,"value":476},") — no solid-fill or inline-color overrides.",{"type":42,"tag":99,"props":478,"children":480},{"id":479},"citations-shared",[481],{"type":48,"value":482},"Citations (shared)",{"type":42,"tag":51,"props":484,"children":485},{},[486,488,494,496,500],{"type":48,"value":487},"Before emitting any ",{"type":42,"tag":70,"props":489,"children":491},{"className":490},[],[492],{"type":48,"value":493},"[n]",{"type":48,"value":495}," reference inline or the end-of-document Citations block, ",{"type":42,"tag":62,"props":497,"children":498},{},[499],{"type":48,"value":308},{"type":48,"value":310},{"type":42,"tag":312,"props":502,"children":503},{},[504,519],{"type":42,"tag":120,"props":505,"children":506},{},[507,517],{"type":42,"tag":257,"props":508,"children":510},{"href":509},"..\u002Fshared\u002Fcitations\u002FSKILL.md",[511],{"type":42,"tag":70,"props":512,"children":514},{"className":513},[],[515],{"type":48,"value":516},"skills\u002Fshared\u002Fcitations\u002FSKILL.md",{"type":48,"value":518}," — authoring rules\n(numbering, hyperlinking, source data shape, carve-outs).",{"type":42,"tag":120,"props":520,"children":521},{},[522,532,533,539,540,545],{"type":42,"tag":257,"props":523,"children":525},{"href":524},"..\u002Fshared\u002Fcitations\u002Fassets\u002Ftemplate.html",[526],{"type":42,"tag":70,"props":527,"children":529},{"className":528},[],[530],{"type":48,"value":531},"skills\u002Fshared\u002Fcitations\u002Fassets\u002Ftemplate.html",{"type":48,"value":344},{"type":42,"tag":70,"props":534,"children":536},{"className":535},[],[537],{"type":48,"value":538},"\u003Cstyle id=\"shared-citations-css\">",{"type":48,"value":352},{"type":42,"tag":70,"props":541,"children":543},{"className":542},[],[544],{"type":48,"value":358},{"type":48,"value":546}," tags) for inline references and the end-of-document Citations block.",{"type":42,"tag":51,"props":548,"children":549},{},[550,552,556,557,562,563,569,570,576],{"type":48,"value":551},"At emit time, copy the ",{"type":42,"tag":62,"props":553,"children":554},{},[555],{"type":48,"value":375},{"type":48,"value":377},{"type":42,"tag":70,"props":558,"children":560},{"className":559},[],[561],{"type":48,"value":538},{"type":48,"value":384},{"type":42,"tag":70,"props":564,"children":566},{"className":565},[],[567],{"type":48,"value":568},"\u002F* BEGIN shared-citations-css … *\u002F",{"type":48,"value":392},{"type":42,"tag":70,"props":571,"children":573},{"className":572},[],[574],{"type":48,"value":575},"\u002F* END shared-citations-css *\u002F",{"type":48,"value":577},".",{"type":42,"tag":51,"props":579,"children":580},{},[581,583,589,591,597,599,605],{"type":48,"value":582},"The prefix used for the end-of-document container in this skill is ",{"type":42,"tag":70,"props":584,"children":586},{"className":585},[],[587],{"type":48,"value":588},"sa",{"type":48,"value":590},", so the container id\nis ",{"type":42,"tag":70,"props":592,"children":594},{"className":593},[],[595],{"type":48,"value":596},"#sa-sources",{"type":48,"value":598},". This skill does not use the optional per-section ",{"type":42,"tag":70,"props":600,"children":602},{"className":601},[],[603],{"type":48,"value":604},".section-citations",{"type":48,"value":606}," recap\ncomponent.",{"type":42,"tag":99,"props":608,"children":610},{"id":609},"parameters",[611],{"type":48,"value":612},"Parameters",{"type":42,"tag":51,"props":614,"children":615},{},[616],{"type":48,"value":617},"The user should provide:",{"type":42,"tag":116,"props":619,"children":620},{},[621],{"type":42,"tag":120,"props":622,"children":623},{},[624,629],{"type":42,"tag":62,"props":625,"children":626},{},[627],{"type":48,"value":628},"Sector",{"type":48,"value":630}," (required — e.g., \"Retail & Apparel\", \"Aerospace\u002FDefense\", \"Banking\")",{"type":42,"tag":51,"props":632,"children":633},{},[634],{"type":48,"value":635},"If the user specifies a sub-sector like \"Luxury Retail\", use it as-is for focused analysis.",{"type":42,"tag":637,"props":638,"children":639},"hr",{},[],{"type":42,"tag":99,"props":641,"children":643},{"id":642},"step-0-sector-picker-run-before-anything-else",[644],{"type":48,"value":645},"Step 0 — Sector Picker (run before anything else)",{"type":42,"tag":51,"props":647,"children":648},{},[649,651,656,658,664,666,672,674,679],{"type":48,"value":650},"If the user has not named a specific sector in their message, ",{"type":42,"tag":62,"props":652,"children":653},{},[654],{"type":48,"value":655},"stop",{"type":48,"value":657}," and call\n",{"type":42,"tag":70,"props":659,"children":661},{"className":660},[],[662],{"type":48,"value":663},"ask_user_input_v0",{"type":48,"value":665}," with a single ",{"type":42,"tag":70,"props":667,"children":669},{"className":668},[],[670],{"type":48,"value":671},"single_select",{"type":48,"value":673}," question before proceeding. Do ",{"type":42,"tag":62,"props":675,"children":676},{},[677],{"type":48,"value":678},"not",{"type":48,"value":680},"\nbegin any research or template reading until the sector is confirmed.",{"type":42,"tag":51,"props":682,"children":683},{},[684,689],{"type":42,"tag":62,"props":685,"children":686},{},[687],{"type":48,"value":688},"Preamble:",{"type":48,"value":690}," \"Which Moody's-covered sector would you like to analyze? Select one below\nand I'll generate the full report.\"",{"type":42,"tag":51,"props":692,"children":693},{},[694],{"type":42,"tag":62,"props":695,"children":696},{},[697],{"type":48,"value":698},"Options:",{"type":42,"tag":116,"props":700,"children":701},{},[702,707,712,717,722,727,732,737,742,747,752,757,762,767,772,777,782,787,792,797,802,807,812,817,822,827,832,837,842,847,852,857,862],{"type":42,"tag":120,"props":703,"children":704},{},[705],{"type":48,"value":706},"Aerospace & Defense",{"type":42,"tag":120,"props":708,"children":709},{},[710],{"type":48,"value":711},"Automotive Manufacturing",{"type":42,"tag":120,"props":713,"children":714},{},[715],{"type":48,"value":716},"Banking — Global",{"type":42,"tag":120,"props":718,"children":719},{},[720],{"type":48,"value":721},"Building Materials & Construction",{"type":42,"tag":120,"props":723,"children":724},{},[725],{"type":48,"value":726},"Chemicals",{"type":42,"tag":120,"props":728,"children":729},{},[730],{"type":48,"value":731},"Commercial Real Estate & REITs",{"type":42,"tag":120,"props":733,"children":734},{},[735],{"type":48,"value":736},"Consumer Products",{"type":42,"tag":120,"props":738,"children":739},{},[740],{"type":48,"value":741},"Diversified Manufacturing",{"type":42,"tag":120,"props":743,"children":744},{},[745],{"type":48,"value":746},"Food & Beverage",{"type":42,"tag":120,"props":748,"children":749},{},[750],{"type":48,"value":751},"Forest Products & Paper",{"type":42,"tag":120,"props":753,"children":754},{},[755],{"type":48,"value":756},"Gaming & Lodging",{"type":42,"tag":120,"props":758,"children":759},{},[760],{"type":48,"value":761},"Healthcare — Hospitals & Health Systems",{"type":42,"tag":120,"props":763,"children":764},{},[765],{"type":48,"value":766},"Healthcare — Medical Devices & Technology",{"type":42,"tag":120,"props":768,"children":769},{},[770],{"type":48,"value":771},"Healthcare — Pharmaceuticals",{"type":42,"tag":120,"props":773,"children":774},{},[775],{"type":48,"value":776},"Infrastructure & Project Finance",{"type":42,"tag":120,"props":778,"children":779},{},[780],{"type":48,"value":781},"Insurance",{"type":42,"tag":120,"props":783,"children":784},{},[785],{"type":48,"value":786},"Media & Entertainment",{"type":42,"tag":120,"props":788,"children":789},{},[790],{"type":48,"value":791},"Metals & Mining",{"type":42,"tag":120,"props":793,"children":794},{},[795],{"type":48,"value":796},"Oil & Gas — E&P",{"type":42,"tag":120,"props":798,"children":799},{},[800],{"type":48,"value":801},"Oil & Gas — Integrated & Refining",{"type":42,"tag":120,"props":803,"children":804},{},[805],{"type":48,"value":806},"Oil & Gas — Midstream & Pipeline",{"type":42,"tag":120,"props":808,"children":809},{},[810],{"type":48,"value":811},"Packaging",{"type":42,"tag":120,"props":813,"children":814},{},[815],{"type":48,"value":816},"Retail & Apparel",{"type":42,"tag":120,"props":818,"children":819},{},[820],{"type":48,"value":821},"Shipping & Ports",{"type":42,"tag":120,"props":823,"children":824},{},[825],{"type":48,"value":826},"Steel",{"type":42,"tag":120,"props":828,"children":829},{},[830],{"type":48,"value":831},"Structured Finance — ABS\u002FRMBS\u002FCMBS",{"type":42,"tag":120,"props":833,"children":834},{},[835],{"type":48,"value":836},"Technology — Hardware & Semiconductors",{"type":42,"tag":120,"props":838,"children":839},{},[840],{"type":48,"value":841},"Technology — Software & Services",{"type":42,"tag":120,"props":843,"children":844},{},[845],{"type":48,"value":846},"Telecommunications",{"type":42,"tag":120,"props":848,"children":849},{},[850],{"type":48,"value":851},"Transportation & Logistics",{"type":42,"tag":120,"props":853,"children":854},{},[855],{"type":48,"value":856},"Utilities — Electric",{"type":42,"tag":120,"props":858,"children":859},{},[860],{"type":48,"value":861},"Utilities — Gas Distribution",{"type":42,"tag":120,"props":863,"children":864},{},[865],{"type":48,"value":866},"Utilities — Water",{"type":42,"tag":51,"props":868,"children":869},{},[870,872,878],{"type":48,"value":871},"Once the user selects, treat their choice exactly as if they had typed\n",{"type":42,"tag":70,"props":873,"children":875},{"className":874},[],[876],{"type":48,"value":877},"Run a sector brief for {selected sector}",{"type":48,"value":879}," and continue from Step 1.",{"type":42,"tag":51,"props":881,"children":882},{},[883,885,890],{"type":48,"value":884},"If the user already named a sector, ",{"type":42,"tag":62,"props":886,"children":887},{},[888],{"type":48,"value":889},"skip this step entirely",{"type":48,"value":891}," and go straight to Step 1.",{"type":42,"tag":637,"props":893,"children":894},{},[],{"type":42,"tag":99,"props":896,"children":898},{"id":897},"step-1-read-the-template",[899],{"type":48,"value":900},"Step 1 — Read the template",{"type":42,"tag":51,"props":902,"children":903},{},[904,906,911,913,919,921,925,927,931],{"type":48,"value":905},"Read ",{"type":42,"tag":70,"props":907,"children":909},{"className":908},[],[910],{"type":48,"value":283},{"type":48,"value":912}," (relative to this skill directory) once. Keep its exact structure —\nCSS, ",{"type":42,"tag":70,"props":914,"children":916},{"className":915},[],[917],{"type":48,"value":918},"\u003Chead>",{"type":48,"value":920},", cover, hardcoded TOC, section order, and element IDs — as the scaffold for the\nfinal artifact. Do ",{"type":42,"tag":62,"props":922,"children":923},{},[924],{"type":48,"value":678},{"type":48,"value":926}," copy it to the workspace and do ",{"type":42,"tag":62,"props":928,"children":929},{},[930],{"type":48,"value":678},{"type":48,"value":932}," open it.",{"type":42,"tag":637,"props":934,"children":935},{},[],{"type":42,"tag":99,"props":937,"children":939},{"id":938},"step-2-research-phase-parallel",[940],{"type":48,"value":941},"Step 2 — Research phase (parallel)",{"type":42,"tag":51,"props":943,"children":944},{},[945,947,952],{"type":48,"value":946},"Fire ALL of the following searches in a ",{"type":42,"tag":62,"props":948,"children":949},{},[950],{"type":48,"value":951},"single parallel batch",{"type":48,"value":310},{"type":42,"tag":954,"props":955,"children":957},"h3",{"id":956},"moodys-internal-research-via-mcp",[958],{"type":48,"value":959},"Moody's internal research (via MCP)",{"type":42,"tag":961,"props":962,"children":963},"table",{},[964,983],{"type":42,"tag":965,"props":966,"children":967},"thead",{},[968],{"type":42,"tag":969,"props":970,"children":971},"tr",{},[972,978],{"type":42,"tag":973,"props":974,"children":975},"th",{},[976],{"type":48,"value":977},"Search",{"type":42,"tag":973,"props":979,"children":980},{},[981],{"type":48,"value":982},"Purpose",{"type":42,"tag":984,"props":985,"children":986},"tbody",{},[987,1006,1024,1042,1060,1078],{"type":42,"tag":969,"props":988,"children":989},{},[990,1001],{"type":42,"tag":991,"props":992,"children":993},"td",{},[994,999],{"type":42,"tag":70,"props":995,"children":997},{"className":996},[],[998],{"type":48,"value":214},{"type":48,"value":1000}," with criteria: \"{Sector} Sector Overview\"",{"type":42,"tag":991,"props":1002,"children":1003},{},[1004],{"type":48,"value":1005},"Sector definition, methodology, key activities",{"type":42,"tag":969,"props":1007,"children":1008},{},[1009,1019],{"type":42,"tag":991,"props":1010,"children":1011},{},[1012,1017],{"type":42,"tag":70,"props":1013,"children":1015},{"className":1014},[],[1016],{"type":48,"value":214},{"type":48,"value":1018}," with criteria: \"Economic factors impact on {Sector} Sector\"",{"type":42,"tag":991,"props":1020,"children":1021},{},[1022],{"type":48,"value":1023},"Macro-economic context",{"type":42,"tag":969,"props":1025,"children":1026},{},[1027,1037],{"type":42,"tag":991,"props":1028,"children":1029},{},[1030,1035],{"type":42,"tag":70,"props":1031,"children":1033},{"className":1032},[],[1034],{"type":48,"value":214},{"type":48,"value":1036}," with criteria: \"{Sector} Sector, industry\"",{"type":42,"tag":991,"props":1038,"children":1039},{},[1040],{"type":48,"value":1041},"Financial performance data",{"type":42,"tag":969,"props":1043,"children":1044},{},[1045,1055],{"type":42,"tag":991,"props":1046,"children":1047},{},[1048,1053],{"type":42,"tag":70,"props":1049,"children":1051},{"className":1050},[],[1052],{"type":48,"value":214},{"type":48,"value":1054}," with criteria: \"{Sector} Sector Risk and challenges\"",{"type":42,"tag":991,"props":1056,"children":1057},{},[1058],{"type":48,"value":1059},"Risk analysis",{"type":42,"tag":969,"props":1061,"children":1062},{},[1063,1073],{"type":42,"tag":991,"props":1064,"children":1065},{},[1066,1071],{"type":42,"tag":70,"props":1067,"children":1069},{"className":1068},[],[1070],{"type":48,"value":214},{"type":48,"value":1072}," with criteria: \"{Sector} sector Outlook\"",{"type":42,"tag":991,"props":1074,"children":1075},{},[1076],{"type":48,"value":1077},"Sector outlook",{"type":42,"tag":969,"props":1079,"children":1080},{},[1081,1091],{"type":42,"tag":991,"props":1082,"children":1083},{},[1084,1089],{"type":42,"tag":70,"props":1085,"children":1087},{"className":1086},[],[1088],{"type":48,"value":222},{"type":48,"value":1090}," for a major company in the sector",{"type":42,"tag":991,"props":1092,"children":1093},{},[1094],{"type":48,"value":1095},"Formal Moody's outlook",{"type":42,"tag":954,"props":1097,"children":1099},{"id":1098},"web-research-via-searchnews-or-web-tools",[1100],{"type":48,"value":1101},"Web research (via searchNews or web tools)",{"type":42,"tag":961,"props":1103,"children":1104},{},[1105,1119],{"type":42,"tag":965,"props":1106,"children":1107},{},[1108],{"type":42,"tag":969,"props":1109,"children":1110},{},[1111,1115],{"type":42,"tag":973,"props":1112,"children":1113},{},[1114],{"type":48,"value":977},{"type":42,"tag":973,"props":1116,"children":1117},{},[1118],{"type":48,"value":982},{"type":42,"tag":984,"props":1120,"children":1121},{},[1122,1135,1148,1161],{"type":42,"tag":969,"props":1123,"children":1124},{},[1125,1130],{"type":42,"tag":991,"props":1126,"children":1127},{},[1128],{"type":48,"value":1129},"\"Key players from {Sector} industry, market share, roles\"",{"type":42,"tag":991,"props":1131,"children":1132},{},[1133],{"type":48,"value":1134},"Key players for overview",{"type":42,"tag":969,"props":1136,"children":1137},{},[1138,1143],{"type":42,"tag":991,"props":1139,"children":1140},{},[1141],{"type":48,"value":1142},"\"Key regions of activity and growth markets for {Sector} sector\"",{"type":42,"tag":991,"props":1144,"children":1145},{},[1146],{"type":48,"value":1147},"Geographic scope",{"type":42,"tag":969,"props":1149,"children":1150},{},[1151,1156],{"type":42,"tag":991,"props":1152,"children":1153},{},[1154],{"type":48,"value":1155},"\"{Sector} sector aggregate revenue, profit margins, return on equity\"",{"type":42,"tag":991,"props":1157,"children":1158},{},[1159],{"type":48,"value":1160},"Financial metrics",{"type":42,"tag":969,"props":1162,"children":1163},{},[1164,1169],{"type":42,"tag":991,"props":1165,"children":1166},{},[1167],{"type":48,"value":1168},"\"Major companies from {Sector} sector benchmark comparison\"",{"type":42,"tag":991,"props":1170,"children":1171},{},[1172],{"type":48,"value":1173},"Industry structure and dynamics",{"type":42,"tag":637,"props":1175,"children":1176},{},[],{"type":42,"tag":99,"props":1178,"children":1180},{"id":1179},"step-3-synthesize-all-sections",[1181],{"type":48,"value":1182},"Step 3 — Synthesize all sections",{"type":42,"tag":51,"props":1184,"children":1185},{},[1186,1188,1193],{"type":48,"value":1187},"Use Moody's internal research as the ",{"type":42,"tag":62,"props":1189,"children":1190},{},[1191],{"type":48,"value":1192},"primary foundation",{"type":48,"value":1194}," for every section. Web sources\nserve only to supplement gaps or validate findings. When conflicts arise, prioritize Moody's\nunless external data provides substantial evidence for reconsideration.",{"type":42,"tag":51,"props":1196,"children":1197},{},[1198,1200,1206,1208,1213,1215,1219],{"type":48,"value":1199},"Write in professional credit-research language. Always attribute sources with numbered citation\nreferences inline. The exact inline markup, the URL-less fallback, and the rule that ",{"type":42,"tag":70,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":48,"value":1205},"n",{"type":48,"value":1207},"\nmatches the row position of the source inside ",{"type":42,"tag":70,"props":1209,"children":1211},{"className":1210},[],[1212],{"type":48,"value":596},{"type":48,"value":1214}," are defined in\n",{"type":42,"tag":257,"props":1216,"children":1217},{"href":509},[1218],{"type":48,"value":516},{"type":48,"value":577},{"type":42,"tag":954,"props":1221,"children":1223},{"id":1222},"executive-summary",[1224],{"type":48,"value":1225},"Executive Summary",{"type":42,"tag":51,"props":1227,"children":1228},{},[1229],{"type":48,"value":1230},"Write after all other sections are complete. Half-page maximum. Highlight the most relevant\ndata from each section. No bullet points — flowing paragraphs only.",{"type":42,"tag":954,"props":1232,"children":1234},{"id":1233},"section-1-sector-overview",[1235],{"type":48,"value":1236},"Section 1: Sector Overview",{"type":42,"tag":51,"props":1238,"children":1239},{},[1240],{"type":48,"value":1241},"Four subsections:",{"type":42,"tag":312,"props":1243,"children":1244},{},[1245,1255,1265,1275],{"type":42,"tag":120,"props":1246,"children":1247},{},[1248,1253],{"type":42,"tag":62,"props":1249,"children":1250},{},[1251],{"type":48,"value":1252},"Description of the Sector",{"type":48,"value":1254}," — Define the industry, key activities, product\u002Fservice\ncategories, and business-model differences",{"type":42,"tag":120,"props":1256,"children":1257},{},[1258,1263],{"type":42,"tag":62,"props":1259,"children":1260},{},[1261],{"type":48,"value":1262},"Market Size and Growth Trends",{"type":48,"value":1264}," — Current market size (revenue, volume), historical\ngrowth rates, regional growth data",{"type":42,"tag":120,"props":1266,"children":1267},{},[1268,1273],{"type":42,"tag":62,"props":1269,"children":1270},{},[1271],{"type":48,"value":1272},"Key Players",{"type":48,"value":1274}," — Major companies, market share, roles within the sector",{"type":42,"tag":120,"props":1276,"children":1277},{},[1278,1283],{"type":42,"tag":62,"props":1279,"children":1280},{},[1281],{"type":48,"value":1282},"Geographic Scope",{"type":48,"value":1284}," — Key regions of activity, potential growth markets,\nregion-specific trends",{"type":42,"tag":954,"props":1286,"children":1288},{"id":1287},"section-2-macro-economic-context",[1289],{"type":48,"value":1290},"Section 2: Macro-Economic Context",{"type":42,"tag":51,"props":1292,"children":1293},{},[1294],{"type":48,"value":1295},"Three subsections:",{"type":42,"tag":312,"props":1297,"children":1298},{},[1299,1309,1319],{"type":42,"tag":120,"props":1300,"children":1301},{},[1302,1307],{"type":42,"tag":62,"props":1303,"children":1304},{},[1305],{"type":48,"value":1306},"Economic Indicators",{"type":48,"value":1308}," — How GDP growth, inflation, interest rates, consumer\nspending\u002Fconfidence impact the sector",{"type":42,"tag":120,"props":1310,"children":1311},{},[1312,1317],{"type":42,"tag":62,"props":1313,"children":1314},{},[1315],{"type":48,"value":1316},"Regulatory Environment",{"type":48,"value":1318}," — Laws, regulations, compliance risks, tariff\u002Ftrade policy",{"type":42,"tag":120,"props":1320,"children":1321},{},[1322,1327],{"type":42,"tag":62,"props":1323,"children":1324},{},[1325],{"type":48,"value":1326},"Global Trends and External Factors",{"type":48,"value":1328}," — Geopolitical issues, trade policies,\ntechnological disruptions, channel evolution",{"type":42,"tag":954,"props":1330,"children":1332},{"id":1331},"section-3-financial-performance-analysis",[1333],{"type":48,"value":1334},"Section 3: Financial Performance Analysis",{"type":42,"tag":51,"props":1336,"children":1337},{},[1338,1340,1345],{"type":48,"value":1339},"Three subsections with ",{"type":42,"tag":62,"props":1341,"children":1342},{},[1343],{"type":48,"value":1344},"mandatory quantitative data",{"type":48,"value":310},{"type":42,"tag":312,"props":1347,"children":1348},{},[1349,1359,1369],{"type":42,"tag":120,"props":1350,"children":1351},{},[1352,1357],{"type":42,"tag":62,"props":1353,"children":1354},{},[1355],{"type":48,"value":1356},"Sector-Level Financial Metrics",{"type":48,"value":1358}," — Aggregate revenue, profit margins, return on\nequity, other key metrics. Every metric must include the actual number (e.g., \"Aggregate\nrevenue of $35.2 trillion in 2025\") followed by analytical commentary",{"type":42,"tag":120,"props":1360,"children":1361},{},[1362,1367],{"type":42,"tag":62,"props":1363,"children":1364},{},[1365],{"type":48,"value":1366},"Historical Trends",{"type":48,"value":1368}," — Past performance trends, demand\u002Fearnings trajectories,\nrecent growth rates",{"type":42,"tag":120,"props":1370,"children":1371},{},[1372,1377],{"type":42,"tag":62,"props":1373,"children":1374},{},[1375],{"type":48,"value":1376},"Projected Financial Outlook",{"type":48,"value":1378}," — Forecast key metrics, earnings outlook, key drivers\nshaping the near-term, structural offsets and strategic responses",{"type":42,"tag":954,"props":1380,"children":1382},{"id":1381},"section-4-industry-structure-and-dynamics",[1383],{"type":48,"value":1384},"Section 4: Industry Structure and Dynamics",{"type":42,"tag":51,"props":1386,"children":1387},{},[1388],{"type":48,"value":1241},{"type":42,"tag":312,"props":1390,"children":1391},{},[1392,1402,1412,1422],{"type":42,"tag":120,"props":1393,"children":1394},{},[1395,1400],{"type":42,"tag":62,"props":1396,"children":1397},{},[1398],{"type":48,"value":1399},"Main Participants",{"type":48,"value":1401}," — Benchmark major companies, roles, market share, significance",{"type":42,"tag":120,"props":1403,"children":1404},{},[1405,1410],{"type":42,"tag":62,"props":1406,"children":1407},{},[1408],{"type":48,"value":1409},"Supply Chain Analysis",{"type":48,"value":1411}," — Suppliers, manufacturers, distributors, customers,\nkey pressure points",{"type":42,"tag":120,"props":1413,"children":1414},{},[1415,1420],{"type":42,"tag":62,"props":1416,"children":1417},{},[1418],{"type":48,"value":1419},"Competitive Landscape",{"type":48,"value":1421}," — Porter's Five Forces analysis with Moody's-grounded\ncommentary for each force (use ratings High \u002F Moderate \u002F Low for each force)",{"type":42,"tag":120,"props":1423,"children":1424},{},[1425,1430],{"type":42,"tag":62,"props":1426,"children":1427},{},[1428],{"type":48,"value":1429},"Barriers to Entry",{"type":48,"value":1431}," — Capital requirements, regulatory hurdles, technology\nrequirements, market saturation",{"type":42,"tag":954,"props":1433,"children":1435},{"id":1434},"section-5-risks-and-challenges",[1436],{"type":48,"value":1437},"Section 5: Risks and Challenges",{"type":42,"tag":51,"props":1439,"children":1440},{},[1441],{"type":48,"value":1442},"Five subsections:",{"type":42,"tag":312,"props":1444,"children":1445},{},[1446,1456,1466,1476,1486],{"type":42,"tag":120,"props":1447,"children":1448},{},[1449,1454],{"type":42,"tag":62,"props":1450,"children":1451},{},[1452],{"type":48,"value":1453},"Operational Risks",{"type":48,"value":1455}," — Supply chain disruptions, labor shortages, working capital",{"type":42,"tag":120,"props":1457,"children":1458},{},[1459,1464],{"type":42,"tag":62,"props":1460,"children":1461},{},[1462],{"type":48,"value":1463},"Regulatory Risks",{"type":48,"value":1465}," — Compliance requirements, policy changes, tariff exposure",{"type":42,"tag":120,"props":1467,"children":1468},{},[1469,1474],{"type":42,"tag":62,"props":1470,"children":1471},{},[1472],{"type":48,"value":1473},"Market Risks",{"type":48,"value":1475}," — Demand volatility, competition, pricing, category weakness",{"type":42,"tag":120,"props":1477,"children":1478},{},[1479,1484],{"type":42,"tag":62,"props":1480,"children":1481},{},[1482],{"type":48,"value":1483},"Financial Performance and Capital Structure",{"type":48,"value":1485}," — Refinancing risk, default outlook,\nmargin pressure, deleveraging",{"type":42,"tag":120,"props":1487,"children":1488},{},[1489,1494],{"type":42,"tag":62,"props":1490,"children":1491},{},[1492],{"type":48,"value":1493},"Environmental and Social Risks",{"type":48,"value":1495}," — ESG considerations, climate risk, social\u002Fgovernance\npressures",{"type":42,"tag":954,"props":1497,"children":1499},{"id":1498},"section-6-sector-outlook",[1500],{"type":48,"value":1501},"Section 6: Sector Outlook",{"type":42,"tag":51,"props":1503,"children":1504},{},[1505],{"type":48,"value":1506},"State the Moody's outlook (Positive, Stable, Negative) and date. Then provide 2-3\nwell-developed paragraphs explaining the rationale — primary drivers, regional nuances,\nkey factors and considerations. All paragraph form, no bullet points.",{"type":42,"tag":954,"props":1508,"children":1510},{"id":1509},"sources",[1511],{"type":48,"value":1512},"Sources",{"type":42,"tag":51,"props":1514,"children":1515},{},[1516,1518,1524,1525,1531,1532,1538,1539,1545,1546,1552,1554,1558],{"type":48,"value":1517},"Collect all sources. The source data shape (",{"type":42,"tag":70,"props":1519,"children":1521},{"className":1520},[],[1522],{"type":48,"value":1523},"id",{"type":48,"value":232},{"type":42,"tag":70,"props":1526,"children":1528},{"className":1527},[],[1529],{"type":48,"value":1530},"title",{"type":48,"value":232},{"type":42,"tag":70,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":48,"value":1537},"source",{"type":48,"value":232},{"type":42,"tag":70,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":48,"value":1544},"date",{"type":48,"value":232},{"type":42,"tag":70,"props":1547,"children":1549},{"className":1548},[],[1550],{"type":48,"value":1551},"url",{"type":48,"value":1553},") and the\nend-of-document Citations row markup are defined in\n",{"type":42,"tag":257,"props":1555,"children":1556},{"href":509},[1557],{"type":48,"value":516},{"type":48,"value":577},{"type":42,"tag":637,"props":1560,"children":1561},{},[],{"type":42,"tag":99,"props":1563,"children":1565},{"id":1564},"inline-svg-charts-section-instructions",[1566],{"type":48,"value":1567},"Inline SVG Charts — Section Instructions",{"type":42,"tag":51,"props":1569,"children":1570},{},[1571,1573,1579,1581,1587,1589,1595],{"type":48,"value":1572},"After synthesizing each of the following sections, embed one inline SVG chart directly in the section content at the position indicated. All charts must be self-contained (no external scripts or stylesheets), include a ",{"type":42,"tag":70,"props":1574,"children":1576},{"className":1575},[],[1577],{"type":48,"value":1578},"\u003Ctitle>",{"type":48,"value":1580}," element for accessibility, and use ",{"type":42,"tag":70,"props":1582,"children":1584},{"className":1583},[],[1585],{"type":48,"value":1586},"font-family: 'Source Sans Pro', Arial, sans-serif",{"type":48,"value":1588}," inside an embedded ",{"type":42,"tag":70,"props":1590,"children":1592},{"className":1591},[],[1593],{"type":48,"value":1594},"\u003Cstyle>",{"type":48,"value":1596}," block.",{"type":42,"tag":954,"props":1598,"children":1599},{"id":1331},[1600],{"type":48,"value":1601},"Section 3 — Financial Performance Analysis",{"type":42,"tag":51,"props":1603,"children":1604},{},[1605,1607,1612],{"type":48,"value":1606},"Insert ",{"type":42,"tag":62,"props":1608,"children":1609},{},[1610],{"type":48,"value":1611},"Chart A",{"type":48,"value":1613}," immediately after the Historical Trends subsection prose:",{"type":42,"tag":116,"props":1615,"children":1616},{},[1617,1622,1627,1646],{"type":42,"tag":120,"props":1618,"children":1619},{},[1620],{"type":48,"value":1621},"Type: grouped bar chart (revenue) with a right-axis line series (EBITDA margin %)",{"type":42,"tag":120,"props":1623,"children":1624},{},[1625],{"type":48,"value":1626},"X-axis: fiscal years (last 3–5 years); left Y-axis: revenue ($B or $T); right Y-axis: margin (%)",{"type":42,"tag":120,"props":1628,"children":1629},{},[1630,1632,1638,1640],{"type":48,"value":1631},"Bar color: ",{"type":42,"tag":70,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":48,"value":1637},"#003087",{"type":48,"value":1639},"; line color: ",{"type":42,"tag":70,"props":1641,"children":1643},{"className":1642},[],[1644],{"type":48,"value":1645},"#0073CF",{"type":42,"tag":120,"props":1647,"children":1648},{},[1649],{"type":42,"tag":70,"props":1650,"children":1652},{"className":1651},[],[1653],{"type":48,"value":1654},"viewBox=\"0 0 700 320\"",{"type":42,"tag":954,"props":1656,"children":1657},{"id":1381},[1658],{"type":48,"value":1659},"Section 4 — Industry Structure and Dynamics",{"type":42,"tag":51,"props":1661,"children":1662},{},[1663,1664,1669],{"type":48,"value":1606},{"type":42,"tag":62,"props":1665,"children":1666},{},[1667],{"type":48,"value":1668},"Chart C",{"type":48,"value":1670}," immediately after the Porter's Five Forces prose:",{"type":42,"tag":116,"props":1672,"children":1673},{},[1674,1679,1684,1711],{"type":42,"tag":120,"props":1675,"children":1676},{},[1677],{"type":48,"value":1678},"Type: horizontal scored bar chart, one bar per force (5 bars)",{"type":42,"tag":120,"props":1680,"children":1681},{},[1682],{"type":48,"value":1683},"Map ratings to scores: High = 3, Moderate = 2, Low = 1; scale bar lengths to a 1–3 axis",{"type":42,"tag":120,"props":1685,"children":1686},{},[1687,1689,1695,1697,1703,1705],{"type":48,"value":1688},"Bar colors: High = ",{"type":42,"tag":70,"props":1690,"children":1692},{"className":1691},[],[1693],{"type":48,"value":1694},"#C0392B",{"type":48,"value":1696},", Moderate = ",{"type":42,"tag":70,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":48,"value":1702},"#E67E22",{"type":48,"value":1704},", Low = ",{"type":42,"tag":70,"props":1706,"children":1708},{"className":1707},[],[1709],{"type":48,"value":1710},"#27AE60",{"type":42,"tag":120,"props":1712,"children":1713},{},[1714],{"type":42,"tag":70,"props":1715,"children":1717},{"className":1716},[],[1718],{"type":48,"value":1719},"viewBox=\"0 0 700 220\"",{"type":42,"tag":954,"props":1721,"children":1722},{"id":1498},[1723],{"type":48,"value":1724},"Section 6 — Sector Outlook",{"type":42,"tag":51,"props":1726,"children":1727},{},[1728,1729,1734],{"type":48,"value":1606},{"type":42,"tag":62,"props":1730,"children":1731},{},[1732],{"type":48,"value":1733},"Chart D",{"type":48,"value":1735}," immediately after the outlook paragraphs:",{"type":42,"tag":116,"props":1737,"children":1738},{},[1739,1744,1771,1776],{"type":42,"tag":120,"props":1740,"children":1741},{},[1742],{"type":48,"value":1743},"Type: horizontal three-zone sentiment track (Negative | Stable | Positive) with a triangular marker at the current outlook position",{"type":42,"tag":120,"props":1745,"children":1746},{},[1747,1749,1754,1756,1762,1764,1769],{"type":48,"value":1748},"Zone colors: Negative = ",{"type":42,"tag":70,"props":1750,"children":1752},{"className":1751},[],[1753],{"type":48,"value":1694},{"type":48,"value":1755},", Stable = ",{"type":42,"tag":70,"props":1757,"children":1759},{"className":1758},[],[1760],{"type":48,"value":1761},"#2980B9",{"type":48,"value":1763},", Positive = ",{"type":42,"tag":70,"props":1765,"children":1767},{"className":1766},[],[1768],{"type":48,"value":1710},{"type":48,"value":1770},"; marker color matches active zone",{"type":42,"tag":120,"props":1772,"children":1773},{},[1774],{"type":48,"value":1775},"Label the current outlook and date below the track",{"type":42,"tag":120,"props":1777,"children":1778},{},[1779],{"type":42,"tag":70,"props":1780,"children":1782},{"className":1781},[],[1783],{"type":48,"value":1784},"viewBox=\"0 0 700 120\"",{"type":42,"tag":954,"props":1786,"children":1788},{"id":1787},"pre-computation-requirement-mandatory-no-exceptions",[1789],{"type":48,"value":1790},"Pre-computation requirement — mandatory, no exceptions",{"type":42,"tag":51,"props":1792,"children":1793},{},[1794,1796,1802,1803,1809,1810,1816,1817,1823,1825,1831],{"type":48,"value":1795},"Before writing any SVG ",{"type":42,"tag":70,"props":1797,"children":1799},{"className":1798},[],[1800],{"type":48,"value":1801},"x",{"type":48,"value":232},{"type":42,"tag":70,"props":1804,"children":1806},{"className":1805},[],[1807],{"type":48,"value":1808},"y",{"type":48,"value":232},{"type":42,"tag":70,"props":1811,"children":1813},{"className":1812},[],[1814],{"type":48,"value":1815},"width",{"type":48,"value":232},{"type":42,"tag":70,"props":1818,"children":1820},{"className":1819},[],[1821],{"type":48,"value":1822},"height",{"type":48,"value":1824},", or ",{"type":42,"tag":70,"props":1826,"children":1828},{"className":1827},[],[1829],{"type":48,"value":1830},"points",{"type":48,"value":1832}," attribute, compute every value via bash or Python — do not calculate mentally. Record and verify computed values, then substitute into the SVG markup.",{"type":42,"tag":51,"props":1834,"children":1835},{},[1836,1838,1844],{"type":48,"value":1837},"If source data for any chart is unavailable, emit a ",{"type":42,"tag":70,"props":1839,"children":1841},{"className":1840},[],[1842],{"type":48,"value":1843},"\u003Cp>Chart data unavailable\u003C\u002Fp>",{"type":48,"value":1845}," placeholder — never omit silently.",{"type":42,"tag":637,"props":1847,"children":1848},{},[],{"type":42,"tag":99,"props":1850,"children":1852},{"id":1851},"step-4-stream-the-complete-html-artifact",[1853],{"type":48,"value":1854},"Step 4 — Stream the complete HTML artifact",{"type":42,"tag":51,"props":1856,"children":1857},{},[1858,1860,1865],{"type":48,"value":1859},"After all sections are synthesized, produce ",{"type":42,"tag":62,"props":1861,"children":1862},{},[1863],{"type":48,"value":1864},"one",{"type":48,"value":1866}," final assistant message. The message contains:",{"type":42,"tag":312,"props":1868,"children":1869},{},[1870,1883],{"type":42,"tag":120,"props":1871,"children":1872},{},[1873,1875,1881],{"type":48,"value":1874},"A one-line summary sentence (e.g. ",{"type":42,"tag":70,"props":1876,"children":1878},{"className":1877},[],[1879],{"type":48,"value":1880},"Sector Brief for {Sector}:",{"type":48,"value":1882},").",{"type":42,"tag":120,"props":1884,"children":1885},{},[1886,1888,1893,1895,1908],{"type":48,"value":1887},"A single fenced ",{"type":42,"tag":70,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":48,"value":75},{"type":48,"value":1894}," code block containing the ",{"type":42,"tag":62,"props":1896,"children":1897},{},[1898,1900,1906],{"type":48,"value":1899},"entire filled ",{"type":42,"tag":70,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":48,"value":1905},"template.html",{"type":48,"value":1907},"\ndocument",{"type":48,"value":1909}," — with every element from the streaming protocol populated in place. No partial\ndocuments, no separate code blocks per section.",{"type":42,"tag":51,"props":1911,"children":1912},{},[1913,1915,1920],{"type":48,"value":1914},"The code block ",{"type":42,"tag":62,"props":1916,"children":1917},{},[1918],{"type":48,"value":1919},"must",{"type":48,"value":310},{"type":42,"tag":116,"props":1922,"children":1923},{},[1924,1944,1956],{"type":42,"tag":120,"props":1925,"children":1926},{},[1927,1929,1934,1936,1942],{"type":48,"value":1928},"Start at column 0 with ",{"type":42,"tag":70,"props":1930,"children":1932},{"className":1931},[],[1933],{"type":48,"value":75},{"type":48,"value":1935}," and end with a closing ",{"type":42,"tag":70,"props":1937,"children":1939},{"className":1938},[],[1940],{"type":48,"value":1941},"```",{"type":48,"value":1943}," on its own line.",{"type":42,"tag":120,"props":1945,"children":1946},{},[1947,1949,1954],{"type":48,"value":1948},"Contain a complete, standalone HTML document (doctype → ",{"type":42,"tag":70,"props":1950,"children":1952},{"className":1951},[],[1953],{"type":48,"value":159},{"type":48,"value":1955},") that renders without\nexternal dependencies.",{"type":42,"tag":120,"props":1957,"children":1958},{},[1959,1961,1966],{"type":48,"value":1960},"Preserve the template's ",{"type":42,"tag":70,"props":1962,"children":1964},{"className":1963},[],[1965],{"type":48,"value":918},{"type":48,"value":1967}," (CSS, fonts), cover, hardcoded TOC, section order, and\nelement IDs exactly. Only the empty targets defined below are populated.",{"type":42,"tag":954,"props":1969,"children":1971},{"id":1970},"cover-footer",[1972],{"type":48,"value":1973},"Cover + footer",{"type":42,"tag":312,"props":1975,"children":1976},{},[1977,1996,2014],{"type":42,"tag":120,"props":1978,"children":1979},{},[1980,1986,1988,1994],{"type":42,"tag":70,"props":1981,"children":1983},{"className":1982},[],[1984],{"type":48,"value":1985},"#sa-cover-title",{"type":48,"value":1987}," — ",{"type":42,"tag":70,"props":1989,"children":1991},{"className":1990},[],[1992],{"type":48,"value":1993},"\u003Cstrong>{Sector}\u003C\u002Fstrong>\u003Cbr>Analysis",{"type":48,"value":1995}," (HTML, not plain text).",{"type":42,"tag":120,"props":1997,"children":1998},{},[1999,2005,2007,2013],{"type":42,"tag":70,"props":2000,"children":2002},{"className":2001},[],[2003],{"type":48,"value":2004},"#sa-date",{"type":48,"value":2006}," — report date string, e.g. ",{"type":42,"tag":70,"props":2008,"children":2010},{"className":2009},[],[2011],{"type":48,"value":2012},"April 15, 2026",{"type":48,"value":577},{"type":42,"tag":120,"props":2015,"children":2016},{},[2017,2023],{"type":42,"tag":70,"props":2018,"children":2020},{"className":2019},[],[2021],{"type":48,"value":2022},"#sa-footer-date",{"type":48,"value":2024}," — same date string.",{"type":42,"tag":954,"props":2026,"children":2028},{"id":2027},"section-headings",[2029],{"type":48,"value":2030},"Section headings",{"type":42,"tag":312,"props":2032,"children":2034},{"start":2033},4,[2035],{"type":42,"tag":120,"props":2036,"children":2037},{},[2038,2044,2046,2052],{"type":42,"tag":70,"props":2039,"children":2041},{"className":2040},[],[2042],{"type":48,"value":2043},"#sa-overview-title",{"type":48,"value":2045}," — override the default \"Sector Overview\" with\n",{"type":42,"tag":70,"props":2047,"children":2049},{"className":2048},[],[2050],{"type":48,"value":2051},"{Sector} — Sector Overview",{"type":48,"value":577},{"type":42,"tag":954,"props":2054,"children":2056},{"id":2055},"section-content-targets",[2057],{"type":48,"value":2058},"Section content targets",{"type":42,"tag":51,"props":2060,"children":2061},{},[2062,2064,2070,2071,2077,2079,2085],{"type":48,"value":2063},"Each of the following divs takes fully-authored HTML (",{"type":42,"tag":70,"props":2065,"children":2067},{"className":2066},[],[2068],{"type":48,"value":2069},"\u003Cp>",{"type":48,"value":232},{"type":42,"tag":70,"props":2072,"children":2074},{"className":2073},[],[2075],{"type":48,"value":2076},"\u003Cul>\u003Cli>",{"type":48,"value":2078},", and\n",{"type":42,"tag":70,"props":2080,"children":2082},{"className":2081},[],[2083],{"type":48,"value":2084},"\u003Cstrong class=\"subsection-title\">…\u003C\u002Fstrong>",{"type":48,"value":2086}," only — no other block tags):",{"type":42,"tag":312,"props":2088,"children":2090},{"start":2089},5,[2091,2102,2121,2132,2143,2154,2165],{"type":42,"tag":120,"props":2092,"children":2093},{},[2094,2100],{"type":42,"tag":70,"props":2095,"children":2097},{"className":2096},[],[2098],{"type":48,"value":2099},"#sa-exec",{"type":48,"value":2101}," — Executive Summary. Flowing paragraphs only, no bullets.",{"type":42,"tag":120,"props":2103,"children":2104},{},[2105,2111,2113,2119],{"type":42,"tag":70,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":48,"value":2110},"#sa-overview",{"type":48,"value":2112}," — Section 1 body with four ",{"type":42,"tag":70,"props":2114,"children":2116},{"className":2115},[],[2117],{"type":48,"value":2118},"\u003Cstrong class=\"subsection-title\">",{"type":48,"value":2120}," subheaders.",{"type":42,"tag":120,"props":2122,"children":2123},{},[2124,2130],{"type":42,"tag":70,"props":2125,"children":2127},{"className":2126},[],[2128],{"type":48,"value":2129},"#sa-macro",{"type":48,"value":2131}," — Section 2 body with three subheaders.",{"type":42,"tag":120,"props":2133,"children":2134},{},[2135,2141],{"type":42,"tag":70,"props":2136,"children":2138},{"className":2137},[],[2139],{"type":48,"value":2140},"#sa-financial",{"type":48,"value":2142}," — Section 3 body with three subheaders. Every metric must include a\nconcrete number.",{"type":42,"tag":120,"props":2144,"children":2145},{},[2146,2152],{"type":42,"tag":70,"props":2147,"children":2149},{"className":2148},[],[2150],{"type":48,"value":2151},"#sa-structure",{"type":48,"value":2153}," — Section 4 body with four subheaders. Porter's Five Forces must use\nHigh \u002F Moderate \u002F Low ratings per force.",{"type":42,"tag":120,"props":2155,"children":2156},{},[2157,2163],{"type":42,"tag":70,"props":2158,"children":2160},{"className":2159},[],[2161],{"type":48,"value":2162},"#sa-risks",{"type":48,"value":2164}," — Section 5 body with five subheaders.",{"type":42,"tag":120,"props":2166,"children":2167},{},[2168,2174],{"type":42,"tag":70,"props":2169,"children":2171},{"className":2170},[],[2172],{"type":48,"value":2173},"#sa-outlook",{"type":48,"value":2175}," — Section 6 body. Lead with the Moody's outlook (Positive \u002F Stable \u002F\nNegative) and date, then 2–3 paragraphs. Paragraph form only.",{"type":42,"tag":954,"props":2177,"children":2179},{"id":2178},"sources-container",[2180],{"type":48,"value":2181},"Sources container",{"type":42,"tag":312,"props":2183,"children":2185},{"start":2184},12,[2186],{"type":42,"tag":120,"props":2187,"children":2188},{},[2189,2194,2196,2202,2204,2209,2211,2215,2217,2222,2224,2229],{"type":42,"tag":70,"props":2190,"children":2192},{"className":2191},[],[2193],{"type":48,"value":596},{"type":48,"value":2195}," — end-of-document Citations rows. One ",{"type":42,"tag":70,"props":2197,"children":2199},{"className":2198},[],[2200],{"type":48,"value":2201},"\u003Cdiv class=\"source-item\">",{"type":48,"value":2203}," per\nsource, in ascending ",{"type":42,"tag":70,"props":2205,"children":2207},{"className":2206},[],[2208],{"type":48,"value":1523},{"type":48,"value":2210}," order, using the canonical row markup defined in\n",{"type":42,"tag":257,"props":2212,"children":2213},{"href":509},[2214],{"type":48,"value":516},{"type":48,"value":2216},". Apply that file's rules\nfor URL-less rows and missing ",{"type":42,"tag":70,"props":2218,"children":2220},{"className":2219},[],[2221],{"type":48,"value":1537},{"type":48,"value":2223},"\u002F",{"type":42,"tag":70,"props":2225,"children":2227},{"className":2226},[],[2228],{"type":48,"value":1544},{"type":48,"value":2230}," fields.",{"type":42,"tag":954,"props":2232,"children":2234},{"id":2233},"html-conventions",[2235],{"type":48,"value":2236},"HTML conventions",{"type":42,"tag":116,"props":2238,"children":2239},{},[2240,2252,2272,2284,2294],{"type":42,"tag":120,"props":2241,"children":2242},{},[2243,2245,2250],{"type":48,"value":2244},"Use ",{"type":42,"tag":70,"props":2246,"children":2248},{"className":2247},[],[2249],{"type":48,"value":2069},{"type":48,"value":2251}," for paragraphs.",{"type":42,"tag":120,"props":2253,"children":2254},{},[2255,2256,2262,2264,2270],{"type":48,"value":2244},{"type":42,"tag":70,"props":2257,"children":2259},{"className":2258},[],[2260],{"type":48,"value":2261},"\u003Cul>\u003Cli>…\u003C\u002Fli>\u003C\u002Ful>",{"type":48,"value":2263}," for bullet points (nested ",{"type":42,"tag":70,"props":2265,"children":2267},{"className":2266},[],[2268],{"type":48,"value":2269},"\u003Cul>",{"type":48,"value":2271}," for sub-bullets).",{"type":42,"tag":120,"props":2273,"children":2274},{},[2275,2276,2282],{"type":48,"value":2244},{"type":42,"tag":70,"props":2277,"children":2279},{"className":2278},[],[2280],{"type":48,"value":2281},"\u003Cstrong class=\"subsection-title\">Subheader\u003C\u002Fstrong>",{"type":48,"value":2283}," for subsection headers within\neach section. Do not repeat the top-level section title — the template already renders it.",{"type":42,"tag":120,"props":2285,"children":2286},{},[2287,2289,2293],{"type":48,"value":2288},"Emit inline citations per\n",{"type":42,"tag":257,"props":2290,"children":2291},{"href":509},[2292],{"type":48,"value":516},{"type":48,"value":577},{"type":42,"tag":120,"props":2295,"children":2296},{},[2297,2299,2305,2306,2312,2313,2319,2321,2327,2328,2334,2335,2341],{"type":48,"value":2298},"Escape any ",{"type":42,"tag":70,"props":2300,"children":2302},{"className":2301},[],[2303],{"type":48,"value":2304},"&",{"type":48,"value":232},{"type":42,"tag":70,"props":2307,"children":2309},{"className":2308},[],[2310],{"type":48,"value":2311},"\u003C",{"type":48,"value":232},{"type":42,"tag":70,"props":2314,"children":2316},{"className":2315},[],[2317],{"type":48,"value":2318},">",{"type":48,"value":2320}," that appear in the narrative (",{"type":42,"tag":70,"props":2322,"children":2324},{"className":2323},[],[2325],{"type":48,"value":2326},"&amp;",{"type":48,"value":232},{"type":42,"tag":70,"props":2329,"children":2331},{"className":2330},[],[2332],{"type":48,"value":2333},"&lt;",{"type":48,"value":232},{"type":42,"tag":70,"props":2336,"children":2338},{"className":2337},[],[2339],{"type":48,"value":2340},"&gt;",{"type":48,"value":1882},{"type":42,"tag":637,"props":2343,"children":2344},{},[],{"type":42,"tag":99,"props":2346,"children":2348},{"id":2347},"tips",[2349],{"type":48,"value":2350},"Tips",{"type":42,"tag":116,"props":2352,"children":2353},{},[2354,2359,2364,2369],{"type":42,"tag":120,"props":2355,"children":2356},{},[2357],{"type":48,"value":2358},"Run ALL research searches in a single parallel batch.",{"type":42,"tag":120,"props":2360,"children":2361},{},[2362],{"type":48,"value":2363},"Moody's data is the foundation — web data supplements. Attribute external sources explicitly.",{"type":42,"tag":120,"props":2365,"children":2366},{},[2367],{"type":48,"value":2368},"The executive summary should be written last, after all other sections are synthesized.",{"type":42,"tag":120,"props":2370,"children":2371},{},[2372,2374,2378,2380,2385],{"type":48,"value":2373},"Citations follow the shared citations skill — read\n",{"type":42,"tag":257,"props":2375,"children":2376},{"href":509},[2377],{"type":48,"value":516},{"type":48,"value":2379}," before authoring any ",{"type":42,"tag":70,"props":2381,"children":2383},{"className":2382},[],[2384],{"type":48,"value":493},{"type":48,"value":2386},"\nreference or the Citations block.",{"type":42,"tag":637,"props":2388,"children":2389},{},[],{"type":42,"tag":99,"props":2391,"children":2393},{"id":2392},"negative-number-formatting",[2394],{"type":48,"value":2395},"Negative number formatting",{"type":42,"tag":51,"props":2397,"children":2398},{},[2399,2400,2406,2408,2414,2415,2421,2422,2428,2429,2435,2437,2443,2445,2451,2453,2459],{"type":48,"value":2244},{"type":42,"tag":70,"props":2401,"children":2403},{"className":2402},[],[2404],{"type":48,"value":2405},"(-X)",{"type":48,"value":2407}," for ALL negatives: ",{"type":42,"tag":70,"props":2409,"children":2411},{"className":2410},[],[2412],{"type":48,"value":2413},"(-9%)",{"type":48,"value":232},{"type":42,"tag":70,"props":2416,"children":2418},{"className":2417},[],[2419],{"type":48,"value":2420},"(-1.2pp)",{"type":48,"value":232},{"type":42,"tag":70,"props":2423,"children":2425},{"className":2424},[],[2426],{"type":48,"value":2427},"(-$3.4B)",{"type":48,"value":232},{"type":42,"tag":70,"props":2430,"children":2432},{"className":2431},[],[2433],{"type":48,"value":2434},"(-250 bps)",{"type":48,"value":2436},". Never use bare minus (",{"type":42,"tag":70,"props":2438,"children":2440},{"className":2439},[],[2441],{"type":48,"value":2442},"-9%",{"type":48,"value":2444},"), en-dash (",{"type":42,"tag":70,"props":2446,"children":2448},{"className":2447},[],[2449],{"type":48,"value":2450},"–9%",{"type":48,"value":2452},"), or parentheses without minus (",{"type":42,"tag":70,"props":2454,"children":2456},{"className":2455},[],[2457],{"type":48,"value":2458},"(9%)",{"type":48,"value":2460},"). Apply to growth rates, margin changes, YoY deltas, and negative monetary values.",{"type":42,"tag":637,"props":2462,"children":2463},{},[],{"type":42,"tag":99,"props":2465,"children":2467},{"id":2466},"output-and-presentation-required-final-steps",[2468],{"type":48,"value":2469},"Output and presentation (required final steps)",{"type":42,"tag":51,"props":2471,"children":2472},{},[2473,2475,2481],{"type":48,"value":2474},"After assembling the report, you MUST follow this exact delivery sequence. Do not skip steps\nand do not substitute alternatives. When updating this skill, do not delete or modify any\nother file in the ",{"type":42,"tag":70,"props":2476,"children":2478},{"className":2477},[],[2479],{"type":48,"value":2480},"skills\u002Fsector-brief\u002F",{"type":48,"value":2482}," folder.",{"type":42,"tag":312,"props":2484,"children":2485},{},[2486,2540,2550,2567],{"type":42,"tag":120,"props":2487,"children":2488},{},[2489,2494,2496,2502,2504,2510,2512,2516,2518,2524,2526,2532,2533,2539],{"type":42,"tag":62,"props":2490,"children":2491},{},[2492],{"type":48,"value":2493},"Write the HTML file in a single call.",{"type":48,"value":2495}," Call ",{"type":42,"tag":70,"props":2497,"children":2499},{"className":2498},[],[2500],{"type":48,"value":2501},"create_file",{"type":48,"value":2503}," to write the entire HTML to\n",{"type":42,"tag":70,"props":2505,"children":2507},{"className":2506},[],[2508],{"type":48,"value":2509},"\u002Fmnt\u002Fuser-data\u002Foutputs\u002F{sector_slug}_sector_analysis.html",{"type":48,"value":2511}," in ",{"type":42,"tag":62,"props":2513,"children":2514},{},[2515],{"type":48,"value":1864},{"type":48,"value":2517}," call.\n",{"type":42,"tag":70,"props":2519,"children":2521},{"className":2520},[],[2522],{"type":48,"value":2523},"{sector_slug}",{"type":48,"value":2525}," is the lowercased, hyphenated sector name (e.g. ",{"type":42,"tag":70,"props":2527,"children":2529},{"className":2528},[],[2530],{"type":48,"value":2531},"retail-apparel",{"type":48,"value":224},{"type":42,"tag":70,"props":2534,"children":2536},{"className":2535},[],[2537],{"type":48,"value":2538},"oil-gas",{"type":48,"value":1882},{"type":42,"tag":120,"props":2541,"children":2542},{},[2543,2548],{"type":42,"tag":62,"props":2544,"children":2545},{},[2546],{"type":48,"value":2547},"Preview the file.",{"type":48,"value":2549}," Immediately after, use whatever tool is available in your current environment to present or display the final report to the user (e.g. a file presenter, inline renderer, or widget) at the end of running the skill.",{"type":42,"tag":120,"props":2551,"children":2552},{},[2553,2558,2559,2565],{"type":42,"tag":62,"props":2554,"children":2555},{},[2556],{"type":48,"value":2557},"Show the widget.",{"type":48,"value":2495},{"type":42,"tag":70,"props":2560,"children":2562},{"className":2561},[],[2563],{"type":48,"value":2564},"visualize:show_widget",{"type":48,"value":2566}," to surface the rendered report visually\nto the user.",{"type":42,"tag":120,"props":2568,"children":2569},{},[2570,2575],{"type":42,"tag":62,"props":2571,"children":2572},{},[2573],{"type":48,"value":2574},"One short follow-up sentence in chat.",{"type":48,"value":2576}," Write a single brief sentence acknowledging the\nreport is ready. Nothing more.",{"type":42,"tag":51,"props":2578,"children":2579},{},[2580],{"type":42,"tag":62,"props":2581,"children":2582},{},[2583],{"type":48,"value":2584},"Strict prohibitions:",{"type":42,"tag":116,"props":2586,"children":2587},{},[2588,2598],{"type":42,"tag":120,"props":2589,"children":2590},{},[2591,2596],{"type":42,"tag":62,"props":2592,"children":2593},{},[2594],{"type":48,"value":2595},"Never",{"type":48,"value":2597}," emit the HTML as a fenced code block in the chat response.",{"type":42,"tag":120,"props":2599,"children":2600},{},[2601,2605],{"type":42,"tag":62,"props":2602,"children":2603},{},[2604],{"type":48,"value":2595},{"type":48,"value":2606}," inline the HTML, JSON payload, or large excerpts of the report body in the chat\nmessage.",{"items":2608,"total":2729},[2609,2627,2643,2655,2675,2697,2717],{"slug":2610,"name":2610,"fn":2611,"description":2612,"org":2613,"tags":2614,"stars":25,"repoUrl":26,"updatedAt":27},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2615,2618,2621,2624],{"name":2616,"slug":2617,"type":15},"Accessibility","accessibility",{"name":2619,"slug":2620,"type":15},"Charts","charts",{"name":2622,"slug":2623,"type":15},"Data Visualization","data-visualization",{"name":2625,"slug":2626,"type":15},"Design","design",{"slug":2628,"name":2628,"fn":2629,"description":2630,"org":2631,"tags":2632,"stars":25,"repoUrl":26,"updatedAt":2642},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2633,2636,2639],{"name":2634,"slug":2635,"type":15},"Agents","agents",{"name":2637,"slug":2638,"type":15},"Browser Automation","browser-automation",{"name":2640,"slug":2641,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":2644,"name":2644,"fn":2645,"description":2646,"org":2647,"tags":2648,"stars":25,"repoUrl":26,"updatedAt":2654},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2649,2650,2653],{"name":2637,"slug":2638,"type":15},{"name":2651,"slug":2652,"type":15},"Local Development","local-development",{"name":2640,"slug":2641,"type":15},"2026-04-06T18:41:17.526867",{"slug":2656,"name":2656,"fn":2657,"description":2658,"org":2659,"tags":2660,"stars":25,"repoUrl":26,"updatedAt":2674},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2661,2662,2665,2668,2671],{"name":2634,"slug":2635,"type":15},{"name":2663,"slug":2664,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":2666,"slug":2667,"type":15},"SDK","sdk",{"name":2669,"slug":2670,"type":15},"Serverless","serverless",{"name":2672,"slug":2673,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":2676,"name":2676,"fn":2677,"description":2678,"org":2679,"tags":2680,"stars":25,"repoUrl":26,"updatedAt":2696},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2681,2684,2687,2690,2693],{"name":2682,"slug":2683,"type":15},"Frontend","frontend",{"name":2685,"slug":2686,"type":15},"React","react",{"name":2688,"slug":2689,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":2691,"slug":2692,"type":15},"UI Components","ui-components",{"name":2694,"slug":2695,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":2698,"name":2698,"fn":2699,"description":2700,"org":2701,"tags":2702,"stars":25,"repoUrl":26,"updatedAt":2716},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2703,2706,2709,2712,2715],{"name":2704,"slug":2705,"type":15},"AI Infrastructure","ai-infrastructure",{"name":2707,"slug":2708,"type":15},"Cost Optimization","cost-optimization",{"name":2710,"slug":2711,"type":15},"LLM","llm",{"name":2713,"slug":2714,"type":15},"Performance","performance",{"name":2694,"slug":2695,"type":15},"2026-04-06T18:40:44.377464",{"slug":2718,"name":2718,"fn":2719,"description":2720,"org":2721,"tags":2722,"stars":25,"repoUrl":26,"updatedAt":2728},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2723,2724,2727],{"name":2707,"slug":2708,"type":15},{"name":2725,"slug":2726,"type":15},"Database","database",{"name":2710,"slug":2711,"type":15},"2026-04-06T18:41:08.513425",600,{"items":2731,"total":2927},[2732,2752,2775,2792,2808,2825,2844,2856,2870,2884,2896,2911],{"slug":2733,"name":2733,"fn":2734,"description":2735,"org":2736,"tags":2737,"stars":2749,"repoUrl":2750,"updatedAt":2751},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2738,2741,2744,2746],{"name":2739,"slug":2740,"type":15},"Documents","documents",{"name":2742,"slug":2743,"type":15},"Healthcare","healthcare",{"name":781,"slug":2745,"type":15},"insurance",{"name":2747,"slug":2748,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":2753,"name":2753,"fn":2754,"description":2755,"org":2756,"tags":2757,"stars":2772,"repoUrl":2773,"updatedAt":2774},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2758,2761,2763,2766,2769],{"name":2759,"slug":2760,"type":15},".NET","dotnet",{"name":2762,"slug":2753,"type":15},"ASP.NET Core",{"name":2764,"slug":2765,"type":15},"Blazor","blazor",{"name":2767,"slug":2768,"type":15},"C#","csharp",{"name":2770,"slug":2771,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":2776,"name":2776,"fn":2777,"description":2778,"org":2779,"tags":2780,"stars":2772,"repoUrl":2773,"updatedAt":2791},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2781,2784,2787,2790],{"name":2782,"slug":2783,"type":15},"Apps SDK","apps-sdk",{"name":2785,"slug":2786,"type":15},"ChatGPT","chatgpt",{"name":2788,"slug":2789,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":2793,"name":2793,"fn":2794,"description":2795,"org":2796,"tags":2797,"stars":2772,"repoUrl":2773,"updatedAt":2807},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2798,2801,2804],{"name":2799,"slug":2800,"type":15},"API Development","api-development",{"name":2802,"slug":2803,"type":15},"CLI","cli",{"name":2805,"slug":2806,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":2809,"name":2809,"fn":2810,"description":2811,"org":2812,"tags":2813,"stars":2772,"repoUrl":2773,"updatedAt":2824},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2814,2817,2820,2821],{"name":2815,"slug":2816,"type":15},"Cloudflare","cloudflare",{"name":2818,"slug":2819,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":2663,"slug":2664,"type":15},{"name":2822,"slug":2823,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":2826,"name":2826,"fn":2827,"description":2828,"org":2829,"tags":2830,"stars":2772,"repoUrl":2773,"updatedAt":2843},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2831,2834,2837,2840],{"name":2832,"slug":2833,"type":15},"Productivity","productivity",{"name":2835,"slug":2836,"type":15},"Project Management","project-management",{"name":2838,"slug":2839,"type":15},"Strategy","strategy",{"name":2841,"slug":2842,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":2845,"name":2845,"fn":2846,"description":2847,"org":2848,"tags":2849,"stars":2772,"repoUrl":2773,"updatedAt":2855},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2850,2851,2853,2854],{"name":2625,"slug":2626,"type":15},{"name":2852,"slug":2845,"type":15},"Figma",{"name":2682,"slug":2683,"type":15},{"name":2788,"slug":2789,"type":15},"2026-04-12T05:06:47.939943",{"slug":2857,"name":2857,"fn":2858,"description":2859,"org":2860,"tags":2861,"stars":2772,"repoUrl":2773,"updatedAt":2869},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2862,2863,2866,2867,2868],{"name":2625,"slug":2626,"type":15},{"name":2864,"slug":2865,"type":15},"Design System","design-system",{"name":2852,"slug":2845,"type":15},{"name":2682,"slug":2683,"type":15},{"name":2691,"slug":2692,"type":15},"2026-05-10T05:59:52.971881",{"slug":2871,"name":2871,"fn":2872,"description":2873,"org":2874,"tags":2875,"stars":2772,"repoUrl":2773,"updatedAt":2883},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2876,2877,2878,2881,2882],{"name":2625,"slug":2626,"type":15},{"name":2864,"slug":2865,"type":15},{"name":2879,"slug":2880,"type":15},"Documentation","documentation",{"name":2852,"slug":2845,"type":15},{"name":2682,"slug":2683,"type":15},"2026-05-16T06:07:47.821474",{"slug":2885,"name":2885,"fn":2886,"description":2887,"org":2888,"tags":2889,"stars":2772,"repoUrl":2773,"updatedAt":2895},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2890,2891,2892,2893,2894],{"name":2625,"slug":2626,"type":15},{"name":2852,"slug":2845,"type":15},{"name":2682,"slug":2683,"type":15},{"name":2691,"slug":2692,"type":15},{"name":2770,"slug":2771,"type":15},"2026-05-16T06:07:40.583615",{"slug":2897,"name":2897,"fn":2898,"description":2899,"org":2900,"tags":2901,"stars":2772,"repoUrl":2773,"updatedAt":2910},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2902,2905,2906,2909],{"name":2903,"slug":2904,"type":15},"Animation","animation",{"name":2805,"slug":2806,"type":15},{"name":2907,"slug":2908,"type":15},"Creative","creative",{"name":2625,"slug":2626,"type":15},"2026-05-02T05:31:48.48485",{"slug":2912,"name":2912,"fn":2913,"description":2914,"org":2915,"tags":2916,"stars":2772,"repoUrl":2773,"updatedAt":2926},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2917,2918,2919,2922,2925],{"name":2907,"slug":2908,"type":15},{"name":2625,"slug":2626,"type":15},{"name":2920,"slug":2921,"type":15},"Image Generation","image-generation",{"name":2923,"slug":2924,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]