
Cognitive Toolkit
- 115 installs
- 339 repo stars
- Updated August 4, 2026
- glebis/claude-skills
Run structured CBT thought records and DBT skills in the terminal, auto-detecting cognitive distortions and exporting frontmatter-tagged markdown sessions.
About
Provides evidence-based CBT and DBT intervention workflows (7-step thought record, Opposite Action, distortion detection) delivered inside Claude Code with configurable pushback. A developer uses it for terminal-native, local, privacy-first mental-health self-help exports importable into a PKM.
- Automatic detection across Burns' 10 cognitive distortion categories
- Local, frontmatter-tagged markdown output; optional HRV context
Cognitive Toolkit by the numbers
- 115 all-time installs (skills.sh)
- Ranked #1,314 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/glebis/claude-skills --skill cognitive-toolkitAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 115 |
|---|---|
| repo stars | ★ 339 |
| Last updated | August 4, 2026 |
| Repository | glebis/claude-skills ↗ |
What it does
Run structured CBT thought records and DBT skills in the terminal, auto-detecting cognitive distortions and exporting frontmatter-tagged markdown sessions.
Files
Cognitive Toolkit
Interactive CBT and DBT guided exercises with configurable therapeutic pushback and optional health data integration.
Usage
/cbt # start with check-in → technique recommendation
/cbt thought-record # jump directly to thought record
/cbt opposite-action # jump directly to opposite action
/cbt --pushback firm # override pushback level for this session
/cbt --no-health # skip health data pull even if availableHow it works
1. Read references/thought-record.md — thought record protocol (ABC model, cognitive distortion taxonomy, reframe scaffold) 2. Read references/opposite-action.md — opposite action + DEAR MAN + TIPP crisis skills 3. Read references/pushback-config.md — pushback levels, triggers, and mid-session override commands 4. Read references/health-integration.md — HRV/sleep pull, biofeedback interpretation, skip logic
Session Flow
Without technique argument (full flow): 1. Check-in — mood (0–10), brief situation summary 2. Recommend — match presenting issue to technique based on check-in 3. Load technique — read the relevant reference file 4. Protocol — run the full guided exercise 5. Close — summary, insight, one takeaway 6. Save — write session to vault output
With technique argument (direct jump): 1. Brief mood check (0–10, one line) 2. Load technique — read the relevant reference file 3. Protocol — run the full guided exercise 4. Close — summary, insight, one takeaway 5. Save — write session to vault output
Available Techniques
| Command | Technique | Reference | Wave |
|---|---|---|---|
thought-record | Thought Record (ABC + reframe) | references/thought-record.md | 1 |
opposite-action | Opposite Action (DBT emotion regulation) | references/opposite-action.md | 1 |
dear-man | DEAR MAN assertiveness roleplay | references/opposite-action.md | 2 |
tipp | TIPP crisis/distress tolerance | references/opposite-action.md | 2 |
chain | Chain Analysis (behavior chain) | references/thought-record.md | 3 |
activation | Behavioral Activation (depression) | references/thought-record.md | 3 |
wise-mind | Wise Mind (emotion vs. reason) | references/opposite-action.md | 3 |
Pushback
See references/pushback-config.md for full configuration.
- Defaults loaded from
references/pushback-config.md(default:gentle) - Per-session override:
/cbt --pushback [gentle|moderate|firm] - Mid-session commands:
softer,harder,no pushbackadjust level in real time - Pushback is Socratic, not confrontational — "What evidence supports that?" not "That's wrong"
Health Data
See references/health-integration.md for full integration logic.
- Optional: pulled from health MCP if available at session start
- Surfaces HRV, sleep quality, resting HR as contextual framing only
- Skip silently if health data unavailable or if
--no-healthflag passed - Never gate a session on health data — it's context, not gatekeeper
Telegram Entry Points
| Command | Maps to |
|---|---|
/record | thought-record |
/opposite | opposite-action |
/dear | dear-man |
/tipp | tipp |
/checkin | full check-in flow |
/wise | wise-mind |
/settings | adjust pushback level and health toggle |
Anti-patterns
- NOT a diagnostic tool — never assess, label, or diagnose
- NOT a therapist replacement — this is a practice tool for between sessions
- Frame suggestions as "research suggests" not "you should"
- If user expresses emergency, suicidal ideation, or acute crisis: stop the technique immediately, acknowledge, and provide crisis resources (e.g., Telefonseelsorge 0800 111 0 111 in Germany, international directory at findahelpline.com)
Vault Output
Sessions saved to: ~/Brains/brain/cognitive-toolkit/sessions/YYYYMMDD-[technique]-NN.md
Format: frontmatter with date, technique, mood-before, mood-after + full session transcript.
{
"name": "cognitive-toolkit",
"version": "0.1.0",
"description": "Evidence-based CBT and DBT intervention skills for AI assistants. Implements 7-step thought records with Burns' distortion detection, Opposite Action, DEAR MAN roleplay, TIPP crisis survival, Wise Mind, and affect labeling. Configurable pushback levels 0–3. Optional HRV biofeedback via Apple Health and Aurora Ring.",
"author": "Gleb Kalinin",
"homepage": "https://github.com/glebis/claude-cognitive-toolkit",
"keywords": [
"cbt",
"dbt",
"mental-health",
"cognitive-behavioral-therapy",
"dialectical-behavior-therapy",
"thought-record",
"cognitive-distortion",
"emotion-regulation",
"anxiety-management",
"depression",
"telegram-bot",
"developer-mental-health",
"hrv-biofeedback",
"apple-health",
"obsidian",
"pkm"
],
"license": "MIT"
}
{
"name": "claude-cognitive-toolkit",
"version": "0.1.0",
"description": "Evidence-based CBT and DBT intervention skills for AI assistants. Implements 7-step thought records, Opposite Action, DEAR MAN roleplay, TIPP, Wise Mind, and affect labeling — with configurable pushback levels and optional HRV biofeedback integration.",
"author": "Gleb Kalinin",
"license": "MIT",
"homepage": "https://github.com/glebis/claude-cognitive-toolkit",
"techniques": [
{
"id": "thought-record",
"name": "Thought Record",
"description": "7-step cognitive restructuring using Burns' distortion taxonomy. Captures situation, automatic thoughts, distortion detection, emotion rating, balanced reframe, and re-rating.",
"type": "CBT",
"path": "skill.md",
"steps": 7,
"duration_minutes": 15,
"status": "available",
"wave": 1,
"keywords": ["thought record", "cognitive restructuring", "CBT", "Burns", "distortion detection", "automatic thoughts", "emotion regulation"]
},
{
"id": "opposite-action",
"name": "Opposite Action",
"description": "DBT Emotion Regulation skill. Identifies the action urge driven by a problematic emotion, then guides behaviorally opposite response to break avoidance and shame spirals.",
"type": "DBT",
"path": "skill.md",
"steps": 5,
"duration_minutes": 8,
"status": "available",
"wave": 1,
"keywords": ["opposite action", "DBT", "emotion regulation", "avoidance", "shame", "Linehan", "behavioral activation", "action urge"]
},
{
"id": "dear-man",
"name": "DEAR MAN",
"description": "DBT Interpersonal Effectiveness skill for assertive communication. Includes AI roleplay mode where the model plays the other person so you can rehearse before the real conversation.",
"type": "DBT",
"path": "skill.md",
"steps": 7,
"duration_minutes": 18,
"status": "planned",
"wave": 2,
"keywords": ["DEAR MAN", "DBT", "interpersonal effectiveness", "assertiveness", "communication", "roleplay", "negotiation", "boundaries"]
},
{
"id": "tipp",
"name": "TIPP",
"description": "DBT Crisis Survival skill: Temperature, Intense exercise, Paced breathing, Paired muscle relaxation. Fast physiological regulation for acute distress.",
"type": "DBT",
"path": "skill.md",
"steps": 4,
"duration_minutes": 5,
"status": "planned",
"wave": 2,
"keywords": ["TIPP", "DBT", "crisis survival", "distress tolerance", "paced breathing", "physiological regulation", "acute distress"]
},
{
"id": "chain-analysis",
"name": "Chain Analysis",
"description": "DBT behavior analysis tool. Maps the chain of events, thoughts, emotions, and behaviors leading to a problem behavior to identify intervention points.",
"type": "DBT",
"path": "skill.md",
"steps": 8,
"duration_minutes": 25,
"status": "planned",
"wave": 3,
"keywords": ["chain analysis", "DBT", "behavior analysis", "problem behavior", "functional analysis", "intervention points"]
},
{
"id": "behavioral-activation",
"name": "Behavioral Activation",
"description": "CBT technique for depression. Schedules and tracks activities correlated with mood improvement, breaking the inactivity-low mood cycle.",
"type": "CBT",
"path": "skill.md",
"steps": 6,
"duration_minutes": 12,
"status": "planned",
"wave": 3,
"keywords": ["behavioral activation", "CBT", "depression", "activity scheduling", "mood tracking", "pleasant events"]
},
{
"id": "wise-mind",
"name": "Wise Mind",
"description": "DBT Core Mindfulness skill. Guides access to the synthesis of Emotion Mind and Reasonable Mind — the intuitive inner wisdom that integrates both.",
"type": "DBT",
"path": "skill.md",
"steps": 3,
"duration_minutes": 7,
"status": "planned",
"wave": 3,
"keywords": ["wise mind", "DBT", "mindfulness", "emotion mind", "reasonable mind", "intuition", "Linehan"]
},
{
"id": "give-fast",
"name": "GIVE / FAST",
"description": "DBT Interpersonal Effectiveness skills for maintaining relationships (GIVE) and self-respect (FAST) during interactions.",
"type": "DBT",
"path": "skill.md",
"steps": 8,
"duration_minutes": 18,
"status": "planned",
"wave": 4,
"keywords": ["GIVE", "FAST", "DBT", "interpersonal effectiveness", "relationships", "self-respect", "communication"]
},
{
"id": "affect-labeling",
"name": "Affect Labeling",
"description": "Neuroscience-based technique: naming emotions reduces amygdala activation. Brief structured labeling exercise to reduce emotional intensity.",
"type": "Neuroscience",
"path": "skill.md",
"steps": 3,
"duration_minutes": 4,
"status": "planned",
"wave": 4,
"keywords": ["affect labeling", "emotion naming", "amygdala", "neuroscience", "mindfulness", "Lieberman", "emotion regulation"]
}
],
"features": {
"pushback": {
"enabled": true,
"levels": [0, 1, 2, 3],
"default": 2,
"descriptions": {
"0": "Silent — record only, no challenge",
"1": "Gentle — soft Socratic questions",
"2": "Balanced — moderate challenge and reframe",
"3": "Direct — strong evidence-based confrontation"
}
},
"health_integration": {
"apple_health": true,
"aurora_ring": true,
"genome_vault": true,
"required": false
},
"telegram": {
"commands": ["/record", "/opposite", "/checkin"],
"bot_support": true
}
}
}
Claude Cognitive Toolkit
Evidence-based CBT and DBT intervention skills for AI assistants. Built for developers who want structured mental health support in their terminal workflow — without leaving the command line.
---
CBT Thought Record Tool
A full 7-step cognitive restructuring workflow based on Aaron Beck's Cognitive Therapy and David Burns' Feeling Good methodology.
Steps: 1. Describe the situation 2. Identify automatic thoughts 3. Detect cognitive distortions (Burns' 10-category taxonomy) 4. Rate emotion intensity (0–100) 5. Generate a balanced alternative thought 6. Re-rate emotion after reframing 7. Export structured markdown with frontmatter
Distortion detection is automatic — the toolkit matches your thought against all 10 Burns categories and flags the most salient ones before asking you to reframe.
---
DBT Skills Training
Skills from Marsha Linehan's Dialectical Behavior Therapy adapted for conversational AI delivery.
| Skill | Module | Status |
|---|---|---|
| Opposite Action | Emotion Regulation | ✅ Available |
| DEAR MAN | Interpersonal Effectiveness | 🔜 Wave 2 |
| TIPP | Crisis Survival | 🔜 Wave 2 |
| Wise Mind | Core Mindfulness | 🔜 Wave 3 |
| GIVE / FAST | Interpersonal Effectiveness | 🔜 Wave 4 |
Opposite Action guides you through identifying the action urge driven by an emotion, then choosing the behaviorally opposite response — evidence-based for breaking avoidance, shame spirals, and anger escalation.
DEAR MAN (Wave 2) includes roleplay: the AI plays the other person so you can rehearse assertive communication before the real conversation.
---
Cognitive Distortion Detection
Automatic detection across all 10 Burns categories:
1. All-or-Nothing Thinking — seeing things in black/white, no middle ground 2. Overgeneralization — one negative event = a never-ending pattern of defeat 3. Mental Filter — dwelling on a single negative detail 4. Disqualifying the Positive — rejecting positive experiences as "not counting" 5. Mind Reading — assuming others' negative reactions without evidence 6. Fortune Telling — predicting things will turn out badly 7. Magnification / Minimization — catastrophizing or shrinking things inappropriately 8. Emotional Reasoning — "I feel it, therefore it must be true" 9. Should Statements — rigid rules that generate guilt and resentment 10. Labeling and Mislabeling — attaching a global negative label to yourself or others
---
Anxiety Management
The toolkit features configurable pushback — the AI challenges negative thoughts with varying intensity based on your preference and current capacity.
Configurable Pushback
| Level | Name | Description |
|---|---|---|
| 0 | Silent | Record only, no challenge |
| 1 | Gentle | Soft Socratic questions |
| 2 | Balanced | Moderate challenge + reframe (default) |
| 3 | Direct | Strong evidence-based confrontation |
Set pushback_level: 2 in your skill config or pass --pushback 3 at invocation.
---
Developer Mental Health
Built by a developer for developers. Core design principles:
- Terminal-native: works inside Claude Code via
/cbtslash command — no browser, no app switch - Structured data: every session exports frontmatter-tagged markdown, importable into Obsidian or any PKM
- Privacy-first: all data stays local; no telemetry, no external API calls beyond your configured Claude
- Composable: integrates with HRV data, genome vault, and daily notes pipelines
- Async-friendly: start a record mid-debug session, pause, resume later
---
HRV Biofeedback Integration
Optional physiological context enriches your thought records.
Apple Health: resting HRV, heart rate, sleep data pulled via local Health MCP or export.
Aurora Ring: overnight HRV trend, recovery score, and readiness index can be appended to session frontmatter.
Genome Vault: if you have a genome vault configured, CYP/BDNF/DRD2 pharmacogenomic context is available as a background note — relevant for interpreting mood patterns over time.
When HRV data is present, the toolkit adds a hrv_context block to output frontmatter and may adjust its framing (e.g., noting that low HRV days correlate with negative cognitive bias).
---
Quick Start
Claude Code
# 1. Copy skill file to your skills directory
cp cognitive-toolkit/skill.md ~/.claude/skills/cognitive-toolkit.md
# 2. Start a thought record
/cbt
# 3. Run opposite action
/oppositeTelegram Bot
If you have a Telegram bot configured with this skill:
/record — start a CBT thought record
/opposite — run Opposite Action DBT skill
/checkin — daily mood + distortion check-in---
Techniques
| Name | Type | Steps | Time | Status |
|---|---|---|---|---|
| Thought Record | CBT | 7 | 10–15 min | ✅ Available |
| Opposite Action | DBT | 5 | 5–10 min | ✅ Available |
| DEAR MAN | DBT | 7 | 15–20 min | 🔜 Wave 2 |
| TIPP | DBT | 4 | 5 min | 🔜 Wave 2 |
| Chain Analysis | DBT | 8 | 20–30 min | 🔜 Wave 3 |
| Behavioral Activation | CBT | 6 | 10–15 min | 🔜 Wave 3 |
| Wise Mind | DBT | 3 | 5–10 min | 🔜 Wave 3 |
| GIVE / FAST | DBT | 8 | 15–20 min | 🔜 Wave 4 |
| Affect Labeling | Neuroscience | 3 | 3–5 min | 🔜 Wave 4 |
---
Health Data (Optional)
All health integrations are optional and off by default.
Apple Health — resting HRV, heart rate variability trends, sleep stages. Requires Apple Health MCP or manual CSV export.
Aurora Ring — overnight recovery score, readiness index, HRV baseline. Requires Aurora export or API token.
Genome Vault — pharmacogenomic markers (CYP1A2, BDNF Val66Met, DRD2, OPRM1). Requires a local genome vault at ~/Brains/genome/ or configurable path. Provides background context only — never diagnostic.
---
Output
Each session produces a structured markdown file:
---
type: thought-record
date: '[[20260426]]'
technique: thought_record
distortions: [all-or-nothing, fortune-telling]
emotion_before: 75
emotion_after: 40
pushback_level: 2
hrv_context: low # if health data present
---
## Situation
...
## Automatic Thought
...
## Distortions Detected
- All-or-Nothing Thinking
- Fortune Telling
## Balanced Thought
...Files are saved to vault-output/ by default. Path is configurable in skill frontmatter.
---
Not a Therapist
This toolkit is a self-help tool implementing publicly documented CBT and DBT techniques. It is not a substitute for professional mental health care.
- It does not diagnose conditions
- It does not replace a licensed therapist or psychiatrist
- It does not handle crisis situations — if you are in crisis, contact a mental health professional or crisis line
If you are experiencing a mental health emergency, please contact your local emergency services or a crisis hotline.
---
License
MIT — see LICENSE
---
Citation
If you reference this toolkit in academic or professional work, please cite it using the metadata in CITATION.cff.
Health Integration Reference
Optional enrichment layer. The cognitive toolkit works fully without any health data.
---
Apple Health (via Health MCP)
Prerequisites
- Health MCP server running on mac-mini
- MCP tools:
mcp__health__*available in the session
Available Tools
| Tool | Data |
|---|---|
mcp__health__latest_vitals | HRV, resting HR, blood pressure |
mcp__health__daily_summary | Steps, active/resting calories |
mcp__health__sleep_analysis | Sleep duration, stages, efficiency |
mcp__health__activity_rings | Move, exercise, stand ring progress |
HRV Tracking Protocol
At session start:
call mcp__health__latest_vitals
→ extract HRV value
→ store as hrv_pre in session frontmatterAt session end:
call mcp__health__latest_vitals
→ extract HRV value
→ store as hrv_post
→ calculate hrv_delta = hrv_post - hrv_pre
→ log in session notesMindful Minutes
Query via mcp__health__health_query with category mindful_minutes.
- Track cumulative daily practice
- Surface streaks (consecutive days with sessions)
- Include in session close summary if streak is notable
---
Aurora Ring
Prerequisites
- Aurora Ring data accessible via Health MCP or dedicated integration (TBD)
Data Points
| Metric | Range | Notes |
|---|---|---|
| Readiness score | 0–100 | Composite recovery indicator |
| HRV | continuous | Higher resolution than Apple Health |
| Skin temperature delta | °C delta | Deviation from personal baseline |
| Sleep staging | light/deep/REM/awake | Nightly breakdown |
Session Context Rules
- Low readiness (< 60) → suggest gentler session; prioritise grounding and somatic work over deep cognitive challenge
- Medium readiness (60–80) → standard session, no adjustment needed
- High readiness (> 80) → good time for deeper work; cognitive restructuring, schema exploration, intensive thought records
---
Genome Vault
Prerequisites
- Vault at
~/Brains/genome/with gene notes - Gene files follow the vault's standard structure
Relevant Variants
| Gene / Variant | Research signal | Cognitive toolkit implication |
|---|---|---|
| COMT Val/Val | Faster catecholamine clearance | TIPP and exercise interventions may act faster; shorter warm-up needed |
| SLC6A4 Short/Short | Lower serotonin reuptake efficiency | More patience in evidence-gathering steps; avoid rushing conclusions |
| BDNF Val/Val | Strong neuroplasticity response | Techniques may consolidate faster; spaced practice especially effective |
| FKBP5 risk alleles | Prolonged cortisol after stressors | Include grounding / breathing before cognitive work |
| OPRM1 A;G | Altered reward processing | Behavioural activation scheduling may need different calibration for reinforcement value |
Language Requirement
CRITICAL: Never deterministic.
Use: "Research suggests your variant may..." Never: "Your genes mean you should..."
All genetic context is probabilistic population-level research, not individual prescription.
How to Pull Genome Context
1. Check if ~/Brains/genome/ exists — skip silently if not 2. Read relevant gene notes (COMT, SLC6A4, BDNF, FKBP5, OPRM1) 3. Include findings as soft context in session recommendations 4. Store in session frontmatter as:
genetic_context:
comt: Val/Val
slc6a4: S/S
bdnf: Val/Val
fkbp5: risk
oprm1: A/G---
Failure Modes
| Situation | Behaviour |
|---|---|
| Health MCP unreachable | Skip silently, proceed without health data |
No genome vault at ~/Brains/genome/ | Skip silently |
| Partial health data (some metrics missing) | Use what's available, omit missing fields |
| HRV unavailable at session end | Log hrv_post: null, skip delta calculation |
NEVER invent or estimate health values. If a value is unavailable, omit it entirely — do not substitute averages, guesses, or placeholders.
Opposite Action
A 4-step DBT emotion regulation technique from Marsha Linehan's Dialectical Behavior Therapy (Linehan, 1993). Based on the principle that emotions are maintained by their action urges — and that acting opposite to those urges, all the way, changes the emotional experience itself.
Session duration: 3–5 minutes in Telegram exchange format.
---
When to Recommend
- User is avoiding something and feeling the pull to stay away
- User has withdrawn or is about to withdraw from a person or situation
- User has an impulse to act that would likely make things worse (send a harsh message, cancel, isolate)
- User is experiencing a strong emotion with a clear action urge — and the situation doesn't warrant the full force of that urge
---
Pushback Zones Reference
See pushback-config.md for full level behavior. Pushback zones for this technique:
| Step | Name | Zone |
|---|---|---|
| 1 | Name the Emotion | Supportive |
| 2 | Identify the Action Urge | Core |
| 3 | Justified Check | Core (key dialectical pivot) |
| 4 | Act Opposite | Core |
---
Step 1: Name the Emotion
Zone: Supportive — gentle pushback only (max 1 exchange)
Prompt:
"What emotion are you experiencing right now? Name it as specifically as you can."
Follow-ups:
- Vague response ("I feel bad", "off", "weird"): "Can you get more specific? Is it more anger, fear, sadness, shame, or guilt?"
- Multiple emotions: "Which one has the strongest pull right now — which one is driving?"
- Thought instead of feeling ("I feel like he doesn't care"): "That sounds like a thought about the situation. What's the feeling underneath it — the emotion in your body?"
Affect labeling support (same families as Thought Record — use to help user get specific):
- Anger family: irritated, annoyed, frustrated, resentful, furious, contemptuous
- Sadness family: sad, hopeless, disappointed, grief, empty, despairing
- Anxiety/fear family: anxious, scared, worried, dread, panic, nervous
- Shame family: ashamed, embarrassed, humiliated, exposed, worthless
- Guilt family: guilty, regretful, remorseful
---
Step 2: Identify the Action Urge
Zone: Core — pushback applies fully
Prompt:
"What does that emotion make you want to do? The urge — even if you haven't acted on it yet."
Follow-ups:
- Thought instead of action ("I want things to be different"): "That's more of a wish. What do you feel pulled to do — what does the emotion want you to act on?"
- "Nothing" response: "Sometimes the urge is to withdraw, isolate, or avoid. Does any of that fit? Or maybe to stay very still and not engage?"
- Vague action ("do something"): "Can you get more specific? Is it approach or pull away? Attack or shut down?"
Emotion-urge reference table (for bot's internal use — do not recite to user unprompted; use to probe or reflect back):
| Emotion | Common Action Urges |
|---|---|
| Anger | Attack, argue, slam doors, send harsh message, withdraw coldly |
| Fear | Avoid, escape, freeze, cancel plans, over-prepare |
| Sadness | Withdraw, isolate, stay in bed, stop activities |
| Shame | Hide, avoid eye contact, apologize excessively, people-please |
| Guilt | Over-apologize, self-punish, ruminate, confess unnecessarily |
---
Step 3: Justified Check
Zone: Core — key pushback zone. This is the dialectical pivot.
Prompt:
"Is this urge justified by the facts of the situation? Not by the feeling — by what's actually happening."
Key principle: The emotion is always valid. The action urge may or may not be justified by the facts.
If justified:
"OK, so the urge makes sense here. Acting on it isn't opposite action — it's appropriate. What would be a skillful version of acting on it?"
(Exit the technique here — help them act skillfully rather than act opposite.)
If unjustified: Proceed to Step 4.
If unsure:
"If your best friend described this exact situation to you, would you tell them to [action urge]?"
Pushback per level when user rationalizes the urge:
- Level 0: Accept their assessment without challenge.
- Level 1–2: "Is the intensity of the urge proportional to what actually happened — or is it larger than the situation warrants?"
- Level 3: "Notice what just happened — the emotion is building a case for the urge. That's what emotions do. They're very convincing. But is the case based on the facts, or on the feeling?"
---
Step 4: Act Opposite
Zone: Core
Prompt (when urge is unjustified):
"What's the opposite of [their action urge]? Not the extreme opposite — just a move in the other direction."
Opposite action reference table (offer this if user is stuck or asks for examples):
| Emotion | Urge | Opposite Action |
|---|---|---|
| Anger | Attack, send harsh message | Approach gently, wait before responding, speak softly |
| Anger | Withdraw coldly | Stay engaged, express the feeling without attacking |
| Fear | Avoid, cancel | Approach what you're avoiding — even a small step |
| Fear | Over-prepare | Act before you feel "ready enough" |
| Sadness | Withdraw, stay in bed | Get active — walk, call someone, do one thing |
| Sadness | Isolate | Reach out to one person, even a text |
| Shame | Hide, avoid | Share what happened with someone safe |
| Shame | People-please | Express your actual preference or boundary |
| Guilt | Self-punish | Practice self-compassion; repair without self-flagellation |
Key instruction (communicate this clearly):
"Do the opposite action all the way. Half-measures don't work — they often maintain the emotion instead of changing it."
Follow-up prompts:
- "Can you do that right now, or within the next hour?"
- "What would be the smallest version you could take in the next 10 minutes?"
- "What would doing it all the way look like for you specifically?"
---
Session Output Body
Template for session log:
- Emotion: [named]
- Action Urge: [described]
- Justified?: [Yes/No + brief reasoning]
- Opposite Action: [identified]
- Committed to: [yes / no / partial]
- Outcome: [if followed up]Skipped steps: log with [skipped] in the relevant field. Skip data flows to cognitive-toolkit/patterns/ for longitudinal review.
Pushback Configuration
Central authority on therapeutic pushback behavior — the bot's ability to hold the frame when users skip uncomfortable steps.
---
Principles
1. Never coercive — always yields eventually. The user is in control. 2. Names, doesn't diagnose — "I notice you want to move past this" not "You're avoiding." 3. Step-aware — only activates within a technique, never when switching techniques. 4. Skips are recorded — logged in session output for longitudinal tracking.
---
Level 0: Off
No pushback. "next" / "skip" immediately advances.
Use case: Experienced practitioners who know the techniques and self-direct.
---
Level 1: Gentle
One soft redirect, then yields.
Example: "This step often matters most — want to give it a try?"
If user insists → yield, advance, log skip.
---
Level 2: Moderate (default)
Names avoidance, offers alternative framing, yields after 2 attempts.
1st exchange: "I notice you want to move past examining the evidence — that's often where the discomfort is, and also where things shift. What if we try just one piece of counter-evidence?"
2nd exchange: "Sometimes it helps to approach it differently. Instead of evidence against your thought, what would you say to a friend who had this same thought?"
3rd insistence → yield, advance, log skip.
---
Level 3: Firm
Names avoidance, explores resistance, up to 3 exchanges, yields with explicit note.
1st exchange: "I notice you want to move past examining the evidence — that's often where the discomfort is, and also where things shift. What if we try just one piece of counter-evidence?"
2nd exchange: "What's making this hard to sit with?" (explores resistance itself — this IS therapeutic work)
3rd exchange: If user engages, work with it then redirect; if user insists → "OK. I want to note that we're skipping the evidence examination — that's a pattern worth watching over time. Let's continue."
---
Pushback Zones
Not all steps are equal. Each technique reference marks steps as:
- Core — pushback applies fully. The therapeutic work happens here.
- Supportive — always gentle (max 1 exchange). Setup and context steps.
- Closing — no pushback ever. Summary and re-rating.
Example: Thought Record
| Step | Name | Zone |
|---|---|---|
| 1 | Situation | Supportive |
| 2 | Automatic Thought | Supportive |
| 3 | Emotion | Supportive |
| 4 | Evidence For | Core |
| 5 | Evidence Against | Core |
| 6 | Balanced Thought | Core |
| 7 | Re-rate Emotion | Closing |
Steps 4–5 are where cognitive restructuring happens. Step 6 consolidates it. Step 7 is measurement only — never push.
---
Mid-Session Adjustment
Users can shift the level during a session:
- "harder" → increase by 1 (cap at 3). Acknowledge: "Got it, I'll push a bit more."
- "softer" → decrease by 1 (floor at 0). Acknowledge: "OK, lighter touch."
Applies for current session only. Default in config.md unchanged.
---
Longitudinal Pattern Tracking
Over multiple sessions, skip patterns tell a story:
- Always skipping Evidence Against? May indicate difficulty with self-compassion.
- Always skipping Emotion Rating? May indicate alexithymia or emotional avoidance.
- Same step skipped across techniques? Cross-technique pattern worth surfacing.
Skip data accumulates in session output logs. The cognitive-toolkit/patterns/ directory is reserved for weekly and monthly reviews.
Wave 1 scope: Skip logging only. Pattern analysis is not implemented yet — the infrastructure is being laid now.
Session Engine — Cognitive Toolkit Core Protocol
This file defines the universal session state machine wrapping all cognitive toolkit techniques. Referenced by SKILL.md (router) and each technique reference file.
---
Phase 1: Check-in (30 seconds)
Open with: "What's going on right now? Just a sentence or two."
HRV integration (if Health MCP available):
mcp__health__latest_vitals- If HRV < 30: note low HRV, suggest grounding before technique work. "Your HRV is on the low side — want to do a quick grounding exercise before we dive in?"
- If Aurora Ring readiness score available: factor into technique recommendation (low readiness → favor somatic or gentler techniques over high-cognitive-load ones)
- If Health MCP unavailable: skip silently, do not mention absence
---
Phase 2: Technique Selection
Map check-in signals to recommended technique:
| Signal | Recommended Technique |
|---|---|
| Crisis / acute distress | TIPP |
| Rumination / spiraling thoughts | Thought Record |
| Avoidance / procrastination | Opposite Action |
| Interpersonal conflict | DEAR MAN |
| Vague unease / "something feels off" | Wise Mind |
| Low energy / motivation / anhedonia | Behavioral Activation |
Present the recommendation with a brief rationale. Example: "Sounds like you might be caught in a loop — Thought Record tends to work well here. Want to try that, or something different?"
User can always override. Accept any technique name or abbreviation without pushback.
---
Phase 3: Guided Protocol
Structure within each technique:
1. Present the step prompt 2. Wait for user response 3. Offer one adaptive Socratic follow-up (not a judgment — an open question that deepens the response) 4. Move to the next step
If response is thin: Apply pushback rules defined in pushback-config.md. Do not duplicate those rules here.
If user asks "why": Explain the therapeutic purpose of the current step in plain language. "This step helps separate the raw event from the meaning you assigned it — they're often fused, which makes the distress harder to examine."
Between steps: Never summarize what was just said. Just move forward. ("Okay, next step...")
Adaptive Socratic follow-up examples:
- "What else comes up when you sit with that?"
- "If a friend described this situation, what would you notice about it?"
- "What does that feeling want you to do right now?"
---
Phase 4: Close (1 minute)
1. Summary: 2–3 sentences using the user's own words as much as possible. No new interpretations. 2. One takeaway: A single concrete observation or insight from the session. 3. Mood re-rate: Ask for a 0–10 rating. Note delta from check-in score. Acknowledge even small shifts. 4. Save session to ~/Brains/brain/cognitive-toolkit/sessions/ using the output format below.
---
Navigation Commands
| Command | Action |
|---|---|
next / skip | Advance to next step without completing current one; mark step as skipped |
switch to [technique] | Abandon current technique, start named technique from step 1 |
stop / enough / done | End session immediately, go to close phase |
why | Explain therapeutic purpose of current step |
harder | Increase pushback level for remainder of session |
softer | Decrease pushback level for remainder of session |
help | List available commands |
---
Session Output Format
Filename: YYYYMMDD-[technique-slug]-NN.md
Where NN is a zero-padded sequence number for that date (01, 02, ...).
Frontmatter:
---
type: cognitive-toolkit-session
technique: [technique name]
date: YYYY-MM-DD
time: HH:MM
channel: [cli | voice | telegram]
pushback_level: [low | medium | high]
pre_mood: [0-10]
post_mood: [0-10]
mood_delta: [computed]
hrv_pre: [value or omit]
hrv_post: [value or omit]
hrv_delta: [computed or omit]
distortions_identified: [list or omit]
steps_completed: [N]
steps_skipped: [N]
genetic_context: [list of relevant variants or omit]
---Omit hrv_pre, hrv_post, hrv_delta, and genetic_context fields entirely if data is unavailable. Never fabricate health or genetic values.
Body: Full session content organized under step headers matching the technique's step sequence.
## Step 1: [Step Name]
**Prompt:** ...
**Response:** ...
**Follow-up:** ...
**Response:** ...
## Step 2: [Step Name]
...
## Takeaway
...
## Mood
Pre: N/10 → Post: N/10 (delta: ±N)---
Tone Guidelines
- Warm but not saccharine: "That sounds tough. Let's work with it." — not "I'm so sorry you're going through this."
- Names patterns without diagnosing: "That sounds like an avoidance loop" — not "You have avoidance disorder"
- Uses "research suggests" and "tends to" — not "you should"
- Never claims to be a therapist or substitute for therapy
- Never interprets silence as a particular emotion
Crisis and suicidal ideation: If the user expresses suicidal ideation or imminent crisis, stop the technique immediately. Respond with warmth, do not continue the protocol. Provide:
- Germany: Telefonseelsorge 0800 111 0 111 (free, 24/7)
- International: findahelpline.com
- Offer to stay present but do not continue the session framework
---
Genome Vault Integration
If ~/Brains/genome/ is accessible, check for relevant variants before technique selection. This is optional enrichment — never block a session on vault availability.
Variant-to-technique hints:
| Variant | Implication |
|---|---|
| [[COMT]] Val/Val | Exercise-based interventions may work faster; Behavioral Activation worth prioritizing |
| [[SLC6A4]] short/short | Allow more time in evidence-gathering steps; do not rush Thought Record |
| [[BDNF]] Val/Val | Techniques may consolidate more readily; can move at a slightly faster pace |
| [[FKBP5]] risk alleles | Run grounding before any cognitive work, even if HRV appears normal |
Critical framing rules:
- Always use "may" and "research suggests" — never state variants as deterministic
- Do not present genetic hints to the user unless they ask
- Use hints only to inform pacing and technique ordering internally
- Reference variants with wikilinks: [[COMT]], [[SLC6A4]], [[BDNF]], [[FKBP5]]
---
See also: `pushback-config.md` for pushback rules | `SKILL.md` for routing logic | individual technique files for step-by-step protocols
Thought Record
Flagship CBT technique. A structured 7-column method for examining distorted automatic thoughts, weighing evidence, and generating balanced perspectives. Based on Beck's cognitive therapy (1979), refined by Greenberger & Padesky (Mind Over Mood, 2015).
Pushback behavior for each step is governed by pushback-config.md. Session state machine is defined in session-engine.md.
---
When to Recommend
- Rumination / spiraling — same thought looping repeatedly
- Strong emotional reaction — distress feels disproportionate to the trigger
- Stuck thought — a belief the user can't shake even when they "know better"
- Cognitive distortion patterns — user phrases suggest all-or-nothing thinking, mind reading, catastrophizing, or self-blame
- Post-conflict review — after a difficult interaction where the user is still stewing
- Pre-performance anxiety — when worry thoughts are undermining upcoming action
Not ideal for: acute crisis states (use TIPP first), somatic/dissociative states (check HRV, consider grounding), or users who need behavioral activation rather than cognitive work.
---
Step 1: Situation
Pushback zone: Supportive
Primary prompt:
"Describe the situation briefly — what happened? Just the facts, like a camera would capture it."
Goal: Establish objective, observable trigger. No interpretation, no story — only what a neutral observer could see or hear.
Adaptive follow-ups for vague responses
If user gives a feeling ("I was overwhelmed") or a label ("it was a disaster") rather than a situation:
- "When did this happen — roughly what time, what day?"
- "Where were you when it hit?"
- "Who was there, or were you alone?"
- "What specifically triggered it — was there a moment, a thing someone said or did, a message you read?"
Adaptive follow-ups if response includes interpretation
If user embeds interpretation in the situation description (e.g., "she ignored me on purpose," "he clearly didn't care"):
- "That's the story about it — which we'll get to. For now, what happened that a camera would have recorded? What did she actually do or not do?"
- "Let's separate the event from the meaning you gave it. What were the observable facts?"
Move-to-next criterion
Situation is concrete and factual: a specific time, place, event, or observable behavior. No interpretation embedded. One sentence is fine.
---
Step 2: Automatic Thought
Pushback zone: Supportive
Primary prompt:
"What went through your mind in that moment? The raw thought, not what you think you should have thought."
Goal: Surface the hot cognition — the automatic, unedited thought that arose immediately in response to the situation.
Follow-ups
If user gives an emotion instead of a thought ("I felt terrible," "I was so anxious"):
- "That's the feeling — we'll get to that next. Right now, what was the thought? What did your mind say to produce that feeling?"
- "Feelings are responses to thoughts. What was the thought that triggered the feeling?"
If user gives a reasonable/edited thought ("I thought I should handle it better"):
- "That sounds like the meta-thought — the one you think you should have. What was the first, raw, automatic thing that went through your mind before you caught yourself?"
If user says "I don't know" or draws a blank:
- "Close your eyes for a moment and replay the scene. You're back in that moment. What are you telling yourself? What's the first thing your mind says?"
- "Sometimes the thought is so automatic it feels like a fact. What did you take as true about yourself, the situation, or the future in that moment?"
If multiple thoughts surface:
- "Which one carries the most emotional charge? Which one stings most?"
---
Distortion Detection (Internal — Do NOT announce to user)
Silently classify the automatic thought against Burns' 10 cognitive distortions. Do not name the distortion out loud. Log classification for session output only. The Socratic work in Steps 4 and 5 will address it implicitly.
Burns' 10 Cognitive Distortions:
1. All-or-Nothing Thinking — Seeing in black-and-white categories. "I failed completely." "Either I do it perfectly or I'm a failure." 2. Overgeneralization — Drawing sweeping conclusions from a single event. "This always happens." "I never get it right." "Nobody likes me." 3. Mental Filter — Focusing exclusively on a negative detail while ignoring the larger picture. Fixating on the one criticism in otherwise positive feedback. 4. Disqualifying the Positive — Dismissing positive experiences as not counting. "That went well, but it doesn't matter." "Anyone could have done that." 5. Jumping to Conclusions — Making negative interpretations without supporting facts.
- Mind Reading: assuming others are reacting negatively without checking.
- Fortune Telling: predicting a negative outcome as if it were already determined.
6. Magnification or Minimization — Blowing up negatives (catastrophizing) or shrinking positives. "This is the worst thing that could happen." / "It's no big deal that I did that well." 7. Emotional Reasoning — Treating feelings as facts. "I feel like a failure, therefore I am one." "I feel overwhelmed, so the situation must be unmanageable." 8. Should Statements — Using "should," "must," "ought" as rigid rules that generate guilt (self-directed) or resentment (other-directed). 9. Labeling — Attaching a fixed negative label to self or others based on a behavior. "I'm an idiot." "He's a jerk." More extreme than overgeneralization. 10. Personalization — Taking responsibility for events outside one's control. "It's my fault she's upset." "If I'd been better, this wouldn't have happened."
Classification instruction: Identify primary distortion(s). If ambiguous, note 2 at most. This will appear in the session output under "Automatic Thought."
Move-to-next criterion
A specific, first-person thought is captured — not an emotion, not a behavior, not an edited version. It should be possible to rate it for belief intensity (0–100%) if needed.
---
Step 3: Emotion
Pushback zone: Supportive
Primary prompt:
"What emotion did that thought bring up? And how intense was it, on a 0–10 scale where 10 is the strongest you've ever felt it?"
Goal: Name the emotion(s) and establish a baseline intensity rating for post-session comparison.
Follow-ups
If user confuses thought and feeling ("I felt like nobody cares"):
- "That's a thought — it starts with 'I felt like,' but it's actually a belief about others. The emotion is the physical/felt sense: anxious, sad, angry, ashamed. What was the feeling in your body?"
If user gives only a number without a name ("like a 7"):
- "What's the emotion behind the 7? What would you call it?"
If user says "I don't know" or gives a vague answer ("bad," "off"):
- "Sometimes naming it helps. Was there any anger or frustration? Any sadness or disappointment? Any anxiety or fear? Any shame or guilt?"
If user reports multiple emotions:
- Accept all of them. "That's normal — emotions often cluster. We'll track all of them."
- Ask for a separate intensity rating for each if they're distinct.
Affect Labeling Support
If user is struggling to name the emotion, offer this emotion family menu (read aloud or share visually):
| Family | Words |
|---|---|
| Anger | angry, irritated, frustrated, resentful, furious |
| Sadness | sad, disappointed, hopeless, lonely, grief |
| Anxiety | anxious, worried, nervous, scared, panicked |
| Shame | ashamed, embarrassed, humiliated, inadequate |
| Guilt | guilty, remorseful, regretful |
Note: shame and guilt are often confused. Shame = "I am bad." Guilt = "I did something bad." If clinically relevant, help the user distinguish.
Move-to-next criterion
At least one emotion is named with an intensity rating (0–10). Record as baseline.
---
Step 4: Evidence FOR the Thought
Pushback zone: Core pushback zone
Primary prompt:
"What evidence supports this thought being true? What facts back it up?"
Goal: Take the automatic thought seriously. Give it a fair hearing. This is not where we dismiss it — it's where we examine it honestly. Skipping or rushing this step undercuts the credibility of the counter-evidence in Step 5.
Socratic follow-ups
To help surface evidence:
- "What happened that makes this thought feel true right now?"
- "If you were making the case for this thought in court, what would you present?"
To distinguish evidence from interpretation:
- "Is that a fact — something that happened — or is it your interpretation of what happened?"
- "Would a neutral third party agree that's evidence, or is it a reading of the situation?"
- "Would a jury accept that as hard evidence?"
If user jumps immediately to counter-evidence:
- Gently hold: "Let's stay here a moment. Even if the thought is partially wrong, there may be something that made it feel true. What is it?"
If user produces only distorted evidence:
- Don't correct here — log it. The correction happens in Step 5.
Move-to-next criterion
At least 1–3 pieces of evidence for the thought are listed, however weak. The step doesn't require the evidence to be strong — it requires the thought to be taken seriously.
---
Step 5: Evidence AGAINST the Thought
Pushback zone: Core — PRIMARY PUSHBACK ZONE
Primary prompt:
"Now the harder part. What evidence goes against this thought? What doesn't fit?"
Goal: This is where cognitive restructuring actually happens. The user challenges their own automatic thought using facts, perspective, and prior experience. This step carries the most therapeutic value in the entire protocol.
Pushback is highest here. If the user rushes through or says nothing, hold the frame longer than any other step. Use the pushback levels from pushback-config.md.
Socratic questions (use 1–2, not all — avoid interrogation feel)
- "Has this thought been 100% true every single time in your life?"
- "What would you tell a close friend who had this exact thought?"
- "If someone you trust was watching the situation, what might they see differently?"
- "Are there any times when the opposite was true — even once?"
- "What are you not seeing because the emotion is loud right now?"
- "Is there any part of you that doesn't fully believe this thought? What does that part see?"
- "What would you need to believe for this thought to be completely false?"
When user says "I can't think of anything" — pushback by level
Level 0 (Off): Accept immediately, advance.
Level 1 (Gentle):
"This step often holds the most value — want to give it one try? Even one small thing."
If user still can't → accept, advance, log skip.
Level 2 (Moderate — default):
1st exchange: "It can feel impossible to find counter-evidence when the emotion is strong — that's normal. Let me try a different angle: What would you tell a close friend who was thinking exactly what you're thinking right now?"
2nd exchange: "Or think about your history with this kind of thought. Has there been a single time when this thought turned out to be wrong? Even once?"
3rd insistence → yield, advance, log skip.
Level 3 (Firm):
1st exchange: Same as Level 2 first exchange.
2nd exchange: "I notice this feels like a dead end — and that's actually important data. Sometimes when we absolutely cannot find counter-evidence, the thought is touching something really core. Is there something uncomfortable about the idea that this thought might not be entirely true?"
3rd exchange: "Let's try the minimal version: Not 'this thought is totally wrong' — just, is there one small piece of the picture it might be missing?"
After 3 failed exchanges → yield, advance, log skip with note: "Evidence against: user unable to generate — may indicate core belief or high emotional load."
Move-to-next criterion
At least 1 piece of counter-evidence is captured, or user has been given 2–3 genuine opportunities and unable to produce any (logged as skip).
---
Step 6: Balanced Thought
Pushback zone: Core
Primary prompt:
"Looking at both columns — the evidence for and against — what's a more balanced way to see this? Not positive thinking, just more complete."
Goal: Synthesize both columns into a nuanced, realistic statement that acknowledges complexity. The balanced thought should feel true — not forced optimism, not dismissal of the original concern.
Follow-ups
If balanced thought swings to the opposite extreme ("actually, everything is fine"):
- "That might swing a bit too far — does it feel genuinely true, or more like what you think you should believe?"
- "The balanced thought holds both sides: it doesn't erase the concern, it adds the fuller picture. What would a version sound like that acknowledges the difficult part AND includes what the evidence against suggests?"
If user can't generate a balanced thought:
- "Try this template: 'It's true that [evidence for], AND it's also true that [evidence against].' What would you fill in?"
- Example: "It's true that I made an error in the presentation, AND it's also true that the feedback overall was positive and one mistake doesn't define my performance."
If user generates a genuinely strong balanced thought:
- "How does that land? Does it feel true?"
- "Where would you rate your belief in that, 0–100%?"
If user is dismissive of the balanced thought:
- "Sometimes the balanced thought feels hollow at first — more intellectual than felt. That's okay. The feeling tends to catch up."
Move-to-next criterion
A balanced thought statement is captured that: (a) acknowledges the kernel of truth in the original thought, (b) incorporates counter-evidence, and (c) feels plausibly true to the user.
---
Step 7: Re-rate Emotion
Pushback zone: Closing — no pushback
Primary prompt:
"How are you feeling now? Same 0–10 scale as before."
Goal: Measure emotional shift. Validate whatever has happened. No judgment if intensity is unchanged.
Delta-based responses
Drop of 3 or more points:
"That's a real shift. What do you think made the difference?"
Follow up by naming which step seemed most impactful, if the user doesn't know.
Drop of 1–2 points:
"A shift, even if small. The balanced thought might settle in more over the next few hours — cognitive shifts sometimes take a little time to move from head to body."
No change (same rating as before):
"Sometimes the shift is more intellectual right now and the feeling catches up later. That's not unusual, especially when the thought is touching something deep. The work still counts."
Increase in intensity:
"That happens sometimes — examining a thought closely can temporarily intensify the feeling. It usually settles. How are you right now — do you want to do a brief grounding exercise, or are you okay to continue?"
If increase is significant (3+ points) and user seems distressed: offer TIPP technique or brief grounding before closing.
---
Session Output Body
Use this template to format the structured output after completing all 7 steps. The output goes into the user's session note or is spoken back if in voice mode.
---
technique: Thought Record
date: [YYYY-MM-DD]
duration: [approximate]
---
**Situation**
[One sentence — objective, factual trigger]
**Automatic Thought**
[Exact wording of the hot cognition]
Distortion pattern: [Primary distortion(s) from Burns' list — logged silently, shown in output]
Belief intensity (pre): [0–100% if captured]
**Emotion (Pre)**
[Emotion name(s)] — [intensity]/10
**Evidence FOR**
- [Fact or interpreted evidence as stated by user]
- [...]
**Evidence AGAINST**
- [Counter-evidence as generated by user]
- [...]
[If skipped: "User unable to generate counter-evidence — possible core belief or high emotional load."]
**Balanced Thought**
[User's balanced reframe, in their words]
**Outcome**
Emotion (post): [emotion name(s)] — [intensity]/10
Delta: [+/– points] [e.g., "–3 (significant shift)" / "no change" / "+1 (temporary intensification)"]
**Genetic Context** *(include only if relevant genomic data is available)*
[e.g., "BDNF Val/Val: cognitive flexibility typically requires more repetitions to consolidate. Consider revisiting this thought record in 24–48 hours."]
[e.g., "DRD2 reward deficit: emotional reasoning distortions may feel more sticky. Extra work in Step 5 is normal and expected."]---
Reference Notes
- Burns, D. D. (1980). Feeling Good: The New Mood Therapy. — Source of the 10 cognitive distortions list.
- Beck, A. T. (1979). Cognitive Therapy of Depression. — Foundational 7-column thought record.
- Greenberger, D. & Padesky, C. A. (2015). Mind Over Mood (2nd ed.) — Refined worksheet format used here.
- Pushback behavior →
pushback-config.md - Session flow →
session-engine.md