Decks that look like they came from one studio.한 스튜디오에서 나온 것 같은 자료.
An agent skill that turns a brief into one self-contained HTML file — a deck, a document, or a diagram set. No build step, no bundler, nothing to install afterwards. The design system lives in the repository, so two decks made months apart still look related.브리프를 하나의 독립 실행 HTML 파일로 바꿔 주는 에이전트 스킬입니다. 발표 자료, 문서, 다이어그램 중 무엇이든 빌드 과정도, 번들러도, 추가 설치도 없습니다. 디자인 시스템이 저장소 안에 있으므로 몇 달 간격으로 만든 자료도 서로 닮아 있습니다.
You write the brief. The agent does the other five steps.브리프만 쓰면, 나머지 다섯 단계는 에이전트가 합니다.
Every deck goes through the same sequence, which is why the results are consistent. The intake only asks what the brief could not tell it, and every question has a default.모든 자료가 같은 순서를 거치기 때문에 결과가 일정합니다. 인테이크는 브리프에서 알 수 없는 것만 묻고, 모든 질문에 기본값이 있습니다.
They differ in shape, navigation, and how they handle language — so the choice is about what the reader will do with it, not which one looks nicer.형태와 내비게이션, 언어 처리 방식이 각각 다릅니다. 그래서 선택 기준은 “어느 쪽이 예쁜가”가 아니라 “독자가 이것으로 무엇을 하는가”입니다.
Not on the list?목록에 없다면?A seventh entry, slide-design, is a handoff rather than a template — it drives a vendored pipeline for style presets and editable .pptx, which the house templates deliberately do not do.일곱 번째 항목 slide-design은 템플릿이 아니라 인계 경로입니다. 하우스 템플릿이 일부러 다루지 않는 스타일 프리셋과 편집 가능한 .pptx를 별도 파이프라인으로 처리합니다.
03How it works작동 방식
An agent left alone invents a look every time. Four things stop that.그냥 두면 에이전트는 매번 새 디자인을 만들어 냅니다. 네 가지 장치가 그것을 막습니다.
Consistency here is structural, not a matter of asking nicely in a prompt.여기서의 일관성은 프롬프트로 부탁해서 얻는 것이 아니라 구조에서 나옵니다.
Copy, never author백지 금지
The look is a file, not a memory디자인은 기억이 아니라 파일
Design tokens, the typographic scale, the component library and the navigation all ship in the repository. The agent copies a template and fills it; it never starts from a blank file, so there is nothing to reinvent.디자인 토큰, 타이포그래피 스케일, 컴포넌트 라이브러리, 내비게이션이 모두 저장소에 들어 있습니다. 에이전트는 템플릿을 복사해 채울 뿐, 빈 파일에서 시작하지 않습니다.
Ask, then default묻되, 기본값
The intake only asks what it cannot infer추론할 수 없는 것만 묻습니다
Nine to sixteen questions depending on the template, filtered by the shape you picked, every one carrying a default. A panel that asks irrelevant questions trains people to skim the relevant ones.템플릿에 따라 9~16문항이며, 선택한 형태에 맞게 걸러집니다. 모든 문항에 기본값이 있습니다. 관계없는 질문을 하는 패널은 정작 중요한 질문까지 대충 넘기게 만듭니다.
One file파일 하나
What you get is a file, not a project프로젝트가 아니라 파일을 받습니다
No build step, no bundler, no package manager, nothing to install to read it. Open it, present it, print it, or email it. The export button is the browser's own, never a bundled library.빌드 과정도, 번들러도, 패키지 매니저도 없고, 읽기 위해 설치할 것도 없습니다. 열고, 발표하고, 인쇄하고, 메일로 보내면 됩니다. 내보내기는 브라우저 기본 기능만 씁니다.
Reviewed, not assumed가정이 아니라 검토
A design review runs before hand-off전달 전에 디자인 검토가 돌아갑니다
Step 10 of the skill. It prefers your own review tooling, falls back to the copy vendored here, and has a measured, tooling-free checklist as the floor — contrast ratios and 375px overflow are numbers, not opinions.스킬의 10단계입니다. 사용자의 검토 도구를 우선 쓰고, 없으면 저장소에 포함된 사본을, 그것도 없으면 측정 기반 체크리스트를 씁니다. 명암비와 375px 넘침은 의견이 아니라 수치입니다.
04The moving parts구성 요소
Four files do the work네 개의 파일이 일합니다
Everything is plain HTML, CSS, and Python's standard library. Run git clone and you can read the whole thing in an afternoon.전부 순수 HTML, CSS, 그리고 파이썬 표준 라이브러리입니다. git clone 한 번이면 반나절 만에 전체를 읽을 수 있습니다.
Drives the ten steps, from intake to hand-off, and holds the answer table.인테이크부터 전달까지 열 단계를 이끌고, 응답 대응표를 담고 있습니다.
IN
tedandlisa_intake.py
The panel인테이크 패널
Serves the visual intake on loopback and captures its answers as JSON. Standard library only.로컬 루프백으로 인테이크 화면을 띄우고 응답을 JSON으로 저장합니다. 표준 라이브러리만 사용합니다.
TJ
templates.json
The registry템플릿 레지스트리
One entry per template, pointing at its file, its pattern reference, and its thumbnail.템플릿마다 한 항목씩, 파일·패턴 문서·썸네일 경로를 가리킵니다.
PT
slide-patterns*.md
The components컴포넌트 참조
Verbatim, known-good markup for every component, plus the rules that are easy to get wrong.모든 컴포넌트의 검증된 마크업 원문과, 틀리기 쉬운 규칙을 함께 담았습니다.
05Install설치
Four steps, and it is available in every project네 단계면 모든 프로젝트에서 쓸 수 있습니다
For Claude Code the skills directory is ~/.claude/skills/. Other agents use their own, but the layout is the same: one directory per skill, each with a SKILL.md at its top.Claude Code의 스킬 디렉터리는 ~/.claude/skills/입니다. 다른 에이전트는 경로만 다를 뿐 구조는 같습니다. 스킬마다 디렉터리 하나, 그 안에 SKILL.md 하나입니다.
Clone it, submodules included서브모듈까지 함께 클론
The --recurse-submodules flag matters: without it the vendored pipeline directory is empty and the design handoff cannot run.--recurse-submodules 옵션이 중요합니다. 빠뜨리면 벤더 파이프라인 디렉터리가 비어 있어 디자인 인계가 동작하지 않습니다.
They live inside the clone. Symlinking them one level up is what makes /tedandlisa-design and /tedandlisa-new-template appear as commands of their own.두 스킬은 클론 안에 있습니다. 한 단계 위로 심볼릭 링크를 걸어야 /tedandlisa-design과 /tedandlisa-new-template이 독립 명령으로 나타납니다.
One line is enough. The intake panel opens, asks what the brief could not tell it, and every question already has a default — you can accept the lot and still get a finished file.한 줄이면 충분합니다. 인테이크 패널이 열리고 브리프에서 알 수 없는 것만 묻습니다. 모든 문항에 기본값이 있어 전부 그대로 두어도 완성된 파일이 나옵니다.
$/tedandlisa a 12-slide deck on our Q3 roadmap, for the exec team
Open the file파일 열기
You get one HTML file. Double-click it. There is no server to start and no dependency to install — if it opens, it is finished.HTML 파일 하나가 나옵니다. 더블클릭하면 끝입니다. 띄울 서버도, 설치할 의존성도 없습니다. 열린다면 완성된 것입니다.
Working in one project only?한 프로젝트에서만 쓰려면?Clone into that project's .claude/skills/ instead of your home directory. Everything else is identical.홈 디렉터리 대신 해당 프로젝트의 .claude/skills/에 클론하세요. 나머지는 동일합니다.
06Docs문서
What is actually in the repository저장소에 실제로 들어 있는 것
There is no build system to learn. Two Python scripts, a registry, and a folder of HTML.배워야 할 빌드 시스템이 없습니다. 파이썬 스크립트 두 개, 레지스트리 하나, 그리고 HTML 폴더 하나가 전부입니다.
Every template is a single HTML file carrying its own design tokens, chrome, scripts, and language mechanism. They are not variations of one look — a change to one has no bearing on another, which is deliberate: one template per shape, not one template with switches.각 템플릿은 자체 디자인 토큰과 크롬, 스크립트, 언어 처리 방식을 담은 HTML 파일 하나입니다. 한 디자인의 변형이 아니므로 하나를 고쳐도 다른 것에 영향이 없습니다. 이는 의도된 설계로, 형태마다 템플릿 하나이지 스위치가 달린 템플릿 하나가 아닙니다.
Language is handled two ways. The presentation deck loads Google Translate on demand, which is why anything that must not be translated — a filename, a command, a product name — is marked in its markup. The document templates instead carry both languages inline and toggle them with a class, so nothing is machine-translated and nothing needs protecting.언어는 두 가지 방식으로 처리합니다. 발표용 덱은 필요할 때 Google 번역을 불러오므로, 파일명·명령·제품명처럼 번역되면 안 되는 것은 마크업에 표시합니다. 문서 템플릿은 대신 두 언어를 파일 안에 함께 넣고 클래스로 전환하므로, 기계 번역이 개입하지 않고 따로 보호할 것도 없습니다.
No test suite, on purpose.테스트 스위트가 없는 이유.Verification is browser-based and written down as checklists: open the output, exercise navigation and the language switch, check the console, and confirm nothing overflows at 375px.검증은 브라우저에서 체크리스트로 수행합니다. 결과물을 열어 내비게이션과 언어 전환을 확인하고, 콘솔을 보고, 375px에서 넘침이 없는지 확인합니다.
Open the intake panel by hand인테이크 패널 직접 실행
$python3 scripts/tedandlisa_intake.py --prompt "the deck brief" --out intake.json
Where this wins, and where it plainly does not유리한 지점과, 분명히 불리한 지점
Against a presentation app, and against simply asking an agent for a deck with no skill installed.프레젠테이션 앱, 그리고 스킬 없이 에이전트에게 그냥 자료를 부탁하는 경우와 비교합니다.
Capability항목
Hi Ted, Meet Lisa
Presentation app프레젠테이션 앱
Agent, no skill스킬 없는 에이전트
Notes비고
One self-contained file독립 실행 파일 하나
yes
export
varies
Opens anywhere, no runtime.어디서나 열리고 런타임이 필요 없습니다.
Same look months apart몇 달 뒤에도 같은 디자인
yes
yes
no
A template file beats a remembered instruction.기억된 지시보다 템플릿 파일이 확실합니다.
Two languages in one file한 파일에 두 언어
yes
no
no
Written inline; works with no network.파일 안에 함께 작성되어 네트워크 없이 동작합니다.
Edit without an agent에이전트 없이 편집
HTML
yes
HTML
Plain HTML and CSS, but you do need to be comfortable in them.순수 HTML·CSS이지만, 다룰 줄 알아야 합니다.
Editable in PowerPointPowerPoint에서 편집
handoff
yes
no
Only through /tedandlisa-design, which needs bun./tedandlisa-design을 거쳐야 하며 bun이 필요합니다.
Real-time co-editing실시간 공동 편집
no
yes
no
A file on disk has no collaboration model. This is the real trade.디스크 위의 파일에는 협업 모델이 없습니다. 이것이 실제 대가입니다.
Pick something else when다른 도구가 나은 경우several people need to edit the same deck at the same time, or the deck has to end its life inside PowerPoint. Neither is what a single standalone file is good at.여러 사람이 같은 자료를 동시에 편집해야 하거나, 최종 산출물이 PowerPoint여야 하는 경우입니다. 둘 다 단일 독립 파일이 잘하는 일이 아닙니다.
08Decision log결정 기록
Choices that constrain what comes next앞으로를 제약하는 선택들
Not a release history — the repository has no versions. These are the decisions recorded as they were taken, each one narrowing what a future contributor may freely change.릴리스 이력이 아닙니다. 이 저장소에는 버전이 없습니다. 아래는 결정이 내려진 시점에 기록된 것들로, 각각이 이후 기여자가 자유롭게 바꿀 수 있는 범위를 좁힙니다.
D-0192026-08-29
The project-website template keeps the source design's dark palette, contrast failure included.project-website 템플릿은 원본 디자인의 어두운 팔레트를 명암비 미달까지 그대로 유지합니다.
A template preserves its author's system, including choices the extractor would have made differently.템플릿은 원작자의 체계를 보존합니다. 추출한 쪽이라면 다르게 했을 선택까지 포함해서입니다.
The measured ratios and the one-line fix are written beside the tokens, so the choice takes seconds and is deliberate.측정된 명암비와 한 줄짜리 수정안을 토큰 옆에 적어 두어, 선택이 몇 초 만에 의식적으로 이루어지도록 했습니다.
The light palette was added by this repository rather than inherited, so it is held to AA at every size.밝은 팔레트는 물려받은 것이 아니라 이 저장소가 추가한 것이므로, 모든 크기에서 AA 기준을 지킵니다.
D-0182026-08-29
The sitemap-ia skeleton ships on CDNs, and standalone is an answer rather than the default.sitemap-ia 스켈레톤은 CDN을 사용하며, 완전 독립 실행은 기본값이 아니라 선택 항목입니다.
The source document was self-contained at 9MB, of which about 8.5MB was library code.원본 문서는 9MB의 독립 실행 파일이었고, 그중 약 8.5MB가 라이브러리 코드였습니다.
On CDNs the skeleton is 111KB, in line with the other templates.CDN을 쓰면 스켈레톤은 111KB로, 다른 템플릿과 비슷한 수준입니다.
D-0172026-08-29
Intake questions can be scoped to a single template, not only to a kind.인테이크 문항을 종류 단위가 아니라 개별 템플릿 단위로 한정할 수 있습니다.
A panel that asks irrelevant questions trains people to skim the relevant ones.관계없는 질문을 하는 패널은 정작 중요한 질문까지 대충 넘기게 만듭니다.
D-0162026-08-28
The README opens with how to start, not with why it matters.README는 의의가 아니라 시작하는 방법으로 시작합니다.
The start instructions had been at line 211 of 272, below nine other sections.시작 안내가 272줄 중 211번째 줄, 아홉 개 섹션 아래에 있었습니다.
D-0092026-08-28
Source documents never enter this repository.원본 문서는 이 저장소에 들어오지 않습니다.
A source handed over for extraction is someone's real work: client architecture, internal costs, unreleased plans. Only the scrubbed skeleton is committed.추출을 위해 건네받은 원본은 누군가의 실제 작업물입니다. 고객사 구조, 내부 비용, 미공개 계획이 담깁니다. 커밋되는 것은 세척된 스켈레톤뿐입니다.
D-0072026-08-28
One template per shape, not one template with switches.형태마다 템플릿 하나이지, 스위치가 달린 템플릿 하나가 아닙니다.
09Contribute참여하기
The most useful thing you can send is a template가장 도움이 되는 기여는 템플릿입니다
If you have an HTML deck or page whose look you want to keep, /tedandlisa-new-template turns it into one — extracting the stylesheet and machinery, replacing the subject matter with placeholders, and registering the result.디자인을 계속 쓰고 싶은 HTML 자료나 페이지가 있다면 /tedandlisa-new-template이 템플릿으로 바꿔 줍니다. 스타일시트와 동작부를 추출하고, 내용은 플레이스홀더로 바꾼 뒤 등록합니다.
Before you open a pull request풀 리퀘스트를 열기 전에
C-01The source document itself is not in the diff — only the scrubbed skeleton.원본 문서가 아니라 세척된 스켈레톤만 diff에 있는지 확인합니다.
C-02No client name, project name, hostname, price, headcount, or internal URL survives — not in markup, comments, the title, or example rows.고객사명·프로젝트명·호스트명·가격·인원·내부 URL이 마크업, 주석, 타이틀, 예시 행 어디에도 남아 있지 않아야 합니다.
C-03Opened in a browser over http, with every page reachable and no console errors.http로 브라우저에서 열어 모든 페이지에 접근되고 콘솔 오류가 없는지 확인합니다.
C-04Nothing overflows horizontally at 375px — the check people forget.375px에서 가로 넘침이 없는지 확인합니다. 가장 자주 빠뜨리는 항목입니다.
C-05A pattern reference is included, so the next person composes from known-good markup instead of guessing.패턴 참조 문서를 함께 넣어, 다음 사람이 추측 대신 검증된 마크업으로 조립할 수 있게 합니다.