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 VioletCranberry/coco-search --skill cocosearch-add-extractorgit clone --depth 1 https://github.com/VioletCranberry/coco-searchWrote 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/violetcranberry/coco-search/cocosearch-add-extractor)<a href="https://agentmods.dev/skills/violetcranberry/coco-search/cocosearch-add-extractor"><img src="https://agentmods.dev/badge/skills/violetcranberry/coco-search/cocosearch-add-extractor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/violetcranberry/coco-search/cocosearch-add-extractor"><img src="https://agentmods.dev/badge/skills/violetcranberry/coco-search/cocosearch-add-extractor.svg" alt="Reviewed on agentmods" width="80" 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.00057 | $0.03711 |
| Opus 5.5 | $0.00023 | $0.01484 |
| Sonnet 5.5 | $0.00011 | $0.00742 |
| Haiku 4.5 | $0.00006 | $0.00371 |
Grade A, and why
cocosearch-add-extractor 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 1mo 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 — 436 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add Dependency Extractor with CocoSearch
A structured workflow for adding a dependency extractor to CocoSearch. Dependency extractors parse files to build a graph of what-depends-on-what, enabling deps tree, deps impact, get_file_dependencies/get_file_impact MCP tools, and include_deps=True in search results.
Philosophy: Extractors are autodiscovered and lightweight -- they parse one file at a time and emit edges. Module resolvers are optional and translate raw import strings into file paths. This skill guides you through both, with pre-checks that prevent wasted work.
Reference: The existing 8 extractors in src/cocosearch/deps/extractors/ and 4 resolvers in src/cocosearch/deps/resolver.py serve as patterns.
Step 1: Pre-checks
Before writing any code, verify the extractor is viable.
1a. Check If an Extractor Already Exists
search_code(
query="dependency extractor LANGUAGES",
symbol_type="class",
use_hybrid_search=True,
smart_context=True
)
Or check the registry directly:
uv run python -c "from cocosearch.deps.registry import get_all_extractor_language_ids; print(sorted(get_all_extractor_language_ids()))"
Currently registered: cjs, cts, docker-compose, github-actions, go, helm-template, helm-values, js, jsx, mjs, mts, py, terraform, ts, tsx.
If the target language_id is already listed, stop. The extractor exists. Inform the user.
1b. Determine the Language ID
The extractor's LANGUAGES set must match the language_id assigned during indexing:
| Source | language_id comes from | Example |
|---|---|---|
| Standard language | File extension without dot | .py -> py, .go -> go |
| Language handler | handler.SEPARATOR_SPEC.language_name |
hcl, dockerfile, bash |
| Grammar handler | handler.GRAMMAR_NAME |
docker-compose, github-actions, terraform |
Verify the language_id exists in the system:
search_code(
query="LANGUAGE_EXTENSIONS EXTENSIONS language_name GRAMMAR_NAME",
use_hybrid_search=True,
smart_context=True
)
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.
- 1mo ago First seen · 436 lines · 57 tokens per session scan A 9a8928c6f6de
cocosearch-add-extractor is a skill published in the GitHub repository VioletCranberry/coco-search (37 stars, last pushed 4d ago), licensed MIT. It adds 57 tokens to every session and 3,711 once invoked, about $0.0002 per session on Opus 5.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
gno
Search local documents, files, notes, and knowledge bases. Index directories, search with BM25/vector/hybrid, get AI answers with citations. Use when user wants to search files, find documents, query notes, look up information in local folders, index a directory, set up document search, build a knowledge base, needs…
rawq
Context retrieval engine. Semantic + lexical hybrid search over codebases. Returns ranked code chunks with file paths, line ranges, scope labels, and confidence scores.
vera
Code search over the current repository. Before reading files to answer "where is X", "how does Y work", "find Z", or "what calls W", run vera search " " or vera references first. Use vera grep for exact strings and regex, vera structural for definitions, routes, and env reads. Do not read multiple files hoping to…
memory-capture
Capture decisions, learnings, patterns, and context as persistent memories that survive across sessions.
memory-recall
Search and surface relevant memories to inform current work with decisions, patterns, and learnings from past sessions.
subcog-integrator
Analyze and enhance AI prompts, skills, commands, hooks, and system configurations to leverage Subcog's persistent memory system effectively.