fix(templates): #579 restore corrupted French URLs in 4 live Fallacies templates - #584
Conversation
…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
left a comment
There was a problem hiding this comment.
[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/, allArgumentum_Fallacies_Face{,_2,_3,_Web}_fr.json. 1 insertion / 1 deletion each = the single embeddedcsvcatalog line (line 30). Nothing else touched. - Per-file counts (base → head):
A13%6→0,%C3%28→34, bareA13(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]
…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>
What
Restore the corrupted French Wikipedia URLs in the 4 LIVE Fallacies face templates — the same
%C3→A13defect 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 fromraw.githubusercontent.com/.../master/, so the corruption directly affected generated cards:Cards/Fallacies/Argumentum_Fallacies_Face_fr.jsonCards/Fallacies/Argumentum_Fallacies_Face_2_fr.jsonCards/Fallacies/Argumentum_Fallacies_Face_3_fr.jsonCards/Fallacies/Argumentum_Fallacies_Face_Web_fr.jsonWhy — same proven fix as PR #581
The
%C3UTF-8 lead byte (é=%C3%A9, É=%C3%89, …) was mangled toA13, breaking French Wikipedia URLs:autorit%C3%A9(autorité) →autoritA13%A9d%C3%A9cision→dA13%A9cisionP%C3%A9tition→PA13%A9titioncons%C3%A9quent→consA13%A9quent%C3%89cossais(Écossais) →A13%89cossais%C3%89quivoque(Équivoque) →A13%89quivoqueTransform:
A13%→%C3%(4-byte ASCII → 4-byte ASCII, byte-length preserving), applied only whereA13%is followed by 2 hex digits (the corruption signature). Safety proven per file:%C3%A9/A8/A0/AF/89/A2forms coexist with the corruptedA13%twins → confirms corruption, not an alternate encoding.grep 'A13[^%]'empty) → transform is unambiguous.git diff --word-diffshows exact token swaps, nothing else. JSON valid (pythonjson.load), CRLF preserved, UTF-8 no-BOM.The audit found the same corruption in non-pipeline-live copies. Left untouched pending coordinator scoping (touching them is a separate concern):
Generation/CardPen/examples/Argumentum_*.jsonJsonFilePath*(pipeline readsCards/). Fork-sync is a separate concern.Cards/Fallacies/Archive/**,Cards/Memo/Archive/2022/**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
git diff --stat: 4 files, 4 insertions / 4 deletions (1 line each = the embedded URL-catalog line)🤖 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