#243 by GitHub stars

eternityspring/shuohao-skills

AI 短剧制作的 skill 集合:拆角色、排大纲、出场景与道具设定、写剧本、切分镜 | Agent skills for AI short-drama production — character bibles, adaptation outlines, art bibles, screenplays, storyboards. Runs in Claude Code & codex.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/character-refs/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-art/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-characters/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-outline/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-script/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-staging/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

skills/novel-storyboard/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

5612d2a0bd5f → 5612d2a0bd5f

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 5612d2a0bd5f

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 5612d2a0bd5f19d978c3ee19d1e42840335e3b4b

git clone --filter=blob:none --no-checkout https://github.com/eternityspring/shuohao-skills.git .hotskills/eternityspring-shuohao-skills && git -C .hotskills/eternityspring-shuohao-skills checkout --detach 5612d2a0bd5f19d978c3ee19d1e42840335e3b4b # Copy each selected skill directory from .hotskills/eternityspring-shuohao-skills into .agents/skills/<skill-name>/
6.1kGitHub stars
382stars in 7 days
7skills in this repository
19commits in 30 days

Heat

8.2
  • Star growth, last 7 daysAhead of 97% of tracked repositories
  • Star growth, last 24 hoursAhead of 98% of tracked repositories
  • Rank movement, last 7 daysAhead of 90% of tracked repositories
  • Commits, last 30 daysAhead of 83% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 6, 20266,120

Individual skills in this repository

How it works

character-refs

When your agent uses it

给任何故事里的角色真出参考图(小说改编、自己原创的故事、单独设计一个角色都行,不需要小说原文): 一段话描述角色,拆成分层字段、补全后确认, 先出一张正面全身锚点,其余视图(大头照、90° 侧面、背面、细节、45° 大头照)都只参考这张锚点, 按需分档出图。每张图带标识、可单独重出,重出后自动标出哪些图过期。 支持 Qwen Image(ComfyUI)、codex 内置出图、OpenAI Images API(GPT Image 2)和自定义命令,主图与派生图可以使用不同模型。 产出 asset.json + 一组 PNG + 双击就能开的报告。零依赖。 只要提示词、不出图的话使用 novel-characters。 Use when asked to 出角色图、做角色参考图、给我的角色出图、定妆照、真出三视图、character reference images。

What it loads into context

Frontmatter

386 tokens

Always available to the agent

SKILL.md

3,880 tokens

When the skill is activated

Reference documents

11,622 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. character-refs
  2. 落地结构
  3. 边界
  4. 自测
  5. 自带样例

Scripts executed separately

  • scripts/character-refs.mjs
  • scripts/core.mjs
  • scripts/i18n.mjs
  • scripts/looks.mjs
  • scripts/models.mjs
  • scripts/png.mjs
  • scripts/selftest.mjs

Files

  • README.en.mddoc7,265 bytes
  • README.mddoc7,778 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • SKILL.mdcore13,071 bytes
  • assets/report.webpasset94,858 bytes
  • examples/阿禾-intake.jsonasset2,832 bytes
  • examples/阿禾-描述.txtdoc324 bytes
  • references/intake.mddoc5,845 bytes
  • references/models.mddoc5,215 bytes
  • references/prompting.mddoc8,156 bytes
  • references/schema.mddoc4,491 bytes
  • scripts/character-refs.mjsruns35,273 bytes
  • scripts/core.mjsruns32,645 bytes
  • scripts/i18n.mjsruns11,536 bytes
  • scripts/looks.mjsruns5,009 bytes
  • scripts/models.mjsruns19,274 bytes
  • scripts/png.mjsruns7,050 bytes
  • scripts/selftest.mjsruns40,367 bytes
Read SKILL.md

## character-refs

输入一段角色描述,输出一组角色参考图——**角色从哪来都行**:小说改编、自己编的故事、临时想到的一个人。**一张正面全身锚点,其余每张都只参考这张锚点**。
给视频模型(H3 / Wan / Seedance)当参考图使用,也给人看。

`{baseDir}` = 本文件所在目录。脚本 `{baseDir}/scripts/character-refs.mjs`,零依赖,`node` 直接跑。

**这是仓库里唯一真出图的 skill。**其余 skill 只交提示词,因为出图那一刻才能决定模型和画风;
这个 skill 就是「那一刻」——模型在 Step 0 由用户选定,画风在建角色时选择(默认动漫,另有写实预设,也能挂自定义画风)。

### 核心规则(先读懂再动手)

- **一组图只有一个根:正面全身锚点。**只有它是文生图,其余全是「锚点 + 一句改图指令」。
  头发、脸、领口三类细节额外挂确认过的正脸大头照。图与图之间不再互相参考——
View the complete source on GitHub

Skills included

  • character-refs
  • novel-art
  • novel-characters
  • novel-outline
  • novel-script
  • novel-staging
  • novel-storyboard

Repository facts

License
Apache-2.0
Created
Aug 6, 2026
Last pushed
Oct 26, 2026
Forks
848
Open issues
0
Project activity
Active

Rank over the last 12 weeks

Now #243 · best #242 · up 21 in 30 days

  1. #248 on Oct 31
  2. #246 from Nov 1 to Nov 2
  3. #248 on Nov 3
  4. #244 on Nov 4
  5. #242 on Nov 5
  6. #243 since Nov 6
72 earlier periods
  1. #888 on Aug 2
  2. #859 on Aug 7
  3. #847 on Aug 8
  4. #788 on Aug 9
  5. #754 on Aug 10
  6. #579 on Aug 11
  7. #502 on Aug 12
  8. #491 on Aug 13
  9. #461 on Aug 14
  10. #441 from Aug 15 to Aug 16
  11. #436 from Aug 17 to Aug 18
  12. #427 on Aug 19
  13. #411 on Aug 20
  14. #409 on Aug 21
  15. #400 on Aug 22
  16. #402 on Aug 23
  17. #396 on Aug 24
  18. #392 on Aug 25
  19. #377 on Aug 26
  20. #369 on Aug 27
  21. #361 on Aug 28
  22. #356 on Aug 29
  23. #346 on Aug 30
  24. #355 from Aug 31 to Sep 1
  25. #350 on Sep 2
  26. #346 on Sep 3
  27. #310 on Sep 4
  28. #299 from Sep 5 to Sep 6
  29. #306 on Sep 7
  30. #303 on Sep 8
  31. #302 on Sep 9
  32. #301 on Sep 10
  33. #298 on Sep 11
  34. #301 on Sep 12
  35. #291 on Sep 13
  36. #289 on Sep 14
  37. #285 on Sep 15
  38. #280 on Sep 16
  39. #277 on Sep 17
  40. #281 on Sep 18
  41. #275 on Sep 19
  42. #276 on Sep 20
  43. #275 from Sep 21 to Sep 22
  44. #274 from Sep 23 to Sep 24
  45. #267 on Sep 25
  46. #265 from Sep 26 to Sep 27
  47. #268 on Sep 28
  48. #269 on Sep 29
  49. #264 on Sep 30
  50. #265 on Oct 1
  51. #266 on Oct 2
  52. #261 on Oct 3
  53. #258 on Oct 4
  54. #262 from Oct 5 to Oct 6
  55. #264 on Oct 7
  56. #262 on Oct 8
  57. #264 on Oct 9
  58. #261 from Oct 10 to Oct 11
  59. #264 on Oct 12
  60. #265 on Oct 13
  61. #264 on Oct 14
  62. #262 on Oct 15
  63. #257 on Oct 16
  64. #258 from Oct 17 to Oct 18
  65. #257 from Oct 19 to Oct 20
  66. #259 on Oct 21
  67. #257 from Oct 22 to Oct 23
  68. #258 on Oct 24
  69. #260 on Oct 25
  70. #246 on Oct 28
  71. #249 on Oct 29
  72. #250 on Oct 30

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 2, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 120 notes
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/character-refs/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/novel-art/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/novel-art/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/novel-art/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/novel-art/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/novel-art/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 107 signals by file

skills/character-refs/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/character-refs/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/character-refs/SKILL.md

  • Broad permissionsline 1
    Bash
  • Access to secretsline 80
    [Credential-related source omitted]
  • Access to secretsline 82
    [Credential-related source omitted]
  • Access to secretsline 94
    [Credential-related source omitted]

skills/character-refs/references/models.md

  • Access to secretsline 18
    [Credential-related source omitted]
  • Network accessline 39
    [Credential-related source omitted]
  • Access to secretsline 39
    [Credential-related source omitted]

skills/character-refs/scripts/character-refs.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/character-refs/scripts/core.mjs

  • Executable scriptline 1
    Executable file

skills/character-refs/scripts/i18n.mjs

  • Executable scriptline 1
    Executable file

skills/character-refs/scripts/looks.mjs

  • Executable scriptline 1
    Executable file

skills/character-refs/scripts/models.mjs

  • Executable scriptline 1
    Executable file
  • Access to secretsline 3
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 39
    openai: {                 // OpenAI Images API(GPT Image 2);也可指向兼容 OpenAI 格式的中转       envFile: null,          // 可选:从这个 .env 读 OPENAI_API_KEY(与 OPENAI_BASE_URL)       baseUrl: 'https://api.openai.com/v1',
  • Network accessline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 41
    baseUrl: 'https://api.openai.com/v1',
  • Network accessline 136
    [Credential-related source omitted]
  • Network accessline 137
    [Credential-related source omitted]
  • Network accessline 138
    const r = await fetch(ep.url + path, { method, headers, body: body && !(body instanceof FormData) ? JSON.stringify(body) : body, signal: AbortSignal.timeout(timeoutMs) });
  • Access to secretsline 244
    [Credential-related source omitted]
  • Access to secretsline 245
    [Credential-related source omitted]
  • Network accessline 263
    const ep = openaiEndpoint(cfg.models.openai);   const req = openaiRequest(job, cfg.models.openai);   const r = await fetch(ep.base + req.path, {
  • Network accessline 264
    const req = openaiRequest(job, cfg.models.openai);   const r = await fetch(ep.base + req.path, {     method: 'POST',
  • Network accessline 265
    const r = await fetch(ep.base + req.path, {

skills/character-refs/scripts/png.mjs

  • Executable scriptline 1
    Executable file

skills/character-refs/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 321
    ok(ed.pos.class_type === 'TextEncodeQwenImageEditPlus' && ed.pos.inputs.image2[0] === 'ref2' && !ed.pos.inputs.image3, '派生:两张参考图接进编码器');   for (const [r, [w, h]] of Object.entries(QWEN_SIZES)) ok(w % 16 === 0 && h % 16 === 0 && w * h >= 655
  • Network accessline 322
    for (const [r, [w, h]] of Object.entries(QWEN_SIZES)) ok(w % 16 === 0 && h % 16 === 0 && w * h >= 655360 && w * h <= 8294400, `${r} 尺寸也满足 gpt-image-2 的规则`);   eq(parseEnv('# x\nCOMFY_URL=http://h:1/\nCOMFY_PASS="p w"\n').COMFY_PASS, 'p w', 
  • Network accessline 323
    eq(parseEnv('# x\nCOMFY_URL=http://h:1/\nCOMFY_PASS="p w"\n').COMFY_PASS, 'p w', '读 .env:去引号、跳注释');
  • Network accessline 324
    [Credential-related source omitted]
  • Access to secretsline 324
    [Credential-related source omitted]
  • Network accessline 325
    writeFileSync(envf, 'COMFY_URL=http://example:8188/\nCOMFY_USER=u\nCOMFY_PASS=secret\n');
  • Network accessline 326
    const ep = qwenEndpoint({ ...q, envFile: envf }, {});   ok(ep.url === 'http://example:8188' && ep.auth === 'Basic ' + Buffer.from('u:secret').toString('base64'), '从 .env 取地址与账号');   assert.throws(() => qwenEndpoint(q, {}), /COMFY_URL/); pas
  • Network accessline 327
    [Credential-related source omitted]
  • Access to secretsline 327
    [Credential-related source omitted]
  • Network accessline 372
    });   const cfg = loadConfig(join(TMP, 'none.json'));   cfg.models.qwen.url = `http://127.0.0.1:${srv.address().port}`;
  • Network accessline 373
    const cfg = loadConfig(join(TMP, 'none.json'));   cfg.models.qwen.url = `http://127.0.0.1:${srv.address().port}`;   const f = join(TMP, 'ref.png');
  • Network accessline 374
    cfg.models.qwen.url = `http://127.0.0.1:${srv.address().port}`;
  • Network accessline 393
    });   const cfg = loadConfig(join(TMP, 'none.json'));   cfg.models.openai.baseUrl = `http://127.0.0.1:${srv.address().port}/v1`;
  • Network accessline 394
    [Credential-related source omitted]
  • Network accessline 395
    cfg.models.openai.baseUrl = `http://127.0.0.1:${srv.address().port}/v1`;
  • Access to secretsline 396
    [Credential-related source omitted]
  • Access to secretsline 399
    [Credential-related source omitted]

skills/novel-art/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-art/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-art/SKILL.md

skills/novel-art/scripts/novel-art.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-art/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-characters/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-characters/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-characters/SKILL.md

skills/novel-characters/scripts/novel-characters.mjs

  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 1555
    const label = btn.textContent;   try {     const blob = await (await fetch(btn.dataset.img)).blob();
  • Network accessline 1557
    const blob = await (await fetch(btn.dataset.img)).blob();

skills/novel-characters/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-outline/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-outline/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-outline/SKILL.md

skills/novel-outline/scripts/novel-outline.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-outline/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-script/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-script/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-script/SKILL.md

skills/novel-script/scripts/novel-script.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-script/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-staging/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-staging/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-staging/SKILL.md

skills/novel-staging/scripts/novel-staging.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-staging/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-storyboard/README.en.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-8b1a1a?style=for-the-badge)](README.en.md)
  • Network accessline 3
    [![Follow on X](https://img.shields.io/badge/Follow-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-storyboard/README.md

  • Network accessline 1
    [![中文](https://img.shields.io/badge/%E4%B8%AD%E6%96%87-8b1a1a?style=for-the-badge)](README.md)
  • Network accessline 2
    [![English](https://img.shields.io/badge/English-f2e3e3?style=for-the-badge&labelColor=f2e3e3&color=b07070)](README.en.md)
  • Network accessline 3
    [![关注作者 X](https://img.shields.io/badge/%E5%85%B3%E6%B3%A8%E4%BD%9C%E8%80%85-%40eternityspring-b07070?style=for-the-badge&labelColor=8b1a1a&logo=x&logoColor=f2e3e3)](https://x.com/eternityspring)

skills/novel-storyboard/SKILL.md

skills/novel-storyboard/scripts/novel-storyboard.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

skills/novel-storyboard/scripts/selftest.mjs

  • Executable scriptline 1
    #!/usr/bin/env node

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 1 fact
Signal confidence: 107 facts

and 57 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/character-refs/SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/character-refs/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/character-refs/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/character-refs/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/character-refs/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Explore alternatives and comparisons

Add this badge to your README

It updates every night and links to this page.

eternityspring/shuohao-skills: #243 on hotskills, 6.1k stars

[![eternityspring/shuohao-skills on hotskills](https://hotskills.dev/badge/eternityspring-shuohao-skills.svg)](https://hotskills.dev/skill/eternityspring-shuohao-skills/)