TRY IT HANDS-ON functional ~ tested 2026-08-19
// sandboxed in macOS (host) Β· aarch64 Β·install log Β· why not fully functional: The skill's deliverable is generated images, and the review environment has no image-generation runtime, so no candidate logos could be produced or judged. Install paths, the structural contract, registry-blob currency, and README/spec self-consistency were verified instead. Β·functional log

IP as Logo

by s1dashu · https://github.com/s1dashu/ip-as-logo-skill · MIT · vnone (no tags or releases) · updated 2026-08-19

A 16 KB prompt contract out-engineers most logo briefs, but the repo is 21 hours old and its README already contradicts its spec on three claims.

4 / 5
quality 4/5
documentation 3/5
setup 5/5
value 4/5
ecosystem fit 4/5
// bottom line

The SKILL.md is one of the tightest single-file prompt contracts GearScope has reviewed: a 6-to-10-shape complexity budget, a three-semantic-color law, negative-prompt routing by model capability, and twelve rejection rules, and it installs byte-identically through the skills CLI on both registry paths. The repo around it is 21 hours old, its README's headline enforcement list contradicts the current spec on three points, and the actual deliverable (generated logos) could not be tested without an image-generation runtime. Install it if your agent can generate images and treat the README's claims as history rather than spec.

Don't install your next skill blind. Every week: the shortlist of skills worth installing β€” and the ones to skip β€” from 100+ hands-on tests.
install via skills CLI (interactive)
$npx skills@latest add s1dashu/ip-as-logo-skill
or non-interactive, Hermes target
$npx skills@latest add s1dashu/ip-as-logo-skill --agent hermes-agent --skill ip-as-logo --copy --yes

lands in ./.hermes/skills/, byte-identical to repo HEAD

install if

  • Indie developers and small teams who need an app icon or brand mascot and already use an image-gen-capable agent. The three-direction/six-candidate workflow plus the twelve rejection rules replaces an ad-hoc prompt you would rewrite from scratch each time.
  • Anyone curating a personal design-skills library for their agent. It is one self-contained 16 KB file with zero dependencies, it installs anywhere the skills CLI reaches (verified on the Hermes path), and it composes with audit-style skills.
  • Prompt engineers and skill authors. The model-capability routing section (inline Constraints for instruction-followers versus a dedicated negative_prompt payload for legacy adapters) is a pattern worth studying and copying.

What It Does

ip-as-logo is a doc-only Agent Skill by s1dashu: one 118-line, 16,205-byte SKILL.md with no scripts, no dependencies, and one showcase image. When an image-generation-capable agent loads it, the skill turns a loose request like "make me a mascot logo" into a disciplined design workflow: inspect the product's own context (README, docs, design tokens) before asking questions, propose three one-line design directions, get approval, then brief the configured image model to generate six independent labeled square candidates (A1 through C2) under hard constraints. The constraints are the product: a 6-to-10-shape complexity budget, at most one species-defining feature, exactly three semantic colors (two IP base colors plus one background), a 75-to-85-percent corner crop, readability at 32 by 32 pixels, and a twelve-rule rejection list for evaluating what comes back. The intended user is a developer or indie maker who needs an app icon or brand mascot and has an agent with image generation (the README names Codex with ImageGen, Coze, Doubao, YouMind, Manus, Gemini Apps, and Replit Agent). The repo launched on 2026-08-18 and reached 1,591 stars and 67 forks within 21 hours, which the GearScope pipeline recorded as the fastest legitimate launch of the quarter from the CN design-skill cluster.

The Good

The constraint system is real design expertise encoded as checkable rules. The complexity budget is quantified (roughly 6 to 10 basic shapes, at most one species-defining feature, a face limited to two eyes and one mouth), the composition is quantified (fill 75 to 85 percent of the canvas, emerge from a lower corner, keep both members of paired features like ears or horns visible), and the success gate is quantified (the mark must stay readable at 32 by 32, with a readable black silhouette). The three-semantic-color law is stated three times in complementary forms: as a workflow default, as a color-section rule, and as a rejection trigger. These are rules a reviewer or a second agent pass can actually test against an output, which is more than most prompt-contract skills manage.

The model-capability routing is something most vendor packs skip. The prompt-skeleton section distinguishes modern instruction-following image models (it names GPT Image 2, Nano Banana Pro, and Seedream 5.0 Pro), which get every exclusion inline as a natural-language Constraints line, from older runtimes that expose a dedicated negative_prompt parameter, which get a separate minimal exclusion payload instead, with explicit instructions not to duplicate exclusions across both channels. The skill also orders the agent to determine the available model from runtime metadata rather than guessing, and to record the detected constraint-delivery mode in the generation report. This section only comes from someone who has run the same brief against several generators and watched them fail differently.

The anti-fabrication discipline is explicit. The workflow orders the agent to determine the available image-generation path before promising output, to ask the user to provide or enable a generator if none exists, and to not fabricate generated results. It bans silent repair: "never hide a failed constraint with silent post-processing", and it requires preserving and reporting transparent-background results (an allowed generator variation) instead of quietly flattening them, plus reporting remaining deviations per candidate. A skill that plans for the generator disobeying it, and forces the agent to say so, is rarer than it should be.

Install integrity verified end to end on both registry paths. The skills.sh registry blob install and the --full-depth install both landed byte-identical to repo HEAD in ./.hermes/skills/ip-as-logo/ (project-level, with a hash-pinned skills-lock.json), meaning the registry blob is current. Some far larger packs reviewed here have served month-stale blobs. Registry demand is early but real: 348 installs in the first 21 hours alongside the star surge (328 stars at 02:04 UTC, 1,389 six hours later, 1,591 at review time).

The Bad

The README contradicts the SKILL.md it ships, on three specific claims. First, the README's "What it enforces" list promises "continuous low-frequency gradients capped at 0.08 OKLCH lightness span" and later says the skill "uses OKLCH target bands when numeric control is available", but the SKILL.md now says the opposite: "do not impose global saturation, OKLCH, hue-shift, or chroma bands on the IP", and the 0.08 number appears nowhere in it. Second, the README claims "explicit rejection rules for illustration-level complexity, pure flatness, and excessive 3D volume", but the twelve-rule rejection list contains no flatness rule at all. Third, the README lists "Opaque square output" as enforced, while the SKILL.md requests an opaque background by default and then explicitly permits and preserves transparent results ("Background transparency by itself is permitted and must not make a result non-recommended"). An agent that reads both files receives conflicting instructions, and a user who picks this skill for the OKLCH numeric guarantees is buying a feature that was removed.

The repo is 21 hours old and its spec has already churned twice. Fifteen commits by a single author span 15.5 hours, and the history shows same-week reversals: day one added quantified color preferences ("feat: quantify default color preferences"), day two's "feat: optimize logo color and shading guidance" removed the OKLCH approach, tonal modeling guidance was cut and then restored by "fix: restore subtle tonal modeling guidance", and the final commit re-constrained the color law. There are no tags, no releases, and no changelog to pin a known-good revision against, and the README's enforcement list is visibly a day-one snapshot that the day-two spec edits never updated.

The core deliverable is unverifiable without an image-generation runtime, and the compatibility list undersells the install surface. No generator exists in this review environment, so no logos were produced and output quality is unjudged (Functional-Verified: partial). Meanwhile the README names Codex, Coze, Doubao, YouMind, Manus, Gemini Apps, and Replit Agent, with zero mentions of Claude Code, Cursor, Hermes, OpenClaw, or Windsurf, even though the skills CLI it tells you to use installs to all of them (verified for hermes-agent). The named list reflects the CN-market origin; the silence about the major Western agents is an omission, not a limitation.

97 percent of every install is a showcase image. The install ships SKILL.md (16 KB), README, LICENSE, a .gitignore, and assets/ip-as-logo-wall.webp, a 2560-by-2200 WebP weighing 713,426 bytes, for a 732 KB total. The agent never needs that file at runtime, and there is no asset-free install option, so every project that adds this skill carries a poster it cannot use.

Smoke Test Results

Host-based validation on macOS 26.5.2 (aarch64) against a fresh clone (4 files: SKILL.md, README.md, LICENSE, assets/ip-as-logo-wall.webp; repo state at test time: 1,591 stars, 67 forks, MIT, created 2026-08-18T13:59Z, pushed 2026-08-19T05:31Z, 3 open issues, all community engagement and zero bug reports). The sbx daemon was unavailable in this session, so structural checks ran directly on the host, with full output captured to the sandbox logs referenced below. Real commands, real output.

Structural validation

$ python3 structure-checks.py: frontmatter present
βœ… PASS
$ python3 structure-checks.py: name field = ip-as-logo
βœ… PASS
$ python3 structure-checks.py: description under 1024 chars
βœ… PASS (469 chars)
$ grep -c "A1" and "C2" SKILL.md (six labeled candidates)
βœ… PASS (A1..C2 labeling contract present)
$ grep "three concise directions before generation" SKILL.md
βœ… PASS (approval gate present)
$ grep "exactly two IP base colors plus" SKILL.md
βœ… PASS (three-semantic-color law present)
$ grep "32" SKILL.md (readability gate)
βœ… PASS
$ grep "75" SKILL.md (canvas-fill range)
βœ… PASS (75-85%)
$ grep "6" + "10" SKILL.md (shape budget)
βœ… PASS (6-10 basic shapes)
$ grep "8" SKILL.md (tonal modeling cap)
βœ… PASS (8-12%)
$ grep "negative_prompt" SKILL.md (legacy-model routing)
βœ… PASS (dedicated-parameter path documented)
$ grep "Do not fabricate" SKILL.md
βœ… PASS (anti-fabrication clause)
$ grep "never hide a failed constraint" SKILL.md
βœ… PASS (no silent post-processing)
$ grep "permitted and must not make a result non-recommended" SKILL.md
βœ… PASS (transparent-result tolerance)
$ grep -i "subagent" SKILL.md
βœ… PASS (parallel batch generation)
$ grep "OKLCH" README.md vs SKILL.md (drift check)
βœ… DRIFT CONFIRMED: README advertises a 0.08 OKLCH cap and OKLCH target bands; SKILL.md forbids OKLCH bands and contains no 0.08
$ grep "pure flatness" README.md vs SKILL.md rejection rules (drift check)
βœ… DRIFT CONFIRMED: README claims a pure-flatness rejection rule; the 12-rule list has none
$ ls assets/ip-as-logo-wall.webp (README asset reference resolves)
βœ… PASS (713,426 bytes, 2560x2200 WebP)
$ grep -E "(references|assets|scripts)/" SKILL.md (local file dependencies)
βœ… PASS (none: the skill is self-contained)

Pass rate: 19 of 19. The two drift checks pass because they confirmed the README/spec contradiction they were designed to detect; those findings are reported in The Bad.

Full structural log β†’

Install verification (skills CLI, isolated HOME)

$ npx -y skills@latest add s1dashu/ip-as-logo-skill < /dev/null
❌ exit 0 but zero files installed: the interactive picker stalls at "Installation scope" when stdin is closed (fine in a real terminal, unusable in scripts without flags)
$ npx -y skills@latest add s1dashu/ip-as-logo-skill --agent hermes-agent --skill ip-as-logo --copy --yes
βœ… Done; lands in ./.hermes/skills/ip-as-logo/ at project level
$ diff .hermes/skills/ip-as-logo/SKILL.md <repo HEAD>/SKILL.md (registry blob)
βœ… identical (blob is current, not stale)
$ npx -y skills@latest add s1dashu/ip-as-logo-skill --agent hermes-agent --skill ip-as-logo --full-depth --copy --yes
βœ… identical to repo HEAD as well
$ find .hermes/skills/ip-as-logo -type f
βœ… 5 files: SKILL.md, README.md, LICENSE, .gitignore, assets/ip-as-logo-wall.webp
$ cat skills-lock.json
βœ… computedHash 8e6f1ca5... pinned per skill
$ du -sh .hermes/skills/ip-as-logo
βœ… 732K total, of which 713K is the showcase WebP

Pass rate: 6 of 7. The single failure is the documented default command's interactive-only behavior, which is a picker limitation rather than a broken install.

Full install log β†’

What the runs tell you

The SKILL.md itself is structurally complete and internally self-consistent: every invariant it promises is present and cross-referenced, and the only contradictions live between the README and the spec, not inside the spec. Installs are clean, current, and byte-faithful on both registry paths, so what you read on GitHub is what your agent loads. What no run can tell you is whether the generated logos are any good, because that requires an image-generation runtime this environment does not have; that untested half is the reason the verdict is TRY IT rather than KEEP IT despite the 4.0 weighted score.

Setup Walkthrough

  1. Install with the skills CLI from any project directory: npx skills@latest add s1dashu/ip-as-logo-skill. In a real terminal an interactive picker asks for the agent and scope; add --global for a user-level install instead.
  2. For scripted or Hermes-specific installs, skip the picker: npx skills@latest add s1dashu/ip-as-logo-skill --agent hermes-agent --skill ip-as-logo --copy --yes. This writes to the project-level ./.hermes/skills/ip-as-logo/ directory and a hash-pinned skills-lock.json (verified byte-identical to repo HEAD).
  3. Confirm your agent has image generation available (Codex with ImageGen, or any configured image generator). This is the hard requirement: the skill is instructions only and produces nothing without a generator, and it will say so rather than pretend.
  4. Ask for a logo in natural language, for example: "Create a rounded ghost IP logo on a deep navy background." Expect three proposed directions, an approval question, then six labeled square candidates with per-candidate evaluation notes.
  5. Read the SKILL.md, not the README, for the current rules. The README's OKLCH caps, its pure-flatness rejection rule, and its opaque-output enforcement do not match the shipped spec.

Alternatives

  1. Prompting your image model directly with a hand-written brief: free and universal, but you re-derive the complexity budget, the color law, and the evaluation rubric every time; those constraints are the entire value being packaged here.
  2. ConardLi/garden-skills (web-design-engineer): a reviewed 5-skill pack of web-design style recipes and scaffolds; broader for sites and pages, but it does not enforce mascot-logo symbol discipline or batch candidate workflows.
  3. pbakaus/impeccable: a reviewed design-quality detector that audits existing frontend output for anti-patterns; it complements ip-as-logo (generate with one, audit with the other) rather than replacing it.
// review provenance
reviewed by
GearScope
tested
2026-08-19 · macOS (Apple Silicon)
last verified
2026-08-19
depth
HANDS-ON
sponsorship
none, ever
// share this review
// feedback
was this review helpful?

Don't install your next skill blind.

Every week: the shortlist of skills worth installing β€” and the ones to skip β€” from 100+ hands-on tests. No spam, no affiliate links.