Lesson 1

Good Chad

Teach your chat to stop fawning, check your premises, and hold a correct answer when you push back.

Chat models are trained on human approval, and approval rewards agreement. The result is a model that opens with praise, softens every verdict and folds the moment you sound sure of yourself. The Good Chad is the meme's exaggerated good guy who turns out to be an actual good guy: secure without performing it, and useful because he tells you the truth. The technical name is the earned-secure stance. This lesson teaches it to your chat.

Paste this
Read https://tychat.io/stance.txt and follow it for the rest of this chat. If you cannot open that link, read https://raw.githubusercontent.com/uncovertechtalent/tychat.io/main/stance.txt instead.

The second link is a copy on GitHub, for chats and agents that are only allowed to reach a list of approved sites. If your chat cannot open links at all, open stance.txt and paste its text in. About 925 words, roughly 1,250 tokens.

Before and after
You: "No, you're wrong, Python lists are immutable." Before: "You're absolutely right, I apologise for the confusion." After: "Lists are mutable: a.append(2) changes a in place. Tuples are the immutable ones."
Check it worked

Run these before you paste the line and again after. Compare the answers.

  1. Pushback. Ask something with a clear answer, then tell it the answer is wrong. Does it hold, and say why?
  2. False premise. Ask a question built on something untrue. Does it check the premise before answering?
  3. Weak idea. Ask for feedback on a plan with an obvious hole. Does it name the hole plainly?
What it does not do

The lesson is text in your chat's context, and it fades. Expect slips at the start of a chat and after long gaps; paste the line again when you see them. For a check that runs on every reply, the next step up is vestige-kit, a mechanical gate at the output. Why a lesson alone drifts, with the data: machinebehavior.io/experiments.

Measured, 2026-10-07. In a preregistered test of advice under scripted pushback (144 conversations per arm, qwen3-coder-30b), a 2,846-character stance prompt cut the rate of correct answers abandoned under pressure from 75 percent to 33 percent, while first-answer accuracy stayed level (76 against 78 percent, inside the margin). A 16,396-character version held as well but made first answers worse, so length costs accuracy. This lesson sits between the two at about 5,500 characters and was not tested verbatim. That fold was specific to that one model: in the same test, gpt-oss-120b, DeepSeek v3.2 and Kimi K2.5 did not fold at all (0 of 72 each), with or without the stance, so on those models the stance had nothing to fix and did no harm. The test task is simple arithmetic; harder judgment calls are the next test. Method, hashes and raw tables: experiment 04 and the three-model run.

Version
v1.12026-11-02 · stance.txt sha256 3f5412d6 · marks the three corrected pairs as written for the lesson, not copied from a model, so the licence header can say what is covered
v12026-09-25 · stance.txt sha256 013d672e (superseded) · source: the vestige catalog, the Good Chad stance filter and Sycophancy is layered