Guidance for AI agents (and humans) working in this repository.
main(default) — the canonical home of the catalog and the installable plugin for Claude / Codex / Gemini. Holdspatterns/*.md(the catalog source),categories.yml, the generatorscripts/build.mjs, the.claude-plugin/manifests, andskills/skill-patterns/.gh-pages— the website that publishes skillpatterns.ai (a Jekyll site). Its catalog inputs (_patterns/,_data/categories.yml,llms.txt,patterns.json) are generated frommainand synced in by CI. Do not hand-edit them there.
- Edit (or add) one file in
patterns/onmain. Frontmatter:title,slug(must match the filename),icon(FontAwesome Free),category(a key incategories.yml),summary,adds(list),related(list of{slug, note}, optional),prompt(block scalar). - Run
npm run build— regenerates the plugin snapshot atskills/skill-patterns/references/patterns.md(andbuild/llms.txt,build/patterns.json). - Open one PR against
main. TheSync catalogworkflow'ssnapshot-checkjob fails the PR if you skipped step 2. On merge, thesync-to-pagesjob regenerates and pushes_patterns/,_data/categories.yml,llms.txt, andpatterns.jsontogh-pages, and the site rebuilds.
No Jekyll, no second branch to edit.
All produced by scripts/build.mjs — edit patterns/ + categories.yml and rebuild:
- on
main:skills/skill-patterns/references/patterns.md - on
gh-pages:_patterns/*.md,_data/categories.yml,llms.txt,patterns.json
- Patterns sort alphabetically by title within their category; the pattern
orderfield is unused. Category order comes fromorderincategories.yml. - The build validates input and fails with a named error on: unknown
category; duplicate or filename-mismatchedslug;addsthat isn't a list; arelatedentry missingslug/noteor pointing at a nonexistent pattern; a category missing a numericorder.
GitHub Pages builds from the gh-pages branch (CNAME → skillpatterns.ai lives there). main is the default branch, the catalog source, and the plugin source; the Sync catalog workflow (.github/workflows/sync-catalog.yml) keeps gh-pages in sync. Actions minutes are free (public repo).