Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: isogram
description: Build animated isometric "how it works" diagrams for web pages: a small physical machine whose motion explains a product feature (calls routed, jobs queued, data synced), with step captions and a live readout. One scene renders in several looks (glow hairline, clean vector, 2:1 pixel art, blueprint; light and dark) and exports as a drop-in <iso-gram> web component (HTML+CSS+JS), a self-contained embed snippet, GIF, PNG, SVG, WebM and a step sheet. Use for feature explainers, landing-page or docs illustrations, onboarding visuals, isometric animated diagrams, pixel-art or vector isometric illustrations, and "iso-glow"/"anatomy"-style figures meant to be embedded.
description: Build animated isometric "how it works" diagrams for web pages: a small physical machine whose motion explains a product feature (calls routed, jobs queued, data synced), with step captions and a live readout. One scene renders in several looks (glow hairline, clean vector, 2:1 pixel art, blueprint; light and dark) and exports as a drop-in iso-gram web component (HTML+CSS+JS), a self-contained embed snippet, GIF, PNG, SVG, WebM and a step sheet. Use for feature explainers, landing-page or docs illustrations, onboarding visuals, isometric animated diagrams, pixel-art or vector isometric illustrations, and "iso-glow"/"anatomy"-style figures meant to be embedded.
---

# isogram
Expand Down
4 changes: 4 additions & 0 deletions test/skill.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ test('SKILL.md has the frontmatter Claude needs', () => {
const name = m[1].match(/^name: (.+)$/m)?.[1], desc = m[1].match(/^description: (.+)$/m)?.[1]
assert.equal(name, 'isogram')
assert.ok(desc && desc.length <= 1024, `description present and ≤ 1024 chars (is ${desc?.length})`)
// Claude's skill upload rejects angle brackets in the frontmatter ("description cannot contain XML"),
// so write the element as plain iso-gram here; the body of SKILL.md can still say <iso-gram>.
for (const [k, v] of Object.entries({ name, description: desc }))
assert.doesNotMatch(v, /[<>]/, `${k} must not contain < or > (the skill validator reads them as XML tags)`)
})

test('every file SKILL.md points to exists', () => {
Expand Down
Loading