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.
red-blue-pen-world
Community@sumino/red-blue-pen-world
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: red-blue-pen-world. Run `npx -y @neta-art/neta-search-cli@latest skills use @sumino/red-blue-pen-world --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/red-blue-pen-world
Summary
Turn one character into a tiny figure inside a huge, hand-drawn world, in just red and blue pen on white paper.
You get one wide panoramic picture of a world, drawn only in red and dark blue lines on pure white, with no grey or fill.
Plants and outlines come in red, buildings and shadows in blue. Dark areas are built from tightly packed lines, grids and dots.
Your character appears as a small full-body figure in the middle of the scene, doing one quiet action, like a detail of the landscape.
The scene has layers: plants up front, buildings and paths in the middle, a skyline and simple clouds far away.
Works best with a character who has a clear look and a place with recognizable buildings. The picture is saved as a card on your canvas.
SKILL.md
# Red & Blue Pen World
One plate, one world, one very small person. The whole scene is drawn in exactly two inks — positive red and dark blue — on pure white paper. There is no fill, no grey, no gradient: volume comes from how tightly the lines are packed, from grid rows, hatching and dot clusters. Red carries plants and the principal contours; blue carries buildings, shadows and secondary structure. A single full-body figure stands somewhere in the middle ground, small enough to be a detail of the landscape rather than its subject.
**Demo:** `assets/demo-plate.webp` — a c. 1536×1024 plate in the finished style.
**Language:** reply in the user's language. Text the user sees in the deliverable (titles, captions, board group names) follows the user's language; the prompt itself stays English.
## What the user gets
- One panoramic plate (landscape, default 3:2), the world filling the frame top-down at an angle.
- Dense layered detail: plant-heavy foreground, built middle ground, receding distance, simple cloud lines.
- One character as a tiny whole-body figure (~1/12 of the frame height) doing one still, readable action.
- Color audit passed: only the two inks plus paper.
## When to use
- "red and blue pen drawing", "two-ink panorama", "pen-and-ink world map illustration", "duotone line art";
- 红蓝线稿、红蓝双色笔绘、全景线稿、红蓝版画、小人世界观插画.
- a character who should feel small inside a large world.
Do not use for:
- a single character portrait — `generate` with a character sheet;
- a coloured illustration of any kind — this skill forbids a third colour;
- a web page or poster — this is a plate.
Out of scope: do not change the world's settings (config, style, slug) for this plate, and do not delete or overwrite existing world files — write a new Work each time.
## Hard rules
0. **Sandbox CLI path.** Every `neta` command is `node /mods/neta/neta …`.
1. **Two inks, nothing else.** Red and dark blue on pure white. No grey, no halftone, no gradient, no colour mixing, no "just a little" accent.
2. **Density, not tone.** Say hatching, row lines, grid lines, dot clusters — and say that shading is line density, never fill.
3. **Red plants, blue architecture.** Keep that division in the brief, or the plate reads as one flat colour.
4. **The figure is tiny and complete.** Whole body head to feet, roughly one twelfth of the frame height, one still action, no close-up, no second figure.
5. **Layered depth.** Foreground plants / middle buildings and paths / distant skyline and clouds — all three named in the brief.
6. **No text.** No title, signature, watermark or halftone dots.
7. **Audit before delivering.** Run `scripts/audit-colours.mjs`; a third hue above 3% or a missing ink is a rework.
8. **Place it when it is a deliverable.** Board card via board-ops `place.mjs`.
## Inputs and when to ask
| Input | Counts as given when |
|---|---|
| who the figure is | the user named a character, or a world character atom is attached |
| the world / place | the user named a place, or the world's own setting answers "where does this character live" |
| ratio | the user named one; otherwise deliver 1536×1024 |
All three given → build straight through to delivery, no questions. Missing the character *and* the place → ask once, in one message, then stop. Missing only the ratio → pick 1536×1024 and say so.
## Pipeline
### 0. Read the character and the place
```bash
node /mods/neta/neta atom get "world/characters/<Name>.md" # identity, outfit, pose habits
node /mods/neta/neta find images "<Name>" # the reference to pass to the model
```
Collect: 4+ visible features for the figure, one action that is true to the character, and the place's signature structures (what makes this world's architecture recognizable).
### 1. Write the brief
Copy `templates/brief.example.json` and replace every placeholder: `[theme]`, `[place]`, the three layers, and `character`. Nothing else is needed.
```bash
node scripts/build-prompt.mjs /tmp/plate.json > /tmp/plate-prompt.txt
```
The script refuses thin layers (3 foreground / 4 middle / 2 background), a figure with no action, and a look shorter than 40 characters. It also warns when the character or world is a well-known licensed franchise — those are rejected by providers (see below).
### 2. Generate
```bash
NETA_DEFAULT_IMAGE_MODEL=gpt-image-2 node /mods/neta/neta generate image \
--param size=1536x1024 --param quality=high \
--image "world/media/studio/characters/<Name>.png" \
--work-title "<Name> · Red & Blue Pen World" \
--prompt "$(cat /tmp/plate-prompt.txt)"
```
Model and size facts that cost time if you guess:
- `gpt-image-2` handles this style best and accepts reference images. Declared sizes that actually work: `1024x1024`, `1536x1024`, `1024x1536`.
- **Ultra-wide or unusual sizes fail** — `2048x1152`, `1440x2560`, `864x1536` come back as HTTP 404 `Invalid URL` even though the declaration lists a 512–3840 range. Use 1536×1024 for a panorama; crop or extend later if a different ratio is demanded.
- Models exposing `aspect_ratio` (e.g. Gemini-style) take `16:9` / `3:2` instead of a pixel size — check with `neta generate image params` before sending flags.
### 3. Look, then audit
Open the generated file and check the list in `references/qa.md`. Then:
```bash
node scripts/audit-colours.mjs "<plate>.png"
```
Expect roughly 25–50% red, 5–20% blue, the rest paper. Failures mean a rework with the brief tightened, not a colour fix.
### 4. Failures and their fallbacks
| Symptom | Cause | Do this |
|---|---|---|
| HTTP 500 `unexpected EOF` | upstream hiccup | retry once into the same card: `--target-work <workId>` |
| HTTP 404 `Invalid URL` | unsupported size | drop to 1536×1024 or 1024×1536, retry |
| HTTP 400 `prompt_blocked` / "copyright restrictions" | a licensed character or franchise | **do not rephrase or retry** — provider policy. Offer the composite route below |
| Third hue in the plate | model added colour | rework: repeat "two inks only, no colour mixing, no grey" at the top and bottom of the prompt |
| Figure too big / cropped | scale drift | add "the figure is about one twelfth of the picture height, whole body visible, small in the frame" |
| Grey shading | "realistic lighting" leaked in | forbid halftone and grey explicitly; ask for "line density, dot clusters, grid rows" |
### 5. Licensed characters (the honest route)
Providers refuse famous characters and franchises at generation time. Redirecting the prompt to dodge that filter is not acceptable — instead composite the user's own image:
```bash
# 1. size the supplied art to the figure's height on the plate
magick supplied.png -resize x90 /tmp/figure.png
# 2. turn it into red/blue duotone line work: greyscale → threshold → colour map
magick /tmp/figure.png -colorspace Gray -contrast-stretch 2%x2% -threshold 55% /tmp/figure-bw.png
magick /tmp/figure-bw.png -fill "#b3201e" -opaque black /tmp/figure-red.png
# 3. composite onto the plate at the chosen spot, then run the colour audit again
magick plate.png /tmp/figure-red.png -geometry +740+520 -compose over -composite final.png
```
State plainly that the character came from the user's own file, not from generation.
### 6. Place on the Board and hand it over
```bash
node /mods/neta/.agents/skills/board-ops/scripts/place.mjs \
--title "<Name> · Red & Blue Pen World" --work <work.path>
```
## Deliver
The deliverable is one image Work plus its Board card. To hand it over:
1. Place the card (above), so the plate is findable on the canvas.
2. Give the Work a handover line of its own, using an interaction-components **link** card whose target is `{ "type": "work", "workId": <the id from the generate output> }` — never a bare path, never only an inline image.
3. One line on what the plate holds (which inks, which layers, where the figure stands), then the next-steps options.
## Files
```
scripts/build-prompt.mjs # brief JSON → prompt, with layer checks and a licensed-name warning
scripts/audit-colours.mjs # two-ink audit: red / blue / paper / foreign hues
templates/brief.example.json # generic lighthouse-town example, all placeholders present
references/qa.md # visual checklist, audit interpretation, composite recipe
assets/demo-plate.webp # finished plate, for style reference
```
## Pitfalls
- **"White background" is not enough** — say "pure white paper, no grey, no halftone", or shadows arrive as soft grey.
- **One ink dominating** — a blue building on blue hatching turns the plate into a monochrome; keep red on plants and contours so the eye has two temperatures.
- **The figure is the hard part** — models enlarge it and add detail; repeat the one-twelfth rule and "whole body, no close-up".
- **Detail without order** — "crowded but orderly" plus named layers keeps the composition legible; without it you get texture soup.
- **Post-generation crops break the ratio story** — if the user needs 9:16 or 1:1, extend the canvas by stretching the edge pixel rows, or crop from a 1536×1024 plate with generous margins.