Skip to content

feat(taxonomy): #498 Fallacies AIF — serialize scaleup phase 1-3 (47 leaves, MODE 2) - #760

Merged
jsboige merged 1 commit into
masterfrom
feat/498-phase13-aif-apply
Jul 9, 2026
Merged

feat(taxonomy): #498 Fallacies AIF — serialize scaleup phase 1-3 (47 leaves, MODE 2)#760
jsboige merged 1 commit into
masterfrom
feat/498-phase13-aif-apply

Conversation

@jsboige

@jsboige jsboige commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Summary

GO jsboige (interactif, relayé par ai-01 dispatch 6eo7cb, 2026-07-09 12:06) — D1 LEVÉE + D2 OVERRIDE = MODE 2. Serialize the 47 scaleup phase 1-3 generative leaves into the 2 AIF columns (AIF_attackType + AIF_attackedNode): 45 NEW + 834/847 override → undercut. 3rd prod write of the AIF Fallacies contract (#498), after #753 (§7 cluster docs) and #755 (Virtues mirror).

This is the execution PR of the prep PRs #756 (audit, merged) + #757 (apply script + verifier, merged b666ed6e). The gate is lifted; this PR does the byte-exact cell-fill.

DoD (ai-01 byte-check surface)

$ python tools/498-phase13-apply.py --write --with-overrides
apply_set: 47 PKs  ->  27 undermine / 17 undercut / 3 rebut
  (NEW=45, conflict-overridden=2 [834/847], CONFIRM no-op=3 [826/844/855])
PHASE_MAP re-verified 50/50 vs annotation CSVs: OK
pre-state check: all 47 apply_set PKs empty (fill, no overwrite): OK
byte-preservation mismatches: 0
CSV filled total: 46 -> 93
>>> WRITTEN (47 cells filled). Backup saved to tmp/Fallacies-backup-pre-phase13.csv

$ python tools/498-phase13-verify.py --with-overrides
PHASE_MAP PKs filled in CSV: 50  ->  {'undermine': 27, 'undercut': 20, 'rebut': 3}
empty PHASE_MAP PKs: none
byte-preservation mismatches: 0 (must be 0)
CRLF: backup=1409, prod=1409   BOM: backup=True, prod=True   delta: 696 bytes
  spot pk 1282/1313/1361: [rebut,CA-node] -> OK  (FIRST Fallacies rebut)
  spot pk 698/889/340: [undermine,I-node] -> OK
  spot pk 707/974/1345: [undercut,RA-node] -> OK
  spot pk 826/844/855: [undercut,RA-node] -> OK  (CONFIRM, unchanged from #753)
  D2 pk 834/847: ['undercut','RA-node'] -> OK  (MODE 2 override)
  non-phase pk 2: unchanged -> OK
>>> VERIFY PASSED

$ dotnet test ...Tests.csproj
échec: 1, réussite: 594, ignorée(s): 5, total: 600
  (1 fail = #133 OWL pre-existing round-trip bug, unrelated)

DoD distribution 93 = 61 undercut / 29 undermine / 3 rebut — pre 46 [44u/2m from #753] + 47 written [27m/17u/3r].

git diff = 47 insertions / 47 deletions — each row changes ONLY the 2 AIF cells; every other field byte-identical. This is the byte-exact guarantee (memory [[csv-byte-exact-column-insertion]]): the git diff 47/47 is expected, NOT a regression.

The 47 leaves (scaleup phase 1-3)

Phase Family Count Detail
Phase 1 Abus langage + Erreur raisonnement 13 incl. 834/847 (override → undercut), 826/844/855 (CONFIRM no-op)
Phase 2 Erreur math + Insuffisance 12 incl. 3 rebut firsts? — no, rebut are phase 3
Phase 3 Influence + Tricherie + Obstruction 22 incl. 3 rebut (1282 Relativisme abusif, 1313 Évasion, 1361 Procès en incohérence = FIRST Fallacies rebut)

3 rebut = structural tail case — all in Obstruction family, all → rebut/CA-node (counter-conclusion). First rebut in the Fallacies taxonomy (Virtues had 3 rebut via #755).

Technique = byte-exact cell-fill (load-bearing guarantee)

Post-#753 the 2 columns already exist (104 cols). Apply = cell-fill in place. The 50-leaf PHASE_MAP is verbatim from the phase doc tables (proposal docs docs/taxonomy/498-aif-scaleup-phase{1,2,3}.md) and re-verified 50/50 vs the 3 machine-readable annotation CSVs (docs/taxonomy/498-scaleup-phase{1,2,3}-annotations.csv) as a load-bearing assertion — independent of #756. NODE is the deterministic ASPIC+ map ratified #707§4 Option (a): undercut→RA-node, undermine→I-node, rebut→CA-node.

  • 0 byte-preservation mismatch — only AIF_attackType/AIF_attackedNode of the 47 apply_set PKs change; every other field byte-identical.
  • ✅ CRLF + BOM + embedded-LF preserved, 1409 rows × 104 cols, delta 696 B.
  • ✅ Pre-state safety check confirmed all 47 PKs empty (fill, never overwrite).
  • ✅ Independent verifier re-declares PHASE_MAP + FAIL_LOUD_753 (NOT imported from apply script — independence guarantee).

Metadata-only invariant (0 impact)

The 2 AIF columns are a relational metadata layer, additive and orthogonal to the render path (CardPen templates, harvesting, PDF assembly). 0 impact on rendered cards/PDFs → verdicts #140/#632 unchanged, bundle v3 stays the release reference. This is why jsboige's GO is orthogonal to the visual GO for the tag (sem. 13/07).

Discipline

🤖 Worker po-2024 — execution GO jsboige MODE 2 (dispatch ai-01 6eo7cb).

…leaves, MODE 2 override)

GO jsboige (interactif, relayé par ai-01 dispatch 6eo7cb 2026-07-09 12:06):
D1 LEVÉE + D2 OVERRIDE = MODE 2. Serialize the 47 scaleup phase 1-3
generative leaves into the 2 AIF columns (45 NEW + 834/847 override →
undercut). Cell-fill byte-exact into Cards/Fallacies/Argumentum Fallacies
- Taxonomy.csv (columns exist post-#753; this is cell-fill, not insert).

Apply: python tools/498-phase13-apply.py --write --with-overrides
  - apply_set: 47 PKs -> 27 undermine / 17 undercut / 3 rebut
    (NEW=45, conflict-overridden=2 [834/847], CONFIRM no-op=3 [826/844/855])
  - PHASE_MAP re-verified 50/50 vs annotation CSVs (load-bearing assert)
  - pre-state check: all 47 apply_set PKs empty (fill, no overwrite)
  - byte-preservation: 0 mismatch; 1409 rows x 104 cols; CRLF+BOM preserved
  - CSV filled total: 46 -> 93 (delta 696 bytes)

Independent verify (backup-vs-result, tools/498-phase13-verify.py):
  - 0 byte-preservation mismatch (every field except AIF_attackType/
    AIF_attackedNode of the apply_set byte-identical)
  - PHASE_MAP PKs filled: 50 -> 27 undermine / 20 undercut / 3 rebut
  - DoD distribution 93 = 61 undercut / 29 undermine / 3 rebut
    (pre 46 [44u/2m from #753] + 47 written [27m/17u/3r])
  - spot-checks OK: 3 rebut -> rebut/CA-node (1282/1313/1361, FIRST Fallacies
    rebut); undermine -> I-node; undercut -> RA-node; 3 CONFIRM (826/844/855)
    unchanged; 834/847 -> undercut/RA-node (MODE 2 override); non-phase
    PK 2 untouched.
  - CRLF 1409, BOM preserved, delta 696 B

dotnet test: 594 pass / 1 fail (#133 OWL pre-existing, unrelated) / 5 skip /
600 total. 0 regression (metadata-only additive layer, 0 render/CardPen/
harvest/PDF impact — verdicts #140/#632 unchanged, bundle v3 stays ref).

Same byte-exact discipline as #753/#755 ([[csv-byte-exact-column-insertion]]).
0 fabrication #677 (50-leaf map verbatim from phase docs, re-verified 50/50
vs the 3 machine-readable annotation CSVs).

Co-Authored-By: Claude-Code <noreply@anthropic.com>
@jsboige
jsboige merged commit 5551000 into master Jul 9, 2026
3 checks passed
@jsboige
jsboige deleted the feat/498-phase13-aif-apply branch July 9, 2026 11:03
jsboige added a commit that referenced this pull request Jul 10, 2026
…ks (59%) + AIF attack wiring (#141/#498) (#763)

The transverse cross-link layer was stuck at 1.5% (21 nodes) and the AIF
attack-typing was inert because the Fallacies OWL generator only emitted the
AIF_skos* Walton mapping — the crossLink_* and AIF_attack* CSV columns were
never read (unmapped in the Fallacy entity) nor emitted. Populating the CSV
alone left them dead. "Complete integration" = code path + curated data + regen.

Code (makes the columns emittable in OWL):
- Fallacy.cs: map the 8 crossLink_* columns + AIF_attackType/AIF_attackedNode
  (10 props + 10 .Optional() ClassMap lines, mirroring the AIFSkos* block).
- OwlGeneratorConfig.cs: 2nd emission pass (concepts dict fully populated) —
  declares 8 crossLink ObjectProperties, resolves ';'-split dotted targets via
  fallaciesByPath, emits AnnotateConceptWithResource (symmetric verbs
  opposes/inverts/mirrors/isRelatedTo emitted bidirectionally), and for each
  AIF-typed leaf emits aifAttackType (literal) + aifAttackedNode (RA/I/CA-node,
  per ASPIC+ #707§4: undercut→RA, undermine→I, rebut→CA).
- Program.cs: add --generate-owl entry point (single-stage OWL regen, no harvest
  /PDF), mirroring --pdf-cmyk — the reproducible way to refresh the committed OWL.
- OwlE2EGenerationValidationTests: regression guard asserting crossLink +
  aifAttack assertions survive the round-trip (#133 known-fail left untouched).

Data (additive, byte-exact — tools/141-crosslink-apply.py, gated):
- Layer A crosslinks: from the 0-fabrication scan candidates, transverse subset
  (target neither ancestor nor descendant of source) at confidence >= 0.6, no
  warns → 1210 relations; 1 dropped (source path absent from taxonomy), 1 seed
  collision skipped → 1059 empty cells filled (1208 relations, max 3/cell).
  Coverage 1.5% → 59.9% (844/1408 nodes). All 22 manual seeds preserved
  untouched; independent byte-check confirms only crossLink columns changed,
  0 non-crossLink cells across all 104 columns, CRLF+BOM preserved.
- AIF attack: the 93 typed leaves already present (merged #760) become emittable
  via the wiring above — no new CSV write. Distribution 61 undercut / 29
  undermine / 3 rebut.

Regen: docs/ontology/argumentum.owl regenerated via --generate-owl — a pure-
addition diff (+10851/-0), faithful superset (prefLabel 2816, hierarchy, skos
matches identical). Now carries isRelatedTo 643, mirrors 721, leverages 403, …,
aifAttackType 93, aifAttackedNode 93, +3 AIF node classes. Ontology metadata
only — not rendered on cards, orthogonal to the v0.9.0 visual GO.

Tests: 595 pass / 1 fail (pre-existing #133 OWLSharp round-trip known-fail,
proven identical on old OWL) / 5 skip. Zero-warning solution build.

Deferred (gated follow-ups, not part of this chantier's two ratified decisions):
- Layer B — AIF_skos bulk Walton expansion (default mappingType is a semantic
  call not yet ratified; existing 42/50 refs still emit).
- Layer C — generative attackType fill for the ~866 untyped leaves.
- crossLink emission on the Virtue side (already loaded, deferred there).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Jul 10, 2026
…t rebut cluster, gated proposal) (#766)

First dedicated cluster doc for a rebut family (Obstruction / Relativisme
abusif). Opens 4 unmapped leaves (1283-1286) under anchor 1282 (serialized
rebut/CA-node by #760). Proposition only — GATED, 0 prod CSV write.

Deliverables (docs/taxonomy/):
  - 498-aif-relativisme-abusif-cluster.md (prose §1-7 + gate boundaries)
  - 498-relativisme-abusif-annotations.csv (12-col machine-readable, 5 rows)

Model (first rebut cluster = attack-columns-only pattern):
  - All 4 leaves: AIF_attackType=rebut + AIF_attackedNode=CA-node
    (deterministic map #707§4 option a: rebut -> CA-node).
  - AIF_skosExceptionRef=Commitment_Inference (native) for 1283 only
    (self-exemption honestly rebuts the arguer's own commitment); the
    other 3 have no clean native rebutted scheme -> ExceptionRef empty,
    fail-loud in AIF_skosOther.
  - AIF_skosDirectRef empty for all 4 (bare relativist rebut = structural
    conflict, no native Walton CQ-conflict token).

#677 discipline (0 fabrication, code=truth verified):
  - CounterConclusionConflict_Conflict / IssueAvoidance_Conflict /
    TuQuoque_Conflict verified NOT native (absent from all filled skos
    cols) -> correctly excluded (as #760 did for the 3 merged rebuts).
  - Commitment_Inference verified native.
  - Annotation CSV uses honest structural descriptor in AIF_CA_node
    (no fabricated token) — improvement over phase-3 placeholder practice.

Honest per-leaf boundary flags: 1284 undermine-flavor, 1285
undercut-flavor, 1286 false-equivalence — documented in prose +
why_not_others, not silently forced.

Coverage: 93/1408 mapped (code=truth rescan) -> 97 projected once
applied; rebut population 3 -> 7 (Relativisme abusif becomes the rebut
nucleus, 5 of 7). Gated review ai-01; jsboige ratifies -> gated apply.

Relates #498 #760 #757 #753 #755 #763 #707 #677.

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 10, 2026
…conciliation trajectory (#768)

Refresh the stale coverage-status.md (2026-07-05, master 70bd160) with a
code=truth scan at master 7796c12. Docs-only proposition (gated) — 0 prod
CSV write.

Central finding — the AIF mapping has TWO layers, never reconciled:
  - attack layer (AIF_attackType+attackedNode): 93 rows (6.6%) — #753+#760
  - skos layer (AIF_skosDirectRef/ExceptionRef/MappingType): 70 rows (5.0%)
    — pre-chantier baseline
  - overlap = only 18 rows. Fully-modeled (both layers) = 18/1408 (1.3%).
  - union (any AIF signal) = 145/1408 (10.3%).

The previous "70/1408 (5.0%)" was NOT wrong — it measured the skos layer,
which predates the attack columns. "93" measures the attack layer. Two
distinct counters, resolved here.

Cross-tab (code=truth, 1408 rows):
  - 52 rows skos-only (vetted native tokens, NO attack columns) — highest-ROI
    back-fill, 0 fabrication risk (tokens already exist). Family spread:
    Cheating 13, Insufficiency 10, ML 9, Faulty logics 8, Math 6, Influence 3,
    Obstruction 3.
  - 75 rows attack-only (typed, NO skos): 44 ML (skos already proposed+ratified
    in merged cluster docs PR-5..12, awaiting deep serialization) + 31 scaleup
    (need skos modeling, fail-loud #677).

Trajectory reprioritized (§5): reconcile the two layers (P1: 52 skos->attack;
P2: 44 ML attack->skos) BEFORE opening new clusters ex-nihilo — the half-done
rows carry vetted tokens and lift 2-layer completeness 1.3% -> ~7-8% for bounded
effort. New clusters (P3) on the small clean residuals (Complication exageree 6u,
Operation inappropriee 5u) + Obstruction rebut nuclei (Evasion, Proces en
inconsistance).

Distribution 61 undercut / 29 undermine / 3 rebut (RA/I/CA map exact). 3 rebut
(1282/1313/1361) = first Fallacies rebut, all Obstruction.

VERIFIED: all figures from CSV scan + git log. RAPPORTE: PR effects (git log).
PENDING: #766 (Relativisme abusif rebut cluster, not merged — Relativisme abusif
still shows 4 unmapped in code=truth).

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 10, 2026
…ows typed (gated proposal + dry-run apply) (#769)

Réconciliation P1 (skos-only -> attack columns), GO ai-01
`msg-20260710T180845-5i1v03`, couvert par le pilote GO #498. Proposition
gated : docs + apply-script dry-run, 0 write prod CSV dans ce diff.

Correction load-bearing du cadrage #768 : il n'existe PAS de sous-ensemble
"inherit mécanique" parmi les 52 skos-only. La classif initiale "19 inherit
du sous-sous anchor" est un artefact — 0/19 ont une signature skos alignée
sur leur anchor (les anchors du même sous-sous sont skos-VIDES : couche
attack-only #753/#760, arguments différents). Hériter leur attackType serait
une fabrication. L'attackType est un jugement neuf : 0-risque token (les
tokens skos existent), pas 0-risque modélisation. Raffine le "0 fabrication
risk" de #768.

Méthode : attackType dérivé de la propre signature skos de chaque ligne,
ancré sur les 18 lignes fully-modeled (ground truth token->attackType).
attackedNode déterministe #707§4 (a) : undercut->RA-node, undermine->I-node,
rebut->CA-node.

Tiering des 52 :
  - 14 PRECEDENT (token exact d'un précédent fully-modeled + contrôle
    sémantique) -> tranche 1, distribution 11 undermine / 2 undercut / 1 rebut.
  - 2 PREC-TIE (777 Inconsistance, 633 Relation infondée — votes divergents).
  - 36 SUFFIX-ONLY (aucun précédent ; le prior de suffixe vers undermine est
    non fiable — contre-ex. pente glissante 705/677 penchent undercut) ->
    modélisation Walton au cas par cas, sous-lots aux prochains ticks.

Livrables :
  - docs/taxonomy/498-reconciliation-p1.md — proposition (correction, méthode,
    tranche 1 avec justif par ligne, reste scopé, bornes du gate).
  - docs/taxonomy/498-reconciliation-p1-annotations.csv — 12 cols, 14 lignes,
    BOM+CRLF (factuel lu du CSV master, raisonnement authored).
  - tools/498-p1-apply.py — apply gated (--write dry-run par défaut), mirroir
    de 498-phase13-apply.py (#757). Re-vérifie 14/14 vs annotation CSV,
    splitters byte-exact, preuve byte-preservation. Dry-run : 0 mismatch,
    93 -> 107 attack-typed, delta 207 bytes, CRLF+BOM préservés, 0 write prod.

Sérialisation prod = étape suivante gated (relais ai-01), pas dans ce PR.

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 11, 2026
…k-typed (GO ai-01, 93->107) (#771)

Sérialisation prod de la tranche-1 P1 (14 lignes PRECEDENT), après merge de la
proposition #769 (master daa7176) et GO write d'ai-01 (msg-20260710T230135-kpea48,
couvert par le pilote GO #498 jsboige 2026-06-17). Flow #760 MODE 2.

Back-fill des 2 colonnes attack (AIF_attackType / AIF_attackedNode) pour 14 lignes
skos-only dont l'attackType est dérivé de leur PROPRE signature skos, ancré sur les
18 fully-modeled (ground truth), node déterministe #707§4(a). Aucun token AIF créé
(#677) : on TYPE des lignes déjà skos-vettées. attackType = jugement neuf (0-risque
token, pas 0-risque modélisation, cf. correction #769).

Distribution : 11 undermine / 2 undercut / 1 rebut.
  undercut (RA-node) : 4 Appel à l'ignorance, 621 Transfert illicite
  rebut    (CA-node) : 1281 Refus du débat
  undermine (I-node) : 1198 1083 1090 1092 1104 1 3 70 133 799 846

2 lignes MED flaggées (traçables, non cachées) : pk3 (Argument vide) et pk1090
(Biais émotionnels) — vote issu d'un token de scheme secondaire, undermine cohérent
sémantiquement mais à re-confirmer. Les 12 autres = HIGH.

Write byte-exact, vérifié indépendamment (backup tmp/ vs prod) :
  - 14 lignes changées == les 14 PK de l'annotation ; 0 changement hors les 2
    colonnes cibles ; pré-état 14 cellules vides (fill, pas overwrite).
  - 1409 lignes x 104 colonnes inchangées ; BOM + CRLF + 144 LF intra-cellule
    préservés ; delta +207 bytes (exact).
  - couche attack : 93 -> 107 ; fully-modeled (skos & attack) : 18 -> 32.

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 11, 2026
…NLY, famille Erreur de raisonnement) attack 114->121 (#779)

Prod serialization of tranche-1c (proposition #775, merged 3d6dcf3). Fills the
2 AIF attack columns (AIF_attackType / AIF_attackedNode) for the 7 skos-only
rows of the whole "Erreur de raisonnement" family — all typed undercut/RA-node.

Rows: 696 Erreur de raisonnement, 697 Causalite douteuse, 705 Pente glissante,
719, 726, 758, 759 (all SUFFIX-ONLY; family signature verified in-set via
707/727/858, NOT a suffix default — suffix prior proscribed, in-set disproof
pk804 _Conflict->undercut, #770).

attack-typed 114 -> 121, fully-modeled 39 -> 46. Executed via
`python tools/498-p1c-apply.py --write` (flow #753/#760, ai-01 GO
msg-20260711T110157-8c8wnh, GO scoped tranche-1c only).

Byte-exact verified 2x:
- script self-proof (load-bearing re-verify P1C_MAP vs annotation CSV 7/7,
  pre-state targets empty + carry skos, only ATI/ANI of the 7 PK may differ):
  0 mismatch, +105 B, 1409x104, CRLF+BOM preserved.
- independent backup-vs-prod cell-by-cell (tmp/Fallacies-backup-pre-p1c.csv):
  exactly 14 cells changed (7 rows x 2 cols), changed PKs == {696,697,705,719,
  726,758,759}, 0 stray (nothing outside AIF attack cols / target PKs), all
  empty->value, node/type 7/7 consistent, delta +105 B, PASS.

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
…133 OWL pub cert (#790)

Two decision/validation artefacts from dispatch 1f91k0 (interim, release-adjacent).
Both doc-only: 0 write prod CSV, Cards/ untouched, 0 mapping generated.

1. docs/taxonomy/498-layerC-pilot-design.md — Layer C generative pilot DESIGN (gated
   scope artefact for jsboige GO/NO-GO). Producing the design is NOT executing the pass.
   Empirical perimeter (code=truth): 1259 fallacy leaves with neither skos nor
   attackType (89.6% of leaves) — Influence 411, Tricherie 379, Insuffisance 163,
   Obstruction 118, Erreur math 94, Erreur raisonnement 91, Abus langage 77 (+1).
   Methodology: two-stage derivation (Stage A — exception-structure generation per the
   2026-06 pilot, walton_scheme + violated CQ + mechanism + justification via gpt-5.5 +
   review; Stage B — deterministic attackType from the violated CQ via the ASPIC+ Option
   (a) map). Anti-fabrication: fail-loud if no native Walton CQ in the closed 56-IRI
   catalog (no invented scheme). Cites precedent (75 Phase 1-3 #760 typed-no-skos leaves).
   Verification protocol mirrors P1 (gated prop -> ai-01 review -> GO write -> byte-exact
   2x). Decision matrix for jsboige (GO/NO-GO/pilot-only, timing, tranche size, catalog
   policy, first family). Recommendation: AFTER v0.9.0 tag (v1.0 target).

2. docs/ontology/133-owl-publication-certificate.md — publication-safety cert for the
   committed argumentum.owl. Verdict PUBLICATION-SAFE: the 3 relational layers (skos
   Walton 70, crossLink 1985, AIF attack 145/146) survive the OWL2XML round-trip and are
   resolvable (test 5 LoadedOntology_ContainsCrossLinkAndAifAttackAssertions PASS,
   test 4 ProdValidator...GenuinelyPasses PASS). Characterizes the known-fail #133 as an
   OBSOLETE PARTIAL FALSE-NEGATIVE: it asserts inScheme==0, but inScheme now survives at
   1408 (the documented bug is half-resolved); only rdf:type is still dropped at reload,
   worked around by the survivor-fallback reader. The artefact is consumed statically
   (raw file has rdf:type 1409 + inScheme 1408 + 3 layers) so the OWLSharp reload drop
   is .NET-validator-internal, not consumer-facing. Follow-up (out of scope): refresh
   the obsolete known-fail test assertion (inScheme > 0 instead of == 0) -> would clear
   the last red (595/1 -> 596/0).

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 21, 2026
…07 edges, post-tag) (#834)

Re-run du générateur 497-grappe-substrate.py (ai-01 lane, unchanged) contre
le CSV Fallacies courant (master b442c65), pour actualiser le substrat de
curation grappe-à-grappe. Le doc initial mesurait 22 crossLinks (état
pré-modelling) — stale de ~6 semaines. Ce refresh quantifie la densité
réelle post-tranches AIF/crosslinks (#753/#760/#763 + P1).

Delta coverage:
- Bubble-up grappe-edges: 16 -> 107
- Σ crossLink feuilles: ~22 -> ~1179 (cohérent README ontology 844 fallacies
  59.9%, 1985 raw / 1734 distinct OWL)
- Per-grappe cl explosé: 2.3 Manipulation mentale 7->195, 6.3 Raisonnement
  biaisé 0->204, 6.1 0->84, 2.1 0->81...

Finding central: la densification est concentrée INTRA-grappe (top edges
sont 2.3->2.3 137x, 6.3->6.3 134x...). Les ponts inter-familles restent
clairsemés malgré la croissance brute -- c'est là que la curation #497 a le
plus de ROI, pas dans les intra (2.3/6.3 déjà saturées).

Recommendation: ne pas densifier intra (ROI faible), cibler les ponts
inter-familles (ancre 2.3<->6.3 PredatesOn + 2 pistes lexicales défendables:
causales Interprétation-quant<->Causalité-douteuse, attaque-affect
Appel-émotion<->Ad-hominem).

Read-only, 0 fabrication (re-agrégat de crossLink_* existants). Post-tag-safe
(contenu sous review T&A, 0 écriture prod CSV). Artefacts régénérables
(497-grappe-inventory.csv + 497-responding-grappes.csv, script idempotent).
Verdict QA = ai-01.

Deliverable primaire du dispatch ai-01 msg-ucdwi7 (#497/#498/bridge deep-queue,
strate-6 CoursIA #7289).

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 21, 2026
…xed undercut/undermine (6 leaves, proposition) (#837)

Cluster doc Layer C pour la sub-sub « Complication exagérée » (Obstruction >
Saboter le débat), ancre 1345 « Couper les cheveux en quatre » déjà sérialisée
undercut/RA-node (attack-columns-only). 6 leaves unmapped (1346-1351).

Premier cluster MIXTE undercut/undermine du chantier (vs Relativisme abusif
#760 = uniform rebut). L'umbrella « obstruction procédurale » se scinde en
2 sous-mécanismes honnêtes :
- Process-burden (1346/1349/1350/1351) → undercut/RA-node (matche l'ancre)
- Source-discrediting (1347/1348) → undermine/I-node (divergence honnête —
  cible = prémisse PTK de la source, pas la règle ; dérivation par-feuille,
  PAS héritage d'ancre per [[aif-no-inherit-attacktype-from-anchor]])

Modélisation :
- 3/6 portent un schème natif code=truth-attesté : 1347/1348 (PTK family :
  LackOfPTKReliability_Scheme / LackOfCompleteKnowledge_Conflict /
  PositionToKnow_Inference) + 1350 (PracticalReasoning_Inference, nirvana
  fallacy CQ suffisance)
- 3/6 attack-columns-only (1346/1349/1351) — fail-loud, aucun token CQ-conflict
  natif pour « fardeau procédural générique » (cohérent avec l'ancre 1345)
- Axiome attackType→node-type : 0 violation (4 undercut/RA + 2 undermine/I)

Coverage projeté 145 → 151/1408 (live rescan master b442c65 = 145/1408
10.3%, dist {undermine:53, undercut:87, rebut:5}, 0 violation).

0 fabrication (#677) — tous les tokens skos sont natifs (vérifiés sur master).
PROPOSITION ONLY, 0 écriture prod CSV (post-T&A). Artefacts :
- docs/taxonomy/498-aif-complication-exageree-cluster.md (cluster doc)
- docs/taxonomy/498-complication-exageree-annotations.csv (7 rows, machine-readable)

Secondaire du dispatch ai-01 msg-ucdwi7 (#497/#498/bridge deep-queue, strate-6
CoursIA #7289). Verdict QA = ai-01. Companion à #834 (#497 substrate refresh),
#833 (spectral bridge, merged).

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 22, 2026
…dominant (6 leaves, proposition) (#843)

Cluster doc Layer C pour la sub-sub « Inconsistance » (Erreur de raisonnement >
Mauvaise déduction), ancre 777 sérialisée AVEC skos (OpposedCommitment_Conflict +
InconsistentCommitment_Inference) — 6 leaves unmapped (778-783).

PREMIER cluster UNDERMINE-DOMINANT du chantier. Les 4 clusters précédents
attaquaient la règle d'inférence (RA-node) : #837/#839 mixed-type, #840 cigogne
+ #841 accident undercut-dominant. Ce cluster attaque une PRÉMISSE (I-node) —
son mécanisme est la contradiction inter-prémisses : le raisonnement repose sur
des affirmations qui se contredisent, donc la prémisse attaquée est invalidée
par une autre affirmation de l'ensemble. Uniform undermine/I-node (6/6) =
forme AIF canonique de l'argument auto-contradictoire.

NOUVEAU PATTERN : native-rich + uniform (mono-mécanisme, mono-scheme). À la
différence de #841 (native-rich scheme-DIVERSE, 4 schèmes), ce cluster est
native-rich ET uniforme — un seul mécanisme (contradiction inter-prémisses),
un seul schème (InconsistentCommitment_Inference), les 6 leaves héritent. Le
cluster mono-mécanisme le plus propre du chantier. La variété est dans la
FORME de la contradiction (paire / auto-référence / cumulative / n-aire /
prémisse↔conclusion), pas dans l'attack-type ni le schème.

Leaves :
- 778 Prémisses incompatibles (bases exclusives) — paire
- 779 Concept volé (auto-contradiction performative) — auto-référence
- 780 Contradiction interne (Logical_Conflict natif) — paire interne
- 781 Logique du chaudron (chaudron de Hegel) — cumulative (paradigme)
- 782 Triade inconsistante (triade d'Alice) — n-aire
- 783 Contradiction prémisse/conclusion (BOUNDARY) — via conclusion

6/6 native-fit (héritage légitime du schème — les leaves partagent le mécanisme
de l'ancre, distinct de l'avertissement [[aif-no-inherit-attacktype-from-anchor]]
qui porte sur l'héritage d'attack-type). Axiome attackType→node-type : 0
violation (6 undermine/I). Coverage 157→163/1408 projeté (live rescan master
c721066 = 157/1408 post #838/#839/#840 merged, #841 not yet merged).

Boundary 783 documenté : la contradiction est prémisse↔CONCLUSION (pas
prémisse↔prémisse), mais la cible attaquée reste la prémisse (I-node) →
undermine. Flagged pour ratification.

Le chantier couvre désormais les 3 pôles d'attack-type (mixed / undercut-dom /
undermine-dom) + rebut (#760) — spectre complet AIF.

0 fabrication (#677) — tokens inconsistency-family vérifiés natifs
(InconsistentCommitment_Inference, OpposedCommitment_Conflict, Logical_Conflict
tous attestés), schème natif hérité légitimement.

PROPOSITION ONLY, 0 écriture prod CSV (post-T&A). Artefacts :
- docs/taxonomy/498-aif-inconsistance-cluster.md
- docs/taxonomy/498-aif-inconsistance-annotations.csv (7 rows)

Idle lane du dispatch ai-01 msg-9akcg4 (backlog Layer C autonome, 5e cluster).
Verdict QA = ai-01. Companion à #837/#839 (mixed) + #840 (cigogne) + #841
(accident) + #760 (rebut).

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 22, 2026
…ermine-dominant, most uniform (7 leaves, proposition) (#844)

Cluster doc Layer C pour la sub-sub « Attaque personnelle » (Obstruction >
Ad hominem), ancre 1398 sérialisée AVEC skos (DirectAdHominem_Inference,
skos:broadMatch) — 7 leaves unmapped (1399-1405).

DEUXIÈME cluster UNDERMINE-DOMINANT du chantier (après #843 Inconsistance),
et le PLUS UNIFORME : les 7 leaves partagent le même attack-type
(undermine/I-node), le même schème (DirectAdHominem_Inference), et le même
mécanisme (discréditer la SOURCE plutôt que réfuter la POSITION). La sub-sub
est une famille pure de VECTEUR RHÉTORIQUE — le canal d'attaque varie
(ton / moquerie / réputation / injure / geste), pas le mécanisme AIF.

7/7 NATIVE-FIT (100 % — taux le plus élevé du chantier, ex aequo avec
#841 accident). Le token DirectAdHominem_Inference (natif, schème de l'ancre)
capture EXACTEMENT le mécanisme « attaquer la personne pas la position ».
Aucun fail-loud nécessaire. 0 fabrication (#677) — héritage de schème légitime
(les leaves partagent le mécanisme de l'ancre, distinct du warning
attack-type-inherit [[aif-no-inherit-attacktype-from-anchor]]).

Leaves (vecteur d'attaque) :
- 1399 Argument tonal — tonal (manière de présentation)
- 1400 Dérision — moquerie (ridiculisation)
- 1401 Raillerie — moquerie (taunt)
- 1402 Diffamation — réputation (poisoning the well, natif direct-ad-hominem)
- 1403 Injure — abus (paroles blessantes)
- 1404 Insulte — abus (offense verbale/gestuelle)
- 1405 Lancer de soulier — geste de mépris (BOUNDARY, seul leaf NON-VERBAL)

Axiome attackType→node-type : 0 violation (7 undermine/I). Coverage 145→152/1408
projeté (live rescan master eebfea7 = 145/1408 — les propositions #841/#843
sont docs-only, PAS encore en CSV prod ; le +7 est projeté post-ratification).

Boundary 1405 documenté : seul leaf NON-VERBAL (geste physique de mépris).
Modélisé undermine/I-node honnêtement (le geste discrédite la source par le
mépris), flagged pour ratification.

Les deux clusters undermine-dominants (#843 + celui-ci) couvrent les deux
pôles du mono-scheme undermine : variété de forme de contradiction (#843) vs
variété de vecteur d'attaque (celui-ci). Le chantier couvre désormais les deux
pôles undermine + les deux pôles undercut (#841 scheme-diverse + #840
native-rich) + rebut #760 → spectre AIF complet.

0 fabrication (#677) — token DirectAdHominem_Inference vérifié natif (ancre
1398), famille ad-hominem native-rich (CircumstantialAdHominem_Inference,
PositionToKnow_Inference, Bias_Inference tous attestés).

PROPOSITION ONLY, 0 écriture prod CSV (post-T&A). Artefacts :
- docs/taxonomy/498-aif-attaque-personnelle-cluster.md
- docs/taxonomy/498-aif-attaque-personnelle-annotations.csv (8 rows)

Idle lane du dispatch ai-01 msg-9akcg4 + ACK msg-6uufhx (candidat nommé par
ai-01 : « Attaque personnelle undermine-dominant PTK-adjacent — bon choix »).
Verdict QA = ai-01. Companion à #837/#839 (mixed) + #840 (cigogne) + #841
(accident) + #843 (inconsistance) + #760 (rebut).

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 22, 2026
…ebut-dominant + heterogeneous sub-sub (taxonomy finding, proposition) (#845)

Cluster doc Layer C pour la sub-sub « Procès en inconsistance » (Obstruction >
Ad hominem), ancre 1361 sérialisée rebut/CA-node attack-columns-only
(skos-empty) — 3 leaves consistency-attack (1362 tu quoque, 1363 whataboutisme,
1364 critique incohérence passée) + finding taxonomique : 6 leaves
out-of-mechanism (1365-1370 mal classées).

DEUXIÈME cluster REBUT-DOMINANT du chantier (après #760 Relativisme). Le
mécanisme = consistency-attack rebuttal : la POSITION adverse (CA-node) est
opposée par la contre-conclusion « votre position est caduque car vous êtes
incohérent ». Variante consistency-attack du pôle rebut (vs #760 relativism).
Le pôle rebut a maintenant 2 variantes documentées (relativism + consistency-
attack), mirroir des 2 variantes undermine (#843 + #844) → catalogue
attack-type symétrique.

NOUVEAU PATTERN : sub-sub HÉTÉROGÈNE. L'umbrella « procès en inconsistance »
ne couvre VRAIMENT que 1361-1364. Les 6 autres rows (1365-1370) sont des
fallacies mal groupées aux mécanismes AIF totalement différents :
- 1365 Homme de paille = straw man (misrepresentation) — hub #838 aussi
- 1366/1367 Extension/Fausses conclusions = misrepresentation
- 1368 Invocation fallacieuse sophismes = false accusation
- 1369 Petitio principii = circularité (structural)
- 1370 Pathos = emotional appeal
Ces 6 leaves sont OUT-OF-MECHANISM, documentées pour RECLASSIFICATION (gated
jsboige), PAS sérialisées (forcer rebut/CA violerait l'axiome + fabriquerait un
consistency-attack inexistant). Coverage integrity > coverage count.

PREMIER cluster « qualify, don't just serialize » du chantier. Les clusters
précédents sérialisaient des sub-subs homogènes ; celui-ci qualifie la
taxonomie en flaguant les leaves mal classées. Gain net pour le corpus.

Modelling shape « native-conflict / fail-loud-scheme » : native-fit sur la
couche CONFLIT (InconsistentCommitment_Conflict natif x3), fail-loud sur la
couche SCHÈME (pas de schème d'inférence natif pour rebut-as-counter-conclusion
— les schèmes Walton modèlent le circumstantial ad hominem comme INFÉRENCE
= undermine-flavored). Hybride entre #839 (fully fail-loud) et #840/#841
(fully native-fit).

Tension rebut-vs-undermine flaggée honnêtement : tu quoque/whataboutisme sont
classiquement undermine/I (circumstantial ad hominem). La taxonomie a modélisé
l'ancre 1361 rebut/CA. Ce cluster suit l'ancre (rebut/CA) sans la re-modéliser
(re-modélisation = gated séparé).

3 leaves attack-typed, 0 fabrication (#677) — token InconsistentCommitment_Conflict
vérifié natif. Axiome attackType→node-type : 0 violation (3 rebut/CA). Coverage
145→148/1408 projeté (live rescan eebfea7 = 145/1408, propositions docs-only).
Sub-sub = 9/9 leaves dispositionnées (3 serialized + 6 out-of-mechanism).

PROPOSITION ONLY, 0 écriture prod CSV (post-T&A). Artefacts :
- docs/taxonomy/498-aif-proces-inconsistance-cluster.md
- docs/taxonomy/498-aif-proces-inconsistance-annotations.csv (4 rows)

Idle lane du dispatch ai-01 msg-9akcg4 + ACK msg-6uufhx (candidat « Procès en
inconsistance »). Verdict QA = ai-01. Companion à #837/#839 (mixed) + #840
(cigogne) + #841 (accident) + #843 (inconsistance) + #844 (attaque
personnelle) + #760 (rebut Relativisme) + #838 (bridges — 1365 hub).

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 22, 2026
…ermine-dominant + second heterogeneous sub-sub (taxonomy finding, proposition) (#846)

Cluster doc Layer C pour la sub-sub « Empoisonner le puits » (Obstruction >
Saboter le débat), ancre 1352 sérialisée undermine/I-node FULLY-EMPTY (skos +
map + cq vides — plus vide que #845) — 3 leaves source-discrediting (1353
insinuation, 1355 projection, 1356 DARVO) + finding taxo : 4 leaves
out-of-mechanism (1354 audience-appeal, 1357 straw-man, 1358 absurdity, 1359
two-wrongs).

TROISIÈME cluster UNDERMINE-DOMINANT. Mécanisme = discrédit PRÉVENTIF de la
source (infos préjudiciables diffusées avant l'argument). Variante preemptive/
insinuating du pôle undermine (vs #843 self-contradiction directe, #844 attaque
personnelle directe). Le pôle undermine a maintenant 3 variantes documentées
(le pôle le plus développé).

TWIN de Diffamation 1402 (#844). 1402 = defamation RÉACTIVE (attaque réputation
en réponse à un argument) ; 1352 = defamation PRÉEMPTIVE (discrédit avant
l'argument). Les deux partagent DirectAdHominem_Inference. Ce cluster ferme la
paire source-discrediting de la famille Ad-hominem.

3/3 native-fit couche SCHÈME (contrairement à #845 fail-loud scheme) — token
DirectAdHominem_Inference natif (ancre 1398 #844) fit poisoning-the-well =
ad hominem direct préventif. Héritage légitime.

DEUXIÈME sub-sub HÉTÉROGÈNE (après #845). Même discipline « qualify, don't
serialize » : 4 leaves misgrouped flaggées pour reclassification (gated
jsboige), PAS sérialisées (coverage integrity > count).

PREMIER finding CROSS-CLUSTER CORROBORÉ : le straw-man misgrouping apparaît
dans #845 (1365 Homme de paille) ET ici (1357 Arguments factices). Deux
findings indépendants pointant vers le même grouping straw-man MANQUANT dans
la famille Obstruction → signal plus fort pour jsboige.

Ancre 1352 FULLY-EMPTY flaggée pour back-fill futur (leaves modélisées plus
riches que leur propre ancre — native scheme sur leaves, ancre vide).

3 leaves attack-typed, 0 fabrication (#677) — DirectAdHominem_Inference vérifié
natif. Axiome attackType→node-type : 0 violation (3 undermine/I). Coverage
148→151/1408 projeté (live rescan fc5c634 = 148/1408, propositions docs-only).
Sub-sub = 7/7 leaves dispositionnées (3 serialized + 4 out-of-mechanism).

PROPOSITION ONLY, 0 écriture prod CSV (post-T&A). Artefacts :
- docs/taxonomy/498-aif-empoisonner-le-puits-cluster.md
- docs/taxonomy/498-aif-empoisonner-le-puits-annotations.csv (4 rows)

Idle lane dispatch msg-9akcg4 + ACK msg-3a7ffm (« chaque cluster qui révèle un
finding taxo vaut plus qu'un cluster de plus »). Verdict QA = ai-01.
Companion à #837/#839 (mixed) + #840 (cigogne) + #841 (accident) + #843/#844
(undermine) + #845 (rebut+finding, straw-man corrobore) + #760 (rebut).

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