Loosen fanout detection (1->16 pages) + post 10 hand-authored drafts (#11)
The original fanout threshold (>50 chars, >=10 impressions, 0 clicks) only caught 1 query. Real GDA GSC data analysis showed the fanout space is much larger at a looser threshold.
The original fanout threshold (>50 chars, >=10 impressions, 0 clicks) only caught 1 query. Real GDA GSC data analysis showed the fanout space is much larger at a looser threshold.
Agent changes (agents/gda/gsc-refresh/agent.js):
- Fanout threshold: query >=35 chars, total impressions >=3, CTR <2%
- Aggregate by (slug, query) across the window before scoring (queries
repeat per day; need totals)
- Filter search-operator noise (
-site:reddit.comscraper queries) - Cluster by PAGE — one opportunity per page answering its query cluster
- Fetch with min_impressions=1 so aggregation sees the full row set
- Result: 1 -> 16 fanout pages detected from real data
Hand-authored content (no LLM API cost, per Charles's call to prove the loop before paying for API):
- post-fanout-drafts.cjs: 10 fact blocks written manually from real GSC
fanout queries + real GDA deal data. Data-quality judgment baked in (KAC SR-15 and MK18 framed by configuration given wide SKU ranges; M855A1 framed as restricted-ammo cost-per-round reality).
- All 10 posted to GDA as drafts; previews verified rendering real
content. Coupon-code drafts (no coupons exist) rejected.
learnings/drafts.jsonl: ledger now reflects the posted fanout drafts so the /drafts.html admin page lists them for approval.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>