Skip to content

Commit 8907ac3

Browse files
committed
feat: recommendation-freshness overhaul — purge stale advice, remove fabricated Llama 5, rebuild verified pricing/local tables, add 2 CI audit gates
The owner's report was specific: the Model Selection section still opened with "Claude Opus 4.7 (/think xhigh)" and "Gemini 2.5 Pro — 2M context". Both wrong. Investigating that class of error found it was systemic, not a one-off. Why nothing caught it: sync_audit.py guards en/zh/ja structure and check_markdown.py guards syntax, but no check asked whether the sections that tell a reader WHAT TO USE TODAY still named current models. Every link resolved 200 the entire time. Removed a fabricated entry - "Llama 5" (600B+, April 8 2026) does not exist. HF `meta-llama` holds no Llama-5 weights at all (newest is Llama-4-Maverick, 2025-05); Wikipedia says the latest is Llama 4 (April 2025) and that Muse Spark replaced the Llama line in April 2026. Kept as an explicit ❌ debunk note rather than a silent delete, so it does not get re-added by the next person who reads it on an aggregator. Corrected against primary sources - API cost table rebuilt from platform.claude.com and developers.openai.com; added Opus 5 / Fable 5 / GPT-5.5 / GPT-Realtime-2.1 / V4-Pro + Max Output col. - Claude Haiku 4.5 was listed at 1M context — it is 200K. - Gemini 2.5 Pro is 1M, not 2M (2M belongs to the unreleased 3.5 Pro), ×3 langs. - o3: leaves ChatGPT Aug 26, but API snapshots are removed Dec 11, 2026. - GPT-Live-1 is real but ChatGPT-only — no such API model; use gpt-realtime-2.1. - DeepSeek V4 pricing re-confirmed flat; Grok 4.5 re-confirmed 500K / $2/$6. Local-deployment table rebuilt with HF-verified repo ids - "Gemma 4 27B" does not exist (real line: E2B/E4B/12B/26B-A4B/31B). - Mistral Small 4 is 119B MoE / 6B active, not 24B dense. - Added Qwen3.6-35B-A3B, Inkling, V4-Flash/Pro, Kimi K3; split total/active params; flagged that Kimi K3 and Gemma are NOT OSI-licensed. Added - Gemini 3.6 Flash + Gemini 3.5 Flash-Lite (Jul 21) — were missing entirely; confirmed via the official google-gemini/cookbook commit and model ids. - Pydantic AI v2.21.0 — a major framework absent from the Frameworks section. - Benchmark reading guide: three trackers gave three different SWE-bench Verified leaders on one day (~8pt spread); SWE-bench Pro is compromised (OpenAI's Jul 8 audit: ~27–34% of 731 tasks defective, recommendation withdrawn); mid-90s saturation makes sub-point gaps meaningless. - Version stamps from the releases API: LangGraph 1.2.10, CrewAI 1.15.9 (list said 1.14.6), Mastra @mastra/core@1.53.0, ADK v2.5.0. - Fixed a genuinely dead link: thinkingmachines.ai/blog/introducing-inkling (404) → thinkingmachines.ai/inkling/ (200). Tooling — both wired into structure-check.yml - scripts/freshness_audit.py: fails if an advisory section recommends a superseded model, plus recurring factual traps. Scope-aware — historical and inventory tables may name old models, Anti-Picks may name them in the "don't" column, but "use instead" and all prose advice must be current. First run: 134 stale recommendations. Now zero. - scripts/refresh_counts.py: recomputes every advertised count from the file. The nav claimed 23+ frameworks against 43 actual, 16+ security against 33, badge 780+ against 812. Undercounts look plausible, so nobody notices. 58 stale counts corrected. Claims that could not be traced to a primary source were left out, not guessed — several search-summary benchmark figures were rejected on that basis.
1 parent 02f2cb6 commit 8907ac3

8 files changed

Lines changed: 898 additions & 220 deletions

File tree

.github/workflows/structure-check.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,16 @@ name: Structure Check
55
# (same headings in the same order, same entries per section, same order).
66
# 2. The markdown itself stays well-formed (in-page anchors resolve, table
77
# rows have consistent column counts, no malformed entries or open fences).
8+
# 3. The advisory sections (Compare tables, Scenario Guide, Stack Recipes,
9+
# Anti-Picks) recommend only models that are still current. Historical
10+
# sections may name superseded models; "what should I use today" sections
11+
# may not.
812
#
9-
# Both scripts exit non-zero on failure, so a PR that silently drops the zh/ja
10-
# translation of a new entry — historically the most common drift source — fails
11-
# here instead of shipping.
13+
# All three scripts exit non-zero on failure, so a PR that silently drops the
14+
# zh/ja translation of a new entry — historically the most common drift source —
15+
# fails here instead of shipping. Likewise a refresh that adds a new flagship to
16+
# the catalogue but forgets to update the recommendations fails instead of
17+
# quietly telling readers to use last quarter's model.
1218

1319
on:
1420
pull_request:
@@ -18,6 +24,7 @@ on:
1824
- "README.ja.md"
1925
- "scripts/sync_audit.py"
2026
- "scripts/check_markdown.py"
27+
- "scripts/freshness_audit.py"
2128
- ".github/workflows/structure-check.yml"
2229
push:
2330
branches: [main]
@@ -44,3 +51,6 @@ jobs:
4451

4552
- name: Markdown structure check
4653
run: python3 scripts/check_markdown.py
54+
55+
- name: Recommendation freshness audit
56+
run: python3 scripts/freshness_audit.py

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Raw verification notes from maintenance runs.
2+
# These are working scratch files (fetched page excerpts, HF API dumps,
3+
# per-category research reports) used to check claims before they go into the
4+
# READMEs. They are intentionally not published: they contain long verbatim
5+
# quotes from third-party pages and go stale within days.
6+
.research/

CHANGELOG.md

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,110 @@
33
All notable changes to **Awesome AI Agents 2026** are recorded here.
44
Format: `YYYY-MM-DD +Added -Removed ~Changed`.
55

6+
## 2026-07-30 (b) — recommendation-freshness overhaul: stale advice purge, fabricated entry removed, verified pricing/local-model rebuild, two new audit gates
7+
8+
This run targeted a failure mode the existing checks were blind to. `sync_audit.py`
9+
guards en/zh/ja structure and `check_markdown.py` guards syntax, but nothing
10+
guarded whether the sections that tell a reader **what to use today** were still
11+
naming current models. They were not. The Model Selection section still opened
12+
with "Claude Opus 4.7 (/think xhigh)" and "Gemini 2.5 Pro — 2M context" — one
13+
model two generations superseded, one context window that was never real.
14+
15+
### 🚨 Removed — fabricated entry
16+
- **"Llama 5" (600B+, April 8 2026) did not exist and has been removed.** It was
17+
widely repeated by AI-news aggregators and is asserted confidently by LLM
18+
search summaries, which is how it got in. Verification: the `meta-llama`
19+
Hugging Face organisation contains **no Llama-5 weights of any kind** (newest
20+
Llama-family upload is Llama-4-Maverick, 2025-05-22; a search for `Llama-5`
21+
under that author returns 0 results), and Wikipedia's Llama article states
22+
"the latest version is Llama 4, released in April 2025" and that **Muse Spark
23+
replaced the Llama line in April 2026**. The slot now holds an explicit
24+
❌ debunk note rather than a silent deletion, so the claim doesn't get
25+
re-added by the next contributor who reads it elsewhere. A matching
26+
Anti-Picks row now warns against building on unreleased flagships generally.
27+
28+
### ~ Corrected against primary sources
29+
- **API cost table rebuilt** from `platform.claude.com/docs/en/about-claude/pricing`
30+
and `developers.openai.com/api/docs/pricing.md`. Added Opus 5, Fable 5, GPT-5.5,
31+
GPT-Realtime-2.1, DeepSeek V4-Pro; added a Max Output column.
32+
- **Claude Haiku 4.5 was listed at 1M context — it is 200K.** Fixed in the table
33+
and in Model Selection.
34+
- **Gemini 2.5 Pro's context window is 1M, not 2M**, in all three languages. The
35+
2M figure belongs to the still-unreleased Gemini 3.5 Pro. `freshness_audit.py`
36+
now fails the build if this reappears.
37+
- **o3 retirement dates split correctly**: leaves ChatGPT 2026-08-26, but the
38+
`o3-2025-04-16` / `o3-pro-2025-06-10` **API snapshots are removed 2026-12-11**
39+
per OpenAI's deprecations page, replacement `gpt-5.6-sol`.
40+
- **GPT-Live-1 clarified as ChatGPT-only** — it is real ([OpenAI, July 8](https://openai.com/index/introducing-gpt-live)),
41+
but there is no `gpt-live-1` API model; `gpt-realtime-2.1` and
42+
`gpt-live-transcribe` are the programmatic paths.
43+
- **DeepSeek V4 pricing re-confirmed flat** (no peak/off-peak) directly from the
44+
official pricing page, with cache-hit rates ~2% of cache-miss.
45+
- **Grok 4.5 re-confirmed** at 500K context, $2/$6, from `docs.x.ai/docs/models`.
46+
47+
### ~ Local-deployment table rebuilt with verified HF paths
48+
Every row now carries the **exact Hugging Face repo id**, license, and separate
49+
total/active parameter columns, all checked against the HF API on 2026-07-30.
50+
- **"Gemma 4 27B" does not exist** and has been removed — the real Gemma 4 line
51+
is E2B / E4B / 12B / 26B-A4B / 31B.
52+
- **Mistral Small 4 is a 119B MoE with 6B active**, not "24B dense"; correct id
53+
is `mistralai/Mistral-Small-4-119B-2603`.
54+
- **Qwen3.6-35B-A3B added** — 3B active params makes it the best quality-per-GB
55+
local pick, and it was absent entirely.
56+
- Added Inkling, DeepSeek V4-Flash/Pro, Kimi K3 rows with honest VRAM tiers, and
57+
a note that MoE "fits in 4 GB" claims mean *fits with offloading*.
58+
- **Licensing corrected**: Kimi K3 is a bespoke non-OSI licence with a revenue
59+
threshold, and Gemma is under the Gemma Terms of Use — neither is Apache/MIT.
60+
61+
### + Added
62+
- **[Gemini 3.6 Flash](https://github.com/google-gemini/cookbook)** and
63+
**[Gemini 3.5 Flash-Lite](https://github.com/google-gemini/cookbook)** (both
64+
July 21, 2026) — **neither was listed at all.** Confirmed first-party via the
65+
official Gemini cookbook commit "Add Gemini 3.6 Flash & Gemini 3.5 Flash-Lite"
66+
and the `gemini-3.6-flash` / `gemini-3.5-flash-lite` ids in its quickstart.
67+
3.6 Flash is stronger on agentic/multimodal work *at a lower price than* 3.5
68+
Flash; 3.5 Flash-Lite is now the cheapest Gemini tier.
69+
- **[Gemini 3.1 Pro](https://deepmind.google/technologies/gemini/)** as its own
70+
entry, flagged `-preview` with no free tier.
71+
- **[Pydantic AI](https://github.com/pydantic/pydantic-ai)** v2.21.0 — a major
72+
framework that was **missing from the Frameworks section entirely**.
73+
- **Benchmark reading guide** at the top of Benchmarks & Leaderboards, covering
74+
(a) that three reputable trackers gave three different SWE-bench Verified
75+
leaders on the same day with an ~8-point spread, (b) that **SWE-bench Pro is
76+
compromised** — OpenAI's 2026-07-08 audit found ~27% (AI reviewer) to ~34%
77+
(human engineers) of its 731 public tasks defective and withdrew its
78+
recommendation — and (c) that mid-90s saturation makes sub-point gaps
79+
meaningless. SWE-bench Pro's own entry now carries the warning inline.
80+
- Version stamps refreshed from the GitHub releases API for LangGraph (1.2.10),
81+
**CrewAI (1.15.9, July 30 — the list said 1.14.6)**, Mastra
82+
(`@mastra/core@1.53.0`), Google ADK (v2.5.0).
83+
84+
### 🔧 Tooling — two new gates, both wired into CI
85+
- **`scripts/freshness_audit.py`** — fails if an advisory section recommends a
86+
superseded model, and catches recurring factual traps (the 2M/2.5-Pro
87+
conflation, Opus 4.7 "200K", "$15/$75" Opus pricing). It is deliberately
88+
scope-aware: historical sections and *inventory* tables may name old models,
89+
Anti-Picks rows may name them in the "don't use" column, but the "use instead"
90+
column and all prose advice must be current. First run flagged **134 stale
91+
recommendations** across the three files; now zero.
92+
- **`scripts/refresh_counts.py`** — recomputes every advertised count from the
93+
file itself and rewrites it. The nav table claimed "23+" frameworks against 43
94+
actual and "16+" security tools against 33; the badge said 780+ against 812.
95+
Undercounts look plausible so nobody ever notices. `--write` fixes all three
96+
files; **58 stale counts** corrected on first run.
97+
- `.github/workflows/structure-check.yml` now runs `sync_audit.py`,
98+
`check_markdown.py`, and `freshness_audit.py` on every PR and push to main.
99+
100+
### Verification note
101+
Where a claim could not be traced to a primary source it was **left out**, not
102+
guessed. Several benchmark leader figures reported by search summaries were
103+
rejected on exactly this basis. `web_fetch` is blocked in this environment by
104+
SSRF protection (WSL DNS maps public hostnames into `fc00::/7` / `198.18.x`), so
105+
verification went through `tools/fetch-verify.sh` (curl + real UA + pandoc,
106+
printing HTTP status), the GitHub releases API, and the Hugging Face models API.
107+
108+
---
109+
6110
## 2026-07-30 — July 30 maintenance: PR #68/#69/#70, late-July additions, factual corrections, **full en/zh/ja lockstep restored** + tooling
7111

8112
### PR triage (all three accepted, merged-by-maintainer with en/zh/ja sync)

0 commit comments

Comments
 (0)