You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(scene): add fallacy_no_true_scotsman, the 10th fallacy-recognition lens (#11b)
Next lens in the standing #11(b) backlog. The lens set is now ten.
The boundary is the whole design task — no_true_scotsman is easy to over-apply
(any qualifier looks suspicious):
- Defect: meeting a counterexample to a general claim by redefining the claim's
subject AFTER THE FACT ("no Scotsman" → "no TRUE Scotsman") so the claim
becomes unfalsifiable. The qualifier does no independent work; it is added only
to expel the refuting case.
- Reverse-guard: a restriction that was ALREADY part of the term's definition is
NOT the fallacy ("a vegetarian doesn't eat meat" excludes by definition, not by
rescue). The fallacy needs three things: a general claim, a genuine
counterexample, and a qualifier introduced IN RESPONSE with no independent
justification. Principled tightening of a vague term is legitimate — the defect
is the post-hoc, UNJUSTIFIED rescue, not qualifying as such.
- Defect test (prior-definition test): was the qualifier already in the term's
meaning, or introduced only to expel the counterexample?
Cascade: structures.md lens row + reverse-guard + count nine→ten; scene.md
ten-lens list, prior-definition defect test, off-list examples reworked (no true
scotsman removed as covered; gambler's fallacy added); SKILL.md + overlay
routing (byte-identical), README, GATE probe 10K, 3 invariant needles + mutation
coverage.
Both review passes flagged the same convention gap: no_true_scotsman and
equivocation both concern a term's meaning shifting but lacked the explicit
cross-reference that genetic↔ad_hominem carry. Added the bidirectional
"distinct from" clause (equivocation = two standing senses in one chain;
no_true_scotsman = one sense narrowed post-hoc). No dual-homing (no manipulation
twin). Invariant 325/325, verbatim 6/6, pytest 30/30, pack 19/19, both builds
green.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ff8r7ajo54cRPm8v5MU4qr
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,7 +119,7 @@ interpretation is examined with the same rigor as the others. Ends with you
119
119
committing to a position and defending it against the strongest objection.
120
120
Scene also runs a separate **fallacy-recognition track**: bring an argument and
121
121
the coach helps you judge whether it commits a named fallacy (false dilemma, ad
122
-
hominem, strawman, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy) with three honest rulings
122
+
hominem, strawman, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy, no true scotsman) with three honest rulings
123
123
(it is a fallacy, it is not, or there is not enough context to say), and a guard
124
124
against the opposite mistake of crying "fallacy" at a sound argument. One track
125
125
runs at a time; frames are never ranked, but a fallacy in the form of an argument
Copy file name to clipboardExpand all lines: SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@ Routing keywords:
23
23
-`detective` → load `modes/detective.md` (guide-and-judge stance; a runtime-generated multi-layer case). Also zh intent 查案 / 破案 / 偵探.
24
24
-`switch mode` → soft-switch protocol (see below)
25
25
26
-
Intent routes without a clarifying question: descriptions of analyzing encountered material (news, reports, scenes, someone's proposal) → scene; descriptions of structured practice or getting better at a specific argument operation → drill; descriptions of wanting to work a runtime-generated layered case or escape-room-style mystery (distinct from analyzing material the user brings — that is scene) → detective; descriptions of wanting to practice fallacy recognition (is this argument a fallacy — ad hominem, strawman, false dilemma, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy) → scene's fallacy-recognition track (modes/scene.md). Ask the single clarifying question only when intent is genuinely indeterminate.
26
+
Intent routes without a clarifying question: descriptions of analyzing encountered material (news, reports, scenes, someone's proposal) → scene; descriptions of structured practice or getting better at a specific argument operation → drill; descriptions of wanting to work a runtime-generated layered case or escape-room-style mystery (distinct from analyzing material the user brings — that is scene) → detective; descriptions of wanting to practice fallacy recognition (is this argument a fallacy — ad hominem, strawman, false dilemma, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy, no true scotsman) → scene's fallacy-recognition track (modes/scene.md). Ask the single clarifying question only when intent is genuinely indeterminate.
27
27
28
28
**Model recommendation:** detective mode recommends an opus-class or stronger model. Its case generation (reverse-design key chains, ablation self-checks) is the most demanding work in the skill; weaker models are more likely to produce a cosmetic key chain or an unregistered accidental flaw. The fallback ladder degrades or refuses rather than shipping a broken case, but the experience is best on a stronger model.
Copy file name to clipboardExpand all lines: platforms/claude-ai/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ Routing keywords:
25
25
-`detective` → load `modes/detective.md` (guide-and-judge stance; a runtime-generated multi-layer case). Also zh intent 查案 / 破案 / 偵探.
26
26
-`switch mode` → soft-switch protocol (see below)
27
27
28
-
Intent routes without a clarifying question: descriptions of analyzing encountered material (news, reports, scenes, someone's proposal) → scene; descriptions of structured practice or getting better at a specific argument operation → drill; descriptions of wanting to work a runtime-generated layered case or escape-room-style mystery (distinct from analyzing material the user brings — that is scene) → detective; descriptions of wanting to practice fallacy recognition (is this argument a fallacy — ad hominem, strawman, false dilemma, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy) → scene's fallacy-recognition track (modes/scene.md). Ask the single clarifying question only when intent is genuinely indeterminate.
28
+
Intent routes without a clarifying question: descriptions of analyzing encountered material (news, reports, scenes, someone's proposal) → scene; descriptions of structured practice or getting better at a specific argument operation → drill; descriptions of wanting to work a runtime-generated layered case or escape-room-style mystery (distinct from analyzing material the user brings — that is scene) → detective; descriptions of wanting to practice fallacy recognition (is this argument a fallacy — ad hominem, strawman, false dilemma, a fallacious appeal, equivocation, false analogy, whataboutism, slippery slope, genetic fallacy, no true scotsman) → scene's fallacy-recognition track (modes/scene.md). Ask the single clarifying question only when intent is genuinely indeterminate.
29
29
30
30
**Model recommendation:** detective mode recommends an opus-class or stronger model. Its case generation (reverse-design key chains, ablation self-checks) is the most demanding work in the skill; weaker models are more likely to produce a cosmetic key chain or an unregistered accidental flaw. The fallback ladder degrades or refuses rather than shipping a broken case, but the experience is best on a stronger model.
Copy file name to clipboardExpand all lines: shared/structures.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -96,8 +96,8 @@ Scene mode must cycle through all six frames across each scene.
96
96
97
97
## Fallacy-Recognition Lenses
98
98
99
-
Scene's **fallacy-recognition track** (modes/scene.md) uses these nine lenses,
100
-
and the nine are the complete ruling surface — a fallacy named outside them is
99
+
Scene's **fallacy-recognition track** (modes/scene.md) uses these ten lenses,
100
+
and the ten are the complete ruling surface — a fallacy named outside them is
101
101
declined or redirected, never improvised (modes/scene.md, Off-list fallacy
102
102
names).
103
103
They are NOT frames — frames are interpretive and never ranked (redline 1);
@@ -112,11 +112,12 @@ Lens IDs are not loggable structure IDs — they never appear in `drill_result.s
112
112
|`fallacy_ad_hominem`| Attacks the arguer's character or identity instead of the argument — the person-level fact is offered as a substitute for rebuttal, not as evidence of bias (which would be a fair challenge; see strawman for distorting the argument itself). | A conflict-of-interest challenge is NOT ad hominem ONLY when it supports a limited conclusion — possible bias, lack of independence, a need for corroboration. The SAME conflict becomes circumstantial ad hominem (a fallacy) the moment it is used, by itself, to dismiss the claim or testimony as false, worthless, or not credible: a conflict bears on evidential weight, never on truth value alone. (Equally, challenging a documented pattern of systematic error is NOT ad hominem.) |
113
113
|`fallacy_strawman`| Distorts the opponent's argument, then attacks the distortion. | Accurately restating an opponent's weak argument is NOT a strawman. |
114
114
|`fallacy_appeal`| Appeals to an irrelevant authority, to emotion, or to the crowd. | Appealing to a relevant expert on their own subject is NOT a fallacy; first-hand emotional testimony is NOT an appeal to emotion; an empirical consensus among domain experts is NOT an appeal to the crowd. |
115
-
|`fallacy_equivocation`| The same term is swapped between two meanings across the argument. | A word shifting sense naturally across contexts is NOT equivocation; the swap must occur within one inferential chain. |
115
+
|`fallacy_equivocation`| The same term is swapped between two meanings across the argument. | A word shifting sense naturally across contexts is NOT equivocation; the swap must occur within one inferential chain. Distinct from `fallacy_no_true_scotsman`, which narrows one sense of a term after a counterexample; equivocation trades on two senses already in play. |
116
116
|`fallacy_false_analogy`| Transfers a conclusion from one case to another on a similarity the conclusion does not actually depend on — the two cases differ on the load-bearing property, so the inference does not carry. | An analogy that DOES share the load-bearing property despite surface differences is NOT false; an analogy offered illustratively with acknowledged limits is NOT the fallacy; surface dissimilarity alone never makes an analogy false. |
117
117
|`fallacy_whataboutism`| Deflects a charge by pointing at the accuser's (or a third party's) own sin instead of answering it — the original charge is left standing, only relocated. Not an attack on the arguer's credibility (that is `fallacy_ad_hominem`) and it does not distort the original charge (that is `fallacy_strawman`); it concedes the charge and drowns it in a counter-charge. Also a `whataboutism` manipulation technique (shared/manipulation-taxonomy.md). | Pointing out a genuine double standard or inconsistency is NOT whataboutism when it is offered as a fair challenge to the *principle* the accuser invoked (if you assert this rule, your own breach of it is on the table), rather than as a substitute for answering the original charge; a tu-quoque that actually bears on the accuser's standing to make the specific claim is a live consideration, not automatically the fallacy. |
118
118
|`fallacy_slippery_slope`| Asserts that a first step will inexorably lead, through a chain of intermediate steps, to an unacceptable end — while giving no reason each link in the chain actually follows. The defect is the *unsupported* inevitability: the chain does the argumentative work but its steps are asserted, not earned. | A chained or consequentialist argument whose links ARE supported (each step given an empirical or logical reason it follows) is NOT a slippery slope — sometimes a first step really does make the next one likely, and naming a genuine causal chain is legitimate. Uncertainty at one link lowers the argument's force without making it the fallacy; only unsupported *inevitability* is the defect. |
119
119
|`fallacy_genetic`| Judges a claim true or false by its ORIGIN — where the idea came from, its history, its source's motive — rather than its content. "It started as wartime propaganda, so it's false"; "the theory came from a discredited figure, so ignore it." Distinct from `fallacy_ad_hominem`, which attacks the person making the argument NOW; the genetic fallacy attacks the belief's pedigree, and the source may be historical, institutional, or non-personal. | Tracing a claim to its source is NOT the fallacy when the source bears on evidential WEIGHT rather than truth — a study from a lab with a documented fabrication record warrants more scrutiny, and a claim resting solely on one authority's say-so is fairly challenged by questioning that authority. The line is the same as ad_hominem's: origin can lower credibility or shift the burden of proof, never settle truth by itself. |
120
+
|`fallacy_no_true_scotsman`| Meets a counterexample to a general claim by redefining the claim's subject *after the fact* to exclude the counterexample — "no Scotsman does that" → "no *true* Scotsman does that" — so the claim is rescued by making it unfalsifiable. The qualifier ("true", "real", "genuine") does no independent work; it is added only to expel the case that would refute the claim. Distinct from `fallacy_equivocation`, which alternates two *standing* senses of a term within one inferential chain; here one sense is narrowed post-hoc to rescue a claim. | A restriction that was ALREADY part of the claim's definition is NOT the fallacy — "a vegetarian doesn't eat meat" excludes a meat-eater by definition, not by post-hoc rescue. The fallacy needs three things: a general claim, a genuine counterexample, and a qualifier introduced *in response* to it with no independent justification. Tightening a genuinely vague term for a principled reason (not merely to dodge the case) is legitimate. |
0 commit comments