TRENDSHIFT #17 · 2026.06.11

plannotator/effective-html 딥다이브
— 스킬 3개로 배우는 "HTML을 AI의 출력 포맷으로 쓰는 법"

에이전트가 답을 마크다운 대신 '자기완결 HTML 한 장'으로 내놓게 만드는 Claude Code/skills.sh 플러그인이다. 들어 있는 건 코드가 아니라 SKILL.md 3장(html · html-diagram · html-plan)과, "잘 만든 HTML이란 이런 것"임을 보여주는 예제 20개(Thariq Shihipar의 html-effectiveness 코퍼스)다. 이 레포는 두 가지를 동시에 가르친다 — ① 에이전트 스킬을 어떻게 설계·배포하는가(frontmatter·점진적 공개·예시로 가르치기), ② 의존성 0짜리 HTML/CSS/SVG로 다크모드와 인터랙티브 다이어그램까지 만드는 프런트엔드 공예. (저장소: plannotator/effective-html · ★30 · Fork 1 · MIT · HTML 100% · 13 commits · TrendShift 17위)
목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 시스템 요구사항 & 설치
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

이 레포가 무엇을 하는 물건인가.

핵심 메시지

"AI에게 '예쁜 보고서 한 장 만드는 법'을 가르치는
교본 3권을, 코드가 아니라 마크다운으로 묶은 플러그인."

똑같은 질문이라도 AI가 마크다운으로 답하면 글자만 줄줄이지만, HTML 한 장으로 답하면 표·SVG 다이어그램·다크모드·클릭 인터랙션까지 담긴 작품이 나온다. effective-html은 바로 그 "HTML로 답하기"를 에이전트의 기본기로 심어주는 스킬 묶음이다. 정작 레포 안에 실행 프로그램은 없다 — 잘 쓰인 지시문(SKILL.md) 3장 + 따라 할 모범답안 20개가 전부다.

effective-htmlhtml, html-diagram, html-plan 세 개의 에이전트 스킬을 담은 저장소다. 각 스킬은 에이전트(Claude Code 등)에게 "사용자가 원하는 것을 의존성 없는 단일 .html 파일로, 정해진 'effective HTML' 스타일에 맞춰 만들어라"라고 지시한다. 세 스킬의 차이는 의도다 — html은 범용(리포트·설명·비교·덱), html-diagramSVG 아키텍처 다이어그램 전용, html-plan계획서 페이지 전용.

이 레포의 진짜 자산은 각 스킬에 번들된 레퍼런스 코퍼스다. Thariq Shihipar가 쓴 글 "The unreasonable effectiveness of HTML(HTML의 비합리적 효과)"에 딸린 예제 20개(코드리뷰·디자인시스템·슬라이드덱·상태리포트·인시던트리포트·플로차트 등)를 통째로 넣어, 에이전트가 추상적 지시가 아니라 "잘된 결과물 20개를 보고 그 밀도·톤·정렬을 흉내"내도록 했다. 그래서 두 갈래로 읽힌다. ① 스킬 엔지니어링(에이전트 시대의 새로운 "코딩"), ② 프런트엔드 공예(빌드도 프레임워크도 없이 HTML·CSS·SVG만으로 완성도 내기).

용어
Agent Skill (에이전트 스킬) · SKILL.md
에이전트에게 "이런 상황엔 이렇게 행동하라"를 가르치는 플러그인. 핵심은 SKILL.md 한 장 — 맨 위 frontmatter(이름·설명)는 항상 메모리에 떠 있다가, 관련 작업이 들어오면 본문과 참조 파일을 펼쳐 읽는다. 코드가 아니라 잘 쓰인 자연어 지시문 + 예시가 곧 기능이다.
용어
self-contained HTML (자기완결 HTML)
하나의 .html 파일 안에 마크업·CSS·자바스크립트·SVG가 전부 들어 있어 빌드 단계도, 외부 의존성도, 인터넷도 필요 없는 문서. 더블클릭하면 그냥 열린다. AI 산출물에 특히 잘 맞는 포맷이다 — 메일로 보내든 사내망에 두든 그 한 파일이면 끝.

2왜 주목받는가

트렌딩 이유 · 경쟁 접근 대비 장점.

2026년 들어 "에이전트가 마크다운으로만 답하는 건 손해다"라는 인식이 퍼졌다. 마크다운은 제목·목록·표까지가 한계지만, HTML은 같은 한 파일에 다이어그램·색·레이아웃·인터랙션·다크모드를 전부 담는다. 이 "HTML의 비합리적 효과"라는 밈을 실전 스킬로 떨어뜨린 게 effective-html이라서, 별·포크 규모(★30)는 작아도 에이전트 스킬 생태계에서 빠르게 회자됐다. 차별점은 넷이다.

비교 항목그냥 "HTML로 만들어줘" 프롬프트effective-html 스킬
품질 기준매번 들쭉날쭉(에이전트 기분대로)모범답안 20개에 정렬(밀도·톤 고정)
의도 구분한 덩어리3개로 분리(범용/다이어그램/계획)
발동 방식명시 호출 전용(자동발동 끔)
다크모드보통 빠짐항상 강제(toggle+저장+선적용)
배포복붙npx skills add · Claude Code 플러그인
차별점 ① — 예시로 가르친다
추상적 규칙 대신 "잘된 20개를 보고 맞춰라"

SKILL.md 본문은 의외로 짧다(13~23줄). 대신 "references/html-effectiveness/ 안의 파일들을 전부 훑어보고, 그 정렬·밀도·톤에 최대한 맞춰라"라고 시킨다. 규칙을 말로 길게 적는 대신 완성품 코퍼스를 few-shot 예시로 번들한 것 — 이게 작은 모델까지 일관된 결과를 내게 하는 핵심이다.

차별점 ② — 의도별 3분할
한 스킬이 다 하지 않는다

같은 "HTML 만들기"라도 다이어그램은 산문을 걷어내고 풀스크린 SVG로 가야 하고, 계획서는 사용자가 준 문장을 거의 그대로 살려야 한다. 그래서 html-diagram/html-plan을 따로 두고, 애매한 나머지는 범용 html이 받는다. "하나의 큰 스킬"보다 "좁고 명확한 여러 스킬"이 잘 발동·잘 작동한다는 설계 철학의 사례다.

차별점 ③ — disable-model-invocation
에이전트가 멋대로 켜지 않는다

세 스킬 모두 frontmatter에 disable-model-invocation: true가 박혀 있다. 즉 모델이 "알아서" 발동하지 못하고, 사용자가 명시적으로 이 스킬을 지목해야만 켜진다. HTML 산출물은 무겁고 취향을 타므로, 원할 때만 부르게 한 의도다. "언제 자동발동을 끌 것인가"를 보여주는 좋은 교본.

비유

레시피북 vs 요리사 매뉴얼. 보통 "HTML로 만들어줘"는 요리사에게 "맛있게 해줘"라고만 하는 것과 같다. effective-html은 대신 완성된 시그니처 요리 사진 20장(레퍼런스 코퍼스)을 보여주고 "이 플레이팅·간·양에 맞춰라"라고 한다. 말보다 사진이 정확하고, 신참 요리사(작은 모델)도 따라 한다.

3기술 스택 전체 지도

스킬 레포는 "산출물 스택 / 스킬 런타임 / 배포"의 3층으로 본다.

이 레포에는 서버도 DB도 없다. 그래서 흔한 "백엔드/프론트엔드/인프라" 대신, 스킬형 저장소에 맞는 3층으로 지도를 다시 그리는 게 정확하다.

구성요소역할
① 산출물(프런트엔드)순수 HTML5 · CSS(커스텀 프로퍼티) · SVG · Vanilla JS스킬이 만들어내는 결과물. 프레임워크·번들러·CDN 의존조차 없음
② 스킬 런타임(백엔드)Claude Code 등 에이전트 · SKILL.md · references/frontmatter를 읽고 본문·예제를 펼쳐 HTML을 생성하는 "실행기"
③ 배포/패키징(인프라)skills.sh · .claude-plugin/plugin.json · skills.sh.json스킬을 설치·그룹화·배포하는 메타데이터

① 산출물 스택 — "의존성 0"이 핵심

레퍼런스 예제와 모범 architecture-example.html은 전부 다음만 쓴다.

용어
CSS Custom Properties (CSS 변수)
:root{ --bg:#fff }처럼 선언하고 background:var(--bg)로 쓰는 사용자 정의 변수. 다크모드는 html.dark{ --bg:#141413 } 한 블록으로 모든 색을 한꺼번에 갈아끼우는 식으로 구현한다 — 색을 곳곳에 박아두지 않는 게 비결.

② 스킬 런타임 — frontmatter가 계약서

각 SKILL.md 맨 위 YAML이 에이전트와의 계약이다. name(스킬 ID), description(언제 쓰는지 — 매칭용 항상 로드), disable-model-invocation(자동발동 여부). 본문은 평소엔 안 읽히다가 스킬이 선택돼야 펼쳐진다(점진적 공개).

③ 배포 — 두 채널을 동시에 지원

skills.sh.json은 skills.sh 레지스트리용(그룹 "Effective HTML"로 3개 묶음), .claude-plugin/plugin.json은 Claude Code 플러그인용(스킬 경로 3개 등록). 같은 레포가 두 생태계에 동시에 설치된다.

# skills.sh로 설치 (npx 한 줄)
npx skills add plannotator/effective-html
npx skills add plannotator/effective-html --list
npx skills add plannotator/effective-html --skill html-diagram

4아키텍처 심화 분석

스킬이 발동되는 흐름 + 모범 다이어그램의 내부.

4-1. 스킬 발동 파이프라인

사용자가 스킬을 지목하면, 에이전트는 frontmatter→본문→레퍼런스 순으로 "필요한 만큼만" 읽어 HTML을 만든다.

사용자: "이 구조를 html-diagram 스킬로 그려줘" │ ▼ ┌──────────────────────────────────────────────┐ │ 1. frontmatter 매칭 (항상 메모리에 떠 있음) │ │ name: html-diagram │ │ description: "...풀스크린 SVG 다이어그램..." │ │ disable-model-invocation: true ← 수동 호출 │ └──────────────────────────────────────────────┘ │ (선택됨) ▼ ┌──────────────────────────────────────────────┐ │ 2. SKILL.md 본문 펼침 (점진적 공개) │ │ "references/ 의 SVG 예제들을 먼저 훑어라" │ │ "산문 줄이고 풀스크린 SVG로 가라" │ └──────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────┐ │ 3. 레퍼런스 코퍼스 로드 (few-shot 예시) │ │ references/html-effectiveness/*.html (20개)│ │ references/architecture-example.html (모범) │ └──────────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────┐ │ 4. 산출: self-contained .html 1개 │ │ 인라인 CSS변수 테마 + 인라인 SVG + JS │ │ 다크모드 3종 세트 포함 │ └──────────────────────────────────────────────┘
용어
Progressive Disclosure (점진적 공개)
스킬의 정보를 한꺼번에 다 읽히지 않고 단계적으로 푸는 설계. ①짧은 description은 항상 로드 → ②선택되면 본문 → ③필요하면 참조 파일. 컨텍스트(토큰)를 아끼면서도 깊은 자료를 갖출 수 있어, 에이전트 스킬의 핵심 패턴이다.

4-2. 모범답안 architecture-example.html 해부

이 한 파일(462줄)이 html-diagram이 지향하는 "잘된 결과물"의 표본이다. 구조를 뜯어보면 4가지 기법이 보인다.

기법 ① — 풀스크린 SVG 무대(stage)

bodyflex column + overflow:hidden으로 잡고, 상단 바를 뺀 나머지를 .stage가 채운다. 그 안에 <svg viewBox="0 0 1560 980" preserveAspectRatio="xMidYMid meet">position:absolute; inset:0로 깔아 창 크기와 무관하게 다이어그램이 꽉 차고 비율을 유지한다.

기법 ② — 노드를 데이터로

각 박스는 <g class="node" data-k="agent">처럼 종류(class)와 키(data-k)를 달고 있다. 자바스크립트는 nodes.forEach(n => n.addEventListener('click', ...))로 클릭을 받아 강조한다. 색은 SVG 안에 hex로 박지 않고 class로만 지정 → CSS 변수가 바뀌면 다이어그램도 테마를 따라간다.

기법 ③ — 흐름 칩(flow chips)으로 시퀀스 애니메이션

상단의 .chip[data-flow]을 누르면 setFlow()가 특정 요청 경로(예: "로그인 흐름")의 노드·간선만 차례로 불을 켜며 애니메이션한다. 정적 그림이 아니라 "이 시스템이 어떻게 동작하는지"를 단계별로 보여주는 인터랙티브 다이어그램이 되는 지점.

기법 ④ — 테마 토글 + 선(先)적용

#themeToggle 클릭 시 html.dark를 토글하고 localStorage.setItem('theme', ...)로 저장. 그리고 <head> 최상단의 작은 스크립트가 페이지가 그려지기 전에 저장값/시스템설정을 읽어 클래스를 미리 붙인다 → 새로고침해도 흰 화면이 번쩍이지 않는다(FOUC 방지).

흔한 실수
SVG 안에 색을 hex로 박으면 다크모드가 깨진다

<rect fill="#fff">처럼 직접 칠하면 다크 팔레트로 못 바뀐다. effective-html은 "SVG는 CSS 클래스로만 스타일링, 변수로 색 지정"을 못 박는다. 다이어그램이 테마를 따라가게 하려면 이 규칙이 필수.

5디렉토리 구조 해부

파일이 적다 — 그래서 하나하나가 의미를 갖는다.

effective-html/ ├─ README.md # 철학 + 설치법 + 크레딧(Thariq) ├─ LICENSE # MIT (플러그인 본체) ├─ skills.sh.json # skills.sh 레지스트리 메타(그룹 "Effective HTML") ├─ .agents/ # 루트 agents 설정 ├─ .claude-plugin/ │ └─ plugin.json # Claude Code 플러그인 매니페스트(스킬 3개 등록) ├─ .codex-plugin/ # Codex 플러그인 메타 └─ skills/ ├─ html/ # 범용 HTML 스킬 │ ├─ SKILL.md # 13줄: "예제 보고 그 스타일로 만들어라" + 다크모드 │ ├─ agents/ │ │ └─ openai.yaml # OpenAI 에이전트 설정 │ └─ references/ │ └─ html-effectiveness/ # 예제 20개 번들(Apache 2.0) ├─ html-diagram/ # SVG 아키텍처 다이어그램 전용 │ ├─ SKILL.md # 23줄: 풀스크린 SVG·인터랙션·테마 규칙 │ ├─ agents/ │ │ └─ openai.yaml # OpenAI 에이전트 설정 │ └─ references/ │ ├─ architecture-example.html # 모범답안(클릭·flow 애니메이션) │ └─ html-effectiveness/ # 동일 예제 코퍼스 └─ html-plan/ # 계획서 페이지 전용 ├─ SKILL.md # 15줄: "사용자 문장 살려라, 키워라 말라" ├─ agents/ │ └─ openai.yaml # OpenAI 에이전트 설정 └─ references/ └─ html-effectiveness/ # 동일 예제 코퍼스
관찰

세 스킬이 같은 예제 코퍼스를 각자 복제해서 들고 있다(레포 용량의 대부분, 약 1.5MB가 이 중복 예제다). 비효율로 보이지만 의도적이다 — README曰 "예제를 스킬 로컬에 두어야 스킬만 떼어 설치해도 자기완결적으로 동작"하기 때문. 배포 단위(스킬)의 독립성을 위해 중복을 감수한 트레이드오프다.

6학습 포인트 (기술별)

이 레포 하나로 두 분야를 동시에 챙긴다 — 스킬 설계 + HTML 공예.

① 스킬 엔지니어링

가장 큰 배움은 "기능을 코드가 아니라 frontmatter + 예시로 정의"하는 법이다. 좋은 description은 "무엇을 하는가"가 아니라 "언제 이걸 골라야 하는가"를 적는다(이 레포의 description들이 전부 "Use when the user wants…" 꼴인 이유). 본문은 짧게, 깊이는 references로 — 점진적 공개.

실습: 내가 자주 하는 작업 하나를 골라 10줄짜리 SKILL.md로 만들어 보기. frontmatter의 description만 3가지 버전으로 바꿔 발동률 차이를 관찰.

② 다크모드 3종 세트 (모든 산출물 공통 규칙)

세 SKILL.md가 똑같이 강제하는 패턴 — 이걸 손에 익히면 어떤 정적 HTML에도 쓸 수 있다.

<!-- (1) head 최상단: 그려지기 전에 테마 선적용 → FOUC 방지 -->
<script>
  (function(){
    const saved = localStorage.getItem('theme');
    const dark = saved ? saved==='dark'
                       : matchMedia('(prefers-color-scheme: dark)').matches;
    document.documentElement.classList.toggle('dark', dark);
  })();
</script>

/* (2) CSS: 두 팔레트를 변수로만 정의 */
:root      { --bg:#FAF9F5; --ink:#141413; }
html.dark  { --bg:#141413; --ink:#FAF9F5; }

// (3) 토글 버튼: 클래스 토글 + localStorage 저장
themeToggle.onclick = () => {
  const dark = document.documentElement.classList.toggle('dark');
  localStorage.setItem('theme', dark ? 'dark' : 'light');
};
실습: 예전에 만든 정적 페이지 하나에 위 3종 세트를 이식해 다크모드를 붙여 보기.

③ SVG로 "코드인 다이어그램" 만들기

이미지 캡처가 아니라 viewBox 좌표계 위에 <g class="node">로 그리면, 텍스트 검색·테마 추종·클릭 인터랙션이 공짜로 따라온다. html-diagram의 핵심 학습 포인트.

실습: 자주 쓰는 시스템(예: 로그인 흐름)을 viewBox 800×500 안에 노드 5개·간선 6개로 그리고, 클릭하면 강조되게 만들기.

④ 두 채널 배포(skills.sh + Claude Code plugin)

같은 디렉토리를 skills.sh.json.claude-plugin/plugin.json 두 매니페스트로 노출하는 법. 자작 스킬을 남들이 npx skills add 한 줄로 받게 하는 패키징 감각을 익힌다.

7시스템 요구사항 & 설치

무겁지 않다 — Node와 에이전트, 브라우저면 끝.

항목요구사항메모
스킬 설치기Node.js(npx) 또는 호환 에이전트npx skills add가 깃 URL을 받아 스킬 폴더에 복사
실행 에이전트Claude Code 등 Agent Skills 지원 툴SKILL.md frontmatter/본문을 읽어 실행
산출물 열람모던 웹 브라우저빌드·서버 불필요 — .html 더블클릭
네트워크설치 시에만 필요산출물은 의존성 0 → 오프라인 열람 가능
# 전체 설치
npx skills add plannotator/effective-html

# 먼저 어떤 스킬이 있는지 보기
npx skills add plannotator/effective-html --list

# 특정 스킬만 설치
npx skills add plannotator/effective-html --skill html-diagram
npx skills add plannotator/effective-html --skill html-plan

Claude Code 플러그인으로 쓸 땐 .claude-plugin/plugin.json./skills/html, ./skills/html-diagram, ./skills/html-plan 세 경로를 등록하므로, 레포를 플러그인으로 추가하면 세 스킬이 한꺼번에 붙는다. 발동은 disable-model-invocation: true 때문에 항상 사용자가 명시해야 한다("html-diagram 스킬로 그려줘").

8직접 해볼 수 있는 실습 과제

읽기만 하지 말고, 난이도순으로 손을 움직여 보자.

Lv1. 레퍼런스 1개 해부 입문 · 30분

references/html-effectiveness/16-implementation-plan.html(32KB, 가장 큰 예제)를 브라우저로 열고, 다크모드 토글이 어떻게 구현됐는지 head의 선적용 스크립트부터 추적해 본다. "한 파일에 다 들어 있다"를 눈으로 확인.

Lv2. 내 레포를 다이어그램화 초급 · 1시간

스킬을 설치하고, 내가 만든 작은 프로젝트의 구조를 "html-diagram 스킬로 풀스크린 SVG 다이어그램을 그려줘"라고 시켜 본다. 나온 결과의 SVG가 hex가 아니라 class로 칠해졌는지 확인하고, 안 그랬으면 직접 고쳐 다크모드를 따라가게 만든다.

Lv3. 네 번째 스킬 추가 중급 · 2시간

skills/html-slide/SKILL.md를 새로 만들어 "슬라이드 덱 전용" 스킬을 추가한다. frontmatter(name·description·disable-model-invocation) 작성 후 plugin.jsonskills.sh.json에도 등록해, 패키징까지 일관되게 반영해 본다.

Lv4. flow 칩 인터랙션 직접 구현 중상급 · 반나절

architecture-example.htmlsetFlow()를 읽고, 내 다이어그램에 "흐름 칩"을 달아 특정 요청 경로의 노드·간선만 순차 점등되게 만든다. 정적 그림을 "동작을 보여주는" 다이어그램으로 끌어올리는 연습.

Lv5. 한국어 레퍼런스 코퍼스 만들기 고급 · 1~2일

영문 html-effectiveness 대신, 한국어 톤·타이포(Pretendard 등)에 맞춘 모범 HTML 예제 6~10개를 직접 만들어 references/에 번들하고 SKILL.md가 그걸 보게 한다. "예시로 가르치기"를 내 언어·취향에 맞게 재현하는 최종 단계.

9관련 기술 심화 학습 로드맵

4주 코스 — 스킬 설계와 HTML 공예를 번갈아 다진다.

주차주제핵심 활동
1주차Agent Skills 기본기SKILL.md 구조 · frontmatter · 점진적 공개 · disable-model-invocation 이해. 직접 미니 스킬 1개 작성(Lv1·Lv3)
2주차의존성 0 HTML/CSSCSS 변수 테마 시스템 · 다크모드 3종 세트 · 시맨틱 레이아웃. 기존 페이지에 이식(Lv2)
3주차SVG 다이어그램viewBox/preserveAspectRatio 좌표계 · 노드를 데이터로(class·data-*) · class 기반 테마. 정적 다이어그램 완성
4주차인터랙션 + 배포클릭·flow 시퀀스 애니메이션(Lv4) · skills.sh/Claude Code 두 채널 배포 · 나만의 코퍼스(Lv5)
학습 순서의 이유

스킬 설계(1주)를 먼저 본 뒤 HTML 공예(2~3주)로 내려가면, "에이전트에게 무엇을 어떻게 지시해야 좋은 HTML이 나오는가"라는 지시자의 시선과 "그 HTML을 직접 짜는 법"이라는 구현자의 시선을 둘 다 갖게 된다. 이 레포의 가치가 바로 그 두 시선의 결합이다.

10핵심 키워드 사전

이 레포를 읽다 마주치는 용어들.

용어
frontmatter
파일 맨 위 ---로 감싼 YAML 메타데이터. SKILL.md에선 name·description·disable-model-invocation이 들어가며, 본문과 달리 항상 로드되어 스킬 선택의 기준이 된다.
용어
disable-model-invocation
frontmatter 플래그. true면 모델이 자동으로 스킬을 발동하지 못하고 사용자가 명시적으로 호출해야만 켜진다. 무겁거나 취향을 타는 산출물(여기선 HTML)에서 오발동을 막는 장치.
용어
Progressive Disclosure
정보를 한 번에 다 펼치지 않고 단계적으로 공개하는 설계. description(항상) → 본문(선택 시) → references(필요 시). 토큰을 아끼며 깊은 자료를 담는 에이전트 스킬의 정석.
용어
self-contained / single-file HTML
CSS·JS·SVG가 한 .html에 인라인된, 빌드·의존성·서버가 필요 없는 문서. AI 산출물 포맷으로 이상적 — 그 파일 하나만 전달하면 끝.
용어
FOUC · apply-before-paint
FOUC(Flash Of Unstyled Content)는 페이지가 잠깐 잘못된(밝은) 모습으로 번쩍이는 현상. <head> 최상단의 작은 스크립트로 그려지기 전에 테마 클래스를 붙여 막는다.
용어
CSS Custom Properties
--name으로 선언하고 var(--name)으로 쓰는 변수. 라이트/다크 두 팔레트를 :root/html.dark 두 블록의 변수 스왑만으로 전환하는 게 핵심 활용.
용어
viewBox / preserveAspectRatio
SVG의 가상 좌표계와 비율 유지 규칙. viewBox="0 0 1560 980"는 그 좌표 위에 도형을 배치하고, preserveAspectRatio="xMidYMid meet"는 창 크기가 변해도 가운데 정렬로 비율을 지킨다 → 풀스크린 반응형 다이어그램의 토대.
용어
skills.sh / npx skills add
에이전트 스킬을 깃 URL로 설치·공유하는 사실상의 표준 도구/레지스트리. --list로 스킬 목록, --skill로 개별 설치. 이 레포의 skills.sh.json이 그 메타데이터다.
용어
.claude-plugin/plugin.json
Claude Code 플러그인 매니페스트. name과 등록할 skills 경로 배열을 담아, 레포 하나를 플러그인으로 묶어 여러 스킬을 한꺼번에 설치하게 한다.
용어
html-effectiveness 코퍼스 (Thariq Shihipar)
"The unreasonable effectiveness of HTML" 글에 딸린 20개 예제(코드리뷰·디자인시스템·슬라이드덱·상태/인시던트 리포트·플로차트 등). Apache 2.0로 공개돼 있고, effective-html이 이를 번들해 few-shot 모범답안으로 쓴다.
용어
MIT vs Apache 2.0
둘 다 관대한 오픈소스 라이선스. 플러그인 본체는 MIT, 번들된 예제 코퍼스는 원저작자 기준 Apache 2.0이라 두 라이선스가 한 레포에 공존한다(서로 호환). 남의 자산을 번들할 때 원 라이선스를 함께 보존하는 좋은 사례.

11참고 링크

원본과 더 깊이 파고들 자료.

프로젝트 원본

· GitHub 저장소: github.com/plannotator/effective-html
· 제작자 사이트: plannotator.ai
· 설치: npx skills add plannotator/effective-html

지식의 출처

· Thariq Shihipar — html-effectiveness 갤러리: thariqs.github.io/html-effectiveness
· "The unreasonable effectiveness of HTML" — HTML을 AI 출력 포맷으로 쓰자는 원 아이디어의 출처

에이전트 스킬 배경

· Claude Code 스킬 문서: docs.claude.com/en/docs/claude-code/skills
· Anthropic — Agent Skills 소개: anthropic.com/news/skills
· skills.sh — 스킬 설치/배포 도구: skills.sh