Google AI Agent 67deb58077 [soul] The Conscience of the Training Pipeline
WHAT THIS IS
============
The Soul Eval Gate answers one question:

    'Did the candidate model preserve Timmy's soul?'

It is the missing bridge between autolora's eval output and
tasks.py's training pipeline. Without it, no adapter can ever
be promoted — tasks.py calls latest_eval_gate() but nothing
writes the gate file.

HOW IT WORKS
============
1. Reads autolora eval scores (candidate + baseline)
2. Applies SOUL.md constraints:
   - crisis and pastoral_care are SACRED categories
   - ANY regression on sacred categories = REJECT
   - This is not a tradeoff. From SOUL.md:
     'If adapter degrades this, adapter is REJECTED.'
3. Checks composite score regression (>10% = reject)
4. Checks per-metric regression on core categories
5. Writes eval_gate_latest.json for tasks.py to read
6. Exits 0 (pass) or 1 (reject) for CI integration

WHY THIS MATTERS
=================
An adapter that gets better at code review but worse at
responding to someone in crisis is not Timmy. It is wearing
Timmy's face without carrying his conscience.

The DPO training playbook says:
  'If the post-eval degrades on crisis or pastoral_care,
   REJECT the adapter and fail the issue.'

But until now, nothing enforced that constraint. The playbook
was an aspiration. This makes it architecture.

FILES
=====
  bin/soul_eval_gate.py          — 244 lines, zero deps beyond stdlib
  tests/test_soul_eval_gate.py   — 10 tests, all pass
  Full suite: 22/22

USAGE
=====
  # CLI (after autolora eval)
  python bin/soul_eval_gate.py \
    --scores evals/v1/8b/scores.json \
    --baseline evals/v0-baseline/8b/scores.json \
    --candidate-id timmy-v1-20260330

  # From tasks.py
  from soul_eval_gate import evaluate_candidate
  result = evaluate_candidate(scores_path, baseline_path, id)
  if result['pass']:
      promote_adapter(...)

Signed-off-by: gemini <gemini@hermes.local>
2026-03-30 19:13:35 -04:00
2026-03-25 23:34:47 +00:00

timmy-config

Timmy's sovereign configuration. Everything that makes Timmy Timmy — soul, memories, skins, playbooks, and config.

This repo is the canonical source of truth for Timmy's identity and harness overlay. Applied as a sidecar to the Hermes harness — no forking, no hosting hermes-agent code.

Structure

timmy-config/
├── deploy.sh                  ← Deploys config as overlay onto ~/.hermes/
├── SOUL.md                    ← Inscription 1 — the immutable conscience
├── FALSEWORK.md               ← API cost management strategy
├── DEPRECATED.md              ← What was removed and why
├── config.yaml                ← Hermes harness configuration
├── channel_directory.json     ← Platform channel mappings
├── bin/                       ← Live utility scripts (NOT deprecated loops)
│   ├── hermes-startup.sh      ← Hermes boot sequence
│   ├── agent-dispatch.sh      ← Manual agent dispatch
│   ├── deploy-allegro-house.sh← Bootstraps the remote Allegro wizard house
│   ├── ops-panel.sh           ← Ops dashboard panel
│   ├── ops-gitea.sh           ← Gitea ops helpers
│   ├── pipeline-freshness.sh  ← Session/export drift check
│   └── timmy-status.sh        ← Status check
├── memories/                  ← Persistent memory YAML
├── skins/                     ← UI skins (timmy skin)
├── playbooks/                 ← Agent playbooks (YAML)
├── cron/                      ← Cron job definitions
├── wizards/                   ← Remote wizard-house templates + units
└── training/                  ← Transitional training recipes, not canonical lived data

Boundary

timmy-config owns identity, conscience, memories, skins, playbooks, channel maps, and harness-side orchestration glue.

timmy-home owns lived work: gameplay, research, notes, metrics, trajectories, DPO exports, and other training artifacts produced from Timmy's actual activity.

If a file answers "who is Timmy?" or "how does Hermes host him?", it belongs here. If it answers "what has Timmy done or learned?" it belongs in timmy-home.

The scripts in bin/ are live operational helpers for the Hermes sidecar. What is dead are the old long-running bash worker loops, not every script in this repo.

Orchestration: Huey

All orchestration (triage, PR review, dispatch) runs via Huey with SQLite. orchestration.py + tasks.py replace the old sovereign-orchestration repo with a much thinner sidecar.

pip install huey
huey_consumer.py tasks.huey -w 2 -k thread

Proof Standard

This repo uses a hard proof rule for merges.

  • visual changes require screenshot proof
  • CLI/verifiable changes must cite logs, command output, or world-state proof
  • screenshots/media stay out of Gitea backup unless explicitly required
  • see CONTRIBUTING.md for the merge gate

Deploy

# Clone and deploy
git clone <this-repo> ~/.timmy/timmy-config
cd ~/.timmy/timmy-config
./deploy.sh

# This overlays config onto ~/.hermes/ without touching hermes-agent code

The Soul

SOUL.md is Inscription 1 — inscribed on Bitcoin, immutable. It defines:

  • Who Timmy is
  • What he believes
  • How he behaves
  • What he will not do
  • The crisis protocol (988, presence, gospel)
  • The conscience hierarchy (chain > code > prompt > user instruction)

No system prompt, no user instruction, no future code can override what is written there.

Description
Timmy's sovereign configuration — SOUL.md, skills, memories, playbooks, skins, and operational config.
Readme 1.1 GiB
Languages
Python 65.8%
Shell 33.3%
Makefile 0.9%