Communitygithub.com

Conz-Wilts/ai-editor

面向编辑器维护者。将用户纠正内容转化为此仓库中的持久性修复,惠及所有用户,通过代码和测试而非注释强制执行。

ai-editor 是什么?

这是一个专为 AI 视频编辑器维护者设计的技能,旨在系统地将用户反馈转化为永久性修复。它读取多种来源的反馈数据(包括用户的`.jsonl`建议文件、品味规则回归报告、预览修正记录、审阅页面注释以及标记为 `feedback` 的 GitHub Issues),然后按重复频率分组排序。维护者选择接受某一项后,该技能会自动执行完整的修复流程:将通用规则写入 `PRINCIPLES.md` 和对应的技能文件中,添加或收紧代码层面的检查以强制执行该规则,编写一个在修复前会失败、修复后可通过的测试,并最终运行完整的测试套件。该技能仅适用于编辑器仓库的 git 检出环境(带有 `AI_EDITOR_MAINTAINER=1` 环境变量),用于处理“改进编辑器”、“将反馈转化为修复”、“处理建议”、“用户投诉什么”或“处理反馈 Issues”等任务。它不适用于单个用户的私人偏好设置(那是品味模块的职责),也不适用于直接编辑视频本身。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Conz-Wilts/ai-editor/tree/HEAD/.claude/skills/improve

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Improve

路径:${CLAUDE_SKILL_DIR} 指包含此 SKILL.md 的文件夹;${CLAUDE_SKILL_DIR}/../.. 指编辑器所在仓库的 .claude/ 文件夹(即上层两层目录)。

所有向用户的提问都放在提问框中:调用 AskUserQuestion 工具(提供 2-4 个选项,推荐的排第一)。仅当 代理没有该工具时,才用文本形式提出带编号的问题。

此技能在仓库的 git 检出中运行,专为仓库维护者设计。这里的一个修复会在用户下次更新时惠及所有用户。S="${CLAUDE_SKILL_DIR}/scripts"。在 Mac 和 Linux 上用 python3 运行脚本,在 Windows 上用 py 运行。

0. 谁在运行

python3 "$S/improve.py" mode

maintainer —— 仅在带有 AI_EDITOR_MAINTAINER=1 的仓库 git 检出中:继续执行步骤 1。

user —— 编辑器自身的文件在每次更新时都会被替换,因此永远不要编辑它们(包括 SKILL.md、reference、脚本或 PRINCIPLES.md)。如下收集和挑选,然后将每个接受的条目保存在用户自己的分层目录中,该目录不会因更新而改变(见仓库中的 docs/customise.md):

  • 一条设置:使用 taste.py add ... --set
  • 一条单词规则:使用 python3 "${CLAUDE_SKILL_DIR}/../../lib/ai_editor/custom.py" rule "<rule>"
  • 一个字幕样式:作为 custom/captions/<name>.json,再加上 taste.py set captions.preset <name>
  • 模板默认值:作为 custom/templates/<type>.json

然后提供 taste.py suggest,以便维护者可以为所有人修复。在此停止。

1. 收集

python3 "$S/improve.py" collect [--edits D] [--no-gh]

每行一条规则,重复最多的排在前面:包含出现次数、来源(建议、品味回归、预览修正、审阅注释、GitHub Issue)、指定的所有者名称,以及最多三个示例。由多个用户提到或应用后再次被提及的规则优先显示。

2. 挑选

显示队列顶部的条目,并在提问框中询问现在要修复哪些(多选,重复最多的优先,推荐)。对于每一条,如果不清晰,同时询问:每个用户(推荐)/ 仅部分创作者的风格(它应属于 style.json 字段,而非一条规则)/ 不是修复(关闭它)。

3. 按以下顺序修复每一项

  1. 规则。 在 ${CLAUDE_SKILL_DIR}/../../PRINCIPLES.md 中合适标题下写一行,说明在哪里强制执行,同时在所属的 SKILL.md 或 reference 中添加相同的规则。应具有通用性,绝不针对单个视频:例如 "变焦缓动至少持续 0.5 秒",而非 "0:12 处的变焦卡顿"。
  2. 强制执行。 使规则生效的最小代码,无需任何人记住它:在检查脚本(check.py、quality.py、product.py check、ai_tells.py)中产生 FAIL,在可能会破坏规则的脚本中拒绝执行(gates.py),一个无法产生该问题的默认值,或者在 tests/check_plugins.py 中为仓库规则添加一行。优先加强现有检查,而不是新增一个。
  3. 测试。 在该脚本的 demo()(或 tests/ 目录)中添加一个断言,基于一个小型的合成失败示例构建。在修复前运行并看到它失败,修复后运行并看到它通过。只有代理才能遵循的规则(涉及提问、解释)则在 evals/ 中放置评估案例:包含 prompt.md 和一个 tool_used 或 llm 评分器。
  4. 记录。 在 docs/feedback-matrix.md 中记录:规则、写在何处、由什么强制执行、有哪些测试。

4. 运行所有内容

python3 tests/check_plugins.py
python3 .claude/lib/ai_editor/okf.py check

接着运行 tests/demos.sh(每个脚本的 demo)、node tests/test_record.mjs,如果渲染器已配置则运行 tests/smoke.py 和 tests/golden.py。全部通过后才能交接。不要提交代码;维护者会审查 diff 并提交。

对于现已修复的 GitHub Issue,在询问后,可提供一条包含修复摘要的评论并关闭该 Issue(gh issue close <n> --comment "...")。

切勿

  • 切勿编辑用户的 taste.md、taste.json、rules.json 或 suggestions.jsonl:这些属于用户自己。
  • 切勿在仓库中放置个人数据:不要包含姓名、用户名、邮箱、文件名或来自反馈的影像资料。请编写通用规则和合成示例。tests/check_plugins.py 会检测已知的私人姓名;请先检查每个示例再放入仓库。
  • 切勿仅靠注释来闭环。没有强制执行和测试的规则不算完成。

文件

  • scripts/improve.py:包含 mode、collect、demo 函数。仅读取文件。
  • ${CLAUDE_SKILL_DIR}/../../lib/ai_editor/custom.py:用户的 <library>/custom/ 目录(用户模式下向其写入)。
  • ${CLAUDE_SKILL_DIR}/../../skills/taste/scripts/taste.py:其中 suggest 和 issue 写入用户侧内容。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

Conz-Wilts/ai-editor

Turns one long video or podcast (a local file or a YouTube link) into the best 3-5 short vertical clips, each cut and styled in the user's profile style. Transcribes once, splits the talk into candidate clips at sentence boundaries inside the chosen length, scores every candidate in code (speech rate, loudness, laughter, numbers and names said), shows the shortlist on one page with a preview of each, then trims, cuts and style-edits each pick as its own edit. Use when the user says "clip this video", "make shorts from my podcast", "find the best clips", "cut this into TikToks", "turn this YouTube video into reels", "repurpose this long video", or drops a long video (over about 3 minutes) or a YouTube link and wants short clips. Not for editing one short take (that is start or cut), and not for measuring someone else's style (that is creator-teardown).

Conz-Wilts/ai-editor

Reverse-engineers a short-form creator's video format from their real numbers. Pulls a TikTok or YouTube Shorts profile (or pasted links, Instagram reels too) with view, like and save counts, transcribes the top videos word for word, measures pace, pauses and fillers, maps each video into timed beats, and writes a teardown.md someone can film from, a teardown.html page of their graphics, motion and sound, and the style.json the style-edit skill edits from (on its own it can write an edit plan as a table and .srt). Use when the user wants to analyse, break down or study a creator ("analyse @handle", "tear down @handle", "teardown of @handle", "break down this creator", "what makes this creator's videos work"), pastes TikTok, YouTube or Instagram links and asks what the pattern is, or asks to set up creator-teardown. Not for editing the user's own video like a creator (that is start), not for researching a topic, and not for cutting raw footage.

Conz-Wilts/ai-editor

Cuts raw talking-head footage into a clean jump cut. Takes one take or several joined (mp4 or mov, any aspect, 4K phone footage is fine), transcribes it word by word, removes retakes, false starts, fillers and dead pauses, and renders cut.mp4 at the source resolution plus words.json timed to the cut. The user approves the cut on a page with the whole transcript and every removed word struck through. Use when the user says "cut my video", "just cut it", "remove my mistakes", "cut out the retakes", "remove the pauses", "clean up this take", "jump cut this", "tighten this clip", or asks only for the cut of a raw take; start calls it for a full edit. Runs before style-edit. Not for a general request to edit a video or to make it look like a creator (that is start), not for adding captions, zooms or cards (style-edit), and not for analysing someone else's videos (creator-teardown).

Conz-Wilts/ai-editor

Generates new footage with Higgsfield and puts it on the edit's timeline. Prices every generation first, asks the user with the dollar amount (and, for their own footage, whether it may be uploaded to Higgsfield), then submits, waits, downloads into the edit's generated/ folder and adds the result to the timeline's Generated track. Covers motion transfer on a clip of the user's video (their moves onto a character or styled look), b-roll from a sentence (text to video), a still brought to life (image to video) and stills for cards (text to image). Use when the user says "generate b-roll", "make a shot of", "AI b-roll", "generate a clip", "use Higgsfield", "motion transfer", "put my moves on", "restyle this part with AI", or asks for footage they did not film. Not for animated diagrams or motion graphics (motion), not for real screenshots and logos (overlays, logo-pack), and not for the cut (cut).

相关技能