Soma
Governance framework that makes AI coding agents trustworthy.
Soma makes AI agents trustworthy by providing observably traceable governance — evidence-based rule selection, AST analysis tools, and adaptive rule lifecycle management. Rules that stop proving themselves expire. Rules that keep proving themselves get promoted. Claims that don't match evidence are caught.
The Problem: Ungoverned AI coding agents waste significant portions of tokens in circular rework loops, hallucinated API calls, and broken assumptions. Static rule files (
.cursorrules,CLAUDE.md) help but never adapt, and the agent can simply ignore them.The Solution: Soma provides JIT context injection, adaptive rule lifecycle, and pre-commit enforcement hooks to reduce waste. Rules are scored by Laplace-smoothed fitness and pruned when they stop proving value.
Internal naming convention: Soma uses a biological metaphor internally (genome, enzymes, organs, cells) to model rule evolution — see the codebase for details.
See the NOTICE file for our full local-only Data Privacy Statement.
Quick Start
Install
# Clone
git clone https://github.com/nseney1/Soma-Governance.git && cd Soma-Governance
# Install the CLI (Python 3.9+)
pip install -e .
# Or install from PyPI
pip install soma-governance
# Set up governance (auto-detects your platform)
soma init --yes
# See what's active
soma status
Alternative install methods
# Global install via Makefile (Gemini / Antigravity)
make install
# Shell installer for specific platforms
bash install/install.sh gemini # Google Gemini
bash install/install.sh copilot # GitHub Copilot
bash install/install.sh claude # Claude Code
bash install/install.sh kiro # AWS Kiro
bash install/install.sh mcp # Any MCP-compatible agent
MCP Server (Recommended)
Add Soma as an MCP server in your AI agent's config — zero API key needed. The agent is the LLM.
{
"mcpServers": {
"soma": {
"command": "python3",
"args": ["-m", "soma_mcp"],
"cwd": "/path/to/your/project"
}
}
}
Works with Gemini Antigravity, Claude Code, Cursor, and any MCP-compatible agent. Tools exposed: soma_create_cell, soma_scan, soma_grade, soma_coverage, soma_fitness, soma_list_cells, soma_report_outcome, soma_propose_change, soma_audit_security, soma_audit_performance, soma_verify_changes, soma_checkpoint.
SDK
pip install soma-governance # Python
npm install soma-governance # JavaScript / TypeScript
from soma_sdk import Governance
gov = Governance(project_root='.')
landscape = gov.fitness_landscape(bayesian=True)
coverage = gov.coverage_report()
grade = gov.grade()
gov.signal('wall-gae-truncation', 'tp', metric={'survival_day': 12})
const { Governance } = require('soma-governance');
const gov = new Governance('.');
const grade = await gov.grade();
const entropy = await gov.entropy();
CLI Commands
All governance workflows are available via the soma CLI:
| Command | Description |
|---|---|
soma init |
Set up governance — auto-detects platform, installs rules + pre-commit hook |
soma genesis |
Scan codebase architecture, generate governance cells |
soma status |
Show active rules, cell counts, and fitness stats |
soma report |
Session report card with compliance metrics |
soma doctor |
System health check — verifies installation integrity |
soma verify |
Layer 1 AST analysis on changed files (--layer1-only available) |
soma checkpoint |
Quality checks (--pre-commit for git hooks) |
soma sync |
Reconcile evidence JSONL with cell frontmatter (--dry-run, --json) |
soma oracle |
Cell health classification — healthy, noisy, expired, unobserved |
soma promote |
Evaluate cells for promotion (vacuole → wall → genome). --force --cell <id> for manual |
soma demote |
Evaluate cells for demotion (high FP rate or dormant). --force --cell <id> for manual |
# Quick quality check before committing
soma checkpoint
# AST analysis (Layer 1)
soma verify
# Cell health dashboard
soma oracle --json
# See what cells earned promotion
soma promote --dry-run
Architecture
Soma models governance as a layered system of rules, skills, and automation. Every component maps to a specific role:
┌──────────────────────────────────────────────────────────────────────┐
│ 📐 CORE RULES (genome/) 15 Rules — inherited defaults │
│ 🔧 AGENT SKILLS (organs/) 15 Skills — complex behaviors │
│ ⚙️ AUTOMATION (enzymes/) 57 Scripts — task automation │
├──────────────────────────────────────────────────────────────────────┤
│ 🛡️ VERIFICATION AST analysis tools │
│ Layer 1: AST-based checks (import guards, complexity, coverage) │
├──────────────────────────────────────────────────────────────────────┤
│ 📋 ADAPTIVE RULES (.soma/cells/) → Per-Repo Governance │
│ Vacuoles · Chloroplasts · Walls · Membranes · Plasmodesmata │
└──────────────────────────────────────────────────────────────────────┘
| Layer | Directory | What It Contains |
|---|---|---|
| Core Rules | genome/ |
15 rules — inherited behavioral defaults, rarely changed. |
| Agent Skills | organs/ |
15 skills — complex multi-step behaviors like adaptive-reviewer, genesis, security-audit. |
| Automation Scripts | enzymes/ |
57 scripts — task-specific automation (fitness scoring, rule creation, evidence pipeline). |
| Verification | immune_system/ |
AST analysis tools for code checking. |
| Adaptive Rules | .soma/cells/ |
Per-repo adaptive invariants. Generated, tested, evolved, or retired. |
📐 Core Rules
The system's foundational rules — 15 rules that define inherited behavior. Always-on rules are loaded every session; conditional rules activate on demand.
| Rule | Trigger | Purpose |
|---|---|---|
| providence | always_on | Codebase grounding, no hallucinations, diagnose-before-repair |
| cost-optimization | always_on | Token efficiency, diffs-only edits, FPSR metric (>80%) |
| subagent-delegation | always_on | Context protection, concurrency limits, delegation floor |
| architectural-tenets | model_decision | Pragmatism, trade-off analysis, scale-to-zero |
| polyglot-standards | model_decision | Unified entrypoints (Makefiles), containerization |
| feature-specs | model_decision | PRD structure, acceptance criteria, documentation |
| testing | model_decision | Behavioral testing, sad paths, ast.parse ban |
| documentation | model_decision | ADRs, actionable READMEs, Mermaid diagrams |
| destructive-ops | model_decision | Dry-run mandates for IaC, database mutations, bulk git |
| git-workflow | model_decision | Conventional commits, .gitignore verification |
| desktop-automation | model_decision | PyAutoGUI/xdotool safety, focus verification |
| core-change-protocol | model_decision | Approval gates for genome/enzyme modifications |
| tdd-protocol | model_decision | Test-driven development with sequential phase gates |
| optional-import-guard | model_decision | try/except guards on optional dependencies |
| hgt-resource-consolidation | model_decision | Cross-project rule sharing governance |
🔧 Agent Skills
Complex multi-step behaviors — each skill performs a specialized function.
| Skill | Purpose |
|---|---|
| adaptive-reviewer | Auto-escalating review orchestrator with subagent nesting |
| domain-researcher | Compiles verified external facts (wikis, API docs) |
| genesis | Codebase onboarding: scans stack and seeds governance cells |
| governance-auditor | Mechanical per-rule PASS/FAIL compliance checks |
| incident-debug | SRE: reproduce → isolate → diagnose → fix → verify |
| performance-audit | Hot-path allocations, O(n²) patterns, GC pressure |
| post-mortem | Blameless retrospective analysis, pattern extraction |
| readme-writer | Scannable, copy-pasteable developer READMEs |
| refactoring-pilot | Mikado Method, incremental moves across 4+ files |
| security-audit | AppSec Engineer: OWASP Top 10, hardcoded secrets |
| session-monitor | Live waste trajectory tracking, periodic probes |
| session-preflight | Pre-flight: venv health, git state, test suite verification |
| spec-synthesizer | Cross-references multi-lens findings into prioritized plans |
| staff-review | Multi-lens fan-out (10 lenses) with staff-level synthesis |
| visual-analyst | Screen & UI analysis: game state, regressions |
📋 Adaptive Rules
Adaptive rules are the per-repository governance layer — atomic, dynamically generated invariants that live exclusively inside your repository (.soma/cells/).
| Rule Type | Role | What It Does |
|---|---|---|
| Vacuole | Anti-pattern trap | Catches known anti-patterns (e.g., "Don't use raw coordinates") |
| Chloroplast | Best-practice injector | Injects idiomatic patterns (e.g., "Use async FastAPI conventions") |
| Cell Wall | Non-negotiable boundary | Non-negotiable safety gate (e.g., "Never skip GAE truncation") |
| Membrane | Selective review trigger | Forces elevated review when sensitive areas change |
| Plasmodesmata | Cross-service contract | Governs data shapes and APIs between services |
Rule Lifecycle
Adaptive rules operate on an evidence-based lifecycle:
Generate → Score (Confidence Decay) → Adapt → Differentiate → Prune / Retire → Promote
↑ |
└──────────────────────── External Fitness Signals (CI/CD, tests, metrics) ─────┘
Lifecycle operators: Differentiation (vacuoles harden into walls), Confidence Decay (confidence decays unless reinforced), Retirement (immediate eviction on excess false positives), Horizontal Transfer (cross-project sharing with probation), Version History (provenance tracking).
Fitness scoring: Laplace-smoothed fitness scoring (tp + 1) / (triggers + 2) — cells are scored by true positive rate with smoothing for low-observation confidence. Higher-fitness cells earn promotion; low-fitness cells are pruned.
Tiered enforcement: Rules earn their enforcement tier through demonstrated defect prevention — advisory (prompt injection) → mechanical (pre-commit block). Pre-commit hooks block commits matching cell target patterns when invariant violations are detected.
Planned features (not yet shipped): Crossover, tournament selection, quorum sensing, gate enforcement DSL. See ROADMAP.md.
⚙️ Automation Scripts
Soma includes 57 task-specific scripts driving rule lifecycles, verification, and evidence pipelines. See SCRIPTS.md for full documentation.
Configuration
Copy soma.conf.example → soma.conf to customize.
| Variable | Default | Description |
|---|---|---|
SOMA_PLATFORM |
gemini |
Target AI platform: gemini, kiro, copilot, claude, mcp |
SOMA_INFERENCE_PROVIDER |
auto |
LLM provider: auto, gemini, anthropic, openai, prompt-only |
DEFAULT_REVIEW_MODE |
gale |
Session default review intensity |
CELL_TELOMERE_DAYS |
30 |
Days for fitness confidence to halve |
CELL_TELOMERE_WALL |
null |
Walls (invariants) never decay |
TEAM_SIZE |
solo |
Team topology: solo, small, team, enterprise |
GEMINI_API_KEY |
(none) | Gemini inference (not needed with MCP) |
ANTHROPIC_API_KEY |
(none) | Anthropic inference (not needed with MCP) |
OPENAI_API_KEY |
(none) | OpenAI-compatible inference (not needed with MCP) |
Cross-OS Support
| OS | Shell | Install | Uninstall | Core Rules | Agent Skills | Hooks |
|---|---|---|---|---|---|---|
| Linux | Bash | make install |
bash install/uninstall.sh |
✅ | ✅ | ✅ |
| macOS | Zsh / Bash | make install |
bash install/uninstall.sh |
✅ | ✅ | ✅ |
| WSL | Bash | make install |
bash install/uninstall.sh |
✅ | ✅ | ✅ |
| Windows (Git Bash) | Bash | make install |
bash install/uninstall.sh |
✅ | ✅ | ✅ |
| Windows (PowerShell) | PowerShell | .\install.ps1 |
.\install\uninstall.ps1 |
✅ | ✅ | ❌ |
How Soma Differs
Soma replaces passive prompt files with active lifecycle-managed governance: JIT context loading prevents bloat, adaptive cells trap repo-specific bugs, and AST analysis catches violations deterministically.
For design analysis, see ABSTRACT.md.
Testing & CI
Test Suite
make test # Full validation + pytest
make validate # Shell syntax, Python compilation, JSON templates
make doctor # System health check
See CONTRIBUTING.md for test guidelines and execution instructions.
CI/CD Pipeline
GitHub Actions runs on ubuntu-latest, macos-latest, and windows-latest:
- Linux/macOS: Shell syntax validation → Python compilation → pytest → hardcoded path audit → script count invariant (≥16) → privacy audit → dry-run install sweep (all 5 platforms) → claim registry verification
- Windows: PowerShell AST parsing → dry-run install with rule count assertion
Documentation Gating
Every feature claim in this README is tracked in docs/CLAIM_REGISTRY.json. A claim can only appear in README when:
- Its behavioral test suite exists and passes
- It has a Claim Registry entry with status
unlocked - The CI gate (
enzymes/verify_readme_claims.py) confirms no regressions
Features that are planned but not yet shipped are listed in ROADMAP.md.
Documentation
| Document | Description |
|---|---|
| Blog Post | "Rules That Can't Prove Themselves Die" — full introduction |
| CHANGELOG | Release history |
| ROADMAP | Planned features and their tracking status |
| PHYLOGENY | Phase-by-phase evolutionary narrative |
| MECHANISM_DESIGN | Formal mechanism design mapping |
| SCRIPTS | Full automation script catalog |
| METRICS | Empirical measurement methodology |
| ABSTRACT | Research paper abstract |
| CONTRIBUTING | Contribution guidelines |
| Templates | Domain-specific rule template packs |
Uninstalling
bash install/uninstall.sh gemini # Remove Soma files, restore backups
bash install/uninstall.sh gemini --dry-run # Preview what will be removed
bash install/uninstall.sh gemini --keep-config # Preserve soma.conf
bash install/uninstall.sh gemini --no-restore # Skip backup restoration
bash install/uninstall.sh gemini --force # Skip confirmation prompt
bash install/uninstall.sh gemini --purge-data # Also remove cells, fitness history
On Windows (PowerShell):
pwsh install\uninstall.ps1 -Platform gemini
pwsh install\uninstall.ps1 -Platform gemini -DryRun
Existing .prism/ directories are auto-migrated to .soma/ on install.
License
Apache 2.0 — Copyright 2026 Nicholas Seney See NOTICE for Data Privacy details.
Metadata
Release files for soma-governance 0.73.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| soma_governance-0.73.0.tar.gz | 390.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| soma_governance-0.73.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 618.6 kB
Release files / soma_governance-0.73.0.tar.gz
| Download URL | soma_governance-0.73.0.tar.gz |
|---|---|
| Size | 390.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99843d48732666d5963efdbcf00166c5b4751b43d578a59c2b7f969b630448f0
|
|
BLAKE2b-256 checksum How to use checksums |
8c4b933800c64ea6005050b26b339ed357e916f6c91ea8d885efe60e02753298
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / soma_governance-0.73.0-py3-none-any.whl
| Download URL | soma_governance-0.73.0-py3-none-any.whl |
|---|---|
| Size | 227.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bbb6d0d3be57696a6be087b8f80fa95526f2a19d156dd682b2d94e106a5e10a5
|
|
BLAKE2b-256 checksum How to use checksums |
f6f38cf080f4393fc5b5128d91070952fe83fb245a0a336335638c1153c47d07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|