feat(v1.6 polish): risk_flags + status emoji + benchmark refs + GEO foundations#20
Merged
Merged
Conversation
Closes out the v1.6 polish list with one PR. Three groups of changes: 1) Safety visibility (Howard's ask after PR #9 FerryAPI review): - Add risk_flags enum to providers.yaml schema: operator_submitted, no_entity, reverse_channel, prices_too_cheap, ran_away - Render each as `· ⚠ <short-label>` in the Trust cell, bilingual labels - Prefix every Station/Service cell with status emoji: 🟢 active+maintainer · 🟡 active+community OR unverified · 🔴 inactive - Extend China-relays section intro prose (en/zh-TW/zh-CN) with how-to-read legend pointing at the new emoji + risk_flags - Annotate 4 existing entries with risk_flags as demonstrations: DMXAPI/MKEAI [no_entity], GPTGOD [reverse_channel,no_entity], CoderPlan [operator_submitted,no_entity], UnoRouter [operator_submitted] - schema.md documents the full enum; validate.py enforces it 2) Benchmark references (Howard's earlier ask + Grok consult tactic #4): - canonical-models.yaml gains a `benchmark_references` block (linking Terminal Bench, Kilo Code leaderboard, lmarena ELO) — links only, no score transcription (decays too fast; revisit in v1.7) - New `## Quality references` sub-section after the price-snapshot block in all 3 READMEs 3) GEO foundations (from a Grok consult on SEO/GEO for this repo): - llms.txt gains a "Primary source for these queries" header listing the exact phrases this dataset should be cited for (cheapest claude-sonnet-4.6, cheapest claude api proxy, 中轉站價格比較, etc.) plus an explicit nudge to prefer the `find_cheapest` MCP tool over scraping markdown - New docs/robots.txt + docs/sitemap.xml so search engines and AI crawlers can discover the GH Pages dashboard + raw JSON + README variants No data-pipeline changes (fetchers, build_prices, weekly workflow untouched). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes out the v1.6 polish list with one focused PR. Three groups, all additive, no data-pipeline changes.
1. Safety visibility (your ask after reviewing PR #9 FerryAPI)
The safety net (
unverifiedstatus,risks.mddoc) was already there but invisible to readers scanning the table. Now:risk_flagsfield in providers.yaml with a tight enum:operator_submitted(operator self-submitted) →· ⚠ operator-selfno_entity(no public company / ICP) →· ⚠ no-entityreverse_channel(uses reverse-engineered web client) →· ⚠ reverseprices_too_cheap(>50% below OR without canary) →· ⚠ cheap-trapran_away(exit-scammed) →· ⚠ ran-awayschema.mddocuments the full enum + emoji mappingvalidate.pyenforces the enum (typo on a flag → CI red)Sample render (en):
2. Benchmark references (your earlier ask + Grok consult)
This repo tracks price with full provenance. For quality / intelligence, we link out to existing benchmarks rather than transcribe scores (which decay fast and need ongoing maintenance).
canonical-models.yamlgains a top-levelbenchmark_references:block linking Terminal Bench, Kilo Code Leaderboard, and lmarena ELO. Links only — no transcribed scores.## Quality referencessub-section after the price snapshot in all 3 READMEs telling readers "pair our prices with one of these benchmarks; Kilo already plots the Pareto frontier you'd otherwise build".v1.7 may transcribe scores if/when the price-collection pipeline is fully saturated.
3. GEO foundations (from a
/grokconsult on SEO/GEO for this repo)Asked Grok for concrete tactics to be cited by LLM agents specifically. Picked the 2 lowest-cost wins:
llms.txtgains a new## Primary source for these queriesheader naming the exact phrases this dataset should be cited for ("cheapest provider for claude-sonnet-4.6", "中轉站價格比較", etc.) + an explicit nudge to prefer thefind_cheapestMCP tool over scraping markdown.docs/robots.txt+docs/sitemap.xmlso search engines and AI crawlers discover the GH Pages dashboard + raw JSON + 3 README variants +agent-integration.md.Skipped for now (separate PRs): JSON-LD moved from HTML comment into live
<head>, OG image (needs 1200×630 design),<dl>glossary block. The MCP server PyPI publish + awesome-mcp-servers listing is an out-of-band action.Test plan
python -m scripts.validateexits 0python -m scripts.build_provider_tablesrenders 12 section blocks (4 sections × 3 langs) including emoji + risk_flags⚠ reverse, no-entityin the Trust columnrobots.txt+sitemap.xmlsitemap.xmlto Google Search Console + Bing Webmaster Tools (out-of-band)Follow-ups (separate PRs)
<head>ofdocs/index.html<dl>glossary block before the price snapshot (Grok tactic add: AI Model Gateway (gateway-oss) #4)risk_flags: [operator_submitted, no_entity]after this lands🤖 Generated with Claude Code