j.foucher 026be81373 chore: session 2 snapshot — archive before Bricks-first restart
Snapshots the project at the end of session 2, just before resetting to a
Bricks-first orthodox architecture. RESTART-PLAN.md at the root explains
why this approach is being abandoned and what the next session will look like.

Why we restart
- Three architectures got stacked: Custom PHP Templates → Gutenberg blocks
  in post_content → Bricks data in post meta. Each layer fights the next.
- Bricks Builder UI does not load because our header.php / footer.php /
  page.php emit chrome that conflicts with Bricks' own template-parts.
- CSS overrides multiplied (Gutenberg + Bricks variants) and still don't
  pixel-match the original PHP-rendered visual.
- 8+ one-shot mu-plugins live in LocalWP to patch over inconsistencies.

What survives the restart (preserved here on main)
- BRIEF, both PDFs, .txt extracts (sources of truth)
- assets/css/tokens.css (full design system, untouched)
- assets/fonts/Inter-Variable*.woff2 (RGPD self-hosted)
- inc/<section>-data.php files (text copy from PDF strategie, will become
  /content-source/ on next session for reuse as translation dictionary
  and as input to programmatic page generation)
- The Git repo, remote, branch main
- LocalWP site, Bricks v2.3.4, WPML 4.9.3 with active licenses
- WPML EN + FR setup with directory URL strategy

What gets wiped at the start of next session
- wp-content/themes/asterion-bricks/header.php / footer.php / page.php /
  index.php / front-page.php / template-parts/ / templates/
- inc/render-blocks.php, inc/render-blocks-native.php, inc/render-bricks.php
- inc/shortcodes.php, inc/i18n.php, inc/form-handler.php
- 35+ WP pages created over the session
- All one-shot mu-plugins in LocalWP/wp-content/mu-plugins/

Restart approach (detailed in RESTART-PLAN.md)
- Minimalist child theme: style.css, functions.php, theme.json, tokens.css,
  trimmed utilities.css, fonts, inc/cpt.php — that's it.
- No header.php / footer.php / page.php in child theme — Bricks Templates
  (Header / Footer / Single — Page) take over via Bricks' Conditions.
- User builds 5-7 archetype Bricks templates visually (~1-2h each) then
  programmatic generation fills the variants from inc/*-data.php sources.
- WPML duplication after EN is validated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-09 14:30:51 +02:00

Asterion VR — Refonte du site web 2026

Repo de la refonte d'asterionvr.com : nouveau site institutionnel B2B/B2G de la plateforme XR PROSERVE pour les forces de sécurité européennes (police, special forces, military, firefighters).

Stack : WordPress 6.x + Bricks Builder (parent) + child theme custom asterion-bricks + WPML. Cible : Lighthouse 90+, WCAG 2.1 AA, mobile-first, RGPD-natif, hébergement français.


Documents de référence

À lire dans cet ordre avant tout travail technique :

  1. BRIEF-Claude-Code.md — brief de démarrage projet (13 sections, contraintes, conventions).
  2. Asterion-VR_Refonte-2026_Strategie-et-Contenu.pdf — livrable 1 (84 p) : diagnostic, stratégie, sitemap, copy EN prête de toutes les pages.
  3. Asterion-VR_Refonte-2026_Design-Handoff-Specification.pdf — livrable 2 (31 p) : tokens, composants UI, wireframes des 7 templates, motion, a11y.

Les .txt extraits des PDF sont gitignorés. Pour les régénérer :

pdftotext -layout "Asterion-VR_Refonte-2026_Design-Handoff-Specification.pdf" "design-handoff.txt"
pdftotext -layout "Asterion-VR_Refonte-2026_Strategie-et-Contenu.pdf" "strategie-et-contenu.txt"

(pdftotext est inclus dans Git for Windows : C:\Program Files\Git\mingw64\bin\pdftotext.exe.)


1. Pré-requis

  • LocalWP (https://localwp.com) configuré en mode localhost (Preferences → Advanced → Router Mode = localhost) pour cohabiter avec d'autres stacks locales (XAMPP, etc.).
  • Site LocalWP créé : nom Asterion 2026, dossier C:\Users\j_foucher\Local Sites\asterion-2026\.
  • ZIP des plugins commerciaux (chacun doit fournir les siens, depuis son propre compte) :

2. Installer Bricks parent

  1. Décompresser ThirdParty/bricks.X.Y.Z.zip dans <LocalWP site>/app/public/wp-content/themes/.
  2. Activer Bricks dans WP Admin → Apparence → Thèmes.
  3. Renseigner la license dans Bricks → License (depuis ton compte bricksbuilder.io).

3. Installer WPML

  1. Dans WP Admin → Extensions → Ajouter → Téléverser, charger ThirdParty/sitepress-multilingual-cms.X.Y.Z.zip.
  2. Activer le plugin et entrer la clé de license depuis ton compte wpml.org.

Depuis une PowerShell admin :

New-Item -ItemType SymbolicLink `
  -Path "C:\Users\j_foucher\Local Sites\asterion-2026\app\public\wp-content\themes\asterion-bricks" `
  -Target "C:\ASTERION\GIT\WP2026\wp-content\themes\asterion-bricks"

Puis dans WP Admin → Apparence → Thèmes, activer Asterion Bricks (le child theme).


Structure du repo

WP2026/
├── BRIEF-Claude-Code.md          # brief projet (lecture obligatoire)
├── README.md                     # ce fichier
├── MISSING-ASSETS.md             # tracking des visuels/medias manquants
├── *.pdf                         # 2 livrables stratégie + design (sources de vérité)
├── ThirdParty/                   # gitignored — ZIP plugins commerciaux à déposer manuellement
│   ├── bricks.*.zip
│   └── sitepress-multilingual-cms.*.zip
└── wp-content/
    └── themes/
        └── asterion-bricks/      # le child theme — coeur du travail
            ├── style.css         # en-tête WP + import tokens
            ├── functions.php     # hooks, registers, queries
            ├── theme.json        # tokens globaux (Gutenberg + Bricks)
            ├── assets/
            │   ├── css/          # tokens.css, components.css, utilities.css
            │   ├── js/           # vanilla JS, defer
            │   ├── fonts/        # Inter + Inter Display self-hosted (RGPD)
            │   └── img/
            ├── templates/        # exports Bricks JSON (versionnés)
            ├── inc/              # CPT, ACF field groups, SEO schema
            └── README.md

Conventions

  • CSS : préfixe av- (asterion-vr), nommage BEM-light, zéro hardcode (tout via tokens).
  • JS : vanilla, defer, modules ES6 si nécessaire.
  • Images : AVIF + WebP + JPG fallback, lazy-loading natif sauf hero.
  • Vidéos : MP4 H.264 + WebM VP9, autoplay muted plays-inline loop, poster image.
  • Commits : Conventional Commits (feat:, fix:, chore:, style:, refactor:, test:, docs:).
  • Branches : main = stable, feat/<scope> = work in progress, merge après validation.

Hors scope phase actuelle

Production (OVH/O2switch + Cloudflare), migration depuis Avada, plan 301, traduction FR (linguiste interne), création articles blog éditoriaux (post-launch).


Contact

Description
No description provided
Readme 1.1 MiB
Languages
PHP 97.6%
CSS 2.4%