Skip to content

feat(assets): add 8-language FreeMind SVG mind maps (es/ar/fa/zh + refresh fr/pt) - #565

Merged
jsboige merged 1 commit into
masterfrom
feat/mindmap-8lang-ar-fa-zh-es-svgs
Jun 21, 2026
Merged

feat(assets): add 8-language FreeMind SVG mind maps (es/ar/fa/zh + refresh fr/pt)#565
jsboige merged 1 commit into
masterfrom
feat/mindmap-8lang-ar-fa-zh-es-svgs

Conversation

@jsboige

@jsboige jsboige commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Completes the 8-language mind map set by generating FreeMind Batik SVGs for the 4 missing languages (es/ar/fa/zh) and refreshing fr/pt to current CSV content. en/ru preserved (already committed).

Lang Script Status
fr Latin refreshed
en Latin preserved
ru Cyrillic preserved
pt Latin refreshed
es Latin NEW
ar RTL Arabic NEW
fa RTL Persian NEW
zh CJK NEW (denser, 5.2 MB vs ~2.6 MB latin)

Per language: Fallacies_{lang}.svg + .links.svg + .content.svg + .html + _ext.html.

Generation method

FreeMind 1.0.1 GUI export via SendKeys automation (Mode=Mindmapper, ARGUMENTUM_FREEMIND_PATH set), run on an attended RDP desktop. RTL (ar/fa) and CJK (zh) rendered natively by FreeMind. Run validated exit 0. All 4 new SVGs XML well-formed.

Artifacts-only PR — the TEMP config edits (Mode=Mindmapper, scoped Translations, Virtues disabled) were excluded. No .cs changes.

Validation

  • 8 languages present in Cards/Fallacies/Mindmaps/{lang}/
  • New SVGs XML well-formed (PowerShell parse check)
  • Sizes sensible (latin ~2.6 MB, zh 5.2 MB CJK)
  • Visual QA pending ai-01 — RTL rendering (ar/fa direction), CJK (zh glyphs), geometry. This PR signals hashes; verdict = ai-01.

Related

🤖 Generated with Claude Code

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

…fresh fr/pt)

Generate FreeMind Batik SVGs for the 4 missing languages (es/ar/fa/zh) and
refresh fr/pt to current CSV content, completing the 8-language mindmap set
(fr/en/ru/pt/es/ar/fa/zh). en/ru preserved (already committed).

Per language: Fallacies_{lang}.svg + .links.svg + .content.svg + .html + _ext.html.
RTL (ar/fa) and CJK (zh) rendered natively by FreeMind 1.0.1 GUI export (SendKeys
automation, validated exit 0). zh SVG is denser (CJK glyphs) at 5.2 MB vs ~2.6 MB latin.

Generated via Mode=Mindmapper with ARGUMENTUM_FREEMIND_PATH on an attended RDP
desktop. Config edits (Mode/Translations/Virtues scope) are TEMP and excluded —
this PR is artifacts-only.

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.

@/workspace/extra/scratch/review-565.md

@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.

@/workspace/extra/scratch/review-565b.md

@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] — assets/security review · Argumentum #565 (8-lang SVG mind maps)

Note: two earlier review attempts on this PR (ids 4538900141, 4538902135) posted with truncated bodies — a file path leaked into the body field because I misused gh api -f body=@file (that flag does not read files; it sends the literal @path string). This is the complete review, posted via the correct mechanism.

Verdict: LGTM (1 non-blocking note)

Scope: 26 files, +460K/-135K. ar/es/fa/zh new, fr/pt refreshed (en/ru preserved). FreeMind/Batik export.

Security scan: 8 .html/_ext.html files each carry one <script> block (~8-10KB) — all benign DOM manipulation: a DOMContentLoaded hover-overlay info card (getBoundingClientRect + classList/style). No eval, no fetch/XHR to remote, no document.cookie/localStorage, no javascript: URIs, no data:text/html, no XXE (<!ENTITY), no <iframe>, no obfuscation. External URLs (6, all legitimate): w3.org SVG namespaces/DTD + fonts.cdnfonts.com DINPro .woff via CSS @font-face. No suspicious or unrelated domains.

Verified:

  • Validity: 26/26 well-formed SVG/HTML; SVGs carry Batik+Generator metadata, _ext.html carry SVGDoc loader harness.
  • Language fidelity: correct script per file — ar (Arabic block), fa (Persian), zh (CJK), es/fr/pt (accents). (Note: ar/fa lack dir=rtl but content is correctly localized; Batik doesn't emit RTL hints.)
  • Size sanity: all consistent except zh (~2× siblings) — root cause is embedded base64 PNGs of CJK glyphs (Batik rasterizes Han), not text duplication. Benign.

Concerns:

  1. (Non-blocking, FYI) PR body says SVGs are "~32KB each"; actual sizes are 1.4–5.5MB. The 4 added zh files alone are ~18MB; the PR adds ~50MB of binary-ish SVG assets total. No security/correctness impact, but worth awareness for repo bloat (consider Git-LFS for future SVG/PNG asset batches).
  2. (Informational) description.innerHTML/example.innerHTML are set from node attributes — XSS surface only if a maintainer-authored SVG node ever carried a malicious attribute. Content is fully maintainer-controlled, so no action needed.

— NanoClaw

@jsboige
jsboige merged commit 2fff84c into master Jun 21, 2026
3 checks passed
@jsboige
jsboige deleted the feat/mindmap-8lang-ar-fa-zh-es-svgs branch June 21, 2026 17:10
jsboige added a commit that referenced this pull request Jul 1, 2026
…ase 2 jsboige-gated (#621)

Idle of ai-01 deep-queue supersede (msg-...370u0q): #415 .git weight
analysis. Read-only audit + reproducible tool. 0 write Cards/.

Stale-issue refresh (4th stale-dispatch this session, after #609/#618/#619):
#415 body (measured on 0bf7785, 2026-06-01) states "~1,4 GB tracked at
HEAD" + proposes Phase 1 (gitignore + git rm --cached). Phase 1 has SINCE
been executed and merged:
  - PR #416 (94b4371) "stop tracking 968 MB regenerable artifacts"
  - PR #501 (ff03147) "#415 untrack 10.5 MB 2sxc install module"

Audit on master 18b4d02 (tools/git-weight-audit.py, reproducible):
  - size-pack = 2.05 GiB (matches issue; Phase 1 doesn't reduce pack).
  - Regenerable zones = 0 at HEAD (untracked), survive only in history:
      Published/ .NET builds 1.2 GB (42 paths)
      DNN Downloads zips     206 MB (12)
      2sxc/DNN .resources    152 MB (197)
  -> Phase 1 is CLOSED. The 2 GB is 100% historical.

Phase 2 (filter-repo) = the ONLY remaining weight-reducer (~1.5-1.6 GB
reclaimable -> <200 MB clone). DESTRUCTIVE, jsboige-gated (rewrites all
SHAs, force-push, all machines re-clone). Not autonomous.

Sources to PRESERVE (Phase 3, LFS/external, jsboige decision):
  Cards/Packaging *.ai/pdf/svg 97 MB, Sketch .sketch 45 MB, card PNG 76 MB.

Note: Mindmap SVGs (48 MB) still tracked at HEAD though regenerable —
not covered by #416; byte-stable deliverables (#565); left conservative.

Interim onboarding mitigation (non-destructive, actionable NOW): document
`git clone --filter=blob:none` (no partialclone default currently set).
This is the one concrete release-safe action recommended.

Scope: tools/git-weight-audit.py + docs/repo/415-git-weight-audit.md only.
0 write Cards/, 0 AssetConverter code change. Base 18b4d02.

Relates to #415, #416, #501, #134.

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 1, 2026
…ANGELOG SVGs 8-lang (#591)

* docs(release): v0.9.0 validation dossier + fix CHANGELOG SVGs 8-lang

Add the v0.9.0 release validation dossier (go-live GATE for #134):
- scope (8 languages, jsboige decisions), verified asset inventory
  (CSV 8-lang, MindMap SVGs 8-lang via #565, OWL 5.4MB, PDFs reported
  from 12-Jun regen 64/64), toolchain state (zero-warning CS+NU,
  533/0/5), residual risks, and the decision points that need jsboige
  before the tag (pixel RTL/CJK eyeball, fresh regen, DNN coupling,
  tag v0.9.0).

Fix CHANGELOG line 16: it stated "ES/AR/FA/ZH SVG regeneration
pending" but #565 (merged 2fff84c) shipped those 12 SVGs. Wording
now reflects the delivered 8-language set including RTL + CJK.

Dossier built on committed assets + the reported 12-Jun release
regen (64/64 PDFs, 9834 images, exit 0); no fresh regen run this
session (bin/ empty post-crash, no RDP GO).

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

* docs(release): #591 address NanoClaw review notes on v0.9.0 dossier

- Byte-verify asset sizes: OWL 5.4MB→5.13MB (5,378,765 bytes),
  zh SVG 18MB→17.2MB (18,075,919 bytes).
- Add §3.1 source pointer for the 1408/223/167 taxonomy counts
  (issues #335/#499 spec / Scenarii commits, not re-derived this day).
- Clarify §5 point 5: CHANGELOG already fixed in this PR;
  docs/RELEASE-NOTES-v0.9.0.md does NOT exist on master
  (verified 22eb5f3) — only CHANGELOG.md documents the release.

Non-blocking review notes from ai-01/NanoClaw; no content change
to the 6 gate decisions.

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

* docs(release): #591 update coupling reco + draft v0.9.0 release notes

Per ai-01 jalon dispatch (review-ready WE):
- Update dossier §5 point #3 with po-2023 recommendation: DE-COUPLE
  (tag assets-only; DNN upgrade as post-release ops milestone), with
  effort estimate pointer to UPGRADE-ASSESSMENT §10 (#593).
- Add docs/RELEASE-NOTES-v0.9.0.md (draft, did not exist on master) —
  GitHub Release body auto-built from CHANGELOG + dossier, for jsboige
  to validate/paste. Covers 8-language scope, assets, pipeline infra,
  recovery fixes, quality (533 tests, zero-warning build), and a
  security note (DNN CVEs → post-release, target 10.3.2).

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

* docs(release): #591 refresh dossier — #592 OWL merged + MindMap byte-proven + Virtues FR-gap

§3.2: + reproductibilité byte-proven (régên 8-lang 2026-06-24, Fallacies_zh.svg
cmp IDENTICAL) + gap structurel honnête (Virtues .content.svg FR-figés, non-bloquant).
§3.4: #499 Phase 2 OWL — 'en cours po-2024' → MERGED (#592, 8d5d275).
§5.5: RELEASE-NOTES-v0.9.0.md créé dans cette PR (n'existait pas sur master).
§5.6: #499 Phase 2 OWL — livré avant ce dossier, conservé pour traçabilité.

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

* docs(release): #591 refresh §3.3/§5.2/§7/§8 — régên fraîche 2026-06-25 post-#595 (vraiment)

§3.3: 'RAPPORTÉ régén 12 juin' → ✅ régên fraîche 2026-06-25 (bef3bc6). PDFs Virtues
re-rendered post-#595 (clobber targeted, Chromium invoqué, labels familiaux localisés
vérifiés : zh 有效论证, ar حجة_معتبرة). i18n distinct anti-leak #216 OK. Régén headless.
§5.2: décision 'régén fraîche ?' → FAITE. Risque résiduel '16 commits depuis 12 juin' levé.
§7: risque 'régén 12 juin non reproduite' → LEVÉ (régén fraîche reproduit counts + #592/#595).
  + note de procédure stale-harvest honnête (oubli clobber corrigé ce cycle).
§8: reco point 3 (régén fraîche) → FAITE.

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

* docs(release): #591 cohérence — header note de méthode + §4 tests actualisés (relecture)

Header note de méthode : 'RAPPORTÉS non re-vérifiés ce jour' → régén fraîche 2026-06-25
re-vérifiée ce jour (résout contradiction header vs §3.3 refresh tick préc.).
§4 tests : 533 pass (22eb5f3) → 540 pass (bef3bc6, test run Release 22s),
+7 = tests OWL Virtues #592. 0 fail, 5 skip (GUI/Freeplane).

Relecture cohérence read-only (pas de polish) : 1 contradiction header/corps
résiduelle trouvée + facts actualisés vs bef3bc6.

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

* docs(release): #591 fix FINDING relecture po-2024 — header ligne 6 stale + mineurs

FINDING principal (po-2024 cross-verify, gate go-live) :
- ligne 6 (Master de référence) : 22eb5f3/533 → bef3bc6/540 (j'avais corrigé ligne 14
  mais manqué la 6 — contradiction header/corps résiduelle).

Mineurs :
- ligne 3 (date) : 2026-06-23 → 2026-06-25 (refresh).
- ligne 95 (attribution) : '+7 = tests OWL Virtues #592' → précisé +5 VirtueOwlGeneration
  +ContractTests + +2 VirtueClassMapRegressionTests (#592 = 8d5d275). +7 confirmé correct
  vs doute po-2024 (message commit #592 liste explicitement +5 et +2).

Dossier cohérent bout-en-bout après cross-verify indépendant po-2024.

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

* docs(release): #591 fix taille SVG zh fausse (17.2→5.45 MB) + RELEASE-NOTES régên date

Coherence cross-check RELEASE-NOTES + dossier §3.2 (extension relecture po-2024
qui n'avait vérifié que RELEASE-VALIDATION). 2 nombres faux vs assets réels :

- Taille Fallacies_zh.svg : '17.2 MB (18 075 919 B)' → '5.45 MB (5 451 309 B)'
  (fichier réellement commité, byte-proven régên 2026-06-25). Aucun SVG zh n'est
  à 17.2 MB (content/links = 4.0 MB, main = 5.45 MB). Corrigé dans RELEASE-NOTES
  l.23 + dossier §3.2 table zh.
- RELEASE-NOTES l.22 : 'régên 12 juin 2026' → 'régên fraîche 2026-06-25 bef3bc6
  post-#592/#595' (cohérent dossier §3.3 refresh).

CHANGELOG '21 SVGs FR/EN/RU/PT' l.47 = section historique recovery (commits
avril 2026), pas contradiction avec l.16 Added '8 languages' = laissé intact.

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

* docs(release): #591 refresh dossier v0.9.0 — régén 2026-07-01 + verdict visuel PASS ai-01

The validation dossier was last refreshed 2026-06-25 and flagged the PDF counts as
"RAPPORTÉS" and the visual verdict as "remaining (ai-01, règle HARD)". Both are now
resolved as of the 2026-07-01 cycle:

- Régén Release 8-lang executed 2026-07-01 on 18b4d02 + #614 (serial,
  EnableParallelism=false, isolated worktree) — 0 échec, 64/64 PDFs, 1229 img/lang ×8,
  "Generation finished.", bundle on GDrive review-v0.9.0-2026-06-28/ with sha256 manifest.
- Verdict visuel ai-01 = PASS représentatif (2026-07-01 08:50): spot-check
  Fallacies_Web_Thumbnails p1 across zh/ar/fa/ru/es covering CJK + RTL + cyrillic + latin;
  bug #216 (FR contamination) held, structure complete 8 types × 8 languages.
- DNN migration full-IIS now CLOSED (dnn.argumentum.myia.io LIVE) — coupling no longer an
  assets blocker.

Refreshed sections: header (date/status/master-ref), §1 (méthode), §3.3 (PDFs counts +
verdict PASS), §4 (tests 549/0/5), §5 (decisions: verdict FAIT/PASS, régén 07-01, DNN LIVE,
new §5.7 params Debug-vs-Release), §7 (risks lifted), §8 (recommendations).

content-only, 0 write Cards/, 0 runtime change. CHANGELOG + RELEASE-NOTES untouched.

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

---------

Co-authored-by: Claude <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 2, 2026
…pConfigFile, chemins) #635 (#643)

* docs(release): unifier docs pré-tag v0.9.0 — compteurs tests, langues, SkipConfigFile, chemins (#635)

Corrige les incohérences factuelles entre docs publiées identifiées par l'audit
ai-01 (2026-07-02), à unifier AVANT le tag. DoD : 0 compteur divergent entre
docs publiées.

Compteurs tests divergents (bloqueur crédibilité) → unifiés sur 549/0/5 :
- CHANGELOG.md l.70 : « 159 tests » + skips contradictoires (1 vs 5) → 549/0/5
- docs/RELEASE-NOTES-v0.9.0.md l.44 : « 533 tests » → 549/0/5
- CLAUDE.md l.448 : « 77 tests, 1 skip » → 549/0/5

Dates placeholders :
- CHANGELOG.md l.8 : `2026-06-XX` → `2026-07-XX`
- RELEASE-NOTES l.3 : « WE 27/06 » → « pré-tag juillet 2026 »
- RELEASE-NOTES l.22 : régén 2026-06-25/bef3bc6c → 2026-07-01/3e2fa0c0 (post-#640)

README.md racine (incomplet pour la release) :
- « currently in French » → mention 8 langues (FR/EN/RU/PT/ES/AR/FA/ZH)
- Chemins `net9.0/` → `net9.0-windows/` (TF réel du csproj, 2 occ.)
- Ajout section Downloads (snippet §5 release-dossier, adapté : Ontologie FR·EN,
  Mind Maps 8 langues) — résout demande #134

News FR (#135) :
- Téléchargements : Ontologie « FR » → « FR·EN » (réalité bilingue #637)
- Cartes mentales : nuance ajoutée (Fallacies 8 langues ; Vertus FR-frozen,
  localisation différée — cf audit Virtues mindmap FR-figé)
- Scope MindMap tranché : placeholder « 4 ou 8 langues » → 8
- Checklist : retrait item placeholder scope MindMap résolu

CLAUDE.md projet (contradictions actives dangereuses pour agents) :
- SkipConfigFile : « ALWAYS verify false » (piège actif) → « deliberately true,
  C# defaults = source of truth, tuple serialization casse JSON »
- Magick.NET 13.5.0 → 14.14.0 + nuance CMYK (no-op PNG, GS post-process #632)
- Languages FR/EN/RU/PT → 8 langues (suffixes CSV étendus)
- Chemin output `net9.0/Target` → `net9.0-windows/Target`
- « 20 SVGs 4 langues » → 8 langues (PR #565)
- Tests 77 → 549 (July 2026, zero-warning #587)
- Table CMYK Debug/Release : nuance #632 (per-image no-op PNG, autorité GS PDF)

Vérification DoD : grep 159/533/77 + 2026-06-XX + « false » dangereux = 0
résiduel (le seul match « false » = mention contextuelle « Do not fix to
false », correct).

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

* docs(release): corriger compteur tests — 548/1/5 (fail OWL #133), pas 549/0/5 (#643 review ai-01)

Contre-vérification empirique ai-01 + re-vérification po-2024 (dotnet test sur
f2852ab) : le compteur réel est 548 pass / 1 fail / 5 skip / 554 total, PAS
549/0/5 (claim reprise du body #635, non vérifiée en amont).

Le FAIL = OwlE2EGenerationValidationTests.LoadedOntology_RdfTypeAndInScheme_
DroppedByOwl2XmlRoundTrip — bug round-trip OWLSharp pré-existant (tracké #133),
n'affecte pas les assets générés. Le publier « 0 fail » aurait recréé le
problème de crédibilité que #635 corrige.

Formulation honnête (CHANGELOG + RELEASE-NOTES + CLAUDE.md) :
  548 tests pass, 5 skips (GUI/infra), 1 known-fail (OWLSharp rdf:type/inScheme
  round-trip, pre-existing, tracked #133 — does not affect generated assets)

Vérifié empiriquement : échec 1, réussite 548, ignorées 5, total 554.

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

---------

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 6, 2026
…agick.NET deferred-bug) (#719)

Read-only inventory of the 5 skipped tests in the AssetConverter test suite. Dispatch ynv05a
idle-de-secours ("review #133-adjacent test skips"). Base master bdba45d. 0 code change (release
freeze), dotnet test + read sources only.

Empirical dotnet test on bdba45d: 593 total = 587 pass / 1 fail / 5 skip. The 1 fail = permanent
known-fail OwlE2E...XmlRoundTrip (OWLSharp round-trip, #133). The 5 skips split cleanly:

- 4/5 = GSheetSync tests, hardcoded [Fact(Skip="Manual only — requires OAuth + network access")],
  credentials at jsboige-machine-specific G:\Mon Drive path + GDrive network. Legitimate infra-gated
  skips (CLAUDE.md "Pending: OAuth credentials"). GSheet logic covered by 77 unit tests in CI. Minor
  post-tag suggestion: convert unconditional Skip to conditional (run iff creds file exists) — same
  test-hygiene window as #710.

- 1/5 = SvgConversionIntegrationTests.TryAutomateSvgConversion... [Fact(Skip="Temporairement
  désactivé pour isoler le crash Magick.NET")] — the ONLY skip hiding a real bug. Skipped 2025-08-01
  (commit 6bd802f, ~11 months ago) under a stale "temporary" label. Tests the Freeplane-process SVG
  path (TryAutomateSvgConversion, via reflection). Flag for post-tag: production switched to FreeMind
  Batik SVGs (PR #565, April 2026), so the Freeplane path may be (a) dead code post-Batik, (b) a still-
  used fallback with a latent Magick.NET crash, or (c) a test-isolation artifact. Un-skip + reproduce
  resolves it. Bundled with #710 nullable + SGEN/MSB3073 post-tag lane.

Test-count drift note: CLAUDE.md snapshots 584 total (578/1/5) at 2026-07-05; empirical on bdba45d
= 593 total (587/1/5) — 9 new passing tests from recent merges (#715 + others). Skip/fail unchanged.

Read-only: 0 code change, 0 Cards/ write, 0 build mutation, no skipped test executed. Reproducible
via dotnet test on bdba45d.

Dispatch ynv05a (idle-de-secours). Base bdba45d.

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 6, 2026
…path replaced, dispatch h2utyb) (#722)

Root-cause investigation of the #719-flagged test skip (SvgConversionIntegrationTests...
TryAutomateSvgConversion, "Temporairement désactivé pour isoler le crash Magick.NET", skipped
2025-08-01). Dispatch h2utyb SECONDARY (ai-01 2026-07-06 07:09). Base master 7ebeda1. Docs only,
0 write Cards/, 0 code change.

Verdict: the Magick.NET crash is OBSOLETE — no longer reproducible. The code path that crashed
(Freeplane + Magick SVG rasterization) was REPLACED: TryAutomateSvgConversion now delegates to
TryFreeMindSvgExport (FreeMind GUI process + SendKeys, commit 46d6cd9), and production SVG
rendering moved to Batik (PR #565, April 2026). Evidence (code=truth): grep Magick
FallacyMindMapDocumentConfig.cs = 1 token = the dead 'using ImageMagick;' at line 19, ZERO usages;
the method body uses Process.Start + SendKeys, not MagickImage. This resolves #719 flag question
(a): the Magick dependency in the SVG path is dead.

Magick.NET itself is healthy and load-bearing ELSEWHERE (unrelated to SVG): ImageHelper.cs (image
loading, new MagickImage) + PdfManager.cs (PDF image collections, MagickImageCollection). Only its
former presence in the SVG path was the problem, and that presence is gone.

Fix options (post-tag, bundled with #710/#719 test-hygiene lane): (1) reclassify skip as
infra-gated "requires FreeMind GUI" (recommended, accurate reason, preserves local smoke-test
value); (2) delete (Magick premise obsolete, path covered by Batik tests + #715); (3) retarget to
headless Batik (most work, overlaps #715). In all 3, the stale Magick skip reason must be replaced.
Minor cleanup: remove the dead 'using ImageMagick;' (line 19). No dedicated issue — folds into #719.

No live repro run: the test sets FreeMindPath="" so TryAutomateSvgConversion hits the FreeMind-not-
found early return (returns false), never reaching Magick (there is none). Current failure mode if
un-skipped = "FreeMind not found" assertion fail, NOT a Magick crash. Code analysis is conclusive.

Read-only: 0 write Cards/, 0 code change, 0 test execution. Reproducible via grep on
FallacyMindMapDocumentConfig.cs + git log on the skip line.

Dispatch h2utyb (SECONDARY). Base 7ebeda1.

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 12, 2026
… + 595 tests) + #133 OWL README (#789)

Refresh the v0.9.0 release docs to reflect the late-cycle AIF argumentation
work (#498/#499, #763, #787) and the current test/mindmap reality. The existing
CHANGELOG.md and RELEASE-NOTES-v0.9.0.md were frozen mid-June and missed the
July AIF reconciliation wave.

CHANGELOG.md (root):
  - New section "Added — AIF Argumentation Layer (#498 Fallacies, #499 Virtues)"
    documenting: 145/1408 fallacies attack-typed (87 undercut/RA, 53 undermine/I,
    5 rebut/CA), P1 skos-only reconciliation (93->145, 7 tranches, 0 fabricated),
    crossLink #763 (8 verbs, 1081 cells, 844 rows 59.9%), Virtues mirror (222/223),
    anchor audit #770 (16 CLEAN/2 SOFT), Layer C deferred.
  - OWL section updated: 3 relational layers now serialized in argumentum.owl
    (#787 regen, AIF 93->145), freshly aligned to prod.
  - Test count corrected 578 -> 595 (600 total, zero-warning build, 2026-07-11).

RELEASE-NOTES-v0.9.0.md:
  - New "AIF Argumentation Layer (#498/#499)" highlight section.
  - Assets table: mindmaps 4-lang/21 -> 8-lang/41 (PR #565 closed); OWL
    FR-only -> bilingual EN/FR ~5.9 MB.
  - Tests 159 -> 595.
  - Known Limitations: mindmap 8-lang CLOSED (regen-on-demand); add AIF Layer C
    note (~1263 leaves deferred).
  - Contributors: add po-2024 (AIF/OWL/release docs).
  - Release date clarifies tag pending jsboige visual GO (week of 2026-07-13).

docs/ontology/README.md (net-new, #133):
  - Publication README for the OWL artefacts: 2 ontologies (Fallacies 5.9 MB /
    Virtues 863 KB), namespace IRIs, LGPL-3.0 license.
  - Documents the 3 relational layers with exact counts (skos 70, crossLink 1985,
    AIF attack 145 Fallacies / 222 Virtues), the deterministic ASPIC+ node map,
    and rebut rarity.
  - Regeneration procedure (--generate-owl), known limitations (bilingual FR+EN,
    Layer C deferred, OWLSharp round-trip #133), publication procedure (staged,
    requires infra/jsboige), provenance.

Doc-only (0 write prod CSV, Cards/ untouched). Lane: release-adjacent docs
(distinct from po-2023 visual-validation dossier). Verdict QA = ai-01.

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 12, 2026
… full-IIS) (#792)

The 3 #131/#132 runbooks were written Jun 15-25 as PRE-execution prep,
before the migration was delivered. They now describe steps that have
already happened (or carry an undocumented lesson that would bite a
future executor). This refresh adds POST-EXECUTION REALITY banners +
one targeted correctness addition — without rewriting the historical
procedure (a valid record of the prep/reasoning).

Changes (docs-only, 3 files, +85/-1):
- 131-step1-sandbox-upgrade-runbook.md: POST-EXEC banner — marks the
  sandbox upgrade DELIVERED (10.3.2+2sxc21 live full-IIS, ACME bypass
  active), points to phase2-exec-rollback + MEMORY + UPGRADE-ASSESSMENT
  as current truth, flags 2 staleness items resolved (§2 "2sxc 15.02"
  was stale — already 21.07; §5 "templates untouched" moot — cliff crossed).
- 131-regen-staging-runbook.md: REFRESH banner — scope DEFERRED 4-vs-8
  lang RESOLVED (8-lang shipped #565, 41 SVGs), foreground-lock mitigated
  (#569 tscon recipe), Playwright deadlock resolved (#651), build-server
  deadlock lesson; points to regen-readiness-refresh-c1ed77d2 (#782) as
  the live harness.
- 132-deployment-runbook.md: POST-EXEC banner (sandbox+full-IIS delivered,
  prod VPS go-live remains the gated frontier) + the critical B1-inversion
  lesson added to §5.5(a): 2sxc-21 REQUIRES .NET 8/9 BCL stack
  (Json 9.0.0.0/SCI 9.0.0.0/Bcl 8.0.0.0), NOT the 6.0.0.0 reversion the
  early repair-bin-net48.ps1 encoded. This was a real gap — the runbook
  predates the B1 incident and would have led a future executor to break
  2sxc 21 with JsonOptions MissingMethodException.

po-2023 lane (docs/dnn-localization/). Non-gated. No Cards/, no .cs, no DB.
Gated ai-01 review before merge.

Co-authored-by: Claude-Code <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 16, 2026
…nguages (both families) (#819)

Regenerate the self-contained (inline-SVG) mindmap HTML from the CURRENT
localized .content.svg, for all 8 languages, both families — the format
that renders in-browser for Thomas & Adeline's visual review and that the
prod site serves.

Faithful to the pipeline (MindMapHtmlWrapper.FormatWrapper): strip the
inline SVG <?xml?> declaration, inject into included.html [SVGCONTENT].

Fixes two defects in the committed integrated HTML:
- Virtues: the 4 existing HTML (fr/en/ru/pt) were byte-identical FR clones
  (same SHA256, 0 Cyrillic in the "ru" file) and es/ar/fa/zh were MISSING.
  Now 8/8 present, each localized + interactive (223 clickable nodes with
  localized description/example/link — verified in-browser, ru node0 =
  "Обоснованный аргумент").
- Fallacies: refreshed from the current Jun-2026 localized content.svg
  (the committed HTML embedded a stale May-2026 snapshot).

Known gap (separate, pre-existing): the FreeMind-Batik Fallacies
content.svg carries 0 interactive `.node` overlays (vs 1408 on the
2024 prod page and vs 223 on Virtues) — the node-injection matched
nothing for Fallacies during the #565 regen. Localized static tree is
correct and reviewable; restoring click-to-define interactivity is a
follow-up pipeline fix (node-injection matcher + FreeMind regen).

Co-authored-by: Claude Opus 4.8 (1M context) <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