Skip to content
cccskills
FreePublished on GitHub

update-from-upstream-main

Bring a Remotion branch up to date with the official main branch while preserving local changes and published history. Handle temporary change storage, merges, conflicts, validation, and a normal push when requested.

OriginalShow the original description

Update the current Remotion branch with the latest canonical main branch. Use when asked to update or sync from upstream main, merge the latest main into a feature branch, fast-forward local main, or bring a pull request branch up to date without rewriting published history.

See how to install

Good for

  • Merge the latest main into a feature branch
  • Fast-forward a local main branch
  • Update a pull request branch while preserving published history
  • Preserve and restore uncommitted changes during an update

Files included (2)

  • SKILL.md3.9 KB
  • agents/openai.yaml229 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Update From Upstream Main

Update from the canonical remotion-dev/remotion repository while preserving local work and published branch history.

Workflow

  1. Inspect the repository before changing it:

    git status --short --branch
    git branch --show-current
    git remote -v
    

    Stop and report the state if an operation such as a merge or rebase is already in progress. A detached checkout is supported and must not prevent the update.

    If the working tree contains staged, unstaged, or untracked changes, stash them automatically and continue:

    git stash push --include-untracked --message "update-from-upstream-main: preserve local changes"
    git rev-parse stash@{0}
    

    Record the created stash's commit ID so the same entry can be restored later. Do not treat uncommitted changes as a reason to stop. Do not include ignored files unless the user explicitly asks.

  2. Select the canonical remote whose URL points to remotion-dev/remotion. Prefer upstream when it exists; otherwise use origin. If neither remote points to the canonical repository, stop and ask before adding or changing a remote.

  3. Fetch the latest main branch without changing the working tree:

    git fetch <canonical-remote> main
    
  4. Update the checked-out branch:

    • On main, require a fast-forward:

      git merge --ff-only <canonical-remote>/main
      
    • On a feature branch or detached checkout, merge main without opening an editor:

      git merge --no-edit <canonical-remote>/main
      

    Do not rebase, reset, or force-push. A merge keeps published branch history intact and can be pushed normally; on a detached checkout, report that the resulting commit is still detached.

  5. If the merge conflicts, resolve each file deliberately and preserve both the feature intent and upstream changes. Do not accept ours or theirs across the entire merge. Check every resolved file for leftover conflict markers before staging:

    rg -n '^(<{7}|={7}|>{7})' -- <resolved-files>
    

    Inspect and remove any matches that are conflict markers. Then stage only the resolved files and finish the merge with:

    git commit --no-edit
    
  6. If step 1 created a stash, reapply it after the upstream update is complete:

    git stash apply --index <recorded-stash-commit>
    

    Reapply the stash before reporting success or before stopping after a fetch or merge failure, provided no Git operation is still in progress. If applying the stash causes conflicts, resolve them deliberately without rerunning git stash apply. The stash entry remains as a recovery copy. After confirming that all stashed changes, including untracked files and their staged state, were restored, find the entry with the recorded commit ID in git stash list --format='%gd %H' and drop only that entry. Never pop or drop a pre-existing stash.

  7. Validate the result. Always run git diff --check and git diff --cached --check. If conflicts were resolved or the combined changes could affect behavior, run the relevant package tests. For broad changes, run:

    bun run build
    bun run stylecheck
    
  8. Push only when the user asked to update a published branch or pull request. Use a normal push and stop if it is rejected:

    git push <canonical-remote> HEAD
    

    Never force-push.

  9. Report the previous and new commit, whether the checkout is detached, whether the update was a fast-forward or merge, whether local changes were stashed and successfully reapplied, any conflicts resolved, validation performed, and whether the branch was pushed.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

add-bug

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

add-cli-option

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

add-effect

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

add-expert

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

add-new-package

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

add-sfx

FreeSummary

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/remotion65.1KUpdated Oct 18, 2026

See all skills by remotion-dev

Report a problem with this skill