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.
oc-pattern-spread
Community@sumino/oc-pattern-spread
Community skill — not reviewed. It was shared by Jagulus 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: oc-pattern-spread. Run `npx -y @neta-art/neta-search-cli@latest skills use @sumino/oc-pattern-spread --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 @sumino/oc-pattern-spread
Summary
Turn one character into a hand-drawn two-page art-book spread, with their tail or hem dissolving into patterns.
You get one wide still image: your character on the left page, and a right page filled only with patterns.
The character is drawn in thin black lines with lots of blank paper and light marker-and-watercolour washes, so it looks airy and hand-made.
One part of the body, such as a tail, hem, wing or scarf, breaks apart into squares and checkerboards that spread across both pages.
The patterns hide 3 to 5 symbols from your character's world, such as a cracked bulb or a mirror, so the right page echoes the left.
Works best with a character who has a clear silhouette, a signature colour and a distinctive tail, hem or wing. The image is placed next to their card.
SKILL.md
# OC Pattern Spread
One character on the left page, its own patterns alone on the right. The character is drawn with a thin black line and left mostly as blank paper; one body extension — tail, hem, hair, wing, scarf — breaks apart into squares and checkers and keeps growing until it fills the spread. The right page is the same pattern language with nothing else on it.
The point is correspondence: whatever appears on the right page must already exist on the left, hidden in the character's body or in its dissolving extension.
## What the builder gets
- One generated 3:2 image: a two-page spread, left = character, right = pure pattern.
- The character keeps its identity: silhouette, signature hair or ears, face, core accessory, signature colour.
- The pattern field carries 3–5 symbols from the character's own world, hidden as flat units.
- A Board card next to the character's atom, and a handed-over Work.
## When to use
- "double-page illustration", "art-book spread", "画册双页", "手绘双页";
- "decorative character illustration", "pattern spread", "花纹", "方块花纹";
- the creator wants a calm, bright, designed image — not a scene, not a poster with type.
Not for: a scene with other characters; a cover with title type; a dark painterly portrait; a web page or animation. This skill makes one still image.
## Inputs
The only required input is **one character**.
- **Counts as given when** the creator names a character, points at a character card, or the turn already carries one.
- **Missing** → ask once, in one line, which character to draw; do not ask about style, palette or page logic — those are this skill's decisions.
- **All given** → build to delivery without asking again.
- One optional input may be given: a colour direction or a mood word. If absent, take both from the character material.
## Hard rules
0. **CLI.** `node /mods/neta/neta …` inside the world; Board scripts live at `/mods/neta/.agents/skills/board-ops/scripts/`.
1. **Read the character first.** Name, `## 形象参考` (or equivalent), cover, signature colour, signature extension, world theme. Never invent an identity the material already fixes.
2. **Two pages, equal width, visible centre gutter.** Left page holds the character; right page holds patterns and nothing else. No character on the right.
3. **The face is mostly blank paper.** Thin contour plus at most one or two flat washes. Do not paint a finished, fully coloured character.
4. **Patterns grow out of the body.** One named extension must physically break into pattern units; the field must not read as wallpaper behind the figure.
5. **Four pattern families minimum:** square, rounded square, nested dot-in-square, checkerboard. Hand-drawn fringed edges, flat fill, light watercolour shading.
6. **One palette:** the character's signature colour + 2–3 adjacent colours + a small area of contrast. Bright, saturated, harmonious; no muddy neutrals.
7. **No text**, no letters, no signature, no border, no watermark, no 3D render, no photographic texture.
8. **Ship it:** place the Work on the Board and hand it over. One image per run; at most one rework.
## Pipeline
### 0. Read the world and the character
```bash
node /mods/neta/neta atom list --type character
node /mods/neta/neta atom get "world/characters/<Name>.md"
node /mods/neta/neta find images "<Name>"
```
Write down five things before prompting:
| Field | Where it comes from | Example |
|---|---|---|
| Signature colour | material palette / cover | warm yellow |
| Signature extension | tail, hem, hair, wing, scarf | zigzag tail |
| Identity features | face, ears, mask, horns, accessory | black-tipped ears, one chipped cheek |
| World theme | the atom's place, faction, props | broken lamps, mirrors, carousel |
| 3–5 hidden symbols | the world's recurring objects | lightning, cracked bulb, oval mirror, curled wire |
If the material has no usable cover, still pass `@<Name>` and describe the five fields in the prompt.
### 1. Choose the two-page logic
- Pick **one** extension to dissolve. More than one turns the page into noise.
- Pick **one** adjacent colour family. Three adjacent colours total is the ceiling.
- Pick **three to five** symbols. Each becomes a single flat pattern unit, never a drawn scene.
- Decide the character's pose: relaxed three-quarter or profile, whole body, arms not crossing the face.
### 2. Build the prompt
Use [`references/prompt-recipe.md`](references/prompt-recipe.md) verbatim, filling every bracket. Keep both page blocks and the closing style block — they are what keeps the split and the palette.
Two wording rules that decide the result:
- Say **"large areas of the face and body left as blank white paper"**. Without "blank white paper" the model paints a finished character.
- Say **"the <extension>'s hard black edge breaks into rows of squares … that flow off the body and spread across the page"**. Without "breaks into", the squares sit behind the figure like a background.
### 3. Inspect the model, then generate
```bash
node /mods/neta/neta generate image params
```
Read `parameters` and `referenceImageInput.supported`, then pick exactly one shape:
- an aspect enum that contains `3:2` → `--param aspect_ratio=3:2`
- a `size` parameter → `--param size=1536x1024` (or the nearest wide size)
- a fixed-aspect model → state "wide horizontal 3:2 spread" at the top of the prompt
Pass the character cover as a real reference (mentioning it in prose is not enough):
```bash
node /mods/neta/neta generate image \
--work-title "<Name> · Pattern Spread" \
--image "world/media/studio/characters/<Name>.png" \
--param aspect_ratio=3:2 \
--prompt "$(cat /tmp/pattern-spread.txt)"
```
`@<Name>` works too, but **it must be followed immediately by a comma**. `@Name — a hand-drawn …` is parsed as one long character name, the reference is skipped, and the CLI only warns in passing. Prefer `--image` with the cover path.
Generate synchronously: the creator is waiting and the image must be judged in this turn.
### 4. Look, then judge
Open `mediaPath` with the read tool. Check in this order — one failed row is a failed image:
| Check | Pass |
|---|---|
| Spread | two equal vertical pages, gutter visible, 3:2 |
| Left page | character whole, relaxed, thin black contour, face mostly blank |
| Identity | signature hair/ears, face, accessory and colour all recognisable |
| Growth | the named extension visibly breaks into pattern units and crosses the page |
| Right page | patterns only — no character, no props, no scenery |
| Correspondence | at least three motifs on the right appear on the left |
| Pattern craft | four families minimum, fringed edges, flat fill, watercolour shading |
| Palette | one signature colour + 2–3 neighbours + small contrast; bright and clean |
| Clean | no text, no signature, no border, no 3D or photo texture |
### 5. Rework once
Only when a row above fails, and only with `--target-work <workId>` plus the same image as `--image`, so the card keeps its id and the Board is untouched:
```bash
node /mods/neta/neta generate image --target-work <workId> \
--image "world/media/studio/characters/<Name>.png" \
--param aspect_ratio=3:2 \
--prompt "<repaired prompt>"
```
Repair with the failure-fix table in [`references/prompt-recipe.md`](references/prompt-recipe.md), not by adding new elements. After the second miss, stop and say exactly which check still fails.
## Deliver
Place the image next to its character card:
```bash
node /mods/neta/.agents/skills/board-ops/scripts/place.mjs \
--title "<Name> · Pattern Spread" \
--work "<outputs[].work.path>" \
--near "world/characters/<Name>.md"
```
Then hand over the Work with an **interaction-components** link card whose target is the Work: `{ "type": "work", "workId": "<outputs[].work.id>" }`. The work id comes from the generate output, never from the prompt.
Reply in the user's language. Text the user sees in the deliverable follows the user's language — this image carries no text, so only the reply and the work title need translating. Say what the left page shows, what grew out of it, and what is hidden on the right.
## Out of scope
- Do not change world settings: `world/WORLD.md`, `visualStyle`, name, tone, language — this skill only reads them.
- Do not delete or overwrite existing files, atoms, Works or covers; a rework uses `--target-work` and leaves every other card alone.
- No web page, no animation, no second character, no title type, unless the creator asks for it as a separate piece of work.
## Files
```
oc-pattern-spread/
SKILL.md
references/prompt-recipe.md # fill-in prompt, parameter shapes, failure fixes
references/qa.md # check table and rejection examples
assets/demo-spread.webp # the shipped spread
evals/matrix.json # what a run delivers, for review
```
## Pitfalls
- **A finished, fully coloured character.** The model defaults to a complete illustration. "Blank white paper" must appear in the left-page paragraph, not only in the style block.
- **Patterns as wallpaper.** Squares behind the figure are the most common failure; tie them to one extension with "breaks into … flows off the body".
- **The right page grows a second character.** Say "patterns only, no character, no props, no scenery" — "purely decorative" alone is not enough.
- **Two different palettes.** Repeat the exact colour names in both page blocks and in the style block; never say "warm tones" on one page and a named colour on the other.
- **Text sneaks in.** Fringed squares look like stamps and the model adds tiny letters. Keep "no text, no letters, no signature, no numbers".
- **The reference is ignored.** A broken `@Name` reference is silent. Always pass `--image` for continuity, and add the five identity fields anyway.