Files
xamxam/docs
Pontoporeia 8accb88452 update: CSS per-page split and lightningcss unusedSymbols report
docs: record CSS template inventory + decide unusedSymbols-before-split ordering

feat(css): add content-source collector + dynamic-class safelist for unusedSymbols report

- scripts/css-content-sources.mjs: buildCorpus() gathers templates/public/src
  PHP + first-party js/app JS (vendor excluded), returns {corpus, sources,
  totalBytes, safelist, prefixes}
- Mined 22 exact runtime classes + 5 DB/state-derived suffix prefixes from
  status-badge.php, SystemController statusClass/logLineClass, and class=<?=?>
  ternaries
- docs/css-split-analysis.md notes content-corpus section
- td: #11 collect-content-sources done; feeds #12 report script

feat(css): unusedSymbols report script + just css-report recipe

- scripts/css-unused-report.mjs: per-bundle class/id extraction vs buildCorpus()
  corpus + safelists; measures reclaimable bytes via lightningcss transform
  unusedSymbols (report-only, no stripping to disk)
- just css-report: rebuild CSS then run the report
- css-content-sources.mjs: add VENDOR_CLASS_PREFIXES (filepond--*, htmx-*)
- RESULT: 216,383B total, ~6.2KB (2.9%) reclaimable; FilePond/HTMX exclusion
  corrected inflated 26% (56KB) false-positive down to honest 2.9%
- docs/css-split-analysis.md findings table + TODO 12/13 done

docs(css): record go/no-go decision — split NO-GO, pruning conditional-go

- Decision analysis in docs/css-split-analysis.md
- ~6.2KB (2.9%) reclaimable of 216KB; base.min.css only 484B (2.3%)
- SPLIT NO-GO: base.css already well-used; parked u/w/x/y(/z) as deferred
- PRUNING conditional-go on hand-verifiable dead selers from source, never dist;
  re-run just css-report after each edit; keep needs-review + vendor-prefix cls
- td: task 14 done; split stream 41 tasks -> 2 pending / 32 done / 7 deferred

todo: defer CSS pruning stream (10/u/w/x/y/z), context updated
2026-09-18 16:26:36 +02:00
..

Documentation index

This directory separates current reference docs, proposals/plans, and historical/archived analysis (in archive/).

Note on naming: XAMXAM was previously Post-ERG (and the code was once organised under posterg-website/, apps/, front-backend/, /var/www/posterg/). References to posterg, apps/public/inc/header.php, posterg.db, just serve, php-live-reload, tests/run-tests.php, etc. in historical docs reflect the old layout. The live paths are now app/, app/public/, app/storage/xamxam.db, just dev, PHPUnit, and /var/www/xamxam/ on the server.

Current reference (kept up to date)

Doc Contents
development.md Dev workflow, structure, builds, testing, linting
environment.md Runtime stack, PHP/nginx/DB/Node requirements, server specs
deployment.md Server setup, deploy, backups, rollback
database.md SQLite schema, migrations, tables, common ops
search.md /search and /repertoire behaviour
export.md CSV / DB / files export + full restore procedure
nextcloud-sync.md Off-site SQLite snapshot sync to Nextcloud WebDAV
import.md CSV import format + behaviour
security.md Current security posture
file-uploads.md Upload surfaces, types, storage layout
CSS.md CSS architecture + build
bookmarklet.md Form auto-fill test helper

Proposals / plans (proposed, not all implemented)

Doc Status
ldap.md LDAP login — not implemented (merged plan + spec)
monolog-plan.md Single Monolog logger replacing AppLogger/AdminLogger/ErrorHandler/Audit — plan
de-librairisation.md Replace bespoke SMTP/Markdown/HTTP/crypto with libraries (partly done)
refactoring.md Older refactoring proposal
ANALYSIS_STRUCTURE_REORG.md Proposed structure reorg
ANALYSIS_INLINE_JS_CSS_MINIFY.md Inline JS/CSS/minify analysis (largely actioned by the build system)
backup-plan.md Backup plan — largely implemented (see deployment.md)
repertoire-mobile-propositions.md Mobile repertoire UI proposals
spec-sheet.md Original requirements fiche technique (incl. client notes appendix)

Active investigations (unresolved)

Doc Status
filepond-crash-analysis.md FilePond upload crash — unresolved, root cause in vendor code (merged race-investigation appendix)
peertube-sso-incident.md PeerTube invalid_grant diagnosis & ownership
autosave-system.md Autosave architecture & HTMX migration assessment

Historical / archived (in archive/)

Kept for context — may reference the old codebase. Not maintained.

Doc Contents
vm-crash-incident.md VM crash root-cause (merged final report + reports + evidence + fix)
CURRENT_ISSUES.md Issue log (2026-05-10) — many since resolved
LIVRAISONS_PAR_MOIS.md Monthly delivery log grouped by functional family
migration-history.md History of major structural migrations
php-vs-flask.md Language choice decision
orm-assessment.md ORM evaluation
css.md Old Bulma-removal writeup (see CSS.md for current)
system-setup.md PHP-extension inventory
SETUP.md Earlier setup snapshot (see development.md)
testing.md PHP testing best-practices writeup
SMTP_550_POSTFIX_FIX.md SMTP troubleshooting record
cms-migration-plan.html CMS migration plan
Proposition procédure licences_V2.pdf Licence procedure proposal
pi-session-2026-05-10T*.html Captured session log
  • nginx/docs/ — nginx config, security headers, deployment, HTACCESS→nginx
  • app/storage/README.md — DB quick-reference (schema link)
  • app/public/admin/README.md — admin panel structure

Maintenance guidance: when updating code, update the matching current reference doc in the table above. Leave archived docs untouched (read-only context). Move newly-written analysis into the appropriate section.