Character Card Authoring, English-Native (character-card-author-en)
Use this skill when the card's audience reads English. For Chinese-audience cards use character-card-author (its SKILL.en.md is a translated mirror of the Chinese methodology — that is a different thing from this skill, which is English-native: recalibrated against what English-speaking communities actually publish and reward).
Why a separate skill exists: we wrote three English cards with the Chinese methodology first (they remain in cards/en/ — Rosalind, Caleb, The Lighthouse — as an honest contrast group). They are not bad cards, but they carry Chinese engineering habits: ~700-word greetings against a community median of ~180, heavy status-panel instincts against a community that ships zero rich HTML, numeric affection ladders against a community that writes warmth as observable behavior. Translating a discipline is not the same as re-deriving it from local evidence. This skill is the re-derivation.
Fact baseline (from a 30-card sample of top-starred SFW English cards on a major community card hub, July 2026, cross-checked against community guides; don't invent a different baseline):
- Hot-card first messages run a median of 178.5 words (P25=123 / P75=219 / observed max 529; a 40-word self-intro also charted). "Greeting length = reply length" is ecosystem consensus (SillyTavern docs: the model picks up style and length from the first message more than from anything else). Write the greeting as long as you want the replies to be.
- 0 of 30 cards use rich HTML (div/CSS/img). There is no status-bar/collapsible-panel culture in Western cards; format = prose +
*asterisk actions* (70%) or pure novel prose (30%) + "quoted dialogue". RPG/simulator cards use plain-text code fences or bracketed key-value lines (17%), never HTML.
- Description mainstream is plain prose (67%); key-value attribute lists (PList family, no brackets) 13% and prose/list hybrids 7% are a legitimate minority — their niche is prose for personality, lists for inventories (appearance, clothing, skills). W++ survives only in 2023-era legacy cards. Strict bracketed PLists, JSON, or interview-format main definitions: 0 of 30.
- Permanent tokens (description + personality + scenario): target 800–1500, red line 2000. JanitorAI's two official tutorials cap at 2k/2.5k; pixi says 500–1000; the sampled cards' full-card median is 1085 tokens. Token budgeting is an English-side hard constraint with no Chinese-side equivalent.
- "Don't speak or act for {{user}}" is the single strongest quality norm in Western communities (JanitorAI official help calls it users' most common and most hated complaint; 25 of 30 sampled cards observe it strictly). A user action/line/thought in a greeting = auto-fail. The only folk exemption: RPG/isekai openers may do one passive-perception hand-off ("You wake up…") — scene only, never decisions or dialogue.
- Lorebooks are not standard equipment in these communities (6 of 30 cards carry one; 5 of those are RPG/scenario cards). Modern contexts are large; a lorebook's residual value is conditional reveal (secrets, plot switches) and organization. This repo's house standard is still 4–10 entries per card — deliberately above the community baseline — but don't transplant the Chinese 8–15-constant-entries pattern.
- Example dialogs are mainstream equipment (70% usage;
<START> grouping is the de facto standard): light-verbal-tic cards use 2–4 groups, heavy-tic cards use double digits (including char-only monologue groups that lock speech habits). "Lock voice with samples, not adjectives."
- Alternate greetings: 40% of cards carry them (mean 1.9), and cards that do treat them as a selling point ("20 Greetings!" in taglines). Either give none, or give 2–4 production-grade different situations. House standard here: always 2–4.
- Audience structure: the largest English RP platforms skew heavily female (roughly 70–80% on the biggest one); the content gravity is BookTok-style romantasy tension, all of it expressible SFW. AnyPOV is default politeness. Supply-side, female characters outnumber male roughly 23:5 in the sample.
0. First step: audience x genre x trope x POV
Write a one-line positioning note (frontmatter comment only — never in Creator Notes; product words in author notes are an instant tell). Four axes:
- Audience quadrant (pick one):
fem-audience (male love interest, female gaze) / male-audience / all-audience (companionship, adventure, ensemble).
- Genre (pick one): fantasy / modern / campus (university only, everyone adult) / sci-fi / historical-flavored (invented history; avoid real sensitive periods) / supernatural.
- Tropes (1–3, in the audience's own search language):
- Safe zone (SFW-ready):
enemies-to-lovers (keep the conflict heat controlled) · slow-burn · hurt/comfort · found-family · grumpy-x-sunshine · forced-proximity · fake-dating · friends-to-lovers · second-chance · royalty · arranged-marriage (soften the power gap) · rivals · cozy · mentor.
- Conditional (de-darkened):
yandere = in Western SFW usage, "possessively devoted"; stay away from stalking/confinement depiction. morally-gray. tsundere (avoid the bully variant).
- Off the table for SFW cards: omegaverse/A/B/O (the system itself carries heat-cycle semantics), dark romance (dubcon/captive), Dead Dove categories, anything minor-coded.
- POV: default
anypov (user's gender unanchored; pronoun engineering in §2.3); fempov / malepov only when explicitly tagged. A POV tag in tags is mandatory.
Hard compliance screens (before any creativity): zero real celebrities; zero recognizable IP (rename test: mask every proper noun — if the setting is still identifiable as a specific franchise, rewrite). No therapist/psychologist naming or clinical claims (comfort cards use listener/companion framing). Everyone adult, in appearance, behavior and setup.
Character naming: avoid naming slop — the model-fixated names that read as AI on sight (the Antislop paper measured "Elara" at 85,513x over the human baseline): Elara, Kael, Seraphina, Lyra, Aria, Silas-the-mysterious, Sarah Chen. Naming method: anchor in a real language culture (Irish, Polish, Nigerian, Welsh surnames…) or coin something, then search the name to confirm no major IP collision.
1. Card file structure
Write cards/en/<slug>/card.md (or any working directory). Format spec: docs/card-md-format.md; converter: tools/card_md_to_st.py (md → chara_card_v2 JSON + v3 PNG).
---
# positioning: fem-audience / fantasy / enemies-to-lovers + forced-proximity / anypov (comment line)
name: Character Name
license: CC-BY-4.0
scenario: One always-true sentence (no temporary states — see §2.4)
system_prompt: <six segments, §2.5>
tags: [fem-audience, fantasy, enemies-to-lovers, slow-burn, anypov, single-character]
image_prompt: <cover skeleton, §5>
creator: your signature
character_version: "1.0"
---
## Description <- labeled prose (§2.1)
## Personality <- scene-based behavior + language fingerprint (§2.2)
## Scenario <- always-true one-liner
## First Message <- §3
## Alternate Greeting 1 / 2 … <- house standard 2–4
## Example Dialogue <- voice weapon (§4)
## Lorebook <- 4–10 entries (§4.5)
## Creator Notes <- §6
Whole card in English (lorebook and Creator Notes included). Tags lowercase-hyphenated (the community's search language).
2. Persona and play rules
2.1 Description: prose as the body, labels as the frame
Evidence: pure prose 67% mainstream; key-value lists a legitimate 13% minority whose division of labor is "prose for personality, lists for inventories". House style hybridizes the two — labeled sections with natural-prose values: under each label, complete prose sentences, not semicolon inventories. Personality, relationships and history must be prose; only enumerable info (appearance, dress) may go listy. No W++ pseudocode, no bracket parameter piles, no trait("a"+"b") syntax:
[<Name>]
Identity: one sentence of who + age + how they make rent.
Appearance: paintable specifics (asymmetries / scars / dominant hand / the object never taken off). No empty "beautiful/handsome".
Voice: register + the physical side of how they talk (low, level, carries without rising…).
Dress: specific garments worn specific ways. Clothing is characterization.
Habits: 2–3 quirks, at least 1 of them "useless" (serves no plot function — see §7 anti-uniformity).
Temperament: personality as situations ("in scene X, does Y"), not adjective labels.
Toward {{user}}: the relationship's close-up + current tension (one piece of say-one-thing-do-another evidence welcome).
History: where they came from (a causal chain — explain why the personality grew this shape; a model with causes can extrapolate behavior in new scenes).
Discipline:
- Description carries facts; the prose flair goes in the greeting and examples (community iron law: "the prose goes in example dialogue and the greeting"). Fancy adjectives in the description waste tokens and teach the model the wrong style.
- Permanent budget: Description + Personality + Scenario at 800–1500 tokens (≈600–1100 English words); over 2000 must be cut. Check the estimate line in
tools/score_card_en.py output.
- Physical anchoring: write the specific ("a 1997 Saab the colour of wet slate"), not the abstract ("an old car"). Numbers in spoken form ("ten seconds nine-something"); decorative fake-precision (0.5 seconds / 18:47) capped at 3 per card.
2.2 Personality: scenes plus a language fingerprint
- 4–6 "in this scene, they do this" behavior cases (bullets or short paragraphs). No numbered taxonomies, no parenthetical spec notes ("(voice lower)" belongs in a lorebook director entry).
- A Language fingerprint subsection, always: sentence-length habit (clipped fragments / run-on rambler), catchphrases, dialect or regional English (Scouse / Southern drawl / Aussie slang — real regional language culture is the English equivalent of dialect anchoring), address habits (whether they use names; pet-name tiers: luv, pet, sunshine, kid — pick by region and persona), refusal phrasing, praise ceiling.
- All nine liveliness techniques from the sister skill carry over (micro-flaws / say-do gaps / refusal & boundaries / a private life on stage / language fingerprint / physical anchoring / unfinished business / cognitive limits & misreads / emotional inertia). English-native example seeds: left on read; replies "fine." with the period; "I'm not doing this."; group-chat friends heckling; a verbal tic ("mmm" before disagreeing); rent due Friday; assumes {{user}} is here to collect a debt, and is wrong; still short-tempered from the morning's phone call.
2.3 AnyPOV pronoun engineering (English-specific hard rule)
- Permanent fields (Description/Personality/Scenario/Lorebook) never anchor {{user}} with he/she, and avoid they (singular they sticks permanently and creeps back after edits). Write subjectless or nounified:
Toward {{user}}: a regular now. Gets the corner booth without asking.
- Greetings may use second-person "you" (gamebook tradition, immersive and legitimate) — but only for {{user}}'s observable situation, never their actions/dialogue/thoughts (§3.2).
- Only explicitly tagged fempov/malepov cards may anchor user gender, and tags must match.
2.4 Scenario: always-true only
{{user}} is on a date with {{char}} in Scenario = the model drifts back to the date long after the breakup. Temporary situations belong in the First Message; Scenario gets one permanently-true sentence ("Runs the only diner open past midnight on Halsey Street.").
2.5 system_prompt in six segments
- You are + one persona anchor.
- [Style] dialogue-shape constraints (fragment share / sentence caps / praise ceiling), baseline stance toward {{user}}, and tense + narrative person pinned (one choice, whole card).
- [Adversity] what the character concretely does when crossed / humiliated / ignored (in-character, no lectures, no collapse).
- [Boundaries] (positive phrasing — bare don't/never is unreliable on LLMs): Speak and act only for ; narrate only what can observe; {{user}}'s words, actions and thoughts belong to {{user}} alone. Stay in character; never mention AI or models. Then an explicit slop ban: pick 6–10 high-risk phrases for this genre from §7 ("never write 'barely above a whisper', 'eyes sparkling with mischief', 'shivers down', 'a mix of X and Y', 'not X, but Y' constructions").
- [Cognitive limits] the character knows {{user}} only through observation and what's been said; guesses wrong; repairs wrong guesses with actions, not apology speeches.
- [Emotional inertia + Output rhythm]:
- Default reply ≤120 words including narration (long-form cards may raise it — and must then demonstrate the length in the greeting); open up only at scene changes or long user turns; no fixed action-dialogue-action template.
- Narration = observable physical fact; no emotion commentary ("clearly", "obviously", "a hint of", "she couldn't hide") — interpretation belongs to the reader.
- First beat when offended = emotion only (flat "Ha." / silence + one action / a counter-question, ≤25 words); no same-turn self-defense; explanations arrive a turn late and grudgingly.
- Fragments and one-word lines ≥1/3 of dialogue; mouth and hands may contradict. Information released one layer per turn. Cold endings allowed: no "what do you say?" / "the choice is yours" fishing.
3. First Message
3.1 Length and format band (English-native; replaces the Chinese 800–2,600-char band)
- Main band 150–350 words (anchored on the sampled median of 179 and the greeting-equals-reply-length rule). Secondary bands 80–150 / 350–550. RPG/scenario cards (paradigm D) may run to 550. Above 600 words is bloat.
- Pick one format and hold it: novel prose (narration + quoted dialogue) or asterisk style (
*She looks up.*). No mixing, no tense drift.
- No HTML status bars or panels (0/30 in the wild; Western readers read Chinese-style panels as foreign-body). RPG/system cards may use one light bracketed status line (
[Day 3 · Supplies: low]) — that's the whole allowance.
3.2 Three jobs + the user red line
Three jobs: scene (time/place/weather in one stroke) → character entry (mid-action doing something characterful, ≥1 line of dialogue as personality proof) → answerable hook (the next move belongs entirely to {{user}}).
User discipline (red line; the scorer auto-fails on it):
- Zero {{user}}/you actions, dialogue, or inner thoughts. Rewrite by subject inversion:
You are surprised to see him here. → The sight of him here doesn't fit.; You pick up the letter. → The letter sits where anyone could pick it up. The character observing {{user}} is legal (She clocks the mud on your boots. — the watching is her action). RPG/isekai exemption: one passive-perception hand-off ("You wake up in…"), never decisions or speech.
- Endings: the mainstream close is a social-pressure action, not a question (only 23% of sampled cards end on a question): the character does something {{user}} cannot not respond to. Ban "He waits for your answer." / "What will you do?" / "The night is still young."
Self-check (fix anything missing):
3.3 Paradigms
- A — event scene (default): 61 words can chart if it's "happening now + answerable".
- B — undercurrent (slow-burn romantasy): the character caught having just done something they'd deny meaning.
- C — confrontation (enemies-to-lovers opens mid-standoff): specific conflict, visible stakes.
- D — world broadcast (RPG/scenario): second-person situation report + one line per NPC to set faces + hand the camera to {{user}}; may run to ~500 words.
- E — console (sim/helper): operating instructions, short, with sample inputs.
3.4 Alternate greetings: 2–4, always
Each one changes the entry situation (time / place / relationship temperature / event stage), not the wording. Main greeting most universal; alternates can experiment. Same §3.2 checklist.
4. Example Dialogue (house standard; the voice weapon)
70% of sampled hot cards use it; <START> grouping is the standard. House rule: 2–4 short exchanges ({{user}}: / {{char}}:) teaching syntax, not plot; at least one is a refusal / cold-shoulder turn. Heavy-tic characters (accent spelling, one-word lines, silence beats) may add a char-only monologue group (no user turns — pure voice-lock). No all-Q&A sets (they train an interview bot). Hand-write them; pasted model output carries that model's biases.
4.5 Lorebook (4–10 entries, conditional reveal first)
Entry-header syntax per docs/card-md-format.md (### Name | keys: a, b | constant | order: N | prob/secondary/sticky…). English-side rebalance:
- Standard five: ① voice samples (constant, order 320 — pure dialogue bank by situation, no narration mixed in) ② behavior director (constant, order 900 — the runtime contract; a condensed rewrite of system_prompt segment 6) ③ backstory vault (keyed on names/places/events — density-locked: one reveal per scene, secrets never volunteered wholesale) ④ relationship tiers or house rules (constant — warmth tiers as observable behavior differences, never bare percentages) ⑤ NPC ecosystem (keyed on NPC names — each gets one face-setting line + their own schedule; they are not props).
- Optional: random-event entry (
prob: 15 | cooldown: 6), $command artifact entries (RPG/sim cards only; plain-text artifacts, no HTML).
- Entry bodies in English, self-contained subjects (trigger keys are not injected with the content); one entry = one matter, 150–1200 words; constants ≤ half.
- Every keyed entry needs keys (keys empty + not constant = a dead entry that never fires; the converter guards this, but don't write it).
5. Cover art (English-market recipe)
The Chinese-card cover convention (vertical calligraphy title + vermilion seal) does not transplant — no cultural anchor. Three rules:
- Style routed by genre (use the 18 style guides in
../character-card-author/styles/): realistic photo (modern / workplace / girl-next-door), ethereal (romantasy / fantasy), anime-impasto or anime-cel (anime-adjacent), amcomic (noir / crime), gothic (supernatural). Fantasy settings avoid realistic photo (uncanny valley).
- Composition: vertical 9:16, face in the upper half (eyes near the upper third), a prop that carries character information in hand, one accent color, slight low/high angle, eyes off-camera.
- Text rule: default "no text anywhere in the image, no letters, no logos, no watermarks." Generated English lettering is error-prone and Western card faces carry no title-calligraphy tradition; typography belongs to the UI layer.
Age safety: "a woman in her thirties"-style phrasing, no on-image age digits. Verify every generated cover by eye (face intact / hands / no stray glyphs).
6. Creator Notes (the Western social contract, seven items)
Register = casual bot-maker aside, not product copy (no "positioning/differentiation/mechanics"):
- POV/audience declaration, first line:
AnyPOV. Written with a fem-leaning gaze but anyone's welcome.
- Content notes: SFW statement + content warnings for heavy themes (grief, injury) + a heat note (
Slow burn, fade-to-black territory. This one's about the tension.).
- Art attribution:
Art: AI-generated (style). Don't impersonate an illustrator.
- Model advice: one line (what runs the clipped voice well / how long-form models drift / when to re-roll).
- First-line guide: 2 sample opening moves (one cooperative, one contrarian, both in-flavor) — the Western equivalent of cold-start lubrication.
- Version line:
v1.0 (2026-07).
- One in-voice closer (the author's note is also performance).
7. Anti-slop discipline (English lexicon; scorer speaks the same language)
7.1 The lexicon
The full 95-phrase grouped list lives with the scorer (tools/score_card_en.py, SLOP_PHRASES + SLOP_REGEX; sources: Sukino's Banned Tokens list, the Antislop paper (arXiv 2510.15061), EQ-Bench's slop score, community complaint threads). Top clusters to just not write:
- Body: shivers down her spine (whole family) / breath hitches / heart hammered against ribs / swallowed hard / knuckles white / takes a deep breath.
- Voice: barely above a whisper / husky voice / murmured-dependency / chuckles darkly / voice thick with.
- Eyes: eyes sparkling with mischief (gleam/glint/glow family) / eyes never leaving / half-lidded / a smile that didn't reach her eyes / calculating gaze.
- Motion: ministrations / tracing a finger / practiced ease / tucking a strand of hair.
- Metaphor nouns: tapestry / symphony of / kaleidoscope / like a moth to a flame / a dance as old as time.
- Atmosphere: dimly lit / the air is thick with / casting long shadows / dust motes dancing / words hung in the air.
- Endings: they would face it together / was only just beginning / for now, that was enough / ready to face whatever lay ahead.
- NSFW cluster: on SFW cards, any hit is a red line (FAIL, not a deduction).
Usage note (the sources agree): slop is judged by cluster density, not single occurrences; and slop fingerprints cluster by model family. The lexicon is a detector + rewrite trigger, not a word ban.
7.2 Pattern quotas (whole card)
| Pattern |
Quota |
Note |
| "not X, but Y" / "It's not just X, it's Y" |
≤1 |
the #1 LLM rhetorical crutch (EQ-Bench weights contrast patterns at 25% on their own) |
| "a mix of X and Y" |
0 |
the emotion-cocktail formula |
| "couldn't help but" |
≤1 |
|
| em-dash (—) density |
≤6/1000 narration words (house lint) |
Calibration finding: em-dash does not separate human from AI in English RP prose — in our 30-card human sample roughly a quarter of top cards exceed 3/1000w (human asterisk-RP prose uses it liberally). It is a tidiness budget, not an AI signal, and costs no anti-slop points (the opposite of Chinese, where the long dash is the #1 machine tell — don't port that rule) |
| adjective triads (rule of three) |
≤1 |
|
| "little did X know" / narrator winks |
0 |
|
| "for what felt like an eternity" |
0 |
|
| decorative fake-precision numbers |
≤3 |
numbers with narrative function (bills, countdowns, scores) exempt |
7.3 Anti-uniformity (structure is the deepest tell)
- Big sentence-length variance: fragments against 30+-word sentences; five equal-length sentences in a row is a signal.
- At least one "useless" idle detail per card; a card where every detail serves a function reads generated.
- Flat closings allowed. "Cleverness density is AI density" — read aloud; whichever line makes you think nice line — flatten it.
- Uniform wit = AI: quote-capped facts ≤1, antithesis flips ≤1, aphorism closers ≤1.
- Common ≠ fake: the Western mainstream texture is also tropey (mafia boss / arranged marriage / grumpy neighbor). Loose execution with burrs beats sentence-by-sentence polish.
8. Score, red-line, ship
python3 tools/score_card_en.py cards/en/<slug>/card.md
Eight dimensions (100): fields 13 / greeting 18 / liveliness-nine 24 / tags & positioning 10 / format & replayability 12 / lorebook 8 / image prompt 10 / anti-slop 5.
- Red lines (any hit = FAIL regardless of score): user actions/dialogue in the greeting; NSFW lexicon (this skill targets SFW cards); naming-slop character names; real-celebrity/IP fingerprints; therapy claims; permanent estimate >2000 tokens.
- ≥85 ship; 75–84 usable with a weakness list; <75 fix by issues, max 3 rounds.
- Run the §7 self-check before first submission (first-draft outputs reliably blow the quotas; "not X, but Y" and em-dash patches are the habitual English offenders).
- If you use an LLM judge at all: calibrate it on human-consensus gold anchors first, and use it only for relative before/after comparison of the same card — see
docs/blind-review-experiment.md for why (our four-judge panel agreed 86% and was right 12% of the time).
- Convert & import:
python3 tools/card_md_to_st.py cards/en/<slug>/card.md --avatar cards/en/<slug>/cover.png --outdir out/ --slug <slug> → v2 JSON + v3 PNG, drag into SillyTavern or any v2/v3 frontend.
9. Example cards (read one same-quadrant card before writing)
Three cards in cards/en/ were authored by this skill and are its structural templates:
edmund-harrower/ — fem-audience · fantasy · enemies-to-lovers + forced-proximity · A/C hybrid paradigm. Labeled prose + a density-locked backstory vault.
frankie-doyle/ — all-audience · modern cozy · grumpy-x-sunshine + found-family · paradigm A with a short greeting (~160 words). Comfort-without-therapy boundary work.
redline-salvage/ — anypov ensemble · sci-fi · adventure + found-family · paradigm D world broadcast. Light bracketed status line + NPC roster + a random-event entry.
The other three (rosalind/, caleb/, the-lighthouse/) predate this skill — written with the Chinese methodology on an English surface. They stay as an honest contrast group: read them to see what "translated discipline" looks like versus "re-derived discipline".
Learn structure and hand-feel from examples; personas, verbal tics and openings must be original. No reskins.
10. Field notes (learned the hard way; read before batch production)
- First-draft English offenders differ from Chinese ones: Chinese drafts over-produce 「不是A,而是B」; English drafts over-produce "not X, but Y" and the em-dash patch (
statement—qualifier). Grep — and not .*, but before scoring, and unpick sentences at the hit sites. But note the em-dash's nature is language-dependent (§7.2): in English it's a style budget, not an AI signal.
- "Character observes user" vs "user acts":
She clocks the mud on your boots. (legal — the verb's subject is the character) vs You track mud across her floor. (violation — {{user}} got assigned an action). Point at the verb subject of every sentence containing you/{{user}}.
- AnyPOV cards leak pronouns in NPC dialogue — NPCs referring to {{user}} say he/she before you notice. Make NPCs use nouns ("the new regular", "your friend").
- Fade-to-black needs an explicit exit: on SFW romance cards, write the cut into system_prompt ("If things heat past kissing, cut the scene and pick up after.") — without a stated exit the model will cross the line on its own.
- Don't study old cards as format guides: W++-era cards still float around the archives; when researching, read them as history, not as a spec. §2.1's labeled prose is the spec here.
1---2name: character-card-author-en3description: Character Card Authoring, English-Native (character-card-author-en)4---56# Character Card Authoring, English-Native (character-card-author-en)78> Use this skill when the card's audience reads English. For Chinese-audience cards use `character-card-author` (its `SKILL.en.md` is a translated mirror of the Chinese methodology — that is a different thing from this skill, which is English-*native*: recalibrated against what English-speaking communities actually publish and reward).9>10> Why a separate skill exists: we wrote three English cards with the Chinese methodology first (they remain in `cards/en/` — Rosalind, Caleb, The Lighthouse — as an honest contrast group). They are not bad cards, but they carry Chinese engineering habits: ~700-word greetings against a community median of ~180, heavy status-panel instincts against a community that ships zero rich HTML, numeric affection ladders against a community that writes warmth as observable behavior. Translating a discipline is not the same as re-deriving it from local evidence. This skill is the re-derivation.1112Fact baseline (from a 30-card sample of top-starred SFW English cards on a major community card hub, July 2026, cross-checked against community guides; don't invent a different baseline):1314- Hot-card **first messages run a median of 178.5 words** (P25=123 / P75=219 / observed max 529; a 40-word self-intro also charted). "Greeting length = reply length" is ecosystem consensus (SillyTavern docs: the model picks up style and length from the first message more than from anything else). Write the greeting as long as you want the replies to be.15- **0 of 30 cards use rich HTML** (div/CSS/img). There is no status-bar/collapsible-panel culture in Western cards; format = prose + `*asterisk actions*` (70%) or pure novel prose (30%) + "quoted dialogue". RPG/simulator cards use **plain-text code fences or bracketed key-value lines** (17%), never HTML.16- Description mainstream is **plain prose (67%)**; key-value attribute lists (PList family, no brackets) 13% and prose/list hybrids 7% are a legitimate minority — their niche is *prose for personality, lists for inventories* (appearance, clothing, skills). W++ survives only in 2023-era legacy cards. Strict bracketed PLists, JSON, or interview-format main definitions: 0 of 30.17- **Permanent tokens (description + personality + scenario): target 800–1500, red line 2000.** JanitorAI's two official tutorials cap at 2k/2.5k; pixi says 500–1000; the sampled cards' full-card median is 1085 tokens. Token budgeting is an English-side hard constraint with no Chinese-side equivalent.18- **"Don't speak or act for {{user}}" is the single strongest quality norm in Western communities** (JanitorAI official help calls it users' most common and most hated complaint; 25 of 30 sampled cards observe it strictly). A user action/line/thought in a greeting = auto-fail. The only folk exemption: RPG/isekai openers may do one **passive-perception hand-off** ("You wake up…") — scene only, never decisions or dialogue.19- **Lorebooks are not standard equipment** in these communities (6 of 30 cards carry one; 5 of those are RPG/scenario cards). Modern contexts are large; a lorebook's residual value is conditional reveal (secrets, plot switches) and organization. This repo's house standard is still 4–10 entries per card — deliberately above the community baseline — but don't transplant the Chinese 8–15-constant-entries pattern.20- Example dialogs are **mainstream equipment (70% usage; `<START>` grouping is the de facto standard)**: light-verbal-tic cards use 2–4 groups, heavy-tic cards use double digits (including char-only monologue groups that lock speech habits). "Lock voice with samples, not adjectives."21- Alternate greetings: 40% of cards carry them (mean 1.9), and cards that do treat them as a selling point ("20 Greetings!" in taglines). Either give none, or give 2–4 production-grade different *situations*. House standard here: always 2–4.22- Audience structure: the largest English RP platforms skew heavily female (roughly 70–80% on the biggest one); the content gravity is BookTok-style romantasy tension, all of it expressible SFW. **AnyPOV is default politeness.** Supply-side, female characters outnumber male roughly 23:5 in the sample.2324## 0. First step: audience x genre x trope x POV2526Write a one-line positioning note (**frontmatter comment only — never in Creator Notes**; product words in author notes are an instant tell). Four axes:2728- **Audience quadrant** (pick one): `fem-audience` (male love interest, female gaze) / `male-audience` / `all-audience` (companionship, adventure, ensemble).29- **Genre** (pick one): fantasy / modern / campus (**university only, everyone adult**) / sci-fi / historical-flavored (invented history; avoid real sensitive periods) / supernatural.30- **Tropes** (1–3, in the audience's own search language):31 - Safe zone (SFW-ready): `enemies-to-lovers` (keep the conflict heat controlled) · `slow-burn` · `hurt/comfort` · `found-family` · `grumpy-x-sunshine` · `forced-proximity` · `fake-dating` · `friends-to-lovers` · `second-chance` · `royalty` · `arranged-marriage` (soften the power gap) · `rivals` · `cozy` · `mentor`.32 - Conditional (de-darkened): `yandere` = in Western SFW usage, "possessively devoted"; stay away from stalking/confinement depiction. `morally-gray`. `tsundere` (avoid the bully variant).33 - Off the table for SFW cards: omegaverse/A/B/O (the system itself carries heat-cycle semantics), dark romance (dubcon/captive), Dead Dove categories, anything minor-coded.34- **POV**: default `anypov` (user's gender unanchored; pronoun engineering in §2.3); `fempov` / `malepov` only when explicitly tagged. A POV tag in `tags` is mandatory.3536Hard compliance screens (before any creativity): **zero real celebrities; zero recognizable IP** (rename test: mask every proper noun — if the setting is still identifiable as a specific franchise, rewrite). No therapist/psychologist naming or clinical claims (comfort cards use listener/companion framing). Everyone adult, in appearance, behavior and setup.3738Character naming: avoid **naming slop** — the model-fixated names that read as AI on sight (the Antislop paper measured "Elara" at 85,513x over the human baseline): Elara, Kael, Seraphina, Lyra, Aria, Silas-the-mysterious, Sarah Chen. Naming method: anchor in a real language culture (Irish, Polish, Nigerian, Welsh surnames…) or coin something, then search the name to confirm no major IP collision.3940## 1. Card file structure4142Write `cards/en/<slug>/card.md` (or any working directory). Format spec: [`docs/card-md-format.md`](../../docs/card-md-format.md); converter: `tools/card_md_to_st.py` (md → chara_card_v2 JSON + v3 PNG).4344```45---46# positioning: fem-audience / fantasy / enemies-to-lovers + forced-proximity / anypov (comment line)47name: Character Name48license: CC-BY-4.049scenario: One always-true sentence (no temporary states — see §2.4)50system_prompt: <six segments, §2.5>51tags: [fem-audience, fantasy, enemies-to-lovers, slow-burn, anypov, single-character]52image_prompt: <cover skeleton, §5>53creator: your signature54character_version: "1.0"55---5657## Description <- labeled prose (§2.1)58## Personality <- scene-based behavior + language fingerprint (§2.2)59## Scenario <- always-true one-liner60## First Message <- §361## Alternate Greeting 1 / 2 … <- house standard 2–462## Example Dialogue <- voice weapon (§4)63## Lorebook <- 4–10 entries (§4.5)64## Creator Notes <- §665```6667Whole card in English (lorebook and Creator Notes included). Tags lowercase-hyphenated (the community's search language).6869## 2. Persona and play rules7071### 2.1 Description: prose as the body, labels as the frame7273Evidence: pure prose 67% mainstream; key-value lists a legitimate 13% minority whose division of labor is "prose for personality, lists for inventories". House style hybridizes the two — **labeled sections with natural-prose values**: under each label, complete prose sentences, not semicolon inventories. Personality, relationships and history must be prose; only enumerable info (appearance, dress) may go listy. No W++ pseudocode, no bracket parameter piles, no `trait("a"+"b")` syntax:7475```76[<Name>]77Identity: one sentence of who + age + how they make rent.78Appearance: paintable specifics (asymmetries / scars / dominant hand / the object never taken off). No empty "beautiful/handsome".79Voice: register + the physical side of how they talk (low, level, carries without rising…).80Dress: specific garments worn specific ways. Clothing is characterization.81Habits: 2–3 quirks, at least 1 of them "useless" (serves no plot function — see §7 anti-uniformity).82Temperament: personality as situations ("in scene X, does Y"), not adjective labels.83Toward {{user}}: the relationship's close-up + current tension (one piece of say-one-thing-do-another evidence welcome).84History: where they came from (a causal chain — explain why the personality grew this shape; a model with causes can extrapolate behavior in new scenes).85```8687Discipline:8889- **Description carries facts; the prose flair goes in the greeting and examples** (community iron law: "the prose goes in example dialogue and the greeting"). Fancy adjectives in the description waste tokens *and* teach the model the wrong style.90- **Permanent budget**: Description + Personality + Scenario at 800–1500 tokens (≈600–1100 English words); over 2000 must be cut. Check the estimate line in `tools/score_card_en.py` output.91- Physical anchoring: write the specific ("a 1997 Saab the colour of wet slate"), not the abstract ("an old car"). Numbers in spoken form ("ten seconds nine-something"); decorative fake-precision (0.5 seconds / 18:47) capped at 3 per card.9293### 2.2 Personality: scenes plus a language fingerprint9495- 4–6 "in this scene, they do this" behavior cases (bullets or short paragraphs). No numbered taxonomies, no parenthetical spec notes ("(voice lower)" belongs in a lorebook director entry).96- A **Language fingerprint** subsection, always: sentence-length habit (clipped fragments / run-on rambler), catchphrases, dialect or regional English (Scouse / Southern drawl / Aussie slang — real regional language culture is the English equivalent of dialect anchoring), address habits (whether they use names; pet-name tiers: luv, pet, sunshine, kid — pick by region and persona), refusal phrasing, praise ceiling.97- All nine liveliness techniques from the sister skill carry over (micro-flaws / say-do gaps / refusal & boundaries / a private life on stage / language fingerprint / physical anchoring / unfinished business / cognitive limits & misreads / emotional inertia). English-native example seeds: left on read; replies "fine." with the period; "I'm not doing this."; group-chat friends heckling; a verbal tic ("mmm" before disagreeing); rent due Friday; assumes {{user}} is here to collect a debt, and is wrong; still short-tempered from the morning's phone call.9899### 2.3 AnyPOV pronoun engineering (English-specific hard rule)100101- Permanent fields (Description/Personality/Scenario/Lorebook) **never anchor {{user}} with he/she, and avoid they** (singular they sticks permanently and creeps back after edits). Write subjectless or nounified: `Toward {{user}}: a regular now. Gets the corner booth without asking.`102- Greetings may use second-person "you" (gamebook tradition, immersive and legitimate) — but only for {{user}}'s observable situation, never their actions/dialogue/thoughts (§3.2).103- Only explicitly tagged fempov/malepov cards may anchor user gender, and tags must match.104105### 2.4 Scenario: always-true only106107`{{user}} is on a date with {{char}}` in Scenario = the model drifts back to the date long after the breakup. Temporary situations belong in the First Message; Scenario gets one permanently-true sentence ("Runs the only diner open past midnight on Halsey Street.").108109### 2.5 system_prompt in six segments1101111. **You are <Name>** + one persona anchor.1122. **[Style]** dialogue-shape constraints (fragment share / sentence caps / praise ceiling), baseline stance toward {{user}}, and **tense + narrative person pinned** (one choice, whole card).1133. **[Adversity]** what the character concretely does when crossed / humiliated / ignored (in-character, no lectures, no collapse).1144. **[Boundaries]** (positive phrasing — bare don't/never is unreliable on LLMs): **Speak and act only for <Name>**; narrate only what <Name> can observe; {{user}}'s words, actions and thoughts belong to {{user}} alone. Stay in character; never mention AI or models. Then an explicit slop ban: pick 6–10 high-risk phrases for this genre from §7 ("never write 'barely above a whisper', 'eyes sparkling with mischief', 'shivers down', 'a mix of X and Y', 'not X, but Y' constructions").1155. **[Cognitive limits]** the character knows {{user}} only through observation and what's been said; guesses wrong; repairs wrong guesses with actions, not apology speeches.1166. **[Emotional inertia + Output rhythm]**:117 - Default reply ≤120 words including narration (long-form cards may raise it — and must then demonstrate the length in the greeting); open up only at scene changes or long user turns; no fixed action-dialogue-action template.118 - Narration = observable physical fact; no emotion commentary ("clearly", "obviously", "a hint of", "she couldn't hide") — interpretation belongs to the reader.119 - First beat when offended = emotion only (flat "Ha." / silence + one action / a counter-question, ≤25 words); no same-turn self-defense; explanations arrive a turn late and grudgingly.120 - Fragments and one-word lines ≥1/3 of dialogue; mouth and hands may contradict. Information released one layer per turn. Cold endings allowed: no "what do you say?" / "the choice is yours" fishing.121122## 3. First Message123124### 3.1 Length and format band (English-native; replaces the Chinese 800–2,600-char band)125126- **Main band 150–350 words** (anchored on the sampled median of 179 and the greeting-equals-reply-length rule). Secondary bands 80–150 / 350–550. RPG/scenario cards (paradigm D) may run to 550. **Above 600 words is bloat.**127- Pick one format and hold it: **novel prose** (narration + quoted dialogue) or **asterisk style** (`*She looks up.*`). No mixing, no tense drift.128- **No HTML status bars or panels** (0/30 in the wild; Western readers read Chinese-style panels as foreign-body). RPG/system cards may use one light bracketed status line (`[Day 3 · Supplies: low]`) — that's the whole allowance.129130### 3.2 Three jobs + the user red line131132Three jobs: **scene** (time/place/weather in one stroke) → **character entry** (mid-action doing something characterful, ≥1 line of dialogue as personality proof) → **answerable hook** (the next move belongs entirely to {{user}}).133134User discipline (red line; the scorer auto-fails on it):135136- **Zero {{user}}/you actions, dialogue, or inner thoughts.** Rewrite by **subject inversion**: ~~`You are surprised to see him here.`~~ → `The sight of him here doesn't fit.`; ~~`You pick up the letter.`~~ → `The letter sits where anyone could pick it up.` The character observing {{user}} is legal (`She clocks the mud on your boots.` — the watching is *her* action). RPG/isekai exemption: one passive-perception hand-off ("You wake up in…"), never decisions or speech.137- Endings: the mainstream close is a **social-pressure action**, not a question (only 23% of sampled cards end on a question): the character does something {{user}} cannot not respond to. Ban "He waits for your answer." / "What will you do?" / "The night is still young."138139Self-check (fix anything missing):140141- [ ] Time/place/mood landed in one sentence, no worldbuilding lecture.142- [ ] An in-progress, unfinished event (not a static self-intro).143- [ ] ≥1 line of character dialogue that proves personality.144- [ ] {{user}} has a clear response opening; zero user actions/lines/thoughts.145- [ ] ≥1 piece of private-life evidence (the world contains other people: an unanswered text, a plate left out after closing).146- [ ] Tense/person/format consistent; inside the band.147- [ ] Ends on the character's words or actions; no fishing.148149### 3.3 Paradigms150151- **A — event scene** (default): 61 words can chart if it's "happening now + answerable".152- **B — undercurrent** (slow-burn romantasy): the character caught having just done something they'd deny meaning.153- **C — confrontation** (enemies-to-lovers opens mid-standoff): specific conflict, visible stakes.154- **D — world broadcast** (RPG/scenario): second-person situation report + one line per NPC to set faces + hand the camera to {{user}}; may run to ~500 words.155- **E — console** (sim/helper): operating instructions, short, with sample inputs.156157### 3.4 Alternate greetings: 2–4, always158159Each one changes the **entry situation** (time / place / relationship temperature / event stage), not the wording. Main greeting most universal; alternates can experiment. Same §3.2 checklist.160161## 4. Example Dialogue (house standard; the voice weapon)16216370% of sampled hot cards use it; `<START>` grouping is the standard. House rule: **2–4 short exchanges** (`{{user}}:` / `{{char}}:`) teaching syntax, not plot; at least one is a **refusal / cold-shoulder turn**. Heavy-tic characters (accent spelling, one-word lines, silence beats) may add a **char-only monologue group** (no user turns — pure voice-lock). No all-Q&A sets (they train an interview bot). Hand-write them; pasted model output carries that model's biases.164165## 4.5 Lorebook (4–10 entries, conditional reveal first)166167Entry-header syntax per [`docs/card-md-format.md`](../../docs/card-md-format.md) (`### Name | keys: a, b | constant | order: N | prob/secondary/sticky…`). English-side rebalance:168169- **Standard five**: ① voice samples (constant, order 320 — pure dialogue bank by situation, no narration mixed in) ② behavior director (constant, order 900 — the runtime contract; a condensed rewrite of system_prompt segment 6) ③ backstory vault (keyed on names/places/events — **density-locked**: one reveal per scene, secrets never volunteered wholesale) ④ relationship tiers or house rules (constant — warmth tiers as observable behavior differences, never bare percentages) ⑤ NPC ecosystem (keyed on NPC names — each gets one face-setting line + their own schedule; they are not props).170- Optional: random-event entry (`prob: 15 | cooldown: 6`), $command artifact entries (RPG/sim cards only; plain-text artifacts, no HTML).171- Entry bodies in English, self-contained subjects (trigger keys are not injected with the content); one entry = one matter, 150–1200 words; constants ≤ half.172- **Every keyed entry needs keys** (keys empty + not constant = a dead entry that never fires; the converter guards this, but don't write it).173174## 5. Cover art (English-market recipe)175176The Chinese-card cover convention (vertical calligraphy title + vermilion seal) **does not transplant** — no cultural anchor. Three rules:1771781. **Style routed by genre** (use the 18 style guides in [`../character-card-author/styles/`](../character-card-author/styles/)): realistic photo (modern / workplace / girl-next-door), ethereal (romantasy / fantasy), anime-impasto or anime-cel (anime-adjacent), amcomic (noir / crime), gothic (supernatural). Fantasy settings avoid realistic photo (uncanny valley).1792. **Composition**: vertical 9:16, face in the upper half (eyes near the upper third), a prop that carries character information in hand, one accent color, slight low/high angle, eyes off-camera.1803. **Text rule: default "no text anywhere in the image, no letters, no logos, no watermarks."** Generated English lettering is error-prone and Western card faces carry no title-calligraphy tradition; typography belongs to the UI layer.181182Age safety: "a woman in her thirties"-style phrasing, no on-image age digits. Verify every generated cover by eye (face intact / hands / no stray glyphs).183184## 6. Creator Notes (the Western social contract, seven items)185186Register = casual bot-maker aside, not product copy (no "positioning/differentiation/mechanics"):1871881. **POV/audience declaration**, first line: `AnyPOV. Written with a fem-leaning gaze but anyone's welcome.`1892. **Content notes**: SFW statement + content warnings for heavy themes (grief, injury) + a heat note (`Slow burn, fade-to-black territory. This one's about the tension.`).1903. **Art attribution**: `Art: AI-generated (style).` Don't impersonate an illustrator.1914. **Model advice**: one line (what runs the clipped voice well / how long-form models drift / when to re-roll).1925. **First-line guide**: 2 sample opening moves (one cooperative, one contrarian, both in-flavor) — the Western equivalent of cold-start lubrication.1936. **Version line**: `v1.0 (2026-07)`.1947. **One in-voice closer** (the author's note is also performance).195196## 7. Anti-slop discipline (English lexicon; scorer speaks the same language)197198### 7.1 The lexicon199200The full 95-phrase grouped list lives with the scorer (`tools/score_card_en.py`, `SLOP_PHRASES` + `SLOP_REGEX`; sources: Sukino's Banned Tokens list, the Antislop paper (arXiv 2510.15061), EQ-Bench's slop score, community complaint threads). Top clusters to just not write:201202- Body: shivers down her spine (whole family) / breath hitches / heart hammered against ribs / swallowed hard / knuckles white / takes a deep breath.203- Voice: barely above a whisper / husky voice / murmured-dependency / chuckles darkly / voice thick with.204- Eyes: eyes sparkling with mischief (gleam/glint/glow family) / eyes never leaving / half-lidded / a smile that didn't reach her eyes / calculating gaze.205- Motion: ministrations / tracing a finger / practiced ease / tucking a strand of hair.206- Metaphor nouns: tapestry / symphony of / kaleidoscope / like a moth to a flame / a dance as old as time.207- Atmosphere: dimly lit / the air is thick with / casting long shadows / dust motes dancing / words hung in the air.208- Endings: they would face it together / was only just beginning / for now, that was enough / ready to face whatever lay ahead.209- NSFW cluster: on SFW cards, any hit is a red line (FAIL, not a deduction).210211Usage note (the sources agree): slop is judged by **cluster density**, not single occurrences; and slop fingerprints cluster by model family. The lexicon is a detector + rewrite trigger, not a word ban.212213### 7.2 Pattern quotas (whole card)214215| Pattern | Quota | Note |216| --- | --- | --- |217| "not X, but Y" / "It's not just X, it's Y" | ≤1 | the #1 LLM rhetorical crutch (EQ-Bench weights contrast patterns at 25% on their own) |218| "a mix of X and Y" | 0 | the emotion-cocktail formula |219| "couldn't help but" | ≤1 | |220| em-dash (—) density | ≤6/1000 narration words (house lint) | **Calibration finding: em-dash does not separate human from AI in English RP prose** — in our 30-card human sample roughly a quarter of top cards exceed 3/1000w (human asterisk-RP prose uses it liberally). It is a tidiness budget, not an AI signal, and costs no anti-slop points (the *opposite* of Chinese, where the long dash is the #1 machine tell — don't port that rule) |221| adjective triads (rule of three) | ≤1 | |222| "little did X know" / narrator winks | 0 | |223| "for what felt like an eternity" | 0 | |224| decorative fake-precision numbers | ≤3 | numbers with narrative function (bills, countdowns, scores) exempt |225226### 7.3 Anti-uniformity (structure is the deepest tell)227228- Big sentence-length variance: fragments against 30+-word sentences; five equal-length sentences in a row is a signal.229- At least one "useless" idle detail per card; a card where every detail serves a function reads generated.230- Flat closings allowed. "Cleverness density is AI density" — read aloud; whichever line makes you think *nice line* — flatten it.231- Uniform wit = AI: quote-capped facts ≤1, antithesis flips ≤1, aphorism closers ≤1.232- **Common ≠ fake**: the Western mainstream texture is also tropey (mafia boss / arranged marriage / grumpy neighbor). Loose execution with burrs beats sentence-by-sentence polish.233234## 8. Score, red-line, ship235236```237python3 tools/score_card_en.py cards/en/<slug>/card.md238```239240Eight dimensions (100): fields 13 / greeting 18 / liveliness-nine 24 / tags & positioning 10 / format & replayability 12 / lorebook 8 / image prompt 10 / anti-slop 5.241242- **Red lines (any hit = FAIL regardless of score)**: user actions/dialogue in the greeting; NSFW lexicon (this skill targets SFW cards); naming-slop character names; real-celebrity/IP fingerprints; therapy claims; permanent estimate >2000 tokens.243- ≥85 ship; 75–84 usable with a weakness list; <75 fix by issues, max 3 rounds.244- **Run the §7 self-check before first submission** (first-draft outputs reliably blow the quotas; "not X, but Y" and em-dash patches are the habitual English offenders).245- If you use an LLM judge at all: calibrate it on human-consensus gold anchors first, and use it only for relative before/after comparison of the same card — see [`docs/blind-review-experiment.md`](../../docs/blind-review-experiment.md) for why (our four-judge panel agreed 86% and was right 12% of the time).246- Convert & import: `python3 tools/card_md_to_st.py cards/en/<slug>/card.md --avatar cards/en/<slug>/cover.png --outdir out/ --slug <slug>` → v2 JSON + v3 PNG, drag into SillyTavern or any v2/v3 frontend.247248## 9. Example cards (read one same-quadrant card before writing)249250Three cards in [`cards/en/`](../../cards/en/) were authored by this skill and are its structural templates:251252- `edmund-harrower/` — fem-audience · fantasy · enemies-to-lovers + forced-proximity · A/C hybrid paradigm. Labeled prose + a density-locked backstory vault.253- `frankie-doyle/` — all-audience · modern cozy · grumpy-x-sunshine + found-family · paradigm A with a short greeting (~160 words). Comfort-without-therapy boundary work.254- `redline-salvage/` — anypov ensemble · sci-fi · adventure + found-family · paradigm D world broadcast. Light bracketed status line + NPC roster + a random-event entry.255256The other three (`rosalind/`, `caleb/`, `the-lighthouse/`) predate this skill — written with the Chinese methodology on an English surface. They stay as an honest contrast group: read them to see what "translated discipline" looks like versus "re-derived discipline".257258Learn structure and hand-feel from examples; personas, verbal tics and openings must be original. No reskins.259260## 10. Field notes (learned the hard way; read before batch production)2612621. **First-draft English offenders differ from Chinese ones**: Chinese drafts over-produce 「不是A,而是B」; English drafts over-produce "not X, but Y" and the em-dash patch (`statement—qualifier`). Grep `—` and `not .*, but` before scoring, and unpick sentences at the hit sites. But note the em-dash's *nature* is language-dependent (§7.2): in English it's a style budget, not an AI signal.2632. **"Character observes user" vs "user acts"**: `She clocks the mud on your boots.` (legal — the verb's subject is the character) vs `You track mud across her floor.` (violation — {{user}} got assigned an action). Point at the verb subject of every sentence containing you/{{user}}.2643. **AnyPOV cards leak pronouns in NPC dialogue** — NPCs referring to {{user}} say he/she before you notice. Make NPCs use nouns ("the new regular", "your friend").2654. **Fade-to-black needs an explicit exit**: on SFW romance cards, write the cut into system_prompt ("If things heat past kissing, cut the scene and pick up after.") — without a stated exit the model will cross the line on its own.2665. **Don't study old cards as format guides**: W++-era cards still float around the archives; when researching, read them as history, not as a spec. §2.1's labeled prose is the spec here.