review-animations (emilkowalski/skills)
厳しい品質基準でアニメーションとモーションのコードをレビューし、弱点は既定で指摘します。
review-animations:プルリクエストのモーションレビューで、仕込まれた問題を見つけて正確な修正を提示させます(対照群 2.9、スキル 4.4、一文プロンプト 4.9)。トークンは 1.2 倍。チェックリストの一文プロンプトの方が優れています。
Codex CLI · gpt-6-astra
24.9 / 30
スキルなしに対するリフト:+1.52 · 推奨 · 18 実行
推奨:合計 24.9/30 が 22 以上、出力品質 4.4 が 3.5 以上、リフト +1.52 が +1.0 以上。
SOTA
合格Codex でテスト済み。
カバー対象 Codex, Claude Code
Codex CLI 0.166(SOTA ティア):採点対象 18 実行。当ティアのルールでは、ここでの合格は Claude Code もカバーします。第2ティアについては何も述べません。
スコア
各ディメンションは 0〜5 点で、6 つの合計が 30 点満点の合計スコアになります。すべてのディメンションで 5 が最良です。コスト 5 は低コストで高速、インストール 5 は簡単であることを意味します。
- トリガーの信頼性
- 5.0
- スキルなしに対するリフト
- 3.5
- 出力品質
- 4.4
- トークンと時間のコスト
- 4.0
- インストールと移植性
- 4.0
- 安全性
- 4.0
セキュリティレビュー
安全静的スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。手動レビュー:ネットワーク無効のサンドボックスで実行しても安全(指摘なし)。クリーンなスキャン結果はスキルの安全性を証明しません。
インストール
npx skills@latest add emilkowalski/skills --skill review-animations
固定コミット: a81dbca07f2217b7103e510c0f13f8d5b017afc9
テスト済み: 2026-11-02
テスト内容
- モーション diff のレビュー — マージする前に change.diff のアニメーション変更をレビューしてください。ファイルは変更しないでください。
- トーストのルールのみのレビュー — change.diff の .toast アニメーションルールのみをレビューしてください。ファイルは変更しないでください。
- マージ判定 — change.diff のアニメーション変更をこのままマージすべきですか? 最初に答え、その後に理由を述べてください。ファイルは変更しないでください。
長所
- スキルなしと比べ平均スコアを 2.86 から 4.38 に引き上げ(+1.52)。
- スキルは名前を出さずとも採用されました:スキルあり群 6/6 実行でスキルファイルが読み込まれました。
短所
- 一文プロンプトは 4.93、スキルありは 4.38(-0.55)。
- タスク・群ごとに n=2。1 ポイント未満の差はノイズです。
レビュー
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。アニメーションを追加し、7 つの問題が仕込まれた change.diff。タスクは、マージ前に diff 全体をレビューする、トーストのルールのみをレビューする、「このままマージすべきか?」に答える(最初に答え、その後に理由)。プロンプトはルール名に一切言及しません。一文プロンプトはチェックリストを一文にし、正確な置き換えを求めます。
3群の比較
| 群 | 平均スコア(0〜5) | 1実行あたりのトークン |
|---|---|---|
| スキルなし | 2.86 | 53k |
| 一文プロンプト | 4.93 | 48k |
| スキルあり | 4.38 | 63k |
Codex CLI で 18 実行を計測し、LLM 判定なしのルールベースのチェックで採点。合計 24.9 / 30、判定は 推奨。
判定:推奨(24.9 / 30)。 出典:emilkowalski/skills、skills/review-animations、コミット a81dbca に固定。インストール:npx skills@latest add emilkowalski/skills --skill review-animations。ライセンス: MIT(リポジトリの LICENSE)。
概要
emilkowalski/skills の review-animations スキル:diff 内のアニメーション変更のためのレビューチェックリスト。デフォルトで指摘するのは、ease-in/ease-in-out の UI カーブ、transition: all、scale(0) 開始、レイアウトプロパティのアニメーション、高頻度アクションのアニメーション、効果のないスタガー、reduced-motion の欠落、300 ms 超の継続時間。それぞれ正確な置換値を伴います。
テスト方法
専用の Windows テスト PC 上で Codex CLI 0.166(gpt-6-astra、低推論)、実行ごとに新規の一時プロジェクトと一時 HOME/TMPDIR/キャッシュを使用、スキルをインストール(スキルあり群)、スキルなし(対照群)、またはスキルの中核要件をプロンプト末尾に付けた一文に圧縮(一文プロンプト群)、タスクごとに各群 2 実行、ネットワーク無効、/tmp への書き込みはブロック。プロンプトはスキル名に一切言及しません(以下で注記する表現を除く)。
7 つの仕込み問題を含むアニメーション追加の change.diff。タスク:マージ前に diff 全体をレビュー、トーストのルールだけをレビュー、「このままマージすべきか?」に回答(先に答え、次に理由)。プロンプトはルールを一切名指ししません。一文プロンプトはチェックリストを一文にし、正確な置換値を求めます。
- モーション diff のレビュー — マージする前に change.diff のアニメーション変更をレビュー。ファイルは変更しないでください。
- トーストのルールだけをレビュー — change.diff の .toast アニメーションルールだけをレビュー。ファイルは変更しないでください。
- マージ判定 — change.diff のアニメーション変更をこのままマージすべきですか?先に答え、次に理由を。ファイルは変更しないでください。
採点はプログラム的(隠しテスト/仕込み問題の検出/制約チェック/該当する場合はレンダリング+OCR)で、実行ごとに 0〜5 点。スコアはどの LLM 判定者も決めていません。
結果
第 3 群に与えた一文プロンプト:"高いクラフト基準でモーションコードをレビューし、デフォルトで指摘する:ease-in または ease-in-out の UI カーブ、transition: all、scale(0) 開始、レイアウトプロパティのアニメーション、頻繁なアクションのアニメーション、効果のないスタガー、reduced-motion の欠落、300 ms 超の継続時間。各指摘に正確な置換値を示す。"
| タスク | 対照群スコア | 一文プロンプト | スキルあり | 対照群トークン | 一文プロンプトトークン | スキルありトークン | スキル読み込み |
|---|---|---|---|---|---|---|---|
| t1-review-diff | 1.53 | 4.79 | 3.67 | 56k | 56k | 77k | 2/2 |
| t2-toast-only | 2.22 | 5.0 | 5.0 | 47k | 39k | 55k | 2/2 |
| t3-verdict | 4.82 | 5.0 | 4.46 | 55k | 48k | 55k | 2/2 |
平均スコア:スキルなし 2.86 vs スキルあり 4.38(差分 +1.52)。1 実行あたりのトークン:53k vs 63k(1.18 倍)。時間:30s vs 32s。一文プロンプト群:4.93(一文プロンプトに対するスキルの上乗せ:-0.55。一文プロンプト自身のスキルなしに対する上乗せ:+2.08)。一文プロンプトのトークンは 1 実行あたり 48k、つまりスキルのコストは一文プロンプトの 1.30 倍。
何が起きたか
- 対照群 2.86、スキルあり 4.38、一文プロンプト 4.93(各 n=6)。ガイダンスなしでは、diff 全体のレビューは 7 つの仕込み問題のうち一方の実行で 3 つ、他方で 1 つしか見つけられず、2 実行とも置換値を示しませんでした。
- トーストのみのレビュー:対照群は両方の実行で
transition: allを見落とし、正確な修正を示しませんでした(2.2)。スキルありと一文プロンプトは 4 実行すべてで 5.0 を記録しました。 - diff 全体のレビュー:スキルは 7 つのうち 5〜6 を見つけましたが、一貫性がありませんでした(4.18 と 3.16)。一方の実行で高頻度のコマンドパレットを、他方で効果のないスタガーを見落としました。一文プロンプトは 5.0 と 4.59 でした。
- 判定タスク:対照群はすでに裏付けのある回答をします(5.0 と 4.64)。スキルありは 4.64 と 4.29、一文プロンプトは両方で 5.0。
- トークン:1 実行あたりスキルあり 63k、一文プロンプト 48k、対照群 53k(対照群の 1.19 倍、一文プロンプトの 1.3 倍)。スキルはスキルあり群 6/6 実行で読み込まれました。
評価項目別スコア
| 評価項目 | スコア | 理由 |
|---|---|---|
| 出力品質 | 4.38 | スキルありの平均スコアは 4.38/5(プログラム的チェック。タスク別の表を参照)。 |
| スキルなしに対するリフト | 3.52 | スキルなしの 2.86 に対して +1.52 ポイント(タスクごとに n=2。約 1 ポイント未満の差はノイズ)。 |
| トリガー | 5.0 | スキルあり群 6/6 実行でスキルファイルが読み込まれました。 |
| 手順の移植性 | 4 | SKILL.md のチェックリストのみ。 |
| 効率 | 4 | トークン 1.18 倍(1 実行あたり 63k vs 53k)、時間 1.06 倍(32s vs 30s)。 |
| 安全性と衛生 | 4 | 文章のみ。security.md を参照。 |
このテストの限界
- レビュー本文に対する再現チェック:仕込み項目のうち検出されたものと、具体的な値の有無。説明の質は判定していません。
- 一文プロンプトはスキル自身のチェックリストのほぼ言い換えです。
- フィクスチャ diff は 1 つ。セルごとに n=2。
- タスク・群ごとに n=2。約 1 ポイント未満の差はノイズです。
- ルールベースの採点はチェックが捉えられる範囲を測るもので、センスや、その結果が最善かどうかは判定できません。
セキュリティ
security.md を参照。スキャン:CRITICAL 0 / HIGH 0 / MEDIUM 0。判定:実行しても安全(ネットワーク無効のサンドボックス)。クリーンなスキャン結果はスキルの安全性を証明しません。
結論
このスキルは、ガイダンスなしに比べてモーションレビューを明確に改善します。主に、具体的な置換値を得て、見落としがちな項目を捉えるためです。同じチェックリストを一文にしたものは、このテストではより良く、より安価でした。つまり、その効果はガイダンスなしに対するものであり、良いプロンプトに対するものではありません。
トランスクリプト
実行ログ:review-animations (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) 列:タスク、群-回、スコア(0-5)、トークン、秒、合格したチェック、エージェントが開いたスキルファイル。 t1-review-diff control-1: スコア 1.94, トークン 48194, 秒 27.2, チェック 1/3, 開いたファイルなし t1-review-diff control-2: スコア 1.12, トークン 64124, 秒 37.9, チェック 1/3, 開いたファイルなし t1-review-diff oneliner-1: スコア 4.59, トークン 65072, 秒 52.4, チェック 3/3, 開いたファイルなし t1-review-diff oneliner-2: スコア 5.0, トークン 48423, 秒 41.8, チェック 3/3, 開いたファイルなし t1-review-diff treatment-1: スコア 3.16, トークン 77459, 秒 41.1, チェック 2/3, 開いたファイル review-animations t1-review-diff treatment-2: スコア 4.18, トークン 77187, 秒 40.0, チェック 3/3, 開いたファイル review-animations t2-toast-only control-1: スコア 2.22, トークン 47474, 秒 21.1, チェック 0/2, 開いたファイルなし t2-toast-only control-2: スコア 2.22, トークン 47748, 秒 25.5, チェック 0/2, 開いたファイルなし t2-toast-only oneliner-1: スコア 5.0, トークン 31576, 秒 16.0, チェック 2/2, 開いたファイルなし
18 実行、3 成果物
サンプル出力
SOTA · With the skill: final message (t1-review-diff, run 1, Codex)
| Before | After | Why | | --- | --- | --- | | Toast starts at `scale(0)` ([diff:5](change.diff:5)) | Start at `scale(0.95)` with opacity `0`. | Growing from nothing creates an exaggerated entrance and distorts the toast’s content. | | Toast uses `all 600ms ease-in-out` ([diff:5](change.diff:5)) | Limit transitions to `transform, opacity`; shorten below 300ms and use `cubic-bezier(0.23, 1, 0.32, 1)`. | The entrance starts slowly and takes too long. `all` also allows future layout changes to animate accidentally. | | Sidebar animates `width 400ms` ([diff:7](change.diff:7)) | Remove the width transition; apply the collapsed width immediately. | Animating from 240px to 56px repeatedly recalculates layout and can reflow content throughout an already lengthy transition. | | Command items enter with a 500ms, 24px slide ([diff:10](change.diff:10)) | Remove the item animation and its delay rule. | Assuming `.cmdk-item` represents command-palette items, decorative entrances delay visual availability in a frequently used keyboard workflow. Adding stagger would worsen this. | | Movement has no reduced-motion override ([diff:5–12](change.diff:5)) | Under `prefers-reduced-motion: reduce`, remove scaling and translation; retain a short opacity transition where useful. | The supplied styles impose the same movement on users who request reduced motion. | | Hover transition is ungated ([diff:9](change.diff:9)) | Gate it with `@media (hover: hover) and (pointer: fine)`; prefer an immediate background change. | Touch can produce lingering hover states. Removing this frequent color animation also avoids repeated paint work. | **Feel-breaking regressions:** The toast’s zero-scale entrance and slow timing block approval. The command-item animation should be removed if these are command-palette results. **Performance:** The sidebar width transition adds avoidable layout work. Keep the toast’s transitions explicitly scoped. **Accessibility:** Reduced-motion handling and hover capability gating are missing. **Block.** Static review only; the workspace contains no runnable interface to verify motion visually. Locations above reference the supplied diff. No files changed.