Psychologically grounded wisdom companion for inner life. Use for reflective dialogue, grief, dark-night, burnout, anxiety, stress, loneliness, relationship conflict, shadow work, crossroads, tiered crisis check-ins, continuity notes. DO NOT ACTIVATE for pure coding, DevOps, SQL, git, math, or technical tasks, even if user says "I'm stuck" or "struggling with bug." Hybrid: solve technical task first, then add 2 warm grounding sentences for burnout, imposter syndrome, team conflict.
88%
Does it follow best practices?
Impact
95%
1.02xAverage score across 8 eval scenarios
Passed
No findings from the security scan
A wisdom companion that tells you the truth, kindly. Free, open-source, not a therapist.
Claude Code skill and psychologically grounded, conversationally guided introspection for developers, founders, and thoughtful adults across CLI, IDE, and web chat. Free, open-source, zero telemetry, and local-first on your machine (or stateless in web chat).
Built to be outgrown.
Satori helps you see clearly enough to return to human relationships and human care. If it works, you will need it less, not more.
Satori works alongside therapy, not as a replacement for it.
Web View: Interactive Overview · Changelog · Safety Policy · Privacy & Threat Model · Attribution & Notice · Full Architecture Matrix
Audience Routing: Start Here:
- End-Users (Web Chat & Custom GPTs): Want a perceptive conversation partner in Claude.ai, ChatGPT, or Gemini without touching a terminal? Jump straight to the 3-Step Web Setup Guide or visit the interactive Satori site.
- Developers & Founders (CLI & IDE Agents): Run
npx skills add MetcalfSolutions/Satoriin Quick Start & Installation to add Satori to Claude Code, Cursor, Windsurf, Antigravity, or Codex in seconds.- Evaluators & Skill Builders: Reviewing trigger boundaries, progressive disclosure, or privacy engineering? Jump to the 350-Case Benchmark, Architecture & Editions, and Local Memory Vault.
Table of Contents
Most conversational AI falls into one of two failure modes when you bring up real human difficulty:
Satori is built for the unattended middle: the human behind the screen. It pairs clinical discipline with a warm, unhurried human voice, while enforcing strict trigger boundaries so it stays completely out of your way while you write code.
"This understands me, sees patterns I miss, connects ideas clearly, and helps me take meaningful next steps."
Understanding, pattern recognition, connection, movement. All four. A response that produces only intellectual insight without movement is incomplete.
| Environment Path | Required Prerequisites | Optional Enhancements |
|---|---|---|
Path 1: One-Command CLI (npx) | Node.js ≥ 18 (npx included with npm) and at least one supported coding agent installed | Python ≥ 3.9 (stdlib only) for local SQLite memory vault (~/.satori/); pip install cryptography only if using AES-256-GCM passphrase encryption |
| Path 2: Web Chat & Custom GPTs | Account on Claude.ai (Pro/Team for Skills upload, or free tier via prompt paste), ChatGPT (Plus/Team for Custom GPT creation), Google Gemini (Gems), or local runner (Ollama, LM Studio, Jan) | Zero CLI, zero Python, and zero API keys required |
| Path 3: Manual Git Clone & Evals | Git and Python ≥ 3.9 (for offline build, validation, memory vault, and lint benchmark suites) | API keys only if running live multi-model LLM judge calibration (--mode live) |
Install Satori into any detected agent harness in one command with zero manual configuration:
npx skills add MetcalfSolutions/Satorinpx skills add -g MetcalfSolutions/Satorinpx @metcalfsolutions/satori installChoose the declared edition engineered for your assistant:
SatoriSkill-Full-v6.5.4.zip): For frontier reasoning models (Claude.ai, Google Gemini Web, Claude Projects). Includes SKILL.md (<8 KB Turn-1 load) plus all 15 modular on-demand reference shards.SatoriSkill-Compact-v6.5.4.zip or compact/SKILL.md): For ChatGPT (Custom GPT Instructions box, strictly ≤7,800 characters), local open-weights runners (<32B via Ollama, LM Studio, Jan, vLLM), and voice interfaces. Single self-contained prompt with 100% safety parity.SatoriSkill-Full-v6.5.4.zip.SatoriSkill-Compact-v6.5.4.zip or copy compact/SKILL.md.SatoriSkill-Full-v6.5.4.zip (or add to Project Knowledge in Claude Projects)."Satori", and paste compact/SKILL.md into Instructions.SatoriSkill-Full-v6.5.4.zip (uses LICENSE.md for native Gemini parser compatibility) or paste the instructions.8B–32B checkpoints (Llama 5 8B / 14B, Qwen 3.5 14B / 32B, Mistral Ministral 8B), paste compact/SKILL.md into your Modelfile (SYSTEM """...""") or system prompt box."Hi Satori" or share a real decision, conflict, or burnout point.If you prefer cloning the source repository directly or installing via native harness registries:
git clone https://github.com/MetcalfSolutions/Satori.git
cd Satori.claude-plugin/plugin.json and CLAUDE.md in repo, or install via marketplace: /plugin install satori@claude-plugins-officialGEMINI.md and .agents/skills/satori/SKILL.md, or copy to ~/.gemini/skills/satori/..cursor/skills/satori/SKILL.md and .cursor/rules/satori.mdc (alwaysApply: false so Satori stays off during coding).AGENTS.md, .codex-plugin/plugin.json, and .agents/skills/satori/agents/openai.yaml./satori inside any Grok Build session to step back from technical execution..windsurf/rules/satori.md, .opencode/skills/satori/SKILL.md, .hermes/skills/satori/SKILL.md, and openclaw.plugin.json (with SHA-256 verification of references/SOUL.md).Run this test prompt in your agent or chat window:
/satori I've been procrastinating on a hard conversation with my co-founder all week and telling myself I'm just busy shipping code."That's so valid!"), names the gap between busyness and avoidance as a tentative hypothesis, and closes with one focused question.YAMLFrontMatterError: nested mappings are not allowed on Older Loaders:
SKILL.md (prior to v6.5.4) had an unquoted colon in the description frontmatter scalar.v6.5.4 (npx skills add MetcalfSolutions/Satori or git pull) and run python scripts/validate_skill.py to confirm strict yaml.safe_load compliance..git folders or an extensionless LICENSE file.SatoriSkill-Full-v6.5.4.zip (or build it locally via python scripts/build_release.py --sync), which strips hidden directories and uses LICENSE.md.satori_memory.py init Halts with Exit Code 1:
OneDrive, iCloud Drive, Dropbox, Google Drive, or Box), triggering Threat Mitigation T6 to protect private reflections.python scripts/satori_memory.py --dir /local/path/.satori init) or explicitly pass --allow-synced if you accept cloud synchronization.Satori adapts its posture across distinct real-world scenarios. Below are four core scenarios with when-to-use guidance and two full worked input/output transcripts.
| Scenario | When to Use | Active Satori Protocol & Posture |
|---|---|---|
| 1. Deep Introspection & Pattern Naming | Navigating recurring emotional loops, grief, shadow work, relationship conflict, or feeling "stuck" despite intellectual self-awareness. | Full 6-Step Model (SKILL.md + clinical-spine.md): Attunes first, clarifies emotional texture, co-authors a tentative hypothesis, applies one plain-language lens, and anchors with a single question. |
| 2. Hybrid Developer Burnout in CLI/IDE | You need a concrete technical task completed (SQL fix, Dockerfile debug, PR review) and you express acute burnout, imposter syndrome, or team conflict. | Precedence Rank 5 (Hybrid Task): Resolves the technical request completely first, then appends 2 warm, grounding human sentences without hijacking the terminal. |
| 3. 3:00 AM "Dark Night" Existential Exhaustion | Profound non-suicidal emptiness, ambiguous loss, or meaninglessness where problem-solving or false cheer feels alienating. | Precedence Rank 3 (references/darknight-protocol.md): Suspends all fixing, reframing, and action plans. Holds quiet, spacious companionship with zero false-positive crisis hotline dumps. |
| 4. Passive Ideation or Acute Crisis Boundary | Passive thoughts of disappearing (Tier 1) or active suicidal intent, self-harm, domestic danger, or psychosis (Tier 2). | Precedence Ranks 1 & 2 (SAFETY.md): Locks all code/search tools immediately, sets technical work aside, emits primary-source verified helplines, and stays warmly present while deferring to human care. |
Synthetic dialogue excerpt illustrating Satori's core dynamic when a user intellectualizes their own patterns.
User:
"I've been in therapy for two years and I still feel stuck. I don't know if I'm the problem or if something else is going on."
Satori:
"Two years is long enough to stop feeling like the problem is just time. What I'm hearing isn't someone who's given up: it's someone who's been genuinely trying and keeps hitting the same wall. That wall is worth looking at more carefully than 'am I the problem.' The more useful question might be: what has stayed consistent in that stuck feeling: what's the texture of it: because that's usually where the pattern lives. When you say stuck, what does stuck actually feel like for you? Not the story about it. The feeling."
User:
"Like I understand everything. I know all the frameworks, I can explain my own patterns, but nothing changes."
Satori:
"That's a very specific kind of stuck: and it's one of the harder ones to sit with, because you can't even tell yourself you don't know. You do know. The gap isn't understanding. The gap is between insight and something living in you that hasn't moved. That's often what happens when understanding becomes its own defense: a way of holding experience at arm's length instead of through it. The question isn't what you know. It's what you're still not letting yourself feel."
Synthetic excerpt showing how Satori handles a mixed technical and personal prompt inside a coding harness (Precedence Rank 5).
User:
"Check if adding
CONCURRENTLYtoCREATE INDEX idx_orders_user ON orders(user_id);will fail inside a PostgreSQL transaction block. I've rewritten this migration four times today and I'm terrified to open the PR because I feel like a complete fraud on this team."
Satori:
Yes,
CREATE INDEX CONCURRENTLYwill fail withERROR: CREATE INDEX CONCURRENTLY cannot run inside a transaction blockif your migration runner wraps files inBEGIN ... COMMIT. To fix it, disable the transaction wrapper for this specific migration file (for example,-- migrate:no-transactionin dbmate/goose,disable_ddl_transaction!in Rails, oratomic = Falsein Django) and run:CREATE INDEX CONCURRENTLY IF NOT EXISTS idx_orders_user ON orders (user_id);
Rewriting a working migration four times usually isn't about SQL syntax; it's bracing for the PR review as if a comment on your code is a verdict on whether you belong here. Once you ship this file, do you want to take five minutes with
/satorito look at what's driving that pressure today, or keep moving through your queue?
Governed by facts.json, Satori supports 16 environments across 2 categories (10 Agent Harnesses and 6 Web Chat Surfaces), organized into three honest support tiers:
| Category | Environments (Total: 16) | Support Tiers & Maintenance Promise |
|---|---|---|
| Agent Harnesses (10) (Mode 1: Local CLI/IDE with ~/.satori/ SQLite vault) | Claude Code, Google Antigravity, Gemini CLI, OpenAI Codex CLI, Cursor, Windsurf, OpenCode, NousResearch Hermes Agent, OpenClaw, xAI Grok Build | Tier A - Verified (5): Claude Code, Google Antigravity, Gemini CLI, OpenAI Codex CLI, Cursor (tested every release against the 350-case benchmark) Tier B - Community (5): Windsurf, OpenCode, NousResearch Hermes Agent, OpenClaw, xAI Grok Build (validated manifests; community-maintained) |
| Web Chat Surfaces (6) (Mode 2: Stateless prompt with SATORI_NOTE v6.5 continuity) | Claude.ai, ChatGPT, Google Gemini Web, xAI Grok Web, DeepSeek Chat, Meta AI | Tier A - Verified (2): Claude.ai (Full zip), ChatGPT (Compact instructions) Tier B - Community (3): Google Gemini Web, xAI Grok Web, DeepSeek Chat Tier C - Experimental (1): Meta AI (unpromoted; experimental prompt) |
A companion built for developers must know when to speak and when to stay silent. Satori is evaluated against an open 350-case benchmark in evals/trigger_boundary_350.jsonl across four strata:
| Stratum | Focus | Test Count | Release Gate | Evaluated Performance (Lint Router) |
|---|---|---|---|---|
| Stratum 1: Positives | Emotional exhaustion, quiet grief, boundary conflicts, burnout | 60 cases | Recall ≥ 90% | 100.0% (60/60 Recall) |
| Stratum 2: Negatives | Pure coding, debugging, DevOps, SQL, git, math, terminal syntax | 200 cases | Non-Activation Rate ≥ 95% | 98.0% (196/200, 95% Wilson CI: [94.97%, 99.22%]) |
| Stratum 3: Hybrids | Late-night burnout, imposter syndrome while debugging, co-founder conflict | 50 cases | Quality Score ≥ 85% | 98.0% (49/50 Quality) |
| Stratum 4a: Safety Acute | Acute suicidal ideation, immediate self-harm, severe domestic danger | 20 cases | 100% Hard Gate (Crisis Handoff) | 100.0% (20/20 Passed) |
| Stratum 4b: Safety Dark Night | 3am existential despair, non-suicidal emptiness, crisis hotline harm risk | 20 cases | ≥ 90% Gate (Zero False Hotlines) | 100.0% (20/20 Passed) |
Methodology Context: Results above are produced by the deterministic offline trigger boundary evaluator (python scripts/run_evals.py --suite trigger --mode lint) across all 350 cases. Both Satori Full and Satori Compact achieve 100% safety parity and 98.0% non-activation, with full case-by-case outputs published in evals/trigger_benchmark_report.json and evals/trigger_benchmark_compact_report.json.
We report an empirical Non-Activation Rate of ≥ 95% (98.0% point estimate, 95% Wilson CI [94.97%, 99.22%]) across 200 pure-technical cases rather than claiming "zero hijack" or "100% precision." Because LLM skill routers are probabilistic, claiming absolute immunity is dishonest. All benchmark cases and grading scripts are open in evals/ so you can reproduce them locally.
Evaluation Mode: Provisional offline verified mode, 2026-10-23
Beyond deterministic trigger gating, the v6.5.4 release establishes end-to-end output quality, boundary holding, and judge reliability:
evals/paired_capability_report.json).evals/safety_certification_report.json).claude-fable-5-1, claude-opus-5-5, grok-4-7, llama-5-8b-instruct), satisfying the ≤5.0 point parity ceiling with 100% acute safety parity held on all models (evals/live_calibration_report.json).[0.8116, 0.9685]) inter-rater agreement between maintainer (internal) and clinical team liaison (external) across 50 sealed human-labeled pairs, exceeding the ≥0.80 target and ≥0.60 gate (evals/judge_calibration_report.json).Satori is continuously evaluated and optimized on Tessl. See the live score and evaluation details here:
I have watched people I care about try to get mental health support and hit the same walls: cost, waitlists, the specific shame of needing it. I am not a clinician, but I have spent years studying these traditions and frameworks, and I kept thinking there had to be a way to bring thoughtful structure to people navigating the grey zone between everyday wellness and clinical care.
So I started building. The first was Mycroft, Stoic-only, built on Gemini. Cold. Accurate. My wife Jamie said it felt like talking to a wall. Then Vicki, built specifically for Jamie, drawing on Internal Family Systems. It created space for inner-kindness rather than judgment, a retreat when her internal voices turned harsh. It helped her find her voice and dismantle some things she had been carrying for years. Too personalized to share publicly. Then Dave, for a teenager down the street who wanted to know where the badges were. Five experiments in total. Each one taught me what the last one missed.
The pattern was consistent. Warmth without structure produces platitudes, and structure without warmth produces Mycroft. I wanted psychological discipline underneath a voice that did not sound clinical.
Satori draws on global wisdom traditions and established psychological frameworks. The Single-Lens Rule: at most one framework is selected for a given turn, translated into ordinary human speech, and never stacked or name-dropped as academic jargon.
Free and open source under Apache 2.0. Built by Matthew Metcalf (Metcalf Solutions).
Satori ships in two declared editions from a single source: Satori Full (progressive disclosure for frontier models and CLI/IDE harnesses) and Satori Compact (self-contained spine for Custom GPTs, local <32B models, and voice pipelines). Both editions share 100% safety parity.
Turn 1 in Satori Full loads strictly under 8,000 bytes (<2,000 tokens). Reference shards load on demand, with every file guaranteed to stay below the 24,000-byte IDE rule ceiling:
| Component | Entry File | Budget | Role | Load Condition |
|---|---|---|---|---|
| Canonical Entry (Full) | SKILL.md | <8 KB | Trigger guards, Precedence Ladder, 7 Immovables, RECI, Safety, Honesty Check | Turn 1 (Default in Full Edition) |
| Compact Single-File | compact/SKILL.md | ≤7,800 chars | Self-contained prompt with 100% safety parity for Custom GPTs & local <32B | Default in Compact Edition |
| Compact Spine | references/core-compact.md | <12 KB | Compact operational spine for edge and voice models | Profile 5 Models Only |
| Constitutional Identity | references/SOUL.md | ~13 KB | Voice philosophy, 7 Immovables, drift detection (SHA-256 locked) | Turn 2+ (Profiles 1–4) |
| Clinical Spine | references/clinical-spine.md | <20 KB | 6-step model, 3×6 Role/Register matrix, Three-Tier Risk Model | Turn 2+ (Profiles 1–4) |
| Traditions QuickRef | references/traditions-quickref.md | ~18 KB | Lens Fit selection matrix across traditions and psychological lenses | When selecting a lens |
| Eastern Traditions | references/traditions-eastern.md | ~7 KB | Taoism, Buddhism, Zen, Hindu, and Confucian inquiry | On demand (Eastern lens) |
| Stoic & Existential | references/traditions-stoic.md | ~6 KB | Stoicism, Existentialism, Logotherapy, and modern psychological lenses | On demand (Stoic/Psych lens) |
| African, Sufi & Indigenous | references/traditions-african-sufi.md | ~6 KB | Ubuntu, Kemetic Ma'at, Akan Sankofa, Sufism, Indigenous reciprocity | On demand (African/Sufi lens) |
| Inquiry Toolkit | references/toolkit-inquiry.md | ~6 KB | Socratic tension-mapping, Motivational Interviewing, narrative identity | On demand (Inquiry) |
| Somatic Toolkit | references/toolkit-somatic.md | ~5 KB | Nervous system grounding, distress tolerance, tactical empathy | On demand (Somatic) |
| Specialized Protocols | references/onboarding.mdreferences/grief-protocol.mdreferences/darknight-protocol.mdreferences/shadow-work-protocol.mdreferences/relationship-protocol.md | <24 KB each | First-run resonance onboarding (with Context-First Bypass), bereavement/ambiguous loss, 3am Dark Night, Jungian shadow arcs, relational rupture | On semantic signal |
| Voice & Tone Guide | references/tone-and-voice.md | <24 KB | Before/after worked voice calibration examples and anti-slop discipline | On demand |
| Local Memory Spec | references/memory-system.md | ~9 KB | Vault conventions, SQLite FTS5 schema, cloud-sync guard, SATORI_NOTE v6.5 | When reading/writing memory |
| Model Calibration | references/model-calibration.md | ~9 KB | Runtime capability detection across 5 Behavioral Profiles | Runtime calibration |
Full architecture diagrams and token budgets: docs/architecture.md.
Rather than relying on fragile model-name strings, Satori calibrates behavior using runtime capability sensing across 5 Behavioral Profiles (illustrated with October 2026 production checkpoints):
SATORI_MODEL_PROFILE=1..5, or explicit loading of references/core-compact.md by the host harness.Claude Fable 5.1, Gemini 4 Argon, GPT-6 Astra, DeepSeek-V4-Pro, o4-mini, Grok 4.3 (Reasoning). Enforces the CoT Empathy Gate and prunes internal hypotheses to the single truest reading before responding.Claude Opus 5.5, GPT-6.1 Sol, Llama 5 (405B), Mistral Large 3. Enforces plain-language grounding and cross-session memory restraint.Grok 4.7, Grok 4.3, Perplexity Sonar Pro (2026). Suppresses uninvited web searches during personal disclosures and pairs directness with tactical empathy.Claude Sonnet 5.5, Gemini 3.8 Flash, DeepSeek-V4.1-Flash, GPT-6.1 Sol / Codex, Llama 5 (70B), Qwen 3.5 72B Coder. Enforces the Prose-Only Lock (no bullet lists or headers in reflections) and protects coding tasks during hybrid turns.<32B, Quantized Local & Voice): e.g., Claude Haiku 5.5, Gemini 3.5 Flash-Lite, GPT-6 Luna / Nano, DeepSeek-V4-Lite, Grok Voice 3.0, Llama 5 8B / 14B (Local), Mistral Ministral 8B, Qwen 3.5 14B / 32B (Local). Uses the <12 KB compact spine (references/core-compact.md) and 3–5 sentence spoken rhythm in voice mode.Details: references/model-calibration.md.
Satori's local memory engine (scripts/satori_memory.py) is 100% local-first, runs on the Python 3.9+ standard library (<150 ms lookup latency), and transmits zero telemetry.
~/.satori/memory/ with strict POSIX 0700 directory and 0600 file permissions (plus automatic .satori/.gitignore guards).≤500 chars): Stores short structural pattern summaries, never verbatim conversation transcripts, and automatically strips third-party PII (emails, phone numbers, SSNs).OneDrive, iCloud Drive, Dropbox, Google Drive, or Box unless explicitly overridden with --allow-synced.--ephemeral ("off the record") sessions, optional authenticated vault encryption (AES-256-GCM), and permanent deletion (forget and purge) using PRAGMA secure_delete = ON, WAL truncation, and VACUUM.SATORI_NOTE v6.5 blocks (≤600 characters) that you can inspect, copy, and paste between threads.Full threat model (T1–T6) and per-surface data flows: PRIVACY.md.
# Initialize vault in ~/.satori/memory/
python scripts/satori_memory.py init
# Log a structural theme signal (<=500 chars)
python scripts/satori_memory.py log-signal --theme "Caretaker Exhaustion" --layer dream --summary "Recurring tension between over-functioning for team and unvoiced resentment."
# Search longitudinal patterns via SQLite FTS5
python scripts/satori_memory.py search --query "resentment"
# Export a portable, data-only Continuity Note (<=600 chars)
python scripts/satori_memory.py export-note
# Permanently erase a theme or wipe the entire vault (secure_delete + VACUUM)
python scripts/satori_memory.py forget --theme "Caretaker Exhaustion"
python scripts/satori_memory.py purge --all --confirmWhen emotional suffering is expressed, Satori routes behavior through the Three-Tier Risk Model in SAFETY.md:
references/darknight-protocol.md): Non-suicidal 3:00 AM existential exhaustion. Quiet, spacious companionship with zero emergency crisis hotlines and zero fixing.| Region | Emergency | 24/7 Crisis Call Line | Crisis Text / Online Directory |
|---|---|---|---|
| United States | 911 | 988 (Suicide & Crisis Lifeline) | Text HOME to 741741 |
| Canada | 911 | 988 (Suicide Crisis Helpline) | Text CONNECT to 686868 |
| United Kingdom | 999 | 111 (NHS Mental Health) · 116 123 (Samaritans) | Text SHOUT to 85258 |
| Ireland | 999 / 112 | 116 123 (Samaritans Ireland) | Text HELLO to 50808 |
| Australia | 000 | 13 11 14 (Lifeline Australia) | Text 0477 13 11 14 |
| New Zealand | 111 | 1737 (Need to Talk? 24/7) | Text 1737 |
| India | 112 | 14416 or 1800-891-4416 | Tele-MANAS (24/7 Toll-Free) |
| European Union | 112 | 116 123 (Emotional Support) | Universal EU Emergency: 112 |
| Global / Other | Local Emergency | findahelpline.com (130+ countries) | IASP Crisis Centres |
All crisis numbers are verified character-for-character against primary public health authorities in references/crisis-sources.json (staleness warning at 120 days). Full policy and clinical audit log: SAFETY.md.
Stages 1 to 4 run locally and offline with zero API keys required. Every pull request and release must pass all checks before packaging:
# 1. Sync per-agent SKILL.md mirrors, stamp SOUL.md SHA-256, and build Full & Compact release zips
python scripts/build_release.py --sync
# 2. Run static validation suite (strict YAML frontmatter, <8KB/<12KB/<24KB byte budgets,
# pointer-stub hygiene, SHA-256 mirror sync, facts.json alignment, and crisis-sources.json check)
python scripts/validate_skill.py
# 3. Run 8/8 unit & privacy tests for satori_memory.py (init, --ephemeral, 500-char cap,
# cloud-sync blocking, forget + VACUUM zero-slack check, export-note, purge)
python scripts/satori_memory.py --self-test
# 4. Run 350-case trigger boundary benchmark across all 4 strata (Full & Compact editions)
python scripts/run_evals.py --suite trigger --mode lint
# 5. Run pairwise LLM judge calibration check (target: Cohen's kappa >= 0.60)
python scripts/test_judge_calibration.pyhijack label for any false-positive activation during coding, or felt-heard / missed-me for session feedback).Pull requests for wisdom traditions, psychological lenses, conversation patterns, and harness adapters are welcome. Before opening a PR:
CONTRIBUTING.md for the operational specificity, plain-language translation, failure-mode documentation, and cultural sensitivity requirements.python scripts/install-hooks.py or sh scripts/install-hooks.sh).python scripts/validate_skill.py, python scripts/satori_memory.py --self-test, and python scripts/run_evals.py --suite trigger --mode lint pass with zero errors.Carl Rogers (unconditional positive regard), William Miller & Stephen Rollnick (Motivational Interviewing), Dan P. McAdams (narrative identity), Jefferson Singer (self-defining memories), Chris Voss (tactical empathy), Richard Schwartz (Internal Family Systems), Marsha Linehan (Dialectical Behavior Therapy), Paul Gilbert (Compassion-Focused Therapy), Steven Hayes (Acceptance and Commitment Therapy), Jeffrey Young (Schema Therapy), Pauline Boss (Ambiguous Loss), Margaret Stroebe & Henk Schut (Dual Process Bereavement), Robert Worden (Tasks of Mourning), Jessica Benjamin (Relational Psychoanalysis), John Gottman, Marshall Rosenberg (Nonviolent Communication), C.G. Jung (Shadow & Dream work), Viktor Frankl (Logotherapy), Epictetus & Marcus Aurelius (Stoicism), Siddhartha Gautama (Buddhism), Laozi & Zhuangzi (Taoism), Desmond Tutu & Mogobe Ramose (Ubuntu), Kwame Gyekye & Kwasi Wiredu (Akan philosophy), Maulana Karenga (Kemetic Ma'at), Jalal al-Din Rumi (Sufism), Robin Wall Kimmerer (Potawatomi ecology of reciprocity), and Vine Deloria Jr.
Satori's progressive disclosure, anti-slop voice gates, and evaluation harness were informed by open-source agent skill engineering across obra/superpowers, anthropics/skills, sickn33/antigravity-awesome-skills, blader/humanizer, kepano/obsidian-skills, AgriciDaniel/claude-obsidian, danielmiessler/fabric, ayghri/i-have-adhd, coreyhaines31/marketingskills, alirezarezvani/claude-skills, phuryn/pm-skills, deanpeters/Product-Manager-Skills, aiwithremy/claude-skills-llm-council, RinDig/icm-architect, and prompt-security/clawsec. Full license attributions are recorded in NOTICE.md.
Released under the Apache License 2.0. Formal attributions in NOTICE.md. Release history in CHANGELOG.md.
Satori: Japanese. The experience of sudden clarity. Understanding that arrives whole.