taste
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTaste
偏好(Taste)
Paths: means the folder containing this SKILL.md, and the plugin folder two levels above it.
${CLAUDE_SKILL_DIR}${CLAUDE_PLUGIN_ROOT}Every question to the user goes in the question box: call the AskUserQuestion tool (2-4 options, the recommended one first). Only in an agent without that tool, ask numbered questions in text.
The user's own rules, kept outside the plugin (plugin updates never touch them):
~/.ai-video-editor/taste.md rules in plain words, one bullet each, by section
~/.ai-video-editor/taste.json settings the scripts read; they win over the creator's style.json
<library>/custom/ their own rule files, caption styles and template defaults (custom.py)Never write a correction into the plugin's own files (a SKILL.md, a reference, a script): an update
replaces them. Everything the user teaches goes in the files above.
S="${CLAUDE_SKILL_DIR}/scripts"python3py路径: 表示包含此 SKILL.md 的文件夹, 表示其上两级的 plugin 文件夹。
${CLAUDE_SKILL_DIR}${CLAUDE_PLUGIN_ROOT}向用户提出的每个问题都要放入问题框:调用 AskUserQuestion 工具(提供 2-4 个选项,推荐项放在首位)。只有在没有该工具的 agent 中,才用文本形式提出编号问题。
用户自己的规则保存在 plugin 之外(plugin 更新绝不会影响它们):
~/.ai-video-editor/taste.md rules in plain words, one bullet each, by section
~/.ai-video-editor/taste.json settings the scripts read; they win over the creator's style.json
<library>/custom/ their own rule files, caption styles and template defaults (custom.py)绝不要把修正写入 plugin 自身的文件(SKILL.md、reference、script),因为更新会替换这些文件。用户教给编辑器的所有内容都应写入上述文件。
S="${CLAUDE_SKILL_DIR}/scripts"python3pyWhen the user reacts to an edit
用户对编辑作出反应时
- Find the behaviour behind what they said, not the one instance. "The 'router' card is too small" becomes "Cards fill the space they have", not "make the router card bigger".
- Scope. After every correction, ask in the question box: "Is this about this video, your style, or
would it help everyone?" with the options ,
My style (Recommended)andJust this video. When the edit used a creator's style (Would help everyonehas aedits/<name>/style.json), addsourcefirst, as the recommended one, by the name the home page shows ("50/50"), never its folder orThis style (<its name>). Skip the question only when they already said it ("always", "just this one").@idsaves it to their style too, then step 6. Notes sent from the review page never get this question: only the ones the user ticked "Keep as a rule" become rules, saved without asking (style-editWould help everyone).references/review.md - Save it with , with the setting when one maps (table below) and the edit it was said on:
add
bash
python3 "$S/taste.py" add captions "Captions bigger" --set captions.size_pct=6 --edit edits/<name>
python3 "$S/taste.py" add sound "Whooshes quieter on this one" --video edits/<name>
python3 "$S/taste.py" add visuals "Logos stay smaller than the captions" --edit edits/<name>
python3 "$S/taste.py" add captions "Captions smaller" --set captions.size_pct=4.5 --style edits/<name> --edit edits/<name>--stylestyle.overrides.jsonedit-like-<handle>My stylemy-styleThe same rule said again (same setting, or near-identical words, same scope) edits the old
one instead of adding a copy. Every-video rules also land in taste.md (words) and taste.json
(the setting); this-video rules stay in rules.json and reach only that edit.
| they say | |
|---|---|
| cut is too slow / too rushed / too tight | |
| captions too small / too big | |
| more / fewer words on screen | |
| captions higher / lower | |
| caption colour / highlight colour | |
| fewer / more zooms | |
| no sound effects | |
| always split / always overlay | |
| keep my ums / don't cut fillers | |
| a whole caption look they want kept | write |
No setting fits (card timing, a capture cropped wrong, a look), so it is a word rule: write it
so it can be followed next time ("Captures crop to the sentence that proves the point").
- Tell the user in one line what was saved, so they can catch a wrong one:
. If
Saved to your taste: "Logos stay smaller than the captions" (visuals, every video)printsadd, the rule was already applied and did not hold: say so, and make it more concrete (a setting, a number) instead of saving the same words again.regression - Then redo the edit with it.
- On , write it as a rule for every user of the editor, never about this video: what was wrong, the general rule, the skill or check that should own it, and a small example without their media, names or links (the script scrubs paths, file names, emails, handles and links too):
Would help everyone
bash
python3 "$S/taste.py" suggest "Zoom snapped in over 2 frames" "Zooms ease in over at least 0.5 s" --owner "style-edit quality.py zoom check" --example "a 1.2x punch at 0.07 s"
python3 "$S/taste.py" issue # shows the issue it would openIf succeeds, ask in the question box: "Send it to the editor's maintainers as a
GitHub issue?" with / . On yes:
, and give them the issue link. No gh, or no: it stays in
, where the maintainers' skill reads it.
gh auth statusYes, open an issue (Recommended)No, keep it on my computerpython3 "$S/taste.py" issue --yes~/.ai-video-editor/suggestions.jsonlimprove- 找出用户表述背后的行为模式,而不只是某一次的具体问题。“‘router’卡片太小”应转化为“卡片应填满可用空间”,而不是“把 router 卡片放大”。
- 确定适用范围。每次修正后,都要在问题框中询问:“这是关于这个视频、你的风格,还是对所有人都有帮助?”选项为 、
我的风格(推荐)和仅这个视频。当此次编辑使用了某位创作者的风格(对所有人都有帮助中含edits/<name>/style.json)时,应首先添加source并将其作为推荐项;名称应使用首页显示的名称(“50/50”),绝不能使用文件夹名或此风格(<名称>)。只有在用户已经说明范围时(“始终如此”“仅这个”)才可跳过问题。@id还会先把规则保存到用户自己的风格中,然后执行第 6 步。从审阅页面发送的备注不会提出这个问题:只有用户勾选“保留为规则”的备注才会成为规则,并在不询问的情况下保存(style-edit对所有人都有帮助)。references/review.md - 使用 保存;如果规则可以映射到某个设置(见下表),则同时保存该设置以及用户提出该意见时所针对的编辑:
add
bash
python3 "$S/taste.py" add captions "Captions bigger" --set captions.size_pct=6 --edit edits/<name>
python3 "$S/taste.py" add sound "Whooshes quieter on this one" --video edits/<name>
python3 "$S/taste.py" add visuals "Logos stay smaller than the captions" --edit edits/<name>
python3 "$S/taste.py" add captions "Captions smaller" --set captions.size_pct=4.5 --style edits/<name> --edit edits/<name>--stylestyle.overrides.jsonstyle.jsontaste.jsonedit-like-<handle>我的风格my-style再次说出同一条规则(相同设置、近似措辞且范围相同)时,应编辑原规则,而不是添加副本。适用于所有视频的规则还会同时写入 (文字规则)和 (设置);仅适用于当前视频的规则保存在 中,并且只影响该次编辑。
taste.mdtaste.jsonrules.json| 用户表述 | |
|---|---|
| 剪辑太慢/太快/太紧凑 | |
| 字幕太小/太大 | |
| 屏幕上的字数更多/更少 | |
| 字幕位置更高/更低 | |
| 字幕颜色/高亮颜色 | |
| 缩放更少/更多 | |
| 不要音效 | |
| 始终使用分屏/始终使用叠加 | |
| 保留我的 ums/不要剪掉填充词 | |
| 用户希望保留的一整套字幕外观 | 写入 |
如果没有适合的设置(卡片时机、截取画面裁剪错误、某种视觉风格),则将其保存为文字规则:措辞应确保下次能够照此执行,例如“截取画面应裁切到能够证明要点的句子”。
- 用一行告诉用户保存了什么,以便他们及时发现错误:
如果
已保存到你的偏好:“Logo 应比字幕更小”(视觉,所有视频)。输出add,说明该规则之前已经应用过,但没有奏效:应如实告知用户,并将规则改得更具体(一个设置或数值),不要再次保存相同文字。regression - 然后按照该规则重新完成编辑。
- 对于 ,将其写成供编辑器每位用户使用的规则,而不要写成仅与这个视频有关:指出问题是什么、通用规则是什么、应由哪个 skill 或检查负责,以及一个不含用户媒体、名称或链接的小示例(脚本还会清理路径、文件名、邮箱、账号和链接):
对所有人都有帮助
bash
python3 "$S/taste.py" suggest "Zoom snapped in over 2 frames" "Zooms ease in over at least 0.5 s" --owner "style-edit quality.py zoom check" --example "a 1.2x punch at 0.07 s"
python3 "$S/taste.py" issue # shows the issue it would open如果 成功,在问题框中询问:“要把它作为 GitHub issue 发送给编辑器的维护者吗?”选项为 / 。选择“是”时,运行 ,并向用户提供 issue 链接。如果 gh 不可用,或用户选择否,则将其保存在 中,维护者的 skill 会读取该文件。
gh auth status是,开启 issue(推荐)否,保存在我的电脑上python3 "$S/taste.py" issue --yes~/.ai-video-editor/suggestions.jsonlimproveLearn from a past edit
从过往编辑中学习
When the user already edits by hand (or says yes to setup's "Have a raw take and the version you
posted? I can learn how you cut."), ask for both paths and read .
It runs , which saves their pause length, retake and filler habits as
rules with counts, so the first edit already cuts like them.
references/learn-from-edit.mdlearn.py <raw> <posted>当用户本来就在手动剪辑(或同意设置流程中的“你有原始素材和已发布的版本吗?我可以学习你的剪辑方式。”)时,询问两个路径并读取 。
该脚本会运行 ,将用户的暂停时长、重拍和填充词处理习惯保存为带计数的规则,从而让第一次编辑就采用其剪辑方式。
references/learn-from-edit.mdlearn.py <raw> <posted>Is it learning
是否在学习
bash
python3 "$S/taste.py" reportEach rule with times applied, in how many edits, corrections, and the last edit where it
was said again after it was applied. Rules from review-page notes () say so.
On the final approve the review page offers the session's notes as rules to tick, saved into the
edit's style (the skill-improver skill: / ).
Show it on "what have you learned", "are you learning", or after a regression.
review.py learnreview.py learn --propose--donebash
python3 "$S/taste.py" report这里会列出每条规则的应用次数、涉及的编辑数量、修正次数,以及该规则应用后最后一次被再次提出的编辑。来自审阅页面备注的规则()也会注明这一点。
在最终批准时,审阅页面会提供本次会话的备注作为可勾选的规则,并保存到该次编辑的风格中(skill-improver skill: / )。
在用户询问“你学到了什么”“你在学习吗”,或发生回归后,向其展示结果。
review.py learnreview.py learn --propose--doneBefore any edit
开始任何编辑之前
Every cooked. skill starts by reading the taste for the edit it is on:
bash
python3 "$S/taste.py" show --edit edits/<name>That also counts the word rules as applied to this edit. plan.py and build_timeline.py read the
settings themselves ( in the plugin's ) and count them.
load_json()lib/ai_editor/taste.pyFollow every rule in taste.md. They beat the creator's style: the user chose them. If a rule and
the creator's style disagree, say so once and follow the rule.
每个 cooked. skill 都应先读取此次编辑对应的偏好:
bash
python3 "$S/taste.py" show --edit edits/<name>这也会把文字规则计为已应用到此次编辑。plan.py 和 build_timeline.py 会直接读取这些设置(plugin 的 中的 ),并对其进行计数。
lib/ai_editor/taste.pyload_json()遵循 taste.md 中的每条规则。用户规则优先于创作者的风格,因为这些规则是用户自己选择的。如果某条规则与创作者的风格冲突,请说明一次,然后遵循该规则。
Show, change, forget
查看、更改和遗忘
- "What do you know about my taste": , then summarise it in a few lines.
taste.py show - Forget a rule: for its number, then
taste.py report(its setting and taste.md line go with it).taste.py forget <id> - Reset everything: delete taste.md, taste.json and rules.json (ask first).
- “你了解我的哪些偏好”:运行 ,然后用几行概括结果。
taste.py show - 遗忘某条规则:先运行 找到其编号,再运行
taste.py report(对应设置和 taste.md 中的该行也会一并移除)。taste.py forget <id> - 重置全部内容:删除 taste.md、taste.json 和 rules.json(先询问用户)。
Files
文件
- : a raw take and the user's posted cut of it in, their cut settings out;
scripts/learn.py.demo - :
${CLAUDE_PLUGIN_ROOT}/lib/ai_editor/custom.py,path(a rule file in custom/rules/, whichrule "<rule>"prints),show.list - :
scripts/taste.py,add,report,show,forget,rule,set,unset,get,suggest,issue. A thin CLI over the plugin'sdemo, whoselib/ai_editor/taste.pyandload_json()are what plan.py and the cut use to lay the taste over the defaults and style.json.merge() - : every rule with its scope, corrections, times applied and regressions (shape in the lib's docstring).
~/.ai-video-editor/rules.json
- :输入原始素材和用户发布的剪辑版本,输出其剪辑设置;
scripts/learn.py。demo - :
${CLAUDE_PLUGIN_ROOT}/lib/ai_editor/custom.py、path(rule "<rule>"中的规则文件,custom/rules/会打印它)、show。list - :
scripts/taste.py、add、report、show、forget、rule、set、unset、get、suggest、issue。这是 plugin 的demo上层的一层轻量 CLI;其中lib/ai_editor/taste.py和load_json()是merge()和剪辑流程用于将偏好覆盖到默认值及plan.py上的核心机制。style.json - :每条规则及其适用范围、修正次数、应用次数和回归情况(结构见 lib 的 docstring)。
~/.ai-video-editor/rules.json