/ 디렉터리 / 플레이그라운드 / symfony-ux-skills
● 커뮤니티 smnandre ⚡ 바로 사용

symfony-ux-skills

제작: smnandre · smnandre/symfony-ux-skills

Teach Claude the Symfony UX stack — Live Component, Twig Component, Turbo, Stimulus — so it writes idiomatic full-stack Symfony code.

A bundle of Agent Skills that document the Symfony UX ecosystem (Live Components, Twig Components, Turbo, Stimulus controllers, Autocomplete, React/Vue/Svelte integration). Once cloned into ~/.claude/skills/, Claude loads the relevant skill whenever you ask for a Live Component, a Stimulus controller, or a Turbo Frame, and follows Symfony UX conventions instead of inventing patterns.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

symfony-ux-skill.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "symfony-ux-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/smnandre/symfony-ux-skills",
        "~/.claude/skills/symfony-ux-skills"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "symfony-ux-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/smnandre/symfony-ux-skills",
        "~/.claude/skills/symfony-ux-skills"
      ],
      "_inferred": true
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "symfony-ux-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/smnandre/symfony-ux-skills",
        "~/.claude/skills/symfony-ux-skills"
      ],
      "_inferred": true
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "symfony-ux-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/smnandre/symfony-ux-skills",
        "~/.claude/skills/symfony-ux-skills"
      ],
      "_inferred": true
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "symfony-ux-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/smnandre/symfony-ux-skills",
        "~/.claude/skills/symfony-ux-skills"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "symfony-ux-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/smnandre/symfony-ux-skills",
          "~/.claude/skills/symfony-ux-skills"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add symfony-ux-skill -- git clone https://github.com/smnandre/symfony-ux-skills ~/.claude/skills/symfony-ux-skills

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: symfony-ux-skills

How to build a Symfony Live Component with Claude

👤 Symfony developers adding real-time UI without writing JS ⏱ ~20 min intermediate

언제 쓸까: You need a reactive form, filter, or list that updates on the server without a full page reload.

사전 조건
  • Symfony 6.4+ project with symfony/ux-live-component installed — composer require symfony/ux-live-component
  • Skill cloned into ~/.claude/skills/ — git clone https://github.com/smnandre/symfony-ux-skills ~/.claude/skills/symfony-ux-skills
흐름
  1. Describe the component you need
    Build a Live Component for a product search filter with checkboxes for categories and a text query — updates results live as the user types.✓ 복사됨
    → Claude references LiveProp, LiveAction, debounce modifiers from the skill
  2. Let Claude scaffold the PHP + Twig
    Generate the PHP component class and the Twig template. Use attributes, not annotations.✓ 복사됨
    → File output follows Symfony UX naming (src/Twig/Components/...)
  3. Ask Claude to wire the parent page
    Show me how to embed this component in an existing Twig page and pass initial state.✓ 복사됨
    → Uses {{ component() }} helper correctly

결과: A working Live Component with proper LiveProp typing and no custom JS.

함정
  • Claude mixes Live Component and Twig Component concepts — Re-ask naming the package explicitly: 'use symfony/ux-live-component, not twig-component'
함께 쓰기: filesystem · git

Refactor legacy JS into a Stimulus controller

👤 Developers modernizing a Symfony app's front-end ⏱ ~15 min beginner

언제 쓸까: Your app has jQuery or vanilla JS sprinkled in Twig — you want to move to Stimulus cleanly.

사전 조건
  • Symfony UX + Stimulus configured (importmap or Webpack Encore) — symfony console importmap:require @hotwired/stimulus if missing
흐름
  1. Paste the legacy snippet and ask for a Stimulus conversion
    Convert this jQuery snippet to an idiomatic Stimulus controller with targets and values.✓ 복사됨
    → Controller with static targets, static values, clear actions
  2. Update the Twig template
    Show me the data-controller, data-*-target, and data-action attributes for the Twig side.✓ 복사됨
    → Correct data attributes, no inline handlers

결과: A clean Stimulus controller plus Twig wiring, ready to commit.

함정
  • Controller name mismatch between file and data-controller attribute — Remind Claude of the naming rule: hello_controller.js → data-controller=hello
함께 쓰기: filesystem

Add Turbo-powered pagination without a page reload

👤 Symfony devs who want SPA-like UX with minimal JS ⏱ ~15 min intermediate

언제 쓸까: You have a paginated list and want Next/Prev to swap content in-place.

흐름
  1. Ask Claude to wrap the list in a Turbo Frame
    Wrap my paginated product list in a turbo-frame and make pagination links target that frame.✓ 복사됨
    → Uses <turbo-frame id=...> and frame-targeted links
  2. Handle the partial response
    Update the controller to render only the frame when the request has the Turbo-Frame header.✓ 복사됨
    → Controller checks request header and picks the right template

결과: Pagination swaps in-place with no full-page reload.

함정
  • Full page keeps reloading — Frame id on the link target must match frame id on the page — repeat it to Claude
함께 쓰기: filesystem

조합

다른 MCP와 조합해 10배 효율

symfony-ux-skill + filesystem

Claude reads your existing Twig/PHP and writes components matching codebase style

Read src/Entity/Product.php and src/Twig/Components/, then add a new LiveComponent for a product filter following the same patterns.✓ 복사됨
symfony-ux-skill + github

Open a PR with the new component once files are on disk

Commit the new LiveComponent files to a branch and open a PR titled 'Live product filter'.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
live-component-authoring component intent, props, actions You need a reactive UI piece in Symfony 0 — prompt-only
twig-component-authoring UI primitive description Reusable presentational block with no live server interactions 0
stimulus-controller-authoring behavior + targets/values Client-side interactivity that doesn't need the server 0
turbo-integration frame/stream intent Partial-page updates and form responses 0

비용 및 제한

운영 비용

API 쿼터
none — skill is local markdown
호출당 토큰
adds ~2–8k tokens of context when the skill activates
금액
free, MIT-licensed
Keep the skill dir small — clone only the subskills you use if context-constrained

보안

권한, 시크릿, 파급범위

자격 증명 저장: none — no credentials needed
데이터 외부 송신: none — pure instruction bundle, no network calls

문제 해결

자주 발생하는 오류와 해결

Skill doesn't activate

Confirm the directory is ~/.claude/skills/symfony-ux-skills/ and contains SKILL.md at the root. Restart Claude Code.

확인: ls ~/.claude/skills/symfony-ux-skills/SKILL.md
Claude uses generic PHP instead of Symfony UX

Prompt explicitly: 'use the symfony-ux-skills you have loaded'

Generated code references UX packages you don't have installed

composer require the package, or tell Claude which packages are installed

확인: composer show | grep symfony/ux

대안

symfony-ux-skills 다른 것과 비교

대안언제 쓰나단점/장점
sivalabs-agent-skillsYou work in Spring Boot instead of SymfonyDifferent stack entirely
claude-wordpress-skillsYou work in WordPress / PHP but not SymfonyWordPress-specific patterns, no Twig/Turbo

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기