Agent skill · software engineering · remotion-dev
nullable-new-params
Fix newly added optional parameters, optional React props, and optional type/interface members in Remotion monorepo diffs by converting internal APIs to required nullable values and updating call sites. Use when a PR, review, or user asks to forbid new `foo?: T` / `param?: T` additions except for exported or documented public APIs where requiring the value would be breaking.
Why this skill is useful
Adds a specific workflow and scripts for enforcing nullable parameter standards in Remotion's internal APIs, which the AI wouldn't reliably generate on its own.
What it needs
Requires bun installed locally. About 2k tokens when loaded. Last updated 2026-08-06. 55,698 stars on the source repository.
What this skill does
Nullable new params Use this skill when a change added a new parameter or type member as optional. In internal Remotion code, new inputs must be required and nullable so every caller makes an explicit choice. Rule Internal contracts: write name: T null, not name?: T. Call sites must pass null explicitly when no value exists. Implementation checks should prefer value === null / value !== null when null is the absence sentinel. Do not use undefined as the absence sentinel for new internal APIs unless the surrounding local contract already standardizes on undefined. The anti-pattern includes redundant shapes such as frozenFrame?: number null; make it frozenFrame: number null. Public APIs are the exception. If the changed signature, props type, or options object is exported from a package public entrypoint or documented in packages/docs/docs, making the new field/argument required is a breaking change. Keep it optional or add a backwards-compatible overload/options path, then document/default it as appropriate. Workflow 1. Inspect the diff for newly added optional members or parameters: Useful variants: 2. For each candidate, classify whether it is public: Public: exported from a package entrypoint, included in package exports, or documented in packages/docs/docs. Internal: local helpers, internal component props, cross-file monorepo helpers, test utilities, internal context data, and types not exposed through package entrypoints. If unsure, grep package entrypoints and docs before changing API shape. 3. For internal candidates, refactor the type from optional to required nullable: For function parameters: 4. Update every caller/object literal to pass the value explicitly: Use field: null when absent. Preserve existing values with field: maybeValue ?? null only when undefined can still enter from surrounding code. Avoid hiding the required choice behind defaults in destructuring. 5. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills remotion-dev/nullable-new-params