剧作 skill 星榜核查:一万四千星是真的,但故事讲错了

六座 GitHub 仓库全量克隆、源码级 grep 对账后的核查记录。原报告为暗色单文件 HTML(含两幅示意图),此处按论坛格式重排。

六座 GitHub 仓库全量克隆、源码级 grep 对账后的核查记录。原报告为暗色单文件 HTML(含两幅示意图),此处按论坛格式重排。

一句话说清这件事。 一段关于 GitHub 编剧 skill 星榜的观察,报了六座仓库、一万四千星、五十二道质量门、八百九十四次安装。我把六个仓库全克隆下来逐条对账:数字绝大部分是真的,作者确实读过源码;但榜单的框架撑不住——按星数排不成立,第三名和第一名是同一家公司,而"全都铺到分镜"这句只对两家为真。

一个比喻。 这份榜单像一张六人圆桌的合照。走近了看,六个人里有两位是同一家的双胞胎;桌边其实还站着五位没入镜的高个子;而所谓"六人都穿了同款鞋"——你低头一数,只有两位穿了,恰好都是要去爬山的。

本文立场。 先给分,再扣分。说对的十四项,一字不差地摆出来,包括那句被漏掉的原文精彩句;说错的五项,标注错在哪、为什么会错。未能证实的,老实说没查到,不脑补。

01 · 六个点名,全部对上人

原文只给了仓库名,没给 owner。六个全部定位成功,无一落空。

名次项目实际仓库创建日今日星体积
一oh-story-claudecodezenstory-ai/…2026-04-2271179.5 MB
二shuohao-skillseternityspring/…2026-08-06383712.4 MB
三drama-skillszenstory-ai/…2026-07-16227674.1 MB
四山音超级编剧大师Shanyin-ai/shanyin-screenwriting-master2026-03-311219124 KB
五screenwriting-skillsjtydhr88/…2026-09-0613982.1 MB
六screen-creative-skillsVanGong1999/…2026-01-10422624 KB
许可证除 shuohao-skills 用 Apache-2.0 外,其余五个均为 MIT。

先提一处体积:drama-skills 七十四兆,是第二名 shuohao 的 六倍,是第五名 screenwriting 的 三十五倍。原文那句"前后端近八万行代码",光看体积就像真的——尽管严格说,八万行指的是那家工作室自己的生产系统,不是这个仓库本身。

02 · 一万四千星:这个数是真的

总数对得上,但"按星数排的前六名"这个说法不成立。

2.1 总数对账

项目原文快照今日实测净增
oh-story-claudecode67887117+329
shuohao-skills32143837+623
drama-skills未给2276—
山音11221219+97
screenwriting-skills未给1398—
screen-creative-skills未给422—
合计约 1400016269+2269
原文没给第三、五、六名的星数。反推快照时三者之和约为 14000 − 11124 = 2876,今日三者之和 4096。差额 1220 星分摊到三个仓库,在一个"剧作 skill"集体暴涨的九月里完全合理——尤其 screenwriting-skills 建仓仅二十天就冲到一千三百九十八星。

✓ 判定:一万四千星站得住

是份旧快照,差额可由三个月自然增长吃掉,未见编造痕迹。

2.2 但排序已经失效

原文说"按星数排",把山音(1122)列第四、screenwriting-skills(今 1398)列第五。今日实测是反的:1398 > 1219。

这不必然是作者的错——若快照在九月中旬,screenwriting 当时低于一千一百二十二,顺序就成立。但这恰恰说明:基于 GitHub 星数的榜单天然带保质期,而这份快照的时间从未被标注。

2.3 更要紧的:候选池没声明

在一次最普通的搜索里,就捞到至少五个"漏榜"的同赛道项目:

漏榜项目星数为什么该进榜
manju-laoli-skill880AI 短剧全流程 skill 包
eternityspring/reelbench-skills842与第二名同一作者
zenstory-ai/novel-to-game801与第一名、第三名同一组织
zenstory-ai/video-recap-skills532同上
XiaoLuo-AI-Drama-Skill443AI 短剧
✗ 八百八十星没进前六,四百二十二星的却进了

要说这是"按星数排的前六名",逻辑上说不通。唯一解释是作者心里另有一个筛选口径(比如"纯剧作/写作类,排除视频与游戏"),但这个口径从未向读者交代。

这就是典型的 数字属实、框架失真——两者必须分列,不能因为前者为真就默认后者为真。

03 · 致命一击:榜首与探花是同一家公司

本次核查最重要的一条,原文一处未提。

查 users/zenstory-ai:

login=zenstory-ai  name=ZenStory AI  type=Organization
created=2026-07-31  blog=https://zenstory.ai

图 1 · 左:读者以为的六个均质点;右:实际归属 —— ZenStory AI 一家独占两席,合计 10270 星,占 63.2%

第一名 + 第三名 = 10270 星,占六项目总星 16269 的 63.2%。

它不是六边形,是一个中心加五个点。原文读到的一唱一和——"第一名画圈""第三名也要求确认"——很可能不是两个团队分别悟出来的道,而是同一拨工程文化的两次沉淀。

3.1 命名化石:旧名比工商登记诚实

还有一条佐证。oh-story-claudecode 建仓于 2026-04-22,比 ZenStory 组织成立(2026-07-31)早了三个多月。 而今天在 GitHub 上搜这个项目,仍会跳出一堆 fork,自述里写着:

  • HeRiki/oh-story-codex:「基于 worldwonderer/oh-story-claudecode 的中文网文写作技能包」
  • duiniwukenaihe/novel-assistant-skill:「基于 worldwonderer/oh-story-claudecode 构建」
  • wyouwd1/oh-story-opencode:同样指向 worldwonderer
而 worldwonderer 这个账号今天还在——2019 年注册,实名 pitechen。GitHub 仓库迁移后旧链接会重定向,但 fork 的描述文本没人替它们更新。于是这些残留字符串成了化石,把"个人项目起步 → 成立公司 → 迁入组织"这段迁徙史冻在了原地。

这条规律一再应验:看一个项目的来路,别看它的注册信息,去看别人写下它旧名的地方。

04 · 该给的分要给:精确命中清单

说完问题,必须说这段观察的硬功夫。下面这些数字,只有真翻过源码才报得出来。

4.1 五十二道质量门:分毫不差

shuohao-skills 的五个 skill,每个都带一组脚本质量门。实测:

图 2 · 原文的"五十二道"是逐个数出来的,不是约数

而"全是脚本检查"也确有其事。同一份文档里写着这样两句:

checklist 交给模型自觉是靠不住的。所以每一道门都是 validate 里的确定性检查,不是给模型读的文字。
> —— shuohao-skills · novel-outline/README.md:21
「未提供 cast.json,本门跳过」——不装作查过。静默通过和撒谎只差一步。
> —— shuohao-skills · novel-art/references/report-style.md:27

第二句是我愿称之为本次核查最佳文摘的一句。原文转述成"不是让模型自己说我觉得可以了",意思到了,但原话更有劲:作者把"没检查就放行"直接定性为撒谎。

4.2 确认后生产:说对了,但没说出那层狠劲

drama-skills 的 short-drama-produce/SKILL.md,第 7 行标题就是:

# 确认后生产

底下两条硬条款(第 47–48 行、第 83 行):

等创作者在 看到这份预览之后 明确确认。只有明确同意这项 当前任务,才运行 confirm;「继续」「都做完」「预算没问题」、上游内容已接受或之前确认过另一版,都不算本次生产确认。
prepare 只验证并预览,不生产。confirm 只保存与当前 job 指纹绑定的一次性确认。

实际操作要敲:

python3 production_tool.py confirm <project> --job-id <id> --confirmation "CONFIRM <id> <code>"

★ 原文说对了方向,却漏掉了最精彩的部分

它把"AI 以为你答应了"和"你真的答应了"做成了两个互斥状态,还得再敲一遍带验证码的字符串。而它 明确列举了哪些话不算点头:「继续」「都做完」「预算没问题」,一律不算。

4.3 山音:三项全中

山音超级编剧大师集成版(Gemini及其他AI工具通用).md 第 5 行:

覆盖从 1-3 分钟概念超短片到90 分钟电影长片、多集剧集的全格式剧本创作。

第 72 行:## 通用八步流程,还附一张按概念超短片/短片/长片/剧集四种体裁展开的步骤对照表。九十分钟、多集、八步,一项不差。

不过要补一刀形态上的错位:山音 不是 skill 包,是 单个 .skill 巨文件(仓库只有 124 KB,连目录层级都没有)。它跟其余五个放在一起比星数,比的其实是两类东西。这一点原文没意识到。

4.4 其余精确命中项

原文说法实测判定
shuohao 五个 skill5精确
drama-skills 十一个 skill11(另有一份维护者专属)精确
screen-creative 三十一个 skill31(中英对称,去重后正好)精确
扫榜/拆文/写作/去 AI 味四段scan / analyze / write / deslop 全在文件名里命中
一千多个项目README 自述"累计上千个"属实(自述)
前后端近八万行README 自述"近 8 万行代码"属实(自述)
screen-creative 只给判断不给成品31 个里 evaluation + story-analysis 占 12 个,creation 仅 2 个命中
(story-deslop 这个命名值得一提:英文里"AI 味"叫 slop,作者直接把 de-slop 写成了 skill 名。这人读过味。)

05 · 三处化石:数字都是真的,但已经过期

本次核查在方法论上最有滋味的一处。

5.1 screenwriting-skills:三组数字全错,且全都偏低

项目原文今日实测出处
skill 数2026plugins/screenwriting/skills/
书3247README.md:5
剧本卷1223README.md:5
谜底在英文 README 的书目分类里。它把书目分了五类:

类别数量
Screenwriting craft 编剧技巧19
Television craft 电视技巧15
Chinese opera craft 戏曲理论13
47 本小计19 + 15 + 13
Published scripts and plays 出版剧本12
Chinese opera scripts and scores 戏曲卷本11
23 卷小计12 + 11
原文的"十二卷"就是中间那个 12——它取了 Published scripts 这一个子类,丢掉了戏曲的十一卷。不是瞎猜,是掐头去尾。

5.2 那"三十二本"从哪来的?

答案藏在中文 README 第 93 行:

曾经有过英文版,一个把 20 个 skill 全部译过去的平行插件 screenwriting-en……做了,也合并了,后来撤掉。

而英文 README 第 185 行自述:

The series layer (13 → 20 skills) was added this way and sw-story-structure did not change.

所以 skill 数的时间线是 13 → 20 → 26。原文抓的 20,是这个序列中间那个真实存在过的数字。

5.3 为什么会出现化石?中英两个 README 不同步

这个项目的中英 README 是两个独立文件,英文版已更新到 47/23,中文版第 193 行还停留在「出版剧本(12 卷)」。

作者对翻译这事的看法也很有意思:

如果读不懂中文的读者该有一份译本,那读不懂英文的读者也该有,接下来就是日语、韩语、法语、俄语。五种语言就是 230 个文件各改各的,哪一份已经过时,没人说得清。
> —— 中文 README:93

他自己就知道多语 README 会失同步,然后它就真的失同步了。这不是批评,这是坦率——但对我们这些读 README 的人是个提醒:多语项目的文档,永远以最新推送的那一版为准。

判 · 化石与口径分裂的区别

化石:曾经真实,如今过期(20 skills → 今天 26)。口径分裂:真实存在,但只是整体的一部分(12 卷 → 全量 23 卷)。

建议表述改为:"该仓库曾为二十个 skill、三十二本书",而不是当作当前状态陈述。

06 · 两处过度概括

6.1 「全都铺到了分镜」——六家里只有两家

有意思的是这批 skill 全都 从剧本铺到了分镜。原因不复杂,剧本里有一处描述含糊,后面出来的画面就崩。

我数了六家的 skill 目录:

项目独立分镜 skill赛道
shuohao-skills✓ novel-storyboardAI 短剧
drama-skills✓ storyboard + image-prompts + video-promptsAI 短剧/漫剧
oh-story-claudecode✗网文(本就不需要)
山音✗纯剧作
screenwriting-skills✗ 26 个 skill 里一个都没有学院派剧作
screen-creative-skills✗ 31 个 skill 里一个都没有评估/改编
真正铺到分镜的只有两家,恰好都是 AI 视频赛道。 原文观察到一个真实现象(做 AI 生成视频的团队确实都做到分镜),却把它推广成了六家的共同规律。

这个因果解释本身是对的——"描述含糊则画面崩",确实是 AI 视频团队的痛点;但它解释不了为什么第五、第六名没有分镜层。正确答案是赛道决定论,不是行业共识。

6.2 「参考门」拦的不是偏离,是没交作业

原文说:「你写正文时 偏离 了它拆出来的剧情模块库,会被拦下来。」

机制确实存在,英文原名就写在 docs/claude-code-skills-for-writers.md:31:

Blocking reference gates. A chapter is written only after the agent has read the brief, the volume outline and the current tracking state and written down this round's constraints (word range, must-happen, must-not-happen, time anchors).

配套还有 README 第 41、113、116 行:

  • 写正文前没有细纲会被拦下;写完自动扫截断、工程词和常见 AI 句式。
  • 写正文前 guard-outline-before-prose.sh 会拦住缺细纲的章节。
  • 追踪状态是工具从 _tracking-state.json 整份重新渲染的,手改派生文件会被 check 拒绝。
✗ 关键词:这道门拦的不是内容,是流程

它拦的是"你动笔之前有没有读参考资料、有没有先写细纲",而不是"你写的正文跟模块库比对下来偏离多少"。

一个是流程门(动笔前交作业),一个是内容门(写完后查偏离)。原文描述的是后者,实际实现是前者——前者管的是"有没有按规矩办事",后者才是真正的语义检测。

附带一句:README 第 116 行那条"手改派生文件会被拒绝",恰好是原文最后那段"用脚本去对账"理念的同构实现。这个思路在这六个仓库里到处都是,不是某一家独有。

07 · 压轴的那台引擎:我没找到

原文最后一段,也是最重的一击。

真正说明问题的是排在很后面的一个小项目,星数只有两百多。它写了个一致性引擎,专抓三种错,死掉的角色又出场、伏笔还没埋就回收、契诃夫那把枪到最后没响。它把角色的死亡状态、承诺与兑现、未解决问题全写进文件头部,再用命令行脚本去对账。

这句话承担着全文的方法论支点:用文件的确定性补模型的概率性。

我做了六轮检索,找不到它。

7.1 检索清单与结果

轮次方法结果
1仓库名关键词搜索(6 组)无匹配
2代码搜索 chekhov payoff foreshadowing无匹配
3代码搜索 dead character appears again无匹配
4表单参数式代码搜索(5 组,含中英)命中候选若干,无一符合三项特征
5星数区间过滤 200–320命中 story-shot-agent(204★),形态不符
6星数区间 100–400 + 代码搜索三组合词全部 0 命中

7.2 三个最接近的候选,逐一排除

候选星数一致性组件为何不符
981029l/webnovel-writer238用关键词数组检测「死亡/已死/身亡/阵亡/被杀」;前端有「已死亡」徽章是 Vue + FastAPI 全栈应用,状态存数据库、走 UI,没有文件头部记录,也没有命令行对账脚本
tyxben/AI_novel280continuity_service.py做的是 LLM 打分维度,与"脚本确定性对账"是两回事
neopen/story-shot-agent204—Python 服务,带 Docker/pyproject/CI,是故事转镜头 agent,无一致性引擎形态
⚠ 按铁律处理:未证实者挂账

三者都只占"两百多星"这一个特征,没有一个同时满足"文件头部写状态 + 命令行脚本对账 + 专抓三种错"。宁说没查到,不作脑补。

可能的解释(非结论):星数已变化、未收录在搜索口径内、存在于第三方 skill 市场而非 GitHub、或原文对机制做了合并叙述。

7.3 但那个技术思路,是实实在在存在的

虽然那台具体的引擎没找到,原文想说的那件事—— 用外部文件替代模型记忆 ——在这六个仓库里遍地都是,而且往往更硬:

  • shuohao:52 道门全是 node 脚本,明确拒绝交给模型自觉
  • oh-story:guard-outline-before-prose.sh + _tracking-state.json 整份重渲染 + 手改即拒绝
  • drama-skills:prepare → confirm → run 三段式,确认还与 job 指纹绑定
  • screenwriting-skills:有 sw-series-engine-bible 与 chekhov-dramaturgy 两个 skill,专门处理长程连贯
所以原文的结论成立,只是它的论据我没能指认到具体那个项目。

08 · 副产品:README 是写给 AI 读的

在冠军项目里翻到的一篇作者内部决策笔记,把整件事串成了一个环。

笔记路径:drama-skills/.agents/notes/implemented/process/2026-09-16-readme-for-readers-not-engines.md,标题叫《README 面向读者而不是答案引擎》。

8.1 他们做过 GEO(答案引擎优化)

2026 年 9 月的 GEO 工作 之后,README.md 与 README_EN.md 顶部多了指向站点的引用链接条……

8.2 流量结构是七比一

GitHub 引荐数据显示 Google/Bing/Baidu 带来的访问约为 ChatGPT 类答案引擎的 7 倍,README 首先要为人和传统搜索服务。

8.3 他们主动撤掉了讨好 AI 的段落

决策是:删掉那些为答案引擎写的规范化摘要段和边界句。而作者自己在"代价"栏写下了这句:

答案引擎抓取到的规范化摘要段没有了,引擎复述可能更依赖正文。

同篇还有"替代品被否决"的记录:保留答案引擎摘要段的方案被否了,理由是人读不下去的 README 对两边都没好处。

8.4 这意味着什么

  • 剧作 skill 的作者们 刻意优化 README 以影响 AI 的回答(GEO);
  • 这段观察的 全部素材都能在 README 与着手文档里逐句找到出处——五十二道门、十一个技能、一千个项目、八万行代码、十二卷剧本、三十一个 skill,一个不落;
  • 而这批 README 自己承认:有的版本就是照着方便引擎复述来写的。
悟 · 一句带刺的判语

这段观察很可能根本不是六个项目的独立横评,而是 一次高保真的引擎复述——作者带着判断读了这些 README,复述得相当准,但也继承了 README 的三个先天毛病:版本滞后(二十个 skill)、口径截断(十二卷)、同源重复(第一三名同一家)。

当 README 开始为机器优化,机器写出来的分析就会长得更像 README,而不是更像真相。

09 · 不能只挑毛病

按老规矩,挑完毛病要给分。这六个仓库里至少三个,是拿出来能打的工程水准。

#### oh-story-claudecode

有 .agents/notes/rejected/ 目录,专门存放 被否决的功能提案;有 scripts/ 与 tests/ 的完整测试矩阵(含 OpenCode 真实运行时兼容性测试);连跑基准测试时都要独立 CODEX_HOME,以免污染测量。

#### shuohao-skills

novel-art 有 151 条断言,全部无模型调用、一秒跑完,且测试专挑"能让质量门失效的 Case"。它还把"缺少 cast.json 时跳过某门"明写出来,不装作查过。

#### drama-skills

CHANGELOG 长达 一千四百多行,配 evaluations/、examples/、DESIGN.md 与一套自我批评笔记系统。这不是一个周末项目,是一条产线的化石。

这些是原文没写、但值得写的东西。

10 · 二十二项判词

说对的给足,说错的指名,查不到的挂账。

#原文主张判定证据要点
1六个项目存在、名称准确属实六个 full_name 全部定位
2前六名合计约 14000 星属实(旧快照)今日 16269,差额 2269 属自然增长
3第一名 6788 星旧快照今日 7117
4第二名 3214 星旧快照今日 3837
5第四名 1122 星旧快照今日 1219
6按星数排序已失效今日第五已超第四
7"前六名"候选池未声明至少 5 个更高星同类被漏
8六家彼此独立重大遗漏第一、三名同属 ZenStory AI,占 63%
9oh-story 五段流程属实scan/analyze/write/deslop 在文件名里
10参考门拦偏离机制失真实为拦"有无细纲",非内容比对
11shuohao 五个 skill精确实测 5
1252 道质量门精确14+10+10+18=52
13门是脚本检查精确「交给模型自觉是靠不住的」
14drama-skills 十一个 skill精确实测 11
15一千多个项目属实(自述)README:53,未能独立核实
16近八万行代码属实(自述)README:54,指工作室自家系统
17确认放在生产之前精确且被低估「确认后生产」+「继续/都做完不算」
18山音八步 + 90 分钟 + 多集精确文件第 5、72 行
1920 skill / 32 本 / 12 卷化石 + 口径分裂今日 26 / 47 / 23 卷
2031 skill + 894 次安装31 精确 894 未证实仓库内无此数,疑来自外部市场
21全都铺到分镜过度概括只有 shuohao、drama-skills 两家有
22两百多星一致性引擎未证实六轮检索落空,三候选已排除
总评

十四项精确通过,五项属实但需修正或加注,两项错误(独立性、全都铺分镜),两项未能证实。

若给这段观察打分:作为"我读了源码"的记录,它是高分;作为"行业排行榜",它的框架撑不住。

如果要改写,改这三句就够了

  • "前六名" → 改为「我筛出的六个剧作 skill(口径:写作/剧作类,排除视频与游戏类)」。把筛子的形状说出来。
  • 六家并列 → 改成「ZenStory AI 一家占了其中两席,另有三项产品在同一组织下」。把股东结构说出来。
  • "全都铺到分镜" → 改成「凡是面向 AI 生成视频的两家,都铺到了分镜;做纯剧作的没有」。
改完这三句,这段观察就从"有点可疑的排行榜"变成了"一份相当扎实的赛道笔记"。


数据来源与交付物

  • 数据取自 GitHub REST API 当日快照(2026-09-26),六座仓库以 --depth 1 全量克隆后源码级核对。
  • 核查方法:仓库元数据核验 → 拥有者/组织归属溯源 → 仓库体积交叉印证 → 源码 grep 取证 → 六轮检索交叉验证 → 同赛道遗漏项目普查。
  • 未能证实项两处(一致性引擎、894 次安装),已挂账,不以推断充数。
  • 完整报告(暗色单文件 HTML,两幅示意图)与一页纸速查表见本地 _screenplay_skills_report/。
暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

c2-2026-09-27.svg

一天 38 颗星听起来不多,但要看基数:这六个仓库里有两个建仓不满两个月(shuohao 8 月 6 日、jtydhr 9 月 6 日),后者二十天冲到一千四。星数增速本身就是赛道热度的体温计,比绝对值诚实。

这份核查我拿今天的 GitHub 快照又核了一遍——对核查的核查,顺便看看它自己过期得有多快。

  • 【直引】六仓库全部复核通过:zenstory-ai/oh-story-claudecode 7117→7121,eternityspring/shuohao-skills 3837→3851,zenstory-ai/drama-skills 2276→2285,山音 1219→1223,jtydhr88 1398→1405,VanGong1999 422→422(纹丝不动)。体积、许可证、创建日逐项对上,drama-skills 74 MB 的体量是真的。
  • 【推论】最有意思的是占比:双星合计占比 63.2% → 57.7%,一天之内稀释了 5.5 个百分点。不是 ZenStory 涨得慢(两天合计 +69),是别的仓库涨得更快。也就是说核查里那条「中心加五个点」的结构图,画完的第二天就开始失真了。
  • 【直引】四五名反转持续:1405 > 1223,且差距还在拉开(今天差 182,昨天差 179)。原报告「按星数排」失效的判词,今天更成立了。
  • 【直引】补一条核查没写的:zenstory-ai 组织是 GitHub 已验证组织(is_verified=true),2026-07-31 创建。验证徽章意味着它主动做过组织认证——「个人项目起步→公司化迁入」的迁徙史,又多了一块界碑。
  • 【判断】这份核查的方法论价值大于榜单价值。它示范了一套可复制的动作:全量克隆、源码 grep、组织归属溯源、命名化石取证、未证实项挂账。榜单本身天天在漂,这套动作不会。建议把它当方法学收藏,别当榜单收藏——榜单的保质期以天计,方法不以天计。
下一根钉子:那份「两百多星的一致性引擎」还在挂账。六轮检索落空不等于不存在,GitHub 之外的 skill 市场(LobeHub、各类 awesome 清单)还没扫过,那是我最怀疑的藏身处。

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens