add-frontend-component

Wires frontend overlays to the engine via a transport-agnostic adapter for WaitingFor states.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/gamajose/MagicTheGathering --skill add-frontend-component-gamajose
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-frontend-component
Source: https://github.com/gamajose/MagicTheGathering/tree/main/.claude/skills/add-frontend-component
Command: npx skills add https://github.com/gamajose/MagicTheGathering --skill add-frontend-component-gamajose

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Wireframing and building frontend overlays that properly integrate with the engine, adhere to design principles, and dispatch engine actions through a standardized pipeline.

Core Features & Use Cases

  • Enforces separation of display logic from game logic, ensuring CR-correctness.
  • Guides the creation of reusable overlays like CardChoiceModal, ModeChoiceModal, and ScryModal.
  • Provides routing and gating by WaitingFor data to ensure the correct player sees choices in multiplayer.

Quick Start

Identify a WaitingFor overlay to implement and wire it into CardChoiceModal/ScryModal flow using the provided patterns and adapters.

Frequently Asked Questions about add-frontend-component

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I wire frontend overlays to integrate with a game engine in React and TypeScript?

Using a transport-agnostic adapter for WaitingFor states, frontend overlays integrate with the engine by enforcing frontmatter metadata, component patterns, and routing alignment to ensure TypeScript types match Rust serde output.

How do I gate UI overlays by active player for multiplayer games?

Gate UI overlays by active player using WaitingFor data routing, ensuring the correct player sees choices in multiplayer by enforcing routing and gating alignment through a standardized adapter pattern.

Why do my TypeScript frontend types mismatch the Rust serde output for WaitingFor states?

TypeScript frontend types mismatch Rust serde output when WaitingFor routing alignment is not enforced, which this approach resolves by applying frontmatter metadata and component patterns that guarantee type safety.

Can I use a transport-agnostic adapter for React overlay components like CardChoiceModal?

Yes, a transport-agnostic adapter applies to React overlay components like CardChoiceModal, ScryChoice, and ModeChoiceModal, covering routing, animation integration, and gating by the active player.

What's the best way to separate display logic from game logic in frontend overlays?

The best way to separate display logic from game logic is enforcing CR-correctness through standardized pipelines that dispatch engine actions, guiding creation of reusable overlays without mixing logic layers.

Does adding frontend UI components require specific frontmatter metadata?

Yes, adding frontend UI components requires specific frontmatter metadata to enforce component patterns and WaitingFor routing alignment, ensuring consistent and safe UI behavior across the React and TypeScript frontend.