Agent Skills: Heading Tree Skill

Generates H1-H4 heading structure for a page. SEO-optimized hierarchy. Stateless, deterministic.

UncategorizedID: Soborbo/claudeskills/heading-tree

Install this agent skill to your local

pnpm dlx add-skill https://github.com/Soborbo/claudeskills/tree/HEAD/heading-tree

Skill Files

Browse the full folder contents for heading-tree.

Download Skill

Loading file tree…

heading-tree/SKILL.md

Skill Metadata

Name
heading-tree
Description
Generates H1-H4 heading structure for a page. SEO-optimized hierarchy. Stateless, deterministic.

Heading Tree Skill

Purpose

Outputs H1-H4 heading hierarchy for a page. Structure only, no body copy.

Skill Output

Single deterministic heading tree. No alternatives, no variants.

headings:
  - level: h1
    section: hero
    text: "House Removals Bristol - Stress-Free Moving"
  - level: h2
    section: benefits
    text: "Why Families Choose Our Moving Service"
    children:
      - level: h3
        text: "Fully Insured & Protected"

Output contains text only. Patterns/examples are documentation only.

Input

page_type: landing | service | service-area | article
primary_keyword: "house removals bristol"  # Required
secondary_keywords: ["moving company"]      # Optional
location: "Bristol"                         # Required for local
sections: [hero, benefits, faq, final-cta]  # From allowed list
faq_questions: ["How much..."]              # Optional

Blocking Conditions (STOP)

| Condition | Result | |-----------|--------| | Missing primary_keyword | STOP - no output | | Missing page_type | STOP - no output | | Unknown section in list | IGNORE section | | Empty sections list | STOP - no output |

Allowed Sections

| Section | H2 | H3s | |---------|-----|-----| | hero | No (H1 only) | No | | trust-strip | No | No | | problem | Yes | No | | solution | Yes | No | | benefits | Yes | 3 typical | | how-it-works | Yes | 3 (steps) | | social-proof | Yes | No | | pricing | Yes | 2-3 (tiers) | | faq | Yes | 6 (questions) | | final-cta | Yes | No | | gallery | Yes | No | | coverage | Yes | Optional |

Unknown section → ignored, no error.

Heading Rules

H1 Rules

| Rule | Requirement | |------|-------------| | Count | Exactly 1 per page | | Keyword | Primary keyword at START | | Location | Include if local business | | Length | Max 60 characters | | Section | Always hero |

H2 Rules

| Rule | Requirement | |------|-------------| | Count | 1 per section (except hero, trust-strip) | | Order | Follow sections order | | Primary keyword | In 1-2 H2s max | | Location | In 2-3 H2s for local |

H3 Rules

| Rule | Requirement | |------|-------------| | Parent | Always under H2 (never orphaned) | | Count | 3-6 per parent H2 | | Keyword | Rarely, natural only |

H4 Rules

| Rule | Requirement | |------|-------------| | Page type | Article ONLY | | Count | Max 5 per page | | Forbidden | Landing, service, service-area pages |

FAQ Questions

| Scenario | Behavior | |----------|----------| | faq_questions provided | Use provided questions as H3s | | faq_questions empty | Use generic templates | | No FAQ section | Skip |

Generic FAQ templates:

  • "How much does {service} cost?"
  • "What areas do you cover?"
  • "How do I book?"
  • "Are you fully insured?"
  • "How far in advance should I book?"
  • "Do you provide {related_service}?"

Location Mentions

For local business pages:

| Level | Location Required | |-------|-------------------| | H1 | Always | | H2 | 2-3 headings | | H3 | Rarely |

Keyword Density (Annotation)

keyword_density: primary | secondary | location | none

This is annotation only — helps downstream skills, not a rule.

| Density | Max Count | |---------|-----------| | primary | 3 total (H1 + 1-2 H2s) | | secondary | No limit | | location | H1 + 2-3 H2s |

Example Output

page_type: landing
primary_keyword: "house removals bristol"

headings:
  - level: h1
    section: hero
    text: "House Removals Bristol - Stress-Free Moving From £299"
    
  - level: h2
    section: benefits
    text: "Why Families Choose Our Moving Service"
    children:
      - { level: h3, text: "Fully Insured & Protected" }
      - { level: h3, text: "Fixed Price, No Hidden Fees" }
      - { level: h3, text: "Professional Packing Service" }
      
  - level: h2
    section: faq
    text: "House Removals FAQs"
    children:
      - { level: h3, text: "How much do Bristol removals cost?" }
      - { level: h3, text: "What areas around Bristol do you cover?" }
      
  - level: h2
    section: final-cta
    text: "Ready for a Stress-Free Move?"

Non-goals

  • Does NOT write body copy
  • Does NOT suggest alternatives
  • Does NOT optimize existing headings
  • Does NOT do keyword research
  • Does NOT analyze competitors

Forbidden

  • ❌ Multiple H1s
  • ❌ H4 on non-article pages
  • ❌ Orphaned H3 (no parent H2)
  • ❌ Keyword stuffing (>3 primary mentions)
  • ❌ Providing alternative heading options
  • ❌ Writing body content

References

Definition of Done

  • [ ] Exactly 1 H1
  • [ ] H2s match sections list
  • [ ] H3s have parent H2
  • [ ] No H4 (unless article)
  • [ ] Primary keyword in H1
  • [ ] Primary keyword in 1-2 H2s
  • [ ] Location in H1 + 2-3 H2s (if local)