Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/raintree-technology/docpull/docpull-researchnpx skills add raintree-technology/docpull --skill docpull-researchgit clone --depth 1 https://github.com/raintree-technology/docpullWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00115 | $0.01206 |
| Opus 5 | $0.00057 | $0.00603 |
| Sonnet 5 | $0.00023 | $0.00241 |
| Haiku 4.5 | $0.00012 | $0.00121 |
Grade A, and why
docpull-research scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
docpull research
Ground library/framework, API, vendor, product, and website answers in fetched source material instead of training-data recall. The cost of one grep_docs call is ~50 ms; the cost of giving a confidently wrong answer about a fast-moving source is much higher.
When to use this skill
Activate when the user's question names a specific library, framework, SDK, API surface, vendor, product page, or website - especially:
- Fast-moving libraries where training-data drift is likely: Next.js (App Router), Pydantic v2, LangChain, FastAPI, Anthropic SDK, OpenAI SDK, Drizzle, Prisma, Tailwind v4+, Vercel AI SDK.
- Version-specific questions ("how does X work in [library] v[N]").
- Pasted documentation, blog, vendor, product, or source URLs the user wants explained or referenced.
- Code the user is actively writing against a library, where wrong signatures will cost them debugging time.
Do NOT activate for:
- General programming questions ("what's a closure", "explain async/await").
- The user's own codebase — that's what Read/Grep are for.
- Highly stable, well-known stdlib APIs (Python
os, JavaScriptArray.prototype). - Clarifying questions where the answer is trivial from context.
Workflow
1. Check what's already cached
Always start with list_indexed. It's free and tells you which libraries you can search immediately without fetching.
list_indexed() → ["fastapi (3d ago)", "react (12h ago)", ...]
2. If the source/library is cached -> search it
Use grep_docs with a focused regex. The source is already on disk, so this is a local search:
grep_docs(library="fastapi", pattern="dependency injection", limit=10, context=2)
If you want more context around a hit, use read_doc(library, path, line_start, line_end).
3. If the source/library is NOT cached -> decide whether to fetch
- Built-in alias (the source appears in
list_sources()): callensure_docs(source="<alias>"). This crawls and indexes the whole source. ~10-30s for typical sites. - Pasted documentation or source URL: call
fetch_url(url=...)if you only need one static/server-rendered page. For a whole source site you don't have an alias for, tell the user to run/web-add <URL>(or the older/docs-add <URL>alias) so docpull can register and crawl it; the MCPfetch_urlis single-page only. - No alias, user didn't paste a URL: ask the user once whether they'd like to add the source, and what URL should be used. Don't fetch speculatively.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 76 lines · 115 tokens per session scan A a8d645a06822
docpull-research is a skill published in the GitHub repository raintree-technology/docpull (25 stars, last pushed 6d ago), licensed MIT. It adds 115 tokens to every session and 1,206 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
doc-generator
Auto-generate API reference documentation from Python code.
decided-capture
Capture a NEW decision or requirement from a conversation (an interview) into ONE valid RAC (requirements-as-code) artifact — you interview and propose, the human ratifies, decided validate closes, and promotion into the trusted corpus is by pull request reviewed by someone other than the author. Use when a user wants…
decided-import
Reformat ONE existing document (a decision, requirement, design, roadmap, or prompt) into ONE valid RAC (requirements-as-code) artifact, with a mandatory human-review step before any file is written and decided validate as the deterministic close. Use when a user wants to add or import a single existing decision or…
decided-review
Review and triage a RAC (requirements-as-code) corpus using the decided CLI — work prioritised findings worst-first until validation and relationship checks pass. Use when asked to review, triage, or fix findings across a project's AsDecided corpus (the decisions/ directory).
decided-artifacts
Author and maintain RAC (requirements-as-code) Markdown artifacts — requirements, decisions, roadmaps, prompts, designs — using the decided CLI. Use when asked to create, read, validate, update, or link AsDecided (RAC) artifacts in a project's decisions/ directory.
ingest-l1
L1 analysis loop for the abapwiki knowledge base: for each batch it launches the abap-analyzer sub-agent in parallel, then the adversarial judge abap-deepcheck (separate session), applies only the analyses that pass the fail-closed gate, and commits. Resumes exactly after an interruption. Use this skill to document…