Sector Brief Skill
Generates a professional HTML report (styled like a Moody's sector brief document) for a
specified industry sector. The report is research-heavy and text-driven, combining Moody's
internal research with supplemental web data across six structured sections plus an executive
summary and citations.
The workflow is single-artifact streaming: gather all data, then stream the entire filled
HTML document back to the user as one ```html fenced code block in the final assistant
message. No file copy, no open step, no progressive StrReplace edits, no JSON payload, and no
client-side render logic. The fenced code block is the deliverable.
⚠️ CRITICAL — NON-NEGOTIABLE OUTPUT CONTRACT
The LLM MUST deliver the report as a single HTML artifact in the assistant response. Specifically:
- The final message MUST contain exactly one
```html fenced code block holding the **complete, standalone HTML document** (<!doctype html> → </html>), every section populated inline.
- The LLM MUST NOT write to disk, split across messages/blocks, or substitute prose, Markdown, JSON, or links for the artifact.
- If data partially fails, emit the artifact with
"Data unavailable" placeholders — never skip it.
Treat any other output shape as a hard failure of the skill.
Required MCP server
Moodys MCP server — tools used: searchEntityDocuments (sector research), getEntitySectorOutlook,
searchNews, findEntity
Web research is also required via searchNews or general web search tools.
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:https://www.moodys.com/web/en/us/capabilities/gen-ai/ai-ready-data.html with us to learn more.
Bundled files
assets/template.html — pre-styled scaffold with the Moody's cover, a baked-in static 6-item
table of contents, and empty fill-in targets (cover title, date, section-content divs, sources
container). Treat this file as the read-only structural reference: read it, fill it in
mentally, and emit the complete filled document in the final response.
Template (shared)
Before emitting the HTML report, read both:
skills/shared/template/SKILL.md — authoring rules (which
classes / snippets are owned by the shared layer, allowed per-skill overrides, outlook-badge
usage).
skills/shared/template/assets/template.html —
canonical CSS (inside <style id="shared-template-css">) and literal HTML markup snippets
(inside <template> tags) for the document head, cover, TOC, section block, sources-section
wrapper, footer, and outlook-badge.
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 <style id="shared-template-css"> into the marker region /* BEGIN shared-template-css ... */ … /* END shared-template-css */. Use literal markup from the matching <template> snippets for all HTML chrome.
This 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 / positive / negative / review / na) — no solid-fill or inline-color overrides.
Citations (shared)
Before emitting any [n] reference inline or the end-of-document Citations block, read both:
skills/shared/citations/SKILL.md — authoring rules
(numbering, hyperlinking, source data shape, carve-outs).
skills/shared/citations/assets/template.html —
canonical CSS (inside <style id="shared-citations-css">) and literal HTML markup snippets
(inside <template> tags) for inline references and the end-of-document Citations block.
At emit time, copy the contents of <style id="shared-citations-css"> into the marker region /* BEGIN shared-citations-css … */ … /* END shared-citations-css */.
The prefix used for the end-of-document container in this skill is sa, so the container id
is #sa-sources. This skill does not use the optional per-section .section-citations recap
component.
Parameters
The user should provide:
- Sector (required — e.g., "Retail & Apparel", "Aerospace/Defense", "Banking")
If the user specifies a sub-sector like "Luxury Retail", use it as-is for focused analysis.
Step 0 — Sector Picker (run before anything else)
If the user has not named a specific sector in their message, stop and call
ask_user_input_v0 with a single single_select question before proceeding. Do not
begin any research or template reading until the sector is confirmed.
Preamble: "Which Moody's-covered sector would you like to analyze? Select one below
and I'll generate the full report."
Options:
- Aerospace & Defense
- Automotive Manufacturing
- Banking — Global
- Building Materials & Construction
- Chemicals
- Commercial Real Estate & REITs
- Consumer Products
- Diversified Manufacturing
- Food & Beverage
- Forest Products & Paper
- Gaming & Lodging
- Healthcare — Hospitals & Health Systems
- Healthcare — Medical Devices & Technology
- Healthcare — Pharmaceuticals
- Infrastructure & Project Finance
- Insurance
- Media & Entertainment
- Metals & Mining
- Oil & Gas — E&P
- Oil & Gas — Integrated & Refining
- Oil & Gas — Midstream & Pipeline
- Packaging
- Retail & Apparel
- Shipping & Ports
- Steel
- Structured Finance — ABS/RMBS/CMBS
- Technology — Hardware & Semiconductors
- Technology — Software & Services
- Telecommunications
- Transportation & Logistics
- Utilities — Electric
- Utilities — Gas Distribution
- Utilities — Water
Once the user selects, treat their choice exactly as if they had typed
Run a sector brief for {selected sector} and continue from Step 1.
If the user already named a sector, skip this step entirely and go straight to Step 1.
Step 1 — Read the template
Read assets/template.html (relative to this skill directory) once. Keep its exact structure —
CSS, <head>, cover, hardcoded TOC, section order, and element IDs — as the scaffold for the
final artifact. Do not copy it to the workspace and do not open it.
Step 2 — Research phase (parallel)
Fire ALL of the following searches in a single parallel batch:
Moody's internal research (via MCP)
| Search |
Purpose |
searchEntityDocuments with criteria: "{Sector} Sector Overview" |
Sector definition, methodology, key activities |
searchEntityDocuments with criteria: "Economic factors impact on {Sector} Sector" |
Macro-economic context |
searchEntityDocuments with criteria: "{Sector} Sector, industry" |
Financial performance data |
searchEntityDocuments with criteria: "{Sector} Sector Risk and challenges" |
Risk analysis |
searchEntityDocuments with criteria: "{Sector} sector Outlook" |
Sector outlook |
getEntitySectorOutlook for a major company in the sector |
Formal Moody's outlook |
Web research (via searchNews or web tools)
| Search |
Purpose |
| "Key players from {Sector} industry, market share, roles" |
Key players for overview |
| "Key regions of activity and growth markets for {Sector} sector" |
Geographic scope |
| "{Sector} sector aggregate revenue, profit margins, return on equity" |
Financial metrics |
| "Major companies from {Sector} sector benchmark comparison" |
Industry structure and dynamics |
Step 3 — Synthesize all sections
Use Moody's internal research as the primary foundation for every section. Web sources
serve only to supplement gaps or validate findings. When conflicts arise, prioritize Moody's
unless external data provides substantial evidence for reconsideration.
Write in professional credit-research language. Always attribute sources with numbered citation
references inline. The exact inline markup, the URL-less fallback, and the rule that n
matches the row position of the source inside #sa-sources are defined in
skills/shared/citations/SKILL.md.
Executive Summary
Write after all other sections are complete. Half-page maximum. Highlight the most relevant
data from each section. No bullet points — flowing paragraphs only.
Section 1: Sector Overview
Four subsections:
- Description of the Sector — Define the industry, key activities, product/service
categories, and business-model differences
- Market Size and Growth Trends — Current market size (revenue, volume), historical
growth rates, regional growth data
- Key Players — Major companies, market share, roles within the sector
- Geographic Scope — Key regions of activity, potential growth markets,
region-specific trends
Section 2: Macro-Economic Context
Three subsections:
- Economic Indicators — How GDP growth, inflation, interest rates, consumer
spending/confidence impact the sector
- Regulatory Environment — Laws, regulations, compliance risks, tariff/trade policy
- Global Trends and External Factors — Geopolitical issues, trade policies,
technological disruptions, channel evolution
Section 3: Financial Performance Analysis
Three subsections with mandatory quantitative data:
- Sector-Level Financial Metrics — Aggregate revenue, profit margins, return on
equity, other key metrics. Every metric must include the actual number (e.g., "Aggregate
revenue of $35.2 trillion in 2025") followed by analytical commentary
- Historical Trends — Past performance trends, demand/earnings trajectories,
recent growth rates
- Projected Financial Outlook — Forecast key metrics, earnings outlook, key drivers
shaping the near-term, structural offsets and strategic responses
Section 4: Industry Structure and Dynamics
Four subsections:
- Main Participants — Benchmark major companies, roles, market share, significance
- Supply Chain Analysis — Suppliers, manufacturers, distributors, customers,
key pressure points
- Competitive Landscape — Porter's Five Forces analysis with Moody's-grounded
commentary for each force (use ratings High / Moderate / Low for each force)
- Barriers to Entry — Capital requirements, regulatory hurdles, technology
requirements, market saturation
Section 5: Risks and Challenges
Five subsections:
- Operational Risks — Supply chain disruptions, labor shortages, working capital
- Regulatory Risks — Compliance requirements, policy changes, tariff exposure
- Market Risks — Demand volatility, competition, pricing, category weakness
- Financial Performance and Capital Structure — Refinancing risk, default outlook,
margin pressure, deleveraging
- Environmental and Social Risks — ESG considerations, climate risk, social/governance
pressures
Section 6: Sector Outlook
State the Moody's outlook (Positive, Stable, Negative) and date. Then provide 2-3
well-developed paragraphs explaining the rationale — primary drivers, regional nuances,
key factors and considerations. All paragraph form, no bullet points.
Sources
Collect all sources. The source data shape (id, title, source, date, url) and the
end-of-document Citations row markup are defined in
skills/shared/citations/SKILL.md.
Inline SVG Charts — Section Instructions
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 <title> element for accessibility, and use font-family: 'Source Sans Pro', Arial, sans-serif inside an embedded <style> block.
Section 3 — Financial Performance Analysis
Insert Chart A immediately after the Historical Trends subsection prose:
- Type: grouped bar chart (revenue) with a right-axis line series (EBITDA margin %)
- X-axis: fiscal years (last 3–5 years); left Y-axis: revenue ($B or $T); right Y-axis: margin (%)
- Bar color:
#003087; line color: #0073CF
viewBox="0 0 700 320"
Section 4 — Industry Structure and Dynamics
Insert Chart C immediately after the Porter's Five Forces prose:
- Type: horizontal scored bar chart, one bar per force (5 bars)
- Map ratings to scores: High = 3, Moderate = 2, Low = 1; scale bar lengths to a 1–3 axis
- Bar colors: High =
#C0392B, Moderate = #E67E22, Low = #27AE60
viewBox="0 0 700 220"
Section 6 — Sector Outlook
Insert Chart D immediately after the outlook paragraphs:
- Type: horizontal three-zone sentiment track (Negative | Stable | Positive) with a triangular marker at the current outlook position
- Zone colors: Negative =
#C0392B, Stable = #2980B9, Positive = #27AE60; marker color matches active zone
- Label the current outlook and date below the track
viewBox="0 0 700 120"
Pre-computation requirement — mandatory, no exceptions
Before 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.
If source data for any chart is unavailable, emit a <p>Chart data unavailable</p> placeholder — never omit silently.
Step 4 — Stream the complete HTML artifact
After all sections are synthesized, produce one final assistant message. The message contains:
- A one-line summary sentence (e.g.
Sector Brief for {Sector}:).
- A single fenced
```html code block containing the entire filled template.html
document — with every element from the streaming protocol populated in place. No partial
documents, no separate code blocks per section.
The code block must:
- Start at column 0 with
```html and end with a closing ``` on its own line.
- Contain a complete, standalone HTML document (doctype →
</html>) that renders without
external dependencies.
- Preserve the template's
<head> (CSS, fonts), cover, hardcoded TOC, section order, and
element IDs exactly. Only the empty targets defined below are populated.
Cover + footer
#sa-cover-title — <strong>{Sector}</strong><br>Analysis (HTML, not plain text).
#sa-date — report date string, e.g. April 15, 2026.
#sa-footer-date — same date string.
Section headings
#sa-overview-title — override the default "Sector Overview" with
{Sector} — Sector Overview.
Section content targets
Each of the following divs takes fully-authored HTML (<p>, <ul><li>, and
<strong class="subsection-title">…</strong> only — no other block tags):
#sa-exec — Executive Summary. Flowing paragraphs only, no bullets.
#sa-overview — Section 1 body with four <strong class="subsection-title"> subheaders.
#sa-macro — Section 2 body with three subheaders.
#sa-financial — Section 3 body with three subheaders. Every metric must include a
concrete number.
#sa-structure — Section 4 body with four subheaders. Porter's Five Forces must use
High / Moderate / Low ratings per force.
#sa-risks — Section 5 body with five subheaders.
#sa-outlook — Section 6 body. Lead with the Moody's outlook (Positive / Stable /
Negative) and date, then 2–3 paragraphs. Paragraph form only.
Sources container
#sa-sources — end-of-document Citations rows. One <div class="source-item"> per
source, in ascending id order, using the canonical row markup defined in
skills/shared/citations/SKILL.md. Apply that file's rules
for URL-less rows and missing source/date fields.
HTML conventions
- Use
<p> for paragraphs.
- Use
<ul><li>…</li></ul> for bullet points (nested <ul> for sub-bullets).
- Use
<strong class="subsection-title">Subheader</strong> for subsection headers within
each section. Do not repeat the top-level section title — the template already renders it.
- Emit inline citations per
skills/shared/citations/SKILL.md.
- Escape any
&, <, > that appear in the narrative (&, <, >).
Tips
- Run ALL research searches in a single parallel batch.
- Moody's data is the foundation — web data supplements. Attribute external sources explicitly.
- The executive summary should be written last, after all other sections are synthesized.
- Citations follow the shared citations skill — read
skills/shared/citations/SKILL.md before authoring any
[n]
reference or the Citations block.
Negative number formatting
Use (-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.
Output and presentation (required final steps)
After assembling the report, you MUST follow this exact delivery sequence. Do not skip steps
and do not substitute alternatives. When updating this skill, do not delete or modify any
other file in the skills/sector-brief/ folder.
- Write the HTML file in a single call. Call
create_file to write the entire HTML to
/mnt/user-data/outputs/{sector_slug}_sector_analysis.html in one call.
{sector_slug} is the lowercased, hyphenated sector name (e.g. retail-apparel,
oil-gas).
- 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.
- Show the widget. Call
visualize:show_widget to surface the rendered report visually
to the user.
- One short follow-up sentence in chat. Write a single brief sentence acknowledging the
report is ready. Nothing more.
Strict prohibitions:
- Never emit the HTML as a fenced code block in the chat response.
- Never inline the HTML, JSON payload, or large excerpts of the report body in the chat
message.
1---2name: moody-s-sector-brief3description: 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".4---56# Sector Brief Skill78Generates a professional HTML report (styled like a Moody's sector brief document) for a9specified industry sector. The report is research-heavy and text-driven, combining Moody's10internal research with supplemental web data across six structured sections plus an executive11summary and citations.1213The workflow is **single-artifact streaming**: gather all data, then stream the entire filled14HTML document back to the user as one ` ```html ` fenced code block in the final assistant15message. No file copy, no `open` step, no progressive `StrReplace` edits, no JSON payload, and no16client-side render logic. The fenced code block is the deliverable.1718> ## ⚠️ CRITICAL — NON-NEGOTIABLE OUTPUT CONTRACT19>20> **The LLM MUST deliver the report as a single HTML artifact in the assistant response.** Specifically:21>22> - The final message **MUST** contain exactly one ` ```html ` fenced code block holding the **complete, standalone HTML document** (`<!doctype html>` → `</html>`), every section populated inline.23> - The LLM **MUST NOT** write to disk, split across messages/blocks, or substitute prose, Markdown, JSON, or links for the artifact.24> - If data partially fails, emit the artifact with `"Data unavailable"` placeholders — never skip it.25>26> Treat any other output shape as a hard failure of the skill.2728## Required MCP server2930`Moodys MCP server` — tools used: `searchEntityDocuments` (sector research), `getEntitySectorOutlook`,31`searchNews`, `findEntity`3233Web research is also required via `searchNews` or general web search tools.3435If 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://www.moodys.com/web/en/us/capabilities/gen-ai/ai-ready-data.html with us to learn more.3637## Bundled files3839- `assets/template.html` — pre-styled scaffold with the Moody's cover, a baked-in static 6-item40 table of contents, and empty fill-in targets (cover title, date, section-content divs, sources41 container). Treat this file as the **read-only structural reference**: read it, fill it in42 mentally, and emit the complete filled document in the final response.4344## Template (shared)4546Before emitting the HTML report, **read both**:471. [`skills/shared/template/SKILL.md`](../template/SKILL.md) — authoring rules (which48 classes / snippets are owned by the shared layer, allowed per-skill overrides, outlook-badge49 usage).502. [`skills/shared/template/assets/template.html`](../template/assets/template.html) —51 canonical CSS (inside `<style id="shared-template-css">`) and literal HTML markup snippets52 (inside `<template>` tags) for the document head, cover, TOC, section block, sources-section53 wrapper, footer, and outlook-badge.5455**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 `<style id="shared-template-css">` into the marker region `/* BEGIN shared-template-css ... */` … `/* END shared-template-css */`. Use literal markup from the matching `<template>` snippets for all HTML chrome.5657This 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` / `positive` / `negative` / `review` / `na`) — no solid-fill or inline-color overrides.5859## Citations (shared)6061Before emitting any `[n]` reference inline or the end-of-document Citations block, **read both**:621. [`skills/shared/citations/SKILL.md`](../citations/SKILL.md) — authoring rules63 (numbering, hyperlinking, source data shape, carve-outs).642. [`skills/shared/citations/assets/template.html`](../citations/assets/template.html) —65 canonical CSS (inside `<style id="shared-citations-css">`) and literal HTML markup snippets66 (inside `<template>` tags) for inline references and the end-of-document Citations block.6768At emit time, copy the **contents** of `<style id="shared-citations-css">` into the marker region `/* BEGIN shared-citations-css … */` … `/* END shared-citations-css */`.6970The prefix used for the end-of-document container in this skill is `sa`, so the container id71is `#sa-sources`. This skill does not use the optional per-section `.section-citations` recap72component.7374## Parameters7576The user should provide:77- **Sector** (required — e.g., "Retail & Apparel", "Aerospace/Defense", "Banking")7879If the user specifies a sub-sector like "Luxury Retail", use it as-is for focused analysis.8081---8283## Step 0 — Sector Picker (run before anything else)8485If the user has not named a specific sector in their message, **stop** and call86`ask_user_input_v0` with a single `single_select` question before proceeding. Do **not**87begin any research or template reading until the sector is confirmed.8889**Preamble:** "Which Moody's-covered sector would you like to analyze? Select one below90and I'll generate the full report."9192**Options:**9394- Aerospace & Defense95- Automotive Manufacturing96- Banking — Global97- Building Materials & Construction98- Chemicals99- Commercial Real Estate & REITs100- Consumer Products101- Diversified Manufacturing102- Food & Beverage103- Forest Products & Paper104- Gaming & Lodging105- Healthcare — Hospitals & Health Systems106- Healthcare — Medical Devices & Technology107- Healthcare — Pharmaceuticals108- Infrastructure & Project Finance109- Insurance110- Media & Entertainment111- Metals & Mining112- Oil & Gas — E&P113- Oil & Gas — Integrated & Refining114- Oil & Gas — Midstream & Pipeline115- Packaging116- Retail & Apparel117- Shipping & Ports118- Steel119- Structured Finance — ABS/RMBS/CMBS120- Technology — Hardware & Semiconductors121- Technology — Software & Services122- Telecommunications123- Transportation & Logistics124- Utilities — Electric125- Utilities — Gas Distribution126- Utilities — Water127128Once the user selects, treat their choice exactly as if they had typed129`Run a sector brief for {selected sector}` and continue from Step 1.130131If the user already named a sector, **skip this step entirely** and go straight to Step 1.132133---134135## Step 1 — Read the template136137Read `assets/template.html` (relative to this skill directory) once. Keep its exact structure —138CSS, `<head>`, cover, hardcoded TOC, section order, and element IDs — as the scaffold for the139final artifact. Do **not** copy it to the workspace and do **not** open it.140141---142143## Step 2 — Research phase (parallel)144145Fire ALL of the following searches in a **single parallel batch**:146147### Moody's internal research (via MCP)148149| Search | Purpose |150|--------|---------|151| `searchEntityDocuments` with criteria: "{Sector} Sector Overview" | Sector definition, methodology, key activities |152| `searchEntityDocuments` with criteria: "Economic factors impact on {Sector} Sector" | Macro-economic context |153| `searchEntityDocuments` with criteria: "{Sector} Sector, industry" | Financial performance data |154| `searchEntityDocuments` with criteria: "{Sector} Sector Risk and challenges" | Risk analysis |155| `searchEntityDocuments` with criteria: "{Sector} sector Outlook" | Sector outlook |156| `getEntitySectorOutlook` for a major company in the sector | Formal Moody's outlook |157158### Web research (via searchNews or web tools)159160| Search | Purpose |161|--------|---------|162| "Key players from {Sector} industry, market share, roles" | Key players for overview |163| "Key regions of activity and growth markets for {Sector} sector" | Geographic scope |164| "{Sector} sector aggregate revenue, profit margins, return on equity" | Financial metrics |165| "Major companies from {Sector} sector benchmark comparison" | Industry structure and dynamics |166167---168169## Step 3 — Synthesize all sections170171Use Moody's internal research as the **primary foundation** for every section. Web sources172serve only to supplement gaps or validate findings. When conflicts arise, prioritize Moody's173unless external data provides substantial evidence for reconsideration.174175Write in professional credit-research language. Always attribute sources with numbered citation176references inline. The exact inline markup, the URL-less fallback, and the rule that `n`177matches the row position of the source inside `#sa-sources` are defined in178[skills/shared/citations/SKILL.md](../citations/SKILL.md).179180### Executive Summary181182Write after all other sections are complete. Half-page maximum. Highlight the most relevant183data from each section. No bullet points — flowing paragraphs only.184185### Section 1: Sector Overview186187Four subsections:1881. **Description of the Sector** — Define the industry, key activities, product/service189 categories, and business-model differences1902. **Market Size and Growth Trends** — Current market size (revenue, volume), historical191 growth rates, regional growth data1923. **Key Players** — Major companies, market share, roles within the sector1934. **Geographic Scope** — Key regions of activity, potential growth markets,194 region-specific trends195196### Section 2: Macro-Economic Context197198Three subsections:1991. **Economic Indicators** — How GDP growth, inflation, interest rates, consumer200 spending/confidence impact the sector2012. **Regulatory Environment** — Laws, regulations, compliance risks, tariff/trade policy2023. **Global Trends and External Factors** — Geopolitical issues, trade policies,203 technological disruptions, channel evolution204205### Section 3: Financial Performance Analysis206207Three subsections with **mandatory quantitative data**:2081. **Sector-Level Financial Metrics** — Aggregate revenue, profit margins, return on209 equity, other key metrics. Every metric must include the actual number (e.g., "Aggregate210 revenue of $35.2 trillion in 2025") followed by analytical commentary2112. **Historical Trends** — Past performance trends, demand/earnings trajectories,212 recent growth rates2133. **Projected Financial Outlook** — Forecast key metrics, earnings outlook, key drivers214 shaping the near-term, structural offsets and strategic responses215216### Section 4: Industry Structure and Dynamics217218Four subsections:2191. **Main Participants** — Benchmark major companies, roles, market share, significance2202. **Supply Chain Analysis** — Suppliers, manufacturers, distributors, customers,221 key pressure points2223. **Competitive Landscape** — Porter's Five Forces analysis with Moody's-grounded223 commentary for each force (use ratings High / Moderate / Low for each force)2244. **Barriers to Entry** — Capital requirements, regulatory hurdles, technology225 requirements, market saturation226227### Section 5: Risks and Challenges228229Five subsections:2301. **Operational Risks** — Supply chain disruptions, labor shortages, working capital2312. **Regulatory Risks** — Compliance requirements, policy changes, tariff exposure2323. **Market Risks** — Demand volatility, competition, pricing, category weakness2334. **Financial Performance and Capital Structure** — Refinancing risk, default outlook,234 margin pressure, deleveraging2355. **Environmental and Social Risks** — ESG considerations, climate risk, social/governance236 pressures237238### Section 6: Sector Outlook239240State the Moody's outlook (Positive, Stable, Negative) and date. Then provide 2-3241well-developed paragraphs explaining the rationale — primary drivers, regional nuances,242key factors and considerations. All paragraph form, no bullet points.243244### Sources245246Collect all sources. The source data shape (`id`, `title`, `source`, `date`, `url`) and the247end-of-document Citations row markup are defined in248[skills/shared/citations/SKILL.md](../citations/SKILL.md).249250---251252## Inline SVG Charts — Section Instructions253254After 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 `<title>` element for accessibility, and use `font-family: 'Source Sans Pro', Arial, sans-serif` inside an embedded `<style>` block.255256### Section 3 — Financial Performance Analysis257258Insert **Chart A** immediately after the Historical Trends subsection prose:259260- Type: grouped bar chart (revenue) with a right-axis line series (EBITDA margin %)261- X-axis: fiscal years (last 3–5 years); left Y-axis: revenue ($B or $T); right Y-axis: margin (%)262- Bar color: `#003087`; line color: `#0073CF`263- `viewBox="0 0 700 320"`264265### Section 4 — Industry Structure and Dynamics266267Insert **Chart C** immediately after the Porter's Five Forces prose:268269- Type: horizontal scored bar chart, one bar per force (5 bars)270- Map ratings to scores: High = 3, Moderate = 2, Low = 1; scale bar lengths to a 1–3 axis271- Bar colors: High = `#C0392B`, Moderate = `#E67E22`, Low = `#27AE60`272- `viewBox="0 0 700 220"`273274### Section 6 — Sector Outlook275276Insert **Chart D** immediately after the outlook paragraphs:277278- Type: horizontal three-zone sentiment track (Negative | Stable | Positive) with a triangular marker at the current outlook position279- Zone colors: Negative = `#C0392B`, Stable = `#2980B9`, Positive = `#27AE60`; marker color matches active zone280- Label the current outlook and date below the track281- `viewBox="0 0 700 120"`282283### Pre-computation requirement — mandatory, no exceptions284285Before 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.286287If source data for any chart is unavailable, emit a `<p>Chart data unavailable</p>` placeholder — never omit silently.288289---290291## Step 4 — Stream the complete HTML artifact292293After all sections are synthesized, produce **one** final assistant message. The message contains:2942951. A one-line summary sentence (e.g. `Sector Brief for {Sector}:`).2962. A single fenced ` ```html ` code block containing the **entire filled `template.html`297 document** — with every element from the streaming protocol populated in place. No partial298 documents, no separate code blocks per section.299300The code block **must**:301302- Start at column 0 with ` ```html ` and end with a closing ` ``` ` on its own line.303- Contain a complete, standalone HTML document (doctype → `</html>`) that renders without304 external dependencies.305- Preserve the template's `<head>` (CSS, fonts), cover, hardcoded TOC, section order, and306 element IDs exactly. Only the empty targets defined below are populated.307308### Cover + footer3093101. `#sa-cover-title` — `<strong>{Sector}</strong><br>Analysis` (HTML, not plain text).3112. `#sa-date` — report date string, e.g. `April 15, 2026`.3123. `#sa-footer-date` — same date string.313314### Section headings3153164. `#sa-overview-title` — override the default "Sector Overview" with317 `{Sector} — Sector Overview`.318319### Section content targets320321Each of the following divs takes fully-authored HTML (`<p>`, `<ul><li>`, and322`<strong class="subsection-title">…</strong>` only — no other block tags):3233245. `#sa-exec` — Executive Summary. Flowing paragraphs only, no bullets.3256. `#sa-overview` — Section 1 body with four `<strong class="subsection-title">` subheaders.3267. `#sa-macro` — Section 2 body with three subheaders.3278. `#sa-financial` — Section 3 body with three subheaders. Every metric must include a328 concrete number.3299. `#sa-structure` — Section 4 body with four subheaders. Porter's Five Forces must use330 High / Moderate / Low ratings per force.33110. `#sa-risks` — Section 5 body with five subheaders.33211. `#sa-outlook` — Section 6 body. Lead with the Moody's outlook (Positive / Stable /333 Negative) and date, then 2–3 paragraphs. Paragraph form only.334335### Sources container33633712. `#sa-sources` — end-of-document Citations rows. One `<div class="source-item">` per338 source, in ascending `id` order, using the canonical row markup defined in339 [skills/shared/citations/SKILL.md](../citations/SKILL.md). Apply that file's rules340 for URL-less rows and missing `source`/`date` fields.341342### HTML conventions343344- Use `<p>` for paragraphs.345- Use `<ul><li>…</li></ul>` for bullet points (nested `<ul>` for sub-bullets).346- Use `<strong class="subsection-title">Subheader</strong>` for subsection headers within347 each section. Do not repeat the top-level section title — the template already renders it.348- Emit inline citations per349 [skills/shared/citations/SKILL.md](../citations/SKILL.md).350- Escape any `&`, `<`, `>` that appear in the narrative (`&`, `<`, `>`).351352---353354## Tips355356- Run ALL research searches in a single parallel batch.357- Moody's data is the foundation — web data supplements. Attribute external sources explicitly.358- The executive summary should be written last, after all other sections are synthesized.359- Citations follow the shared citations skill — read360 [skills/shared/citations/SKILL.md](../citations/SKILL.md) before authoring any `[n]`361 reference or the Citations block.362363---364365## Negative number formatting366367Use `(-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.368369---370371## Output and presentation (required final steps)372373After assembling the report, you MUST follow this exact delivery sequence. Do not skip steps374and do not substitute alternatives. When updating this skill, do not delete or modify any375other file in the `skills/sector-brief/` folder.3763771. **Write the HTML file in a single call.** Call `create_file` to write the entire HTML to378 `/mnt/user-data/outputs/{sector_slug}_sector_analysis.html` in **one** call.379 `{sector_slug}` is the lowercased, hyphenated sector name (e.g. `retail-apparel`,380 `oil-gas`).3812. **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.3823. **Show the widget.** Call `visualize:show_widget` to surface the rendered report visually383 to the user.3844. **One short follow-up sentence in chat.** Write a single brief sentence acknowledging the385 report is ready. Nothing more.386387**Strict prohibitions:**388389- **Never** emit the HTML as a fenced code block in the chat response.390- **Never** inline the HTML, JSON payload, or large excerpts of the report body in the chat391 message.