用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/chillzhuang/Kinema --skill kn-book命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
设计 seed-audio-1.0 的声线描述和整章音频剧本。用户要定制音色、配乐、音效、逐句演绎,或把人声、音乐和音效一次生成并混好时使用。
把一段实拍视频的人物运动复刻到本项目的角色身上。用户提到照着这段视频动、复刻动作、翻跳同一支舞、让我的角色跳这个、把实拍运动迁移到 AI 片段,或手上有参考视频想让角色照做时使用;引擎在本机把源片处理成人物深度与骨骼的控制视频,绑到分镜后作参考视频发出——运动来自源片,外观来自分镜图。
配置或诊断 Kinema 运行环境。第一次使用、换机、重装、ffmpeg/Python/依赖缺失、密钥、MySQL、OSS、BGM 或 doctor 报错时使用;只配置与验收,不执行内容生产。
基于 SOC 职业分类
正在显示 SKILL.md
| name | kn-book |
| description | 制作说书、荐书、拆书、书评或读书笔记短片。用户要求讲解一本书、做书单号或使用微信读书取料时使用;优先通过微信读书官方 Agent Gateway 获取书籍信息与热门划线,再组织痛点、精华和行动结构。 |
| metadata | {"kinema-managed-by":"agent/manifest.json","kinema-kind":"route","kinema-status":"stable","kinema-version":"2.0.0","kinema-owner":"Kinema","kinema-source":"workspace","kinema-trust":"first-party","kinema-digest":"sha256:62f219fbe054e79a920a5457e4ebbdc923e07bca743ba5c27b36c74e0de2e759"} |
把一本书的精华做成片。 说书是被市场反复验证的重赛道(董宇辉一句推荐让 《额尔古纳河右岸》加印 600 万册;书单号挂车佣金 30~50%),它的生死线是 书里的具体内容:观众要听到"书里怎么说",而不是"这本书真的很好"。 本 skill 的独门供应链是微信读书官方接口——热门划线就是几万读者投票出的 金句榜,选材不用猜。
/kn-book <书名或主题> 即可)被调用后按此联动执行,不需要用户再调用任何其他 skill:
../kinema/SKILL.md(完整节点工作流与铁律)。project new --title "X" --id <英文词> --profile book(skill 自动派生 kn-book)
→ project set <id> --skip-design(说书无固定角色;要打造常驻虚拟说书人 IP
时才建 character 走常规设定图)。--aspect 16:9。旁白写声线描述定制:voice custom <id> --narrator --prompt "<声线描述>" --adopt 1
(说书腔描述用词:磁性、中低音、语速中等);要剪映同款官方「磁性解说」再
voice audition <id> --narrator → voice use。run 收尾会自动出系列主视觉与本章封面,画面命题按章节 cover_prompt > theme
回落(--desc 只有 cover 命令有)——所以 run 前把 cover_prompt 写进 ChapterPlan
(按下文《图书封面专项协议》写主体、关系、环境、光线与标题安全区);副标题缺省「第 N 集」,
要作者或本集裸标题就在 run 前先跑 cover <id> --chapter <cid> --subtitle "…",run 收尾
见封面已在盘即跳过;已出过的加 --force 只重生该章,系列主视觉不动。chapter.title 只写本集的内容标题,不写章节序号。序号由章节 id/order 和封面排版层管理,绝不把编号混进标题。
第二章:嘉靖为什么不上朝、第2章 嘉靖为什么不上朝、第2集:嘉靖为什么不上朝、卷二·嘉靖为什么不上朝,
以及任何同义的中英文编号前缀或后缀。嘉靖为什么不上朝、沉默才是嘉靖的权力。第N章/集/回、第二章/集/回、卷N、Episode N 等编号,
去掉编号及其分隔符后再写入。去掉后为空时,重新创作一个剧情钩子式标题,不能退回 第一章、第二章 这类占位名。chapter.title,并在交付前再次检查标题与 project.json 登记表一致;
发现编号前缀立即修正,不得带着错误标题继续生图、合成或交付。旁白试听、选音色、候选画面定稿或章节审阅如果要让用户在网页完成,先执行 base skill 的
Studio 交互交接协议,自动启动/复用控制台并给出
项目 → 章节入口,再停下等待用户;不要只说“请启动 Studio”。
① 微信读书官方 Agent Gateway(有 WEREAD_API_KEY 时首选,合规正道):
每次立项先探测 key(三处都查,探测与使用全程绝不回显 key 值)。少查一处就会
把「用户已经配好了」误判成没配——secrets.local.json 正是 setup 向导、网页
配置中心和 config secret 三个入口的落点,且优先级高于 secrets.yaml:
test -n "$WEREAD_API_KEY" && echo env-ok || echo env-missing # ① 环境变量
python3 -c 'import json,sys,pathlib
p=pathlib.Path("config/secrets.local.json")
d=json.loads(p.read_text()) if p.is_file() else {}
b=d.get("secrets") or d
sys.exit(0 if str(b.get("WEREAD_API_KEY","")).startswith("wrk-") else 1)' \
&& echo local-ok || echo local-missing # ② 本机密钥文件
grep -qE '^WEREAD_API_KEY:\s*"?wrk-' config/secrets.yaml 2>/dev/null \
&& echo secrets-ok || echo secrets-missing # ③ 仓库密钥文件
三处都缺不阻塞、也不静默:直接走 ② 公开页取料把活干下去,同一轮回复里附一次 配置提示。不要停下来等用户表态,也不要每轮复读提示——同一会话提示一次即可, 用户说过不配就不再提。提示要如实交代差异:公开页照样有推荐值、评价人数、出版社 与目录(事实四锚点能闭环),没 key 真正丢的是完整热门划线榜、划线处读者想法、 中差评分档、资深会员推荐率和书架/笔记/阅读统计——即拆书最吃劲的选材与判据。 提示内容就是下面三步:
wrk- 前缀,免费,绑定微信读书账号);cd engine && python3 -m kinema config secret WEREAD_API_KEY wrk-... —— 落
secrets.local.json,优先级最高,文件由引擎自动创建;config/secrets.yaml 的 WEREAD_API_KEY: 那行(该文件由
setup 从模板自动生成,已在 .gitignore);set -Ux WEREAD_API_KEY wrk-...。官方 weread-skills 包不自动安装(本协议 curl 直连已闭环,装与不装取料能力
等价):首次配好 key 后问用户一句要不要顺带装官方封装(价值在做视频之外的
日常用途:书架管理/笔记导出/阅读统计),用户点头才装、且装到全局
~/.claude/skills/——第三方产物绝不放进本仓库的 .claude/skills/(会进 git):
curl -L https://cdn.weread.qq.com/skills/weread-skills.zip -o /tmp/weread-skills.zip \
&& unzip -o /tmp/weread-skills.zip -d ~/.claude/skills/
取用写法(按引擎同一优先级 env > local.json > yaml 取,借 shell 变量中转,日志零泄漏):
WRK=$(python3 -c 'import json,os,pathlib,re
v = os.environ.get("WEREAD_API_KEY", "")
p = pathlib.Path("config/secrets.local.json")
if not v and p.is_file():
d = json.loads(p.read_text()); v = (d.get("secrets") or d).get("WEREAD_API_KEY", "")
p = pathlib.Path("config/secrets.yaml")
if not v and p.is_file():
m = re.search(r"^WEREAD_API_KEY:\s*\"?(wrk-[^\"\s]+)", p.read_text(), re.M)
v = m.group(1) if m else ""
print(v)')
探测通过后,指挥层直接 Bash curl 调用(单端点 POST,接口靠 api_name 分派):
curl -sX POST "https://i.weread.qq.com/api/agent/gateway" \
-H "Authorization: Bearer $WRK" -H "Content-Type: application/json" \
-d '{"api_name": "/store/search", "keyword": "纳瓦尔宝典 纳瓦尔·拉维坎特", "scope": 10, "count": 3}'
取料六步链路(照打即可,不要自己摸索接口):
1. /store/search keyword="书名 作者" scope=10 → 核对回包 title 再取 bookId
2. /book/info bookId → 事实四锚点一次拿全 + intro 定主题
3. /book/chapterinfo bookId → 目录定骨架
4. /book/bestbookmarks bookId(chapterUid 不传)→ top20 热门划线金句
5. /review/list bookId reviewListType=1/4/2 → 正面·中立·差评三档口碑
6. /book/readreviews 用第 4 步的 (chapterUid, range) → 金句处读者真实反应
chapters[] 给出金句所属章节,可口播出处。/book/info 一次给全 title/author/publisher/publishTime/
isbn/newRating(千分制,836=83.6%)/newRatingCount,不必再去公开检索交叉验证。references/weread-gateway.md):
newRatingCount < 300 时推荐值不可采信;/review/list/mine 参数名是小写 bookid;
/store/search 有累积配额(约 20 次触 -2014),搜索间 sleep ≥1s、一本书只搜一次。weread.qq.com/web/category/*
(WebFetch 可直接解析),Gateway 负责给榜单书补推荐值与划线。/user/notebooks 返回 totalBookCount: 0 是正常回包不是报错,
先探测再承诺,别把用户不存在的阅读史写进文案。接口分级(17 个逐个实调)、十条试错陷阱、错误码字典与数据化三过滤判据,全部在
references/weread-gateway.md。/_list 自述与实际有多处
不符(/book/similar 恒废、scope 八选二、嵌套层级),以该 reference 为准,不要照抄自述。
② 无 key 降级(探测缺 key 即自动走这条,不等用户确认)——四步照打:
1. WebSearch "<书名> <作者> 微信读书" → 同时捞出两个直达 URL(见下方陷阱)
2. WebFetch weread.qq.com/web/bookDetail/<v> → 书名/作者/出版社/出版年/
推荐值%/评价人数/简介/目录
3. WebFetch book.douban.com/subject/<id> → ISBN/页数/豆瓣评分/星级分布/短评正文
4. 榜单 weread.qq.com/web/category/{rising,newbook,all,general_novel_rising}
bookDetail URL 里的 <v> 是不透明 token,bookId 拼不出来
(/web/bookDetail/<bookId> 恒 404),只能靠 WebSearch 捞现成链接。subject/<id> 后直达。③ 用户直给:点名书目、贴自己的读书笔记、自供实拍书影。
无论哪级,事实四锚点必须核查后写进 script:书名+作者+出版社/年份+
评分或印量(说书失败多在张冠李戴)。引擎不联网是铁律,取料只在指挥层。
reviewListType=4/2
的中差评里找(正面书评只复述,争议点在中差评)。判据全表见
references/weread-gateway.md。读料顺序:简介定主题 → 目录定骨架 → 热门划线定金句。然后压进固定结构:
引用纪律(版权红线):narration 以你自己的转述为主;直接引用原文单条 ≤50 字、全片 ≤3 条,口播带出处("书里写道……")。大段搬运原文=侵权; 金句超长时压缩转述,观点保留、句子重写。
profile 前缀已带暖纸书卷基因,逐镜 image_prompt 只写差异:
一枚金色沙漏立于书页翻开的山谷之间,沙粒是细小的金币)。忌真实人物肖像,
作者用象征物(书桌/钢笔/剪影)。narration 由字幕逐字承载(音字一致铁律),
不把金句烤进图——长句进图必出错字。supply
直供(带货片需要真书露出——自拍或用出版社授权物料,登记为分镜画面与 AI
意象镜混排,正是市面书单号的标准形态)。814 镜,4590s:钩子 ≤3s → 书卡 1 镜 → 每个精华点 2~3 镜(故事镜+金句镜)→
行动清单 1 镜 → CTA 1 镜。narration ≤30 字/镜(口播密度);emotion 给钩子、
金句、收尾镜标注。运镜安全档:缓慢推近(金句凝视)、拉远揭示(书卡全貌)、
凝视呼吸(静物停留)——书卷气质忌快运动,进阶运镜(▲/■ 档)不用。
转场不主动加(缺省无转场,精华点之间直接硬切);用户点名要分段字卡时才插,
本档合用 fade_black("第二把钥匙")或 wipe --color 配暖纸色。
voice custom --narrator --prompt … --adopt 1
定制立档,一个账号锁一把声音即品牌声纹;要官方模版音色再 voice audition → voice use。delivery.pause_before: 0.6(kenburns 下生效,
折进 dur)——说书的呼吸感全在金句前那半秒。chapter.title,也不能
代替书名。封面上的书名、作者、章节标题必须与脚本事实一致,禁止泛化成“图书解说”。--typeset-title,字体从 song/kai/hei/yuan 选择),不让模型直接生成书名。背景必须留
出真实的低密度地板,标题与背景保持足够对比,禁止白字黑描边的默认贴图感。project.cover 与 chapters/<cid>.json.cover:
章节应有独立 *_bg 和成品文件,路径不能指向 series_*;若项目同时承载多本书,而引擎
只能从项目级标题排版,不能静默沿用品牌名,应先按单书建项目或补齐章节级封面标题能力,
不得把泛品牌封面当作章节封面交付。desc 中写出本章独有的视觉命题,至少包含主体、
关系、空间、光线和标题安全区。生成后同时 Read 原图与缩略图,检查错字、信息层级、主体
是否单一、标题是否清晰;任一失败就重做封面,不带问题进入合成或交付。《大明王朝1566》 的章节封面应围绕“皇帝不露面却控制所有人”构图:
空置龙椅作为核心、封口奏疏和层层宫门形成权力链、朱红印记作为唯一撞色,画面留出标题区;
不应使用无来源的男主近景、泛古城和“图书解说”大字。cover 命令三锚点(同版式+系列背景参考图+同前缀同 seed)锁系列感;
系列品牌名与期数由排版层后置,不靠模型写字,但不得因此替代章节实际书名。生图=镜数 ×¥0.3 + TTS 按字;视频 API 零调用。60s/10 镜典型 ≈ ¥3~5; 接官方 Gateway 取料零成本(个人 key 免费额度内)。
| 症状 | --note 建议写法 |
|---|---|
| 出成了真实书封复刻 | 改为无字精装书意象书卡:合上的布面精装书+主题象征物环绕,书脊无文字 |
| 插画太具象/像课件 | 改为单一隐喻场景:一个视觉主体承载观点,留白40%,暖纸色调 |
| 出现真人面孔 | 人物改为背影或剪影,或用书桌钢笔等象征物替代 |
| 画面冷硬无书卷气 | 加入暖光台灯与纸张织物质感,色温压暖,对比度放柔 |
| 静物太摆拍 | 加入使用痕迹:翻开的书页、压痕便签、喝了一半的咖啡 |
讲概念不讲书 → kn-explainer;纯金句卡 → kn-quote;TopN 强榜单感书单 →
kn-ranking(序号徽章字幕)。