Skip to content

v2.4.0 — skills-styles: local style library + upstream PR helper

Choose a tag to compare

@Mikefluff Mikefluff released this 21 May 19:18
· 101 commits to main since this release

Adds a meta-skill to manage the local style library — CRUD on user overrides at ~/.claude/style-library/<modality>/<id>.md, plus a submit subcommand that builds a self-contained upstream-PR package.

New skill: skills-styles

Subcommand What
list [modality] Show styles with status (bundled / user-only / override)
show <modality> <id> Print the resolved file (user wins)
path [modality] [id] Print resolved path(s)
add <modality> <id> Create user-override from bundled template
add <modality> <id> --from <existing> Copy a bundled style as starting point
edit <modality> <id> Open user-override in $EDITOR
remove <modality> <id> --force Delete user-override (bundled untouched)
validate <modality> <id> Frontmatter + body schema check
diff <modality> <id> Diff user-override vs bundled
submit <modality> <id> Build ./style-submission-<ts>-<modality>-<id>/ for upstream PR

Validation enforces per-modality schema:

  • carousel: id, modality, display, mood, tags, text_friendly, photoreal + 11 body fields incl. style anchors (carousel + text-in-image mode)
  • video: + pacing (enum slow/medium/snap/kinetic) + dialogue_friendly + 14 body fields incl. shot anchor + 8-12 action vocabulary items
  • music: + bpm_range (regex ^\\d{2,3}-\\d{2,3}$) + energy (enum calm/warm/driving/aggressive) + two_box + vocal_friendly + 15 body fields incl. Suno Style box + meta-tag stacks

Anchor length check (≥40 chars), id must be kebab-case + match filename stem, modality must match directory.

submit workflow

Validates first; refuses invalid styles without --force. Builds a self-contained package:

style-submission-<ts>-<modality>-<id>/
├── common/style-library/<modality>/<id>.md   # the file at exact repo path
├── PR-DESCRIPTION.md                          # fillable PR body + reviewer checklist
└── README.md                                  # step-by-step manual PR instructions

No auto-gh pr create in v1 — fork detection + multi-step gh interaction is brittle. The skill prints exact next steps; you do the git ops + gh pr create manually (~2 minutes).

Per-modality templates

New bundled common/style-library/<modality>/_template.md (carousel + video + music) with all required frontmatter + body fields as <placeholders>, plus an inline <!-- conventions --> block reminding the user of validator rules and reviewer expectations. add copies the template and replaces <ID> + <MODALITY>.

Programmatic API

Direct Python use (skips the CLI):

from common.runners import styles
issues = styles.validate_style(styles.load_style(\"my-id\", \"carousel\"))
path = styles.copy_template(\"carousel\", \"my-new-style\")
status = styles.resolution_status(\"kinfolk-minimal\", \"carousel\")  # → bundled / user-only / override / missing

Counter

23 skills total (was 22). New skill is layer=meta, sibling to skills-update and skills-keys.

No breaking changes — additive. carousel-builder / reel-builder / music-prompt consume the style library exactly the same way; bundled styles unchanged.

Install / update

curl -fsSL https://raw.githubusercontent.com/Mikefluff/skills/main/install.sh | bash -s -- --update

Or /skills-update in Claude Code.

Example session

~ /skills-styles add carousel retro-soviet-poster
  ✓ Created carousel/retro-soviet-poster.md  (from template)
    Path: /Users/.../.claude/style-library/carousel/retro-soviet-poster.md
    Next: skills-styles edit carousel retro-soviet-poster
    Then: skills-styles validate carousel retro-soviet-poster

~ (edit the file — fill palette, typography, anchor text, etc)

~ /skills-styles validate carousel retro-soviet-poster
  ✓ valid — passes all schema checks

~ /skills-styles submit carousel retro-soviet-poster
  ✓ Submission package ready: ./style-submission-20260521-204512-carousel-retro-soviet-poster
  Next steps (manual, ~2 min):
    1. Fork https://github.com/Mikefluff/skills
    2. cp ... into <fork>/common/style-library/carousel/
    3-7. git checkout/add/commit/push + gh pr create