Skip to content

fix(skills): make the carve CLI work against the published core, and … #138

fix(skills): make the carve CLI work against the published core, and …

fix(skills): make the carve CLI work against the published core, and … #138

name: Sync skills to ClawHub
# Publishes changed skills under skills/ to ClawHub (https://clawhub.ai/heygen-com)
# whenever they land on main. `clawhub sync` only publishes skills whose content
# changed vs. the registry, auto-bumping the patch version — unchanged skills are
# a no-op, so this is safe to run on every push.
on:
push:
branches: [main]
paths:
- "skills/**"
workflow_dispatch:
inputs:
dry_run:
description: "Preview what would publish without publishing"
type: boolean
default: false
# Serialize runs so two pushes don't race on the same skill version.
concurrency:
group: clawhub-sync
cancel-in-progress: false
permissions:
contents: read
jobs:
sync:
name: Publish changed skills
runs-on: ubuntu-latest
timeout-minutes: 10
env:
CLAWHUB_DISABLE_TELEMETRY: "1"
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
- name: Install ClawHub CLI
run: npm i -g clawhub@0.23.1
- name: Authenticate
env:
CLAWHUB_TOKEN: ${{ secrets.CLAWHUB_TOKEN }}
run: clawhub login --token "$CLAWHUB_TOKEN" --no-input --label "hyperframes CI"
- name: Sync skills
env:
DRY_RUN: ${{ github.event.inputs.dry_run }}
run: |
FLAGS=(
--all
--owner heygen-com
--bump patch
--changelog "Synced from ${GITHUB_SHA:0:7} (${GITHUB_REF_NAME})"
--source-repo "$GITHUB_REPOSITORY"
--source-commit "$GITHUB_SHA"
--source-ref "$GITHUB_REF"
)
if [ "$DRY_RUN" = "true" ]; then
FLAGS+=(--dry-run)
fi
clawhub sync "${FLAGS[@]}"