From Web Game Builder
게임의 전체 **캐릭터 능력/스킬 시스템**을 설계하고 게임에 입힌다 — 액티브·패시브·이동기(대시·더블점프·갈고리)· 궁극기·리액션(패링)·자원(마나/스태미나/기력)·쿨다운·충전·콤보/연계·캔슬·시너지·빌드·스킬트리/특성·진행/획득까지 "캐릭터가 *무엇을 할 수 있고, 그것이 어떻게 자라고 조합되는가*"를 담당하는 상위 스킬. **여기서 '스킬'은 게임 캐릭터의 능력을 뜻한다 — Claude Code 의 스킬(클로드 스킬)과 다르다.** 플랫포머의 더블점프 한 개부터 디아블로급 스킬트리까지 폭넓은 스펙트럼을 커버하되, **복잡도를 가장 먼저 가른다** — 디폴트는 코어 동사 위 능력 0~1개에서 한 칸씩 정당화한다. 현재 게임의 코어 동사·장르·STORY.md 서사·플랫폼을 먼저 분석하고, 의도가 모호하면 탑다운 1문1답으로 끈질기게 캐물어, 매 라운드 Claude가 먼저 참신한 능력·콤보·시너지 아이디어를 제안하며 사용자가 고르거나 비틀게 한다. 검증된 능력 설계 이론(자원·기회비용 / 선딜·발동·후딜 게임필 / enabler·payoff 시너지로 빌드 재미 / 콤보 연계 / 스킬트리·능력게이트 진행 / 파워예산·카운터플레이 밸런스 / 능력 판타지·정체성)으로 설계해 games/<slug>/ABILITIES.md 바이블 + abilities.json 데이터로 산출하고, engine/abilitykit.js(쿨다운·자원·콤보·게이트 런타임) 배선·아이콘 핸드오프로 게임에 적용한다. 각 능력에 visual.* 묘사 슬롯을 채워 sprite-forge/vector-graphics/sprite-picker 가 좋은 능력 아이콘을 만들게 한다. 정량 데이터라 tools/lint-abilities.mjs validator 로 죽은스킬·지배전략·곱연산폭발·무한콤보·자원지속성·스킬트리도달성·게이트softlock 을 기계 검증하고, 복잡한 킷은 tools/sim-abilities.mjs 로 빌드별 DPS·자원 지속성을 시뮬한다. 게임 제작 초반뿐 아니라 중반에도 능력 수정·추가/삭제로 언제든 활용한다. 캐릭터스킬/캐릭스킬/스킬시스템/스킬셋/스킬트리/특성/탈렌트/능력/액티브/패시브/궁극기/궁/이동기/대시/더블점프/벽점프/ 갈고리/패링/쿨다운/마나/스태미나/기력/자원/콤보/연계/캔슬/시너지/빌드/스킬빌드/능력조합/능력획득/능력강화를 만들·짜· 넣·고치·추가·삭제·밸런싱·설계 해 달라는 요청에 사용. English: design or revise a game's whole **character ability/skill system** (NOT Claude Code skills) — actives, passives, mobility (dash/double-jump/grapple), ultimates, reactions (parry), resources (mana/stamina/energy), cooldowns, charges, combos/cancels, synergy/build-crafting, skill trees/talents, progression/acquisition. Spans a platformer's single double-jump to a Diablo-grade skill tree. Gates complexity first (default near-zero, justify upward), interviews top-down, proposes creative ability/combo/synergy ideas, applies resource/opportunity- cost + anticipation/active/recovery game-feel + enabler/payoff synergy + combo chains + skill-tree/ability-gating progression + power-budget/counterplay balance + ability fantasy theory, outputs games/<slug>/ABILITIES.md + abilities.json, wires engine/abilitykit.js runtime, fills visual.* slots for icons, and machine-validates with lint-abilities.mjs (+ sim-abilities.mjs for complex kits). Usable at start or mid-development. Keywords: ability, skill, skill system, skill tree, talent, active, passive, ultimate, mobility, dash, double jump, parry, cooldown, mana, stamina, resource, charge, combo, cancel, synergy, build, kit, ability gate, character ability. 습득·사용하는 아이템은 item-architect, 톤·캐릭터·대사는 story-architect, 레벨 난이도는 level-architect, 진행 맵은 world-map-architect, 사운드는 sound-architect 소관 — 이 스킬은 '캐릭터가 할 수 있는 행동(능력)' 그 자체다.
How this skill is triggered — by the user, by Claude, or both
Slash command
/web-game-builder:wgf-ability-architectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
> **용어 주의 — 캐릭터 스킬 ≠ 클로드 스킬.** 이 스킬이 다루는 "스킬"은 **게임 속 캐릭터가 쓰는 능력**(대시·파이어볼·
reference/ability-design/INDEX.mdreference/ability-design/activation-feel.mdreference/ability-design/balance-counterplay.mdreference/ability-design/consistency-tools.mdreference/ability-design/identity-fantasy.mdreference/ability-design/kit-taxonomy.mdreference/ability-design/presentation-ux.mdreference/ability-design/principles.mdreference/ability-design/progression-acquisition.mdreference/ability-design/resource-cost.mdreference/ability-design/scope-complexity.mdreference/ability-design/synergy-combo.mdreference/ability-interview.mdtools/lint-abilities.mjstools/sim-abilities.mjs용어 주의 — 캐릭터 스킬 ≠ 클로드 스킬. 이 스킬이 다루는 "스킬"은 게임 속 캐릭터가 쓰는 능력(대시·파이어볼· 궁극기·패시브·스킬트리)이다. Claude Code 의 스킬(이 파일 같은 것)과 혼동하지 않는다. 문서·대화에서 헷갈릴 여지가 있으면 "능력(ability)"으로 부른다.
게임에 '캐릭터가 무엇을 할 수 있고, 그 능력이 어떻게 자라고(획득) 조합되고(시너지) 쓰이는가(사용)'를 입히는 상위 스킬.
플랫포머의 더블점프 한 개부터 디아블로급 스킬트리까지, 캐릭터의 능력 전체(액티브·패시브·이동기·궁극기·리액션 + 자원·
쿨다운·콤보·진행)를 설계한다. 코드를 바로 짜지 않고 **① 현재 게임 분석 → ② 복잡도부터 의도를 인터뷰로 명확화 → ③ 검증된
능력 설계 이론 적용 → ④ ABILITIES.md 바이블 + abilities.json 데이터로 산출 → ⑤ 게임 적용(engine/abilitykit.js 배선·쿨다운/
자원/콤보/게이트·아이콘 이미지 핸드오프) 또는 위임 → ⑥ 밸런스 검수(validator + 수동, 작성과 분리)**한다. web-game-builder
워크플로의 일부. reference/ability-design/(검증된 능력 설계 통념을 광범위 웹 리서치로 모아 작은 2D 웹게임용으로 정리한
라이브러리)로 설계하고, 런타임은 engine/abilitykit.js, 이미지·연출·UI·사운드 구현은 제작요소 스킬에 위임한다.
역할 분리 (7계층). 같은 게임을 일곱 스킬이 다른 층에서 본다 — 반드시 구분한다.
- 무엇을 플레이하나(재미·메카닉): 재미요소
FE-*— game-dna/fun-elements.md (이 스킬은FE-MASTERY·FE-BUILD·FE-COMBO·FE-POWER-FANTASY를 깊게 확장한다)- 개별 레벨의 내용·난이도:
LD-*—level-architect- 스테이지를 잇는 진행 맵:
MAP-*—world-map-architect- 톤·이야기·캐릭터·대사·반전:
story-architect- 습득·사용하는 모든 것(아이템):
item-architect- 그 위에 입히는 소리:
sound-architect- 캐릭터가 할 수 있는 행동(능력) 그 자체:
SCOPE KIT RES FEEL PROG GATE SYN COMBO BAL IDENT UX-*— 이 스킬 (reference/ability-design/INDEX.md)능력 ≠ 무조건 많이. 우리 게임은 작은 2D 웹게임이다. 디폴트는 코어 동사 위 능력 0~1개(
SCOPE-DEFAULT-MINIMAL) — 많은 게임은 점프·쏘기 같은 코어 동사 + 능력 1개(대시)로 완결된다. 복잡도를 5티어로 가르고 한 칸씩 정당화한다. 무과금 단일플레이라 도박형 가챠 능력해금은 차용 금지(가변비율 추진력 + 천장만).
grantsAbility: "<abilities.json의 id>" 로 id 교차참조한다 — 능력 자체는 여기서 정의하고, 아이템은 그 능력을 전달하는 그릇이다.item-architect의 소모품/파워업이다. 능력 = 캐릭터가 반복해서 쓰는 행동(쿨다운·자원·진행이 붙는 것), 파워업 = 일회성 픽업으로 가른다.visual.* 묘사를 만들어 sprite 스킬로 핸드오프(아래 "아이콘 이미지 핸드오프")IDENT-LUDO-HARMONY). 점프 게임의 최고 능력은 +5 방어가 아니라 더블점프다(IDENT-VERB-OVER-STAT).SCOPE-DEFAULT-MINIMAL·SCOPE-ONE-CORE). 간단해도 되는 게임에 스킬트리를 욱여넣지 않는다 — 간단/복잡을 사용자에게 적극적으로 묻는다.SYN-ENABLER-PAYOFF), 콤보 연계로 능력이 능력을 부르게 하며(COMBO-CHAIN), 획득(스킬트리·드래프트)은 가변비율·의미있는 분기로 몰입을 만든다(PROG-MEANINGFUL-CHOICE) — 단 도박 구조는 차용 금지.FEEL-ANTICIPATION)·텔레그래프(FEEL-TELEGRAPH)·입력 버퍼(FEEL-BUFFER)로 공정하고 시원하게. 기회비용(쿨다운·자원)이 선택을 의미있게 만든다(RES-OPPORTUNITY-COST).visual.* 슬롯을 채워 sprite-forge/vector-graphics/sprite-picker에 결정론적으로 넘긴다(UX-DESC-SLOTS·UX-SILHOUETTE-FIRST).games/<slug>/ABILITIES.md(설계 바이블) + abilities.json(기계 데이터 = abilitykit 로드 + 린터 입력)을 유일한 출처로 생성한다(ABILITIES-SINGLE-SOURCE). 설계(③④)와 밸런스 검수(⑥: lint-abilities.mjs + 수동)는 반드시 다른 패스로 분리한다.BAL-NO-DOMINANT·BAL-NO-DEAD-SKILL·SYN-ADD-VS-MULT·COMBO-NO-INFINITE). 모바일 버튼 예산을 지킨다(UX-BUTTON-BUDGET).대상 게임의 game.js(또는 게임 디렉터리)와 있으면 기존 ABILITIES.md/abilities.json·STORY.md·ITEMS.md를 Read 해서 파악한다:
SCOPE-GENRE-FIT).IDENT-CONSISTENT-VOICE). 능력 판타지가 캐릭터/톤과 같은 말을 하게 한다.SCOPE-PLATFORM-BUDGET·UX-BUTTON-BUDGET).분석 결과를 한 화면 요약(코어 동사 · 장르/스캐폴드 · 기존 입력·능력 · 톤 · 플랫폼/세션/버튼 예산 · 추정 복잡도 티어)으로 읽어준 뒤 1)로 간다.
요청이 한 줄·모호하거나 핵심 차원이 비면 온디맨드로 reference/ability-interview.md를 Read 해 탑다운 1문1답 인터뷰를 수행한다. deep-interview / story·item-interview 방법론을 능력 설계에 적응시킨 것:
reference/ability-design/INDEX.md 라우팅으로 principles.md (엔진 제약·복잡도 게이트·공통 캐논·안티패턴·장르 처방) + 항상 scope-complexity.md 먼저 + 복잡도 티어·장르에 맞는 도메인 파일 1~3개를 Read 하고, 설계 결정마다 원칙 code를 한 줄 근거로 단다:
SCOPE-*). 항상 먼저.KIT-*). 액티브/패시브/이동기/궁극기/리액션·역할 분담·입력 타입.RES-*). 쿨다운·마나/스태미나·충전·기회비용·자원 지속성.FEEL-*). 선딜/발동/후딜·텔레그래프·버퍼·캔슬·히트스톱.PROG-*·GATE-*). 스킬트리·드래프트·레벨업·능력게이트·softlock 방지.SYN-*·COMBO-*) + balance-counterplay.md (BAL-*). enabler/payoff·콤보 연계·가산vs곱산·지배전략 제거.IDENT-*). 능력 판타지·ludo 조화·숙련 표현·명명.UX-*). visual.* 슬롯·스킬바·쿨다운 시각화·모바일 버튼 예산..omc/research/ability-system-research-dossier.md)를 작은 웹게임용으로 정리한 1차 라이브러리이니 항상 먼저 적용. 그 위에, 특정 장르·레퍼런스 게임의 능력 결이 필요하면 그 장르 관습·유사작 구조를 능동 리서치해 보강한다. IP 안전 가드: 메카닉·구조·기법만 차용, 고유 능력 이름·외형·시그니처는 오리지널 재구성(ip-license-guard).이론을 적용해 game.js 옆에 games/<slug>/ABILITIES.md(사람용 설계 바이블) + **games/<slug>/abilities.json(기계용 데이터 = abilitykit 로드 + 린터 입력)**을 만든다(스펙: consistency-tools.md). 복잡도 티어에 비례해 섹션을 켜고 끈다(Tier 0~1은 §0·§1·§3만).
id·name·kind·input·slot·resource·cost·cooldown·charges·cast/active/recovery·effect·scaling·tags·role·grantsVerb·unlocks/requires·combo·budget·flavor + visual.* 슬롯(아래 핸드오프). 작은 킷 강제(액티브 동시 바인딩 ≤ 모바일 버튼 예산, 전체 카탈로그 상한, SYN-MINIMAL-KIT).abilities.json을 game.js에 1:1로 연결하고, 획득·사용·콤보 루프를 연출과 함께 적용하거나 web-game-builder로 위임한다:
engine/abilitykit.js 를 phaser 다음·game 이전에 추가. T0var KIT = AbilityKit.attach(this, ABILITIES_SPEC, { onActivate, unlockedAtStart }); → window.GAME_ABILITIES = KIT;. ABILITIES_SPEC = abilities.json(fetch 또는 인라인). tick 은 attach 가 씬 update 에 자동 훅.onActivate(ability, ctx)에서 ability.effect 를 읽어 실행한다 — 효과를 코드에 중복 하드코딩하지 않는다(ABILITIES-SINGLE-SOURCE).KIT.use('<id>', ctx). 쿨다운/자원 부족/잠김은 onReject 로 피드백. 모바일은 virtual-joystick/MobileHarness D-패드와 능력 버튼을 조합(버튼 예산 UX-BUTTON-BUDGET).visual.* 슬롯을 → 픽셀이면 sprite-forge, 스무스면 vector-graphics, CC0 실물이면 sprite-picker 로 넘긴다. §8 스타일가이드 헤더 상수(팔레트·역할 색·광원)를 함께 전달해 한 게임 한 스타일을 유지한다.juice-fx, 발동/타격 SFX는 sound-architect/chip-sound, 스킬바·쿨다운 스윕·자원바·스킬트리 화면 UI는 game-ui-hud, flavor·이름 톤은 story-architect, 탄막/경로 능력은 path-motion, 조준 입력은 virtual-joystick.level-architect의 난이도·world-map-architect의 진행과 교차(자물쇠 먼저 노출 GATE-SHOW-LOCK-FIRST). 능력 부여 아이템은 item-architect와 grantsAbility id 로 교차.별도 패스로 abilities.json을 validator로 기계 검증하고 ABILITIES.md §10에 결과를 적는다(체크리스트: consistency-tools.md):
node skills/wgf-ability-architect/tools/lint-abilities.mjs games/<slug>/abilities.json
balanceConfig에서 읽는다.BAL-NO-DOMINANT·FEEL-*).node skills/wgf-ability-architect/tools/sim-abilities.mjs games/<slug>/abilities.json --build a,b,c --duration 60
game-qa로 점검 후 근거와 함께 보고한다.좋은 능력 아이콘의 전제는 충분한 묘사다. 산문 한 줄이 아니라 visual.* 고정 슬롯을 채워, 어떤 생성 경로든 같은 입력을 결정론적으로 소비하게 한다(UX-DESC-SLOTS).
silhouette(외곽 한 단어·실루엣 우선) · material(불·얼음·강철·전기·그림자…) · palette(§8 master_palette 참조, 자유 hex 금지) · focal_motif(이 아이콘이 말하는 단 하나) · vfx_motif(발동 시 화면 이펙트의 결) · telegraph_read(적 입장에서 무엇을 보고 피하나, 적/위험 능력일 때) · rarity_visual(등급/궁극 테두리, 색 단독 금지) · lighting(기본 NW 상속).UX-DESC-SLOTS 표.master_palette/assets/palette.master.json은 상류 디렉터 style-architect(style.json)이 정한다 — games/<slug>/style.json이 있으면 §8은 이를 상속(능력 아이콘이 게임 전체 룩과 응집), 없으면 §8이 인라인으로 정의(기존 동작 그대로, 하위호환).SCOPE-DEFAULT-MINIMAL).web-game-builder 오케스트레이션의 능력 설계 레인. 명시 호출은 commands/wgf-make-game.md, 게임 인터뷰는 game-interview.md(FE-MASTERY/FE-BUILD/FE-COMBO 선택 시 연계).item-architect(능력 부여 아이템 grantsAbility 교차) · story-architect(능력 판타지·flavor 정합) · level-architect(능력 게이트↔난이도) · world-map-architect(능력 게이트↔진행).sprite-forge/vector-graphics/sprite-picker(아이콘) · game-ui-hud(스킬바·쿨다운·스킬트리 UI) · juice-fx(발동 연출) · sound-architect/chip-sound(SFX) · path-motion(탄막/경로 능력) · virtual-joystick(조준) · game-qa(검증).FE-MASTERY·FE-BUILD·FE-COMBO) · Phaser4 INDEX. 런타임 engine/abilitykit.js · 툴 tools/lint-abilities.mjs · tools/sim-abilities.mjs.## 8. Glossary에 오리지널로 정의한다. 아이콘 아트는 절차 생성(PixelForge·VectorForge) 또는 라이선스 안전한 외부 에셋(sprite-picker). 무과금 단일플레이라 능력 해금에 도박형 가챠·페이월은 차용하지 않는다. 상세는 ip-license-guard.npx claudepluginhub v0o0v/web-game-forge --plugin web-game-builderCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.