agentsclimarketplace

V3.1

Skill AgentiaPT/vela-slides/evals/skills/v3.1

Vela Slides - AI Powered presentation App and Agent Skill

Install
npx -y skills add AgentiaPT/vela-slides --skill v3.1

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 6 stars6 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.

What its author says it does

Copied from the file, not written here

Generate Vela slide deck JSON. 22+ block types, compact format with color palette. Self-contained — no external references needed.

SKILL.md

7.2 KB, as published. Nobody here has run it

Vela Slides Skill

v3.1.0 · Self-contained, compact format + color palette

Vela CLI

python3 /path/to/vela.py deck validate <deck.json>
python3 /path/to/vela.py deck list <deck.json>
python3 /path/to/vela.py slide view <deck.json> N
python3 /path/to/vela.py slide edit <deck.json> N block.I.key "value"
python3 /path/to/vela.py deck replace-text <deck.json> "old" "new"

Compact JSON Format

Output minified JSON on one line.

Structure

{"n":"Deck Title","C":{color palette},"T":{themes},"S":[slides]}

Full format (for validation/assembly) wraps slides in lanes→items→slides:

{"deckTitle":"...","lanes":[{"title":"Main","items":[
  {"title":"Section 1","status":"done","importance":"must","slides":[...slides...]},
  {"title":"Section 2","status":"done","importance":"must","slides":[...slides...]}
]}]}

IMPORTANT: Group related slides into items (sections). A 30-slide deck should have 5-8 items with 3-6 slides each. NEVER put each slide in its own item.

Color Palette C

Define every color used 2+ times as an alias. Assign $A to the most frequent, $B next, etc.

"C":{"$A":"#3B82F6","$B":"#E6F1FF","$C":"#8892B0","$D":"#0A0F1C","$E":"#1e293b","$F":"#3B82F620","$G":"#10B981","$H":"#F59E0B"}

Rules:

  • $A-$F for primary brand colors. $G+$H for secondary accents (green, amber, etc.)
  • Use 2+ accent colors in the palette — not just one blue. Add green/amber/purple for variety.
  • NEVER map a hex to itself ("#3B82F6":"#3B82F6" is wrong). Always use "$A":"#3B82F6".

Themes T

"T":{"d":{"b":"$D","c":"$B","a":"$A","p":"60px 72px"},"a":{"b":"$E","c":"$B","a":"$A","p":"36px 48px"},"l":{"b":"#ffffff","c":"#1e293b","a":"$A","p":"36px 48px"}}
  • "d" = dark primary, "a" = dark alt (different bg), "l" = light
  • p is CSS padding string (e.g. "36px 48px"). NEVER a color hex.
  • Define 3 themes for variety.

Slides S

Each slide: t=theme ref, n=title, d=duration (int seconds), B=blocks array.

  • Spacers: bare int 8 instead of {"_":"spacer","h":8}
  • Cover/CTA/section-break slides: add bgGradient:"linear-gradient(135deg, $D 0%, $E 100%)", align:"center", verticalAlign:"center"
  • Use "t":"l" (light theme) when a slide contrasts with surrounding dark slides

Block Keys

_=type, x=text, s=size, c=color, i=icon, b=bg, w=weight(int), ic=iconColor, ib=iconBg, I=items, g=gap(int px, NOT string), lb=label, v=variant, H=headers, R=rows

Example (3-slide deck with sections)

{"n":"AI Workshop","C":{"$A":"#3B82F6","$B":"#E6F1FF","$C":"#8892B0","$D":"#0A0F1C","$E":"#1e293b","$F":"#3B82F620","$G":"#10B981"},"T":{"d":{"b":"$D","c":"$B","a":"$A","p":"60px 72px"},"a":{"b":"$E","c":"$B","a":"$A","p":"36px 48px"}},"S":[{"t":"d","bgGradient":"linear-gradient(135deg, $D 0%, $E 100%)","n":"Cover","d":20,"align":"center","verticalAlign":"center","B":[{"_":"badge","x":"WORKSHOP","i":"GraduationCap","b":"$F","c":"$A"},8,{"_":"heading","x":"AI Transforma Equipas em 2026","s":"3xl","w":700},{"_":"text","x":"Formação prática com LLMs.","s":"lg","c":"$C"}]},{"t":"a","n":"Agenda","d":60,"B":[{"_":"badge","x":"PROGRAMA","i":"Calendar","b":"$F","c":"$A"},8,{"_":"heading","x":"4 Módulos, 1 Dia, Resultados Imediatos","s":"2xl"},{"_":"steps","I":[{"title":"09:00","x":"Fundamentos LLM"},{"title":"11:00","x":"Prompt Engineering"},{"title":"14:00","x":"Agentes e MCP"},{"title":"16:00","x":"Projeto Prático"}],"lnc":"$A","nc":"$A","tc":"$B","xc":"$C"}]},{"t":"d","bgGradient":"linear-gradient(135deg, $D 0%, #0f172a 100%)","n":"CTA","d":20,"align":"center","B":[{"_":"icon","name":"Rocket","s":"xl","c":"$A","b":"$F","circle":true},8,{"_":"heading","x":"Inscreva-se Hoje — Vagas Limitadas","s":"3xl","w":700},{"_":"text","x":"Próxima turma: Abril 2026","s":"lg","c":"$C"},12,{"_":"tag-group","I":[{"x":"Inscrever","c":"$A","i":"ArrowRight"},{"x":"Demo","c":"$G","i":"Play"},{"x":"[email protected]","c":"$C","i":"Mail"}],"v":"outline"}]}]}

Block Types

Text: heading(x,s:xs→4xl,w,i,ic), text(x,s,c,maxWidth), badge(x,c,b,i), code(x,lb,s,b,c) Lists: icon-row(I=[{icon,title,x,ic,ib}] — distinct ic per item), tag-group(I=[{x,c,i}],v:filled|outline|subtle), bullets(I,dotColor) Data: table(H,R,striped,headerBg,headerColor,cellColor,borderColor), grid(cols 2-3,g,I=[{blocks,style}]), metric(value,lb,s,c,i,ic) Process: flow(I=[{i,lb,sublabel,gate:bool}],arrowColor,direction:horizontal|vertical,loop:bool,loopLabel), steps(I=[{title,x}],lineColor,numberColor,activeStep), timeline(I=[{date,title,x}],lineColor,dotColor,direction) Visual: icon(name,s:sm|md|lg|xl,c,b,circle:bool,lb), callout(x,title,b,border,c,i), quote(x,author,s,c), progress(I=[{lb,value 0-100,c}],showValue,height), spacer(bare int), divider(c,spacing)

Slide Archetypes

Cover / Section Break / CTA

align:"center", verticalAlign:"center", bgGradient. Badge + 3xl-4xl heading + subtitle. Tag-group on CTA.

Problem / Metrics

Badge + assertion heading + grid (2-3 cols) with metric cards. Each cell: icon (circle, warning color like #EF4444/#F59E0B/#F97316) + heading (stat value, 2xl, colored) + text (label). Cell style: {"padding":"16px","background":"rgba(255,255,255,0.05)","borderRadius":"8px"}. Do NOT use icon-row for numeric stats.

Solution / Process

Badge + assertion heading + flow (horizontal, with sublabels) + callout with key stat. Example callout: {"_":"callout","x":"73% resolved without human intervention","i":"Lightbulb","b":"rgba(59,130,246,0.1)","border":"$A"}

Features

Badge + heading + icon-row with distinct ic per item (e.g. $A, $G, #F59E0B, #8B5CF6).

Comparison

Badge + heading + table (striped, 5-6 rows, styled header with headerBg/headerColor).

Light Theme Contrast

When showing "theming" or contrast, use "t":"l" to render a slide with light bg. Shows adaptability.

Design Rules

  • Canvas: 960×540 (16:9). Padding via theme p (CSS string like "36px 48px").
  • Duration: int seconds. Title 15-30s | Content 60-90s | Dense 90-180s.
  • Section grouping: Group slides into items by topic. 3-6 slides per item.
  • Headlines: MUST be assertions with specifics ("AI Cuts Time 60%"), never labels.
  • Background variety: Alternate "d" and "a" themes. Use bgGradient on cover, CTA, and section-break slides (every 5-8 slides). Include at least one "l" (light) slide for contrast in longer decks.
  • Badges: Every content slide starts with badge. Vary badge bg color by section.
  • Colors: icon-row items MUST have distinct ic. Metrics MUST have distinct colors. Use 2+ accent colors from palette.
  • Max 5-7 blocks per slide. Spacers don't count.
  • Icons: PascalCase Lucide. Common: Zap, Brain, Rocket, Shield, Target, Clock, Users, Globe, Code, Database, Lightbulb, TrendingUp, BarChart, Lock, Cpu, Layers, Bot, Sparkles, Award, CheckCircle, Mail, Play, ArrowRight, GraduationCap, Settings, Eye

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.