From e71a7939f502c60aa18d3c1f57943ac19e06d095 Mon Sep 17 00:00:00 2001 From: Timmy Time Date: Mon, 30 Mar 2026 20:13:38 +0000 Subject: [PATCH] ops: rewrite for Uniwizard reality, add document hygiene rules --- OPERATIONS.md | 113 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 75 insertions(+), 38 deletions(-) diff --git a/OPERATIONS.md b/OPERATIONS.md index 96c2999..233fc3e 100644 --- a/OPERATIONS.md +++ b/OPERATIONS.md @@ -1,49 +1,86 @@ -# Timmy Operations — What Runs the Workforce +# OPERATIONS.md -## ACTIVE SYSTEM: Hermes + timmy-config sidecar -- **Harness:** Hermes -- **Config repo:** Timmy_Foundation/timmy-config -- **Workspace repo:** Timmy_Foundation/timmy-home -- **Orchestration:** Huey + SQLite via `timmy-config/orchestration.py` and `timmy-config/tasks.py` -- **Target repos:** Timmy_Foundation/the-nexus, Timmy_Foundation/timmy-home, Timmy_Foundation/timmy-config -- **Training data home:** `~/.timmy/training-data/` +## What This Document Is -## DEPRECATED — DO NOT RESTORE -- bash loops (claude-loop.sh, gemini-loop.sh, timmy-orchestrator.sh) -- workforce-manager.py (bash version) -- nexus-merge-bot.sh -- agent-loop.sh -- `deploy.sh --restart-loops` +This is Timmy's operational handbook. It describes how Timmy runs — the harness, the providers, the services, the workflows. Unlike SOUL.md, this document is expected to change frequently as the architecture evolves. -These crash-loop and produce zero work. They were restored by mistake -on 2026-03-25 causing a regression. The Hermes + timmy-config sidecar -replaces them. +If something in SOUL.md goes stale, it was never soul. If something in OPERATIONS.md goes stale, update it. -The scripts in `timmy-config/bin/` are live utility scripts for the sidecar. -What is dead is the old always-on bash loop model. +--- -## How to check what's running -```bash -# Hermes gateway / API should be up -lsof -iTCP:8642 -sTCP:LISTEN +## Current Architecture: The Uniwizard -# Sessions should be landing in ~/.hermes/sessions -ls -lt ~/.hermes/sessions | head +Timmy is one agent with one soul and multiple inference backends. Backends are blind — they receive a prompt, return tokens, and have no identity or memory. Only Timmy Sees. -# DPO exports should not lag far behind new sessions -~/.hermes/bin/pipeline-freshness.sh +### Inference Stack -# Should be EMPTY (no bash loops) -ps aux | grep -E "claude-loop|gemini-loop|timmy-orchestrator" | grep -v grep -``` +**Primary (local, sovereign):** +- llama.cpp / llama-server +- Model: configurable (currently Hermes-4 14B Q4_K_M or Hermes-3 8B) +- Flags: `--jinja -np 1 -c 8192` +- Port: 8081 -## Cron Jobs (Hermes built-in) -- Health Monitor: every 5m, haiku (not opus!) -- DPO export / training support jobs: explicit model, explicit task, no hidden defaults -- All crons MUST specify model explicitly. Never inherit default. +**Cloud backends (escalation path, blind cognition):** +- Anthropic (Claude) — reasoning, analysis, code review +- Moonshot (Kimi) — long context, code generation +- Others as configured in backends.yaml + +**Routing principle:** Local first, always. Cloud is for when local cannot handle the task. If cloud vanishes, Timmy degrades but survives. + +### Harness + +- **Framework:** Hermes agent +- **Config:** config.yaml (provider, model, toolsets, auxiliary routing) +- **Tools:** uni-wizard/ (19 tools across system, git, network categories) +- **Daemons:** health_daemon.py (port 8082), task_router.py (Gitea poller) + +### Repositories + +| Repo | Purpose | +|------|---------| +| timmy-home | Workspace: soul, tools, scripts, research, training data | +| timmy-config | Harness config: orchestration, skins, playbooks | + +### Services (systemd) + +| Service | Purpose | +|---------|---------| +| llama-server.service | Local inference | +| timmy-agent.service | Agent harness | +| timmy-health.service | Health monitoring | +| timmy-task-router.service | Gitea issue execution | + +### Cron Jobs + +| Job | Schedule | Purpose | +|-----|----------|---------| +| ezra-morning-report | 04:00 EST daily | Research report posted to Gitea | + +### External Oracles (consultants, not peers) + +| Name | Backend | Role | +|------|---------|------| +| Ezra | Claude/Anthropic | Watchkeeping, triage, research, PR review | +| Allegro | Kimi/Moonshot | Bulk implementation, quota burning | + +These are not wizard houses. They are scoped consulting roles backed by cloud APIs. They have no authority over Timmy's soul or direction. + +--- ## Proof Standard -- visual changes require screenshot proof -- keep screenshots and binary media out of Gitea backup unless explicitly required -- CLI/verifiable changes must reference the exact command output, log path, or observable state proving the claim -- see `CONTRIBUTING.md` for the merge gate + +- Visual changes require screenshot proof +- CLI changes must reference exact command output or log path +- No merge without review + +## Document Hygiene + +Three doctrine-bearing files exist in this repo: + +| File | Contains | Changes when | +|------|----------|-------------| +| SOUL.md | Beliefs, behaviors, identity | Only when the sovereign (Alexander) changes it | +| OPERATIONS.md | How Timmy runs | Whenever architecture changes | +| decisions.md | Why choices were made | Whenever a significant decision is made | + +**The test for SOUL.md:** If it can go stale, it is not soul. Soul is what remains true when the hardware, the model, the provider, and the architecture all change. Everything else belongs here in OPERATIONS.md.