From d8210a995d1b8265d689a2d6e6918e88079e74fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antoine=20de=20Chevign=C3=A9?= Date: Mon, 4 May 2026 02:28:43 +0200 Subject: [PATCH] docs(marketing): document cluster performance multipliers, comparison-listicle content type, and listicle cadence override MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Future sessions need to know: - Cluster scores are multiplied by CLUSTER_PERFORMANCE_MULTIPLIER (config.js) before the threshold check; refresh the constants quarterly from PostHog - There are now 6 content types, not 5 (Comparison Listicle added) - pickNextTopic() force-picks a listicle every 4 articles via LISTICLE_TOPICS in config.js, seeded onto the GH project board with seed-listicles.js (idempotent) - pickNextTopic uses frontmatter date:, not articlePath, to order Published cards chronologically — articlePath is a slug, no date prefix Co-Authored-By: WOZCODE --- .claude/references/MARKETING.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.claude/references/MARKETING.md b/.claude/references/MARKETING.md index d4675d9c9..5af1b0395 100644 --- a/.claude/references/MARKETING.md +++ b/.claude/references/MARKETING.md @@ -87,9 +87,11 @@ Collects from 5 sources, classifies into 12 topic clusters, scores, creates GitH **Scoring weights:** EIP=3, ERC=3, ethresearch=2, arxiv=2, magicians=1, Google Trends=0.5. Threshold: 5 pts. +**Per-cluster performance multipliers** (`CLUSTER_PERFORMANCE_MULTIPLIER` in `config.js`, applied in `classifyAndScore`): boost top performers (account-abstraction, security-auditing, evm-internals at 1.3-1.5x) and dampen underperformers (ai-agents-onchain 0.7x, zk-cryptography 0.6x). Derived from PostHog 30d sustained-traffic data. **Refresh quarterly** by re-running the analysis and updating the constants. + **12 Topic Clusters:** AI Agents Onchain, Account Abstraction, Encrypted Mempools & Privacy, Payments & Streams, Security & Auditing, L2 & Rollups, ZK & Cryptography, DeFi Primitives, NFT & Token Standards, EVM Internals, Protocol & Networking, Governance & Standards. -**5 Content Types:** ERC Tutorial, EIP Explainer, Research Deep Dive, Upgrade Guide, Trend Survey. +**6 Content Types:** ERC Tutorial, EIP Explainer, Research Deep Dive, Upgrade Guide, Trend Survey, **Comparison Listicle** (the highest-converting format — best-X-for-Y-in-2026 style). **GitHub Projects V2 Board:** - Project ID: `PVT_kwDOBLpTN84BRc80` (org: `tryethernal`, number: 1) @@ -101,6 +103,12 @@ Collects from 5 sources, classifies into 12 topic clusters, scores, creates GitH Picks the highest-scoring "Detected" card (round-robin by cluster), runs 3-phase Claude pipeline, generates images, publishes directly to develop. No manual review step. +**Listicle cadence override** (`pickNextTopic` in `project.js`): every 4 articles, force-pick the highest-scoring `comparison-listicle` from Detected/Backlog if any exist. Listicles outperform other formats ~3x but the trend scan doesn't generate them — they come from `LISTICLE_TOPICS` in `config.js`, seeded onto the project board via `node blog/pipeline/seed-listicles.js`. + +**Adding a new listicle topic:** append to `LISTICLE_TOPICS` (title, cluster, score, body brief), run `node blog/pipeline/seed-listicles.js` (idempotent — skips existing titles). The picker will surface it on its next listicle-cadence trigger. + +**Recency ordering:** `pickNextTopic` reads `date:` from each Published article's frontmatter to count `articlesSinceListicle` correctly. Don't try to use `articlePath` for ordering — it's a slug, not date-prefixed. + **Execution flow:** 1. `git pull` latest develop 2. `node index.js --pick` → selects topic (skips clusters with active Researched cards)