| name | history-comics-content |
| description | Generate historical comic content for the history-comics workspace targeting
Chinese children aged 4-10. Use when the user asks to create, populate, or
scaffold a new comic entry (e.g. a chengyu/典故/history story) under
`content/<country>/<period>/<slug>/`. Covers the full pipeline: meta.json →
story.md (Chinese) → story.en.md (English translation) → prompt.md (image
generation prompts). Applies the user's writing preferences: full classical
original text with full vernacular translation, and event analysis that
extracts core life philosophy without childish narrator framing.
|
| allowed-tools | ["read_file","create_file","replace_string_in_file","multi_replace_string_in_file","list_dir","grep_search","file_search"] |
History Comics — Content Authoring Skill
This skill captures the end-to-end workflow for authoring one comic entry in
the history-comics repository. Every entry lives at:
content/<country>/<period>/<slug>/
├── meta.json # bilingual metadata + tags + order
├── story.md # Chinese narrative: 历史典故 + 事件分析
├── story.en.md # English translation of story.md
└── prompt.md # image generation prompts for GPT image tools
When to use
Invoke this skill whenever the user asks to:
- Add a new historical story / chengyu / 典故 entry.
- Fill in an empty
story.md, story.en.md, meta.json, or prompt.md
scaffold under content/.
- Regenerate any of the four files above based on the others.
Do not use this skill for general code changes in web/ or scripts/.
Global preferences (read carefully — these are non-negotiable)
- Audience: Chinese children aged 4–10, plus international children
reading the English version to learn Chinese culture. Language must be
understandable by a 4-year-old when read aloud, yet substantive enough for
a 10-year-old.
- Voice: Neutral third-person narrator. Never use childish framing
prefixes such as “宝贝”, “爸爸给你讲”, “小朋友们”. Never add honorifics
like “叔叔 / 爷爷 / 奶奶” to historical figures — refer to them by name or
role (e.g. 晏子、齐景公、丞相).
- Tone: Warm but grown-up. Explain philosophy directly, don’t talk down.
- Length: Prefer completeness over brevity. The user explicitly wants the
full classical text and a full vernacular translation that covers
every line of the original.
- Bilingual by design: everything the reader sees — narration, dialogue,
even on-image speech balloons — is delivered in both Chinese and English so
that Chinese kids pick up English while foreign kids pick up Chinese
culture.
- No emojis in generated content unless the user asks.
Step 1 — meta.json
Location: content/<country>/<period>/<slug>/meta.json
Before authoring, check the sibling _meta.json files to understand the
period/country context, and existing entries in the period to pick a correct
order value.
Schema (all fields required unless noted):
{
"id": "kebab-case-slug",
"title": "中文标题",
"titleEn": "English Title",
"description": "一句话中文简介,说明故事梗概或核心冲突。",
"descriptionEn": "One-sentence English summary of the story.",
"order": 1,
"tags": ["朝代", "国家/人物", "主题"],
"tagsEn": ["Dynasty", "State/Person", "Theme"],
"createdAt": "YYYY-MM-DD"
}
Notes:
id uses lowercase kebab-case pinyin (e.g. er-tao-sha-san-shi). The
folder name itself may be Chinese if a sibling entry already uses Chinese,
but the id field is always pinyin kebab-case.
- Keep
tags to 3–4 items covering: dynasty/period, state or key person,
and the theme (e.g. 计谋、迁都、变法).
tagsEn must be a 1:1 translation of tags in the same order.
Step 2 — story.md (Chinese)
Fixed template — do not add or remove sections.
# <中文标题>
## 历史典故
**出处:**
《书名·篇名》
**原文:**
<经典文言原文,务必完整,不要节选。保留原书标点或按通行版本断句。>
**白话文讲述:**
<用通俗生动的现代白话文覆盖原文全部内容,可分段。翻译要覆盖原文每一句,
不要跳过,也不要压缩成梗概;对儿童陌生的名词(如官职、地名、器物)用一
两个词自然带过解释。>
## 事件分析
**1. <核心哲理一>(副标题:可选的更通俗表述)**
<用平实、有共鸣的语言解释这个道理,联系故事中的具体情节,帮孩子理解人性
或人生选择。3-5 句为宜。>
**2. <核心哲理二>(副标题)**
<同上>
**3. <核心哲理三>(副标题)**
<同上>
Authoring rules for story.md:
- 原文:使用权威版本的完整原文。如果传世文本较长(如整篇《尚书·盘庚》),
截取该典故完整叙事段落,但在段内不可跳句。若为“节选”须在括号注明。
- 白话文讲述:
- 逐段对应原文,覆盖每一个情节点,包括对话、动作、心理。
- 对话译成现代口语,可加“说”“听了说”等衔接词。
- 化解生僻名词:
鼋 → “巨大的大鳖”;骖 → “拉车的马”。
- 允许适度补充历史背景(例如时代、人物身份),但不要虚构原文没有的情节。
- 事件分析:
- 默认三条哲理(可 2–4 条),每条用
**数字. 主题(副标题)** 起始。
- 每条从故事情节切入,抽象出一个可迁移到孩子生活的道理,例如:
智慧胜过蛮力、控制情绪、真正的勇气、诚信、谦让等。
- 避免说教口气;不要出现“小朋友”“宝贝”“爸爸”“妈妈”等第二人称呼唤。
- 可以温和地对历史人物的选择提出反思(如“这真的是勇敢吗?”)。
Step 3 — story.en.md (English)
Translate story.md into English, preserving structure 1:1:
# <English Title>
## The Story
**Source:** <Book·Chapter, italicized book name in English + pinyin>
**Original Text (Classical Chinese):**
<Keep the classical Chinese original verbatim — do NOT translate this block.
Readers who want the source expect to see it.>
**Retelling in Modern English:**
<Full narrative translation matching every beat of the Chinese vernacular
version. Natural, readable modern English suitable for ages 4–10.>
## What We Learn
**1. <Theme One> (short subtitle)**
<Explanation.>
**2. <Theme Two> (short subtitle)**
<Explanation.>
**3. <Theme Three> (short subtitle)**
<Explanation.>
English translation rules:
- Translate names using Hanyu Pinyin without tone marks (e.g. Yan Zi, Duke
Jing of Qi, Gongsun Jie).
- On first mention of a book title use the format
*Book of Documents* (Shangshu) — italic English name, pinyin in parens.
- Keep the classical Chinese “Original Text” block untranslated.
- The “What We Learn” section must mirror the number and order of the Chinese
事件分析 points; do not reorder or merge.
- Match the ages-4-to-10 register — clear, concrete, no idioms that require
Western cultural context.
Step 4 — prompt.md (image generation)
Purpose: prompts for GPT-based image generation tools (GPT-Image / DALL·E)
that will illustrate this comic. Comics do need on-image text — speech
balloons, captions, and title cards — so kids can read the dialogue. All
in-image text is bilingual: Chinese on top, English below.
The rest of this section is deliberately mechanical so that even a weaker
model can produce a consistent prompt.md from any story.md. Follow the
sub-steps 4.1 → 4.5 in order.
4.1 — Pick the visual style (unified brand + deterministic variation)
The core art style (children's manhua, ink-wash, chibi) is unified across the entire project so the comic series feels like a cohesive brand. However, the specific palette, costumes, and motifs are strictly derived from the historical period. Read the parent content/<country>/<period>/_meta.json to get the period id, then look up the row in the table below. Do NOT invent a new style framework per story.
Period id | Palette (dominant → accent) | Costume / props hint | Motif / background |
|---|
shang-zhou | bronze + ochre + terracotta | 青铜时代宽袖交领袍、玉璜、饕餮纹 | 甲骨纹路、青铜器、黄土城墙 |
chunqiu | indigo + jade green + cream | 深衣、玉带钩、发冠、竹简 | 春秋战车、诸侯宫殿、竹林 |
zhanguo | crimson + charcoal + gold | 战国深衣、皮甲、长剑 | 城郭、烽火台、战鼓 |
qin | black + iron gray + red | 秦式玄衣、束发冠、兵马俑装束 | 长城、驰道、秦砖 |
xi-han / dong-han | vermilion + jade + gold | 汉服曲裾直裾、进贤冠、玉佩 | 未央宫、丝绸之路、汉阙 |
wang-mang | muted olive + copper | 新朝仿古礼服 | 复古礼制场景 |
san-guo | crimson + steel blue + gold | 三国铠甲、羽扇纶巾、战袍 | 战场、军帐、山川 |
wei-jin-nanbeichao | pale celadon + ink black | 魏晋褒衣博带、麈尾、竹林 | 隐士山林、清谈之所 |
sui / tang | vermilion + gold + peony pink | 唐圆领袍、襦裙、幞头 | 长安坊市、宫阙、丝路 |
wudai-shiguo | slate blue + copper | 五代风格圆领袍 | 藩镇割据场景 |
song | ink black + pale jade + white | 宋直裰、幞头、点茶器具 | 汴京市井、山水画意 |
yuan | steppe brown + turquoise + gold | 元蒙古袍、笠帽、皮靴 | 草原、驿站、大都 |
ming | crimson + royal blue + gold | 明补子官服、方巾、云肩 | 紫禁城、青花瓷、明式家具 |
qing | imperial yellow + navy + coral | 清马褂、旗装、翎羽顶戴 | 紫禁城、江南园林 |
modern | muted red + sepia + off-white | 长衫、中山装、旗袍 | 民国街景、洋楼、老照片调 |
Universal style anchors, applied to every panel regardless of period:
- Base style:
children's picture-book manhua illustration, soft Chinese ink-wash accents, chibi (Q-version) proportions, rounded friendly shapes, ages 4–10.
- Line:
clean confident linework, ink outlines, no photorealism.
- Lighting:
soft even lighting, warm mood.
- Safety:
no gore, no blood, no scary faces, no modern objects.
4.2 — Decide the panel count (deterministic formula)
Do not guess. Compute the count from story.md 白话文讲述.
Step A — count story beats. A beat is any of:
- Change of location (they walk to another place).
- Change of time (later that day / next morning / years pass).
- A new speaker starts talking, OR someone answers with a decision that
changes the situation.
- A turning point (someone acts, discovers something, dies, wins).
- A visible emotional shift in a main character.
Read the vernacular version and put a mental tick beside every sentence that
triggers one of the five rules. Let B = number of ticks.
Step B — apply the count formula.
panels = clamp(B + 2, min = 4, max = 8)
The +2 accounts for the required opening establishing panel (see 4.3)
and closing "moral" panel (see 4.3). clamp keeps the total between 4
and 8 — shorter than 4 loses narrative, longer than 8 exhausts the young
reader’s attention.
Step C — sanity check the split. Assign each remaining panel to one
beat. If two beats land in the same panel, either merge them into one
action or split into two panels (respecting the max = 8 cap).
Record the count and the beat list at the top of prompt.md in the
"分镜规划" block (see template below) so downstream reviewers can trace it.
4.3 — Required panel roles
Every prompt.md must contain these three role-typed panels; the middle
panels fill in the beats.
| # | Role | Purpose |
|---|
| 1 | Establishing shot | Wide shot introducing time, place, main characters. Caption states 时代/地点. |
| 2..N-1 | Beat panels | One per story beat, in chronological order. Each has ≥ 1 dialogue or narration. |
| N | Moral / closing shot | Calm, iconic closing image echoing the first 事件分析 point. Caption states 寓意. |
4.4 — Cross-panel continuity (the "series bible")
Weak models tend to redraw characters differently every panel. Prevent this
by writing a Series Bible block at the top of prompt.md and by
repeating its identifiers verbatim in every panel prompt.
The Series Bible must specify, for each named character:
id: short English handle (e.g. yanzi, duke_jing, gongsun_jie).
- 外貌:身高体型(矮胖/瘦长/魁梧)、脸型、发型/发冠、胡须。Use your world
knowledge to assign iconic historical archetypes (e.g., Guan Yu must have
a red face, green robe, and long beard). If no famous archetype exists,
PAUSE and ask the user to confirm your proposed design before proceeding.
- 服饰:颜色(明确 hex 或色名)、纹样、配饰。
- 标志物:随身道具(如晏子的竹简、古冶子的宝剑)。
- 情绪基调:默认表情(例如晏子=从容微笑;勇士=剑眉怒目)。
Continuity & Comic Dynamism rules to apply in every panel:
- Character ID reuse & Color Coding. Every panel prompt refers to characters by the
same
id and repeats their short costume descriptor. Crucial: Assign a strict, unique signature color to each character (e.g., Yanzi is ONLY indigo, Gongsun is ONLY russet). Do not let colors overlap between characters.
- Palette lock. Use the same period palette (from 4.1) across all
panels. Do not switch to a different dominant color unless the beat is
explicitly night / battle / dream.
- Camera & Posing variety (Crucial for Comics). Vary the camera to keep
visual interest (
wide → medium → close-up → over-the-shoulder). More
importantly, force dynamic poses and expressive body language. Do not
generate stiff characters standing straight. Use action verbs ("leaning in
aggressively", "slumping in defeat", "pointing an accusing finger").
- Time-of-day tag. Every panel prompt ends with a time-of-day tag
(
morning light / noon / dusk / torch-lit night). Consecutive
panels stay within the same tag unless a "time change" beat justifies
otherwise.
- Environment carry-over. If two panels share a location, reuse the
same 2–3 background elements literally (e.g. "same jade pillars and
bronze cauldron as previous panel").
- Prop continuity. If a prop (the 桃子, the 剑) appears in panel N, it
must be drawn again in panel N+1 while it is still narratively present.
4.5 — Template
# <中文标题> - 漫画生成提示词
## 分镜规划(追溯用,不进画面)
- 白话文识别出的 beats(共 B 条):
1. <beat 1: 位置/时间/说话人/转折/情绪 的哪一类>
2. <beat 2 ...>
- 计算:panels = clamp(B + 2, 4, 8) = <N>
- 分配:panel 1 = 建立镜头;panel N = 收尾寓意镜头;其余按序对应 beats。
## Series Bible(所有分镜共用,须在每个 English prompt 中复述)
**Style anchors:** children's picture-book manhua illustration, soft Chinese
ink-wash accents, chibi proportions, clean ink linework, ages 4–10, no
gore, no modern objects.
**Period palette:** <从 4.1 表格里查到的调色板>
**Characters:**
- `yanzi` — 矮胖、白须、青灰深衣、腰佩玉带钩、手持竹简;表情从容微笑。
English descriptor: "short plump elder Yanzi, white beard, indigo hanfu
robe, jade belt hook, holding bamboo scrolls, calm smile".
- `gongsun_jie` — 高大魁梧、剑眉、束发冠、赭色皮甲、腰佩长剑;表情自负。
English descriptor: "tall muscular warrior Gongsun Jie, thick eyebrows,
topknot, russet leather armor, long sword at waist, proud expression".
- <其余人物同上>
**Speech balloon spec:** rounded balloon with tail pointing to the speaker;
two stacked lines of text — Chinese on top (Source Han Sans, larger),
English on the second line (Comic Neue, smaller). ≤ 12 Chinese characters
and ≤ 12 English words per balloon.
**Negative:** no gore, no realistic weapon wounds, no scary faces, no
modern objects, no gibberish letters — every visible glyph must be a real
Chinese character or English word.
**Aspect Ratio:** 16:9 unless noted.
## 分镜列表
### 分镜 1 — 建立镜头:<场景中文名>
**Beat 类型:** establishing
**镜头:** wide shot
**时间光线:** morning light
**中文描述:** <发生的事、镜头焦点、人物、环境。>
**对白 / 旁白(将在画面中出现,双语):**
- 旁白:
- 中文:<≤ 12 字,交代时代/地点>
- English: <≤ 12 words>
**English Prompt:**
> A children's picture-book manhua wide establishing shot of <scene>,
> featuring <character id + descriptor from Series Bible>, set in <period
> location with 2–3 concrete props>, morning light, soft Chinese ink-wash
> accents, chibi proportions, <period palette repeated verbatim>. Include a
> rectangular caption box at the top with two lines of text: Chinese
> "<中文旁白>" on top and English "<English narration>" below in smaller
> font. IT IS CRITICAL that both Chinese characters and English words are
> rendered EXACTLY as provided. All glyphs must be legible and correct — no gibberish.
> Safe for ages 4–10, 16:9.
---
### 分镜 2 — <场景中文名>
**Beat 类型:** <location-change / new-speaker / turning-point / emotion-shift>
**镜头:** <medium / close-up / over-the-shoulder / wide>
**时间光线:** <same as previous unless beat says otherwise>
**中文描述:** …
**对白 / 旁白(双语):**
- 说话人 `<character id>`:
- 中文:<≤ 12 字>
- English: <≤ 12 words>
**English Prompt:**
> A children's picture-book manhua <camera> of <scene>, showing
> <character id + descriptor from Series Bible> doing <action>, with
> <same background element as previous panel if same location>, <time of
> day>, soft Chinese ink-wash accents, chibi proportions, <period palette>.
> Include a rounded speech balloon from <character id> containing two lines
> of text: the Chinese line "<中文台词>" on top and the English translation
> "<English line>" below in smaller font. IT IS CRITICAL that both Chinese
> characters and English words are rendered EXACTLY as provided. All glyphs
> must be legible and correct — no gibberish. Safe for ages 4–10, 16:9.
---
### 分镜 N — 收尾寓意镜头:<场景中文名>
(同上,但 Beat 类型 = closing,镜头通常回到 wide,caption 用来点出寓意。)
4.6 — Authoring rules (summary)
- Each scene has both a Chinese planning note and an English prompt (English
is what actually feeds the image model). Every line of dialogue that will
appear inside the image is written out in both languages in the
“对白 / 旁白” block, and echoed literally inside the English prompt so the
model knows exactly which glyphs to render.
- Keep on-image text short (rule of thumb: ≤ 12 Chinese characters / 12
English words per balloon). Image models render short strings much more
reliably than long ones.
- Do not include violent or gory descriptors even when the story is dark
(e.g.
刎颈 → depict swords lowered / sorrowful pose, not blood).
- Respect period costume: 春秋战国 = 深衣、玉带钩; 商周 = 青铜时代衣饰; etc.
- Because image models sometimes garble Chinese characters, always add the
clause “IT IS CRITICAL that both Chinese characters and English words are rendered EXACTLY as provided. All glyphs must be legible and correct — no gibberish”
at the end of every English prompt.
Full workflow (default order)
When the user asks to “generate the entry” for a given story, walk the
pipeline in order and confirm nothing was skipped:
-
Human-in-the-Loop Principle: Throughout this pipeline, if there is ANY
uncertainty regarding the correct historical period, multiple conflicting
versions of the classical text, or a lack of established visual archetype
for a character, you MUST use the vscode_askQuestions tool to present
options and ask the human for a decision. Do NOT guess blindly.
-
Resolve directory & read context: Use your world knowledge to determine
the correct historical <period> (e.g., Jing Ke -> zhanguo). If ambiguous,
ask the user. list_dir on content/<country>/<period>/ to see what
already exists; read the parent _meta.json files for context.
-
meta.json — create or verify. Auto-calculate order by finding the
maximum order among existing sibling entries and adding 1. Do not ask the
user unless there is a conflict.
-
story.md — apply Step 2 template. If the user did not provide the
original text, use your world knowledge to retrieve the exact canonical
classical passage (e.g., from Shi Ji, Zuo Zhuan). If multiple canonical
versions exist, ask the user which to use. Fill in-place if the file exists.
-
story.en.md — translate from the finalized story.md, following
Step 3.
-
prompt.md — derive scenes from story.md, following Step 4:
- 4.1 — look up period → palette + costume + motif (no free choice).
- 4.2 — count beats
B in the 白话文, compute
panels = clamp(B + 2, 4, 8), list beats in the 分镜规划 block.
Note: If a crucial dialogue is too long for the 12-word limit, do not
cram it into one balloon. Split the scene into two consecutive
panels to spread out the dialogue.
- 4.3 — reserve panel 1 (establishing) and panel N (closing/moral);
allocate the middle panels to beats in chronological order.
- 4.4 — write the Series Bible (characters, palette, balloon spec,
negatives) once at the top of
prompt.md.
- 4.5 — write each panel using the template, repeating the
character English descriptors and period palette verbatim in
every English prompt.
After each file is written, briefly report what was created/updated with a
markdown link, and move on. Do not ask for confirmation between steps unless
the user's intent is ambiguous.
Anti-patterns (do not do these)
- ❌ Adding "宝贝" / "爸爸" / "小朋友" prefixes to analysis paragraphs.
- ❌ Calling historical figures 叔叔 / 爷爷 / 奶奶.
- ❌ Truncating 原文 to a short excerpt when the full passage is short
enough to include.
- ❌ Summarizing 白话文 into a paragraph that skips whole sections of the
original.
- ❌ Merging or reordering the philosophy points between Chinese and English
versions.
- ❌ Writing image prompts that forbid on-image text — comics need speech
balloons; the rule is bilingual (Chinese + English), not no-text.
- ❌ Letting a balloon appear in only one language, or letting the English
line dominate over the Chinese one (Chinese is always the top / primary
line).
- ❌ Using emojis in
story.md / story.en.md / prompt.md output.
- ❌ Inventing a fresh visual style per story — the style is fixed by the
period lookup table in 4.1.
- ❌ Guessing the panel count — always derive it via the beat-counting
formula in 4.2 and log the beats in the 分镜规划 block.
- ❌ Introducing a new physical descriptor for a character mid-story — every
panel prompt must copy the character’s English descriptor from the Series
Bible verbatim.
- ❌ Switching palette, costume, or hair between panels without an in-story
reason (day/night, disguise, time skip).
- ❌ Skipping the establishing (panel 1) or closing/moral (panel N) panel.