Skip to content

docs(taxonomy): #498 AIF reconciliation P1 tranche-1 — 14 skos-only rows typed (gated proposal + dry-run apply) - #769

Merged
jsboige merged 1 commit into
masterfrom
docs/498-reconciliation-p1-prep
Jul 10, 2026
Merged

docs(taxonomy): #498 AIF reconciliation P1 tranche-1 — 14 skos-only rows typed (gated proposal + dry-run apply)#769
jsboige merged 1 commit into
masterfrom
docs/498-reconciliation-p1-prep

Conversation

@jsboige

@jsboige jsboige commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

#498 AIF two-layer reconciliation, P1 (skos-only → attack columns) — tranche 1. GO ai-01 msg-20260710T180845-5i1v03, couvert par le pilote GO #498. Proposition gated : docs + apply-script dry-run, 0 write prod CSV dans le diff.

Suite du finding de #768 (deux couches AIF jamais réconciliées : 93 attack70 skos = 18 ; 52 skos-only). P1 back-fill la couche attack pour les 52.

Correction load-bearing du cadrage #768

Il n'existe pas de sous-ensemble « inherit mécanique 0-risque » parmi les 52. La classif initiale « 19 inherit du sous-sous anchor » est un artefact : vérification code=truth → 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. Ceci 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 :

tier n traitement
PRECEDENT (token exact d'un fully-modeled + contrôle sémantique) 14 tranche 1 (ce PR)
PREC-TIE (votes de tokens divergents) 2 à trancher — 777 Inconsistance, 633 Relation infondée
SUFFIX-ONLY (aucun précédent ; prior undermine non fiable) 36 modélisation Walton au cas par cas, sous-lots

Contre-exemple prouvant que le prior de suffixe est non fiable : pk705/677 « Pente glissante » portent des CQ (WeakestLink/RequiredSteps) qui contestent la chaîne causale → penchent undercut, pas le ~undermine du prior.

Tranche 1 — 14 lignes, distribution 11 undermine / 2 undercut / 1 rebut

Tous les précédents (953, 177, 357, 322, 300, 750, 804, 340, 1371, 1313) sont dans les 18 fully-modeled. 2 lignes MED (3, 1090) flaggées (vote depuis token de scheme secondaire, cohérent sémantiquement). Détail + justif par ligne dans le doc + colonne justification du CSV.

Livrables

  • docs/taxonomy/498-reconciliation-p1.md — proposition (correction, méthode, tranche 1, reste scopé, bornes du gate).
  • docs/taxonomy/498-reconciliation-p1-annotations.csv — 12 cols, 14 lignes, BOM+CRLF (factuel lu du CSV master e748735b, raisonnement authored).
  • tools/498-p1-apply.py — apply gated (--write dry-run par défaut), mirroir de 498-phase13-apply.py (chore(taxonomy): #498 phase 1-3 apply script (prep, gated --write, D2-paramétrable) #757). Re-vérifie 14/14 vs annotation CSV, splitters byte-exact, preuve byte-preservation.

Dry-run (ce PR) : annotation 14/14 OK · pre-state 14 vides + skos OK · 0 mismatch · 93→107 attack-typed · delta 207 bytes · CRLF+BOM préservés · 0 write prod.

Discipline

🤖 Worker po-2024 — réconciliation P1 tranche 1.

…ows typed (gated proposal + dry-run apply)

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: Claude-Code <noreply@anthropic.com>
@jsboige
jsboige merged commit daa7176 into master Jul 10, 2026
3 checks passed
@jsboige
jsboige deleted the docs/498-reconciliation-p1-prep branch July 10, 2026 23:00
jsboige added a commit that referenced this pull request Jul 11, 2026
…(foundation of the derivations) (#770)

Adds §2bis to the P1 reconciliation proposition (#769): a read-only audit of
the 18 fully-modeled anchors on which every P1 attackType derivation rests. If
an anchor is mis-typed, the error propagates into every derived tranche and,
eventually, prod — so the anchor set is validated before more rows are derived.

Audit (hand-Walton "what does the CQ defeat" + code=truth cross-check):
  - layer census re-confirmed vs #768: fully-modeled 18 / attack-only 75 / skos-only 52.
  - node-map #707§4a (undercut->RA / undermine->I / rebut->CA): 18/18 clean, 0 violation.
  - skos<->attackType coherence: 16 CLEAN, 2 SOFT (defendable), 0 outright error.
    Foundation VALIDATED — the 14 tranche-1 derivations all rest on CLEAN anchors;
    the only SOFT dependency is pk1281<-pk1313 (same family, same rebut nucleus).

Two SOFT anchors flagged (choices, not errors): pk1313 Evasion (rebut as global
dialogue-level conflict) and pk1361 Proces en incoherence (rebut vs undercut/
undermine judgment call — it is the anchor 777->rebut leans on, so 777 must be
tranched by desc_fr + co-token, not mechanically).

Three findings that HARDEN the method (beyond validation):
  1. suffix _Conflict/_Inference does NOT determine attackType — in-set proof:
     pk804 PropertyNotExistant_Conflict -> undercut (vs _Conflict->undermine
     elsewhere). Empirically grounds the "suffix-prior unreliable" claim (§2/§5),
     previously argued only from 677/705.
  2. slippery-slope leans undercut — in-set anchor pk858 VerbalSlipperySlope_
     Inference -> undercut grounds the 677/705 counter-example (previously CQ-
     semantic only).
  3. CircumstantialAdHominem_Inference is non-decisive (in both 1361 rebut and
     1371 undermine) -> 777/633 tie-break must read co-token + desc_fr.

Deliverables (read-only vs prod taxonomy — 0 CSV write in the diff):
  - docs/taxonomy/498-reconciliation-p1.md — §2bis audit + TL;DR point 5.
  - docs/taxonomy/498-audit-18-anchors.csv — 10 cols, 18 rows, BOM+CRLF
    (factual cols read from master e748735; verdict+note authored).
  - tools/498-audit-anchors.py — reproducible read-only audit (re-derives the 18
    from prod, checks node-map, cross-verifies the audit CSV). RESULT: OK.

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
…PREC-TIE + 5 SUFFIX-ONLY, gated dry-run) (#773)

Back-fill proposition for 7 of the 52 skos-only rows in the two-layer AIF
reconciliation (#498 P1), continuing tranche-1 (#769/#771, 14 PRECEDENT rows
now in prod). Docs + gated dry-run apply script only — 0 prod CSV write.

Tranche-1b = the rows with NO exact-token precedent among the 18 fully-modeled
anchors (audited CLEAN #770):
- 2 PREC-TIE (777 Inconsistance, 633 Relation infondée): tokens vote for
  divergent attackTypes; arbitrated by co-token + desc_fr + family (tie-break
  rule hardened by the #770 audit — never a shared/divergent token alone).
- 5 SUFFIX-ONLY (337 Appel à la terreur, 432 Engagement, 356 Manipulation
  mentale, 1280 Obstruction, 1360 Ad hominem): modeled per-row from each
  fallacy's OWN Walton scheme + desc_fr. The suffix prior
  (_Conflict/_Inference→undermine) is PROSCRIBED (in-set disproof pk804
  _Conflict→undercut, #770).

Distribution: 4 undermine / 2 undercut / 1 rebut. NODE is the deterministic
ASPIC+ map (#707§4 Option a): undercut→RA-node, undermine→I-node, rebut→CA-node.
No AIF token fabricated (#677) — we TYPE rows already carrying a vetted skos.

Files:
- docs/taxonomy/498-reconciliation-p1b.md — proposition (arbitrage + per-row)
- docs/taxonomy/498-reconciliation-p1b-annotations.csv — machine-readable source
- tools/498-p1b-apply.py — byte-exact cell-fill, GATED (--write held for ai-01)

Dry-run (master f34ac77, post-#771): 107 → 114 attack-typed, 0 byte-preservation
mismatch, 1409×104, CRLF+BOM preserved, +102 B. Serialization gated on 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 19, 2026
…ations (read-only, 0 write) (#828)

Export the EXISTING AIF modelling (dispatch ai-01 msg-eltaoz) into consumable
artefacts for CoursIA ICT #7289 + Layer C #790. Read-only on CSV/OWL, post-tag-safe.

Honest verdict (no fabrication): the AIF attack graph is BIPARTITE — each of the
145 fully-modeled fallacies is an attacker targeting an abstract AIF node-TYPE
(RA/I/CA-node), NOT another fallacy. There is no inter-fallacy attack adjacency
in the data; AIF_attackedNode encodes node-type, not a target PK (145/145 axiom,
0 violations). A separate inter-fallacy graph exists in the OWL (isRelatedTo,
mirrors, etc., 1734 edges) but those are generic semantic relations, not typed
AIF attack-edges — exported and labelled separately.

Artefacts (docs/ontology/aif-export/):
- aif-attack-edges.csv       145 bipartite attack-edges (CSV, PK-keyed, primary)
- aif-canonical-concepts.csv 60 AIF canonical concepts (skos refs)
- taxonomy-tree-edges.csv    1408 hierarchical tree edges
- aif-owl-attack-edges.csv   142 attack-edges from OWL (cross-view, individual-keyed)
- aif-relations-graph.csv    1734 inter-fallacy relations (NON-AIF)
- README.md                  column-to-adjacency mapping + verdict

tools/aif-attack-graph-export.py: reproducible (Python stdlib, ~3s, 0 write to sources).

Refs: dispatch ai-01 msg-eltaoz, AIF tranches 1-1d (#498/#753/#769/#776/#779),
CoursIA ICT #7289, Layer C #790.

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

1 participant