All projects

Tool · 2026 · Live

hrih-skills

Two open-source Agent Skills for Claude Code. One studies real design galleries before it builds a page. The other writes copy from facts and cuts the habits that make text read as AI.

Claude CodeAgent SkillsDesignCopywritingOpen source
The two skills side by side: design-inspiration turning picked references into a Driftwood hero, and copywriter striking a generic moral and keeping the facts
Tool · 2026Live

hrih-skills

Two open-source Agent Skills for Claude Code. One studies real design galleries before it builds a page. The other writes copy from facts and cuts the habits that make text read as AI.

What it is

Two skills in the open SKILL.md format. An agent loads a skill when a task matches its description, so you never call one by name. Ask Claude Code for a landing page or a launch email, and the right skill loads. They also work in claude.ai and in other agents that read the format, such as Codex, Cursor, GitHub Copilot and Gemini CLI.

design-inspiration: look before you build

Ask Claude for a landing page from memory and you tend to get the same page: a centered hero, three feature cards, a safe palette. Designers avoid that by looking at current work first. This skill makes Claude do the same.

It picks galleries that fit the job: land-book and supahero for pages, reallygoodemails for email, deck.gallery for decks, and a few more. It compares 10 to 20 candidates on one contact sheet, then opens the best ones live and reads their real fonts, colors and sizes with a small script. Then it writes a design direction, builds, screenshots the result next to its references and fixes what doesn’t hold up. The hand-off lists every reference and what was taken from it. Here is a test build at that stage, next to three of its references:

The Driftwood build next to three of the reference sites it borrowed from: Zed for the overall feel, Twenty for the navbar and Manifest for the install command next to the main button

Here is the same prompt with and without the skill: a hero and navbar for Driftwood, a made-up Postgres migration tool.

Two versions of the Driftwood hero. Without the skill: a dark devtool page showing a made-up “4.2k” GitHub star count. With design-inspiration: a light, grid-paper page with an orange accent, built from five named references and with no star count

Testing caught one habit worth knowing about. In an early round, all three test builds came out on the same warm cream background. Left alone, Claude reaches for that look whenever a brief says trustworthy, warm or “not boring”: cream, a serif headline, a deep green accent. References that match it feel right, so they win. The skill now names that default and makes the contact sheet cover at least three palette families before anything is chosen.

Round two of testing next to the fixed version: Tallyo and Driftwood on the same cream background before, then a yellow Tallyo and an orange-and-black Driftwood after

copywriter: facts first, then the tells

The second skill writes and rewrites copy: web pages, emails, ads, LinkedIn posts, UX text and blog posts. It also humanizes AI drafts and can match a voice from a sample, or from a link to writing you like.

It started with a research round: 15 existing humanizer skills, studies of how model prose differs from human prose, and the classic copywriting books. Two findings shaped it. The tells that survive from one model generation to the next are structures, not words. The common ones are “it’s not X, it’s Y”, a “, ensuring…” clause bolted onto a fact, a list of three in every paragraph, and sentences that all run the same length. And asking a model to vary its rhythm doesn’t reliably work. A NeurIPS 2026 paper found that examples of human rhythm made the output flatter in seven of nine model families. So the skill measures the draft and fixes it afterwards.

It works in passes. First it lists the facts it may use and writes from those. Then it edits in separate passes: substance, structure, tells, rhythm. The last pass checks for overcorrection, because deleting tells tends to breed new ones, such as choppy fragments or an aphorism at the end of every paragraph. A small linter points at the lines and gives no score:

$ python scripts/check_copy.py draft.md
  L5    REWRITE  contrast framing: "It's not just a calendar. It's"
  L10   REWRITE  '-ing' tail: ", ensuring"
  L13   REWRITE  self-answered question: "The result? Happier teams."

Before: one paragraph from a test draft, written in ChatGPT’s habits on purpose.

Of course, the transition wasn’t without its challenges. The migration took two weeks instead of the planned three days, and we lost the history of some older threads in the process. It’s important to note that careful planning is essential for any migration of this kind.

After, with the skill:

So in March we moved to Help Scout, a dedicated help desk tool. The move took two weeks (we’d planned for three days), and we lost the history of some older threads along the way.

Every fact stays. The moral goes, and the notes ask the author for the real lesson instead of inventing one.

The bigger difference in testing was honesty. On a homepage brief for a pottery studio’s booking app, plain Claude gave the founder a backstory she never wrote, in both runs. It did flag it as an assumption. With the skill, Claude used only what she said and listed the gaps for her to fill.

What the detectors said

I didn’t build this to beat AI detectors, and it doesn’t. To check whether the copy at least moves toward human writing, I ran a small benchmark. It compares 10 pieces of real small-business copy, archived before 2020, with Claude copy written from the same facts, with and without the skill.

Human, 2018–19 Claude Claude + skill
Binoculars score (higher reads more human) 1.008 0.966 0.979
Flagged as AI by Binoculars 0 of 10 0 of 20 0 of 20
Pangram on one blog post (AI share) 0% 36% 31–52%

Binoculars, an open-source detector, flagged none of the Claude texts. Its scores put the skill’s copy a little closer to the human pieces on 7 of 10 briefs. At this sample size that’s a hint, and no more. Pangram, the commercial detector with the best independent record, told the human post apart from Claude’s at once. It saw no difference between the two Claude versions, and the same text scored 52% on one run and 36% on the next. The benchmark scripts are in the repo if you want a bigger sample.

Honest limits

  • On a clear brief, plain Claude already writes clean copy. The copywriter makes the biggest difference on rewrites of AI drafts and on briefs with gaps it would otherwise fill.
  • Both skills take longer. In testing, the copywriter took about twice as long per task and design-inspiration about a third longer.
  • English first. The structural checks work in other languages, but the word lists don’t.
  • design-inspiration needs a browser tool. It reads public gallery pages and never signs in.

How it was made

Built with Claude Code in a day. Each skill went through a research round, then rounds of test prompts run with and without the skill. This page was drafted with the copywriter skill.

Install

In Claude Code:

/plugin marketplace add R-Hatim/hrih-skills
/plugin install design-inspiration@hrih-skills
/plugin install copywriter@hrih-skills

For other agents, npx skills add R-Hatim/hrih-skills installs both. MIT licensed.

Have a related idea? Say hello