Skill = 트리거 키워드 + 시각·동작 DNA + 호출 규약 의 *묶음*
Term (용어)aiverifiedSat May 02

Skill = 트리거 키워드 + 시각·동작 DNA + 호출 규약 의 *묶음*

별칭: Skill as Trigger Bundle · 트리거 묶음으로서의 스킬 · 스킬 정의

#skill#trigger#design-dna#harness#claude-code#lecture

정의

Harness EngineeringSkill 레이어 는 본질적으로 다음 세 갈래의 묶음:

  1. 트리거 키워드 (Trigger keywords)언제 이 스킬을 호출할지의 자연어 신호. AI 가 사용자 발화를 받아 grep 없이 매칭한다.
  2. 시각·동작 DNA (Visual/Behavioral DNA)어떻게 산출물을 빚을지의 고정 규약. 색 hex 코드 / 폰트 / 위계 / 줄간격 / 카드 형식.
  3. 호출 규약 (Invocation contract)무엇으로 산출할지의 라이브러리·MCP·외부 API. (예: pptxgenjs, /mnt/skills/public/pptx/SKILL.md 우선 로드)

이 셋이 한 frontmatter + SKILL.md 본문 에 묶여 있을 때, AI 는 맥락·컨벤션·도구 를 동시에 끌어 와 결정적 산출 을 만든다.


사례 — 5 PPT 스킬 번들

# ppt-edge-dark/SKILL.md frontmatter (의도 형태)
name: ppt-edge-dark
description: |
  가장자리 색 강조 다크 카드 PPT.
  트리거: "엣지 다크 PPT", "edge dark PPT", "비교/결론 슬라이드", ...
  시각 DNA: bg #000, card #141820, accent cyan/gold/violet 등
  호출: /mnt/skills/public/pptx/SKILL.md 먼저 → pptxgenjs

→ 사용자가 "이 위키 내용으로 비교 슬라이드 만들어줘" 만 입력하면, 위 3 갈래가 자동으로 작동:

  • 트리거 "비교 슬라이드" 매칭 → ppt-edge-dark 호출
  • 시각 DNA Top Accent 카드 자동 사용
  • 호출 규약 pptxgenjs 자동 import

왜 묶음이어야 하나

세 갈래 중 하나만 빠져도 결과가 무너진다:

빠진 것결과
트리거 키워드 ❌스킬이 호출되지 않음 — 사용자가 매번 명시해야
시각 DNA ❌산출물이 제멋대로 — 강의 5 PPT 가 5 가지 다른 강의 로 보임
호출 규약 ❌라이브러리 추측 → 환경마다 다르게 동작

→ Skill = 세 갈래 동시기본 단위. 분리 ❌.


안티패턴 — 자주 보는 잘못된 skill 정의

안티패턴왜 무너지는가
description 에 트리거만 적고 시각 DNA 없음AI 가 매번 색·폰트 를 새로 추측 → 일관성 ❌
시각 DNA 만 적고 호출 규약 없음pptxgenjs 인지 python-pptx 인지 모름 → 환경 의존
트리거 너무 모호 ("PPT 만들어줘")5 자매 스킬 중 어느 것을 부를지 모름 → 라우터 필요
트리거 너무 좁음 ("ppt-edge-dark 호출")사용자가 스킬명을 외워야 하면 패배

본 강의의 5 스킬은 위 4 안티패턴을 모두 피했다 — 그래서 자연어 한 줄 이 PPT 5 종을 자동 분기한다.


강의 활용

3 중 가드레일 강의에서 Skill 레이어형태 를 보여 줄 때 본 항목을 정의로 사용. Hook / Subagent 와 대비되는 Skill 만의 정의 형태.


관련 용어

  • Non-obvious PatternSkill 본문시각 DNA규약 이 적힌 자리. 코드만 봐서는 obvious 하지 않은 색·폰트 규약을 박제.
  • Lazy Loading CLAUDE.md — Skill 도 같은 원리. 루트 CLAUDE.md 가 모든 스킬을 직접 알 필요 없음. 트리거 매칭 시점에 lazy 로드.