librarian

librarian

Populaire

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.

350étoiles
28forks
Mis à jour 1/21/2026
SKILL.md
readonlyread-only
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.

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:

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

You Might Also Like

Related Skills

coding-agent

coding-agent

179Kdev-codegen

Run Codex CLI, Claude Code, OpenCode, or Pi Coding Agent via background process for programmatic control.

openclaw avataropenclaw
Obtenir
add-uint-support

add-uint-support

97Kdev-codegen

Add unsigned integer (uint) type support to PyTorch operators by updating AT_DISPATCH macros. Use when adding support for uint16, uint32, uint64 types to operators, kernels, or when user mentions enabling unsigned types, barebones unsigned types, or uint support.

pytorch avatarpytorch
Obtenir
at-dispatch-v2

at-dispatch-v2

97Kdev-codegen

Convert PyTorch AT_DISPATCH macros to AT_DISPATCH_V2 format in ATen C++ code. Use when porting AT_DISPATCH_ALL_TYPES_AND*, AT_DISPATCH_FLOATING_TYPES*, or other dispatch macros to the new v2 API. For ATen kernel files, CUDA kernels, and native operator implementations.

pytorch avatarpytorch
Obtenir
skill-writer

skill-writer

97Kdev-codegen

Guide users through creating Agent Skills for Claude Code. Use when the user wants to create, write, author, or design a new Skill, or needs help with SKILL.md files, frontmatter, or skill structure.

pytorch avatarpytorch
Obtenir

Implements JavaScript classes in C++ using JavaScriptCore. Use when creating new JS classes with C++ bindings, prototypes, or constructors.

oven-sh avataroven-sh
Obtenir

Creates JavaScript classes using Bun's Zig bindings generator (.classes.ts). Use when implementing new JS APIs in Zig with JSC integration.

oven-sh avataroven-sh
Obtenir