Files
claude-skills-reference/.github/workflows/sync-codex-skills.yml
Alireza Rezvani 2738f252b2 test: Verify Codex support implementation (#45)
* feat: Add OpenAI Codex support without restructuring (#41)

Add Codex compatibility through a .codex/skills/ symlink layer that
preserves the existing domain-based folder structure while enabling
Codex discovery.

Changes:
- Add .codex/skills/ directory with 43 symlinks to actual skill folders
- Add .codex/skills-index.json manifest for tooling
- Add scripts/sync-codex-skills.py to generate/update symlinks
- Add scripts/codex-install.sh for Unix installation
- Add scripts/codex-install.bat for Windows installation
- Add .github/workflows/sync-codex-skills.yml for CI automation
- Update INSTALLATION.md with Codex installation section
- Update README.md with Codex in supported agents

This enables Codex users to install skills via:
- npx ai-agent-skills install alirezarezvani/claude-skills --agent codex
- ./scripts/codex-install.sh

Zero impact on existing Claude Code plugin infrastructure.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* docs: Improve Codex installation documentation visibility

- Add Codex to Table of Contents in INSTALLATION.md
- Add dedicated Quick Start section for Codex in INSTALLATION.md
- Add "How to Use with OpenAI Codex" section in README.md
- Add Codex as Method 2 in Quick Install section
- Update Table of Contents to include Codex section

Makes Codex installation instructions more discoverable for users.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* chore: Update .gitignore to prevent binary and archive commits

- Add global __pycache__/ pattern
- Add *.py[cod] for Python compiled files
- Add *.zip, *.tar.gz, *.rar for archives
- Consolidate .env patterns
- Remove redundant entries

Prevents accidental commits of binary files and Python cache.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: Resolve YAML lint errors in sync-codex-skills.yml

- Add document start marker (---)
- Replace Python heredoc with single-line command to avoid YAML parser confusion

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 09:14:59 +01:00

83 lines
2.4 KiB
YAML

---
name: Sync Codex Skills Symlinks
on:
push:
paths:
- '**/SKILL.md'
- 'scripts/sync-codex-skills.py'
branches:
- main
- dev
workflow_dispatch:
inputs:
dry_run:
description: 'Dry run (no changes)'
required: false
default: false
type: boolean
jobs:
sync:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Sync Codex skills symlinks
env:
DRY_RUN: ${{ github.event.inputs.dry_run }}
run: |
if [ "$DRY_RUN" == "true" ]; then
python scripts/sync-codex-skills.py --verbose --dry-run
else
python scripts/sync-codex-skills.py --verbose --validate
fi
- name: Check for changes
id: check_changes
run: |
if git diff --quiet .codex/; then
echo "has_changes=false" >> $GITHUB_OUTPUT
else
echo "has_changes=true" >> $GITHUB_OUTPUT
fi
- name: Commit changes
if: steps.check_changes.outputs.has_changes == 'true' && github.event.inputs.dry_run != 'true'
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: "chore: sync codex skills symlinks [automated]"
file_pattern: ".codex/*"
commit_user_name: "github-actions[bot]"
commit_user_email: "github-actions[bot]@users.noreply.github.com"
- name: Summary
run: |
echo "## Codex Skills Sync Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ -f ".codex/skills-index.json" ]; then
TOTAL=$(python3 -c "import json; print(json.load(open('.codex/skills-index.json'))['total_skills'])")
echo "**Total Skills:** $TOTAL" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Categories" >> $GITHUB_STEP_SUMMARY
python3 -c "
import json
data = json.load(open('.codex/skills-index.json'))
for cat, info in data['categories'].items():
print(f'- **{cat}**: {info[\"count\"]} skills')
" >> $GITHUB_STEP_SUMMARY
else
echo "No skills index found." >> $GITHUB_STEP_SUMMARY
fi