Claude Code skills

Ready-to-copy skills that build for you

Each skill below is a Claude Code command. Save it to your repo at .claude/commands/[name].md, then run it with /[name] inside Claude Code.

How to install a skill

01

Copy the skill

Click the copy button on the skill below. The full command file is now on your clipboard.

02

Save to your repo

Paste it into .claude/commands/[name].md at the root of your project.

03

Run it in Claude Code

Open Claude Code in that repo and type /[name]. The skill loads and runs.

/new-blog-post

/new-blog-post

# /new-blog-post

Write a new SEO and AI-optimised blog post for theagency.io. Topic: $ARGUMENTS

---

## What makes a post rank in 2026 (read this before writing anything)

In 2026, ranking means ranking in Google, ChatGPT, Perplexity, Gemini, Claude Search, and Google AI Overviews simultaneously. The rules that apply to all of them:

- **120-180 words per section** between H2 headings. This is the AI citation sweet spot. Sections outside this range are rarely cited.
- **Question-format H2 headings.** "How much does an AI sales agent cost?" outranks "Pricing" for every AI engine. Every H2 should be a question a real person would type.
- **FAQ section at the end.** Doubles AI citation chances. Each answer ~40 words. First sentence directly answers the question.
- **One named statistic per section.** "AI agents respond in 5 seconds vs the industry average of 42 hours" gets cited. Vague claims do not.
- **One founder quote with attribution.** "As Chris Rowan, founder of The Agency, puts it: [quote]", named entity quotes increase AI citation rates.
- **Self-contained sections.** Each section must make sense if read in isolation. AI engines extract sections, not full posts.
- **Internal links anchor text must be descriptive.** "[our AI sales agent](/products/ai-autopilot)" beats "click here".

---

## Step 1: Load context (mandatory, do not skip)

Read these in order:

1. `CLAUDE.md`, product guide, pricing, locked stats
2. `.claude/rules/ai-seo.md`, section length, FAQ format, schema rules
3. `.claude/rules/brand-voice.md`, British English, no em dashes, sentence case
4. `.claude/rules/site-design-rules.md`, approved stats (section 8), banned phrases (section 9)

**Approved stats (never invent others):**
- 300+ AI systems built
- 500+ AI agents deployed
- 8+ years engineering AI
- 7-day build delivery
- 7 businesses built (Chris Rowan)
- 4 industry awards

**Banned:** 32,000+, 120M+, 48 hours, 5 business exits, any number not in the list above.

**Pricing (use exact names):**
- Tier 1: AI Company Upgrade, $500 one-off + $10/mo
- Tier 2: 24/7 AI Company Autopilot, $500/mo
- Tier 3: Full AI Business System, $2,000/mo

---

## Step 2: Keyword research

1. Convert the topic to a URL slug: lowercase, hyphens, no stop words. Example: "ai-sales-agent-cost"
2. Identify the primary keyword (what someone would actually search for).
3. Run a SerpAPI search for the primary keyword:
   - Note the top 3 ranking pages and the H2 headings they use
   - Extract 6-8 questions from the "People also ask" section, these become your FAQs and H2 headings
   - Note any stats, data, or specific figures the top posts use
4. Run a second SerpAPI search with the question form of the keyword (e.g. "how much does an AI sales agent cost")

Use the PAA questions directly as your H2 headings and FAQ questions. These are proven search queries.

---

## Step 3: Write the post

**File location:** `src/content/blog/{slug}.md`

### Frontmatter

```yaml
---
title: "[Primary keyword first, benefit clear, sentence case, under 60 chars]"
description: "[150-160 chars. Ad-copy style. Contains primary keyword. Ends with clear benefit or CTA verb.]"
date: "YYYY-MM-DD"
author: "Chris Rowan"
tags: ["primary-keyword", "secondary-keyword", "related-phrase"]
faqs:
  - question: "[Real search question, sentence case]"
    answer: "[~40 words. First sentence directly answers. Include one number or fact. End with a soft nudge toward the CTA.]"
  - question: "..."
    answer: "..."
  # 5-8 total FAQs
---
```

**Title rules:**
- Primary keyword goes first
- Sentence case (not Title Case)
- Under 60 characters
- No em dashes

**Description rules:**
- 150-160 characters exactly
- Include the primary keyword
- Write it like a Google ad: benefit-led, punchy, ends with a verb
- British English

---

### Body structure (1,800-2,400 words total)

**Opening hook (150-200 words, no H2)**
- Name the reader's exact situation in the first sentence
- Promise what the post answers
- Include one locked stat with context
- Link to `/custom-strategy` naturally within the first 200 words
- No "In this article we will..." filler
- No H1 in the body, the title renders as H1 automatically

**6-8 H2 sections**

Each section must:
- Be a question format where natural ("How much does this cost?" not "Pricing")
- Open with a sentence that directly answers the H2 (Google uses this for featured snippets)
- Run 120-180 words
- Include one specific stat, comparison, or concrete example
- End with a transition or soft CTA (not a hard sell)

**Section structure example:**
```markdown
## How much does an AI sales agent cost compared to hiring?

An AI sales agent through The Agency costs $500 per month as part of the 24/7 AI Company Autopilot. A full-time salesperson in the UK costs £35,000-£55,000 per year in salary alone, not including recruitment, training, sick leave, and management overhead.

The comparison is not just price. A human salesperson works 8 hours a day, 5 days a week. An AI agent works 24/7 with a 5-second response time regardless of volume. It handles 100 simultaneous conversations without slowdown.

For a service business converting 20% of qualified leads at £2,000 per client, the maths is straightforward: if an AI agent books 5 additional qualified calls per month that a human would have missed (due to response time or out-of-hours enquiries), the return is £2,000 at a cost of £400.

[See how Abby compares to a sales hire](/products/ai-autopilot)
```

**Mid-post founder quote (after section 3 or 4)**
```markdown
> "Most of our clients spend more time screening leads than closing them. The first thing Abby does is flip that. She handles the screening 24/7 so your team only sees qualified, ready-to-talk prospects.", Chris Rowan, founder of The Agency
```

**Closing CTA section (150 words, no H2)**
- Summarise the core takeaway in one sentence
- Name the next action clearly
- Link to `/custom-strategy` with a descriptive anchor
- Example: "The fastest way to see how this works for your business is [a free custom AI strategy](/custom-strategy). We analyse your current setup, identify the revenue gaps, and show you exactly what an AI system would do. Takes 2 minutes to start."

---

### Internal links (minimum 3)

Always link to at least 3 pages on the site. Use descriptive anchor text:

| Where to link | URL |
|---|---|
| AI sales agent product | `/products/ai-autopilot` |
| AI Company Upgrade product | `/products/ai-company-upgrade` |
| Full AI Business System | `/products/full-ai-business-system` |
| Pricing page | `/pricing` |
| Results/proof | `/results` |
| Free strategy | `/custom-strategy` |
| About Chris | `/about/chris-rowan` |
| Related blog posts | `/blog/{slug}` |

---

### Brand voice checklist

Before you finish writing, verify:
- [ ] British English: personalised, optimised, organised, recognised, monetise, colour, favour
- [ ] No em dashes (, or, ). Use commas, "and", or separate sentences instead
- [ ] No "scale", always "grow"
- [ ] No "digital", always "AI"
- [ ] No "I/me/my", always "we/our/us"
- [ ] Sentence-case headings (not Title Case)
- [ ] Short sentences (max 2 clauses). Short paragraphs (max 3 sentences)
- [ ] No placeholder text, no "UPDATE:" comments, no Lorem ipsum
- [ ] Every stat matches the approved list in CLAUDE.md

---

## Step 4: Verify

```bash
# 1. Check for em dashes (must return nothing)
grep -n ', \|, ' src/content/blog/{slug}.md

# 2. Word count (must be 1,800-2,400)
wc -w src/content/blog/{slug}.md

# 3. Build passes
pnpm build

# 4. Check the live route renders (dev server must be running on 4323)
curl -s -o /dev/null -w "%{http_code}" http://localhost:4323/blog/{slug}
# Must return 200
```

Fix any failures before reporting back.

---

## Step 5: Report back

Output exactly:
- **Slug:** `src/content/blog/{slug}.md`
- **URL:** `http://localhost:4323/blog/{slug}`
- **Word count:** [number]
- **Primary keyword:** [keyword]
- **H2 headings used:** (list them)
- **FAQs written:** (list questions)
- **Internal links added:** (list them)
- **Em dash check:** Pass / Fail
- **Build:** Pass / Fail

---

## What the route needs (already built)

`src/pages/blog/[slug].astro` exists and handles all MDX/MD content files automatically. It:
- Renders the markdown body with correct prose styling
- Injects FAQPage, BlogPosting, and BreadcrumbList schema from frontmatter
- Shows the BlogMeta bar (author, date, read time)
- Renders the FAQ accordion from the `faqs` frontmatter array
- Shows RelatedPosts and FinalCtaSection at the bottom

You only need to write the `.md` file. The route handles everything else.

---

## Post length guide

| Post type | Target words | When to use |
|---|---|---|
| Quick answer / comparison | 1,000-1,400 | Single specific question, e.g. "Does Abby work on WhatsApp?" |
| Standard blog post | 1,800-2,400 | Most topics, this is the default |
| Comprehensive guide | 2,400-3,500 | Evergreen pillar content, e.g. "Complete guide to AI lead generation" |

Default to 1,800-2,400. Only go longer if the topic genuinely requires it.

---

## Common mistakes to avoid

- **Do not write a landing page.** No hero sections, no card grids, no video embeds. Pure prose markdown only.
- **Do not put schema in the markdown.** The `[slug].astro` route injects all schema automatically from frontmatter.
- **Do not use placeholder copy.** No "[your audience]", "[your outcome]", "[insert stat]". Write real content.
- **Do not put the title as an H1 in the body.** The layout renders the frontmatter title as H1 automatically.
- **Do not invent stats.** If a number is not in the approved list in CLAUDE.md, leave the claim out.
- **Do not use the path `website/src/content/blog/`.** The correct path is `src/content/blog/`.

Want us to build the rest for you?

We build complete AI systems for brands: websites, AI sales agents, CRMs, lead generation, and content engines. See it before you pay.

Get your free AI strategy