Basic Cohub abilities. Most agents already have these mounted; listed here for reference.
Platform Published by the Neta team.
Official Made by the Neta team.
Verified Reviewed by the Neta team.
Community Shared by a Cohub user. Not reviewed — read SKILL.md before you use it.
character-parfait
Community@u252119f2fa58/character-parfait
Community skill — not reviewed. It was shared by 秋雨微澜 and has not been checked by Neta. Read SKILL.md below before letting an agent use it.
Use it in Cohub
Paste this into your agent's chat — it fetches the skill and follows it.
Use the skill: character-parfait. Run `npx -y @neta-art/neta-search-cli@latest skills use @u252119f2fa58/character-parfait --via site` and follow what it prints. Read its complete output, redirecting it to a temporary file first if necessary, and resolve relative paths from the skill directory it prints.
Install from a terminal
npx -y @neta-art/neta-search-cli@latest skills use @u252119f2fa58/character-parfait
Summary
Turn a character into a 3D dessert glass you can spin, squeeze and read like a design portrait.
Get an interactive 3D parfait page: a tulip glass with four layers, built from your character's colours and signature details.
Each layer reads from the bottom up as part of their story: where they come from, a habit, their main colour, what they hide.
Two scoops carry the colours you'd spot across a room, like hair and eyes. Squeeze them, and turn the glass with your mouse or finger.
Four to six sugar toppers, such as a hat, flower, star or cherry, each remade from one of the character's design details.
A 12-part recipe diagram explains why each part is there. Works best for a character with a clear look and a few recurring motifs.
SKILL.md
# Character Parfait
A character parfait is a portrait you can turn in your hands. The glass is their shape, the four layers are their history read from the bottom up, the two scoops are the colours you would recognise across a room, and every topper is a detail from their design remade as sugar. The page is not a recipe blog: it is a small 3D object with a 12-part diagram that explains why each part is there.
Read this file fully before writing files or running the build. Resolve relative paths from this skill's directory.
## Language
Reply in the user's language, whatever language this file is in — every message, the final handover included. Translate what the scripts print instead of pasting it. Text the user sees in the deliverable — Work title, page title, part names, UI labels — follows the user's language; text the user typed stays as they wrote it. The page carries one locale, chosen at build time and written into `content.js`; do not leave two languages mixed.
## When to use / when not
Use when the user asks for a character dessert, an impression parfait, a food version of an OC, a 3D dessert page, or a recipe diagram for a character. Not for a 2D drink, a perfume/scent dossier or a flat recipe card — say this skill builds a 3D parfait Work and stop.
## Inputs
| Item | Required | Counts as given when |
|---|---|---|
| Character | yes | The user names a character, OC or IP and their material is in the world, or they paste a profile. "Someone from this world" without a name is not given. |
| Palette source | no — default from the character's official art or written description | The user gives 2–3 hex values or names colours; otherwise sample from the character's cover or reference image |
| Language | no — default the user's language | The user writes in a language; the page uses it |
| Extra motifs | no — default 4 from research | The user names objects that must appear (a hat, a flower, a pet) |
If the character is missing, ask once for the name or the material, then stop. If every required item is given, do not ask anything and do not wait for a go-ahead: build through to delivery.
## Steps
1. **Read the character before inventing anything.** Use the world's material first: the character's card and body (`node /mods/neta/neta atom list`, `node /mods/neta/neta atom get <id>`), their cover image, and any reference images the user points at. Write `works/webs/<slug>/notes/research.md` with 10–15 facts, each marked canon / official-art detail / fan consensus / inference. You need: identity, three habits, five recurring motifs, two or three palette anchors with hex values, and one contradiction that keeps them from being a mascot.
2. **Derive the recipe, not a mood.** Read `references/recipe-mapping.md`. Fill this table in `notes/research.md` before touching code:
| Layer | What it is | Which fact it carries |
|---|---|---|
| base | crumb / soil | origin, where they come from |
| moss | one green detail | a habit, something they tend |
| mousse | dominant colour | the colour you see first |
| jelly | translucent light colour | the quality they hide or pause over |
| scoop L / R | two recognisable colours | hair, eyes, signature accessory |
| toppers (4–6) | hat / flower / star / cherry / cookie / sprig | one per motif, no filler |
Reject any layer whose only justification is "it looks good". If a motif has no fact, cut it.
3. **Copy the template into a Work folder.**
```bash
node /mods/neta/neta work init web works/webs/<slug> --title "<title in the user's language>"
cp -r .agents/skills/character-parfait/template/. works/webs/<slug>/
```
Keep `vendor/three.module.min.js`; the page must run offline with no CDN.
4. **Write `content.js` — the only file the build edits.** Follow `references/content-schema.md`. All page text, the five-colour palette, four layer names, two scoops, 4–6 toppers and all 12 part descriptions live there. Set `meta.example: false` only when every placeholder is gone.
Fixed facts of the geometry you must not change:
- reference frame 1280×714; the model is a tulip glass with a 1.85–4.6 bowl;
- four layer bands: base 1.79–2.48, moss 2.48–2.60, mousse 2.60–3.55, jelly 3.55–4.32;
- scoops at `(-0.6, 5.12, 0.16, r 0.6)` and `(0.54, 5.34, -0.12, r 0.78)`;
- exactly 12 parts with fixed ids and order (glass, base, mousse, jelly, cream, scoopL, scoopR, straw, stirrer, wafer, cherry, candy).
5. **Check the content.** Run:
```bash
node scripts/verify.mjs works/webs/<slug>
```
It writes `verify-report.json` in the Work folder. Fix every FAIL — a leftover demo, a palette that does not sum to 100, a missing part, an unknown topper type — and rerun. Do not publish while it fails.
6. **Look at the page.** Serve the folder and open it at 1440×900 and 390×844. Turn the glass, squeeze both scoops, open the diagram, hover every row and callout, press Esc. Check: no console errors, the glass is fully in frame on a phone, the diagram list scrolls without clipping, and no part description sounds like marketing copy.
7. **Publish and hand over.** See Deliver.
## Deliver
A **web Work**, registered and published:
```bash
node /mods/neta/neta work publish web works/webs/<slug> --title "<title in the user's language>"
```
Then, as the last step — the run is not delivered until it is done:
8. **Hand over with a card.** One `interaction-components` card on its own line, target `{ "type": "work", "workId": "<id>" }`, the id from the publish output (fallback: `cohubWorkId` in `works/webs/<slug>/meta.json`). Never a made-up id, a folder, or a `world-file` link to `index.html`. Then one or two lines on what it is, in the user's language.
## Out of scope
- Do not change world settings or delete files that existed before the run.
- Do not modify memory, character cards, installed scripts, existing Works or roleplays.
- Make only the parfait Work; do not act on your own next-step suggestions.
- No image generation is needed: the parfait is drawn by Three.js. Do not generate a background, a spoon or a "reference" image and paste it in.
- Do not add a second page, a shop or a game loop; this is one object and one diagram.
## When to stop
- No character named and no material to read: ask once, then stop.
- The character's material contradicts itself (two different canon palettes): pick the one with the stronger source, say which in one line, and continue; do not ask.
- The user asks for a flat illustration or a drink instead: say this skill builds a 3D parfait Work and stop.
## Gotchas
- **The diagram and the model share `parfait.js`.** Never hard-code a colour in `app.js` or `diagram.js`; a part that is green in 3D and grey in the diagram is the most common failure.
- **Two scoops, not three.** The right scoop is larger and sits higher; adding a third breaks the composition and the camera framing.
- **Topper positions are absolute** (bowl coordinates, y≈4.8–6.1). A topper placed on a scoop with `y` below 5 disappears into the cream.
- **Mobile framing:** the camera fov changes below aspect 0.75; test at 390×844, not only on a desktop.
- **The palette must sum to 100.** It is displayed as a bar; 101% leaves a visible seam.
- **`meta.example` is a real gate.** A page published with the demo content reads as a stranger's character; `verify.mjs` blocks it.