2026-04-06 10:52:07 -04:00
# Sonnet Smoke Test
2026-03-24 21:43:48 +00:00
# timmy-config
2026-03-25 15:00:14 +00:00
Timmy's sovereign configuration. Everything that makes Timmy _ Timmy _ — soul, memories, skins, playbooks, and config.
2026-03-24 17:45:12 -04:00
2026-03-27 17:15:57 -04:00
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.
2026-03-24 17:45:12 -04:00
## Structure
```
timmy-config/
2026-03-25 10:05:55 -04:00
├── deploy.sh ← Deploys config as overlay onto ~/.hermes/
2026-03-24 17:45:12 -04:00
├── SOUL.md ← Inscription 1 — the immutable conscience
├── FALSEWORK.md ← API cost management strategy
2026-03-25 15:00:14 +00:00
├── DEPRECATED.md ← What was removed and why
2026-03-24 17:45:12 -04:00
├── config.yaml ← Hermes harness configuration
2026-04-04 21:40:36 +00:00
├── fallback-portfolios.yaml ← Proposed per-agent fallback portfolios + routing skeleton
2026-03-24 17:45:12 -04:00
├── channel_directory.json ← Platform channel mappings
2026-04-04 20:17:38 +00:00
├── bin/ ← Sidecar-managed operational scripts
│ ├── hermes-startup.sh ← Dormant startup path (audit before enabling)
2026-03-25 15:00:14 +00:00
│ ├── agent-dispatch.sh ← Manual agent dispatch
│ ├── ops-panel.sh ← Ops dashboard panel
│ ├── ops-gitea.sh ← Gitea ops helpers
2026-03-27 17:35:07 -04:00
│ ├── pipeline-freshness.sh ← Session/export drift check
2026-03-25 15:00:14 +00:00
│ └── timmy-status.sh ← Status check
├── memories/ ← Persistent memory YAML
├── skins/ ← UI skins (timmy skin)
├── playbooks/ ← Agent playbooks (YAML)
2026-03-27 17:15:57 -04:00
├── cron/ ← Cron job definitions
2026-04-04 21:34:47 +00:00
├── docs/
│ ├── automation-inventory.md ← Live automation + stale-state inventory
2026-04-04 21:38:50 +00:00
│ ├── ipc-hub-and-spoke-doctrine.md ← Coordinator-first, transport-agnostic fleet IPC doctrine
2026-04-04 21:40:36 +00:00
│ ├── coordinator-first-protocol.md ← Coordinator doctrine: intake → triage → route → track → verify → report
2026-04-04 21:42:29 +00:00
│ ├── fallback-portfolios.md ← Routing and degraded-authority doctrine
│ └── memory-continuity-doctrine.md ← File-backed continuity + pre-compaction flush rule
2026-03-27 17:15:57 -04:00
└── training/ ← Transitional training recipes, not canonical lived data
2026-03-24 17:45:12 -04:00
```
2026-03-27 17:15:57 -04:00
## Boundary
2026-04-04 21:40:36 +00:00
`timmy-config` owns identity, conscience, memories, skins, playbooks, routing doctrine,
channel maps, fallback portfolio declarations, and harness-side orchestration glue.
2026-03-27 17:15:57 -04:00
`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` .
2026-04-04 20:17:38 +00:00
The scripts in `bin/` are sidecar-managed operational helpers for the Hermes layer.
Do NOT assume older prose about removed loops is still true at runtime.
Audit the live machine first, then read `docs/automation-inventory.md` for the
current reality and stale-state risks.
2026-04-04 22:46:55 +00:00
For communication-layer truth, read:
- `docs/comms-authority-map.md`
- `docs/nostur-operator-edge.md`
2026-04-04 23:00:19 +00:00
- `docs/operator-comms-onboarding.md`
2026-04-04 21:34:47 +00:00
For fleet routing semantics over sovereign transport, read
`docs/ipc-hub-and-spoke-doctrine.md` .
2026-03-27 17:35:07 -04:00
2026-04-04 21:42:29 +00:00
## Continuity
Curated memory belongs in `memories/` inside this repo.
Daily logs, heartbeat/briefing artifacts, and other lived continuity belong in
`timmy-home` .
Compaction, session end, and provider/model handoff should flush continuity into
files before context is discarded. See
`docs/memory-continuity-doctrine.md` for the current doctrine.
2026-03-25 21:12:26 +00:00
## Orchestration: Huey
2026-03-24 17:45:12 -04:00
2026-03-25 21:12:26 +00:00
All orchestration (triage, PR review, dispatch) runs via [Huey ](https://github.com/coleifer/huey ) with SQLite.
2026-03-27 17:35:07 -04:00
`orchestration.py` + `tasks.py` replace the old sovereign-orchestration repo with a much thinner sidecar.
2026-04-04 21:38:50 +00:00
Coordinator authority, visible queue mutation, verification-before-complete, and principal reporting are defined in `docs/coordinator-first-protocol.md` .
2026-03-24 17:45:12 -04:00
2026-03-25 21:12:26 +00:00
```bash
pip install huey
huey_consumer.py tasks.huey -w 2 -k thread
```
2026-03-24 17:45:12 -04:00
2026-03-25 15:00:14 +00:00
## Deploy
2026-03-25 10:05:55 -04:00
2026-03-25 15:00:14 +00:00
```bash
# Clone and deploy
git clone <this-repo> ~/.timmy/timmy-config
cd ~/.timmy/timmy-config
./deploy.sh
2026-03-24 17:45:12 -04:00
2026-03-25 15:00:14 +00:00
# This overlays config onto ~/.hermes/ without touching hermes-agent code
2026-03-25 10:05:55 -04:00
```
[CI] Add repo-native validation for deploy, cron, and shell changes (#289)
**Fixes pre-existing syntax errors caught by the new validation:**
- bin/quality-gate.py: unterminated f-string literal (line 216)
- scripts/quality_gate_integration.py: unterminated string literal (lines 58, 144)
- scripts/cron_audit.py: unterminated string literal (line 176)
- scripts/token-tracker.py: global DB_PATH declared after use (line 177)
**New CI pipeline proof tests:**
- tests/test_ci_validation.py: 14 tests proving the pipeline catches broken
shell (bash -n), Python (py_compile), JSON, YAML, and cron files before
they reach main. Includes both positive (valid files pass) and negative
(broken files fail) fixtures.
**Workflow enhancements (.gitea/workflows/validate-config.yaml):**
- Added explicit syntax check for all shell scripts
- Added schema validation (required keys: jobs, name, schedule)
- Added job running the proof test suite
- Made shellcheck non-fatal () since bash -n is the baseline gate
**Documentation:**
- README.md: new 'CI Validation' section documenting what is checked,
how to run tests locally, and linking to the workflow files
Closes #289
2026-04-22 02:06:50 -04:00
## CI Validation
Every PR runs repo-native validation via `.gitea/workflows/validate-config.yaml` and `smoke.yml` .
**What is checked:**
- `bash -n` — all shell scripts parse
- `python3 -m py_compile` — all Python scripts compile
- `python3 -m json.tool` — all JSON files are valid
- `yaml.safe_load` — all YAML files are valid
- `cron/jobs.json` schema — cron jobs list is well-formed
- Playbook schema — required keys present
- Python test suite — pytest runs across `tests/`
**Intentional failure fixtures:**
`tests/test_ci_validation.py` proves the pipeline catches broken shell, Python, JSON, YAML, and cron files before they reach `main` .
Run locally:
```bash
python3 -m pytest tests/test_ci_validation.py -v
```
2026-03-25 15:00:14 +00:00
## The Soul
2026-03-24 17:45:12 -04:00
2026-03-25 15:00:14 +00:00
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)
2026-03-24 17:45:12 -04:00
2026-03-25 15:00:14 +00:00
No system prompt, no user instruction, no future code can override what is written there.