본문으로 건너뛰기
cccskills
무료GitHub에 공개

nullable-new-params

Review newly added optional inputs in Remotion changes and convert internal ones into required values that accept null. Update callers and absence checks while preserving compatibility for public APIs that must remain optional.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

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.

설치 방법 보기

이럴 때 유용합니다

  • Review newly added optional parameters in a PR
  • Make internal React props explicitly accept null
  • Preserve public API compatibility during refactoring
  • Fix checks that mistake zero or false for missing values

포함된 파일(3)

  • SKILL.md4.0 KB
  • agents/openai.yaml242 B
  • scripts/find-new-optional-params.ts2.9 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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:
bun .agents/skills/nullable-new-params/scripts/find-new-optional-params.ts

Useful variants:

bun .agents/skills/nullable-new-params/scripts/find-new-optional-params.ts origin/main...HEAD
bun .agents/skills/nullable-new-params/scripts/find-new-optional-params.ts --cached
  1. 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.
  2. For internal candidates, refactor the type from optional to required nullable:

type Before = {
  readonly frame?: number;
};

type After = {
  readonly frame: number | null;
};

For function parameters:

const before = (frame?: number) => {};
const after = (frame: number | null) => {};
  1. 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.
  2. Update implementation logic:

    • Replace truthy checks when 0, '', or false are valid values.
    • Prefer value !== null over value for nullable numbers/strings/booleans.
    • When updating existing tests or fixtures, keep them explicit; do not make large fixtures Partial<T> only to dodge the new field.
  3. For public candidates, preserve backwards compatibility:

    • Keep the new field optional in the public type.
    • Resolve a concrete internal value at the boundary, usually with const internal = publicValue ?? null.
    • Keep internal downstream types required nullable.
  4. Verify:

    • Run the scanner again until only intentional public API exceptions remain.
    • Run focused tests or package builds for touched packages, for example bunx turbo run make --filter='<package-name>'.
    • If docs changed, follow the writing-docs skill.

Review checklist

  • No new internal ?: member or param?: parameter remains.
  • Every internal caller passes either a real value or null.
  • Public APIs remain backwards-compatible.
  • Nullable checks do not treat valid falsy values as absent.
  • Verify an explicit null path with existing checks or manual verification when behavior depends on absence.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

add-bug

무료

Add a reported Remotion bug to the bugs API with its affected versions, a short title, and upgrade guidance. Follow the existing entry format and place the new record first so recent bugs appear at the top.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Adding a reported bug to the Remotion bugs API
  • Recording which versions a bug affects
  • Including upgrade guidance in a bug description
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

Add a Remotion command-line or configuration option, or convert a hardcoded flag into a shared option definition. Connect parsing, configuration setters, help entries, and generated documentation so the option is consistently available and documented.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a new Remotion command-line flag
  • Convert a hardcoded flag into a shared option
  • Connect an option to Config setters
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

Add a new effect to @remotion/effects, including its implementation, package entry points, documentation, interactive demo, and preview images. Follow the package conventions and verify the changes with tests, formatting checks, and builds.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Implementing a new effect for @remotion/effects
  • Registering effect imports and parameter types
  • Creating documentation and an interactive effect demo
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

Add a person to the Remotion experts page by placing their portrait, entering their profile and contact links, and generating an expert card image. The instructions specify file locations, profile fields, and how to verify card generation.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a new person to the Remotion experts page
  • Register a portrait, specialties, and contact links
  • Generate an expert card image
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

Create a new @remotion package within the Remotion monorepo, a repository containing multiple packages. Set up its files, register it across the project, and prepare documentation, usage examples, and build configuration.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Creating a new @remotion package
  • Registering a package across the monorepo
  • Adding documentation and usage examples
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

add-sfx

무료

Add a new sound effect to @remotion/sfx, from registering the audio file to exporting its URL and documenting its use. The workflow covers playback examples, attribution, navigation entries, waveform generation, and the package build.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Add a sound effect to @remotion/sfx
  • Create documentation with playback and usage examples
  • Update sound effect navigation and waveform data
remotion-dev/remotion6.5만2026년 10월 19일 업데이트

remotion-dev의 스킬 모두 보기

이 스킬의 문제 신고