Claude Code Skill
grill-with-docs의 기본 HTML 폼 출력 변형.
같은 Socratic 인터뷰로 플랜을 검증하면서, 결정이 3개 이상 누적되면 인터랙티브 HTML 폼을 자동 생성합니다.
Default HTML form variant of the grill-with-docs Claude Code skill — exports structured decision trees with FACTS, WHY, Mermaid diagrams, and a clipboard copy button.
복사됨 — 터미널에 붙여넣으세요.
TL;DR
grill-with-docs는 채팅 안에서 결정을 내립니다.
이 스킬은 그 결정을 구조화된 HTML 폼으로 내보내, 나란히 비교하고 클립보드로 복사할 수 있게 합니다.
Vanilla grilling
+HTML Form 레이어
동일하게 유지
Live Sample
실제 스킬이 생성하는 HTML 폼의 구성 요소입니다. 라디오 버튼을 클릭해 보세요.
BEFORE — 두 클라이언트가 병렬 존재
AFTER — 단일 어댑터 계층
FACTS — 현재 코드 실태
D1.1 · 통합 방식
기존 클라이언트 코드를 deprecate 할 것인지, 삭제할 것인지 결정합니다.
WHY — (a) 권장
Deletion test: LegacyAdapter를 삭제해도 도메인 동작이 유지되어야 합니다. 옵션 (a)는 단일 어댑터가 그 계약을 흡수하므로 삭제 테스트를 통과합니다. (b)는 중간 레이어를 추가하지만 "언제 지울 것인가"를 미결로 둡니다. 구버전 폐기 기한이 명확하므로 지금 결정하는 것이 타당합니다.
SIDE EFFECTS — 결정 확정 시 같이 처리
Adapter, legacy-retirementAdapterTests mock 통합, 셋업 중복 제거스티키 하단 바
폼을 채운 뒤 "결정 텍스트 생성"을 눌러 클립보드로 복사합니다.
패널 규칙
모든 결정 카드는 색상으로 구분된 패널을 사용합니다. 좌측 테두리 색상이 패널 종류를 나타냅니다.
FACTS
회색 좌측 테두리
파일 경로 + 라인 번호, 실제 상수·SQL·DTO 목록, 이 후보를 유발한 마찰 신호.
WHY — 권장 근거
녹색 좌측 테두리
권장 옵션이 왜 우선인가. Deletion test, LANGUAGE.md 원칙, 미래 결합도(coupling)를 인용.
SIDE EFFECTS
노란색 좌측 테두리
이 결정이 확정될 때 함께 처리할 것. CONTEXT.md 추가 용어, ADR 후보, 하위 테스트·계약 영향.
CONTEXT
보라색 좌측 테두리
도메인 맥락 참조. CONTEXT.md 발췌, ADR 링크, 관련 용어집(glossary) 항목.
BEFORE 다이어그램
빨간색 좌측 테두리
현재 코드 구조. Mermaid flowchart TB, mmdc 검증 필수.
AFTER 다이어그램
녹색 좌측 테두리
목표 구조. Before와 나란히 배치(2-column grid). 단순하고 안전한 Mermaid 부분집합 사용.
검증 게이트
HTML 파일을 쓰기 전에 모든 Mermaid 블록을 mmdc로 검증합니다.
실패하면 MERMAID-SAFE-SUBSET.md를 다시 읽고 수정한 뒤 재실행합니다.
모든 블록이 SVG를 출력할 때만 HTML을 확정합니다.
# 1) 초안 HTML을 임시 경로에 먼저 씁니다 DRAFT=/tmp/grill-decisions-draft.html # 2) 모든 mermaid 블록 추출 python3 - <<'PY' import re, os src = open('/tmp/grill-decisions-draft.html').read() blocks = re.findall(r'<div class="mermaid">\n(.*?)\n\s*</div>', src, re.DOTALL) out = '/tmp/mermaid-validate' os.makedirs(out, exist_ok=True) for i, b in enumerate(blocks, 1): open(f'{out}/d{i:02d}.mmd', 'w').write(b.strip() + '\n') print(f'extracted {len(blocks)} blocks') PY # 3) 각 블록 렌더링 — mmdc는 오류 시 비정상 종료 cd /tmp/mermaid-validate && for f in d*.mmd; do echo "=== $f ===" npx --yes -p @mermaid-js/mermaid-cli mmdc -q -i "$f" -o "${f%.mmd}.svg" 2>&1 \ | grep -Ei 'error|syntax|parse|warn' | head -5 done # 4) SVG 개수 = 추출 블록 개수 확인 ls /tmp/mermaid-validate/*.svg 2>&1 | wc -l # 추출 수와 같아야 함
Mermaid 안전 부분집합 — 주요 금지 패턴
| 사용 금지' 사용 금지>, <) 사용 금지 — 리터럴 문자 사용[(...)] 레이블은 단일 행만 허용설치 + 트리거
Node.js + npx가 필요합니다 (Mermaid 검증용). 첫 실행 시 @mermaid-js/mermaid-cli를 자동 설치합니다.
grill-with-docs 스킬도 함께 필요합니다.
# 옵션 A — sparse 클론 (스킬만) mkdir -p ~/.claude/skills/grill-with-docs-html curl -sL https://github.com/cskwork/grill-with-docs-html/archive/main.tar.gz | \ tar -xz --strip-components=2 -C ~/.claude/skills/grill-with-docs-html grill-with-docs-html-main/skill # 옵션 B — 전체 클론 후 심볼릭 링크 git clone https://github.com/cskwork/grill-with-docs-html ~/code/grill-with-docs-html ln -s ~/code/grill-with-docs-html/skill ~/.claude/skills/grill-with-docs-html # grill-with-docs 가 없다면 git clone https://github.com/obra/grill-with-docs ~/.claude/skills/grill-with-docs
| 언어 | 키워드 |
|---|---|
| 한국어 | "그릴링" "디자인 결정" "결정 폼" "후보 그릴링" |
| English | "grilling" "design decision" "decision form" "grill candidates" |
구조
이 스킬은 grill-with-docs를 대체하지 않고 보완합니다.
인터뷰 행동(CONTEXT.md 발견, ADR 제안, 용어 다듬기)은 상위 스킬을 그대로 재사용하고,
이 스킬의 파일들은 HTML 내보내기 레이어만 담당합니다.
파일 구성
| 파일 | 역할 |
|---|---|
skill/SKILL.md |
스킬 진입점 — 인터뷰 순서, HTML 내보내기 조건, skip 규칙 |
skill/HTML-FORM.md |
자체 완결 HTML 폼 템플릿 (Tailwind CDN, Mermaid CDN, Pretendard 폰트) |
skill/MERMAID-SAFE-SUBSET.md |
mmdc 렌더링 안전 부분집합 — 금지 패턴 목록 및 허용 문법 |
skill/VALIDATION.md |
Mermaid 블록 추출·검증 스니펫 (mmdc 파이프라인) |
README.md |
설치, 트리거, 파일 구성 요약 |
LICENSE |
MIT 라이선스 |