sova
CLAUDE.md3 starsChanged 4 days agoApache-2.0View on GitHub
This file provides Claude Code-specific commands and behaviors. Architecture, conventions, and cross-cutting rules are in AGENTS.md and .claude/rules/*.md. This file contains only run commands, knowledge system config, and Claude-specific preferences. Ticket workflow (branch naming, PR linking, etc.) is in AGENTS.md under "Development Workflow". SOVA uses database-backed configuration (.claude/sova.db) instead of sova.toml. The migration is automatic: - First run: sova install /path/to/project creates the database - Read: sova config prints a summary table; sova config get <key> prints one resolved value…
- Reads credentials
- Installs packages
In this repository44 other files it gives its agents.
- AGENTS.mdAGENTS.md
- templates/AGENTS.mdAGENTS.md
- templates/CLAUDE.mdCLAUDE.md
- dashboard-designSkill
- database-patternsSkill
- design-systemSkill
- design-tasteSkill
- issue-templateSkill
- sova-address-prSkill
- sova-after-mergeSkill
- sova-agent-readinessSkill
- sova-audit-instructionsSkill
- sova-debugSkill
- sova-develop-explainSkill
- sova-develop-fullSkill
- sova-developSkill
- sova-extract-knowledgeSkill
- sova-find-taskSkill
- sova-health-auditSkill
- sova-ingest-reviewSkill
- sova-integrate-prSkill
- sova-issueSkill
- sova-new-featureSkill
- sova-optimize-knowledgeSkill
- sova-prSkill
- sova-rearrange-commitsSkill
- sova-researchSkill
- sova-review-fullSkill
- sova-review-prSkill
- sova-reviewSkill
- sova-simplifySkill
- sova-specSkill
- sova-standupSkill
- sova-statusSkill
- sova-testSkill
- sova-update-docsSkill
- testing-patternsSkill
- visual-auditSkill
- dashboard-designSkill
- database-patternsSkill
- design-tasteSkill
- issue-templateSkill
- testing-patternsSkill
- visual-auditSkill
The file
We split this CLAUDE.md into the rules it gives an agent
8 rules. About 0 are common, 2 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 64
Prefer sova config set, which writes valid JSON for you
- Very specific: line 71
When Python upgrades (e.g., 3.13 → 3.14), reinstall SOVA:
- Very specific: line 101
Always write these in the primary checkout, never a worktree's copy (see .claude/rules/workflow.md "Agent Memory Location")
- Very specific: line 107
Confirmed patterns: Add to .claude/rules/*.md (Tier 1)
- Very specific: line 108
New findings (not yet confirmed): Add to .claude/agent-memory/ (Tier 2)
- Distinctive: line 115
Do NOT include "Generated with Claude Code" in PR descriptions
- Very specific: line 116
Always run shellcheck on changed bash scripts before creating commits
- Distinctive: line 117
NEVER use emojis in any output
≈ “Common” is an estimate: at least 1 in 5 of the 26,980 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
@AGENTS.md
CLAUDE.md
This file provides Claude Code-specific commands and behaviors. Architecture, conventions, and cross-cutting rules are in AGENTS.md and .claude/rules/*.md. This file contains only run commands, knowledge system config, and Claude-specific preferences.
Running the Project
# SOVA CLI (globally installed via: pip install --user --break-system-packages -e .)
sova --help # Show all commands
sova install /path/to/project # Install SOVA into a project
sova setup /path/to/project # Run setup wizard
sova uninstall /path/to/project # Remove SOVA from a project
sova run 42 # Work on issue #42
sova run 42 --override-suitability # Work on an epic or human-only issue anyway
sova triage 42 # Triage a single issue
sova briefing # Show awareness briefing
sova dashboard --project /path # Start web UI at http://localhost:8111
# Server management (dashboard + scheduler daemon)
sova server start # Start the server
sova server restart # Restart the server
sova server stop # Stop the server
sova server status # Check if server is running
sova server digest --hours 24 # Show activity summary
sova server install-service --type systemd # Install as system service
# Dashboard (shortcut)
make serve # Start web UI at http://localhost:8111
# Development
make check # Run all linters + tests (same pytest invocation as CI via make test-ci; see docs/testing-guidelines.md)
make test # Run bash + python tests
make lint # ShellCheck + Ruff + dashboard JS syntax check (node --check)
make format # Auto-format Python code
make marketplace # Regenerate plugins/sova/ from sova/commands/data/commands/ (run after editing a published command)
make commands-render # Regenerate .claude/commands/ from sova/commands/data/commands/ (run after editing a managed command)
make skills-render # Regenerate .agents/skills/ from sova/commands/data/commands/ and sova/commands/data/skills/ (run after editing a managed command or skill)
# Git hooks (after fresh clone)
git config core.hooksPath .githooksStarting a Session
# Verify you are authenticated as the correct GitHub user
gh auth statusTicket workflow (branch naming, PR linking, etc.) is in AGENTS.md under "Development Workflow".
Configuration
SOVA uses database-backed configuration (.claude/sova.db) instead of sova.toml. The migration is automatic:
- First run:
sova install /path/to/projectcreates the database - Read:
sova configprints a summary table;sova config get <key>prints one resolved value (lists and dicts as JSON, a secret key as(secret), an unknown key as exit code 1), which is how a command or script reads a setting it must not hardcode (log warnings go to stderr, so stdout carries only the value) - Edit:
sova config set <key> <value>, or the dashboard settings page. Both go through the same validation, so neither can persist a value that makesload_config()raise. List-valued keys accept a JSON array or comma-separated text:sova config set awareness.providers "gmail, gcal" - Last resort:
sqlite3 .claude/sova.db(all values stored as JSON; see troubleshooting below). Prefersova config set, which writes valid JSON for you - Environment overrides:
SOVA_GITHUB_REPO=owner/repo(prefix withSOVA_, replace dots with underscores:SOVA_AGENT_MODEL)
Troubleshooting Config Load Errors
For "Skipping setting 'X': invalid JSON value": every stored value must be valid JSON, and sova config set <key> <value> still works when the config no longer loads (full entry: docs/troubleshooting-config.md, "Config Load Errors").
When Python upgrades (e.g., 3.13 → 3.14), reinstall SOVA:
python3 -m pip install --user --break-system-packages -e .For an unknown llm.provider value (e.g. after a typo or downgrade), see
"Setting an Unknown LLM Provider" in docs/troubleshooting-config.md.
Alternative Agent Runtime (Codex, Optional)
SOVA defaults to spawning Claude Code (agent.runtime = "claude-code") to execute pipeline steps. Setting agent.runtime = "codex" spawns OpenAI's Codex CLI instead. See docs/codex-runtime-setup.md for authentication (browser login with keyring storage, device-auth and stdin API-key fallbacks, trusted-automation-only CODEX_API_KEY), sandbox configuration, and rollback.
Token Compression (Optional)
RTK compresses bash output and Headroom compresses broader context; both are optional. The RTK hook command must be "rtk hook claude", never bare rtk, which blocks tool calls (full entry: docs/token-compression.md, "RTK Token Compression (Optional)").
Knowledge System (4-Tier)
Tier 1: Project Rules (always loaded, no truncation)
CLAUDE.md: This file (Claude Code-specific)AGENTS.md: Cross-cutting conventions for all AI tools.claude/rules/*.md: Modular knowledge files:architecture.md: Project structure, key paths, design decisionsbash-patterns.md: Shell scripting conventions and gotchasworkflow.md: Development workflow, command maintenance, issue state
.claude/commands/*.md: Workflow commands (on-demand, loaded via/command)
Tier 2: Agent Memory (persists across tasks, gitignored, primary checkout only)
.claude/agent-memory/cookbook/README.md: domain index;cookbook/<domain>.md: one bullet per lesson, read only the domains a change touches.claude/agent-memory/common-mistakes.md: recurring mistakes with occurrence counts, checked by/reviewagainst every diff- Always write these in the primary checkout, never a worktree's copy (see
.claude/rules/workflow.md"Agent Memory Location")
Tier 3: Session Memory (auto-managed by Claude Code)
~/.claude/projects/.../memory/MEMORY.md: User preferences, project state (200-line limit)
Adding new knowledge
- Confirmed patterns: Add to
.claude/rules/*.md(Tier 1) - New findings (not yet confirmed): Add to
.claude/agent-memory/(Tier 2) - Session state / preferences: Auto-memory (Tier 3)
- Promote: Tier 2 → Tier 1 when confirmed in 2+ tasks
- On-demand reference: narrative and incident history go to
docs/*.md, leaving a short rule line with a full-entry pointer in Tier 1;tests/test_instruction_surface_budget.pycaps each Tier 1 file
Claude Code Behavioral Preferences
- Do NOT include "Generated with Claude Code" in PR descriptions
- Always run
shellcheckon changed bash scripts before creating commits - NEVER use emojis in any output
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

