quest-keeper-frontend

Frontend development skill for Quest Keeper AI Tauri application. Use when working on React components, Zustand stores, Three.js battlemaps, TailwindCSS styling, or Tauri shell integration. Triggers on mentions of frontend, React, Zustand, Three.js, battlemap, UI, viewport, or Tauri.

$ 설치

git clone https://github.com/Mnehmos/mnehmos.quest-keeper.game /tmp/mnehmos.quest-keeper.game && cp -r /tmp/mnehmos.quest-keeper.game/.claude/skills/quest-keeper-frontend ~/.claude/skills/mnehmos-quest-keeper-game

// tip: Run this command in your terminal to install the skill


name: quest-keeper-frontend description: Frontend development skill for Quest Keeper AI Tauri application. Use when working on React components, Zustand stores, Three.js battlemaps, TailwindCSS styling, or Tauri shell integration. Triggers on mentions of frontend, React, Zustand, Three.js, battlemap, UI, viewport, or Tauri.

Quest Keeper Frontend Development

Location

C:\Users\mnehm\Desktop\Quest Keeper AI attempt 2

Tech Stack

  • Framework: Tauri 2.x (Rust shell + WebView)
  • UI: React 19 + TypeScript + Vite
  • State: Zustand stores
  • 3D: Three.js via @react-three/fiber
  • Styling: TailwindCSS (terminal/CRT aesthetic)

Directory Structure

src/
├── components/
│   ├── viewport/     # BattlemapCanvas, CharacterSheet, WorldMap
│   ├── adventure/    # Main layout (AdventureView.tsx)
│   ├── terminal/     # Chat interface
│   └── sidebar/      # Navigation
├── stores/           # Zustand state management
├── services/         # MCP client, LLM providers
├── hooks/            # Custom React hooks
└── utils/            # Helpers

Key Commands

npm run tauri dev     # Development with hot reload
npm run build         # Production build

MCP Response Parsing

import { parseMcpResponse } from '@/utils/mcpUtils';
const result = await mcpClient.callTool('get_character', { id });
const character = parseMcpResponse<Character>(result, null);

Terminal/CRT Aesthetic

Key classes: terminal-green, terminal-dim, terminal-dark, crt-glow, font-mono