Skip to main content
skill CX Codex

docs-search — Claude Code skill for AEM docs lookup

Searches the aem.live documentation, ranks the matches, then pulls full articles with code samples and deprecation notes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add adobe/skills --skill docs-search -a claude-code
Open on GitHub

What docs-search does

This skill is for the moment when a normal web search returns nothing useful about an AEM Edge Delivery Services (EDS, Franklin, Helix) feature. It queries a local documentation index through search.js, which takes one to three keywords. You get JSON back: each hit carries a path, title, short description, a text snippet, a type of “doc” or “blog”, and a relevance score. Ten top results come back by default, and --all lifts that cap.

The agent then fetches the pages it picked at https://www.aem.live{path} and reads them in full before answering. Docs are searched first; blog posts join in only when doc hits number fewer than five. A deprecation field means the feature is on its way out. Such pages still show up, just ranked lower, and the agent should flag them and point you at a newer option.

Run the script from the project root, where .claude/skills/docs-search/scripts/search.js sits, with Node.js installed. Vague terms like “aem” get dropped as stop words, so pick precise keywords such as “block decoration” or “sidekick plugin”. If you already have the URL, skip the skill entirely.

What it helps with

  • find the right aem.live page when web search keeps missing
  • read a whole doc article instead of a single search snippet
  • catch a deprecated feature before it lands in the codebase
  • tell regular metadata apart from bulk metadata using the source
  • get an official code sample for a block instead of guessing

Example prompts for the agent

  • Search the aem.live docs for how block decoration works
  • Look up metadata in the docs and compare page-level with bulk
  • Check whether folder mapping is deprecated and what replaces it

How to install docs-search

1Skills CLI (Vercel)

npx skills add adobe/skills --skill docs-search -a claude-code

2Manually: put the files in place

~/.claude/skills/docs-search/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/docs-search/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about docs-search

How do I install docs-search in Claude Code?

Run npx skills add adobe/skills --skill docs-search -a claude-code. The skill file lands at ~/.claude/skills/docs-search/SKILL.md.

What does docs-search do?

It runs your keywords against the aem.live documentation index, orders the pages by relevance and pulls the full text. Deprecated features get marked so they don't slip into your work.

How is it different from a regular web search?

It only looks at aem.live, so unrelated sites stay out of the results. The script returns the 10 best matches with scores, and --all widens the sweep to blog posts when you need it.

Source text

SKILL.md · Apache-2.0
---
name: docs-search
description: "Use this when you need more information about an AEM Edge Delivery Services (EDS, Franklin, Helix) feature or guidance on how to implement one, and your existing web-search tools are not turning up relevant results. Searches the aem.live documentation, ranks matching pages by relevance, fetches full articles, and surfaces code examples and deprecation warnings."
license: Apache-2.0
metadata:
  version: "1.0.1"
---

# Searching AEM Documentation

## Overview

This skill helps you efficiently search the complete aem.live documentation (docs and blog posts) without wasting context on irrelevant pages. Use the provided search script to find relevant documentation pages, then fetch and read the full content of the most relevant results.

## When to Use This Skill

Use this skill when:
- You need information about an aem.live feature or concept
- You've already looked at the project codebase for context
- You've tried a basic web search but didn't find relevant aem.live documentation
- You need technical guidance on implementing aem.live features
- You're looking for best practices or examples from the official docs

**Do NOT use this skill when:**
- You need reusable code snippets or block examples (use `block-collection-and-party` instead)
- You already know the specific documentation URL
- You're looking for general web development information (not aem.live specific)

## How to Use This Skill

### Step 1: Identify Keywords

Determine 1-3 specific keywords related to what you're searching for. Be specific rather than general.

**Good keywords:**
- "block decoration"
- "metadata"
- "universal editor"
- "sidekick plugin"

**Poor keywords:**
- "aem" (too generic, filtered as stop word)
- "how to build website" (too broad)
- "the" (stop word)

### Step 2: Run the Search Script

Execute the search script from the project root:

```bash
node .claude/skills/docs-search/scripts/search.js [--all] <keyword1> [keyword2] [...]
```

**Options:**
- `--all`: Return all matching results (default: limit to 10 most relevant)
- Without `--all`: Returns top 10 results

**Examples:**
```bash
# Search for block decoration info
node .claude/skills/docs-search/scripts/search.js block decoration

# Search for metadata with all results
node .claude/skills/docs-search/scripts/search.js --all metadata

# Multi-word search
node .claude/skills/docs-search/scripts/search.js universal editor blocks
```

### Step 3: Review Search Results

The script returns JSON with the following structure:

```json
[
  {
    "path": "/developer/markup-sections-blocks",
    "title": "Markup, Sections, Blocks, and Auto Blocking",
    "description": "To design websites and create functionality, developers use the markup and DOM...",
    "snippet": "Markup, Sections, Blocks, and Auto Blocking\n\nTo design websites...",
    "type": "doc",
    "deprecation": null,
    "relevanceScore": 141
  }
]
```

**Field Explanations:**
- `path`: URL path to the documentation page
- `title`: Page title
- `description`: Brief summary (usually ~150 chars) - **use this for quick context**
- `snippet`: Relevant excerpt from the page content showing keyword context
- `type`: "doc" or "blog"
- `deprecation`: Warning message if feature is deprecated (or null)
- `relevanceScore`: Relevance score (higher = more relevant)

**Important Notes:**
- Results are sorted by relevance (highest first)
- Deprecated pages have reduced relevance scores but still appear in results
- The `description` field provides the best quick summary of the page
- The `snippet` shows keyword context but may not be comprehensive

### Step 4: Fetch and Read Full Documentation

The search results give you an overview. To get detailed information, you must fetch and read the complete page content.

**Target URL format:**
```
https://www.aem.live{path}
```

**How to retrieve:** Use whatever method you have available to fetch the full HTML/text content:
- Dedicated web fetching tools
- Terminal commands (curl, wget, etc.)
- Web browsing/scraping capabilities

**Best Practice:** Start with the top 2-3 most relevant results, read them fully, then decide if you need more. You may also follow links referenced in the documentation or conduct additional searches based on what you learn.

### Step 5: Alert User to Deprecations

If any results have a `deprecation` field with content, **inform the user** that the feature is deprecated and include the deprecation message. Suggest they look at higher-ranked (non-deprecated) alternatives.

## What Gets Searched

The search script searches documentation first (150+ pages). Blog posts are only searched if fewer than 5 doc results are found. If you need comprehensive coverage including blogs, use the `--all` flag.

## Examples

### Example 1: Finding Block Documentation

**User Request:** "How do I decorate blocks in aem.live?"

**Good Approach:**
1. Search: `node .claude/skills/docs-search/scripts/search.js block decoration`
2. Review top 3 results
3. Fetch the most relevant: `https://www.aem.live/developer/markup-sections-blocks`
4. Read full content and provide answer

**Poor Approach:**
- Using general web search instead (wastes time on irrelevant results)
- Not using the search script (might miss the best documentation page)

### Example 2: Learning About Metadata

**User Request:** "I need to add metadata to my pages"

**Good Approach:**
1. Search: `node .claude/skills/docs-search/scripts/search.js metadata`
2. Notice top result is "/docs/bulk-metadata" (score: 63)
3. Also see "/docs/metadata" (score: 30)
4. Fetch and read both to understand page-level vs bulk metadata
5. Provide comprehensive answer with both approaches

**Poor Approach:**
- Only reading the first result and missing bulk metadata option
- Not using `--all` when you need comprehensive coverage

### Example 3: Deprecated Feature Warning

**User Request:** "How do I use folder mapping?"

**Search Results:**
```json
[
  {
    "path": "/developer/authoring-path-mapping",
    "title": "Path mapping for AEM authoring",
    "relevanceScore": 51,
    "deprecation": null
  },
  {
    "path": "/developer/folder-mapping",
    "title": "Folder Mapping",
    "relevanceScore": 34.5,
    "deprecation": "Please contact us if you have a use case for folder mapping..."
  }
]
```

**Good Response:**
"I found information about folder mapping, but **this feature is deprecated**. The deprecation notice says: 'Please contact us if you have a use case for folder mapping...'. The current recommended approach is **Path mapping for AEM authoring** (the top result). Let me read that documentation for you instead."

**Poor Response:**
- Ignoring the deprecation warning and implementing the deprecated feature
- Not mentioning the better alternative

## Related Skills

- **block-collection-and-party**: Use when you need reusable code examples or block implementations
- **building-blocks**: Use when creating new blocks from scratch
- **content-modeling**: Use when designing content models for blocks

## Important Reminders

1. **Always check for deprecation warnings** and alert the user
2. **Fetch and read full pages** - search results are just for finding the right pages
3. **Start with top 2-3 results** before expanding search
4. **The description field is your friend** - it's usually well-written and concise
5. **Don't rely solely on snippets** - they're for context, not comprehensive information

© adobe · Apache-2.0 · adobe/skills

Similar skills

Everything for Writing and docs →

From the same set53

content-modeling Walks you through designing content models for AEM Edge Delivery Services blocks so authors can fill them in without guesswork. CX Codex +1 1,600installs content-driven-development A skill for AEM Edge Delivery Services work: find or create test content first, then write the code. Useful for blocks, styling and scripts.js changes. CX Codex +1 1,600installs block-inventory Surveys local AEM Edge Delivery Services blocks and searches the Block Collection to inform content modeling decisions during page imports. CX Codex +1 1,600installs building-blocks A skill for implementing AEM Edge Delivery Services blocks and core changes: it creates block folders, writes decorate functions, scopes CSS. Runs from content-driven-development at the implementation step. CX Codex +1 1,600installs code-review Audits AEM Edge Delivery Services code against Adobe standards before commits or during pull request reviews. CX Codex +1 1,600installs ue-component-model Configures AEM Edge Delivery Services blocks for Universal Editor. Reads block JS and CSS, then generates or updates the required JSON models. CX Codex +1 1,500installs create-site Walks an agent through a brand-new AEM Edge Delivery site: repo from the boilerplate, aem-code-sync, starter DA pages, live preview link. CX Codex +1 1,500installs handover Generates handover documentation for an AEM Edge Delivery Services project: separate guides for content authors, developers and site administrators. CX Codex +1 1,500installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor