home / skills / dmmulroy / .dotfiles / librarian

This skill helps you explore multi-repository codebases, compare library implementations, and understand architectures across GitHub, npm, PyPI, and crates.

npx playbooks add skill dmmulroy/.dotfiles --skill librarian

Review the files below or copy the command above to add this skill to your agents.

Files (6)
SKILL.md
4.0 KB
---
name: librarian
description: Multi-repository codebase exploration. Research library internals, find code patterns, understand architecture, compare implementations across GitHub/npm/PyPI/crates. Use when needing deep understanding of how libraries work, finding implementations across open source, or exploring remote repository structure.
references:
  - references/tool-routing.md
  - references/opensrc-api.md
  - references/opensrc-examples.md
  - references/linking.md
  - references/diagrams.md
---

# Librarian Skill

Deep codebase exploration across remote repositories.

## How to Use This Skill

### Reference Structure

| File | Purpose | When to Read |
|------|---------|--------------|
| `tool-routing.md` | Tool selection decision trees | **Always read first** |
| `opensrc-api.md` | API reference, types | Writing opensrc code |
| `opensrc-examples.md` | JavaScript patterns, workflows | Implementation examples |
| `linking.md` | GitHub URL patterns | Formatting responses |
| `diagrams.md` | Mermaid patterns | Visualizing architecture |

### Reading Order

1. **Start** with `tool-routing.md` → choose tool strategy
2. **If using opensrc:**
   - Read `opensrc-api.md` for API details
   - Read `opensrc-examples.md` for patterns
3. **Before responding:** `linking.md` + `diagrams.md` for output formatting

## Tool Arsenal

| Tool | Best For | Limitations |
|------|----------|-------------|
| **grep_app** | Find patterns across ALL public GitHub | Literal search only |
| **context7** | Library docs, API examples, usage | Known libraries only |
| **opensrc** | Fetch full source for deep exploration | Must fetch before read |

## Quick Decision Trees

### "How does X work?"

```
Known library?
├─ Yes → context7.resolve-library-id → context7.query-docs
│        └─ Need internals? → opensrc.fetch → read source
└─ No  → grep_app search → opensrc.fetch top result
```

### "Find pattern X"

```
Specific repo?
├─ Yes → opensrc.fetch → opensrc.grep → read matches
└─ No  → grep_app (broad) → opensrc.fetch interesting repos
```

### "Explore repo structure"

```
1. opensrc.fetch(target)
2. opensrc.tree(source.name) → quick overview
3. opensrc.files(source.name, "**/*.ts") → detailed listing
4. Read: README, package.json, src/index.*
5. Create architecture diagram (see diagrams.md)
```

### "Compare X vs Y"

```
1. opensrc.fetch(["X", "Y"])
2. Use source.name from results for subsequent calls
3. opensrc.grep(pattern, { sources: [nameX, nameY] })
4. Read comparable files, synthesize differences
```

## Critical: Source Naming Convention

**After fetching, always use `source.name` for subsequent calls:**

```javascript
const [{ source }] = await opensrc.fetch("vercel/ai");
const files = await opensrc.files(source.name, "**/*.ts");
```

| Type | Fetch Spec | Source Name |
|------|------------|-------------|
| npm | `"zod"` | `"zod"` |
| npm scoped | `"@tanstack/react-query"` | `"@tanstack/react-query"` |
| pypi | `"pypi:requests"` | `"requests"` |
| crates | `"crates:serde"` | `"serde"` |
| GitHub | `"vercel/ai"` | `"github.com/vercel/ai"` |
| GitLab | `"gitlab:org/repo"` | `"gitlab.com/org/repo"` |

## When NOT to Use opensrc

| Scenario | Use Instead |
|----------|-------------|
| Simple library API questions | context7 |
| Finding examples across many repos | grep_app |
| Very large monorepos (>10GB) | Clone locally |
| Private repositories | Direct access |

## Output Guidelines

1. **Comprehensive final message** - only last message returns to main agent
2. **Parallel tool calls** - maximize efficiency
3. **Link every file reference** - see `linking.md`
4. **Diagram complex relationships** - see `diagrams.md`
5. **Never mention tool names** - say "I'll search" not "I'll use opensrc"

## References

- [Tool Routing Decision Trees](references/tool-routing.md)
- [opensrc API Reference](references/opensrc-api.md)
- [opensrc Code Examples](references/opensrc-examples.md)
- [GitHub Linking Patterns](references/linking.md)
- [Mermaid Diagram Patterns](references/diagrams.md)

Overview

This skill is a multi-repository codebase exploration assistant for researching library internals, comparing implementations, and mapping remote repository structure. It helps you locate patterns across public open-source, fetch full sources for deep inspection, and produce concise architectural summaries. Use it when you need a deep, evidence-backed understanding of how libraries work or how different projects implement the same feature.

How this skill works

The skill performs wide searches across public repositories to identify candidate projects, then fetches repository source trees and targeted files for detailed inspection. It extracts README, manifest, and key source files, greps for code patterns, and synthesizes findings into architecture notes and diffs. Outputs include file links, concise comparisons, and optional architecture diagrams to visualize relationships.

When to use it

  • Understand internal behavior of a library beyond its published API
  • Find implementations of a pattern across GitHub, npm, PyPI, or crates
  • Compare two libraries’ internals to decide which to adopt
  • Explore an unfamiliar repository’s structure and key entrypoints
  • Gather concrete examples for writing compatible integrations

Best practices

  • Start by deciding whether you need docs-level answers or source-level inspection
  • Fetch the repository source before referencing file paths; use the returned source identifier for subsequent queries
  • Prioritize README, package manifests, and src/index or entry files for a fast orientation
  • Search broadly first to find representative repos, then fetch a small set for deep comparison
  • Avoid fetching very large monorepos; clone locally if the codebase exceeds practical fetch limits

Example use cases

  • Investigate how three serialization libraries implement schema validation and list the API/behavior differences
  • Locate all usages of a security-sensitive function pattern across public GitHub to assess prevalence
  • Compare HTTP client implementations across languages to extract common retry/backoff strategies
  • Map an unfamiliar repo: list top-level packages, typical entrypoints, and recommended reading order
  • Extract example snippets from multiple libraries to assemble a compatibility shim

FAQ

Can this skill inspect private repositories?

No. It works only with public sources; for private repos clone and inspect locally.

When should I prefer a quick docs lookup versus fetching source?

Use a docs lookup for simple API questions. Fetch source when you need implementation details, behavior guarantees, or file-level evidence.