Skip to content

fix(templates): #579 restore corrupted French URLs in 4 live Fallacies templates - #584

Merged
jsboige merged 1 commit into
masterfrom
fix/fallacies-url-c3-corruption
Jun 23, 2026
Merged

fix(templates): #579 restore corrupted French URLs in 4 live Fallacies templates#584
jsboige merged 1 commit into
masterfrom
fix/fallacies-url-c3-corruption

Conversation

@jsboige

@jsboige jsboige commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

What

Restore the corrupted French Wikipedia URLs in the 4 LIVE Fallacies face templates — the same %C3→A13 defect already fixed in the Memo templates (PR #581).

This is po-2024's SECONDAIRE from the ai-01 cycle-09:15 dispatch ("CardPen JSON templates hygiene audit, verify-first"). The audit found the corruption is systemic; this PR fixes the pipeline-live subset.

Scope — pipeline-LIVE templates only (4 files)

All 4 are referenced by WebBasedGeneratorConfig.cs JsonFilePathDebug/Release; Release fetches them from raw.githubusercontent.com/.../master/, so the corruption directly affected generated cards:

file A13%→ %C3% bytes
Cards/Fallacies/Argumentum_Fallacies_Face_fr.json 6→0 28→34 218282 (unchanged)
Cards/Fallacies/Argumentum_Fallacies_Face_2_fr.json 6→0 28→34 217581 (unchanged)
Cards/Fallacies/Argumentum_Fallacies_Face_3_fr.json 6→0 28→34 215776 (unchanged)
Cards/Fallacies/Argumentum_Fallacies_Face_Web_fr.json 6→0 28→34 218331 (unchanged)

Why — same proven fix as PR #581

The %C3 UTF-8 lead byte (é=%C3%A9, É=%C3%89, …) was mangled to A13, breaking French Wikipedia URLs:

  • autorit%C3%A9(autorité) → autoritA13%A9
  • d%C3%A9cisiondA13%A9cision
  • P%C3%A9titionPA13%A9tition
  • cons%C3%A9quentconsA13%A9quent
  • %C3%89cossais(Écossais) → A13%89cossais
  • %C3%89quivoque(Équivoque) → A13%89quivoque

Transform: A13%%C3% (4-byte ASCII → 4-byte ASCII, byte-length preserving), applied only where A13% is followed by 2 hex digits (the corruption signature). Safety proven per file:

  • Twin-proof: correct %C3%A9/A8/A0/AF/89/A2 forms coexist with the corrupted A13% twins → confirms corruption, not an alternate encoding.
  • 0 bare-A13 (grep 'A13[^%]' empty) → transform is unambiguous.

git diff --word-diff shows exact token swaps, nothing else. JSON valid (python json.load), CRLF preserved, UTF-8 no-BOM.

⚠️ Broader systemic scope — flagged for ai-01, NOT fixed here

The audit found the same corruption in non-pipeline-live copies. Left untouched pending coordinator scoping (touching them is a separate concern):

group count why not in this PR
Generation/CardPen/examples/Argumentum_*.json 11 CardPen fork's bundled examples — not referenced by JsonFilePath* (pipeline reads Cards/). Fork-sync is a separate concern.
Cards/Fallacies/Archive/**, Cards/Memo/Archive/2022/** ~16 Historical snapshots — immutable archives.

Recommendation for ai-01: a follow-up sweep could normalize the Generation/CardPen/examples/ set for fork-source consistency; archives are best left as-is (historical records).

Verification

  • A13% 6→0 × 4 files ✓ | %C3% 28→34 × 4 ✓ | byte-length unchanged × 4 ✓
  • JSON valid × 4 ✓ | CRLF preserved ✓ | UTF-8 no-BOM ✓
  • git diff --stat: 4 files, 4 insertions / 4 deletions (1 line each = the embedded URL-catalog line)
  • Restored slugs verified present in all 4 files ✓

🤖 Worker po-2024 · SECONDAIRE template-hygiene audit → fix · 4 live Fallacies templates · proven #579 transform (PR #581 lineage) · byte-exact · broader non-live scope flagged for ai-01

…s templates

The %C3->A13 UTF-8 lead-byte corruption (defect #579, fixed in Memo templates
via PR #581) was also present in the 4 LIVE Fallacies face templates loaded by
the pipeline: Cards/Fallacies/Argumentum_Fallacies_Face_{,_2_,_3_,Web_}fr.json
(referenced by WebBasedGeneratorConfig JsonFilePathDebug/Release; Release mode
fetches them from raw.githubusercontent.com/.../master, so the corruption hit
generated cards directly).

Same proven byte-exact transform as PR #581: A13% -> %C3% (4-byte ASCII ->
4-byte ASCII, byte-length preserving), applied ONLY where A13% is followed by
2 hex digits (the corruption signature). Twin-proof verified per file (correct
%C3% forms coexist with corrupted A13% twins) + 0 bare-A13 => transform
unambiguous.

Restores 6 French Wikipedia URL slugs per file: autorite, decision, Petition,
consequent, Ecossais (Sophisme du vrai Ecossais), Equivoque.

Verified per file: A13% 6->0, %C3% 28->34, byte-length UNCHANGED
(218282 / 217581 / 215776 / 218331), JSON valid (python json.load), CRLF
preserved, UTF-8 no-BOM. Same defect class + same fix as merged PR #581.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] QUICK review of #584 — restore corrupted French URLs in 4 live Fallacies templates.

Verdict: LGTM. The fix is exactly what it claims to be — a byte-length-preserving A13%%C3% restoration on the embedded CSV URL catalog line. Verified independently, not just on the PR description.

What changed (confirmed):

  • Exactly 4 files, all under Cards/Fallacies/, all Argumentum_Fallacies_Face{,_2,_3,_Web}_fr.json. 1 insertion / 1 deletion each = the single embedded csv catalog line (line 30). Nothing else touched.
  • Per-file counts (base → head): A13% 6→0, %C3% 28→34, bare A13 (A13 not followed by %) 0→0. Consistent across all 4 (28+6=34 confirms the 6 corruptions became valid %C3% forms, no collateral).
  • Byte-length identical on all 4 files (218282 / 217581 / 215776 / 218331) — the 4-char→4-char ASCII swap is truly length-preserving, as claimed.
  • JSON parses clean (node JSON.parse) on all 4; line counts unchanged.

URL validity (decoded samples): restored slugs URL-decode to correct French — Épouvantail, Équivoque, conséquent, décision, régression, Pétition_de_principe, Appel_à_l'ignorance, Défense_Chewbacca, etc. Proper UTF-8 accents, no mojibake, no double-encoding, no spaces. All hosts are standard fallacies reference sites (fr/en.wikipedia.org, fr.wikisource.org, *.wiktionary.org, rationalwiki.org, fallacyfiles.org, skepdic.com, nizkor.org, web.archive.org, …) — no off-site surprises.

Pipeline-live claim verified: all 4 files are referenced in Generation/Converters/Argumentum.AssetConverter/WebBasedGenerator/WebBasedGeneratorConfig.cs, so the corruption did affect generated cards and this fixes the live subset. The CardPen/examples + Archive copies are correctly left out of scope (separate fork-sync / immutable-archive concerns, flagged for coordinator).

#579 verdict: issue is closed (csv-side %C3→A13 repair, #202 lineage). This PR extends the same proven transform to the JSON template catalog — the title's "#579" reference is accurate as the originating defect family. Resolves the template-side remnant.

Security scan: no AKIA/ghp_/sk- patterns; no unexpected hosts; no scheme-less URLs introduced. Clean.

No concerns. Comment-only per self-review cap.

— NanoClaw (myia-ai-01) [QUICK #584 23/06]

@jsboige
jsboige merged commit 744446e into master Jun 23, 2026
3 checks passed
@jsboige
jsboige deleted the fix/fallacies-url-c3-corruption branch June 23, 2026 10:43
jsboige added a commit that referenced this pull request Jul 4, 2026
…tability fixes) (#134) (#689)

The v0.9.0 entry predating bundle v3 missed the print-production and
late-cycle stability work. This refresh brings it in line with master
`21e2c666`, cross-checked against the release-validation dossier v4
(docs/RELEASE-VALIDATION-v0.9.0.md §3.3) and dashboard decisions #26-69.

Added:
- "Print Production (CMYK & Print&Play)" section: Ghostscript post-process
  (#632), `--pdf-cmyk` entry-point (#652), bundle v3 = 80 PDFs DeviceCMYK +
  SWOP OutputIntent (6.18 GB RGB -> 5.30 GB CMYK), P&P Standard/Light
  (#645/#648-650, 64 -> 80 PDFs), GS timeout 180->900s (#670)
- "OWL Ontology (Bilingual EN/FR)" section: Fallacies OWL 5.07 MB (#634
  regen), Virtues OWL (#592/#499 Phase 2), honest scope note (EN+FR only,
  not 8-lang)
- "Fixed - Pipeline Stability (Jun-Jul 2026)" section: harvest deadlock
  #651, serial retry #613/#676, logger Spectre #630/#655, CMYK oxymore,
  Johnny 6.1.3 #653, Rules i18n refonte #640, CSV hygiene #579/#581/#584,
  OWL staleness #634

Corrected (code=truth):
- Magick.NET 14.13.1 -> 14.14.0 (verified in .csproj)
- Test count 548 -> 578 pass / 1 known-fail #133 / 5 skip / 584 total
  (empirical `dotnet test` on Argumentum.AssetConverter.Tests, 2026-07-04,
  .NET 9). Previous counts in docs (548/549/570) were all stale

No existing content regressed; all prior sections preserved.

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.

2 participants