Add multi-platform export generator (single source of truth)

Make the library multi-platform without duplicating content. Each
skills/<name>/SKILL.md body remains the single source of truth; a new
generator renders platform-ready exports from it.

- scripts/build-exports.mjs — dependency-free Node generator with a PLATFORMS
  registry so new platforms (Gemini, Cursor, …) are a few lines. Ships ChatGPT
  exports at exports/chatgpt/<bundle>/<skill>/SYSTEM_PROMPT.md (172 skills),
  plus generated index READMEs. Supports --platform and --check.
- exports/ — generated ChatGPT system prompts, ready to paste into a Custom GPT.
- .github/workflows/check-generated.yml — fails a PR if exports or
  web/skills.json drift from the source skills.
- README "Works With" now documents the ready-to-use exports and regen command.
- CHANGELOG + SKILL-AUTHORING-STANDARD note the generated artifacts.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016JWn5jRD5tcEFKrubjQ6Px
This commit is contained in:
Claude
2026-06-17 08:01:20 +00:00
parent 760f979365
commit 572b8acf8c
179 changed files with 29887 additions and 1 deletions
+43
View File
@@ -0,0 +1,43 @@
name: Check generated artifacts
# Skills are the single source of truth. The web index (web/skills.json) and the
# multi-platform exports (exports/) are generated from skills/*/SKILL.md. This
# job fails if either is out of date, so a skill edit can't ship without its
# regenerated artifacts.
on:
pull_request:
paths:
- 'skills/**'
- 'plugins/**'
- 'web/build-skills.mjs'
- 'scripts/build-exports.mjs'
- 'exports/**'
- 'web/skills.json'
push:
branches: [main]
paths:
- 'skills/**'
- 'scripts/build-exports.mjs'
- 'exports/**'
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Verify multi-platform exports are up to date
run: node scripts/build-exports.mjs --check
- name: Verify web/skills.json is up to date
run: |
node web/build-skills.mjs
git diff --exit-code -- web/skills.json \
|| (echo "::error::web/skills.json is stale — run 'node web/build-skills.mjs' and commit." && exit 1)