# What Is the 'Review-Animations' Skill's Purpose and Bias?

> Discover the purpose and bias of the review-animations skill. This agent rigorously checks animation code, prioritizing a 'feels right' motion standard and defaulting to flagging issues.

- Repository: [Emil Kowalski/skills](https://github.com/emilkowalski/skills)
- Tags: deep-dive
- Published: 2026-08-07

---

**The `review-animations` skill is a specialized review agent that evaluates animation and motion code against a strict craft standard, biased toward motion that "feels right" and defaulting to flag rather than approve.**

The `review-animations` skill is part of **Emil Kowalski's open-source `skills` repository** — a collection of specialized AI agents for design-engineering workflows. This particular skill acts as a high-fidelity gatekeeper for animation quality, ensuring only motion that meets rigorous craft standards passes review.

## Purpose of the Review-Animations Skill

The `review-animations` skill has a **narrow, well-defined scope**: it reviews animation and motion code exclusively. According to [[`SKILL.md`](https://github.com/emilkowalski/skills/blob/main/SKILL.md)](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/SKILL.md#L9), the skill **does not** write new features, fix unrelated bugs, or review non-motion code.

If prompted with a generic code review request, the skill **declines and redirects** the user toward a general review skill. This boundary enforcement prevents scope creep and maintains the agent's specialized focus.

### What the Skill Evaluates

- CSS transitions and keyframe animations
- JavaScript-driven motion (GSAP, Framer Motion, etc.)
- Gesture physics and spring configurations
- Frame budgets and performance characteristics

## The "Feels Right" Bias

The [`review-animations` skill carries an explicit bias](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/SKILL.md#L13): **toward motion that feels right**. This is not a vague preference but a concrete filter with specific criteria.

Animations are expected to be:

- **Smooth** — no jank, stutter, or frame drops
- **Correctly originated** — transitions should start from logical trigger points
- **Appropriately timed** — durations and easing match user expectations
- **Frame-budget compliant** — performance stays within 60fps constraints

Merely "working" code is insufficient. Sluggish timing, mistimed triggers, or frame drops are treated as **regressions**, not acceptable trade-offs.

### Default Stance: Flag, Don't Approve

The `review-animations` skill's default posture is **to flag** potential issues. Approval must be earned through demonstrated craft. This creates asymmetric scrutiny: the burden of proof lies with the code being reviewed.

## How to Invoke the Review-Animations Skill

The skill accepts inputs through YAML, CLI-style calls, or JSON payloads. Below are practical examples derived from the repository's workflow conventions.

### YAML Invocation

```yaml
skill: review-animations
inputs:
  diff: |
    @@ -12,7 +12,7 @@
    - transition: opacity 0.3s ease-out;
    + transition: opacity 0.1s linear;

```

In this example, the skill would likely flag the change: a 100ms linear opacity transition often feels abrupt compared to a 300ms ease-out.

### CLI-Style Call

```bash
instagit run review-animations \
  --diff "$(git diff HEAD~1 HEAD -- path/to/component.css)"

```

### JSON Payload

```json
{
  "skill": "review-animations",
  "request": {
    "type": "diff",
    "content": "…the git diff shown above…"
  }
}

```

Each invocation returns a review result that either **flags** motion quality issues or grants **approval** when the strict craft bar is satisfied.

## Key Source Files

Understanding the `review-animations` skill requires familiarity with two files in the repository:

| File | Role |
|------|------|
| [[`skills/review-animations/SKILL.md`](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/SKILL.md)](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/SKILL.md) | Defines purpose (line 9) and bias statement (line 13) |
| [[`skills/review-animations/STANDARDS.md`](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/STANDARDS.md)](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/STANDARDS.md) | Optional detailed criteria for review enforcement |

The [`SKILL.md`](https://github.com/emilkowalski/skills/blob/main/SKILL.md) file contains the canonical definition: lines 3, 9, and 13 establish the skill's identity, scope boundary, and evaluative bias respectively.

## Summary

- **`review-animations`** is a **specialized review agent**, not a general-purpose tool
- Its **purpose** is strictly limited to evaluating animation and motion code
- Its **bias** demands motion that "feels right" — smooth, well-timed, performant
- It **defaults to flagging** and only approves when craft standards are met
- It **declines out-of-scope requests** and redirects to appropriate skills

## Frequently Asked Questions

### What happens if I ask review-animations to review non-animation code?

The skill declines and points you toward a general review skill. Its scope is strictly limited to motion code per [[`SKILL.md`](https://github.com/emilkowalski/skills/blob/main/SKILL.md) line 9](https://github.com/emilkowalski/skills/blob/main/skills/review-animations/SKILL.md#L9).

### Does review-animations ever write or fix code?

No. The skill is **review-only**. It evaluates existing code against standards but does not generate new features or apply fixes. This separation of concerns keeps the agent's role unambiguous.

### How strict is the "feels right" standard?

Very strict. The bias treats functional-but-kludgy animations as regressions. Code that "works" but feels sluggish, mistimed, or drops frames will be flagged. Approval requires demonstrated craft in timing, easing, and performance.

### Can I override the default flag stance?

The skill's architecture does not expose a "lenient mode." The asymmetric default — flag unless proven worthy — is intentional. To gain approval, revise the animation to meet the criteria in [`STANDARDS.md`](https://github.com/emilkowalski/skills/blob/main/STANDARDS.md) or justify why the flagged behavior is actually correct.