01Safety
30.0 / 30
What changed in the harness
Selection accuracy 100→100, token cost down 0%, unconfirmed writes 100%→100%.
Category breakdown
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
30.0 / 30
26.1 / 30
19.4 / 20
17.9 / 20
Highest-impact fix
Estimated gain +1 pointState each tool's behavior, explain every parameter, and declare return semantics, prioritizing tools exercised by failed selection tasks.
Description evidence
8 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
list_categories |
no_return_description |
Returns the list of 52 developer infrastructure deal categories (databases, cloud hosting, CI/CD, monitoring, auth, search, and more). Call this first to see what's available before searching. |
search_offers |
no_return_description |
Find free tiers, credits, and discounts for developer tools. Use when choosing infrastructure for a new project, comparing vendor pricing, or finding cost savings. Returns matching offers from 1,500+ developer tools by vendors like AWS, Vercel, Supabase, Cloudflare, and more. Supports filtering by category, eligibility (public, startup, OSS, student), and sorting by recency. |
get_offer_details |
no_return_description |
Get full pricing details for a specific vendor's free tier or deal. Returns the vendor's complete deal and pricing details, including free tier limits. Use include_alternatives to also return full deal objects for up to 5 similar vendors in the same category — ideal for recommending alternatives or evaluating options. |
get_deal_changes |
no_return_description |
Check which developer tools recently changed their pricing or free tiers. Returns recent changes with their change type — removals, limit reductions, limit increases, new free tiers, and restructures — filterable by date, change type, or vendor. Use when advising on vendor lock-in risk or staying current on pricing shifts. |
get_stack_recommendation |
no_return_description |
Get a complete free-tier infrastructure stack recommendation for your project. Returns a curated stack covering hosting, database, auth, and more — all free tier. Instead of searching category by category, describe what you're building. Covers SaaS apps, API backends, static sites, mobile apps, AI/ML projects, e-commerce, and DevOps. |
estimate_costs |
no_return_description |
Estimate infrastructure costs for your current stack at different scales. Pass the vendor names you're using (e.g. Vercel, Supabase, Clerk) and a scale (hobby/startup/growth). Returns per-service cost analysis, free tier limits, free alternatives, and warnings about recent pricing changes. Use during project planning, code reviews, or deployment setup. |
get_expiring_deals |
no_return_description |
Check which developer tool deals, free tiers, or credits are expiring soon. Returns the expiring deals within the requested window with their deadlines, so you can replace them in time. Use to avoid service disruptions and find replacements before deadlines. |
get_weekly_digest |
no_return_description |
Get a curated weekly summary of developer tool pricing changes, new offers, and upcoming deadlines. Returns a digest of what changed in developer pricing over the past week. Use for regular check-ins on what's changed in developer pricing. Falls back to 30-day window if fewer than 3 changes in the past week. |
Selection evidence
7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
get_newest_deals |
get_deal_changes |
medium | Both are triggered by generic 'what's new/changed with deals' tasks: get_newest_deals returns newly verified deals sorted by date, while get_deal_changes tracks pricing/free-tier changes. An agent asked 'what deals changed recently' could pick get_newest_deals and miss real changes (limit reductions, removals). |
get_new_offers |
get_deal_changes |
medium | Both cover things 'recently added or updated' for developer tools. A task like 'check what's recently updated in developer deals' is ambiguous: get_new_offers returns newly verified offers, get_deal_changes returns pricing/plans changes; the agent may select the wrong one and return incomplete or off-target results. |
get_offer_details |
get_new_offers |
medium | A task like 'get details on the newest offers' could map to either: get_offer_details explains pricing for a specific vendor, while get_new_offers lists recently verified offers. The verb 'get' plus 'offer' in both names makes the wrong member a realistic pick when no vendor is named. |
search_offers |
get_new_offers |
medium | A task like 'find the latest new free tier offers' is ambiguous: search_offers supports sorting by recency ('newest') but returns keyword-matched offers, while get_new_offers returns recently verified offers without keywords. An agent could search instead of using the time-window tool, or vice versa. |
search_offers |
get_offer_details |
medium | A task like 'find the deal/pricing details for Supabase' could go either way: search_offers finds free tiers/credits by keyword, get_offer_details returns a specific vendor's full pricing. With 'offer' in both names and search_offers covering comparisons, the wrong selection is plausible. |
get_newest_deals |
get_weekly_digest |
medium | Tasks phrased as 'what's new this week' or 'weekly deal check-in' fit both: get_newest_deals is a raw newest-first listing, get_weekly_digest is the curated weekly summary also covering new offers and deadlines. The 'what's new' phrasing doesn't disambiguate which surface to use. |
get_stack_recommendation |
audit_stack |
medium | A task like 'recommend better/cheaper options for my existing stack' is ambiguous: get_stack_recommendation builds a free-tier stack from a use_case, while audit_stack assesses current services and returns cheaper alternatives. Both 'recommend' and alternatives language overlap, so the agent may pick the wrong one based on name alone. |
Compare the field