agentsclimarketplace

Skill src

Skill jordanl17/visill/packages/create-visill/template/skill-src

<<SKILL_DESCRIPTION>>From its SKILL.md

Install
npx -y skills add jordanl17/visill --skill skill-src

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

One thing to look at

  • 0 stars0 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

2.9 KB, 664 tokens by cl100k_base, as published. Nobody here has run it

<<SKILL_TITLE>>

A visill-powered hello-world skill. Given a name, the widget renders "Hello, <name>!" inline and confirms the visill toolchain is wired end to end - SDK runtime, build assembly, and render-time payload validation.

Use this skill as a starting point for your own visill widget. Replace the schema, the mustache slot in widget-src/widget.html, and the rendering logic in widget-src/widget.ts with the shape your skill needs. The data flow below stays the same.

Schema

The render-time payload must satisfy this JSON Schema. render.py validates the incoming JSON against it before chevron-rendering the widget bundle:

{{SCHEMA}}

The {{SCHEMA}} slot above is replaced at skill build time with the inlined schema, so the published SKILL.md ships a single self-contained document.

Data flow

Four layers move data from skill invocation to rendered DOM. Every visill skill follows this flow; only the field names and widget rendering change.

  1. Schema input. Claude builds a JSON payload matching assets/schema.json. For this skill, that means {"name": "world"}.
  2. render.py (Python, canonical). Reads stdin, validates against the schema, derives <key>_json mustache variants (JSON-encoded strings) for every top-level key, then chevron-renders widget-src/widget.html.
  3. Data island. The rendered bundle carries an inline <script id="root-data" type="application/json"> whose body is {"name": <name_json>}. JSON encoding survives HTML escaping because of the triple-stache {{{name_json}}} in the source template.
  4. Widget (TypeScript). widget-src/widget.ts reads the data island via readDataIsland, formats Hello, ${name}!, and renders it into #root. The widget owns presentation; render.py never builds DOM strings.

Skill authors typically only edit layers 1 and 4. The Python layer stays generic; the data island is automatically derived from the schema's top-level keys.

Usage

Construct a JSON payload matching the schema, then pipe it through render.py via stdin (heredoc) - never via a temp file, never via shell argv:

python3 ${CLAUDE_SKILL_DIR}/scripts/render.py <<'EOF'
{"name": "world"}
EOF

render.py validates the payload, derives <key>_json variants for every top-level key, and chevron-renders the widget bundle. Capture stdout and pass it to visualize:show_widget as widget_code.

Call shape for visualize:show_widget:

  • title: a kebab-case identifier for this render, for example hello_world_greeting.
  • loading_messages: 3-4 short messages shown while the widget mounts.
  • widget_code: the stdout from render.py.

The widget displays the greeting and exposes a single button that sends the rendered text back via sendPrompt. Handle that submission in your follow-up turn to produce whatever artifact the skill is designed to deliver.

What ships with it: 11 files

34.7 KB alongside SKILL.md, 6 of them executable

assets/

Keep looking

Skills are one crate of 326,758. 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.