agentleFS
JetBrainsKnown publisherJetBrains/thinkrail/thinkrail-extensions/web-access/skills/librarian/SKILL.md

librarian

Skill8.3k starsChanged 6 days agoApache-2.0View on GitHub

Research open-source libraries with evidence-backed answers and GitHub permalinks. Use when the user asks about library internals, needs implementation details with source code references, wants to understand why something was changed, or needs authoritative answers backed by actual code. Excels at navigating large open-source repos and providing citations to exact lines of code.

  • Reads credentials

20 other projects use a version of this.

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 1 mentionSep 2026: 4 mentionsOct 2026: 75 mentionsNov 2026: 7 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the JetBrains/thinkrail repository that our weekly crawl found. There is no adoption data for this file yet.

Most recently taken up by

Who's talking about JetBrains/thinkrail

The biggest 5 of 87 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 87

Talked about on GitHub, YouTube, Bluesky, the web and Hacker News (87 times).

On GitHub · 36

31 more on GitHub

On YouTube · 23

18 more on YouTube

On Bluesky · 14

9 more on Bluesky

On the web · 13

8 more on the web

On Hacker News · 1

Used with

Projects with it also use bro, retro and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • MicrosoftSkill

    bro

    Re-explain the previous assistant message in a much simpler way, for when the reply made you go 'bro what'. Use /bro to get a simpler version of the last answer in Plain Language + Chicago Manual of Style, with diagrams where they help.

    Also in 3 projects that use this

  • AWSSkill

    retro

    Conduct a retrospective on a coding session.

    Also in 3 projects that use this

  • GoogleSkill

    tdd

    Test-driven development. Use when the user wants to build features or fix bugs test-first, mentions "red-green-refactor", or wants integration tests.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

9 rules. 0 are common, 8 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 20 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before doing anything, classify the request to pick the right research strategy.

    line 22
  2. Very specific:

    Use bash to search the cloned repo: grep -rn "function_name", find .

    line 47
  3. Distinctive:

    Use read to examine specific files once you've located them

    line 48
  4. Distinctive:

    Use git operations on the cloned repo:

    line 56
  5. Distinctive:

    Always use full commit SHAs, not branch names.

    line 121
  6. Distinctive:

    Every code-related claim needs a permalink.

    line 125
  7. Distinctive:

    Use single timestamps for known moments, ranges for visual scanning, and frames-alone for a quick overview of the whole video.

    line 172
  8. Distinctive:

    Prefer recent sources; filter out outdated results when they conflict with newer information

    line 192
  9. Distinctive:

    When the repo is already cloned from a previous fetch_content call, reuse it -- check the path before cloning again

    line 194

“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Librarian

Answer questions about open-source libraries by finding evidence with GitHub permalinks. Every claim backed by actual code.

Execution Model

Pi runs the independent tool calls of one turn concurrently, and batching them saves LLM round-trips (~5-10s each). Use these patterns:

PatternWhenActually parallel?
Batch tool calls in one turnIndependent ops (web_search + fetch_content + read)Yes, and saves round-trips
fetch_content({ urls: [...] })Multiple URLs to fetchYes (3 concurrent)
Bash with & + waitMultiple git/gh commandsYes (OS-level)

Step 1: Classify the Request

Before doing anything, classify the request to pick the right research strategy.

TypeTriggerPrimary Approach
Conceptual"How do I use X?", "Best practice for Y?"web_search + fetch_content (README/docs)
Implementation"How does X implement Y?", "Show me the source"fetch_content (clone) + code search
Context/History"Why was this changed?", "History of X?"git log + git blame + issue/PR search
ComprehensiveComplex or ambiguous requests, "deep dive"All of the above

Step 2: Research by Type

Conceptual Questions

Batch these in one turn:

  1. web_search: "library-name topic" for recent articles and discussions
  2. fetch_content: the library's GitHub repo URL to clone and check README, docs, or examples

Synthesize web results + repo docs. Cite official documentation and link to relevant source files.

Implementation Questions

The core workflow -- clone, find, permalink:

  1. fetch_content the GitHub repo URL -- this clones it locally and returns the file tree after Repository cloned to: <path>; that path is the clone, use it for every step below
  2. Use bash to search the cloned repo: grep -rn "function_name", find . -name "*.ts"
  3. Use read to examine specific files once you've located them
  4. Get the commit SHA: cd <clone path> && git rev-parse HEAD
  5. Construct permalink: https://github.com/owner/repo/blob/<sha>/path/to/file#L10-L20

Batch the initial calls: fetch_content (clone) + web_search (recent discussions) in one turn. Then dig into the clone with grep/read once it's available.

Context/History Questions

Use git operations on the cloned repo:

cd <clone path>

# Recent changes to a specific file
git log --oneline -n 20 -- path/to/file.ts

# Who changed what and when
git blame -L 10,30 path/to/file.ts

# Full diff for a specific commit
git show <sha> -- path/to/file.ts

# Search commit messages
git log --oneline --grep="keyword" -n 10

For issues and PRs, use bash:

# Search issues
gh search issues "keyword" --repo owner/repo --state all --limit 10

# Search merged PRs
gh search prs "keyword" --repo owner/repo --state merged --limit 10

# View specific issue/PR with comments
gh issue view <number> --repo owner/repo --comments
gh pr view <number> --repo owner/repo --comments

# Release notes
gh api repos/owner/repo/releases --jq '.[0:5] | .[].tag_name'

Comprehensive Research

Combine everything. Batch these in one turn:

  1. web_search: recent articles and discussions
  2. fetch_content: clone the repo (or multiple repos if comparing)
  3. bash: gh search issues "keyword" --repo owner/repo --limit 10 & gh search prs "keyword" --repo owner/repo --state merged --limit 10 & wait

Then dig into the clone with grep, read, git blame, git log as needed.

Step 3: Construct Permalinks

Permalinks are the whole point. They make your answers citable and verifiable.

https://github.com/<owner>/<repo>/blob/<commit-sha>/<filepath>#L<start>-L<end>

Getting the SHA from a cloned repo:

cd <clone path> && git rev-parse HEAD

Getting the SHA from a tag:

gh api repos/owner/repo/git/refs/tags/v1.0.0 --jq '.object.sha'

Always use full commit SHAs, not branch names. Branch links break when code changes. Permalinks don't.

Step 4: Cite Everything

Every code-related claim needs a permalink. Format:

The stale time check happens in [`notifyManager.ts`](https://github.com/TanStack/query/blob/abc123/packages/query-core/src/notifyManager.ts#L42-L50):

\`\`\`typescript
function isStale(query: Query, staleTime: number): boolean {
  return query.state.dataUpdatedAt + staleTime < Date.now()
}
\`\`\`

For conceptual answers, link to official docs and relevant source files. For implementation answers, every function/class reference should have a permalink.

Video Analysis

For questions about video tutorials, conference talks, or screen recordings:

// Full extraction (transcript + visual descriptions)
fetch_content({ url: "https://youtube.com/watch?v=abc" })

// Ask a specific question about a video
fetch_content({ url: "https://youtube.com/watch?v=abc", prompt: "What libraries are imported in this tutorial?" })

// Single frame at a known moment
fetch_content({ url: "https://youtube.com/watch?v=abc", timestamp: "23:41" })

// Range scan for visual discovery
fetch_content({ url: "https://youtube.com/watch?v=abc", timestamp: "23:41-25:00" })

// Custom density across a range
fetch_content({ url: "https://youtube.com/watch?v=abc", timestamp: "23:41-25:00", frames: 3 })

// Whole-video sampling
fetch_content({ url: "https://youtube.com/watch?v=abc", frames: 6 })

// Analyze a local recording
fetch_content({ url: "/path/to/demo.mp4", prompt: "What error message appears on screen?" })

// Batch multiple videos with the same question
fetch_content({
  urls: ["https://youtube.com/watch?v=abc", "https://youtube.com/watch?v=def"],
  prompt: "What packages are installed?"
})

Use single timestamps for known moments, ranges for visual scanning, and frames-alone for a quick overview of the whole video.

The prompt parameter applies to video content (YouTube URLs and local video files); for other URLs it is used only with mode: "answer".

Failure Recovery

FailureRecovery
grep finds nothingBroaden the query, try concept names instead of exact function names
gh CLI rate limitedUse git in the clone fetch_content already returned
Repo too large to clonefetch_content returns an API-only view automatically; use that or add forceClone: true
File not found in cloneBranch name with slashes may have misresolved; list the repo tree and navigate manually
Uncertain about implementationState your uncertainty explicitly, propose a hypothesis, show what evidence you did find
Video extraction failsSet GEMINI_API_KEY, or turn on allowBrowserCookies in web-search.json and sign Chrome into gemini.google.com
Page returns 403/bot block or reads as incompleteHosted extraction fallbacks are off unless fetchRouting.allowRemoteHostedProviders is on; retry with mode: "raw", find another source, or tell the user the setting the error names
web_search failsCheck provider config; name another configured provider

Guidelines

  • Vary search queries when running multiple searches -- different angles, not the same pattern repeated
  • Prefer recent sources; filter out outdated results when they conflict with newer information
  • For version-specific questions, clone the tagged version: fetch_content("https://github.com/owner/repo/tree/v1.0.0")
  • When the repo is already cloned from a previous fetch_content call, reuse it -- check the path before cloning again
  • Answer directly. Skip preamble like "I'll help you with..." -- go straight to findings

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.