Skip to content
Content
Skill

/style-suggest

Visual style generator — turn a text description and/or reference image into a structured style entry for the prompt-library. Duplicate-detect then emit v2.15.0 schema (background, accents, mood, typography, composition_signature). Use when: 'make a new style', 'add a style

From plugin
mikefluff-skills
1944 skills2 commands1 hook
Install
$ npx -y skills add Mikefluff/skills --skill style-suggest --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/style-suggest

Context preview

The summary Claude sees to decide when to auto-load this skill.

Visual style generator — turn a text description and/or reference image into a structured style entry for the prompt-library. Duplicate-detect then emit v2.15.0 schema (background, accents, mood, typography, composition_signature). Use when: 'make a new style', 'add a style

SKILL.md

style-suggest.SKILL.md
name: style-suggest
description: "Visual style generator — turn a text description and/or reference image into a structured style entry for the prompt-library. Duplicate-detect then emit v2.15.0 schema (background, accents, mood, typography, composition_signature). Use when: 'make a new style', 'add a style based on this image', 'добавь стиль', 'предложи стиль'."

license: MIT
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Grep
  - Glob

<objective> Visual-style generator. Input: a text description, optionally a reference image. Output: a structured `<slug>.md` style file conforming to the v2.15.0 schema in `common/visual-prompt-library/styles/_schema.md` — ready to drop into the library and immediately usable by every visual-output skill (carousel-builder / cover-maker / quote-card-maker / meme-card-maker / banner-maker / logo-maker) via the shared chain.

This skill does NOT:

  • Add the new style file to disk without user confirmation (default behavior: print the proposed entry and ask)
  • Edit existing styles (use a manual Edit on the `<slug>.md` file for that)
  • Generate images using the new style (that's what the downstream visual skills do)
  • Replace user vocabulary with generic synonyms — the user's terms are preserved verbatim wherever they're tight enough to use directly

</objective>

ROLE

Read the user's description (and optional reference image) → scan the existing catalog (`common/visual-prompt-library/styles/_index.md` + each `<slug>.md` frontmatter) → decide DUPLICATE (similarity ≥ 0.72 to an existing style) or NEW → if NEW, draft a full v2.15.0 style entry with all 9 schema fields → present it to the user → on approval, write the `<slug>.md` file + add a row to `_index.md` + optionally add a row to `_auto-pick.md`.

PIPELINE

1. **Read the catalog** — load `common/visual-prompt-library/styles/_index.md` for the catalog summary, and `common/visual-prompt-library/styles/_schema.md` for the required schema fields. If the user provides a reference image, also include the catalog's existing style names + when_to_use in the LLM context so the duplicate-detection step can compare.

2. **Compose the LLM call** — load [`references/system-prompt.md`](references/system-prompt.md) as `system` and assemble a user message:

   User description: "<verbatim user text>"
   [If image attached:]
   Reference image: <base64-encoded data: URI OR a local path that the model can read>
   Existing styles catalog (slug → when_to_use):
     <one line per style — pulled from the catalog>
   Slugs already taken (cannot re-use): <comma-separated list>

   Analyze: does this match an existing style (similarity ≥ 0.72) — if so, return {action: "duplicate", matchId, similarity, reasoning}. Otherwise return {action: "new", suggestion: {...}} with the full v2.15.0 schema fields.

The LLM (subagent via Agent tool, multimodal if image attached) returns JSON.

3. **Validate the output**:

  • If `action == "duplicate"` — tell the user the existing style covers their request; suggest using `--style <slug>` directly. Optionally allow `--force-new` to override and create anyway.
  • If `action == "new"` — verify all 9 schema fields are present (id / slug / name / when_to_use / background / accents / elements / mood / accent_text_color / typography / composition_signature). Reject any with literal layout-label words (HEADLINE / BODY / etc.) or named-font references (Helvetica Neue 75 Bold) — re-prompt the LLM if found.

4. **Present the entry** — print the full proposed `<slug>.md` content (frontmatter + body) to stdout. Show the user:

  • The proposed file path: `common/visual-prompt-library/styles/<slug>.md`
  • The new row that will go into `_index.md`
  • Whether an `_auto-pick.md` row is suggested (only if the topic-signal mapping is clear)

5. **Save on confirmation** — when the user passes `--save` (or types yes to the prompt):

  • Write `common/visual-prompt-library/styles/<slug>.md` (refuse if file already exists; use `--force` to overwrite).
  • Append the new row to `_index.md` (alphabetical or thematic — preserve existing structure).
  • Optionally append a row to `_auto-pick.md` if the LLM suggested topic signals.
  • Echo the saved paths to stdout.

6. **Provide a usage hint** — print a one-liner showing how to invoke a downstream visual skill with the new style:

   ./scripts/run.py --style <slug>   # in any visual skill (carousel-builder / cover-maker / etc.)

MODES

Input

  • `style-suggest --describe "<text>"` — text-only description
  • `style-suggest --ref <image-path>` — reference image only
  • `style-suggest --describe "<text>" --ref <image-path>` — both (most accurate)
  • `--describe-file <path>` — multi-paragraph description from a file (when description is too long for shell arg)

Output control

  • `--save` — write the file + update `_index.md` without asking (default: ask first)
  • `--force` — overwrite existing `<slug>.md` (default: refuse if file exists)
  • `--force-new` — skip duplicate-detection, always create a new entry even if a similar style exists
  • `--slug <kebab>` — explicit slug (default: derived from `name` field)
  • `--print-only` — print the proposed entry, never save
  • `--add-to-auto-pick` — also append a row to `_auto-pick.md` when the LLM suggests topic signals (default: include in print, ask before appending)

Discovery

  • `--list` — print the existing catalog (proxies `cat common/visual-prompt-library/styles/_index.md`)
  • `--show <slug>` — print a specific existing style's entry (proxies `cat <slug>.md`)

Model

  • `--model anthropic|openai|gemini` — LLM provider for the analysis step. Default: `anthropic` (best at structured JSON output + multimodal image analysis when ref is provided).

REFERENCES (load on demand)

| File | When to load | |---|---| | [references/system-prompt.md](references/system-prompt.md) | Step 2 — the SYSTEM_PROMPT for the LLM analysis step (verbatim) + user-message shape |

Read more
Ships withmikefluff-skills

44 skills for Claude Code that make content — and refuse to let it read like a machine made it. Prose editing that strips the tells. Prompt engineering for 40+ image, video and music models, with optional one-command execution against the real APIs.

Get the whole plugin
Stats
19
Stars
1
Forks
Maintained
Maintenance
Python
Language
MIT
License
1mo ago
Last commit
3mo ago
Created

Repo: Mikefluff/skills

Other skills on mikefluff-skills.