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-constructivist-poster
Community@sumino/oc-constructivist-poster
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-constructivist-poster. Run `npx -y @neta-art/neta-search-cli@latest skills use @sumino/oc-constructivist-poster --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-constructivist-poster
Summary
Turn one of your characters into a dense, retro Russian Constructivist poster on aged paper, with the lettering built into the art.
You get one tall poster: a black-and-white halftone close-up of your character at the center, cut out and pasted slightly crooked on warm beige paper.
Your character's world grows out of the portrait: landmarks rise from the hat or hair, rides curl off braids, and small cast members perch on ledges.
Only three colors appear: beige paper, black ink and bold crimson circles, triangles and bars, plus one crimson mark on the face.
Chinese and English lettering is part of the picture: a masthead, a huge crimson theme word, a Chinese title with vertical keywords, and a ruled info bar.
Works best for a character with a distinctive look, a clear world with landmarks, and four to eight named side characters. It lands on your board.
SKILL.md
# OC Constructivist Poster
A single vertical sheet of aged paper, printed like a 1920s experimental theatre programme. The OC's face is a hard-cut black-and-white halftone photograph at the centre; the world grows out of her hair, shoulders and collar at impossible scales; crimson circles, triangles and bars lock everything to an invisible grid; four registers of mixed Chinese and English type turn the image into a poster rather than an illustration.
**Live demo:** https://neta.art/w/sumino/sweet-nightmare-park/rakushero-constructivist-poster
Unlike the shattered-glass or art-book skills, the type here is **inside the artwork**. It is part of the composition and is generated with the image. That is the point: the poster must read as a printed object, not as a picture with a caption.
## What the user gets
- A 2:3 vertical poster, typically `1024x1536` (gpt-image-2 caps the returned size).
- A black-and-white halftone close-up of the OC, hard-cut with a slight pasted angle, with one crimson mark on the photograph as the only colour.
- The OC's world built into the portrait: the landmark rising from the hat, a ride growing from a braid, hospital wards and shopfronts tilting out of the collar, tiny cast members on the ledges.
- High-saturation crimson construction: circles, oblique triangles, long bars, rules, dotted trajectories, cross marks, halftone blocks.
- Mixed Chinese/English typography in four registers, exactly placed: masthead, crimson theme word, Chinese title block with vertical keywords, ruled information bar.
- Offset-print texture: warm beige pulp, halftone dots, misregistered red, worn edges, hand-cut collage shadows.
## When to use
Use when the user wants a dense, grid-ruled, retro print poster for one OC, especially:
- "Russian Constructivist poster", "Soviet avant-garde poster", "Rodchenko-style collage";
- "photomontage poster", "构成主义海报", "构成主义拼贴", "旧纸海报";
- a mixed Chinese/English typographic poster where the text is part of the artwork.
Do not use for:
- a poster that must switch languages at runtime — that needs live HTML type; use a web-work poster skill instead;
- a painterly, soft-focus character illustration;
- a clean Swiss/International Typographic Style layout (this one is deliberately dense, diagonal and experimental);
- a page, game or roleplay.
## Hard rules
0. **Use the sandbox CLI path.** Every `neta` command is `node /mods/neta/neta …`.
1. **Read the OC before writing.** Use the world's real character atom, its cover and `## 形象参考`. Never reuse the Rakushero demo on another character.
2. **One face, hard-cut.** The portrait is the hero: chest-up close-up, halftone, scissors-cut, slightly rotated. Do not let the collage swallow the face.
3. **Three colours only.** Warm beige paper, black printing ink, crimson. The photograph is black and white; one crimson mark on it is allowed. No other hue.
4. **Type is art.** Quote every string exactly in the prompt, in its register, and say "no other words, no gibberish". A poster with invented text is a failed poster.
5. **Grid order.** Dense is not chaotic. Every red shape, rule, dot and text block must sit on an invisible 12-column grid; align type to the geometry.
6. **The world grows out of the body.** Landmarks and cast must penetrate the silhouette, not sit politely behind it. Break perspective and scale.
7. **A cast, not a crowd.** Four to eight tiny figures, each with one readable prop, scattered on ledges, floating beside shapes, or reduced to corner silhouettes.
8. **Moderation-safe wording.** Never state a minor's age; use "ageless young performer" or "young adult". No blood, gore, skin, corpses, dismemberment or mutilation. Describe stage props and painted marks instead.
9. **Inspect the text.** After generation, read every line at 100%. If Chinese characters or the bar are garbled, regenerate once with fewer characters and the strings repeated. Do not ship a poster with wrong characters.
10. **Place and share.** Put the image Work on the Board; the raw file alone is not shipped. A share URL is created from Studio's Work menu.
## Pipeline
### 0. Read the OC and the world
```bash
node /mods/neta/neta atom get "world/characters/<Name>.md"
node /mods/neta/neta find images "<Name>"
```
Record:
- identity: hair, braids/hat, costume, face paint, eyes, signature accessory, shoes;
- the one mark that can stay crimson on the photograph (an X, a tear, a ribbon);
- 3–5 landmarks and zones from the world;
- 4–8 other named characters, each with one visual tag;
- the OC's role/faction for the bottom bar.
### 1. Write the text system
Fill the four registers before generating. See `references/typography.md`.
| Register | Position | Shape | Example (Rakushero) |
|---|---|---|---|
| Masthead | top left | 2 short lines, narrow sans | THE FACELESS THEATRE / A CONSTRUCTIVIST EXPERIMENT No. 07 |
| Theme word | top right | one word, 7–10 caps, huge crimson | APPLAUSE |
| Chinese title | left middle | 4–6 characters, heavy black | 无脸人剧场 |
| Keywords | left, vertical | 4 words × 2 characters | 掌声 / 谢幕 / 面具 / 生存 |
| Tagline | under the title | 3–5 English words | A STAR BORN FROM APPLAUSE |
| Right lines | right side | 2 short lines | NO APPLAUSE / NO TOMORROW · EVERY LAUGH IS A LIFELINE |
| Info bar | bottom | 4 ruled sections | PROJECT 07 — THE FACELESS THEATRE / RAKUSHERO / 乐子人 / CONSTRUCTIVISM / 1926 / VOL. II — OC WORLD ARCHIVE |
| Corner numbers | bottom corners | 2 characters | 07 · II |
Keep the strings short. The model can render a 5-character Chinese title and four 2-character keywords reliably; a paragraph will fail.
### 2. Generate
Read `references/art-direction.md` for the full prompt, slot guidance and moderation substitutions.
```bash
NETA_DEFAULT_IMAGE_MODEL=gpt-image-2 node /mods/neta/neta generate image \
--work-title "<Name> · <ZH Title> — Constructivist Poster" \
--work-description "Russian Constructivist photomontage poster for <Name>." \
--param size=1024x1536 --param quality=high --param output_format=png \
--image "world/media/studio/characters/<Name>.png" \
--prompt "$(cat /tmp/<slug>-poster.txt)"
```
Start the prompt with `@<Name>,` — a comma, not an em dash. The mention parser reads an em dash as part of the name and drops the reference resolution; `--image` still works, but the prompt is cleaner with a comma.
`1024x1536` is the reliable 2:3 output. Asking for `1600x2400` may still return `1024x1536`; accept the ratio and upscale only for print.
### 3. Inspect and retry
Open the result at 100% and check:
- every Chinese character in the title and keywords;
- the English masthead, theme word, tagline, right lines and bar;
- the face still reads as the OC (braids, hat, paint, eyes, accessory);
- the crimson stays an accent, not a flood;
- no gibberish strings, no watermarks, no signature.
If one text block fails, regenerate once with that block repeated in the prompt and fewer words elsewhere. If the whole sheet is muddy, start from the composition again, not from a text patch.
### 4. Place and share
```bash
node /mods/neta/.agents/skills/board-ops/scripts/place.mjs \
--title "<ZH Title> · 构成主义海报" \
--work "works/work_<id>.json"
```
Image works are shared from Studio's Work menu; the public address is `/w/<owner>/<world>/<slug>`.
### 5. Package this skill (maintainer)
Only when the user asks to turn the poster into a reusable skill. Copy this folder to `.agents/skills-drafts/<skill-name>/`, keep the demo poster and the filled Rakushero text system as the worked example, and follow `references/publishing.md` to submit it. Write everything in English; keep Chinese only in the example strings.
## Content model
This skill produces an image Work, not a page:
```
$WORK/
prompt.txt # the exact prompt that made the poster
poster.png # the generated 2:3 artwork
work_<id>.json # Neta's work record
```
No `index.html`, no `content.js`, no locale switch. If the user asks for multiple languages, tell them this poster's type is baked and offer a live-type web poster as a separate piece.
## Package
- `templates/prompt.template.txt` — the fill-in-the-blanks prompt.
- `templates/text-system.example.md` — the Rakushero text system and grid coordinates.
- `references/art-direction.md` — the full prompt, slot guidance and moderation substitutions.
- `references/typography.md` — the four registers, grid map and word banks.
- `references/qa.md` — 100% text and composition checks.
- `references/publishing.md` — Board placement, share link and community submission.
- `scripts/check-poster.sh` — ratio/resolution check plus text-zone crops (needs ImageMagick).
- `scripts/make-preview.sh` — a 1440×900 gallery preview.
## Pitfalls
- `@Name —` (em dash) breaks the mention parser. Use `@Name,`.
- Writing "16-year-old" can trigger content moderation. Use "ageless young performer".
- "Blood-stained", "torn mouth", "skinned", "dismembered" will be rejected. Describe paint, patchwork, stage props.
- A paragraph of body copy will become gibberish. Keep the bar to four short sections.
- Too many cast members turn into a crowd. Four to eight, each with one prop.
- A crimson circle over the eyes destroys the portrait. Keep the face clean.
- A full-colour photo breaks the three-colour system. Convert to halftone black and white.
- The poster is dense by design, but every element must align. If it feels noisy, remove elements, not grid lines.
- The requested `1600x2400` may return `1024x1536`; do not claim a print master without checking `identify`.
## Demo
Rakushero, star of the Faceless Theatre, in *Sweet Nightmare Park*:
- portrait: orange-red twin braids with bells, patchwork jester hat, striped scarf, painted smile, crimson X on the forehead;
- world: the striped big top out of her hat, braids as a rollercoaster, ferris wheel from the shoulder, hospital, candy counter, corridor arches and carousel out of the collar;
- cast: Ciely, Reapette, Pipo, Bandie, Celestia, Crimson, IrisDeep, blissful;
- type: `THE FACELESS THEATRE` / `APPLAUSE` / `无脸人剧场` / `掌声 谢幕 面具 生存` / `A STAR BORN FROM APPLAUSE` / `NO APPLAUSE / NO TOMORROW` / the ruled bar.
It is a demo, not a constraint. Replace the cast, the landmarks, the words and the crimson mark.