Automated summary
Fetches metadata and manifest information for a remote Module Federation module — publicPath, remoteEntry, type file URLs, and its exposes/remotes/shared — from its mf-manifest.json, in either consumer or standalone mode.
Strengths
- Automatically resolves the entry URL from mfConfig.remotes inside a consumer project
- Also works outside a consumer project when the remoteEntry URL is passed directly
- Retrieves type artifact URLs (@mf-types.zip and @mf-types.api) for declaration inspection
Limitations
- Relies on the scripts/module-info.js script and the remote module's mf-manifest.json
- Only applies to the Module Federation ecosystem and assumes a specific manifest convention
- Type declarations are fetched only on explicit request, not by default
Use this skill when you need to inspect a remote federated module's exposes, remotes, shared dependencies, or exported types before integrating it.
Security analysis
CautionNo destructive, exfiltration, or obfuscated behavior: it only invokes a local node script to read Module Federation metadata over HTTP and print a summary. The risk is limited to ordinary network access plus shell-quoting of interpolated arguments. The input-value analysis and explicit stop-on-error behavior are reasonable, so this is 'caution' rather than 'risky' — a reviewer should confirm scripts/module-info.js performs only GET requests and that argument interpolation is escaped.
- •Runs a bundled Node script with network access to arbitrary remote URLs (remoteEntry-url, typesZip/typesApi) supplied by the user, which could be used to probe internal endpoints if the agent blindly follows untrusted input.
- •User-controlled values (<module-name>, <remoteEntry-url>, [project-root], and the MFContext JSON) are interpolated directly into a single-quoted shell command; a token containing a single quote could break out and inject additional shell arguments/commands.
- •Step 4 instructs fetching and displaying remote type-definition content, i.e. displaying untrusted remote data in the transcript, which could carry misleading/prompt-injection content.
Examples
Use mf-module-info to show the manifest details for the remote named checkout.Show me exposes, remotes and shared for remote dashboard at https://cdn.example.com/dashboard/remoteEntry.jsFetch the mf-module-info metadata for the auth remote and show me the types it exports.name: mf-module-info description: "Fetch metadata and manifest info for a remote Module Federation module — publicPath, remoteEntry, type file URLs, and the module's remotes/exposes/shared from its mf-manifest.json. Two modes: (1) inside a consumer project, pass only the remote name and the entry URL is resolved from mfConfig.remotes; (2) outside a consumer project, pass the remote name plus its remoteEntry URL directly. To inspect the current project's own config, use mf-context instead." argument-hint: <module-name> [remoteEntry-url] [project-root] allowed-tools: Bash(node *)
Step 1: Parse $ARGUMENTS:
- First token →
<module-name> - If a second token looks like a URL (starts with
http) →<remoteEntry-url>(standalone mode); remaining tokens →[project-root] - Otherwise →
[project-root](consumer mode)
Step 2 — consumer mode (no URL provided):
Call the mf-context Skill (passing [project-root]) to collect MFContext, then run:
node scripts/module-info.js --context '<MFContext-JSON>' --module '<module-name>'
Step 2 — standalone mode (URL provided): Run with an empty context and the explicit URL:
node scripts/module-info.js --context '{}' --module '<module-name>' --url '<remoteEntry-url>'
Step 3: Present the result from the script output:
| Field | Description |
|---|---|
| publicPath | Base URL of the remote |
| remoteEntry | Full URL to remoteEntry.js |
| typesZip | URL to @mf-types.zip |
| typesApi | URL to @mf-types.api (shown only if present) |
| hasSsr | Whether SSR build artifacts were detected |
| exposes | Modules this remote exposes |
| remotes | Remotes this module depends on |
| shared | Shared dependencies declared by this module |
If result.error is set, surface it directly and stop.
Step 4 (conditional): If the user explicitly asks to see the type declarations (e.g. "show me the types", "what types does it export"), fetch result.typesZip or result.typesApi and display the relevant type definitions.
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/module-federation-module-info-mmh8qque/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/module-federation-module-info-mmh8qque' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/module-federation-module-info-mmh8qque/download' --output '.skill-downloads/module-federation-module-info-mmh8qque/SKILL.md.part' && mv '.skill-downloads/module-federation-module-info-mmh8qque/SKILL.md.part' '.skill-downloads/module-federation-module-info-mmh8qque/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Tools declared by the author (check availability in your agent): Bash(node *)
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/module-federation-module-info-mmh8qque/SKILL.md' && test -s '.skill-downloads/module-federation-module-info-mmh8qque/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/mf-module-info' && cp -R '.skill-downloads/module-federation-module-info-mmh8qque' '.claude/skills/mf-module-info'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/module-federation-module-info-mmh8qque'openskills read 'module-federation-module-info-mmh8qque'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/module-federation-module-info-mmh8qque/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.