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 skills add docxology/template --skill searchgit clone --depth 1 https://github.com/docxology/templateWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/docxology/template/search)<a href="https://agentmods.dev/skills/docxology/template/search"><img src="https://agentmods.dev/badge/skills/docxology/template/search.svg" alt="Measured on agentmods" height="20"></a>- NVIDIA SkillSpector pass
What 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.1 | $0.00121 | $0.02106 |
| Opus 5 | $0.00060 | $0.01053 |
| Sonnet 5 | $0.00024 | $0.00421 |
| Haiku 4.5 | $0.00012 | $0.00211 |
Grade A, and why
infrastructure-search 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 4d 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 — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Search Module
Discovery utilities for academic literature, modelled after the
agent-native abstractions of Paperclip: every
backend produces normalised Paper records that downstream consumers
(citation export, manuscript synthesis, agent loops) can treat uniformly.
literature — Multi-source literature search
from infrastructure.search.literature import (
Paper, SearchQuery, SearchResult, merge_papers,
SearchBackend, LocalBackend, CrossrefBackend, ArxivBackend, PaperclipBackend,
LiteratureClient, SearchCache,
HttpClient, UrllibHttpClient, HttpResponse, BackendError,
)
Search across arXiv + Crossref
client = LiteratureClient([ArxivBackend(), CrossrefBackend(mailto="[email protected]")])
result = client.search(SearchQuery(text="protein language model fitness", max_results=20))
print(f"{len(result)} unique papers from {len(result.per_source_counts)} backends")
for paper in result.papers[:5]:
print(f" [{paper.score:.2f}] {paper.title} ({paper.year}) {paper.doi or paper.url}")
Search a local JSON corpus (offline-friendly)
backend = LocalBackend("data/curated_corpus.json")
result = LiteratureClient([backend]).search(SearchQuery(text="convex"))
Corpus format — either a list of Paper dicts or {"papers": [...]}:
[
{
"id": "doi:10.1126/science.1213847",
"title": "Reproducible research in computational science",
"authors": ["Roger D Peng"],
"year": 2011,
"doi": "10.1126/science.1213847",
"venue": "Science", "venue_type": "journal"
}
]
Search Paperclip (API key required)
import os
backend = PaperclipBackend(api_key=os.environ["PAPERCLIP_API_KEY"])
result = LiteratureClient([backend]).search(
SearchQuery(text="GRPO hyperparameters", sources=["arxiv"], max_results=50)
)
Cache results for reproducibility
cache = SearchCache("output/search_cache", ttl_seconds=3600 * 24)
client = LiteratureClient([ArxivBackend(), CrossrefBackend()], cache=cache)
# First call hits the network and writes search_<hash>.json.
client.search(SearchQuery(text="adam optimizer"))
# Re-running the identical query is a deterministic file read.
client.search(SearchQuery(text="adam optimizer"))
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- __init__.py 5.4 KB runs code
- AGENTS.md 12 KB
- connectors/__init__.py 4.0 KB runs code
- connectors/__main__.py 151 B runs code
- connectors/AGENTS.md 3.4 KB
- connectors/cli.py 3.3 KB runs code
- connectors/config.py 3.4 KB runs code
- connectors/http.py 7.1 KB runs code
- connectors/impl/__init__.py 1.2 KB runs code
- connectors/impl/AGENTS.md 2.0 KB
- connectors/impl/arxiv.py 4.6 KB runs code
- connectors/impl/base.py 1.3 KB runs code
- connectors/impl/biorxiv.py 4.0 KB runs code
- connectors/impl/crossref.py 4.2 KB runs code
- connectors/impl/europepmc.py 3.9 KB runs code
- connectors/impl/openalex.py 4.4 KB runs code
- connectors/impl/pdb.py 4.2 KB runs code
- connectors/impl/README.md 131 B
- connectors/impl/semantic_scholar.py 4.2 KB runs code
- connectors/impl/uniprot.py 3.8 KB runs code
- connectors/README.md 2.9 KB
- connectors/registry.py 4.1 KB runs code
- connectors/SKILL.md 4.4 KB
- connectors/stage.py 12 KB runs code
- connectors/types.py 6.0 KB runs code
- deep_research/__init__.py 2.4 KB runs code
- deep_research/__main__.py 184 B runs code
- deep_research/AGENTS.md 3.6 KB
- deep_research/artifacts.py 6.0 KB runs code
- deep_research/cli.py 6.2 KB runs code
- deep_research/client.py 11 KB runs code
- deep_research/config.py 4.9 KB runs code
- deep_research/gemini.py 6.6 KB runs code
- deep_research/models.py 3.0 KB runs code
- deep_research/openai.py 6.9 KB runs code
- deep_research/project_context.py 10 KB runs code
- deep_research/prompting.py 2.3 KB runs code
- deep_research/README.md 8.1 KB
- deep_research/retry.py 3.3 KB runs code
- exa/__init__.py 2.6 KB runs code
- exa/__main__.py 164 B runs code
- exa/AGENTS.md 1.6 KB
- exa/answer/__init__.py 150 B runs code
- exa/answer/AGENTS.md 663 B
- exa/answer/interface.py 1.6 KB runs code
- exa/answer/README.md 456 B
- exa/CAPABILITIES.md 11 KB
- exa/cli.py 4.6 KB runs code
- exa/client.py 4.2 KB runs code
- exa/config.py 2.8 KB runs code
- exa/contents/__init__.py 158 B runs code
- exa/contents/AGENTS.md 709 B
- exa/contents/interface.py 2.2 KB runs code
- exa/contents/README.md 463 B
- exa/errors.py 811 B runs code
- exa/find_similar/__init__.py 171 B runs code
- exa/find_similar/AGENTS.md 717 B
- exa/find_similar/interface.py 2.7 KB runs code
- exa/find_similar/README.md 445 B
- exa/http.py 2.9 KB runs code
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.
- 4d ago First seen · 224 lines · 121 tokens per session scan A d18d0488665d
infrastructure-search is a skill published in the GitHub repository docxology/template (19 stars, last pushed today), licensed Apache-2.0. It adds 121 tokens to every session and 2,106 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-09-03.
Other skills, from other repositories
planning-with-files
Persistent file-based planning for multi-step AI-agent work. Keeps taskplan.md, findings.md, and progress.md on disk; lifecycle hooks inject selected project planning context. Automatic recovery reads project planning files only. Explicit session-catchup.py --metadata reads same-project local agent session records and…
aerospace-engineering-technician
Use when a task needs the judgment of an Aerospace Engineering and Operations Technologist/Technician — verifying an installed fastener's preload against a drawing's torque callout via the T=K·D·F relationship, reducing strain-gauge data from a structural proof-load test into stress and checking it against an…
auto-body-repairer
Use when a task needs the judgment of an auto-body-repairer — deciding whether a damaged structural component gets pulled or replaced, reconciling an insurance estimate against actual teardown damage, writing a supplement, determining whether a repair triggers ADAS recalibration, or checking a proposed repair against…
auto-service-technician
Use when a task needs senior auto-service-technician judgment — diagnosing a check-engine-light or drivability complaint from DTCs and live data, deciding whether a code-named part actually needs replacing or the fault lies upstream, scoping a flat-rate repair order and labor time, choosing warranty vs. customer-pay…
aviation-inspector
Use when a task needs the judgment of an Aviation Inspector — determining whether an air carrier's fleet is in compliance with an Airworthiness Directive across a maintenance-records sample, deciding where the FAA's compliance-and-enforcement ladder places a finding (compliance action vs. Letter of Correction vs.…
avionics-technician
Use when a task needs the judgment of an avionics technician — chasing an intermittent nav/comm or autopilot fault that "checks good" on the ground, deciding whether an avionics upgrade needs an STC or qualifies for field approval, verifying bonding resistance and wire-bundle separation on an install, cross-checking a…