Canvas design
Skill event4u-app/agent-config/dist/agent-src/skills/canvas-design
Use when creating static visual art — posters, marketing visuals, brand assets, PDF/PNG design pieces — even if the user just says 'design a poster' or 'mach uns ein Visual'.From its SKILL.md
npx -y skills add event4u-app/agent-config --skill canvas-designAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
7.1 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it
canvas-design
When to use
Use when:
- User asks for a poster, marketing visual, brand asset, social-media graphic, cover art
- Output is a static
.pdfor.pngdesign piece (not a UI mockup, not a wireframe) - The deliverable is the visual artifact itself
Do NOT use when:
- Designing a UI component or app screen →
fe-design,ui-component-architect,react-shadcn-ui,blade-ui,flux - Tailwind / shadcn / Flux component styling →
tailwind-engineer - Brand voice / tone definition →
voice-and-tone-design - Release announcement copy →
release-comms
Goal
Produce one finished visual artifact (.pdf or .png) backed by an original design philosophy. Both files ship together.
The work emphasizes: visual expression over text · original direction (no artist mimicry) · composition that looks deliberated, not generated.
Preconditions
- Brief from user (theme, intent, occasion, target medium, size constraint)
- Output directory:
agents/design-assets/{slug}/— create if missing - Image-generation tooling available (Python with Pillow / matplotlib / cairo, SVG → PNG conversion, or whatever the environment ships)
Procedure
1. Brief intake
One numbered-options block surfaces: theme / occasion · target medium + dimensions (web 1200×630? print A3? square 1080×1080?) · color & mood direction · hard constraints (logo required? color to avoid?) · single page or series.
If the brief says "in the style of [living artist]", flag the copyright risk and propose an original direction.
2. Design philosophy
Author agents/design-assets/{slug}/philosophy.md — 4–6 paragraphs naming:
- Movement name — 1–2 words ("Chromatic Silence", "Brutalist Joy", "Analog Meditation")
- Visual language — how the philosophy manifests through space, form, color, scale, composition, rhythm
- Text role — sparse, accent only; never paragraphs
- Craftsmanship anchor — visible deliberation, not template polish
Stay aesthetically specific but leave interpretive room for the canvas execution.
3. Subtle conceptual thread
Identify a single niche reference embedded in the work — not announced, woven into form / color / composition. A jazz musician quoting another song: those who know catch it, others enjoy the music.
Document it in philosophy.md under ## Subtle reference.
4. Canvas execution
Produce agents/design-assets/{slug}/{slug}.{pdf|png}:
- Pick the execution tool (Pillow, matplotlib, SVG, or framework-native)
- Font selection — pick a font that earns the philosophy. Inspect a working dir (e.g.
agents/design-assets/{slug}/fonts/— create if missing) and place the chosen file there before render. System defaults (Arial, Helvetica, DejaVu, the matplotlib default sans) are the AI-template tell; reach for them only as deliberate fallback, never as the unexamined default - Limited palette — 2–5 colors, intentional and cohesive
- Geometric or organic forms per philosophy
- Text — sparse, design-forward, integrated as visual element; never overlapping, never falling off canvas
- Margins — every element contained, breathing room
- Repeating patterns, layered elements, systematic markers as the philosophy permits
5. Refinement pass
After the first render, do not add more graphics. Refine what exists:
- Tighten composition cohesion
- Adjust spacing, alignment, color balance
- Replace fonts if they fight the philosophy
- Remove any element that doesn't earn its place
Render the refined version. Overwrite the artifact.
6. Multi-page (optional)
If the user requests a series, treat each page as a story beat — distinct but philosophically continuous. Bundle as a multi-page PDF or numbered PNGs ({slug}-01.png, {slug}-02.png, …).
7. Validation
philosophy.mdexists with movement name + 4–6 paragraphs + subtle-reference section- Artifact file exists at the expected path
- Open and verify: nothing falls off canvas, no overlapping text, palette ≤ 5 distinct colors, every element has margin
- Original work — no traceable artist-style copy
Output format
agents/design-assets/{slug}/philosophy.mdagents/design-assets/{slug}/{slug}.{pdf|png}(or numbered series for multi-page)- One concluding line stating both file paths
Gotcha
- No artist mimicry — copying a living artist's signature style is copyright risk and breaks the original-work mandate. Propose an original direction.
- Text discipline — most pieces fail because text creeps in as paragraphs. Words are visual accents, not explanation.
- One canvas — single page unless multi-page is explicitly requested.
- Font availability — the environment may not ship your target font. Procedure step 4.2 governs selection; pick a fallback before render time and place the file in the working fonts dir.
- Output location — always
agents/design-assets/{slug}/. Never write binary artifacts to the repo root or to source-of-truth dirs. - Refinement loop is real — first render is the draft, not the deliverable.
Craftsmanship standard
The deliverable is judged against human-crafted work, not against AI-generated comparables. Visible deliberation, intentional asymmetry, and palette restraint are the markers; default templates, generic gradients, and centered safe layouts are the failure mode. If the artifact would pass for "auto-generated stock visual", it has not earned its place — refine until intent is legible.
Frugality Standards
Apply the Frugality Charter.
- Per the default-terse rule,
philosophy.mdopens with the movement name — no "In this document I will describe …" frame. - Per the cheap-question check, numbered-options blocks only at brief intake (where consequences differ).
- Per the post-action summary suppression, ship the files; skip an "## Artist statement" wrapper.
Pre-save self-check:
- Does
philosophy.mdcarry filler superlatives ("absolute pinnacle", "transcendent")? - Does the canvas include explanatory text instead of visual-accent text?
- Are more than 5 distinct colors present without justification in the philosophy?
- Is the subtle reference announced explicitly in the visual, breaking the "those who know" principle?
Do NOT
- Copy a living artist's signature visual style
- Generate cartoony / amateur / template-store output
- Add paragraphs of text — visuals communicate, words accent
- Skip the philosophy file — the artifact without it is just an image
- Skip the refinement pass
- Write binary artifacts to the repo root or to source-of-truth dirs
See also
html-deck— multi-slide HTML presentations (fixed-canvas deck with navigation); this skill owns single-frame static art, not decks.
What ships with it: 1 file
1.4 KB alongside SKILL.md
evals/
- triggers.json1.4 KB