# Log — docs-seo

> Append-only timeline des ingests, queries et lints du wiki.
> Format : `## [YYYY-MM-DD HH:MM] type | titre`
> Parsable : `grep "^## \[" log.md | tail -10`

---

## [2026-05-23 12:00] bootstrap | Création du wiki docs-seo

Setup initial du knowledge base à partir d'un dump utilisateur multi-sources. Structure mise en place selon le pattern [LLM Wiki](./sources/llm-wiki-concept.md) :
- `sources/` (1 MD par source)
- `raw/` (captures brutes)
- `README.md` (index)
- `log.md` (ce fichier)

Stack tooling utilisé : Claude Code Opus 4.7 (1M), WebFetch, WebSearch, Firecrawl CLI (self-hosted `crawl.elevaseo.app`), 4 sub-agents general-purpose dispatched in parallel.

---

## [2026-05-23 12:01] ingest | LLM Wiki concept (pattern doc)

**Source** : Document fourni en texte intégral par le user (pas de URL publique).
**Auteur** : Inconnu (style ingénieur/builder).
**Type** : Pattern / concept / spec.
**Output** : [`llm-wiki-concept.md`](./sources/llm-wiki-concept.md) — 186 lignes.
**Insight central** : LLM maintient activement un wiki Markdown (pas du RAG redéraré à chaque query). 3 couches : raw / wiki / schéma. Obsidian + Markdown + git. Réf Memex (Vannevar Bush 1945).
**Application directe** : ce projet docs-seo applique le pattern.

---

## [2026-05-23 12:02] ingest | Prompt "20 questions GMB urgentes"

**Source** : Prompt template fourni en texte intégral par le user.
**Auteur** : Inconnu.
**Type** : Technique de search intent discovery.
**Output** : [`prompt-20-questions-gmb.md`](./sources/prompt-20-questions-gmb.md) — 100 lignes.
**Insight** : Persona-driven + stress émotionnel + anti-jargon → débloque la longue traîne désespérée. Version améliorée proposée dans le MD (psychologie en 4 phases : panique → compréhension → DIY → externalisation).
**Bug détecté** : "quelqu'un d' x" est un placeholder oublié dans le prompt original.

---

## [2026-05-23 12:03] ingest | CLAUDE_CODE_NO_FLICKER=1 (env var)

**Source** : Variable mentionnée hors contexte par le user.
**Type** : Configuration env.
**Output** : [`claude-code-no-flicker-env.md`](./sources/claude-code-no-flicker-env.md) — 102 lignes.
**Insight** : variable Claude Code non documentée publiquement, désactive le flicker TUI sur terminaux lents (SSH, tmux, Apple Terminal.app). Setup Fish : `set -Ux CLAUDE_CODE_NO_FLICKER 1`.

---

## [2026-05-23 12:04] ingest | DeFiLéo — "Google jure qu'il n'y a aucune optim IA"

**Source** : Contenu thread X fourni en texte intégral par le user. Status `2042241063612502162` du 2026-04-09.
**Auteur** : @defileo (DeFiLéo 🔎) — créateur contenu SEO FR.
**Type** : Thread analyse / tribune d'opinion étayée.
**Output** : [`defileo-geo-vs-google-guide.md`](./sources/defileo-geo-vs-google-guide.md) — 143 lignes + [`x-defileo-2042241063612502162.md`](./sources/x-defileo-2042241063612502162.md) en pointeur.
**Insight** : 4 leviers réels GEO 2026 face au discours officiel Google :
1. AI accessibility (9.5/10)
2. Query fan-out (9.3/10)
3. SEO classique pilote (9.4/10, 38% citations IA viennent du Top 10)
4. llms.txt est inutile (2/10)
**Source citée par DeFiLéo** : étude Cyrus Shepard / Zyppy (ingested ensuite).

---

## [2026-05-23 12:10] dispatch | 4 sub-agents parallèles pour sources web

4 sub-agents `general-purpose` lancés en parallèle pour :
1. Agent A : 5 X/Twitter posts
2. Agent B : 2 GitHub resources
3. Agent C : Zyppy GEO study + Google I/O 2026
4. Agent D : Outrank directories + Socket Firewall

**Résultats** :
- Agent A : ÉCHEC (web access denied dans sandbox sub-agent) → 5 MD placeholders créés
- Agent B : SUCCÈS (utilisation `gh` CLI)
- Agent C : ÉCHEC (web access denied)
- Agent D : ÉCHEC (web access denied)

**Décision** : reprendre les recherches échouées depuis la session principale (WebFetch + Firecrawl autorisés à ce niveau).

---

## [2026-05-23 12:25] ingest | github/deepakness/google-ai-search-optimization

**Source** : https://github.com/deepakness/google-ai-search-optimization
**Auteur** : @deepakness, 99 stars (récent, créé 2026-05-16).
**Type** : Agent Skill Claude (3 fichiers MD, no code).
**Output** : [`github-deepakness-google-ai-search-optimization.md`](./sources/github-deepakness-google-ai-search-optimization.md) — 208 lignes.
**Insight** : Skill installable via `npx skills add` ou copie dans `~/.claude/skills/`. Workflow agent en 5 étapes (Explain/Audit/Plan/Implement/Myth-check). Rejette explicitement llms.txt + chunking + fake-mentions + schema-AI-magique. **Limite** : pas de licence déclarée → forker en interne avant d'utiliser.
**Recommandation** : à installer immédiatement, sert de base pour les audits GEO ElevaSEO.

---

## [2026-05-23 12:27] ingest | github/zacdcook/openclaw-billing-proxy PR#1

**Source** : https://github.com/zacdcook/openclaw-billing-proxy/pull/1
**Type** : PR mergée le 2026-04-06, 3 fixes (HEARTBEAT_OK trigger, sessions_store, NVM scan).
**Output** : [`github-openclaw-billing-proxy-pr1.md`](./sources/github-openclaw-billing-proxy-pr1.md) — 193 lignes.
**Insight** : Proxy de facturation pour OpenClaw, contournant l'usage Extra Usage Claude. **Pertinence faible** pour ElevaSEO : à ne PAS utiliser en prod (TOS Anthropic, sécurité token).

---

## [2026-05-23 12:30] ingest | Zyppy AI Citation Ranking Factors (Cyrus Shepard)

**Source** : https://signal.zyppy.com/p/ai-citation-ranking-factors
**Auteur** : Cyrus Shepard (ex-Moz, ZyPpy), méta-étude 54 études.
**Date publication** : 2026-05-07.
**Output** : [`zyppy-ai-citation-ranking-factors.md`](./sources/zyppy-ai-citation-ranking-factors.md) — 140 lignes.
**Insight** : **23 facteurs de citation IA** notés /10 sur 3 critères (repeatability, evidence, official support). Hiérarchie :
- Top tier 9.0+ : Accessibility (9.5), Search Rank (9.4), Fan-out Rank (9.3), Preview Control (9.2), Query-Answer Match (9.2), Intent-Format Match (9.0)
- Mid tier 7.0-8.9 : Topic Cluster, Answer Near Top, AI-ready Structure, Factually Specific, etc.
- Bottom tier <7.0 : Freshness, Trust, Length, Language, Entity Consistency, Schema, Known Source, DA (5.0), **llms.txt (2.0)**
**Thèse** : "Win SEO, win AI citations (most of the time, with extra steps)". 4 piliers transverses : Relevance, Trust, Topical Authority, Extractability.
**Tableau complet des 23 facteurs** documenté dans le MD.

---

## [2026-05-23 12:32] ingest | Google I/O 2026 — "A new era for AI Search"

**Source** : https://blog.google/products-and-platforms/products/search/search-io-2026/
**Auteur** : Elizabeth Reid, VP Search.
**Date publication** : 2026-05-19.
**Output** : [`google-blog-search-io-2026.md`](./sources/google-blog-search-io-2026.md) — 161 lignes.
**Insight** :
- AI Mode : 1Md MAU en 1 an, queries doublent / trimestre
- **Gemini 3.5 Flash** = nouveau default AI Mode global (today)
- Search box refonte multimodale (text/image/file/video/Chrome tabs)
- **Search Agents** (été 2026, AI Pro/Ultra)
- **Agentic Booking** + **Agentic Calling** (été 2026, US first) → impact **local SEO**
- **Generative UI** (été 2026, free) → mini-apps custom dans SERP
- **Antigravity** : nouvelle plateforme dashboards persistants (Pro/Ultra)
- **Personal Intelligence** : ~200 pays, 98 langues, Gmail/Photos/Calendar connectés
**Méfiance** : "1Md MAU" sans définition d'actif, generative UI = vol de clicks, Personal Intelligence = collecte massive.

---

## [2026-05-23 12:34] ingest | Outrank — 400+ Backlink Directories sheet

**Source** : https://www.outrank.so/directories
**Type** : Lead magnet B2B SaaS (sheet gratuite contre email).
**Output** : [`outrank-directories-list.md`](./sources/outrank-directories-list.md) — 109 lignes.
**Insight** : Sheet hand-curée 400+ annuaires (Product Hunt DR91, G2 DR92, Hacker News DR93, AlternativeTo, Futurepedia, etc.). **Orienté SaaS/AI tech US** — peu d'applicabilité pour le local FR ElevaSEO. Modèle : email → welcome sequence Outrank + newsletter Tmaker.
**Action** : opportunité de builder une équivalent **annuaires FR** comme lead magnet ElevaSEO.

---

## [2026-05-23 12:36] ingest | Socket Firewall (sécurité supply chain)

**Source** : https://socket.dev/blog/introducing-socket-firewall
**Auteur** : Dale Bustad, Socket.dev.
**Date publication** : 2025-09-30.
**Output** : [`socket-firewall.md`](./sources/socket-firewall.md) — 182 lignes.
**Insight** : Wrapper `sfw` autour de npm/yarn/pnpm/pip/uv/cargo. Spin up proxy HTTP éphémère + check Socket API avant chaque package fetch. Free tier suffit pour solo. **Caveat** : doit `npm cache clean --force` avant d'activer. PolyForm Shield License (source-available, pas open source).
**Pertinence ElevaSEO** : indirect mais important (stack Node/Python avec credentials clients GBP, GSC, Cloudflare, FIRECRAWL_API_KEY exposée). Installer en local + GitHub Action sur repos clients.

---

## [2026-05-23 12:40] ingest | 5 X/Twitter posts (récupération via oEmbed Twitter)

**Méthode** : WebFetch direct X.com retourne 402 Payment Required. xcancel = 503. Firecrawl bloqué par X anti-bot. **Solution trouvée** : `publish.twitter.com/oembed` retourne auteur + date + texte verbatim (sans JS auth).

| Tweet | Auteur | Statut | Output MD |
|-------|--------|--------|-----------|
| 2039048127961874705 | @coreyganim | partiel (lien vers X Article) | [x-coreyganim-...](./sources/x-coreyganim-2039048127961874705.md) |
| 2050225292585607440 | @AnatoliKopadze | partiel (lien vers X Article) | [x-anatolikopadze-...](./sources/x-anatolikopadze-2050225292585607440.md) |
| 2056407223002144797 | @VengeonsP | **SUCCÈS texte complet** | [x-vengeonsp-...](./sources/x-vengeonsp-2056407223002144797.md) |
| 2056835339193561170 | @ClaudeDevs | **SUCCÈS texte complet** | [x-claudedevs-...](./sources/x-claudedevs-2056835339193561170.md) |
| 2042241063612502162 | @defileo | partiel oEmbed + complet via user paste | [x-defileo-...](./sources/x-defileo-2042241063612502162.md) → renvoi |

**Vengeons highlight** : "12 pages SEO Claude Code → top 1 en 2h" + vidéo 7min explicative. **Pair direct ElevaSEO**.
**ClaudeDevs highlight** : Computer Use production reliability (click accuracy, thinking effort, long sessions, demonstrations replay).

---

## [2026-05-23 12:50] commit | README index + log.md créés

Wiki fonctionnel à 15 sources documentées. Structure prête à scaler.

---

## [2026-05-23 13:30] ingest | oxc.rs × Next.js 16 — Stack dead code elimination

**Question utilisateur** : recherche sur oxc.rs et intégration Next.js 16 pour élimination de code mort + toutes les possibilités.

**Méthode** : 12+ WebFetch (oxc.rs docs, Next.js 16 upgrade guide, unplugin-oxc README, knip.dev, eslint-plugin-oxlint, etc.) + 4 WebSearch (PkgPulse comparatifs 2026, Turbopack tree-shaking, knip vs oxlint).

**Output** : [`oxc-nextjs-16-integration.md`](./sources/oxc-nextjs-16-integration.md) — 13 sections, ~500 lignes.

**Insights centraux** :
1. **Turbopack utilise SWC, PAS oxc** — Vercel a investi sur SWC depuis Next 13. Oxc-minify ne peut PAS remplacer le minifier interne Next.js 16.
2. **Oxlint a une intégration Next.js 16 first-class** : plugin `nextjs` natif + config `flat/nextjs` dans `eslint-plugin-oxlint`. Adoption Sentry, Cloudflare, Renovate, Preact.
3. **Stack optimale Next.js 16** = Oxlint (lint) + Knip v6 (dead code cross-fichiers, utilise oxc parser via NAPI) + Oxfmt (format, drop-in Prettier) + Turbopack natif (bundle minify + tree-shake).
4. **`next lint` REMOVED dans Next.js 16** → ouverture grande pour Oxlint comme remplaçant ESLint.
5. **oxc-minify reste en alpha** (mai 2026) — pas pour bundle Next.js, mais utilisable pour builds de libs npm via Rolldown/unplugin-oxc.
6. **Fallow** = alternative Rust-native émergente à Knip (à surveiller, encore alpha).

**Stratégie ElevaSEO** :
- Phase 1 (1j) : install `oxlint + eslint-plugin-oxlint + knip + oxfmt`
- Phase 2 (1sem) : template `create-elevaseo-next` pré-configuré
- Niveau service : packager "Audit Performance + DCE" comme offre 800-1500€

**Cross-link wiki** : connecte avec [`zyppy-ai-citation-ranking-factors.md`](./sources/zyppy-ai-citation-ranking-factors.md) (facteurs AI-ready Structure 8.6/10 et Content Visibility 7.6/10) → DCE améliore LCP/FCP = bénéfice indirect ranking AI/SEO.

---

## Note méthodologique

**Outils utilisés pour la session de bootstrap** :
- Claude Code Opus 4.7 (session principale)
- WebFetch (succès sur signal.zyppy.com, blog.google, outrank.so, socket.dev)
- WebSearch (recherche profils auteurs X)
- Firecrawl CLI self-hosted (échec sur X.com — anti-bot, succès sur autres domains)
- oEmbed Twitter (`publish.twitter.com/oembed`) — **CLÉ** pour récupérer le texte des tweets sans auth
- 4 sub-agents general-purpose en parallèle (échec partiel — web access denied pour 3/4)

**Apprentissage** :
- Les sub-agents `general-purpose` n'ont PAS accès au web dans cette sandbox → toujours lancer les recherches web depuis la session principale
- X.com bloque tout : WebFetch (402), Firecrawl (anti-bot), archive.org (CC bloque), xcancel (503)
- Seule méthode pour scraper X sans compte : `publish.twitter.com/oembed?url=...` → renvoie auteur + date + texte si texte plain (pas si X Article ou seulement lien)
- Pour les X Articles : auth requise, pas de bypass connu sans compte X actif
