world-id-papers

Community@xinsong854/world-id-papers
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: world-id-papers. Run `npx -y @neta-art/neta-search-cli@latest skills use @xinsong854/world-id-papers --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 @xinsong854/world-id-papers
Summary

Turn your world into a set of in-world ID papers: resident ID, staff badge, student card, wanted poster.

  • Get a series of document cards in one web page, with a switcher to flip between resident ID, staff badge, student card and wanted poster.
  • Every card shares one paper style, ink color and official seal drawn from your world's own institutions, so they look issued by the same bureau.
  • Click any field to edit it in place. Download each card as a sharp image, and press reissue to get a new official-looking number.
  • Uses your character's existing portrait; if there is none, a decorative silhouette fits the world. Works best with a named world, guilds, schools or a ruling body.
  • Pick only the types you want, or add a fifth if your world clearly has one, such as a permit.
SKILL.md
# World ID Papers

One world, one document bureau: a series of identity papers — resident ID, staff badge, student card, wanted poster (add or drop to fit the setting) — as a single web Work. Each document type is a print-layout generator whose design language (paper, seals, typography, numbering) is derived from the world's own institutions, not from any real-world government template. Fields are editable; each card exports as an image.

Read this file fully before generating anything or writing files. Resolve relative paths from this skill's directory.

## Language

Reply in the user's language, whatever language this file is in. This holds for every message of the run, above all the final handover; translate what the scripts print, don't paste it. Text the user sees in the deliverable — Work title, page title, buttons, labels, document field names — follows the user's language; text the user typed stays as they wrote it.

## When to use / when not

Use when the user wants in-world identity documents for their setting — a series (ID + badge + student + wanted) or one type named outright.

Not for a physical CR80 card format with photo capture and 3D preview (that is id-card-maker — different product: physical card realism, not a world's paper bureau), not for character profile stat cards (character-profile-card / card generators), not for a single poster image of a character. Say what this skill makes and stop.

## Inputs

| Item | Required | Counts as given when |
|---|---|---|
| World/setting | yes | the user names the world or says "this world"; a single character also counts (papers are issued *for* them) |
| Document types | no — default all four | a subset the user names; add a fifth only if the world clearly has one |
| Issuing flavor | no — default derived | the world's institution names, seals, numbering style; unsaid → derive from the world material |

If neither a world nor a character is given: ask once, then stop. Otherwise build through to delivery.

## How it works (what the agent must keep)

- **One series, one design system** (`references/document-design.md`): shared paper stock, ink color, seal style and numbering across types — a resident ID and a wanted poster must look like the *same bureau* issued them. Derive the system from the world's institutions (a theocracy stamps differently than a mining guild), never from real passports/licenses.
- **Four document types**, each a layout: resident ID (portrait window, issued-by, validity), staff badge (org, role, access level, portrait), student card (school, year, grade, emblem), wanted poster (large portrait, charges, reward, descriptive lines). Field schema per type in `references/field-schemas.md`.
- **Portrait window**: square/oval crop of the character's existing portrait (from the world media); never generated. No portrait in the world → an ornamental silhouette placeholder keyed to the world.
- **Editable + exportable**: click a field to edit; per-card export as PNG at print resolution (2×); numbering and dates auto-fill with a bureau-style sequence; a "reissue" button rerolls the number.
- **Seals and stamps**: authored SVG/canvas seals — one org seal shared across types, per-type secondary stamps (access level chevron, school crest, bounty sigil). Guilloche/fine-line borders are generated procedurally (see the reference), not traced from any real document.

## Steps

1. Read the world: `world/WORLD.md` body + the institutions/places materials (`node /mods/neta/neta atom list`, `atom get` the relevant ones). Extract issuing bodies, era, official color. → `$RUN/brief.md`
2. Draft the design system in `$RUN/design.json` (paper, ink, seal, numbering, per-type fields). Run `node scripts/design-check.mjs $RUN/design.json` — validates types, field schemas, seal presence. Exit non-zero on failure.
3. Build the Work from `templates/` into `$RUN/site/`: document switcher, editable fields, seal renderer, export.
4. Check: `node scripts/check.mjs $RUN/site` — all declared types render, fields editable, export present, no real-government artifacts (see gotchas); writes `$RUN/qa.json`.
5. Register and publish: see Deliver.

`$RUN` = `_runs/world-id-papers/<timestamp>/`. Never move the run folder afterwards.

## Deliver

A **web Work**.

- `node /mods/neta/neta work init web works/webs/<slug> --title "<title in the user's language>"` → build → `node /mods/neta/neta work publish web works/webs/<slug> --title "<same>"`.
- Core content to verify before handover: every declared type renders with editable fields and export; seals differ per type but share one org seal; nothing reads as a real-country document.

Then, as the last step:

6. **Hand over with a card.** One `interaction-components` link card on its own line, target `{ "type": "work", "workId": "<id>" }`, the id from the publish output (fallback: `cohubWorkId` in `works/webs/<slug>/meta.json`). Then one or two lines on the series and the issuing flavor chosen.

## 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 the document series only — no card printing format, no 3D card preview, no blockchain/NFT anything.
- No real-world government templates, MRZ lines, real currency, or documents that could pass as actual identification.

## When to stop

- Neither world nor character given: ask once, then stop.
- The world has no institutions to issue papers (pure personal settings): propose the bureau as a light "world flavor" invention in one line and proceed, or stop if the user wanted strict canon.

## Gotchas

- Realism trap: fine guilloche + MRZ + machine-readable zones make a *real* document; keep the design openly fictional — invented bureau names, invented numbering, no real country codes.
- The shared org seal is the series' identity; per-type stamps come second. Build the seal first.
- Portrait windows must object-fit cover with a hairline inner frame; a floating head with white gaps reads as broken.
- Export at 2× from the *same* layout the user sees — a second layout always drifts.
- Field edit affordance: click-to-edit inline, one field at a time; a full form UI kills the paper illusion.
- Auto-numbering should look issued, not random: a bureau prefix + zero-padded sequence + a checksum-ish letter.