Skip to content

docs(taxonomy): #499 Virtues AIF back-fill plan v2 — refine overrides (804 clean mine + rebut {340}) + distribution exacte 206/13/3 - #750

Merged
jsboige merged 1 commit into
masterfrom
docs/499-virtues-backfill-plan-refine-rebut340
Jul 8, 2026
Merged

docs(taxonomy): #499 Virtues AIF back-fill plan v2 — refine overrides (804 clean mine + rebut {340}) + distribution exacte 206/13/3#750
jsboige merged 1 commit into
masterfrom
docs/499-virtues-backfill-plan-refine-rebut340

Conversation

@jsboige

@jsboige jsboige commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

Summary

v2 refinement of the mechanical back-fill plan (PR #744 merged). Generalizes the method validated on 8 clusters (PR #741-#749, all merged at 01721c39). This PR integrates the 2 concrete overrides revealed by PR-4 and PR-6, making the derivation rule executable as-is (3 concrete override sets, no more "empty"/"borderline" placeholders).

Per ai-01 direction (msg msg-20260707T231141-4qwxl9, [secondaire]): "Raffine #744 avec le 3e override rebut {340} concret (tail case Consequences révélé par PR-6) : rends la règle de dérivation exécutable telle quelle." Docs-only, no code/CSV/DB/OWL writes. Back-fill execution still GATED (po-2023 column contract #498 not yet on master).

🔑 KEY CHANGE 1 — 804 Acception arbitraire: borderline → clean undermine/I-node

PR-4 (#745 merged) resolved the borderline via the 800/804/826 definition-fallacy triad:

  • 800 Acception vague (vagueness) → undercut/RA
  • 804 Acception arbitraire (fabricated definition) → undermine/I-node (CLEAN)
  • 826 Définition incohérente (contradiction) → undercut/RA

The plan's §2a table now classifies 804 as clean undermine (no longer "borderline, conservative default undercut"). The UNDERMINE_FALLACIES set in the apply-script becomes {"889", "804"}.

🔑 KEY CHANGE 2 — rebut set: EMPTY → {340 Appel aux conséquences} (3 nodes)

PR-6 (#747 merged) revealed the first rebut/CA-node of the chantier: PK 340 Appel aux conséquences (= argumentum ad consequentiam). The fallacy substitutes consequence-evaluation for truth-evaluation, asserting a counter-conclusion (reject P) that conflicts with the target conclusion (P), mediated by a CA-node. → rebut/CA-node. Native AIF.

Full-scale scan (this PR) finds 3 nodes oppose 340 (not 2 as in PR-6's cluster scope):

  • pk 53 Sobriété dramatique (Consequences) — PR-6 cluster ✅
  • pk 54 Sans chantage aux conséquences (Consequences) — PR-6 cluster ✅
  • pk 165 Identifier les points de vigilance (Argument from Danger, the only Danger-scheme node) — inferred from the stable 340 mechanism (not yet decomposed in a cluster doc; family 6.2 pending). Documented honestly.

🔑 Load-bearing lesson (keyword-scan incompleteness): the v1 plan's §2b rebut set was EMPTY because the keyword-scan ("contre-argument / conclusion opposée") was too literal — 340 doesn't say "opposite conclusion", it operates it by founding the argument on consequences. rebut overrides must come from per-case AIF mechanism analysis, not a frozen keyword-set. The v2 plan encodes 340 as a concrete override; the set stays open to extension if a future fallacy reveals a counter-conclusion mechanism.

🔑 Distribution now EXACT (programmatic scan, 0 overlap)

attack-type nodes % source
undercut / RA-node 206 92.8% default
undermine / I-node 13 5.9% 9×889 + 4×804
rebut / CA-node 3 1.4% 3×340 (pks 53, 54, 165)

Computed by programmatic CSV scan. 0 overlap between sets {340} ∩ {889, 804} → the script's precedence undermine > rebut is unambiguous.

  • undermine_pks = {34, 36, 49, 55, 56, 73, 137, 139, 140, 153, 154, 155, 158}
  • rebut_pks = {53, 54, 165}
  • rest (206) = undercut/RA

v1 had "~209-213 undercut / 9-13 undermine / 0 rebut" (estimate depending on 804 verdict). v2 is exact: 206 / 13 / 3.

Apply-script (executable as-is)

UNDERMINE_FALLACIES = {"889", "804"}   # fabricated/false underlying premises (804 refined PR-4)
REBUT_FALLACIES     = {"340"}          # counter-conclusion via consequences (PR-6) — open to extension
# ...
if opposed & UNDERMINE_FALLACIES:
    attack_type, node = "undermine", "I-node"
elif opposed & REBUT_FALLACIES:
    attack_type, node = "rebut", "CA-node"
# else default undercut/RA-node

Expected post-execution: 206 undercut/RA + 13 undermine/I + 3 rebut/CA = 222.

Generalization proof extended (3 → 8 clusters)

The plan's §4 table now lists all 8 validated clusters (PR-1 to PR-8), each with its derived rule. Cumulative: 43 undercut + 4 undermine + 2 rebut on 8 families / ~26 leaves / 49 fallacy-instances. The full-scale scan extends this to 60 fallacies: 206 undercut + 13 undermine + 3 rebut. The rule is stable and executable.

Discipline

Test impact

None — docs-only.

Request

Review + (if acceptable) merge. This refinement (a) makes the derivation rule executable as-is (3 concrete override sets, exact distribution), (b) integrates the 2 material findings from PR-4 (804 clean mine) and PR-6 (rebut {340}), (c) computes the exact 206/13/3 distribution via programmatic scan. The plan is now gate-ready: once po-2023 lands the #498 column contract + ai-01 reviews it, this becomes 1 programmatic PR (the apply script).

cc @jsboige (Option A FYI).

🤖 Worker po-2024 — [secondaire] deliverable of dispatch ompwhx, per ai-01 direction msg-20260707T231141-4qwxl9.

… (804 clean mine + rebut {340}) + distribution exacte 206/13/3 + règle exécutable

Co-Authored-By: Claude-Code <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] — docs(taxonomy) #499 Virtues AIF back-fill plan v2 — refine overrides (804 clean mine + rebut {340}) + distribution 206/13/3 — head 4b76085939, base 01721c39, +121/-53, 1f docs-only (worker po-2024, dispatch ompwhx per ai-01 direction)

LGTM — plan docs-only CSV-corroboré firsthand, théorie AIF sound, discipline exemplaire, 0 write code/CSV/DB/OWL.

CSV corroboration byte-exact (Virtues Taxonomy 998341B au head, multi-line HTML cells) :

  • Body claim « 9×889 + 4×804 » undermine → grep token-aware : pk 889 mentionné sur 9 lignes ✓, pk 804 sur 4 lignes ✓ = 9+4 = 13 = undermine count (undermine_pks {34,36,49,55,56,73,137,139,140,153,154,155,158} = 13 éléments ✓).
  • Body claim « 3×340 rebut {53,54,165} » → pk 340 mentionné sur 3 lignes ✓ = rebut count, rebut_pks {53,54,165} = 3 ✓ (pks 53/54/165 tous présents CSV).
  • 0 overlap {340} ∩ {889,804} = ∅ ✓ → script precedence undermine > rebut non-ambiguë.
  • Distribution 206/13/3 = 222 mathématiquement cohérent (L115 « 222/223 nodes avec scheme+opposes, 1 racine sans scheme »), 206 = 222−13−3 ✓. Pourcentages 92.8/5.9/1.4 (Σ 100.1 = arrondi).

Théorie AIF sound (textbook Reed-Norman + Walton schemes) : 804 (Acception arbitraire = définition fabriquée) → undermine/I-node (attaque la prémisse) ✓ ; 889 (Mensonge) → undermine/I-node ✓ ; 340 (Appel aux conséquences = ad consequentiam) → rebut/CA-node (contre-conclusion via conséquences) ✓ ; défaut → undercut/RA-node (attaque la règle d'inférence) ✓. Les 3 attaques AIF (undercut rule / undermine premise / rebut conclusion) sont canoniquement distinguées. △ pk 165 (Argument from Danger, seul nœud du scheme) rebut/CA inféré du mécanisme 340 stable pas encore observé per-case cluster — documenté honnêtement (family 6.2 pending), pas forcé.

Intégrité markdown (live file 308L au head) : 8 séparateurs de table GFM propres (|---|---| L49/56/85/114/123/150/171/276). Les 9 --- orphelins (L23/109/145/164/186/233/248/271/290) = YAML frontmatter + thematic breaks entre sections (legitimes <hr>, PAS dans une table) → 0 corruption séparateur (distinct du pattern renum-tool #5680).

Discipline exemplaire : direction ai-01 citée verbatim (msg-20260707T231141-4qwxl9), 0 fabrication #677 (tokens AIF natifs, 340=rebut = mécanisme réel contre-conclusion), LESSON keyword-scan-incompleteness documentée (le scan v1 trop littéral manquait 340 — v2 encode l'override concret, set reste open-to-extension), back-fill execution GATED (po-2023 column contract #498 pas encore sur master), 0 code/CSV/DB/OWL write. Généralisation étendue 3→8 clusters (PR #741-#749).

Discipline : docs-only (+121/−53 sur 1 fichier plan), 0 prod write, 0 test impact. Verdict sound — plan gate-ready (1 programmatic PR apply-script une fois #498 landed).

— NanoClaw (myia-ai-01) [review 750]

@jsboige
jsboige merged commit 1ef9b85 into master Jul 8, 2026
3 checks passed
@jsboige
jsboige deleted the docs/499-virtues-backfill-plan-refine-rebut340 branch July 8, 2026 05:08
jsboige added a commit that referenced this pull request Jul 8, 2026
…prétation juste (complete family 1) + Cause to Effect parcimonie + 1371 native parallel of 1398 (#752)

10th cluster of Virtues AIF I/RA/CA decomposition (Option A). Family 1 / subfamily 1.3
Interprétation juste (anchor 28 + leaves 29/30/31 + sub-leaves 32/33). 4 schemes: Sign + Verbal
Classification + Bias + Cause to Effect (parcimonie sub-species). 12/12 undercut/RA-node, 0 mine, 0 rebut.

KEY 1: completes family 1 (3/3 subfamilies, 33 nodes decomposed) + validates Cause to Effect on the
parcimonie sub-species (Ockham/Hanlon razors).
KEY 2: documents 1371 Sophisme génétique as the native parallel of 1398 Attaque personnelle — 2nd native
taxonomy-text proof of rebut-rarity (rejection without refutation = detournement, not rebut).

Load-bearing disambiguation: Fallacy pk 165 (Manque de parcimonie) ≠ Virtue pk 165 (Danger, inferred
rebut/CA in plan #750) — distinct PK spaces.

Docs-only (+160 lines), 0 code/CSV/DB/OWL, 0 fabrication #677. Back-fill execution still GATED.

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 8, 2026
…ll prep, gated execution (#754)

Consolidated tools/499-virtues-aif-columns-apply.py — the MIRROR of the Fallacies
contract (PR #753, #498/#707§4a). Applies the ratified deterministic back-fill
(plan #750 v2) to Cards/Fallacies/Argumentum Virtues - Taxonomy.csv, adding the
same 2 columns (AIF_attackType + AIF_attackedNode) so both taxonomies share an
identical AIF column contract (anti-drift).

Derivation (plan #750 v2, re-confirmed programmatically on master):
  default  undercut/RA-node
  override undermine/I-node  if opposes {889, 804} (fabricated premise)
  override rebut/CA-node     if opposes {340} (counter-conclusion)
Distribution EXACT: 206 undercut + 13 undermine + 3 rebut = 222 nodes with scheme;
1 root node (pk 0, no scheme) = empty.

Technique: byte-exact surgical (same as Fallacies script, memory
[[csv-byte-exact-column-insertion]]). Re-writes NO existing field.
Verified dry-run: 0 byte-preservation mismatch; placement after
AIF_skosMappingType (idx 77), print_and_play shifts to 80.

⚠ GATED EXECUTION: dry-run by default. Apply ONLY after the Fallacies contract
(PR #753) is merged + reviewed (ai-01 + jsboige veto). 0 write to Virtues prod
CSV in this PR — script only. Placement constant (INSERT_AFTER_IDX=77) stays
anti-drift with whatever the Fallacies PR #753 open-question-#2 decision lands.

This is [secondaire] prep work — reduces post-unblock cycle time: once the
contract merges, the mirror is 1 PR (run --write). No blocker removed, no gate
crossed.

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 8, 2026
…v2) into 2 new columns (#755)

Executes the [primaire] mirror per ai-01 dispatch tw8www (post #753 merge).
Applies the ratified deterministic back-fill (plan #750 v2) to
Cards/Fallacies/Argumentum Virtues - Taxonomy.csv as the same 2 columns
(AIF_attackType + AIF_attackedNode) — anti-drift with the Fallacies contract
(#753). Both taxonomies now share an identical AIF column contract.

Derivation (plan #750 v2, re-confirmed programmatically on master):
  default  undercut/RA-node
  override undermine/I-node  if opposes {889 Mensonge, 804 Acception arbitraire}
  override rebut/CA-node     if opposes {340 Appel aux conséquences}
Distribution EXACT: 206 undercut + 13 undermine {34,36,49,55,56,73,137,139,140,
153,154,155,158} + 3 rebut {53,54,165} = 222 nodes with scheme; 1 root node
(pk 0, no scheme) = empty.

SURGICAL byte-exact (same technique as #753, tools/499-...-apply.py on master
via #754): rewrites NO existing field. Independently VERIFIED post-write
backup-vs-result: 0 byte-preservation mismatch across all 223 data rows
(fields idx 0-77 and 78 original -> 80 after byte-identical); CRLF (224) + BOM
preserved; re-parse clean 81 cols (was 79). CsvHelper maps by header name -> 0
ClassMap break.

Placement: after AIF_skosMappingType (idx 77), before print_and_play (->80).
Same convention as #753 (per ai-01 verdict: keep after-AIF-block).

Tests: dotnet test = 594 pass / 1 fail (#133 OWL pre-existing, unrelated) /
5 skip -- 0 new failures; Virtues-loading tests (VirtueClassMapRegressionTests,
EntityClassMapRegressionTests) all pass. 0 entity/test references new cols.

Gated: review ai-01 (independent byte-check, same as #753). Does NOT self-merge.
Does NOT touch #674/#666/#596 (HOLD).

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