a2ui
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that…
Create and edit Bento presentations — self-contained .bento.html decks whose document is JSON. Use whenever the user wants a slide deck or presentation: from scratch, from source material, or by improving an existing file.
Claude Code
$ npx -y skills add Prism-Shadow/penguin-harness --skill bento-slides --agent claude-code
Codex
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a codex -y
Cursor
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a cursor -y
Gemini CLI
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a gemini-cli -y
GitHub Copilot
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a github-copilot -y
OpenCode
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a opencode -y
Windsurf
$ npx skills add Prism-Shadow/penguin-harness --skill bento-slides -a windsurf -y
name: bento-slides description: "Create and edit Bento presentations — self-contained .bento.html decks whose document is JSON. Use whenever the user wants a slide deck or presentation: from scratch, from source material, or by improving an existing file." version: 2026.10.11.1
A Bento deck is one self-contained `.bento.html` file. The document is plain JSON in a single block:
<script type="application/bento+json" id="bento-doc"> { "format":"bento/slides", ... } </script>Edit **that block only**, in place. Escape every `<` in the JSON as `\u003c` so it can never contain a literal `</script>`. Leave the rest of the file — the compressed runtime — untouched. In a chat context the user copies the JSON out instead (*Save ▾ → Copy document JSON*) and pastes the replacement back (*Save ▾ → Replace from JSON…*); `window.bento.loadDoc(json)` does the same from the console.
Adapted from the Bento project's own skill, https://bento.page/skills/bento-slides/SKILL.md (MIT, © 2026 The Bento/Suite authors). The authoritative schema and recipe reference is https://bento.page/agents.md.
If the user's message only invokes this skill (e.g. "use bento-slides skill") without a concrete request, ask what deck they want before doing anything: the topic, the source material to build it from, and whether to start from scratch or edit an existing `.bento.html`. Do not download anything or write a document until the goal is clear.
The user does not need Bento installed — the app ships inside every deck. When there is no `.bento.html` to edit, fetch the latest signed release and author into it:
# name the file after the deck's topic, e.g. Q4_Review.bento.html curl -fsSL https://bento.page/releases/slides/Bento_Slides.bento.html -o "<Topic>.bento.html"
On Windows without curl: `iwr https://bento.page/releases/slides/Bento_Slides.bento.html -OutFile <Topic>.bento.html`.
Verify the download contains `id="bento-doc"`, then **replace** that block's JSON — it ships with a showcase deck, which is discarded. For a fresh document:
When done, offer to open it (`open` / `xdg-open` / `start`): the file boots straight into the editor with the finished deck. Aim for one pass from request to opened deck.
1. **Find the document.** Locate the `#bento-doc` block and parse its JSON. Note `doc.size` (canonical 1280×720), `doc.theme`, existing element `id`s, and whether `doc.template` / `doc.readonly` are set. 2. **Read the source material** the user gave you and classify each piece — a stat, a table, a process, a definition to expand, a photo. 3. **Map material to a feature; do not default to bullet text.** This is the step that makes it a Bento deck rather than a slideshow of paragraphs:
4. **Author** using the schema, keeping https://bento.page/agents.md open for the element shapes, the morph / chart / state / ken-burns snippets and the gotchas. Respect one accent colour, at most two typefaces, 96px side margins (right-most x ≤ 1184), and write **speaker notes** on every slide. 5. **Self-audit before finishing:**
6. **Write back** the edited `#bento-doc` block (escaping `<` as `\u003c`), or return the replacement JSON. Never regenerate the whole HTML file.
Make a reply easier to read and act on with rich blocks inside ordinary Markdown — a choice the user picks from, a form that…
Run ACE (Agentic Context Engineering, Zhang et al. 2025) on an agent the sequential offline way - a Reflector reads each training…
Run a PenguinHarness organization as its CEO — turn the mission into a ticket tree, hire HR and finance first, partition the…
The protocol every employee of a PenguinHarness organization follows — read the handbook first, act on [org_trigger] work runs,…
Run finance for a PenguinHarness organization — set and adjust monthly budgets along the reporting line, audit spend daily with…
Run HR for a PenguinHarness organization — guarantee every employee has an enabled calendar event, hire and offboard employees…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.