Files
digitalsamba__claude-code-v…/.github/workflows/sync-remotion-skills.yml
Conal Mullan ebf55f2698 FIX: point Remotion skills sync at upstream's new skills/remotion-best-practices layout (#56)
* FIX: point Remotion skills sync at upstream's new skills/remotion-best-practices layout

The weekly sync workflow has failed every run since 2026-07-13 because
remotion-dev/skills split its single skills/remotion directory into one
skill per topic. remotion-best-practices is the router skill that embeds
every other skill as a REFERENCE.md sub-directory, so syncing just that
directory yields the complete, self-contained knowledge set with a single
SKILL.md. The workflow now fails loudly (with a directory listing) if the
upstream layout moves again, and carries the upstream skill version in
the PR title. Docs and registry updated to match.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019s6SvNiz9a8XpD8r2cQTiq

* Sync official Remotion skills (upstream v4.0.518, 7a3d0ca) — new per-topic layout

First sync from skills/remotion-best-practices. Adds maps, captions,
render, saas, studio, docs, upgrade and interactivity sub-skills; markup
guidance moves from rules/ to remotion-markup/. Upstream still teaches
@remotion/media — the toolkit deliberately stays on <OffthreadVideo>
(see CLAUDE.md Media section), which is unchanged from the prior sync.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019s6SvNiz9a8XpD8r2cQTiq

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-26 22:29:10 +01:00

84 lines
3.7 KiB
YAML

name: Sync Remotion Official Skills
on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9am UTC
workflow_dispatch:
permissions:
contents: write
pull-requests: write
env:
# Upstream re-organised into one skill per topic in mid-2026. `remotion-best-practices`
# is the router skill that embeds every other skill as a REFERENCE.md sub-directory, so
# syncing just this directory gives us the complete, self-contained knowledge set.
UPSTREAM_SKILL_DIR: skills/remotion-best-practices
LOCAL_SKILL_DIR: .claude/skills/remotion-official
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout toolkit
uses: actions/checkout@v6
- name: Clone upstream skills
run: |
git clone --depth 1 https://github.com/remotion-dev/skills.git /tmp/remotion-skills
echo "UPSTREAM_SHA=$(git -C /tmp/remotion-skills rev-parse --short HEAD)" >> "$GITHUB_ENV"
echo "UPSTREAM_SHA_FULL=$(git -C /tmp/remotion-skills rev-parse HEAD)" >> "$GITHUB_ENV"
# Fail loudly (with a useful listing) if upstream moves things around again.
if [ ! -f "/tmp/remotion-skills/$UPSTREAM_SKILL_DIR/SKILL.md" ]; then
echo "::error::Expected $UPSTREAM_SKILL_DIR/SKILL.md in remotion-dev/skills but it is missing."
echo "::error::Upstream layout has changed — update UPSTREAM_SKILL_DIR in this workflow. Top-level skills now:"
ls -1 /tmp/remotion-skills/skills
exit 1
fi
VERSION=$(sed -n 's/^version:[[:space:]]*//p' "/tmp/remotion-skills/$UPSTREAM_SKILL_DIR/SKILL.md" | head -1)
echo "UPSTREAM_VERSION=${VERSION:-unknown}" >> "$GITHUB_ENV"
- name: Check for changes
id: diff
run: |
if diff -rq "$LOCAL_SKILL_DIR" "/tmp/remotion-skills/$UPSTREAM_SKILL_DIR" > /dev/null 2>&1; then
echo "changed=false" >> "$GITHUB_OUTPUT"
echo "No changes detected"
else
echo "changed=true" >> "$GITHUB_OUTPUT"
CHANGED_COUNT=$(diff -rq "$LOCAL_SKILL_DIR" "/tmp/remotion-skills/$UPSTREAM_SKILL_DIR" 2>/dev/null | wc -l | tr -d ' ')
echo "changed_count=$CHANGED_COUNT" >> "$GITHUB_OUTPUT"
echo "$CHANGED_COUNT file(s) changed"
fi
- name: Sync files
if: steps.diff.outputs.changed == 'true'
run: |
rm -rf "$LOCAL_SKILL_DIR"
cp -r "/tmp/remotion-skills/$UPSTREAM_SKILL_DIR" "$LOCAL_SKILL_DIR"
- name: Create pull request
if: steps.diff.outputs.changed == 'true'
uses: peter-evans/create-pull-request@v8
with:
branch: auto/sync-remotion-skills
delete-branch: true
title: "Sync official Remotion skills (v${{ env.UPSTREAM_VERSION }}, ${{ env.UPSTREAM_SHA }})"
body: |
## Automated sync from remotion-dev/skills
**Upstream commit:** [`${{ env.UPSTREAM_SHA }}`](https://github.com/remotion-dev/skills/commit/${{ env.UPSTREAM_SHA_FULL }})
**Upstream skill version:** ${{ env.UPSTREAM_VERSION }}
**Source directory:** `${{ env.UPSTREAM_SKILL_DIR }}`
**Files changed:** ${{ steps.diff.outputs.changed_count }}
### Review checklist
- [ ] Skim changed files for relevance
- [ ] Grep the diff for `OffthreadVideo` / `@remotion/media` — the toolkit deliberately stays on `<OffthreadVideo>` (see CLAUDE.md "Media")
- [ ] Verify no conflicts with toolkit-specific `remotion/SKILL.md`
- [ ] Spot-check that `SKILL.md` frontmatter is intact and it is still the only `SKILL.md` in the tree
commit-message: "Sync official Remotion skills (upstream v${{ env.UPSTREAM_VERSION }}, ${{ env.UPSTREAM_SHA }})"
labels: dependencies,automated