Skip to content

docs(i18n): #642 GDrive Rules migration table (24→21 audit trail) - #656

Merged
jsboige merged 1 commit into
masterfrom
docs/642-gdrive-rules-migration-table
Jul 3, 2026
Merged

docs(i18n): #642 GDrive Rules migration table (24→21 audit trail)#656
jsboige merged 1 commit into
masterfrom
docs/642-gdrive-rules-migration-table

Conversation

@jsboige

@jsboige jsboige commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Companion artefact to the #642 structural analysis (PR #646). Records the 24 → 21 migration audit trail for the GDrive Rules sync.

When Option 3 was applied (jsboige decision) — 2 clean sheets populated byte-perfect from repo master + legacy Cards tab archived under neutral name Cards (archive 24x5) — this table documents, for each of the 24 legacy rows, the best repo record match and the migration verdict, proving no authentic partner content (juliadespb) was silently lost.

Migration verdicts (computed from live data, code=truth)

Verdict Count Meaning
IDENTICAL 1 Legacy FR == repo record FR
PRESERVED 0 Legacy ≈ repo (cov ≥ 80%)
FRAGMENT 1 Legacy row = part of a repo record (markdown split)
GARBAGE-MT 10 MT garbage ("English Channel", "picareta"…) — superseded by clean gpt-5.5
NO-MATCH 12 Variant games (Bingo, débat corsé, moulin à baratin…) not in repo Rules CSV — preserved in archive

Partner-edited cells (authentic juliadespb, non-garbage): 25 — all preserved verbatim in the archived tab.

Why this matters

The legacy sheet used a 24-row linear layout splitting markdown rules across rows; the repo stores each rule as a single cell with embedded line breaks. A 1:1 row mapping is structurally impossible (proven in #646). The clean-sheet approach is the lossless resolution; this table is the traceability layer for review.

Verification

  • Clean sheets: Rules main (16×10) + Rules PP (7×10) readback EXACT MATCH byte-for-byte (REST diff + MCP read + dimension check)
  • Generated by build_642_migration_table.py from live GDrive snapshot + repo master cb989051 (not hand-authored)

Test plan

  • Doc review: verdict counts + NO-MATCH note (variant games, not data loss) read correctly
  • Spot-check 2-3 rows against the archived Cards (archive 24x5) tab

Relates #642. Companion: #646 (structural analysis), #647 (scanner anti-FP). Base master cb989051.

🤖 Generated with Claude Code

Companion artefact to the #642 structural analysis (#646). Records, for each of
the 24 legacy GDrive "Cards" rows, the best repo record match + migration verdict:
1 IDENTICAL, 0 PRESERVED, 1 FRAGMENT, 10 GARBAGE-MT, 12 NO-MATCH (variant games
not in repo Rules CSV, preserved verbatim in archived tab).

Documents the audit trail proving no authentic partner content (juliadespb) was
silently lost when Option 3 was applied (2 clean sheets byte-perfect from repo
master + legacy tab archived under neutral name).

Generated by code from live GDrive snapshot + repo master (code=truth, not
hand-authored). Base master cb98905.

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige
jsboige merged commit 5404dfc into master Jul 3, 2026
3 checks passed
@jsboige
jsboige deleted the docs/642-gdrive-rules-migration-table branch July 3, 2026 04:54
jsboige added a commit that referenced this pull request Jul 3, 2026
…t artefact, variants ARE in repo (#658)

Correction to PR #656's audit-trail note. The original note (and the PR #656
description) stated the 12 NO-MATCH rows were "variant game rules not present in
the repo". That conclusion was WRONG.

Verified against repo (code=truth): the 4 variants ARE present — Rules_07
(Le Bingo mixologie), Rules_09 (Le dernier beau parleur), Rules_11 (Le moulin à
baratin), Rules_13 (La parlote coinchée). The repo holds the full 15-card set.

The 12 NO-MATCH are a layout-alignment artefact: the legacy GSheet used a
24-fine-row layout; the repo uses a condensed 15-card structure (#438/#250
restructure). The row-by-row sentence-overlap matcher could not align GSheet
title-rows against merged repo cards, so it reported NO-MATCH. The 24->15
restructure lost 0 character (16446 FR chars identical, verified by ai-01).

The migration lost no data. The note now documents this correctly.

Root-cause of the error: interpreting a matcher's NO-MATCH signal as
"content absent from repo" without empirically verifying the repo records
exist (pattern [[test-counter-empirical-dotnet-test]]).

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 25, 2026
… (0 run, 0 prod CSV) (#903)

Prepares the worker-side translation harness for #684 (DNN Rule prose, 7 langs × ~30 entities)
ahead of the #681 (2sxc App export) artefact, per ai-01 dispatch. Turns the export wait into
concrete readiness.

Design doc + draft prompt:
- docs/dnn-localization/684-rule-prose-translation-harness.md — the harness design: Option C
  task config (ready-to-paste C# snippet: UseResponsesApi=true, ReasoningEffort="low",
  MaxOutputTokens=7000, gpt-5.5, UseFunctionCalling=true, Enabled=false), Option C 5-record
  pilot protocol (#855 reco), cell-by-cell verification (3 dimensions: non-empty / not-FR-
  contaminated / language-correct — lessons #803 r7 false-0, #656 matcher-no-match), 7-language
  acceptance grid (DoD from #684), report format, serialization gate.
- DatasetUpdater/Resources/PromptDnnRuleProseTranslateEnUser.txt — draft EN user prompt adapting
  the #487 DNN UI-strings pattern to Rule prose (function calling, HTML preservation,
  placeholders {0}/{1}, RTL/CJK, zero-FR-contamination).

Closes the gap #855 flagged: every gpt-5.5 task today is wired to legacy Chat Completions
(UseResponsesApi unset on 0/48) → latent empty-Content on reasoning models. The harness
specifies the Option C routing for the Rule-prose task so the first Enabled=true flip doesn't
silently produce empty output.

Honest scope — no compiled config entry added: the source prose is DB-only (arrives via #681
export, no KnownDataSets.DnnRuleProse today) and the field model is pending #682. A compiled
entry with guessed field names would be dead code that looks ready. The snippet is the
ready-to-paste form, instantiated once the export format is known.

0 run, 0 prod CSV, 0 DB mutation. Enabled=false held until #681 + #682 + pilot PASS + T&A #802.
Re-import is jsboige-side; visual QA verdict is ai-01-only.

Co-authored-by: Your <your.email@example.com>
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