Skip to content
Back to skills

Content Retrieval

ASecurity

Token-efficient retrieval using depth levels (L0-L5) and heading-based sections. Use for any file reads.

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 8, 2026
toolsgobashtestingdebuggingdocumentation

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill content-retrieval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Content Retrieval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Content Retrieval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-content-retrieval/badge)](https://www.skillsdirectory.com/skills/majiayu000-content-retrieval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: content-retrieval
description: "Token-efficient retrieval using depth levels (L0-L5) and heading-based sections. Use for any file reads."
layer: 4
tech_stack: [agnostic]
topics: [retrieval, efficiency, tokens, grep, read, protocol]
depends_on: []
complements: [knowledge-discovery]
keywords: [retrieve, read, grep, lookup, tokens, efficient, partial, section]
auto_apply: true
---

# Content Retrieval Protocol

Token-efficient retrieval system using markdown-native section detection.

## Summary

**Core Principle**: Never read a full file when partial content suffices.

Choose retrieval depth by need:
- **Exists?** → Grep (files_with_matches)
- **Count?** → Grep (count)
- **Lookup?** → Grep (-C:2)
- **Overview?** → Read (limit:40)
- **Section?** → Grep heading → Read (offset, limit)
- **Full?** → Read (justify first)

---

## Quick Reference

### Depth Levels

| Level | Need | Method | Lines |
|-------|------|--------|-------|
| L0 | Exists? | `Grep(output: files_with_matches)` | ~1 |
| L1 | Count? | `Grep(output: count)` | ~1 |
| L2 | Lookup value | `Grep(pattern, -C:2)` | ~5 |
| L3 | Overview | `Read(limit: 40)` | ~40 |
| L4 | Section | Grep heading → Read(offset, limit) | ~50 |
| L5 | Full | `Read()` - justify first | All |

### Decision Tree

```
What do I need?
├─ Does X exist? ──────────► L0: Grep files_with_matches
├─ How many X? ────────────► L1: Grep count
├─ What is X's value? ─────► L2: Grep with context
├─ What does X do? ────────► L3: Read limit:40
├─ How to use X for Y? ────► L4: Section extraction
└─ Implement X fully? ─────► L5: Full read (target only)
```

### Tool Selection

| Scenario | Tool | Parameters |
|----------|------|------------|
| Check skill exists | Grep | `output: files_with_matches` |
| Count matches | Grep | `output: count` |
| Get specific row | Grep | `pattern, -C: 0-2` |
| Read frontmatter | Read | `limit: 25` |
| Read frontmatter+summary | Read | `limit: 40` |
| Extract section | Read | `offset: N, limit: 50` |
| Full understanding | Read | (no limit) |

---

## Section Extraction

### How Sections Work (Markdown-Native)

Sections are defined by **headings** and **horizontal rules**:

```markdown
## Section A
Content...

---                    ← Section A ends here (horizontal rule)

## Section B           ← Or section ends at next same-level heading
Content...
```

**No custom markers needed.** Standard markdown structure.

### Extraction Algorithm

```
1. Grep("^## Section Name$", file)     → line 15
2. Grep("^---|^## ", file, offset: 16) → next break at line 30
3. Read(file, offset: 15, limit: 15)   → lines 15-30
```

### Section End Detection

A section ends at the **first** of:
1. `---` (horizontal rule)
2. `## ` (same-level heading)
3. `# ` (higher-level heading)
4. EOF (end of file)

### Examples

```bash
# Extract Summary section
Grep("^## Summary$", file) → line 20
Grep("^---|^## ", file, offset: 21) → line 28
Read(file, offset: 20, limit: 8)

# Extract Quick Reference section
Grep("^## Quick Reference$", file) → line 30
Grep("^---|^## ", file, offset: 31) → line 55
Read(file, offset: 30, limit: 25)
```

---

## Retrieval Protocol

### Rule 1: Start at Lowest Depth

```
WRONG: Read entire SKILL-INDEX.md to find one skill
RIGHT: Grep("skill-name", SKILL-INDEX.md, -C:1)

WRONG: Read 5 skill files to understand what they do
RIGHT: Read each with limit:40 (frontmatter + summary)

WRONG: Read entire agent file to check if it has a skill
RIGHT: Grep("skills:.*skill-name", agent.md)
```

### Rule 2: Index First, Files Second

```
1. Check index file (SKILL-INDEX.md, AGENT-INDEX.md)
2. Extract needed info via grep
3. Only read source file if index insufficient
```

### Rule 3: Frontmatter Contains Metadata

All files have metadata in first 20 lines:

```yaml
---
name: identifier
description: "one-line summary"
layer: 1-4
keywords: [searchable, terms]
---
```

**To get metadata**: `Read(file, limit: 20)`

### Rule 4: Headings Define Sections

Standard markdown headings define extractable sections:

```markdown
## Summary          ← Grep target
Brief description.

---

## Quick Reference  ← Grep target
| Col | Col |
```

**To extract section**: Grep heading → find end → Read range

### Rule 5: Full Read Only for Targets

Full read justified when:
- File is the TARGET being modified/implemented
- L3 read confirmed full content needed
- Creating comprehensive documentation
- Debugging requires full context

---

## QMD File Structure

### Standard Layout

```markdown
---
name: identifier
description: "One-line (< 100 chars)"
layer: 1-4
keywords: [grep, targets]
---

# Title

## Summary

2-3 sentences. Key purpose.

---

## Quick Reference

| Pattern | Usage |
|---------|-------|

---

## Patterns

### Pattern 1
Content...

### Pattern 2
Content...

---

## Related

- [link](path)
```

### Reserved Headings

| Heading | Purpose | Required |
|---------|---------|----------|
| `## Summary` | Quick understanding (L3) | Yes |
| `## Quick Reference` | Lookup tables (L2-L3) | Yes |
| `## Patterns` | Implementation details | For skills |
| `## Scope` | Does/Does NOT | For agents |
| `## Related` | Cross-references | Recommended |

### Frontmatter Schema

```yaml
---
# Required
name: string           # Identifier (grep target)
description: string    # One-line (< 100 chars)
layer: number          # 1=foundation, 2=framework, 3=feature, 4=workflow

# Recommended
keywords: string[]     # Grep targets
depends_on: string[]   # Prerequisites
complements: string[]  # Often-used-with

# Optional
used_by: string[]      # Agents/commands using this
tech_stack: string[]   # Technologies
auto_apply: boolean    # Auto-trigger on match
---
```

---

## Index File Format

### Grep-Optimized Tables

```markdown
## Master Index

| Name | L | Keywords | Path |
|------|---|----------|------|
| skill-a | 2 | key1,key2 | skills/skill-a/SKILL.md |
| skill-b | 1 | key3,key4 | skills/skill-b/SKILL.md |

---

## Lookup by Keyword

| Keyword | Skills |
|---------|--------|
| entity | abp-framework, abp-entity, domain-modeling |
```

**Grep usage**:
```
Grep("skill-a", INDEX.md, output: content, -C: 0)
→ | skill-a | 2 | key1,key2 | skills/skill-a/SKILL.md |
```

---

## Examples

### Example 1: Analyze Agent

**Old approach** (2,434 lines):
```
Read(AGENT-QUICK-REF.md)        → 127 lines
Read(abp-developer.md)          → 144 lines
Read(SKILL-INDEX.md)            → 337 lines
Read(3 skill files)             → 1,283 lines
```

**Protocol approach** (~265 lines):
```
Read(abp-developer.md)                    → 108 lines (target)
Grep("abp-developer", AGENT-INDEX.md)     → 1 line
Grep(skills from agent, SKILL-INDEX.md)   → 11 lines
Read(3 skills, limit:40 each)             → 120 lines
```

**Savings: 89%**

### Example 2: Check Skill Exists

```bash
# L0: Just check existence
Grep("^name: xunit-testing", .claude/skills, output: files_with_matches)
→ .claude/skills/xunit-testing-patterns/SKILL.md
```

### Example 3: Extract Section

```bash
# L4: Section extraction (markdown-native)
Grep("^## Quick Reference$", skill.md) → line 30
Grep("^---|^## ", skill.md, offset: 31) → line 55
Read(skill.md, offset: 30, limit: 25)
→ Just the Quick Reference section
```

---

## Checklist

### For File Authors

- [ ] Frontmatter under 20 lines
- [ ] `description` is one line, under 100 chars
- [ ] `keywords` include grep targets
- [ ] `## Summary` section present (2-3 sentences)
- [ ] `## Quick Reference` has lookup tables
- [ ] `---` separators between major sections
- [ ] No critical info buried deep

### For Consumers

- [ ] Check index before reading files
- [ ] Use appropriate depth level (L0-L5)
- [ ] Start with L0-L2, escalate if needed
- [ ] Full read only for target files

---

## Related

- [knowledge-discovery](../knowledge-discovery/SKILL.md) - What skills to find
- [SKILL-INDEX.md](../../SKILL-INDEX.md) - Skill lookup tables
- [AGENT-INDEX.md](../../AGENT-INDEX.md) - Agent lookup tables
- [GUIDELINES.md](../../GUIDELINES.md) - Standards and protocols

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.