fth-design-crafter
Skill7 starsChanged 43 days agoMITView on GitHub
Build and enforce a product-specific design system: research competitors and real-world type, propose 2-3 flat-color palette and font-pairing directions beyond overused defaults, demo them side by side, then write DESIGN.md and tokens, design pages on top, and review implementations against them. Use when the user wants a color palette, font or typography choices, a design system, design tokens or DESIGN.md, a landing page or dashboard design, or a UI/design review; also for Turkish requests like 'renk paleti', 'font önerisi', 'tipografi', 'tasarım sistemi'.
In this repository83 other files it gives its agents.
- AGENTS.mdAGENTS.md
- accessibility-enforcerSkill
- access-policy-designerSkill
- adaptive-guardSkill
- agent-reviewerSkill
- anti-ai-slop-designSkill
- api-mock-designerSkill
- api-observability-plannerSkill
- app-store-reviewerSkill
- ask-first-act-laterSkill
- assumption-checkerSkill
- auth-flow-designerSkill
- b2b-founder-roadmapSkill
- brand-name-labSkill
- breaking-change-detectorSkill
- changelog-generatorSkill
- checkpoint-guardianSkill
- claude-style-codingSkill
- claw-integration-designSkill
- context-compressorSkill
- contract-first-designerSkill
- coolify-orchestratorSkill
- crash-analystSkill
- data-lineage-tracerSkill
- data-maskerSkill
- deep-link-architectSkill
- design-intelligenceSkill
- design-md-enforcerSkill
- ecosystem-apiSkill
- ecosystem-databaseSkill
- ecosystem-mobileSkill
- ecosystem-orchestrationSkill
- ecosystem-productSkill
- ecosystem-reasoningSkill
- ecosystem-securitySkill
- ecosystem-webSkill
- error-recoverySkill
- geo-auditorSkill
- geo-optimizerSkill
- index-advisorSkill
- jev-orchestratorSkill
- mastermind-loggerSkill
- memory-ledgerSkill
- migration-strategistSkill
- mobile-perf-auditorSkill
- mobile-security-auditorSkill
- multi-brain-debateSkill
- multi-brain-expertsSkill
- multi-brain-scoreSkill
- multi-brainSkill
- offline-sync-designerSkill
- onboarding-designerSkill
- output-criticSkill
- parallel-plannerSkill
- pgbouncer-architectSkill
- plan-hardenerSkill
- plan-implement-verify-recoverSkill
- proje-analizcisiSkill
- project-analyzerSkill
- project-focus-firstSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 2 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 25
Evidence before taste: Every color and font choice cites a source: project assets, competitor scan, type-in-use reference, or domain …
- Distinctive: line 26
Flat color only: No gradients in tokens, fills, text, or backgrounds.
- Distinctive: line 30
Existing brand wins: Keep established brand colors and fonts.
- Very specific: line 42
Write the research note from templates/design-research.template.md.
- Very specific: line 78
Only removing an AI look from an existing design without a new system: @anti-ai-slop-design.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
FTH Design Crafter
One skill for the whole visual system: FOUNDATIONS decides color and type from evidence, SPEC writes it down as DESIGN.md and tokens, PAGE designs screens on top of it, REVIEW checks pages and code against it.
The goal is a system that belongs to this product. It must not look like a template or like typical AI output, including Claude's own habits (warm cream + terracotta, serif-heavy "editorial" defaults).
Pick the mode
| Request | Mode | Read |
| Colors, palette, fonts, typography, "make it look like us", new brand look | FOUNDATIONS | references/research-protocol.md, references/color-method.md, references/typography-method.md, references/font-sources.md |
| DESIGN.md (google-labs-code/design.md format), tokens, Tailwind theme, extract a system from a URL, lint and enforce | SPEC | references/mode-spec.md |
| Design a page, landing, dashboard, screen structure | PAGE | references/mode-page.md, references/page-rules.md, references/page-examples.md |
| Review, audit, critique a page or UI code | REVIEW | references/mode-review.md, references/review-rubric.md |
A full run goes FOUNDATIONS → SPEC → PAGE → REVIEW. Start later only when the earlier output already exists (for example, an approved DESIGN.md).
Non-negotiables
- Evidence before taste. Every color and font choice cites a source: project assets, competitor scan, type-in-use reference, or domain material. Write it in
design-research.md. - Flat color only. No gradients in tokens, fills, text, or backgrounds. A brand-mandated gradient is a documented exception with a flat fallback.
- Beyond defaults. Overused families (Inter, Roboto, Open Sans, Poppins, Montserrat, Lato, …), AI-favorite families (Space Grotesk, Fraunces, Instrument Serif, Geist, Manrope, Plus Jakarta Sans, Satoshi, …), and template colors (indigo/violet SaaS accents, slate navy + cyan, cream + terracotta) need an explicit reason. The lists live in
scripts/ai_defaults.json. - Measured, not claimed. Contrast, Turkish glyph support, font weights, and competitor colors come from the scripts or real renders. Say when something is unverified.
- Choices for the user. Offer 2-3 genuinely different directions and let the user choose; do not present one palette as the answer.
- Existing brand wins. Keep established brand colors and fonts; build the system around them.
FOUNDATIONS workflow
- Collect project evidence: product, audience, market and language, logo, brand colors, current CSS. For an SVG logo, read its fills and any
font-family. - Scan (announce first): 3-5 competitor or category sites with
scan_site.py, 2-3 typography-in-use references, and the domain's materials. Skip the live scan when the user declines or no network is available, and say so. Details:references/research-protocol.md. - Find fonts: translate the product and logo into type traits, then
find_fonts.py search/check. Details:references/typography-method.md. - Build 2-3 directions: each with one specific real-world
referencesentence, a competitor stance, neutrals, oneprimary, at most onesecondary, semantic states, a dark theme, a heading/body pairing, and a type scale. Color roles use DESIGN.md names (background,surface,on-surface,outline-variant,primary,on-primary,secondary,success,warning,error). Write them todesign/directions.jsonusingtemplates/directions.template.json. - Check and demo:
build_specimen.py design/directions.json --landscape design/landscape.json --out design/specimen.html. Fix every FAIL; answer every WARN in the rationale. - Present: a short comparison (stance, fonts, primary, why, open warnings) plus the specimen. When the host can publish or show HTML, show
specimen.html; otherwise give its path. - After the user chooses: go to SPEC and export the chosen direction as a spec-compliant
DESIGN.md.
Write the research note from templates/design-research.template.md.
Outputs
| File | Mode | Contents |
design/design-research.md | FOUNDATIONS | Evidence, landscape, defaults avoided, directions, decision |
design/directions.json | FOUNDATIONS | The 2-3 directions (input to the scripts) |
design/specimen.html | FOUNDATIONS | Side-by-side demo of the directions on real UI, light and dark |
design/DESIGN.md | SPEC | google-labs-code/design.md format: YAML front-matter tokens (colors with -dark twins, typography, rounded, spacing, components) + Overview, Colors, Typography, Layout, Elevation & Depth, Shapes, Components, Do's and Don'ts, Evidence |
design/tokens.css, design/tailwind.theme.json | SPEC | CSS variables named like the official export (--color-*, --text-*, …) with light, dark, and prefers-color-scheme; Tailwind v3 theme bound to them |
design/preview.html | SPEC | The system rendered from templates/preview.template.html |
| Page strategy, section architecture, rule check | PAGE | In the reply, or a doc when requested |
| Scores, issues, recommendation | REVIEW | In the reply, or a report when requested |
For extracting a reference site, SPEC writes to design-md/<site-name>/ instead, filling templates/DESIGN.template.md. Checklist before handoff: templates/review-checklist.template.md. Extraction examples: examples/example-input.yaml, examples/example-design-analysis.json.
Scripts
Standard-library Python; run from the project root with <skill-dir> as the folder of this file.
| Script | Purpose |
scripts/scan_site.py <urls…> [--json] | Colors (by frequency), fonts, gradient use per site; with several sites, occupied and free accent hues |
scripts/find_fonts.py search / check / css | Google Fonts candidates beyond the top 60 and default lists, Turkish (latin-ext) check, weights, axes, css2 URL |
scripts/build_specimen.py <directions.json> | Contrast, gradient, default, similarity, competitor, and font checks; specimen.html; --export <id> writes DESIGN.md, tokens.css, tailwind.theme.json (via scripts/design_md.py) and lints the result |
scripts/lint_design_md.py <DESIGN.md> [--official] | Mirrors the official design.md linter and adds no-gradient, dark-twin, prose-reference, placeholder, and default-font rules; --official also runs npx @google/design.md lint |
scripts/colorlib.py ramp / contrast / oklch / distance | Tonal ramps, WCAG contrast, OKLCH values, perceptual distance |
scripts/ai_defaults.json | Overused fonts, AI-favorite fonts, template colors and pairs, popularity cutoff |
find_fonts.py caches Google Fonts metadata for 7 days in ~/.cache/fth-skills/; build_specimen.py reuses that cache for font checks and never goes online itself.
When to skip
- A one-off color or font question with no system behind it: answer directly, still avoiding the defaults above.
- Implementation of an already-approved design: hand off to
@claude-style-coding. - Only removing an AI look from an existing design without a new system:
@anti-ai-slop-design.
Scope vs Related Skills
| Need | Skill |
| Palette, typography, DESIGN.md, tokens, page strategy, UI review | @fth-design-crafter |
| Implementing a user-facing feature with product thinking and every UX state handled | @claude-style-coding |
| Removing generic AI aesthetics from an existing design, image brief, or page | @anti-ai-slop-design |
| Mobile screen-reader and touch accessibility audit | @accessibility-enforcer |
design-intelligence and design-md-enforcer are deprecated aliases of this skill.
🔗 Next Steps & Handoffs
<!-- BEGIN GENERATED: handoffs (generated from the ecosystem workflow map by build_ecosystems.py — do not edit by hand) -->Ecosystem: @ecosystem-web — Web, Design & Delivery.
Workflows:
- Palette & Typography Flow (
web-foundations, step 1 of 4): next →@anti-ai-slop-design(optional). - Palette & Typography Flow (
web-foundations, step 3 of 4): next →@claude-style-coding(optional). - Product Page Build Flow (
web-build-page, step 1 of 5): next →@fth-design-crafter. - Product Page Build Flow (
web-build-page, step 2 of 5): next →@anti-ai-slop-design(optional). - UI Review Flow (
web-review, step 1 of 2): last step → once it passes, complete the workflow and report the outcome. - Remove the AI Look Flow (
web-de-slop, step 2 of 3): next →@claude-style-coding(optional).
Direct handoffs:
@anti-ai-slop-design— A direction or page relies on generic AI/SaaS visuals.@accessibility-enforcer— The system will be used in a mobile app.
Handoff contract: pass results to the next skill through an inline Handoff block in your reply with the fields skill, workflow, created_at, inputs, summary, and next (the handoff contract of @ecosystem-web). If a next skill is not installed, continue with its step from the ecosystem map, or install it with npx skills add fatih-developer/fth-skills --skill <name> after the user agrees.
<!-- END GENERATED: handoffs -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

