Frontend Craft

OpenClaw native plugin build for Frontend Craft (skills, hooks, workspace init).

Audits

Pass

Install

openclaw plugins install clawhub:frontend-craft

frontend-craft-openclaw

Stars CI License TypeScript Node


Language / 语言

English | 简体中文


An OpenClaw native plugin build for frontend-craft.

frontend-craft-openclaw ships the OpenClaw-native package for frontend-craft: workflow skills, markdown commands, OpenClaw workspace templates, typed hooks, a design MCP reference, and the optional frontend_craft_init_workspace tool.

Requirements: Node.js >= 22, OpenClaw plugin API >= 2026.4.20.


Quick Start

1. Install

From ClawHub (recommended when published there):

openclaw plugins install clawhub:frontend-craft

From npm:

openclaw plugins install frontend-craft-openclaw

From a local tarball built from the main repository:

npm install
npm run pack:openclaw
openclaw plugins install ./frontend-craft-openclaw-<version>.tgz

For local development, link the package directory:

openclaw plugins install -l /path/to/frontend-craft/npm-packages/openclaw

2. Enable The Plugin

The plugin id is frontend-craft even when the npm package is frontend-craft-openclaw.

{
  plugins: {
    allow: ["frontend-craft"],
    entries: {
      "frontend-craft": {
        enabled: true,
        config: {
          // Optional, see openclaw.plugin.json:
          // formatAfterWrite: true,
          // notifyOnAgentEnd: true,
        },
      },
    },
  },
}

Restart the gateway after changing plugin configuration:

openclaw gateway restart
openclaw plugins inspect frontend-craft

3. Initialize An OpenClaw Workspace

OpenClaw loads agent context from the agent workspace, often ~/.openclaw/workspace. Use the optional frontend_craft_init_workspace tool with:

  • workspaceDir: absolute path to the workspace root
  • overwriteAgents: true only when replacing an existing AGENTS.md

The tool copies:

  • templates/openclaw/AGENTS.md -> workspace AGENTS.md
  • templates/shared/rules/*.md -> workspace skills/frontend-craft-rules/

You can also copy those files manually. See templates/openclaw/OPENCLAW-CONFIG.md for OpenClaw configuration notes.

4. Configure Design MCP Servers

The bundled .mcp.json is a reference for Figma, Sketch, MasterGo, Pixso, and Modao. Native OpenClaw plugins do not automatically merge MCP config, so copy the mcpServers block into your embedded Pi / gateway MCP configuration.

Common environment variables:

VariableTool
FIGMA_API_KEYFigma / Desktop
SKETCH_API_KEYSketch
MG_MCP_TOKENMasterGo
MODAO_TOKENModao

Pixso uses the local MCP URL shown in .mcp.json. MockingBot has no MCP integration; use screenshots or exported specs.


Package Layout

frontend-craft-openclaw/
|-- dist/                  # Bundled OpenClaw plugin entry
|-- skills/                # Workflow skills
|-- commands/              # Markdown command specs loaded as skills
|-- templates/openclaw/    # OpenClaw AGENTS.md and config notes
|-- templates/shared/      # Shared frontend rules
|-- .mcp.json              # Design MCP reference
|-- openclaw.plugin.json   # Plugin metadata and config schema
|-- package.json

Features

Commands

FilePurpose
commands/fec-init.mdInitialize frontend-craft workspace templates
commands/fec-review.mdGuided frontend code review
commands/fec-scaffold.mdPage / feature / component scaffolding guide

Skills

SkillPurpose
fec-frontend-code-reviewArchitecture, type safety, rendering, styles, accessibility, tests, security
fec-security-reviewXSS, CSRF, sensitive data leakage, unsafe input handling
fec-accessibility-checkWCAG-oriented semantic structure, keyboard support, focus, labels
fec-react-project-standardReact + TypeScript project standards
fec-vue3-project-standardVue 3 + TypeScript project standards
fec-implement-from-designImplement UI from Figma, Sketch, MasterGo, Pixso, Modao, or screenshots
fec-test-and-fixRun validation commands, diagnose failures, and fix safely
fec-legacy-web-standardJavaScript + jQuery + HTML/CSS legacy frontend standards
fec-legacy-to-modern-migrationjQuery / MPA migration strategy to React or Vue + TypeScript
fec-e2e-testingPlaywright / Cypress E2E structure, artifacts, CI, and flaky test handling
fec-nextjs-project-standardNext.js App Router, SSR/SSG, routing, metadata, middleware
fec-nuxt-project-standardNuxt 3 SSR/SSG, composables, routing, middleware
fec-monorepo-project-standardpnpm workspace, Turborepo, Nx structure and task orchestration
fec-data-fetchingTanStack Query / server-state fetching, caching, invalidation, optimistic updates
fec-form-handlingReact Hook Form + Zod forms, dynamic fields, uploads, multi-step flows
fec-browser-storagelocalStorage/sessionStorage/IndexedDB/Cookies selection and safe client persistence
fec-route-protectionAuthenticated and permissioned routes for React Router, Next.js, Vue Router, Nuxt
fec-component-testingReact Testing Library / Vue Test Utils component tests and regression scenarios
fec-storybook-component-docStorybook component docs, addons, MDX, interaction and visual test integration
fec-list-virtualizationLarge-list windowing with react-window / TanStack Virtual and measurement strategies
fec-pwa-implementationManifest, service worker, offline cache, install prompts, update handling
fec-web-workersWeb Worker integration, transferable objects, Comlink, worker pools
fec-canvas-threejsCanvas 2D, Three.js, React Three Fiber, WebGL performance and accessibility
fec-svg-animationSVG animation with CSS, Framer Motion, GSAP, reduced-motion fallbacks

Using skills (scenarios & examples)

Skills live under skills/<id>/SKILL.md. OpenClaw exposes them as plugin skill roots (openclaw.plugin.json lists skills and commands). The harness typically auto-selects a workflow when your plain-language request matches a skill’s frontmatter description; exact behavior depends on your OpenClaw / agent setup. You do not need to know internal skill ids—describe the outcome you want. (Power users may still mention an id if they know it.)

Tips

  • Point to paths or components when asking for reviews or refactors.
  • For design-to-code, attach a Figma link / node id, screenshot, or say which MCP you configured.
  • When lint, typecheck, tests, or build fail, name the exact commands you run if they are non-standard.

Scenarios and example prompts

ScenarioSkill (reference)Example prompt (no skill names)
PR or branch review before mergefec-frontend-code-review“Please review src/features/checkout/ before I merge: architecture, types, a11y, and tests. Save a markdown report under reports/.”
Focus on XSS, secrets, dangerous DOMfec-security-review“Audit src/lib/auth.ts and anything that renders or stores user-controlled HTML for XSS and secret leaks; list fixes by severity.”
New dialog / form — keyboard & ARIAfec-accessibility-check“Check src/components/ConfirmDialog.tsx for keyboard traps, focus order, labels, and ARIA; suggest concrete fixes.”
Align a React module with team conventionsfec-react-project-standard“We use React 18 and TanStack Query. Review src/pages/Dashboard/ against solid React + TS patterns and our existing abstractions.”
Align a Vue module with team conventionsfec-vue3-project-standard“Review src/views/Settings.vue and its composables for Vue 3 + TS best practices and consistency with the rest of the app.”
Implement from Figma / screenshotfec-implement-from-design“Implement this screen from Figma node 123:456: match spacing and design tokens, reuse our Button, and note any assumptions.”
CI red or local script failuresfec-test-and-fixpnpm lint and pnpm test are failing—find the root causes, fix them, and don’t weaken types or skip checks.”
Maintain jQuery / MPA legacy pagesfec-legacy-web-standard“For public/js/legacy/*.js, suggest safe refactors and patterns that keep current behavior; we still ship this in production.”
Plan jQuery → React/Vue migrationfec-legacy-to-modern-migration“We have static/app.js in jQuery + MPA. Outline a phased migration to React + TypeScript with risks and milestones.”
Add or stabilize E2Efec-e2e-testing“Add a Playwright smoke test for login; use a clear folder layout and Page Objects, and mention how to run it in CI.”
Next.js App Router featurefec-nextjs-project-standard“Review app/(dashboard)/reports/page.tsx and related server actions for Next.js App Router best practices (data fetching, errors, metadata).”
Nuxt 3 feature or layoutfec-nuxt-project-standard“Review pages/admin/*.vue and composables/useApi.ts for Nuxt 3 SSR/data/composables conventions.”
Monorepo boundaries and tasksfec-monorepo-project-standardapps/web depends on packages/ui—check package boundaries, workspace config, and Turborepo task graph for issues.”
Server-state data fetchingfec-data-fetching“Review src/queries/useReports.ts for TanStack Query patterns: caching keys, invalidation, and optimistic updates.”
Complex form with validationfec-form-handling“Build a multi-step registration form with Zod validation, file upload, and dynamic conditional fields using React Hook Form.”
Add route guards to an appfec-route-protection“Secure the /admin routes in our React Router app: redirect unauthenticated users and enforce role-based access.”
Write component unit testsfec-component-testing“Add RTL tests for src/components/UserCard.tsx: render, user-event interactions, and snapshot for regression.”
Document a component libraryfec-storybook-component-doc“Set up Storybook for packages/ui/ with MDX docs, accessibility addon, and interaction tests.”
Render thousands of list rowsfec-list-virtualization“Our ProductList renders 10k items—virtualize it with react-window or TanStack Virtual and measure scroll performance.”
Add offline supportfec-pwa-implementation“Make this React app a PWA: manifest, service worker, offline cache strategy, and install prompt.”
Heavy computation off main threadfec-web-workers“Move the image-processing logic to a Web Worker with Comlink to keep the UI responsive.”
Build an interactive 3D scenefec-canvas-threejs“Add a Three.js product viewer to src/components/ProductViewer.tsx with performance and fallback considerations.”
Add SVG motion to a landing pagefec-svg-animation“Animate the hero SVG with Framer Motion, and ensure reduced-motion users get a static fallback.”

Slash commands (markdown under commands/)

These are loaded as command specs; use them when you want a fixed checklist instead of free-form matching. In chat, describe what you want—the agent can follow the matching command doc without you naming it.

Command docWhen to useExample (plain language)
fec-init.mdBootstrap Claude-style .claude/ templates in a project repo (paths in the doc target .claude/).“Initialize this repo’s .claude/ with the frontend-craft templates and rules from the plugin; ask before overwriting.”
fec-review.mdGuided review + save reports/code-review-*.md.“Review the files changed in my last commit and write a structured markdown report under reports/.”
fec-scaffold.mdPage / feature / component folder layout.“Scaffold a new React page UserDetail with the usual src/pages/... layout and empty components/ and hooks/ folders.”

Hooks

HookBehavior
before_tool_callBlocks dangerous shell / exec-style commands
after_tool_callOptionally runs Prettier on write/edit targets (formatAfterWrite, default on)
before_prompt_buildPrepends a one-time framework and package-manager hint per session
agent_endEmits a completion bell/log line when a run succeeds (notifyOnAgentEnd, default on)

Plugin Config

KeyTypeDefaultMeaning
formatAfterWritebooleantrueRun Prettier after write/edit tool calls
notifyOnAgentEndbooleantrueEmit a completion bell/log line when an agent run succeeds

Build From Source

From the main frontend-craft repository:

npm install
npm run typecheck:openclaw
npm run pack:openclaw

npm run pack:openclaw builds and verifies the OpenClaw bundle, refreshes npm-packages/openclaw, and writes frontend-craft-openclaw-<version>.tgz to the repository root.


License

MIT