Skip to content

docs(dnn): prod rules coverage audit — 5/5 games present (FR), 7 langs not ported - #662

Merged
jsboige merged 1 commit into
masterfrom
docs/657-dnn-prod-rules-coverage
Jul 3, 2026
Merged

docs(dnn): prod rules coverage audit — 5/5 games present (FR), 7 langs not ported#662
jsboige merged 1 commit into
masterfrom
docs/657-dnn-prod-rules-coverage

Conversation

@jsboige

@jsboige jsboige commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Read-only audit of https://dnn.argumentum.myia.io/Règles answering jsboige's concern (2026-07-03, via ai-01 dispatch msg-20260703T095500-5wdug6): "it is possible that some rules were not ported to the prod site."

Verdict

The 4 variants + the main game ARE on prod (FR). No rule was lost.
But the prod site publishes the rules in FRENCH ONLY — the 7 translated languages (en/ru/pt/ar/es/zh/fa) present in the repo are NOT published on the site.

jsboige's missing-rules concern is refuted for content (all 5 games present). A separate, real gap exists on the multilingual axis (FR-only publication), which is a DNN content-portage task, not a data-loss issue.

Coverage matrix (prod vs repo)

Game FR EN/RU/PT/AR/ES/ZH/FA
L'école des menteurs (main) ✅ prod ❌ repo only
Le Bingo mixologie argumentative ✅ prod ❌ repo only
Le dernier beau parleur ✅ prod ❌ repo only
Le moulin à baratin ✅ prod ❌ repo only
La parlote coinchée ✅ prod ❌ repo only

Prod multilingual coverage: 1/8 languages (FR).

Evidence (read-only probes)

  • <html lang="fr-FR"> hardcoded for /Règles + all ?language=XX → locale param ignored.
  • ?language=en-US serves identical FR content (same titles, same size +34 bytes, FR accents &#233; present) → FR fallback.
  • Path-based /en-US/Règles/fa-IR/Règles → all 404 (no localized pages).
  • Skin switcher <div class="language"> empty (DNN language object present but not populated — feat(dnn-i18n): #457 translate DNN UI strings FR -> 7 langs via gpt-5.5 #490 delivered infra, not content).

Context

Audit-only, no prod change. DoD met: coverage doc + clear verdict per language.

Relates: ai-01 dispatch msg-20260703T095500-5wdug6, #636 #490 #134 #140.

🤖 Generated with Claude Code

…s not ported

Read-only audit of https://dnn.argumentum.myia.io/Règles answering jsboige's
concern (rules not ported to prod). Findings:
- Content: 5/5 rule sets present on prod (FR) — no rule lost (#438/#250 re-paginated
  24→15 without dropping a game). The 4 variants + main game are all published.
- Multilingual: prod is FR-only. <html lang="fr-FR"> hardcoded for all locales,
  ?language= ignored (FR fallback), /XX/Règles all 404, switcher <div class="language">
  empty. The 7 repo translations (en/ru/pt/ar/es/zh/fa) are NOT published on the site.
- Verdict: jsboige's missing-rules concern refuted for content; separate real gap on
  the multilingual axis (DNN content portage, post-tag candidate per #27/#16).

Audit-only, no prod change. Relates ai-01 dispatch msg-20260703T095500-5wdug6,
#636 #490 #134 #140.

Co-Authored-By: Claude <noreply@anthropic.com>
@jsboige
jsboige merged commit 863a856 into master Jul 3, 2026
3 checks passed
@jsboige
jsboige deleted the docs/657-dnn-prod-rules-coverage branch July 3, 2026 17:09
jsboige added a commit that referenced this pull request Jul 3, 2026
…shed pack (#663)

Tertiaire dispatch kp26j6. Refines the #415 Phase-2 proposal (PR #628, read-only,
no execution). Re-measured on current master 9c19e51 (was 33b1c0b at proposal time).

Two findings that sharpen the plan:

1. Mindmapper gap (186.7 MB) — the proposed git filter-repo --path prefixes are
   exact-prefix matches and MISS two sibling build-output trees:
   - .../AssetConverter/Mindmapper/Published/  (129.2 MB)
   - Cartes/Generation/Mindmap/Mindmapper/Published/  (57.5 MB)
   These are regenerable dotnet-publish output (.csproj/.sln committed in history,
   binaries deleted at HEAD, .REMOVED.git-id sentinels alongside). Corrected strip
   target = ~1.8 GB (proposal said ~1.557 GB). The --path set is updated to close
   the gap; they were misclassified into the "other" zone by the audit path regex.

2. Pack grew 2.05 -> 2.08 GiB (+3868 objects) but the growth is text/code only
   (other zone 882.8 -> 946.7 MB); regenerable binary zones byte-for-byte unchanged.
   Bloat source is NOT recurring — no new build artifacts committed.

Risk #2 currency update: open PRs 8 -> 3 (#596/#661/#662), lowering rewrite risk.

READ-ONLY per DoD: 0 history mutation, 0 force-push, 0 clone, 0 Cards/ write.
Reproducible via python tools/git-weight-audit.py + scratchpad 415_mindmapper_gap.py.
Go/no-go = jsboige. Recommendation (DEFER post-tag) unchanged.

Co-authored-by: Your <your.email@example.com>
Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 3, 2026
Investigate the mechanism for publishing DNN site content in the 7 non-FR
languages (coupled-release critical path, ai-01 dispatch 8b3ymj). Builds on
prod coverage audit #662 (site FR-only).

Key findings:
- Two bespoke apps at different i18n maturity: FallacyExplorer is
  multilingual-ready post-#490 (loc() helper, CmsContext.Culture cascade,
  lang-suffixed fields text_fr/text_en/...); RulesExplorer is FR-only
  (generic fields ruleEntity.Summary/.Material/..., no culture logic,
  hardcoded FR) — the direct cause of the #662 FR-only verdict.
- The site Rules content (Summary/Material/Installation/Content/Variants/
  Memo) is DB-only, manually-authored — it does NOT match the Rules CSV
  columns (Text/Text_en/...). The CSV translations are not reusable as-is;
  porting is prose translation of DB content.
- 3 localization layers: L1 UI strings (#487 rail built, gated on portal
  export for res.* values), L2 static HTML (not wired), L3 content items
  (DB-only bulk — the dominant cost).

DoD met: mechanism + per-language effort estimate + step plan.
Read-only: 0 prod write, 0 DB mutation. Portal/2sxc export (jsboige) is the
single hard unblocker. Highest-leverage worker-able prep = RulesExplorer
view refactor (mirror the proven FallacyExplorer loc() pattern).

Relates: #457 #487 #490 #662 #134 #140.

Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 3, 2026
…jsboige arbitration) (#671)

Prep-only analysis for the intermittent idle-hang on prod DNN site
(observed during audit #662 §6). Documents the Option C mitigation
(SQL connection-string tuning) with recommended values + rationale +
apply-steps, for jsboige's arbitration (prod web.config = ops/VPS lane).

Recommended values for SiteSqlServer:
  Min Pool Size=5; Connect Timeout=30; Connection Lifetime=300; Load Balance Timeout=30

Root-cause hypothesis: SQL connection-pool staleness post-idle (dead socket
served from pool → Open/query blocks → HTTP 000). Connection Lifetime=300
continuously sheds stale connections (most relevant knob); Min Pool Size=5
pre-warms against cold-connect; Connect Timeout=30 bounds the stall.

Complementary to Option A (IIS PeriodicRestart ~4h, already GO'd to IIS lane).
Either alone helps; together cover long-idle + within-window stalls.

Not applied: 0 prod write, 0 VPS access. Decision = jsboige.

Relates: audit #662, ai-01 dispatch 8b3ymj.

Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 4, 2026
… review entry) (#688)

Dispatch lev5ct secondary (jsboige wants to verify ALL docs before tagging).
One index → one link + one "à vérifier" line per doc, so the whole release
documentation can be eyeball-reviewed in a single pass.

Grouped in 9 sections:
- §1 TAG GATE: RELEASE-VALIDATION-v0.9.0.md (v4 fresh, 80 PDFs, verdicts #140/#632)
- §2 Release notes: consolidated #659 (paste-ready) + CHANGELOG gap flag
- §3 CMYK (PdfCmykPostProcess README + GDrive CMYK_COLOR_PROOF note)
- §4 Pipeline resilience (retry smoke #680)
- §5 DNN i18n / go-live (#669 mechanism, #681 schema export, #662 coverage)
- §6 Coverage audits (Rules #661, polish sweep #667, taxonomy coherence,
  scanner-fp #642, prod hygiene)
- §7 Mindmaps/OWL (#499 Phase2 confirm, FR-frozen mechanism, OWL EN+FR-only scope)
- §8 Polish/misc (#654 mnemonics, #629 CardPen, #415 repo, #141 crossLink)
- §9 Stale framework docs flagged (64-PDF superseded — NOT tag-gate)

Key flags surfaced for jsboige:
- CHANGELOG.md is the single biggest gap — predates bundle v3 entirely (no
  CMYK/80-PDF/P&P Standard/Light/Ghostscript/deadlock/logger). Needs an update
  pass before tag.
- 5 framework docs still assert "64 PDFs" (superseded by dossier v4) — flagged
  to avoid cold-read confusion, none is the tag-gate.
- OWL scope = EN+FR only (not 8-lang) — release notes must reflect this honest
  scoping.

All paths verified on master 7590dfb (post cycle-3 batch merges).

Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 4, 2026
…#692)

Precise cartography of Rule prose exists/missing per language: CSV (card-print)
vs DNN site. Triggered by ai-01 dispatch sde6s0 (secondary). Read-only.

Findings (base master 21e2c66):
- CSV Rules: 15 rows x 8 langs = 120/120 cells filled, 0 FR-leak on master
  (native script verified: Cyrillic/CJK/RTL spot-checks).
- P&P Rules CSV: 6 rows x 8 langs = 48/48 cells filled, 0 leak.
- DNN site (reconciled from #662): 5/5 jeux FR published, 7 langs unpublished;
  richer HTML content, DB-only.
- Conclusion: CSV != site content (#669 §2c). The #684 gap is site-DB content
  (~30 rich HTML entities, FR-only), NOT a CSV-coverage gap. CSV is a secondary
  reference for #684, not the translation source.

Corrects a false-positive: an initial scan on the dnn/sandbox-runtime-1032
branch flagged Rules_15 ru as FR-contaminated; verified native Russian on
master (0 FR markers). No action needed.

Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 10, 2026
…~210), no migration needed (#764)

Addendum to 684-translation-manifest.md (#696). Resolves the manifest's own
deferred question ("is it 5 games? do all games have all 6 fields populated?")
with live export #681 ground truth (12-game-rule-content-items.json).

3 corrections, structure unchanged:
- Game count: ~5 (estimate) -> 5 CONFIRMED (entityCount=5, all IsPublished=True).
  Cross-validated vs #662 prod scrape ("5/5 jeux FR présents, 0 rule missing").
- Prose cells: ~30 (assumed full) -> 23/30 populated. The 7 empty are STRUCTURAL
  (3 games have no Variants, 4 games have no Memo card) — not data gaps. No
  fabrication: empty cells stay empty across langs.
- Translation volume: ~210 units -> 161 (prose) + 35 (titles) = ~196, -20% vs
  estimate. Still the dominant portage item, but smaller than planned.

"DB seed/pre-migration" CLARIFIED: no migration needed. The "24-30" was a
CARD-level count (24 pre-repagination #438/#250 -> 15 post), not a game
undercount. The 15 cards map to 5 games (some span multiple cards). The 5
published games ARE the complete intended set (#662: "0 rule missing") —
translation proceeds against them directly, no seeding prerequisite.

The manifest's structure (6 prose fields x 7 langs, Scenarii-style chunking,
gpt-5.5, re-import plan) STANDS — this doc only supersedes its volume figures
and unblocks the source path (export #681 now delivered).

Gate: analysis-only, 0 prod write (export = read-only SELECT). Triggered by
ai-01 dispatch 1gmve4 (primaire). Gated review ai-01.

Co-authored-by: Claude-Code <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant