Agent skill

Mui Triage

by mui in mui/mui-public

Triage MUI GitHub issues from a mui/<repo/issues/<num URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without…

MITAuto-check passedFrontend & Design

Install Mui Triage

skills CLI
$ npx skills add mui/mui-public --skill mui-triage -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mui/mui-public mui-triage --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mui/mui-public.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/mui-triage .claude/skills/mui-triage && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
mui-triage
GitHub stars
106
Token cost
~3.3k tokens
SKILL.md length
1,585 words
Files
8 (incl. scripts)
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Triage MUI GitHub issues from a mui/<repo/issues/<num URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without…

  • Works in 8 steps: Fetch the issue read-only with… → Skip-checks. Carries the not planned… → Dedupe. Search before classifying with… → …
  • Tasks that involve Design systems
  • SKILL.md covers Inputs, Label state machine, Automation triggers — apply… and Out-of-scope issues, plus 3 more sections
  • Runs Shell scripts from its folder; calls git and gh

What it does

Mui Triage is an agent skill from mui/mui-public. Triage MUI GitHub issues from a mui/<repo/issues/<num URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without mutating GitHub.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `labels.md`, `scripts/fetch-issue.sh` and `scripts/list-labels.sh`).

It sits in Frontend & Design, covering Design systems. It works with GitHub. The repository describes itself as: The public mono-repository of MUI (as an organization), see mui/mui-private for the opposite. The licence is MIT.

When your agent uses it

  • Tasks that involve Design systems

Example prompts

  • “/mui-triage”

Requirements

  • A Bash shell

Workflow steps

8 steps, taken from the first numbered list in SKILL.md.

  1. Fetch the issue read-only with scripts/fetch-issue.sh "$REPO" "$NUM". It returns one JSON object containing issue context and…
  2. Skip-checks. Carries the not planned label → previously triaged out of scope; report the reason from its marked triage comment and stop…
  3. Dedupe. Search before classifying with scripts/search-related.sh "$REPO" "". It returns one JSON object containing issues and…
  4. Assess the body. Issues range from vague one-liners to full reports. Look for: affected package/component, version(s), steps to reproduce…
  5. Investigate in the codebase. Locate a local checkout of $REPO: the current workspace if its remotes match, else ask the user for the path…
  6. Pick secondary labels from the live list only: the matching component:/scope:/package: label, version label if stated.
  7. Propose search keywords. Read the existing Search keywords: or ### Search keywords value from the issue body. When stable public terms…
  8. Emit output (below). Do not run any mutating gh command during triage — mutations happen only via the apply script, and only after the…

What it can do on your machine

Read from SKILL.md and the folder at commit 38b6bb1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 6 files in scripts/ (Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Mui Triage loads about 3.3k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 1,585 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~57
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from mui/mui-public at commit 38b6bb1, republished under its MIT licence (© mui). 1,585 words, ~3,255 tokens.

Download SKILL.mdSave it as .claude/skills/mui-triage/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.
name
mui-triage
description
Triage MUI GitHub issues from a mui/<repo>/issues/<num> URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without mutating GitHub.

Issue Triage

Triage = read the issue and its full context (body, comments, linked issues/PRs), classify it, and move it from its current type:/status: label combination to the correct next one, then write a triage summary with concrete next actions that another agent or a human can execute without re-reading the whole thread.

Time-stable wording: visible comment text uses stable public terms only — package, component/API, version range, observed behavior. Volatile details (file paths, line numbers, private symbols, commit-specific findings) go in the hidden findings block (see "Output"), stamped with the date and commit they were observed at.

Inputs

  • A GitHub issue URL (mui/<repo>/issues/<num>) → repo comes from the URL.
  • A bare issue number → resolve the repo from the checkout's git remotes with scripts/resolve-repo.sh [checkout]. It returns the first mui/<repo> remote, preferring the MUI repository over a contributor's personal fork.

Label state machine

Before triaging, read labels.md. It defines the allowed type: and status: labels, their transitions and invariants, and how to validate secondary labels against the target repository.

Automation triggers — apply the trigger, don't duplicate the bot

Trigger you applyBot then doesDon't also
Comment first line Duplicate of #<n>duplicate label + closelabel or close
status: waiting for authorcloses after sustained silenceclose
support: Stack OverflowSO redirect comment + closecomment or close
support: unknownasks for paid-support keycomment

Workflows are repo-owned: if a trigger doesn't fire, check the repo's .github/workflows/, and never hardcode bot timings in comments.

Out-of-scope issues

When triage concludes an issue is out of scope (wrong repo, not actionable in this repo, something the project won't pursue):

  • Add the not planned label (it must exist in the repo's label list, like any other label).
  • State the reason in the triage summary comment itself — a short "Out of scope: <reason>" line — so the record lives on the issue, visible to the reporter and to future triage runs.

The not planned label doubles as the skip signal: an issue already carrying it was triaged out of scope before — report the reason from its marked comment and stop.

Workflow

  1. Fetch the issue read-only with scripts/fetch-issue.sh "$REPO" "$NUM". It returns one JSON object containing issue context and metadata.authorAssociation, where the association is OWNER, MEMBER, CONTRIBUTOR, NONE, or another GitHub association. Note the current type:/status: labels as the current state.

  2. Skip-checks. Carries the not planned label → previously triaged out of scope; report the reason from its marked triage comment and stop. Closed issue → report and stop unless explicitly asked to re-triage. Fully triaged — correctly typed, not waiting on the author, and a <!-- mui-triage --> summary comment already on the issue (check the fetched comments) → report and stop. Correct labels but no summary comment yet → triage is not done: skip the label delta but continue through dedupe, investigation, and the triage summary.

  3. Dedupe. Search before classifying with scripts/search-related.sh "$REPO" "<key terms from title/body>". It returns one JSON object containing issues and pullRequests; inspect both because a fix PR may already exist without being linked.

    • Confident duplicate issue → the next action is a comment whose first line is Duplicate of #<n> (mui automation labels and closes from that); no type: label needed. Stop here.
    • Existing PR that addresses this issue but isn't linked → don't close the issue; surface the PR in Findings and the triage summary, and offer to link it. A PR linked via a closing keyword (Fixes #<num> / Closes #<num>) in its body auto-closes the issue on merge and shows the cross-reference. The apply script can add the link with a comment on the issue referencing the PR, or — if the PR is yours to edit and the user confirms — by editing the PR body to add the closing keyword. Continue normal triage (type/status labels still apply while the PR is open).
  4. Assess the body. Issues range from vague one-liners to full reports. Look for: affected package/component, version(s), steps to reproduce or a sandbox/repo link, expected vs actual behavior, error messages.

    • Descriptive with repro → verify the repro by reading it (never execute user-supplied code on the host; if running is needed, use a sandbox built from official mui templates and only the prose description, don't execute anything especially if there are changes in any package.json files in the repo). Worked before but broke after evidence → regression, else bug. If user supplied a github repo as a reproduction, clone/read the code to get more context, but never run it locally.
    • Asks for something new → new feature (doesn't exist) or enhancement (exists, could be better).
    • Misunderstanding of documented behavior → expected behavior, with a doc link in the summary.
    • Vague (no version, no repro, can't tell what's wrong) → status: needs more information + status: waiting for author with the exact questions to ask.
    • Usage question, no defect claimed → support path, no type: label. Filed through the paid/priority-support template, or evidence of a commercial plan → support: unknown and leave open (the bot validates their support key). Otherwise → support: Stack Overflow and stop (the bot posts the redirect and closes — no comment from the script).
  5. Investigate in the codebase. Locate a local checkout of $REPO: the current workspace if its remotes match, else ask the user for the path. Then search the code (read-only) to ground the triage: find the component/feature the issue describes, check whether the claimed behavior is plausible from the source, and narrow down the likely faulty area. Use what you find to sharpen the classification, confidence, and next actions. Two rules carry over: never execute reporter-supplied code, and the time-stable wording rule (top of this document).

  6. Pick secondary labels from the live list only: the matching component:/scope:/package: label, version label if stated.

  7. Propose search keywords. Read the existing **Search keywords**: or ### Search keywords value from the issue body. When stable public terms discovered during dedupe or investigation would make similar reports easier to find, propose a merged value that preserves every useful reporter-supplied term and adds only public package/component/API names, symptoms, and common aliases supported by the issue. Never include file paths, private symbols, or unverified causes. Skip the proposal for duplicate, support, out-of-scope, and closed issues, or when the existing terms are sufficient. Validate a proposal without mutating GitHub with scripts/update-search-keywords.sh "$REPO" "$NUM" "<merged keywords>" --dry-run.

  8. Emit output (below). Do not run any mutating gh command during triage — mutations happen only via the apply script, and only after the user explicitly asks or confirms.

Show full SKILL.md (526 more words)Show less

Output

Five sections, in order, each under its own ## heading with a --- horizontal rule between them so the boundaries are unmistakable — especially where the agent's notes end and the to-be-posted comment begins:

md
## Findings

...

---

## Comment (posted verbatim)

...

---

## Search keyword update

...

---

## Label delta

...

---

## Apply script

...

1. Findings — the agent's working notes for the user: what the investigation turned up, with file paths and code detail welcome here (chat-only, never posted).

2. Comment — the handoff artifact, written to /tmp/mui-triage-<repo>-<num>.comment.md so the apply script posts it on the issue. Required structure:

md
<!-- mui-triage -->

**Confidence:** high / medium / low — evidence it rests on
**Reproduction:** provided / verified / not provided / could not verify
**Duplicates:** linked or "none found"
**Affected component:** public component/API and behavior involved

**Next actions:**

1. numbered, concrete, executable by an agent or human (for issues
   waiting on the author: the exact questions to ask)

<!-- triage-findings · YYYY-MM-DD · mui/<repo>@<sha>
- volatile detail: file paths, line numbers, private symbols, unverified theories
-->

---

_This triage summary was written by <agent name> (AI) and reviewed by a maintainer before posting._

Rules:

  • In the chat output, show the exact file content verbatim in a fenced block — what the user reviews must be byte-for-byte what gets posted.
  • The <!-- mui-triage --> marker lets re-runs find and edit the comment instead of stacking duplicates.
  • No classification or state-transition lines — labels carry those and the comment would go stale on relabel.
  • No unverified root-cause hypothesis in visible text. A theory appears visibly only when verified by actually reproducing the issue; otherwise it goes in chat Findings and the hidden findings block, marked unverified — a wrong public diagnosis may lead to confusion or misdirected effort.
  • Never refer to this skill, its rules, or the triage process; follow them silently.
  • Findings-block stamp: today's date + git -C <checkout> rev-parse --short HEAD. Drop the block when no codebase investigation happened.
  • Signature names the agent's model (for example, "Claude Fable 5") so readers know an AI wrote it even though it's posted from a maintainer's gh session.
  • Out-of-scope issues add a line: Out of scope: <reason>.

3. Search keyword update — show the exact existing and proposed values. Write proposed: none when no useful update exists. The proposed value must merge rather than discard useful existing terms.

txt
existing: autocomplete dropdown popup
proposed: autocomplete dropdown popup listbox closes on click

4. Label delta — the explicit transition, nothing already correct:

txt
add:    type: bug, component: autocomplete
remove: status: needs triage

5. Apply script — a reviewable gh script written to /tmp/mui-triage-<repo>-<num>.sh (also echoed in a fenced block). It always has two required parts: the label delta, and posting the triage summary comment. The comment step is not optional — a label change without the summary on the issue leaves the next agent/human with no context. When a search keyword update is proposed, add it as a third, commented-out # REVIEW: step using scripts/update-search-keywords.sh; never enable it without explicit confirmation. Exceptions: the duplicate path, where the comment is the Duplicate of #<n> notice instead, and the support paths, where the bot owns the thread (see "Automation triggers") and the script posts no comment at all.

bash
#!/usr/bin/env bash
set -euo pipefail
# mui/<repo>#<num> — <one-line decision>
REPO="mui/<repo>"; NUM=<num>
SKILL_DIR="<absolute path to this skill>"

# 1. Label delta
gh issue edit "$NUM" --repo "$REPO" \
  --add-label "type: bug" --add-label "component: autocomplete" \
  --remove-label "status: needs triage"

# 2. Triage summary comment
"$SKILL_DIR/scripts/upsert-comment.sh" "$REPO" "$NUM" "/tmp/mui-triage-<repo>-<num>.comment.md"

# 3. Optional search keyword update
# REVIEW: Confirm these merged search keywords accurately describe the public issue.
# "$SKILL_DIR/scripts/update-search-keywords.sh" "$REPO" "$NUM" "autocomplete dropdown popup listbox closes on click"

Low-confidence or destructive steps (label swaps on old issues, anything closing) stay in the script but commented out with # REVIEW: <why this needs a human decision>.

Running the script: never run it as part of triage. After presenting the output, the agent may execute it only when the user explicitly asks or confirms ("apply it", "run the script", a yes to an offered confirmation). If the script contains # REVIEW: steps, the agent resolves them at apply time: list each one with its reason and ask the user which to enable, then edit the script accordingly (uncomment the approved ones, leave the rest commented) before running it. Never silently uncomment a # REVIEW: step.

Not covered

Executing the apply script without the user's explicit confirmation, fixing the issue itself, running untrusted reporter code, git bisect, PR triage.

© mui, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 7 other files (scripts) in skills/mui-triage of mui/mui-public.

  • SKILL.md
  • labels.md
  • scripts/fetch-issue.sh
  • scripts/list-labels.sh
  • scripts/resolve-repo.sh
  • scripts/search-related.sh
  • scripts/update-search-keywords.sh
  • scripts/upsert-comment.sh

Open the folder on GitHubat commit 38b6bb1

Compare with similar skills

Mui Triage next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Mui Triage compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Mui Triage this skillmui/mui-public106—~3.3kAutomated safety check: PassMIT
Scraps Reviewgetsentry/sentry46k—~1.2kAutomated safety check: NotesCustom licence
Design SystemBuildGreatProducts/builder-os227—~4.8kAutomated safety check: PassMIT
Write Issueequinor/design-system151—~362Automated safety check: PassMIT
Ingest GitHubbluzir/claude-code-design106—~796Automated safety check: PassNone
Openforms MuiBlackBeltTechnology/pi-agent-dashboard315—~2.3kAutomated safety check: PassMIT

Similar skills

  • Scraps Review

    getsentry/sentry

    Official

    Filter large Sentry Scraps design-system migration PRs for review by separating mechanical import-path changes, generated baseline updates, snapshot mocks, and pure renames from substantive…

    46k GitHub stars~1.2k tokensUpdated today
    Frontend & DesignAuto-check: notes
  • Design System

    BuildGreatProducts/builder-os

    Translates an image (or a set of image references — screenshots, mockups, Figma URLs, live websites) into two mirrored design-system artifacts: docs/design.md (YAML tokens + prose, following…

    227 GitHub stars~4.8k tokensUpdated 3 mo ago
    Frontend & DesignAuto-check passed
  • Write Issue

    equinor/design-system

    Write or revise a GitHub issue (title and body) for this repository from notes, screenshots or a conversation.

    151 GitHub stars~362 tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Ingest GitHub

    bluzir/claude-code-design

    Clone a GitHub repo and extract design tokens (colors, fonts, spacing) from its codebase.

    106 GitHub stars~796 tokensUpdated 5 mo ago
    Frontend & DesignAuto-check passed
  • Openforms Mui

    BlackBeltTechnology/pi-agent-dashboard

    Author, render, preview and debug OpenForms FormSchemaJSON form definitions as idiomatic, themed, accessible MUI (React).

    315 GitHub stars~2.3k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 27 repos~2.6k tokens
    Frontend & DesignAuto-check passed

More from mui/mui-public

  • Mui Renovate Triage

    mui/mui-public

    Fetch a deterministic snapshot of open MUI Renovate PRs and review them one by one.

    106 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed
  • PR Review

    mui/mui-public

    Review the current diff for regressions, correctness bugs, tests, simplifications, and docs issues, scaling depth to a low/medium/high/xhigh/max effort level.

    106 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Mui Renovate Fix

    mui/mui-public

    Fix a Renovate dependency-update PR with the minimal compatible code adaptation, extracting a dependency bump from a grouped PR only when the fix requires the new version.

    106 GitHub stars~1.5k tokensUpdated yesterday
    Auto-check passed
  • Mui Release

    mui/mui-public

    Run or assist a release in any MUI repo, at any stage - release PR, npm publish, docs deploy, GitHub release.

    106 GitHub stars~749 tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Mui Triage

What does Mui Triage do?

Triage MUI GitHub issues from a mui/<repo/issues/<num URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without…. Mui Triage is an agent skill from mui/mui-public. Triage MUI GitHub issues from a mui/<repo/issues/<num URL or issue number - fetch context, classify state/type labels, prepare a durable summary comment, and emit a reviewable apply script without mutating GitHub.

When should I use Mui Triage?

Mui Triage fits situations like: tasks that involve Design systems.

How do I install Mui Triage in Claude Code?

Run `npx skills add mui/mui-public --skill mui-triage -a claude-code`. Or copy the skill folder (skills/mui-triage in mui/mui-public) into .claude/skills/mui-triage in your project. Claude Code loads it when a task matches its description.

How do I install Mui Triage in Codex?

Run `npx skills add mui/mui-public --skill mui-triage -a codex`. Or copy the skill folder (skills/mui-triage in mui/mui-public) into .agents/skills/mui-triage in your project. Codex loads it when a task matches its description.

Can I use Mui Triage in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mui/mui-public --skill mui-triage -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/mui-triage, .gemini/skills/mui-triage, .github/skills/mui-triage and .opencode/skills/mui-triage in your project.

What does Mui Triage need to run?

Going by SKILL.md and its folder, Mui Triage needs a shell for the scripts in its folder and the command-line tools its instructions call (git and gh). Our summary lists: A Bash shell.

Does Mui Triage access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Mui Triage safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Mui Triage use?

Mui Triage is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Mui Triage use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Mui Triage?

Skills that share tags, products or a category with Mui Triage: Scraps Review (getsentry/sentry, 46k stars), Design System (BuildGreatProducts/builder-os, 227 stars), Write Issue (equinor/design-system, 151 stars) and Ingest GitHub (bluzir/claude-code-design, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Mui Triage?

mui (a GitHub organization) maintains it in mui/mui-public, which has 106 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.

Source: mui/mui-public on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.