Design system
Microsoft Fluent UI
Investedmarkdown record for Microsoft Fluent UI json record for Microsoft Fluent UI
Fluent UI’s AI story is lopsided. The React monorepo has one of the most sophisticated builder-side agent setups of any major design system: a root AGENTS.md with numbered “never violate” rules, CLAUDE.md symlinked to it, .agents/skills/ + .claude/skills/ with nine executable slash-command skills (scaffolding, token lookup, lint auto-fix loops, Storybook+Playwright visual verification, PR review with confidence scoring, issue triage, Dependabot rollup), a .github/instructions/copilot.instructions.md with applyTo: '*', and a copilot-setup-steps.yml workflow that pre-provisions the GitHub Copilot coding agent’s container. By contrast, consumer-side affordances for React are essentially absent: no llms.txt, no llms-full.txt, no AI docs page on fluent2.microsoft.design, and no published MCP server. A Fluent UI maintainer stated publicly in June 2026 that Microsoft has an MCP “being used internally across Microsoft products” with no public release timeline, leaving the field to community npm servers. The one official consumer MCP is for the Blazor* flavor (Microsoft.FluentUI.AspNetCore.McpServer, 5.0.0-rc), shipped from microsoft/fluentui-blazor. Net: the team has industrialized AI for maintaining the system, and has not yet shipped anything for people building with it.
For consumers — building with it
Thin, and notably thinner than Fluent UI’s stature would suggest. No llms.txt or llms-full.txt on fluent2.microsoft.design (every path returns the same Astro SPA shell; this study confirmed /llms.txt, /llms-full.txt, /ai, /docs/mcp and a deliberately fake path all return byte-identical HTML, so those 200s are a catch-all, not content). No llms.txt on react.fluentui.dev (genuine 404). No AI/MCP/Copilot mention anywhere on fluent2.microsoft.design/get-started/develop. No official React MCP server, no @fluentui/mcp on npm, no ‘Add to Cursor’ buttons, no distributed .cursorrules template for consumers, no published component registry for agents, no consumer-facing Claude skill. The one official artifact is the Blazor MCP server (Microsoft.FluentUI.AspNetCore.McpServer, rc, dotnet tool fluentui-mcp, 142+ components, 5 tools), a different platform from the flagship React library. React consumers are served by community MCP servers (blendsdk/fluentui-mcp on npm, aminvishvam/fluentui-mcp-server) whose existence a maintainer implicitly acknowledged as filling a real gap while noting Microsoft runs an equivalent internally. There is a packages/cra-template and starter-templates/ for scaffolding, but neither is AI-aware.
For builders — maintaining it
Deep and unusually operational, among the strongest builder-side setups in this study. Four layers. (1) Instruction files: AGENTS.md at root with ‘source of truth over existing code’ framing, five numbered never-violate rules, a canonical v9 component template, an anti-pattern blocklist, and a package-map for the 74+ package tree; CLAUDE.md is a one-line redirect to it; .github/instructions/copilot.instructions.md with applyTo: '**' plus a scoped dependabot-security-fixes instruction file. (2) Executable skills: nine SKILL.md files mirrored into .agents/skills/ and .claude/skills/, covering scaffolding (v9-component), token remediation (token-lookup), lint auto-fix loops (lint-check), visual verification via Storybook+Playwright (visual-test), change-file generation (change), package introspection (package-info), PR review with confidence scoring (review-pr), issue triage (triage-issues), and Dependabot batching (dependabot-rollup). (3) Agent infrastructure: copilot-setup-steps.yml pre-provisions the Copilot coding agent’s container with Node 22 + immutable yarn install; .github/triage-bot.config.json and issues.yml/pr-housekeeping.yml workflows automate queue hygiene. (4) Curated deep-dive docs written for agents to follow the links: docs/architecture/{component-patterns,design-tokens,layers}.md, docs/workflows/{contributing,testing}.md, docs/team-routing.md, docs/quality-grades.md, docs/tech-debt-tracker.md. The .agents/ + .claude/ duplication signals deliberate multi-vendor portability rather than betting on one assistant.
Affordances · 8
Concrete AI-facing artifacts this system ships. Expand for snippets and links.
AGENTS.mdAGENTS.md (repo root)officialbuilders
Root agent instruction file for the fluentui monorepo. Opens with an Nx-managed auto-updated block, then declares itself the source of truth over existing code, lists 5 numbered ‘Critical Rules (never violate)’, a canonical v9 component template, a ‘Legacy Anti-Patterns (never copy these)’ list, exploration guidance for the 74+ package tree, and an index of deep-dive docs plus the nine skills. CLAUDE.md at repo root contains exactly the single line
AGENTS.md(a pointer/symlink-style redirect).# Fluent UI — Agent Instructions **Instructions in this file are the source of truth, not existing code.** This repo contains legacy patterns (especially in v8 packages) that predate current standards. Never copy patterns from existing code without verifying they match these instructions. ## Critical Rules (never violate) 1. **Never hardcode colors, spacing, or typography values.** Always use design tokens from `@fluentui/react-theme`. See [docs/architecture/design-tokens.md](docs/architecture/design-tokens.md). 2. **Never use `React.FC`.** Always use `ForwardRefComponent` with `React.forwardRef`. 3. **Never access `window`, `document`, or `navigator` directly.** In v9 components, use `useFluent_unstable()` to get `targetDocument` and `targetDocument.defaultView` instead of `document`/`window`. For non-component code, use `canUseDOM()` from `@fluentui/react-utilities`. 4. **Never add dependencies between component packages.** `react-button` must not depend on `react-menu`. Shared logic goes in `react-utilities` or `react-shared-contexts`. See [docs/architecture/layers.md](docs/architecture/layers.md). 5. **Never skip beachball change files** for published package changes. Run `yarn beachball change`.CLAUDE.md is a one-line redirect to AGENTS.md, so Claude Code and generic agents get identical rules.
Agent skill.agents/skills/ and .claude/skills/ — nine executable skillsofficialbuilders
Nine skill directories, duplicated under both
.agents/skills/(portable) and.claude/skills/(Claude Code): change, dependabot-rollup (.agents only), lint-check, package-info, review-pr, token-lookup, triage-issues, v9-component, visual-test. Each SKILL.md has YAML frontmatter withname,description,argument-hint,allowed-tools, and several setdisable-model-invocation: trueso they only run when a human explicitly types the slash command. AGENTS.md advertises them in a table as slash commands (/v9-component Name,/token-lookup val,/lint-check [pkg],/visual-test Name,/review-pr #123,/triage-issues,/dependabot-rollup).--- name: v9-component description: Scaffold a new v9 component with all required files following Fluent UI patterns (hook, styles, render, types, tests, stories, conformance) disable-model-invocation: true argument-hint: <ComponentName> allowed-tools: Read Write Bash Glob Grep --- # Scaffold a V9 Component Create a new v9 component named **$ARGUMENTS** using the repo's Nx generators. ## Steps ### Adding a component to an existing package Use the `react-component` generator: ```bash yarn nx g @fluentui/workspace-plugin:react-component --name $ARGUMENTS --project <project-name> ```Note the deliberate refusal to let the model free-hand a component: the skill forces the Nx generator (
@fluentui/workspace-plugin:react-component) rather than describing files to write.Copilot instructions.github/instructions/copilot.instructions.mdofficialbuilders
Path-scoped Copilot instruction file with frontmatter
applyTo: '**'. Establishes repo topology (Nx, Yarn 4.x, Node ^22, TypeScript strict), then ranks the four product lines with explicit routing verdicts (v9 ‘PRIORITIZE FOR NEW WORK’, v8 ‘MAINTENANCE ONLY’) and enumerates the exact Nx commands agents must use instead of raw tooling. A second file, dependabot-security-fixes.instructions.md, scopes dependency-security work.--- applyTo: '**' --- # Fluent UI Copilot Instructions You are working in the Microsoft Fluent UI monorepo, a comprehensive design system and UI component library for web applications. ## Project Structure 1. **Fluent UI v9** (`@fluentui/react-components`) - **PRIORITIZE FOR NEW WORK** - Location: `packages/react-components/` - Nx Project Tags: `vNext` 2. **Fluent UI v8** (`@fluentui/react`) - **MAINTENANCE ONLY** - Location: `packages/react/` - Nx Project Tags: `v8` - Status: Maintenance modeOthercopilot-setup-steps.yml — Copilot coding agent environment provisioningofficialbuilders
A GitHub Actions workflow whose job is named
copilot-setup-stepsspecifically so the GitHub Copilot coding agent picks it up and pre-installs the toolchain (checkout with full history, Node 22 with yarn cache,yarn install --immutable) before the agent starts work. This is infrastructure investment in autonomous agent PRs, not just prompt text.name: 'Copilot Setup Steps' on: workflow_dispatch jobs: # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot. copilot-setup-steps: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout code uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up Node.js uses: actions/setup-node@v6 with: cache: 'yarn' node-version: '22' - run: yarn install --immutableMCP serverMicrosoft.FluentUI.AspNetCore.McpServer (Fluent UI Blazor)officialconsumers
The only OFFICIAL Microsoft MCP server for any Fluent UI flavor. Lives at src/Tools/McpServer on the
dev-v5branch of microsoft/fluentui-blazor and ships to NuGet as a global dotnet tool (dotnet tool install -g Microsoft.FluentUI.AspNetCore.McpServer, binaryfluentui-mcp, 5.0.0-rc.1, MIT). Serves docs for 142+ Blazor components. Tools: ListComponents, SearchComponents, GetComponentDetails, GetEnumValues, GetComponentEnums. The source tree also contains aPrompts/andResources/directory, i.e. it exposes MCP prompts, not only tools. Does NOT cover Fluent UI React.# Fluent UI Blazor MCP Server A Model Context Protocol (MCP) server that provides documentation for the [Fluent UI Blazor](https://github.com/microsoft/fluentui-blazor) component library. ## Overview This MCP server enables AI assistants to access comprehensive documentation about Fluent UI Blazor components, including: - **Component listing** - Browse all 142+ available components with descriptions - **Component details** - Get complete documentation including parameters, events, and methods - **Search** - Find components by name or description - **Enum information** - Explore enum types and their values ## Installation ### Option 1: Install as dotnet tool based on NuGet.org (Recommended) ```bash dotnet tool install -g Microsoft.FluentUI.AspNetCore.McpServer ``` **For Visual Studio Code** (`.vscode/mcp.json`): ```json { "servers": { "fluent-ui-blazor": { "command": "fluentui-mcp" } } } ```Release-candidate status as of 5.0.0-rc.1 (Feb 2026). Not present on the
main/devbranches; v5 line only.MCP serverInternal Microsoft Fluent UI React MCP (unreleased)officialconsumers
In GitHub Discussion #35732 (June 2026), Fluent UI maintainer @mainframev responded to a community MCP server announcement by disclosing that Microsoft already operates an MCP for Fluent UI React ‘being used internally across Microsoft products,’ built on current documentation plus additional sources. No public release timeline was given. Recorded here because it is the reason the public React surface has no official MCP. This is a deliberate internal-first posture, not an absence of work.
UNRELEASED / not publicly installable. Verify before citing as available.
MCP serverfluentui-mcp (community, blendsdk)communityconsumers
Community npm MCP server for Fluent UI React, announced in microsoft/fluentui Discussion #35732. Scans Fluent UI source to extract docs, type information, examples and patterns for AI consumption; built explicitly to stop models producing ‘inconsistent, incomplete, or just plain wrong’ Fluent UI code. npm
fluentui-mcp1.2.1, last published 2026-06-03.MCP serverOther community Fluent UI MCP serverscommunityconsumers
A fragmented long tail: aminvishvam/fluentui-mcp-server (12 tools across 4 categories: custom hooks, style generation, TypeScript interfaces, accessibility compliance checking) and npm
mcp-fluent-ui1.0.2 (last published 2025-09-05, likely abandoned). Listed on aggregators such as LobeHub and mcpmarket. None are endorsed by Microsoft.Quality unverified; mcp-fluent-ui is ~11 months stale.
Coercion techniques · 8
How this system keeps models on-system instead of inventing components.
Prohibition“Source of truth, not existing code” — overriding the repo itself
The single most transferable trick in the file. Fluent UI’s monorepo is 74+ v9 packages sitting next to a large v8 legacy tree, so RAG-over-the-repo and pattern-matching from neighbours actively produce wrong output. AGENTS.md pre-empts that by ranking the instruction file ABOVE the codebase, then names the contaminated directories explicitly so the agent can’t rationalize its way back in.
**Instructions in this file are the source of truth, not existing code.** This repo contains legacy patterns (especially in v8 packages) that predate current standards. Never copy patterns from existing code without verifying they match these instructions. ## Legacy Anti-Patterns (never copy these) - **DO NOT copy patterns from `packages/react/` (v8).** That's maintenance-only legacy code using runtime styling, class components, and different APIs. - **DO NOT use `@fluentui/react` imports for new v9 work.** Use `@fluentui/react-components`. - **DO NOT use `mergeStyles` or `mergeStyleSets`.** Use Griffel `makeStyles` with design tokens. - **DO NOT use `IStyle` or `IStyleFunctionOrObject`.** Use Griffel's `GriffelStyle` type. - **DO NOT use `initializeIcons()`.** V9 uses `@fluentui/react-icons` with tree-shaking.Token enforcementNumbered “Critical Rules (never violate)” with token enforcement at #1
Five hard prohibitions, each phrased as ‘Never X. Always Y.’ plus a link to the deep-dive doc. Rule 1 is the classic design-system coercion: no hardcoded colors, spacing or typography, always
tokensfrom@fluentui/react-theme. Rule 4 encodes the package-layering invariant (‘react-button must not depend on react-menu’) that agents routinely violate. Rule 5 forces a release-process side effect (yarn beachball change) the model would otherwise skip.1. **Never hardcode colors, spacing, or typography values.** Always use design tokens from `@fluentui/react-theme`. 2. **Never use `React.FC`.** Always use `ForwardRefComponent` with `React.forwardRef`. 3. **Never access `window`, `document`, or `navigator` directly.** In v9 components, use `useFluent_unstable()` to get `targetDocument` and `targetDocument.defaultView` instead of `document`/`window`. 4. **Never add dependencies between component packages.** `react-button` must not depend on `react-menu`. 5. **Never skip beachball change files** for published package changes. Run `yarn beachball change`.Validation loopLint-rule → fix-recipe table, with re-run verification per file
The
/lint-checkskill turns the repo’s custom@fluentui/*ESLint rules into a machine-readable remediation table (rule name → what it catches → how to fix), then mandates a per-file verify step: apply the fix, re-run lint on that file, repeat. This is the enforcement arm behind AGENTS.md’s prohibitions: the prose bansReact.FC, and@fluentui/no-global-reactmakes it fail CI, and the skill teaches the agent how to close the loop.2. **Parse the output** and categorize errors by the custom Fluent UI ESLint rules: | Rule | What it catches | How to fix | | `@fluentui/ban-context-export` | Context exported from wrong layer | Move to `react-shared-contexts` package | | `@fluentui/ban-instanceof-html-element` | `instanceof HTMLElement` (breaks iframes) | Use element.tagName or feature detection | | `@fluentui/no-global-react` | `React.FC`, `React.useState` etc. | Use named imports: `import { useState } from 'react'` | | `@fluentui/no-restricted-imports` | Banned import paths | Use the allowed import path from the error message | | `@fluentui/no-context-default-value` | Context created without `undefined` default | Use `createContext(undefined)` and add a guard hook | 3. **Auto-fix** any issues found by editing the source files directly. For each fix: - Read the file - Apply the fix - Verify the fix by re-running lint on that specific fileScaffoldingForcing the generator instead of free-hand scaffolding
/v9-componentnever tells the model which files to create. It routes every path through the repo’s own Nx generators (yarn nx g @fluentui/workspace-plugin:react-component,yarn create-package) and then hands the agent a post-generation checklist (fill in logic per component-patterns.md, add token-based styles, regenerate API docs viayarn nx run <project>:generate-api). The generator is the spec; the agent is only allowed to fill the holes.Use the `react-component` generator: ```bash yarn nx g @fluentui/workspace-plugin:react-component --name $ARGUMENTS --project <project-name> ``` Where `<project-name>` is the Nx project (e.g., `react-button`). This generates all required files: component, types, hook, styles, render, index barrel, and conformance test. ### After scaffolding 1. **Review generated files** against [docs/architecture/component-patterns.md]... 2. **Add styles** in `use${ARGUMENTS}Styles.styles.ts` using design tokens 4. **Update API docs** after adding exports: ```bash yarn nx run <project>:generate-api ``` ## Critical Rules - Always use `ForwardRefComponent` with `React.forwardRef` — never `React.FC`Curated contextToken lookup as a search procedure + few-shot mapping table
/token-lookup <css-value>gives the model a value-category decision tree (hex → color tokens, px → spacing/font-size/radius, ms → duration), points it at the exact theme source path to grep (packages/react-components/react-theme/library/src/), constrains it toallowed-tools: Read Grep Glob(read-only, so it cannot ‘fix’ anything, only advise), and seeds a few-shot table of common hardcoded→token mappings. Crucially it also handles the failure mode: if no exact match, suggest the closest semantic token AND explain the difference.--- name: token-lookup description: Find the matching Fluent UI design token for a hardcoded CSS value (color, spacing, font size, border radius, shadow) argument-hint: <css-value> allowed-tools: Read Grep Glob --- 2. **Search the theme source** for matching values: ``` packages/react-components/react-theme/library/src/ ``` 4. **If no exact match exists**, suggest the closest semantic token and explain the difference. ## Common Mappings | Hardcoded | Token | | `#0078d4` | `tokens.colorBrandBackground` | | `#323130` | `tokens.colorNeutralForeground1` | | `#ffffff` | `tokens.colorNeutralBackground1` |Validation loopVisual verification loop: per-component Storybook + Playwright screenshot
/visual-testcloses the see-what-you-built loop. It pins an exact tool version (npx -y @playwright/cli@0.1.1) so nothing is installed globally, and hard-constrains the agent to boot only the per-component stories package via the nxstorybooktarget, because the full Storybook would drag in 74 packages. It even encodes a temporal caveat about workspace snapshots older than April 2026, and an explicit stop-and-ask branch when the stories package doesn’t exist.## Critical: use the per-component Storybook only Always boot the **per-component stories package** (`react-<component>-stories`) via nx `storybook` target, which only imports its own component's stories and dependencies. 1. **Find the component's stories package.** ```bash yarn nx show project react-<lowercase-component-name>-stories --json ``` If nx returns nothing with output of `Could not find project react-<component>-stories`, the component doesn't have its own stories package — check for a preview package (`react-<component>-preview-stories`) or ask before proceeding. 2. **Start the component's Storybook dev server.** Use the `storybook` target on the stories project directly — it's the most portable, since library aliases like `react-<component>:start` were only added in April 2026 and may not exist in older workspace snapshotsTool-gatingRecommend-then-apply gating on mutating skills
Every skill that can change shared state is gated twice: YAML
disable-model-invocation: true(a human must type the slash command; the model cannot autonomously decide to run it) plus an in-prose approval checkpoint./triage-issuesnames the mode outright and justifies it with an asymmetric-cost argument;/dependabot-rollupenumerates the exact forbidden mutations and refuses to guess at invalid arguments, hard-caps the batch at 11, and requires a temporary git worktree so unrelated local changes survive.This skill operates in **recommend-then-apply** mode: never mutate issues until the user has approved the batch. A wrong label is cheap to add and annoying to remove, so lean on the approval step. --- and, from dependabot-rollup/SKILL.md --- The default operation is read-only: discover candidates, classify them, and present a plan. Never create a branch, merge commits, push, close pull requests, or open a rollup PR until the user explicitly approves the proposed candidates. Reject an invalid repository name, a `--max` value that is not an integer from 1 through 11, an unknown Git remote, or unknown arguments instead of guessing. The value 11 is an absolute ceiling, not only the default. Do not require a clean current working tree. Approved rollups must use a temporary Git worktree so unrelated local changes remain untouched.Registry metadataPR-type classification table that scopes which rules apply
/review-prrefuses to run a uniform checklist. It first classifies the PR from changed-file globs and branch prefixes into six types, each with an explicit check scope, then suppresses rule families by directory: v9 pattern checks are skipped forpackages/react/(v8 maintenance) and React checks skipped forpackages/web-components/. This prevents the review agent from generating the false positives that would otherwise train maintainers to ignore it. Output is a merge-readiness confidence score.## Phase 2: Classify PR Type | Type | Detection | Check scope | | **docs-only** | All files are `*.md`, `docs/**`, `**/stories/**`, `**/.storybook/**` | Change file only | | **test-only** | All files are `*.test.*`, `*.spec.*`, `**/testing/**` | Change file + test quality | | **bug-fix** | Branch starts with `fix/` or title contains "fix" | All checks, extra weight on tests | | **feature** | Branch starts with `feat/` or adds new exports | All checks, extra weight on API + patterns | | **refactor** | No new exports, restructures existing code | All checks, extra weight on no behavior change | | **config/infra** | Changes to CI, configs, scripts only | Change file + no regressions | For **v8 packages** (`packages/react/`): skip V9 pattern checks — those are maintenance-only with different patterns. For **web-components** (`packages/web-components/`): skip React-specific checks.
Platform integrations
Figma
Official Fluent 2 UI kits published on Figma Community (Microsoft Fluent 2 Web, Fluent 2 iOS, Fluent Android, Fluent system iconography). The Web kit was refactored so components use Figma variables aligned to code tokens, and Microsoft has described an internal Figma plug-in that replaces the native properties panel so designers assign tokens rather than raw colors/stroke-widths. this study found NO evidence of Figma Code Connect (*.figma.tsx files) in microsoft/fluentui, and no Dev Mode MCP guidance in the docs; treat Code Connect as unconfirmed or absent.
Storybook
Storybook is the primary dev/docs surface: per-component stories packages (react-<component>-stories) each with their own nx storybook target, a root .storybook/, plus StoryWright-driven visual regression testing wired into pr-vrt.yml / vrt-baseline.yml workflows. The /visual-test agent skill drives these per-component Storybooks with Playwright to give agents a screenshot feedback loop.
Other
Nx workspace with custom plugins (tools/workspace-plugin/) providing the react-component and react-library generators; API Extractor generates api.md files as machine-readable API surface; Beachball manages change files and releases. The root AGENTS.md carries an Nx-managed auto-updated block instructing agents to use nx_workspace, nx_project_details and nx_docs MCP tools, so Fluent UI inherits the Nx MCP server as a builder-side affordance.
Gaps & open questions
Not confirmed, or not found: (1) No llms.txt or llms-full.txt anywhere. fluent2.microsoft.design returns HTTP 200 with an identical Astro SPA shell for /llms.txt, /llms-full.txt, /ai, /docs/mcp, /mcp AND for a nonsense control path: a catch-all router, not real files. react.fluentui.dev/llms.txt is a hard 404. Anyone scanning by status code will produce a false positive here. (2) No official Fluent UI React MCP server exists publicly; the maintainer statement about an internal one (Discussion #35732, June 2026) is a claim in a GitHub comment, with no artifact, no timeline, and no way to verify scope. (3) No Figma Code Connect found: GitHub code search for *.figma.tsx in the repo returned 404/not-found for my token’s search scope, so it was not possible to exhaustively prove absence; no positive evidence in the repo tree or docs either. Treat as ‘no evidence of’, not ‘definitively absent’. (4) this study did not read every one of the nine SKILL.md files end-to-end (change, package-info, and the tails of review-pr/triage-issues/dependabot-rollup were sampled from their heads only), so additional coercion language likely exists beyond what is quoted here. (5) No AI-assisted codemod evidence: packages/codemods exists but this study did not confirm any AI/LLM involvement. It appears to be conventional jscodeshift-style tooling, and the v8→v9 migration guidance is documentation, not an agent. (6) .github/instructions/dependabot-security-fixes.instructions.md was confirmed to exist but not read. (7) The Blazor MCP server is 5.0.0-rc.1 on a non-default branch (dev-v5); it is official but pre-release, and its tool list came partly from a maintainer’s blog post rather than the source. (8) GitHub release tags are batched oddly (latest tags dated 2026-05-26 while npm latest for @fluentui/react-components is 9.74.4 published 2026-07-15). npm is the reliable freshness signal, not GitHub Releases. (9) Community MCP server quality is entirely unassessed; mcp-fluent-ui on npm is ~11 months stale and may be abandoned.
Sources
- raw.githubusercontent.com/microsoft/fluentui/master/AGENTS.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/CLAUDE.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.github/instructions/copilot.instructions.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.github/workflows/copilot-setup-steps.yml (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/v9-component/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/token-lookup/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/lint-check/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/review-pr/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/visual-test/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/triage-issues/SKILL.md (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui/master/.agents/skills/dependabot-rollup/SKILL.md (opens in new tab)
- github.com/microsoft/fluentui/discussions/35732 (opens in new tab)
- raw.githubusercontent.com/microsoft/fluentui-blazor/dev-v5/src/Tools/McpServer/README.md (opens in new tab)
- dvoituron.com/2026/02/20/fluentui-blazor-mcp-server/ (opens in new tab)
- fluent2.microsoft.design/get-started/develop (opens in new tab)