feat(skills): vendor 34 tokenized HTML presentation templates#971
feat(skills): vendor 34 tokenized HTML presentation templates#971vanceingalls wants to merge 1 commit into
Conversation
jrusso1020
left a comment
There was a problem hiding this comment.
Spot-checked the stack shape rather than the 70k lines of vendored content. Posting as COMMENT (not stamping) per merge policy.
⚠️ One real blocker — MIT license attribution
The PR vendors 34 templates from zarazhangrui/beautiful-html-templates, which is licensed under MIT (Copyright (c) 2026 Zara Zhang). MIT requires the copyright notice + license text be preserved in "all copies or substantial portions of the Software."
What I checked:
- PR diff has 0 license-like files — no
LICENSE,NOTICE,README, or attribution file in the 114-file changeset. CREDITS.mdon the branch lists Remotion as prior art (Apache 2.0) but does NOT mentionbeautiful-html-templatesor Zara Zhang.
This needs one of:
skills/hyperframes/templates/presentations/LICENSEcontaining the upstream MIT text + copyright, OR- A new section in
CREDITS.mdattributing the upstream repo + reproducing the MIT copyright notice - Both (cleaner)
Vendoring 70k lines of MIT-licensed work without attribution is a real compliance issue, not a cosmetic one. Easy to fix — one file or one section. Worth handling before merge.
Spot-checks I did do
- Directory structure: 35 template directories under
skills/hyperframes/templates/presentations/(34 from the table + 1user-designscaffold). Matches the PR summary. - File shape per template (confirmed via the file list): each has
template.html+template.json+summary.html; 10 also havedeck-stage.jsas documented. - Tokenization scheme consistency: verified the
--tp-primary/--tp-secondary/--tp-tertiary/--tp-accenttoken contract claimed in the PR body matches what the picker UI in #974 injects (tpApplyAllPaletteson the iframedocumentElement, both--tp-*and--primary/etc.). The two-level token scheme — picker injects--tp-*into templates, design.html files use--primary/etc. — is internally consistent.
Non-blocking
- Lint cleanup of
deck-stage.js(rewritingcatch (e)tocatch {}per the PR body) is fine but worth a one-line note in the file headers so future contributors don't try to "fix" it back. Or a// vendored from <upstream> @ <commit>header. - A git-style "vendored from" footer in each template's
template.json(with the upstream commit SHA) would make the next bulk-refresh much cheaper.
CI: Fallow audit + lint + format all green per the merge state. The Mintlify-skipped check is fine — this PR doesn't touch docs.
Main ask: please add the MIT attribution before merging this layer.
— Rames Jusso
22d8103 to
f0524c6
Compare
Imported from github.com/zarazhangrui/beautiful-html-templates and tokenized with the --tp-primary/--tp-secondary/--tp-tertiary/--tp-accent contract so the picker can re-theme each template at render time. Each template ships with template.html (slide deck), summary.html (picker preview), and template.json (metadata). deck-stage.js shims are included for templates that use the deck-stage web component.
f0524c6 to
9c15890
Compare

Summary
Bulk-vendor 34 HTML slide-deck templates from zarazhangrui/beautiful-html-templates, tokenized with the
--tp-primary/--tp-secondary/--tp-tertiary/--tp-accentcontract so downstream code can re-theme each template at render time.Each template ships with three files (plus an optional fourth):
template.html— the slide deck (1920×1080 deck-stage / vanilla DOM)summary.html— picker-friendly preview slicetemplate.json— name, tagline, scheme/density metadatadeck-stage.js(10 templates) — web-component shim for templates that use itScope
feat(skills): vendor 34 tokenized HTML presentation templatesWhy
This layer is mechanical and visually self-validating. Splitting it out keeps the rest of the stack reviewable:
What's in the diff
The tokenization rewires each template's hard-coded palette to read from
--tp-*CSS custom properties. Thedeck-stage.jsshim is the same upstream component, withcatch (e)and similar unused-binding patterns rewritten to barecatch {}so the repo's eslint pass stays green.Test plan
template.htmlfiles visually (open in browser) — they render with their authored colorsbunx oxlint skills/hyperframes/templates/presentations/**/*.jspasses🤖 Generated with Claude Code