hallmark
CLI ToolNutlope/hallmark
Anti-AI-slop design skill for AI coding assistants.
Overview
Hallmark selects unique macrostructures for each brief, applies 57 anti-pattern gates, and produces non-template HTML/CSS. It integrates with Claude Code, Cursor, and Codex via a CLI tool with four verbs.
README Preview
# Hallmark\n\n**A design skill for Claude Code, Cursor, and Codex that refuses to look AI-generated.**\n\n[Live demo →](https://www.usehallmark.com) · twenty themes · four verbs · press `T` to cycle.\n\nMade by Together AI.\n\n\n \n\n\nHallmark picks a macrostructure for the brief, dresses it in one of twenty themes, runs fifty-seven slop-test gates plus a pre-emit self-critique, and refuses the on-distribution defaults every LLM was trained into. Two pages by Hallmark for two different briefs feel like different sites, not colour-swaps of the same template.\n\n---\n\n## Four verbs\n\n| Verb | What it does |\n| --- | --- |\n| *(default)* | Build new UI. Picks a macrostructure, applies the rule-set, runs the slop test before handing back. |\n| `hallmark audit ` | Score existing code against the anti-patterns. Punch list, no edits. |\n| `hallmark redesign ` | Throw out the structure, keep copy + IA + brand, rebuild with a different fingerprint. |\n| `hallmark study ` | Extract the **DNA** from a design you admire: macrostructure, type-pairing, colour anchor. Refuses pixel-clones and paid templates. Optionally emits a portable `design.md` for handoff to other AI tools. |\n\n---\n\n## Different briefs, different shapes\n\nEach generated from a different brief. The skill picks the theme, structure, and craft to fit each one, not from a template.\n\n\n \n \n \n \n \n \n \n BubbleSourdough app · Hum\n DistilExtraction API · Cobalt\n Cold SnapRecord label · Carnival\n CinderAI tool · Lumen\n \n \n \n \n \n \n \n \n Ferns & FathomTea menu · Custom\n Hollowback ApiaryHoney farm · Garden\n Off-RegisterPrint fair · Riso\n Press QuaternaryType studio · Custom\n \n \n \n \n \n \n \n \n TallySaaS · modern-minimal\n WayfareTravel · atmospheric\n NAJMFashion brand\n HyperlaneDev infrastructure\n \n\n\nEach page is self-contained HTML + CSS, stamped with its ma
FAQ (3)
TroubleshootingHow do I fix "No valid skills found" when running "npx skills add" even though SKILL.md contains name and description?
This usually means the YAML frontmatter in SKILL.md failed to parse. If the description contains : sequences, wrap the entire value in double quotes so the YAML parser does not treat them as nested mappings:
---
name: hallmark
description: "Anti-AI-slop design skill — Four verbs: ..."
version: 1.0.0
---
If the description itself contains double quotes, escape them as \". After updating SKILL.md, retry:
npx -y skills@latest add nutlope/hallmark
Verified with skills@1.5.7. The CLI currently hides the underlying YAMLParseError: Nested mappings are not allowed in compact mappings and reports the misleading "No valid skills found" message.
TroubleshootingHow do I prevent `npx skills add` from installing unrelated repository files like docs, website, and package.json?
The skills CLI copies every file in the directory containing SKILL.md. If SKILL.md is at the repository root, npx skills add nutlope/hallmark copies the entire repo, including docs/, site/, package.json, README.md, ROADMAP.md, and vercel.json.
Fix it by moving the skill into a dedicated subdirectory, for example:
skills/hallmark/
├── SKILL.md
└── # only files required by the skill at runtime
Keep repository-only files such as docs/, site/, and package.json outside that directory, then republish and reinstall the skill. The CLI will then copy only the scoped skill directory. As a temporary workaround, delete the unnecessary files manually after installation.
TroubleshootingHow do I fix Claude CLI error "No valid skills found. Skills require a SKILL.md with name and description" on macOS?
The installer is rejecting the repository because the YAML frontmatter in SKILL.md is malformed or missing required fields. Clone the repo, open SKILL.md, and ensure it begins with valid YAML frontmatter containing name and description, for example:
---
name: hallmark
description: Brief description of the skill
---
Save the file and install the skill from the corrected local repository or retry the installation. Avoid tabs, invalid indentation, or unescaped special characters in the YAML. If available, use the submitted PR that fixes the YAML instead of editing it manually.