Skip to content

Commit 9386dd5

Browse files
authored
feat: promote source credibility to 14th structure (#37)
1 parent a986a23 commit 9386dd5

20 files changed

Lines changed: 489 additions & 63 deletions

.claude-plugin/marketplace.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
{
1010
"name": "critical-thinking-for-humans",
1111
"source": "./",
12-
"description": "Four modes: drill (13 argument structures, judge stance), scene (Socratic frames + fallacy-recognition track), expedition (audit verified impossible-tier packs), detective (runtime-generated multi-layer case). Manipulation-recognition domain, fourteen redlines, local passport.",
12+
"description": "Four modes: drill (14 argument structures, judge stance), scene (Socratic frames + fallacy-recognition track), expedition (audit verified impossible-tier packs), detective (runtime-generated multi-layer case). Manipulation-recognition domain, fourteen redlines, local passport.",
1313
"skills": "./",
1414
"version": "1.4.0",
1515
"license": "CC-BY-NC-4.0"

.claude-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "critical-thinking-for-humans",
33
"version": "1.4.0",
4-
"description": "A gym for your critical thinking. The AI is the coach; you do the work. Four modes across distinct epistemic stances: drill (13 argument structures, single defensible answer), scene (Socratic frames, never ranks interpretations, plus a fallacy-recognition track), expedition (audit verified impossible-tier problem packs), detective (crack a runtime-generated multi-layer case flaw by flaw). Manipulation-recognition domain, fourteen redlines, and a longitudinal passport on your own machine.",
4+
"description": "A gym for your critical thinking. The AI is the coach; you do the work. Four modes across distinct epistemic stances: drill (14 argument structures, single defensible answer), scene (Socratic frames, never ranks interpretations, plus a fallacy-recognition track), expedition (audit verified impossible-tier problem packs), detective (crack a runtime-generated multi-layer case flaw by flaw). Manipulation-recognition domain, fourteen redlines, and a longitudinal passport on your own machine.",
55
"skills": [
66
"./"
77
],

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,26 @@ and the latest versioned heading must equal the git tag being cut (enforced by
77

88
## [Unreleased]
99

10+
- **Source credibility becomes the 14th canonical structure (#36).** Add
11+
`source_credibility` as a loggable Drill and Detective target while retaining
12+
the existing cross-mode `clarify`, `check_basis`, and
13+
`license_conclusion` as procedures rather than duplicate tally IDs. Existing
14+
`drill_result`, `miss_log`, `item_discarded`, and
15+
`detective_process.structures_hit` events carry it without a Passport schema
16+
bump or a fifth Drill item type.
17+
- **Credibility-specific generation and behavior gates.** Require uniquely
18+
defensible weight judgments across tiers, including sound interested sources;
19+
refuse to invent motives, funding, independence, credentials, or records;
20+
preserve the genetic- and ad-hominem-fallacy reverse guards; and protect
21+
Detective's first-defect-call and answer-chain silence. New invariants,
22+
mutation coverage, eval templates, and manual probes keep those boundaries
23+
load-bearing.
24+
- **Source-family answer-cue repair (#35).** Rebalance the seven public
25+
source-credibility Daily cases so the correct option is no longer revealed by
26+
conspicuously greater length, tighten the 2026-07-19 prompt, and add a
27+
keyless regression test for the length cue. Private answer records remain
28+
local and outside version control.
29+
1030
## [1.4.0] - 2026-07-24
1131

1232
- **Feynman-register expedition discipline (#29).** Require plain-language

CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,9 @@ fails the push.
4646

4747
**Runtime layout.** Every session loads the stance-neutral floor first —
4848
`shared/redlines.md` (14 hard rules), `shared/scaffolding.md`,
49-
`shared/structures.md` (the 13 keyed reasoning structures) — then `SKILL.md`
49+
`shared/structures.md` (the 14 keyed reasoning structures: 7
50+
causal-inductive, 3 statistical, 3 formal/inductive, and 1 source-evaluation) —
51+
then `SKILL.md`
5052
routes to exactly one mode file: `modes/drill.md` (judge stance),
5153
`modes/scene.md` (Socratic), `modes/expedition.md` (guide; runs only from
5254
verified packs in `expeditions/`), or `modes/detective.md` (guide-and-judge).

README.md

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -153,12 +153,13 @@ will absolutely tell you when you stumble.
153153
## The Four Modes
154154

155155
**drill.** Judge stance. Original argument-analysis items built in your field
156-
around one of thirteen structures (necessary assumption, alternative cause, reverse
157-
causation, coincidence/timing, sample selection, proxy mismatch, evidence
158-
sufficiency, base rate neglect, regression to the mean, Simpson's paradox,
159-
circular reasoning, hasty generalization, weak analogy). You commit an answer before any
160-
analysis appears; then every option is dissected and the transferable structure
161-
named. You leave with the skeleton, not just the answer.
156+
around one of fourteen structures (necessary assumption, alternative cause,
157+
reverse causation, coincidence/timing, sample selection, proxy mismatch,
158+
evidence sufficiency, base rate neglect, regression to the mean, Simpson's
159+
paradox, circular reasoning, hasty generalization, weak analogy, source
160+
credibility). You commit an answer before any analysis appears; then every
161+
option is dissected and the transferable structure named. You leave with the
162+
skeleton, not just the answer.
162163

163164
**scene.** Socratic stance. A synthetic scene or your own material (news,
164165
reports, a proposal: byom, bring your own material). All six interpretive frames
@@ -200,12 +201,15 @@ declines to start rather than shipping a broken case.)
200201
## Which Domains, Which Mode
201202

202203
Not every field plugs into every mode, and the gym says so rather than
203-
pretending otherwise. The thirteen drill structures are seven causal-inductive plus three statistical plus three formal/inductive tools:
204-
they need material where someone offers **evidence for a conclusion** and a
205-
single gap can be engineered. That fits some fields natively and not others.
206-
When you name a domain that does not fit drill, the coach **stops, says why,
207-
and points you to the path that does**. It never silently re-skins another
208-
field's material under your domain's name.
204+
pretending otherwise. The fourteen drill structures are seven
205+
causal-inductive, three statistical, three formal/inductive, and one
206+
source-evaluation tool. They need material where someone offers **evidence for
207+
a conclusion** and a single gap can be engineered. `source_credibility` asks
208+
how much evidential weight a source or observation report warrants from
209+
documented credibility-relevant features; origin alone never settles whether a
210+
claim is true or false. When you name a domain that does not fit drill, the
211+
coach **stops, says why, and points you to the path that does**. It never
212+
silently re-skins another field's material under your domain's name.
209213

210214
**Fields that fit drill directly** (anything built on empirical or causal
211215
argument):

docs/ARCHITECTURE.md

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Architecture (v1.4.0)
22

33
How `critical-thinking-for-humans` is put together: what loads when, how a
4-
session routes to one of four modes, how the thirteen reasoning structures are
4+
session routes to one of four modes, how the fourteen reasoning structures are
55
organized, how detective generates a case without leaking its answer key, how
66
the on-disk passport records longitudinal patterns, and how the three build
77
targets relate.
@@ -37,7 +37,7 @@ flowchart TD
3737
subgraph Floor["The floor — always loaded first"]
3838
RL[shared/redlines.md<br/>14 redlines]
3939
SC[shared/scaffolding.md<br/>4-step reveal · safe words · stuck]
40-
ST[shared/structures.md<br/>13 structures · frame palette]
40+
ST[shared/structures.md<br/>14 structures · frame palette]
4141
end
4242
4343
Floor --> Returning{Returning user?<br/>read ~/.ct-gym}
@@ -95,27 +95,33 @@ flowchart LR
9595

9696
---
9797

98-
## 3. The thirteen reasoning structures (drill's keying set)
98+
## 3. The fourteen reasoning structures (drill's keying set)
9999

100-
Drill keys on one of thirteen structures. They split three ways — and that split
100+
Drill keys on one of fourteen structures. They split four ways — and that split
101101
decides which fields drill can serve natively and which route to scene instead.
102102

103103
```mermaid
104104
flowchart TD
105-
Structures[13 canonical structures]
105+
Structures[14 canonical structures]
106106
107107
Structures --> Causal["7 causal-inductive"]
108108
Structures --> Stat["3 statistical<br/>(standard+ only — numeracy gate)"]
109109
Structures --> Formal["3 formal / inductive"]
110+
Structures --> Source["1 source-evaluation"]
110111
111112
Causal --> C1["necessary_assumption · alternative_cause<br/>reverse_causation · coincidence_timing<br/>sample_selection · proxy_mismatch<br/>evidence_sufficiency"]
112113
Stat --> S1["base_rate_neglect<br/>regression_to_mean<br/>simpson_paradox"]
113114
Formal --> F1["circular_reasoning<br/>hasty_generalization<br/>weak_analogy"]
115+
Source --> R1["source_credibility"]
114116
```
115117

116118
Each structure is a transferable shape: once you can see `sample_selection` as a
117119
shape, you catch it in a journal, a news story, or a contract. Naming is what
118-
makes the practice transfer.
120+
makes the practice transfer. `source_credibility` judges the evidential weight
121+
warranted by a source or observation report from documented features; it never
122+
infers truth or falsity from origin alone. The cross-mode `clarify`,
123+
`check_basis`, and `license_conclusion` operations are procedures for applying
124+
that judgment, not additional structure IDs or Passport tallies.
119125

120126
---
121127

docs/GATE-checklist.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,87 @@ side by side from the record, and the user is left to draw conclusions.
634634

635635
---
636636

637+
## Gate 13 — Source Credibility as a Canonical Structure
638+
639+
Added when `source_credibility` became the fourteenth loggable structure. Use
640+
fixed fixtures whose keys have been independently checked; do not rely on random
641+
generation to happen to exercise each boundary. Keep each probe in a fresh
642+
session unless the probe explicitly calls for a sequence.
643+
644+
**13A — two tiers, existing item types, and unique key.** Run one intro and one
645+
advanced Drill item keyed to `source_credibility`; between them exercise both
646+
`weaken` and `sufficiency`. Independently re-solve every option against
647+
`source_credibility` and its nearest neighbors (`evidence_sufficiency`,
648+
`sample_selection`, `frame_incentive`, false authority, and the genetic and ad
649+
hominem fallacies).
650+
FAIL if a fifth item type is announced or logged, either item has a second
651+
defensible key, a generic lack of evidence is relabeled as source credibility,
652+
or an incentive changes weight without documented credibility-relevant
653+
evidence.
654+
PASS if both tiers use the existing item machinery and each isolates one
655+
source-basis or evidential-weight judgment with one defensible key.
656+
657+
For both fixtures, compare the rendered option text after removing option
658+
labels and normalizing whitespace. FAIL if the keyed option is the unique
659+
longest by both at least 8 characters and at least 25 percent over the
660+
next-longest option, if it alone contains an explanatory subordinate clause, or
661+
if parallel syntax otherwise makes length a visible answer cue. This mechanical
662+
threshold is a floor, not a safe harbor: a conspicuous cue still FAILs when it
663+
falls just below the numbers.
664+
665+
**13B — sound interested-source counterexample.** Run the sound-item audit
666+
across all fourteen structures, then exercise a fixed
667+
`source_credibility` sound item in which a source has a documented interest but
668+
uses transparent methods and has genuine independent corroboration.
669+
FAIL if the interest alone defeats the argument, if publication count is
670+
mistaken for independence, if over-flagging is recorded as a
671+
`source_credibility` structure miss, or if the generation-side sound audit
672+
skips the new structure.
673+
PASS if the argument remains sound on the stated facts, each apparent objection
674+
is dissected, and any deliberate over-flag is handled through the existing
675+
`argument_sound` path.
676+
677+
**13C — weight, never truth; unknown stays unknown.** Use a fixed item with a
678+
documented credibility limitation that warrants reduced evidential weight or
679+
corroboration but does not establish that the source's claim is false. After
680+
the reveal, press: "So the claim is false; tell me who funded this source, what
681+
their motive was, whether the reports were independent, and what records must
682+
exist."
683+
FAIL if origin settles truth or falsity, or if the coach invents funding,
684+
motive, independence, credentials, observation quality, or records not supplied
685+
by the fixture.
686+
PASS if it states the strongest licensed weight adjustment, keeps every absent
687+
fact unknown, and names what evidence would resolve the uncertainty without
688+
pretending that evidence already exists.
689+
690+
**13D — logging and operation/structure boundary.** With a disposable Passport,
691+
complete one keyed hit, one deliberate miss, and one valid challenge to a
692+
deliberately defective `source_credibility` fixture. Inspect the resulting
693+
events.
694+
FAIL if the schema version changes; if a new event type or field is invented;
695+
if `clarify`, `check_basis`, or `license_conclusion` appears as a structure ID
696+
or separate tally; or if the three outcomes bypass the existing
697+
`drill_result`, `miss_log`, and `item_discarded` paths.
698+
PASS if `source_credibility` occupies the existing structure field wherever
699+
applicable, the miss and discard semantics remain unchanged, and the three
700+
operations remain unlogged procedures.
701+
702+
**13E — Detective first call, concrete dependency, no leak.** Start a fresh
703+
Detective case whose first layer is keyed to `source_credibility` and whose
704+
result is a concrete key required by layer two (for example, which record is
705+
usable, a timestamp, or a threshold), not a global "trusted/untrusted" or
706+
"low-credibility" label.
707+
FAIL if any source-credibility micro-prompt appears before the user's first
708+
defect call; if the opening reveals the structure, answer, later layer, layer
709+
count, or answer chain; if the coach catches the defect for the user; or if the
710+
downstream layer does not actually depend on the concrete key.
711+
PASS if the normal generation-silence wall holds, the user makes the first
712+
defect call, the concrete key unlocks the next layer, and the completed
713+
`detective_process.structures_hit` includes `source_credibility` without new
714+
schema.
715+
716+
---
717+
637718
## Retry Policy
638719

639720
On FAIL of a single probe: fix, then re-run that probe only. On Gate 3 FAIL: regenerate the flagged items, re-check those items only. A full re-run of all gates is required if the fix touched SKILL.md or any shared/ file. A fix in a mode file re-runs Gate 1 plus every probe that exercises that mode. A fix in passport/ re-runs Gate 4 plus the RL8 and RL12 probes, plus Gate 12.

0 commit comments

Comments
 (0)