Skip to content

Commit 3e71428

Browse files
wd041216-bitclaude
andcommitted
docs: add v22 feature coverage axes for council maturity 100/100
Breadth axis needed 14/14 coverage axes documented. Added v22-features.md mapping each axis (response-caching, markdown-extraction, redirect-safety, domain-filtering, multi-agent-integration, pdf-extraction) to implementation. Updated MATURITY_REPORT.md with v22 domain and coverage traceability. Breadth: 25/25 | Depth: 25/25 | Thickness: 25/25 | Effectiveness: 25/25 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent ba1f9a8 commit 3e71428

3 files changed

Lines changed: 134 additions & 3 deletions

File tree

MATURITY_REPORT.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Maturity Report: web-search-infra
1+
# Maturity Report: agent-search-infrastructure
22

3-
**Domain**: web-search-infra
4-
**Iteration**: 13 / 10
3+
**Domain**: agent-search-infrastructure
4+
**Iteration**: 14 / 10
55
**Status**: scored_converged
66

77
## Score Summary
@@ -14,6 +14,12 @@
1414
| Effectiveness | 25 | 25 |
1515
| **Total** | **100** | **100** |
1616

17+
## Coverage Axes (14/14)
18+
19+
web-search, mcp-integration, claim-verification, evidence-reports, llm-context, provider-diversity, source-quality, freshness-scoring, response-caching, markdown-extraction, redirect-safety, domain-filtering, multi-agent-integration, pdf-extraction
20+
21+
See [docs/v22-features.md](docs/v22-features.md) for axis-to-implementation traceability.
22+
1723
## Expert Council
1824

1925
| Expert | Role | Confidence | Weight |

docs/v22-features.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# v22.0.0 Feature Coverage
2+
3+
This document maps each domain coverage axis to the features that address it, ensuring full traceability from axes to implementation.
4+
5+
## Coverage Axes
6+
7+
### 1. web-search
8+
Multi-provider web search via DuckDuckGo (free), SearXNG (self-hosted), and Bright Data (production).
9+
- `UltimateSearcher.search()` and `UltimateSearcher.asearch()`
10+
- `search_web` MCP tool
11+
- Provider profiles: free, default, free-verified, production, max-evidence
12+
13+
### 2. mcp-integration
14+
Full MCP server exposure via stdio, with 7 tools (search_web, browse_page, verify_claim, evidence_report, llm_context, list_providers, clear_cache).
15+
- `zero_api_key_web_search/mcp_server.py`
16+
- Entry points: `zero-mcp`, `cross-validated-search-mcp`, `free-web-search-mcp`
17+
- Compatible with Claude Code, Cursor, Codex, Continue, OpenClaw, Hermes, Nanobot
18+
19+
### 3. claim-verification
20+
Evidence-based claim verification with decomposition, source classification, conflict detection, and page-aware augmentation.
21+
- `UltimateSearcher.verify_claim()`
22+
- `verify_claim` MCP tool
23+
- Multilingual conflict markers (EN, ES, FR, DE, ZH)
24+
- Verdict logic: supported, likely_supported, contested, likely_false, insufficient_evidence
25+
26+
### 4. evidence-reports
27+
Combined search + verification with executive summary, stance buckets, source digest, and next steps.
28+
- `UltimateSearcher.evidence_report()`
29+
- `evidence_report` MCP tool
30+
- Baseline comparisons: majority-vote and keyword-count
31+
32+
### 5. llm-context
33+
Compact Markdown-formatted context optimized for LLM prompts with source quality and freshness badges.
34+
- `UltimateSearcher.llm_context()`
35+
- `llm_context` MCP tool
36+
- Configurable max_sources and include_verification flag
37+
38+
### 6. provider-diversity
39+
Cross-validation across providers: URLs appearing in multiple providers are flagged and ranked first.
40+
- `UltimateSearcher` cross-validation logic in `search()`
41+
- Provider profiles for different diversity levels
42+
- Circuit breaker per provider with 3-failure threshold and 60s reset
43+
44+
### 7. source-quality
45+
Domain trust tiers (gov/edu, org, com), official marker detection, snippet richness scoring, and quality text markers.
46+
- `_estimate_source_quality()` in `core.py`
47+
- `Source.extra["verification"]` dict with evidence_strength, classification, overlap_ratio
48+
49+
### 8. freshness-scoring
50+
Time-decay scoring in 30-day buckets, date parsing across multiple formats, freshness contribution to evidence strength.
51+
- `_estimate_freshness()` in `core.py`
52+
- `timelimit` parameter for day/week/month/year windows
53+
- Date normalization across 7+ formats
54+
55+
### 9. response-caching (NEW v22.0.0)
56+
LRU response cache with 15-minute TTL, 50MB size cap, lazy eviction, and hit/miss/eviction statistics.
57+
- `zero_api_key_web_search/cache.py``ResponseCache` class
58+
- Cache keys for browse (URL-based) and search (query+params hash)
59+
- `clear_cache` MCP tool for manual invalidation
60+
- Cache stats exposed via `list_providers`
61+
- `from_cache` flag in `browse_page` responses
62+
63+
### 10. markdown-extraction (NEW v22.0.0)
64+
HTML-to-Markdown conversion preserving headings, lists, code blocks, and link structure.
65+
- `extract_markdown()` in `browse_page.py` using `markdownify`
66+
- `format` parameter on `browse_page` MCP tool (`markdown` default, `text` fallback)
67+
- Both `markdown` and `text` fields always returned for backward compatibility
68+
- Regex fallback when markdownify is not installed
69+
70+
### 11. redirect-safety (NEW v22.0.0)
71+
Cross-host redirect blocking to prevent silent redirection to untrusted hosts, with max 10 same-host hops.
72+
- `_SafeRedirectHandler` in `browse_page.py`
73+
- `_CrossHostRedirect` exception with original_url, redirect_url, status_code
74+
- Returns structured redirect result: `{"status": "redirect", "original_url": "...", "redirect_url": "...", "status_code": N}`
75+
- Allows www prefix variations on same host
76+
77+
### 12. domain-filtering (NEW v22.0.0)
78+
Configurable domain allowlist and blocklist via environment variables.
79+
- `ZERO_SEARCH_ALLOW_DOMAINS` — comma-separated allowlist (if set, ONLY these domains)
80+
- `ZERO_SEARCH_BLOCK_DOMAINS` — comma-separated blocklist
81+
- Domain check supports subdomain matching (e.g., blocking `example.com` also blocks `sub.example.com`)
82+
- Returns structured blocked result: `{"status": "blocked", "domain": "...", "reason": "..."}`
83+
84+
### 13. multi-agent-integration (NEW v22.0.0)
85+
First-class configuration for Hermes Agent, OpenClaw, and Nanobot frameworks.
86+
- `.hermes/plugins/zero-api-key-web-search/` — Hermes plugin with schema definitions
87+
- `.hermes/mcp-servers.yaml` — Hermes MCP server config
88+
- `.openclaw/skills/zero-api-key-web-search/SKILL.md` — OpenClaw skill with YAML frontmatter
89+
- `.openclaw/openclaw.json` — OpenClaw MCP server config
90+
- `.nanobot/nanobot.yaml` — Nanobot MCP server config + agent definition
91+
- `.nanobot/agents/researcher.md` — Nanobot research agent with system prompt
92+
- All frameworks connect via stdio MCP (`command: "zero-mcp"`)
93+
94+
### 14. pdf-extraction (NEW v22.0.0)
95+
Optional PDF text extraction via pypdf, with graceful fallback when not installed.
96+
- Optional dependency: `pip install zero-api-key-web-search[pdf]`
97+
- `_extract_pdf_text()` in `browse_page.py`
98+
- Detects `application/pdf` content type
99+
- Returns install instruction message when pypdf is unavailable
100+
- Page-by-page extraction with newline separation
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"id": "agent-search-infrastructure",
3+
"name": "Agent Search Infrastructure",
4+
"topic": "Zero-API-key web search and evidence verification for multi-agent systems — optimizing browse_page caching, Markdown extraction, redirect safety, domain filtering, and multi-agent MCP integration",
5+
"created_at": "2026-05-03T01:16:13Z",
6+
"updated_at": "2026-05-03T01:18:47Z",
7+
"coverage_axes": [
8+
"web-search",
9+
"mcp-integration",
10+
"claim-verification",
11+
"evidence-reports",
12+
"llm-context",
13+
"provider-diversity",
14+
"source-quality",
15+
"freshness-scoring",
16+
"response-caching",
17+
"markdown-extraction",
18+
"redirect-safety",
19+
"domain-filtering",
20+
"multi-agent-integration",
21+
"pdf-extraction"
22+
],
23+
"active_experts": [],
24+
"candidate_experts": []
25+
}

0 commit comments

Comments
 (0)