Skip to content

feat(codex-imagegen): add skill driving codex CLI to generate images #10

feat(codex-imagegen): add skill driving codex CLI to generate images

feat(codex-imagegen): add skill driving codex CLI to generate images #10

name: Release Skills
on:
push:
branches: [main]
paths:
- "claude.symlink/skills/**"
workflow_dispatch:
permissions:
contents: write
jobs:
release-skills:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Auto-tag
id: tag
run: |
date_tag="skill-$(date +%Y%m%d-%H%M%S)"
git tag "$date_tag"
git push origin "$date_tag"
echo "tag=$date_tag" >> "$GITHUB_OUTPUT"
- name: Package skills
run: |
mkdir -p dist
# Zip all skills in parallel
for dir in claude.symlink/skills/*/; do
[ -f "$dir/SKILL.md" ] || continue
name=$(basename "$dir")
(cd "$dir" && zip -r -q "../../../dist/${name}.zip" .) &
done
wait
# Rename .zip to .skill
for f in dist/*.zip; do
mv "$f" "${f%.zip}.skill"
done
# Also bundle everything into one all-skills.zip
(cd dist && zip -q ../dist/all-skills.zip *.skill) || true
echo "Packaged $(ls dist/*.skill | wc -l) skills"
- name: Generate release body
run: |
count=$(ls dist/*.skill | grep -cv all-skills || true)
cat > dist/BODY.md <<EOF
## Skills Catalog (${count} skills)
> Download individual `.skill` files or grab **all-skills.zip** for the full bundle.
| Skill | Description |
|-------|-------------|
EOF
for f in dist/*.skill; do
skill=$(basename "$f" .skill)
[ "$skill" = "all-skills" ] && continue
desc=$(grep -m1 '^description:' "claude.symlink/skills/${skill}/SKILL.md" | sed 's/^description: *//')
echo "| ${skill} | ${desc:-—} |" >> dist/BODY.md
done
sed -i 's/^ //' dist/BODY.md
- name: Create release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.tag.outputs.tag }}
name: "Skills ${{ steps.tag.outputs.tag }}"
files: |
dist/*.skill
dist/all-skills.zip
body_path: dist/BODY.md