Week 12 (2026-03-10 → 2026-03-16)

Directory Seeding

  • Batch 1: 50 developer tools deployed to production directory
  • Batch 2: 50 content/docs sites
  • Batch 3: 50 real-world businesses
  • Batch 4 CSV prepared: 60 quality-focused gap-fill sites

Quality Improvements

  • FAQ quality filtering: reduced failing sites from 24 → 9
  • Display name extraction (og:site_name, manual overrides, title cleanup)
  • Description generation: homepage meta extraction with LLM fallback
  • Semantic form tool naming (action-derived instead of positional submit-form-0)

Agent Hosting

  • Self-hosted agent support: register external MCP endpoints
  • Directory eligibility: score ≥ 50 + quality description filter
  • Capability vocabulary unified (filter pills match badge tiers)
  • Per-site daily query limits by plan (Redis counters)

Crawling

  • Smart crawl scoring with page freshness metrics
  • Deploy + refresh integration with crawl pipeline
  • Incremental re-crawl with cache metadata

Auth & Security

  • Block anonymous deploys (require auth or strict rate limit)
  • Audit blob access migrated to private
  • Stopped committing audit JSON to git (DB/Blob only)

Agent Score (Quality Scoring)

  • Heuristic quality score (0-100) computed daily for all agents
  • Three axes: quality (35%) + reliability (35%) + popularity (30%)
  • Quality: tool richness × tier weight + content depth + audit score
  • Reliability: deploy success rate (30d) + crawl freshness
  • Popularity: MCP request volume (30d, log-normalized) + GitHub stars
  • Directory now sorts by Agent Score (primary), audit score (tiebreak)
  • Score visible on directory cards and agent detail pages
  • Daily cron: /api/cron/quality-score at 2 AM UTC
  • Backfill: pnpm backfill:quality-scores:prod

Infrastructure

  • Platform validation improvements (PM detection, OpenAPI, forms)
  • OpenAPI detection expanded beyond 5 fixed paths

Discovery Agent

  • Scaffolded services/discovery-agent/ — standalone Next.js 15 service (own Vercel project)
  • Drizzle schema: discovery_callers table (session + API key auth, JSONB profiles)
  • MCP server skeleton: w2agent-discovery v0.1.0, Streamable HTTP transport, 20 req/min Upstash rate limiting
  • A2A agent card at GET /api/discovery/agent-card — 5 tools planned: discover, interview, rate, remember, forget
  • Deploys to discover.agent.w2agent.dev (manual setup required: Vercel project, Neon DB, DNS)
  • discover MCP tool: Full implementation — requirement parsing (gpt-5-mini), Meta MCP search, parallel agent interviews, LLM judge ranking. Three depth levels: quick (3 candidates/1 question), thorough (5/2), exhaustive (5/3 + follow-up). Returns ranked results with per-agent reasoning.
  • Vitest unit tests: requirement parsing, ranking, depth levels, error handling, orchestration.

Category Leaderboards

  • New /directory/categories page: top agents per category, sorted by quality score
  • Each category card shows rank 1-3 agents with score/grade/stars
  • "View all X agents →" links to /directory?category=X
  • Added "Agent Categories" link to site header Community section
  • Added "Browse by category →" cross-link on the main directory page

Quality Trend Sparkline

  • 90-day score history on agent detail pages: inline SVG sparkline next to Agent Score
  • New site_score_history table (daily upsert by quality-score cron)
  • loadScoreTrend(siteId) in agent-host; sparkline hides when <2 data points
  • Delta indicator (↑/↓) shows net change from first to last recorded score

Meta MCP Search — RRF Ranking

  • Replaced audit-score sort in search_websites with Reciprocal Rank Fusion (k=60)
  • Three rank signals: text relevance (computeRelevance), quality score (qualityScore ?? auditScore), popularity (pagesIndexed)
  • MMR diversity (λ=0.7) applied to top-10 results: penalizes same slug-prefix clusters
  • qualityScore column now fetched in both primary and fuzzy-fallback DB selects

A2A Protocol Support

  • Inbound A2A SendMessage on per-agent endpoints (/api/agent/[slug])
  • Protocol auto-detection: MCP methods vs A2A PascalCase methods on same endpoint
  • A2A → MCP bridge: SendMessage text routed to existing search-site tool
  • Agent cards: added endpoint field and capabilities.a2a.streaming: false
Changelog — Week 12 (2026-03-10 → 2026-03-16) | w2agent