Agent skill
librarian
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.
Install this agent skill to your Project
npx add-skill https://github.com/dmmulroy/.dotfiles/tree/main/home/.config/opencode/skill/librarian
SKILL.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
- Start with
tool-routing.md→ choose tool strategy - If using opensrc:
- Read
opensrc-api.mdfor API details - Read
opensrc-examples.mdfor patterns
- Read
- Before responding:
linking.md+diagrams.mdfor 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:
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
- Comprehensive final message - only last message returns to main agent
- Parallel tool calls - maximize efficiency
- Link every file reference - see
linking.md - Diagram complex relationships - see
diagrams.md - Never mention tool names - say "I'll search" not "I'll use opensrc"
References
- Tool Routing Decision Trees
- opensrc API Reference
- opensrc Code Examples
- GitHub Linking Patterns
- Mermaid Diagram Patterns
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
pr-walkthrough
Generate an interactive visual walkthrough of any pull/merge request as a local HTML webapp. Produces a multi-slide presentation with SVG diagrams, annotated code, and architecture visuals. Pass a PR/MR URL and optional audience context (e.g. "assume I don't know Rust"). Use when the user says "walkthrough this PR", "explain this MR", "visual walkthrough", "PR presentation", or provides a PR/MR URL and asks for a walkthrough.
tdd
Test-driven development with red-green-refactor loop. Use when user wants to build features or fix bugs using TDD, mentions "red-green-refactor", wants integration tests, or asks for test-first development.
write-a-prd
Create a PRD through user interview, codebase exploration, and module design. Use when user wants to write a PRD, create a product requirements document, or plan a new feature.
grill-me
Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
prd-to-todos
Break a PRD into independently-grabbable file-backed todos using tracer-bullet vertical slices. Use when the user wants to convert a PRD into implementation tasks, create vertical-slice todos, or break down a PRD into work items.
tmux
Remote control tmux sessions for interactive CLIs (python, gdb, etc.) by sending keystrokes and scraping pane output.
Didn't find tool you were looking for?