sourceweave-web-search: Skill for Claude Code

.agents/skills/sourceweave-search-tool-testing/SKILL.md

sourceweave-search-tool-testing is a skill for Claude Code, Codex from MRNAQA/sourceweave-web-search. It costs 109 tokens per session (1,441 once invoked), scanned A, original, MIT.

A set of instructions for testing SourceWeave Web Search locally before deployment or after runtime changes. SourceWeave is a web-search tool that can search, open pages, and convert documents.

In plain words
What is it for?
Use it to run smoke tests for web search and page reading, check result formats and metadata, test batches of pages or direct URLs, and distinguish package settings from container settings.
Why use it?
It helps catch mismatches between the main source code and its generated OpenWebUI version, as well as problems with search, page reading, defaults, and saved page IDs.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents).

This is MRNAQA/sourceweave-web-search's own configuration. It tells Claude Code and Codex how to work on sourceweave-web-search itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything sourceweave-web-search configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is docker compose run --rm mcp uv run python tests/test_phase4.py.

Reuse

Borrowing it

Nothing to install: this file belongs to MRNAQA/sourceweave-web-search. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/MRNAQA/sourceweave-web-search/main/.agents/skills/sourceweave-search-tool-testing/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/MRNAQA/sourceweave-web-search

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for sourceweave-search-tool-testing

README.md
[![agentmods](https://agentmods.dev/badge/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing/github.svg)](https://agentmods.dev/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing)
Your own site
<a href="https://agentmods.dev/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing"><img src="https://agentmods.dev/badge/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing/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.

agentmods 80×15 button for sourceweave-search-tool-testing

Your own site · 80×15
<a href="https://agentmods.dev/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing"><img src="https://agentmods.dev/badge/skills/mrnaqa/sourceweave-web-search/sourceweave-search-tool-testing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 109 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,441 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00109 $0.01441
Opus 5.5 $0.00044 $0.00576
Sonnet 5.5 $0.00022 $0.00288
Haiku 4.5 $0.00011 $0.00144

Measured 2mo ago against content hash 649451b99f2b, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

sourceweave-search-tool-testing 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 2mo 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.

.agents/skills/sourceweave-search-tool-testing/SKILL.md · 149 lines

How it starts

The opening of the file, as written. The whole thing — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.

SourceWeave Web Search Tool Testing

Use this repo as a standalone harness. Do not add a target app back into the workflow unless the user explicitly asks for it.

The canonical source lives under src/sourceweave_web_search/tool.py. artifacts/sourceweave_web_search.py is a generated standalone OpenWebUI artifact and should be validated with the build/check command instead of treated as the source of truth.

Goal

Validate the current standalone behavior directly:

  • confirm the OpenWebUI artifact is still in sync with the canonical source
  • call search_web(...) through the repo's package CLI or direct tool runtime
  • inspect the returned list shape, summaries, and runtime metadata when useful
  • call read_pages(...) with batched page_ids or direct urls
  • distinguish package host defaults from compose mcp container-network defaults
  • verify direct URL and document-conversion behavior when the user is exercising those paths
  • remember that Redis or Valkey now backs persisted page_id reuse; only same-call direct reads should work without persistence

Default assumptions

There are two valid default contexts in this repo. Do not blur them together.

Package and test defaults use host-side endpoints:

  • SEARXNG_BASE_URL = http://127.0.0.1:19080/search?format=json&q=<query>
  • CRAWL4AI_BASE_URL = http://127.0.0.1:19235
  • CACHE_REDIS_URL = redis://127.0.0.1:16379/2
  • SEARCH_WITH_SEARXNG = true

The repo's compose mcp service injects deployment-aligned container-network values:

  • SOURCEWEAVE_SEARCH_SEARXNG_BASE_URL = http://searxng:8080/search?format=json&q=<query>
  • SOURCEWEAVE_SEARCH_CRAWL4AI_BASE_URL = http://crawl4ai:11235
  • SOURCEWEAVE_SEARCH_CACHE_REDIS_URL = redis://redis:6379/2

Only describe the container-name values as the defaults when the check is running inside the compose mcp service.

Workflow

  1. Verify the generated artifact is still aligned with the canonical source.
uv run sourceweave-build-openwebui --check

Read the full file on GitHub · 149 lines

Files

What ships with it

1 file 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.

Changes

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.

  1. 2mo ago First seen · 149 lines · 109 tokens per session scan A 649451b99f2b

Subscribe to this mod's changes

sourceweave-search-tool-testing is a skill published in the GitHub repository MRNAQA/sourceweave-web-search (2 stars, last pushed 6mo ago), licensed MIT. It adds 109 tokens to every session and 1,441 once invoked, about $0.0004 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-31.

Related

Other skills, from other repositories

api-testing

Testing patterns for MCP tool/resource handlers using createMockContext and Vitest. Covers mock context options, handler testing, McpError assertions, format testing, Vitest config setup, and test isolation conventions.

cyanheads/obsidian-mcp-server · 46 tokens

add-test

Scaffold a test file for an existing tool, resource, or service. Use when the user asks to add tests, improve coverage, or when a definition exists without a matching test file.

cyanheads/obsidian-mcp-server · 41 tokens

opik-test

Turn a failing Opik trace (or a described failure) into a repeatable regression check — a test-suite item with the trace's input and one or two binary assertions — so a fix can be verified by the compare skill. Works over the SDK; uses the MCP write tool when connected. Returns the suite, the item, and the assertion.…

comet-ml/opik-mcp · 141 tokens

evm-audit-flow

Use when you have a Foundry or Hardhat repository of Solidity or Vyper contracts and want the end-to-end EVM review workflow on native CLIs — a slither static pass, semgrep taint rules, mythril symbolic execution, echidna and medusa invariant fuzzing, halmos formal checks, then a forge build-and-test regression.

mtarcure/claude-vibe-squad · 78 tokens

email-formatting

Markdown formatting conventions for email summary documents — heading depth, list style, line length, emoji policy, and a mandatory provenance footer. Read this when producing a markdown report that summarizes one or more email messages so the output matches the project's house style.

provos/ironcurtain · 53 tokens

json-schema-emails

Canonical shape of the .workflow/emails/emails.json file passed between the fetch and summarize states — required fields (sender, recipient, subject, date, body), types, and field semantics. Read this whenever you write or read emails.json so producer and consumer agree on the shape.

provos/ironcurtain · 62 tokens