librarian/SKILL.md
Deep codebase exploration across remote repositories. Fetch, search, and compare library source code. Use for internals, architecture analysis, and cross-repo patterns. Skip simple API or docs questions.
npx skillsauth add sanurb/skills librarianInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Deep codebase exploration across remote repositories.
source.name from fetch results for every subsequent opensrc call. Never re-derive it.context7 first. Use opensrc only for implementation internals.references/linking.md.| File | Purpose | When to Read |
|------|---------|--------------|
| tool-routing.md | Tool selection decision trees | Read first |
| opensrc-api.md | opensrc-mcp codemode API surface | Writing exploration code |
| opensrc-examples.md | Multi-step exploration workflows | Reusing proven patterns |
| linking.md | GitHub and GitLab URL patterns | Formatting citations |
| diagrams.md | Mermaid patterns | Visualizing architecture |
tool-routing.md.opensrc-api.md and opensrc-examples.md.linking.md and diagrams.md.| Tool | Best For | Limitations | |------|----------|-------------| | grep_app | Find patterns across public GitHub | Literal search only | | context7 | Library docs, API examples, usage | Known libraries only | | opensrc | Fetch full source for deep exploration | Fetch before read |
Known library?
├─ Yes → context7.resolve-library-id → context7.query-docs
│ └─ Need internals? → opensrc.fetch → read source
└─ No → grep_app search → opensrc.fetch top result
Specific repo?
├─ Yes → opensrc.fetch → opensrc.grep → read matches
└─ No → grep_app search → opensrc.fetch interesting repos
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 from findings
1. opensrc.fetch(["X", "Y"])
2. Capture source.name from each fetch result
3. opensrc.grep(pattern, { sources: [nameX, nameY] })
4. Read comparable files
5. Synthesize differences
After fetching, use source.name for every later call:
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" |
| 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 |
development
Sets up an `## Agent skills` block in AGENTS.md/CLAUDE.md and `docs/agents/` so the engineering skills know this repo's issue tracker (GitHub, GitLab, fp, or local markdown), triage label vocabulary, and domain doc layout. Run before first use of `fp-plan`, `fp-implement`, `fp-review`, `to-issues`, `to-prd`, `triage`, `diagnose`, `tdd`, `improve-codebase-architecture`, or `zoom-out` — or if those skills appear to be missing context about the issue tracker, triage labels, or domain docs.
development
Build a throwaway prototype to flush out a design before committing to it. Routes between two branches — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route. Use when the user wants to prototype, sanity-check a data model or state machine, mock up a UI, explore design options, or says "prototype this", "let me play with it", "try a few designs".
tools
Control herdr (a terminal-native agent multiplexer) from inside it. Manage workspaces and tabs, split panes, spawn sibling agents, read pane output, and wait for state changes — all via CLI commands that talk to the running herdr instance over a local unix socket. Use when running inside herdr (HERDR_ENV=1). Do not use outside herdr.
documentation
Compact the current conversation into a handoff document for another agent to pick up.