Skip to content
Back to skills

MxHelp

ASecurity

Use when the user says "/mxHelp", "/mxHelp <name>", or asks which mx-skill does what. Lists all installed mx*-skills grouped by category, or explains one skill in detail. Pure reader — no side effects.

  • 30 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
ai-agentsgobashgit

Works with

  • mcp

Security analysis

A100/100

Scanned September 25, 2026

npx -y skills add MicrotronX/mxLore --skill mxHelp --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of MxHelp?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for MxHelp
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/microtronx-mxhelp/badge)](https://www.skillsdirectory.com/skills/microtronx-mxhelp)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: mxHelp
description: Use when the user says "/mxHelp", "/mxHelp <name>", or asks which mx-skill does what. Lists all installed mx*-skills grouped by category, or explains one skill in detail. Pure reader — no side effects.
allowed-tools: Glob, Grep, Read
---

# /mxHelp — mx-Skill Discoverability (AI-Steno: !=forbidden →=use ⚡=critical)

> Thin renderer over existing SKILL.md files. NO content authoring, NO MCP writes, NO state changes.
> Source of truth = each `~/.claude/skills/mx*/SKILL.md`. This skill only globs, parses frontmatter, and renders.

## Modes

| Argument | Mode |
|----------|------|
| (empty)         | List all public mx*-skills grouped by category |
| `<skillname>`   | Detail view: purpose + modes + examples for one skill |

## Mode 1: List (default, `--verbose` for full descriptions)

⚡ **Tool budget: max 2 tool calls (1× Glob + 1× Grep). NO per-file Reads. NO Bash.** Each Read on a fresh session triggers a permission prompt — multiplied by N skills this is unusable. Stay within Glob+Grep.

- **Zero-result handling:** If Glob returns zero matches OR all matches are filtered out by the allowlist, render exactly: `No public mx*-skills installed. Run /mxSetup to install the mxLore-skills bundle.` and return. Do NOT render empty category headers.

1. **Glob (1 call):** `~/.claude/skills/mx*/SKILL.md` — case-insensitive on Windows NTFS. Confirms which skills exist on disk.
2. **Grep (1 call) — extract all frontmatter at once:**
   - `pattern: '^(name|description):'`
   - `path: '~/.claude/skills'`
   - `glob: 'mx*/SKILL.md'`
   - `output_mode: 'content'`
   - `-n: true` (line numbers)
   - Result: every `name:` and `description:` line for ALL mx-skills in a single tool call. Format: `<filepath>:<lineno>:<content>`
   - **Malformed frontmatter handling:** if a SKILL.md is missing `name:` or `description:` → render as `<dirname> — (no frontmatter)` and continue. NEVER abort the entire list. NEVER hallucinate field values.
3. **Filter against allowlist:** parse the grep output, group `name`/`description` pairs by file path. For each, compare the `name` value against the Public Skill Allowlist (case-insensitive). Skills NOT in allowlist → silently skip (private/customer-only).
4. **Render** compact bulleted list grouped by category from the allowlist:
   ```
   ## Core workflow
   - **mxPlan** — <first sentence of description>
   - **mxSpec** — ...
   ```
5. Default truncation: stop at first '.', '!', '?' OR at 120 UTF-8 codepoints (NEVER split a multi-byte sequence). Whichever comes first.
6. With `--verbose`: full description, no truncation.
7. Footer: `Tip: /mxHelp <name> for details on one skill.`

### Public Skill Allowlist

⚡ mxHelp ONLY renders skills from the public mxLore-skills GitHub bundle, enumerated in the allowlist below. Any installed skill absent from that table — internal, customer-specific, or third-party — is FILTERED OUT and must not appear in mxHelp output. The table is the mechanism: do NOT name excluded skills here, since this file ships publicly and a denylist would disclose exactly what it excludes.

| Category | Public skills (allowlist) |
|----------|---------------------------|
| Core workflow | mxPlan, mxSpec, mxDecision, mxSave, mxOrchestrate |
| Analysis | mxBugChecker, mxDesignChecker, mxHealth |
| Setup / Migration | mxSetup, mxInitProject, mxMigrateToDb |
| Discoverability | mxHelp |

**Total public skills:** 12. Any glob match whose frontmatter `name` is NOT in this allowlist (case-insensitive compare) → SILENTLY SKIPPED. Do NOT render under "Other". Do NOT emit drift warnings for non-allowlisted skills — they are intentionally private.

**Drift warning ONLY fires** when an allowlisted skill is missing from disk: `Note: public allowlist references N missing skill(s): <names>` — this surfaces real distribution gaps.

## Mode 2: Detail (`/mxHelp <skillname>`)

1. **Sanitize** `<skillname>`: REJECT input containing `/`, `\`, `..`, or any absolute-path marker. Allowed pattern: `[A-Za-z0-9_-]+` only. On reject → respond "Invalid skill name: only alphanumeric + underscore + hyphen allowed" and stop.
2. **Normalize**: strip trailing `.md`, strip leading `/`. If no `mx` prefix → prepend `mx` and retry exact match before fuzzy.
3. **Allowlist check**: if the normalized name is NOT in the Public Skill Allowlist → respond "Skill `<name>` is not part of the public mxLore-skills bundle" and stop. Internal skills must not be discoverable via mxHelp.
4. Resolve path: `~/.claude/skills/<skillname>/SKILL.md` (case-insensitive match)
5. ∅exact match → glob `~/.claude/skills/mx*` →
   **Fuzzy match algorithm (specified):**
   1. Case-insensitive substring match against allowlist names → if 1+ matches, list up to 3 sorted by name length (shortest first)
   2. If 0 substring matches → Levenshtein distance ≤3 against allowlist → list up to 3 sorted by distance ascending
   3. If still 0 matches → respond "No public mx-skill matches `<query>`. Try `/mxHelp` for the full list."
   4. Tie-break: alphabetical
6. Read full file
7. Render structured sections:
   - **Purpose** — first paragraph after the H1 heading
   - **Modes / Arguments** — extract from any `## Modes` table or `## Mode N:` headings
   - **Examples** — first fenced code block after an "Example" or "Usage" heading; omit section entirely if none found
8. Footer: `Source: ~/.claude/skills/<name>/SKILL.md`

⚡ Detail mode is read-only. NO side effects. NO state writes. NO MCP calls.

## Rules
- ⚡ **Tool budget — List mode: max 2 calls (1 Glob + 1 Grep). Detail mode: max 2 calls (1 Glob + 1 Read).** Exceeding the budget = bug. NEVER use Bash. NEVER use per-file Read in List mode.
- ⚡ **Output language: match the user's prompt language.** This SKILL.md is in English for sync hygiene (public mxLore-skills GitHub repo requires English), but the rendered output (category headers, descriptions, footer tip, error messages) MUST be translated to match the user's language. If the user wrote in German → render German. Italian → Italian. English → English. Default English when the language is ambiguous.
- !duplicate skill content — only render what already exists in SKILL.md
- !invent skills — if an allowlisted skill does not exist on disk, omit from render AND append a one-line footer warning (in the user's language): `Note: public allowlist references N missing skill(s): <names>` (surfaces drift without breaking reads)
- Include `mxHelp` itself in the list under "Discoverability"

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.