cy-carousel — скилл
cy-carousel собирает карусель из обложки и 10 страниц про ИИ-тему: проверка фактов, открытые материалы, проверка макета.
- 442 ★ репозитория
- Последний коммит
Расширенный доступ
Почему такой уровень
- Скилл запускает локальные Python-скрипты рендера и проверки и скачивает материалы из открытых источников.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/cy-carouselОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Скилл запускает локальные Python-скрипты рендера и проверки и скачивает материалы из открытых источников.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Скилл ведет задачу от темы до готового пакета для публикации: обложка и 10 страниц размером 1440 на 1920, заголовки, основной текст, закрепленный комментарий и список источников. Типичный сюжет: ИИ-концепция, научная статья или продукт, поданные в цепочке «контрастный крючок, понятный пример, определение одной фразой, три пронумерованных вывода». Каждое число и цитата привязываются к первоисточнику в таблице фактов. Скилл берет только материалы с открытой лицензией и записывает ссылку, лицензию и SHA256. Страницы собирают вручную Python-скриптом, затем `render.py` рисует картинки, а `check_all.py` ищет выход текста за поля, одиночные слова на строке и другие нарушения. `package.py` упаковывает результат, но скилл никогда ничего не публикует сам. Язык материалов китайский, платформа ориентирована на Xiaohongshu.
Для кого. Авторам научно-популярных ИИ-материалов на китайском и редакторам соцсетей, которым нужна карусель с проверяемыми фактами и чистой лицензией на картинки.
Подходит, если
- Нужна карусель про ИИ-концепцию с фактами, привязанными к первоисточнику.
- Из научной статьи надо сделать наглядные страницы с оригинальной цитатой и красным обведением.
- Перед сдачей нужна автоматическая проверка полей, мелкого текста и висячих слов.
- Автор хочет сам расставить макет скриптом, а не получить автоверстку.
Не подходит, если
- Нужна публикация в аккаунт: скилл только готовит файлы.
- Материалы нужны на другом языке или в другом формате страниц: шрифты и верстка рассчитаны на китайский текст и 1440 на 1920.
- Для темы нет открытых материалов и первоисточников.
Пример запроса к агенту
Сделай карусель в cy-carousel про эффект ELIZA: нужны старое фото, цитата из статьи и полный комплект к публикации.Ограничения
Требуются Python 3.10 или новее, Pillow, numpy и PyMuPDF. Поиск слов на отсканированных страницах работает только на macOS через Vision. Скилл не публикует и ждет принятия человеком. Оригинальные картинки, PDF статей и таблицы фактов в репозиторий не входят, есть только превью и скрипты примеров. Шрифты лежат под лицензией SIL OFL 1.1, остальной код под MIT. Лицензия отдельных материалов записывается в закрепленный комментарий каждого материала.
Как отключить. Удалите папку cy-carousel из ~/.claude/skills или ~/.codex/skills. Сгенерированные каталоги с карусельями лежат отдельно и удаляются вручную.
Частые вопросы
Что скилл отдает на выходе?
Папку с обложкой и 10 страницами, три варианта заголовка, текст, закрепленный комментарий, список источников и общий превью-лист.
Публикует ли скилл сам?
Нет. Скрипты создают только файлы, публикует человек. Это одна из семи красных линий скилла.
Работает ли на Windows и Linux?
Да, кроме поиска слов на отсканированных страницах: ему нужна macOS и Vision. Остальной конвейер читает файлы в UTF-8 на любой системе.
Откуда берутся картинки?
Только из открытых источников: общественное достояние, CC0, CC BY, CC BY-SA. Скилл записывает ссылку, лицензию и SHA256 каждого файла.
Какие проверки запускает check_all?
Он ищет подписи, колонтитулы, номера страниц и мелкий текст на картинках, висячие слова, выход текста за поля и неправильный тип фона. Ошибок должно быть ноль.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСкилл раскладывает статью или кейс в карусель Xiaohongshu 3:4 из 20 шаблонов: сначала раскадровка, потом PNG и HTML.
Набор из 11 скиллов для Claude Code и Codex превращает статью или видео в карточки для Xiaohongshu, длинные картинки и ролик.
15 скиллов для Codex: от исследования аккаунта в Xiaohongshu и выбора тем до заголовка, текста и проверки перед публикацией
Скилл для агента, который собирает карусели соцкарточек и парные обложки из статьи, скриншотов, заметок или видео в двух визуальных системах
Скилл делает из текста или ссылки инфокарточку в журнальном стиле и снимает PNG через Playwright, длинные режет на части
Девять отобранных скиллов для контента, дизайна и интеграций: Xiaohongshu, раскадровка видео, Orchard, Chatwoot и заявка на софт.
Коротко о README
Конвейер идет по шагам: выбор темы из нескольких кандидатов, проверка фактов, поиск открытых материалов, ручная раскладка, рендер, проверка и упаковка. В репозитории четыре готовых примера с превью и текстами: ELIZA, Dots, эффект «умного Ганса» и галлюцинации ИИ.
Бейдж для README
Исходный SKILL.md
---
name: cy-carousel
description: 制作 AI 科技类小红书图文轮播(封面+10张内页,1440×1920,暗底或浅色纸底,电子青强调色):讲一个 AI 概念、一篇论文或一个产品,体裁是「AI 学习笔记」。查证一手出处、找开放授权素材(论文原文、真实截图、人物照),用 scripts/手排.py 照 ELIZA 的做法逐页手排(毛笔双色标题、原文纸条放大加红圈、电子青大数字、问句贴条),再用 render.py 渲染、check_all.py 检查、package.py 打包。用户要做 AI/科技/论文/产品类图文,或复用、精修这类轮播时使用。
---
# AI 科技图文轮播
讲清一个 AI 概念、一篇论文或一个产品。读者不是专业人士,要让他一张张翻下去:反差钩子 → 一个看得懂的大例子 → 一句话定义 → 三条编号思考。样板(用户认定最好的两篇,先看它们的节奏和密度):`examples/01-ELIZA`(暗底)、`examples/02-Dots`(浅色纸底)。另有 `examples/03-聪明汉斯`(老照片+原书书页+论文,含完整手排脚本)、`examples/04-AI幻觉`(一场官司讲清一个概念:案卷原文纸条、聊天截图、大字定义)。
## 红线(违反任何一条就不合格)
1. **事实可回溯**:每个数字、引文、日期都回到论文原文、官方页面或一手史料,写进 `research/事实表.md`(陈述、原句、页码/URL、状态、用在哪页)。数字的主语要对(哪个模型、在什么考卷上);单篇论文的案例不能写成「AI 都这样」;流传但没证据的说法不写。
2. **只用开放授权素材**:公有领域、CC0、CC BY、CC BY-SA,或开放获取论文。记下原链接、许可、SHA256 和用页。不用生成的人物、无关古画、可辨认的陌生人;同一个真实人物含封面最多 3 页。
3. **图上不写出处、授权说明**。出处放置顶评论和 `来源.md`,CC BY 素材在置顶评论里署名。可以有黑底白字的人名/物件小标签;后来年份的照片要在标签里写清,别让人当成事件现场。
4. **不改原文**:纸条和截图是原样裁切,红圈、下划线是后加的标注。为了去掉半个词或无关的前后句可以涂白,置顶评论里说明。位图最多放大 1.25 倍。
5. **不用 `build.py` 的自动版式库**排页面,那套出来的页面「不如之前做的」。`build.py` 只作为渲染和断行的底层库。
6. **不发布**:脚本只出文件,不上传。
7. **参照图不外传**:参照账号/对标作者的图只在本机看和量,不上传到任何外部网站(以图搜图、在线 OCR、图床等),除非用户在对话里明确同意。
## 版式
- **底色**:暗底 `#080808`(`check_all` 只认 ≤8 为纯黑),或浅色纸底(例 02 Dots);一篇只用一种,不混。浅底上字直接压底,不加白框。拼贴层透明底;整页压暗的照片用 `backdrop()`,darken 0.30–0.70,不要烤进拼贴。
- **标题**:马善政毛笔两行,第一行米白 `#F3F1E9`,第二行电子青 `#00E5FF`,立体投影;英文和数字自动换黑体(`render.py` 的 `latin_font`,`headline()` 已设好)。离页面上边 ≥40px。
- **原文纸条**:论文用 `strip()` 按目标宽度矢量渲染;扫描书页用 `scan_strip()`,词框由 macOS Vision 找(`scripts/ocrfind.swift`,首次自动编译)。只截含关键词的 1–2 行,满宽贴边、不倾斜。关键词画红圈;行距密时改用下划线(`unders`)或页边红竖线(`bars`);切进来的半个词、半行、无关前后句涂白(`whiteout`)。
- **照片和截图**:`photo()` 不倾斜,`put(..., bleed='right'|'left'|'full')` 贴页边出血,一页一个主角。
- **大字**:关键数字用 `big()`,电子青黑体 120–220px;定义页可以排成大字公式(例 01 第 7 页、例 03 第 7 页)。
- **问句贴条**:`sticker()`,青底深字,每页最多一个,≤20 字。
- **正文**:`body()` 52–66px,每页最多两段、每段 ≤60 字。**字体按题材选**:`body(font=...)` 候选 宋体粗(默认)/宋体/仿宋/楷体/文楷/苹方细;先用 `S.font_sample(同一句, 'out.png')` 出同字对比小样再定,**一篇内只用一款**(标题照旧是毛笔)。
- **排字规则**:`body(..., typo=True)`:「——」画成两段带间隙细线(每段 0.74em、推进 0.86em)、省略号画三个等距圆点、【】约 0.44em、「·」约 0.3em、正文里的数字和拉丁字母换 Times(非 macOS 找不到时回退随包 Noto Serif SC 并警告)并放大 1.07(`latin_scale` 1.05–1.10)。`justify=True` 两端对齐(增量肉眼几乎看不出:字缝最多加 0.05em、空格最多 0.5em,超了整行左对齐;先用标点挤压吸收余量)。`hscale` 横向压缩文字层(参照账号正文约 0.95,默认 1.0);`headline/big` 也有 `hscale`。数值和原理见 `references/排字细节.md`。
- **图层顺序**:默认文字压在图上。要图片压住文字边缘时用 `Canvas(split_shadow=True)` + `page(..., layer_order='text-under-images')`,顺序变成「底色 → 投影 → 文字 → 图片」。
- **emoji**:组合 emoji(1️⃣ 2️⃣ 👉)用 `S.emoji('1️⃣', 64)` 出透明 PNG 再 `put`,不要塞进正文让字体去画。
- **收尾**:毛笔金句+三条编号思考;署名只写账号名(水印)。
## 流程
1. **选题**:先列 2–4 个候选,比素材(人物照/截图够不够清晰、许可干不干净、能否凑够 12 份以上不同原素材)、体裁(是不是「什么是 X」或反常识)、事实风险(有没有一手出处、争议多不多),选一个。
2. **查证**:建事实表,写「不写的内容」和「争议与写法」两节。论文用 PyMuPDF 定位要上版面的原句(页码+0–1 框)。
3. **找素材**:下载原图和论文 PDF,记许可和 SHA256,逐张看图(画面、人脸位置、能不能裁 3:4)。Wikimedia 请求放慢,遇 429 等一分钟。
4. **手排**:先出同字对比小样定正文字体;写 `制作.py`,`import 手排 as S`,`S.init(笔记目录)`;逐页用 `Canvas().put()` 摆图和纸条,用 `headline/big/body/sticker/label` 写字,`page(..., backdrop=...)` 组页,最后 `S.write_script(题目, '制作.py', account='账号名')` 生成 `页面脚本.json`(`account` 是水印署名;不传会印占位符「账号名」)。完整写法见 `examples/03-聪明汉斯/制作.py`。
5. **渲染**:`python3 scripts/render.py 页面脚本.json --out pages --assets-root .`;`S.preview('pages', '全套预览.jpg')` 出缩略图,逐页看:文字出界、压字、红圈标错、纸条带半截字、大块空白。
6. **对照**(有参照页时):`python3 scripts/对照.py 参照.jpg pages/p03.png` 出左右并排图(同高)和文字行偏差表(四边、字高,1440 宽 px 与 %,超 1% 标红),按表调字号和位置再渲染。
7. **检查**:`python3 scripts/check_all.py 页面脚本.json --pages pages --assets-root .`,`errors` 必须为零。可选严格视觉:加 `--strict-visual`(或页面脚本 `config.visual_gate: true`)后,留白超标和「与前页骨架相同」会列入 `visual_blockers` 并使退出码非零;色彩丰富度、原图数量等依赖体裁的建议项不参与。仅适用于正式稿的暗色调;三页小样和浅色调不跑这两项,会在 `checks.strict_visual` 写明不适用并在终端提示,`visual_blockers` 为空不代表通过。留白/骨架检查自身出错时也计入阻断。默认关闭。风格指标只作参考,别为凑指标改版式。
8. **给用户看**:全套预览、对照图、小样复制到会话工作目录,直接把图发给用户(用户看不到文件面板的预览)。
9. **文稿**:标题 3 个(≤20 字)、正文、置顶评论(一手出处、几处说明、逐页配图出处)、`来源.md`。打包(`package.py`)要求笔记目录里有分别命名的非空 UTF-8 文件 `标题.txt`、`正文.txt`、`置顶评论.txt`、`来源.md`,合并成一份「帖子文案.txt」不行。`素材清单.json`(可选)顶层必须是对象:`{"assets":[{"path":"assets/a.png","sha256":"…"}]}`,写成数组会报错。`check_all` / `package` 的「技术通过」不等于视觉验收,输出里的 `visual_acceptance` 字段始终是「未验收」,advisory 建议项要人工逐页看原尺寸图后处理。
10. **打包**:`python3 scripts/package.py --note . --pages pages --out 交付 --assets-root .`。严格视觉模式下加 `--strict-visual`,有阻断项会拒绝交付;逐页目检确认没问题后用 `--accept-visual "理由"` 放行,理由和被放行的阻断项写入 `交付清单.json` 的 `visual_accepted`。