Writing system
Rendered from playbook/docs/writing-system.md.
Thinking Bugs Writing System
The playbook/ folder is the public writing system for Thinking Bugs. WRITING.md is the legacy detailed rule file; this playbook is the framework version that adds briefs, visible process, pass logs, author credits, receipt pages, and agent prompts.
Thinking Bugs explains common patterns of unhelpful thinking in plain language. Every page should help a reader recognize a pattern, understand why it happens, see the cost in real life, and practice a more useful reframe.
Related docs:
engine.md- the reusable method behind the playbook.cursor-prompts.md- prompt packs for writing agents.style-guide.md- SEO, markup, and credit conventions.brief-template.md- copy before drafting a new article.data/authors.json- exact public names for models that have article credits.
1. Core promise
Every article must make four things clear:
- What thinking bug is being described?
- Why does it happen?
- What does it cost in everyday life?
- What can the reader try instead?
The article describes a pattern, not a bad person. It should give readers a handle, not a diagnosis or a moral label.
2. The belonging test
A new page earns a slot only when the pattern is:
- specific enough to recognize;
- distinct from existing entries;
- grounded in research, clinical writing, or a well-documented reasoning pattern;
- useful in everyday life;
- correctable through awareness, questioning, prevention, or reframing.
Do not add a page for a contested metaphysical position, a spiritual claim without an empirical kernel, or a near-duplicate of an existing bug. If the idea belongs inside another article, fold it in there.
3. Article shapes
Thinking Bugs uses a shared map so readers can scan, but not a rigid template. Pick the shape in the brief before drafting.
| Shape | Job | Use when |
|---|---|---|
| Specimen Record | Explain one thinking bug from definition to reframe. | Default for catalog pages. |
| Boundary Case | Separate a useful concept from a nearby false reading. | Metaphysical neighbors, partial truths, or high-stakes clarity cases. |
| Domain Trap | Explain a bug born in one context. | Money, digital platforms, groups, work, or relationships create the pattern. |
| Comparison Note | Distinguish one bug from nearby bugs. | Overlap is the main reader confusion. |
| Revision Pass | Improve an existing page without thinning it. | The page already exists and needs clearer examples, sources, or tone. |
Shape names are internal scaffolding. Do not put them in reader-facing article prose.
4. Required article map
Specimen pages use this order unless the brief explains a deliberate exception:
<h1>- distortion or bug name.<h3>- one-line description.Explained- define the pattern in plain language and state the boundary when needed.Examples- 4 to 8 concrete quote examples.Real-world scenarios- optional, only when settings help.Impact- practical cost.Causes- why the pattern happens.Research- 2 to 4 named sources where the article makes research claims.How to spot it in yourself- optional, 3 to 6 crisp signs.Prevention- practical moves calibrated to stakes.Questions & Answers- optional, only for sharp bug-specific edge questions.Reframing- 2 to 3 realistic reframes plus the app note.Related thinking bugs (and how they differ)- 3 to 5 links at the bottom.
Fewer, denser sections beat many thin ones. Do not add a heading just to spend a template slot.
5. Evidence and sources
Every catalog entry should be connected to named research, a clinical concept, or a documented reasoning pattern. The Research section is where most named authors, years, and study details belong.
| Claim type | Requirement |
|---|---|
| Named psychological effect | Named source or established clinical/conceptual tradition. |
| Exact statistic or effect size | Source with year and URL/DOI where possible. |
| General everyday example | Concrete and plausible; do not present it as a study. |
| Invented scenario | Make it clearly illustrative or keep it as a quote example. |
| Advice | Practical, non-clinical, and proportionate to stakes. |
When a source is verified, add it to data/article-references.json. Never invent titles, DOIs, years, or effect sizes. If unsure, omit or hedge.
6. Voice
The voice is simple, direct, practical, and kind. It should sound like a clear explanation from someone helping the reader notice a pattern, not like a diagnosis, a moral lecture, or a therapy session.
- Prefer concrete examples over abstract labels.
- Use short paragraphs.
- Avoid prescriptive therapy language.
- Do not shame the reader.
- Do not overstate certainty.
- Keep humor gentle and rare.
- Explain boundaries without stamping the same boundary formula on every page.
7. Anti-template rules
Do not use:
- a separate
In one linesection; - a separate stress/anxiety section;
- a
What to do in 60 secondssection; - a generic FAQ section;
- numbered section headings;
- numbered reframing labels;
- repeated author-year research hooks on every page;
- quote lists buried inside
Explained; - the same Work / Health / Relationships / Online scenario grid on every page.
A shared map is useful. Repeated sentence machinery is not.
8. AI authorship and public trust
Thinking Bugs can use AI-assisted writing openly. Trust comes from visible process: article credits, revision notes, source metadata, briefs, and receipt pages.
Credits
Article credits live in data/article-credits.json, keyed by slug. Public names should match playbook/data/authors.json. The roster is the models that appear in the credit log. An older label for the same model is mapped in playbook/config.php under model_aliases, so the playbook shows one name and one portrait.
For new framework-style passes, prefer this edit shape:
{
"date": "YYYY-MM-DD",
"pass": "research | draft | fact-check | voice | rewrite | review | publish check",
"model": "Fable 5",
"note": "One reader-facing line about what changed."
}
The legacy Thinking Bugs shape {author, at, message} is still supported. Do not rewrite old credit history just to normalize it.
Never credit Cursor Agent, Thinking Bugs Editorial, 8020.in Editorial, or a guessed model name. If the human did not provide the model name for an article pass, ask before logging the pass.
9. Brief gate
Before drafting a new article, copy playbook/docs/brief-template.md to playbook/briefs/<slug>.md and fill it. Do not outline until the brief contains:
- the reader's real question;
- the bug claim in one sentence;
- why the article belongs in the catalog;
- nearby bugs and how this one differs;
- sources to check;
- the article shape;
- the examples, prevention moves, and reframes planned;
- the credit model/person for the pass.
For rewrites, inventory the existing page first: sections, examples, sources, reframes, related links, credits, and distinctive wording. The rewrite must be better without becoming thinner.
10. Publish checklist
Human editorial gate
- The article describes a correctable thinking pattern, not a person type.
- The pattern is distinct from existing entries or the overlap is explained.
- The article starts with a clear plain-language explanation.
- Examples are concrete and varied.
- Impact, causes, research, prevention, and reframing each add new value.
- Research claims match real sources and
data/article-references.jsonis updated when needed. - Advice is practical, non-clinical, and proportionate to stakes.
- Tone is kind, direct, and not shaming.
- Related links explain differences, not just navigation.
- Credits are updated and the pass log names the real model/person.
Mechanical check
- Required files are updated: content, route, ratings, menu mapping, footer nav, credits, and references when applicable.
- No banned sections or numbered headings appear.
- No em dash appears; use
-. - No
<i>or<em>appears in article content. - Reframing app CTA and bottom spacer are present on specimen pages.
php tools/validate-bug-data.phpprintsOKafter metadata changes.- The article, category page, and home catalog render without PHP warnings.
- Open
/playbook/made/<slug>and review the public receipt.