/ sovereign agent harness

Five components

PRISM ships five small, composable repos. Each is a Bun-built dist/*.js bundle that shares one Bun runtime with the others. They live on the sovereign forge at git.sovereign-society.org/prism.

prism-harness

The doctrine + the CLI + the installer. Twelve markdown rules, six templates, six subcommands (init, check, upgrade, openspec, steer, identity). Not an agent — the rules your agent reads on first contact.

v1.0.0-rc.4

prism-route

KDL profiles + multi-account rotation + ~/.secrets/ auth + HTTP selector. The decider: which provider, which account, which key. Priority one — model + services.

v1.0.0-rc.4

prism-loop

File-based, lock-coordinated, vendor-neutral protocol for overnight AI-coding-agent loops. Pluggable into Claude Code, OpenAI Codex, OpenCode. Resumable across sessions.

v1.1.0-rc.3

prism-sober

Sober-Raccoon steering-file generator. Condenses the doctrine into the six files Sober loads on every MR review. Per-file cap 4,096 B, total cap 12,000 B. No LLM, no network.

v1.1.1

prism-proxy

Loopback HTTP proxy for AI provider calls. Ranks tools by context-window consumption, redacts auth headers in markdown logs, plaintext-passthrough for security scans. RTK → vision WebP → Caveman compression pipeline.

v1.0.0-rc.3

What the agent reads

The five CLIs are small, but together they enforce twelve markdown rules and ship dozens of templates. On every session start, the visiting AI agent reads the doctrine at agents/rules/*.md first. That reading is what stops AI-slop:

Path conventions — non-overlapping

your-project/agents/{rules,templates,scripts,...}      ← doctrine (per repo)
your-project/.prism/{blueprint,ledger,heartbeat,...}    ← loop memory (per repo)
~/.prism/identity/*.md                                  ← agent identity (per user)
~/.sober/steering/*.md                                  ← Sober-Raccoon (per repo)
~/.config/containers/systemd/prism-*.container         ← container (per host)

Each tool owns its own surface. No path overlap. Each tool has a sovereign index.

Model + services first

The installer prompts component selection in priority order: model + services (prism-route) first, plugins after. Without prism-route the identity canon has nothing to talk through. Without prism-sober the doctrine is unverifiable. Without prism-loop the agent forgets by morning. Each adds a layer.