/EXPLAIN-TO-ME · ADR SHAPE · BEFORE / AFTER

Lambda Fleet Repository Consolidation: from scattered runtime brain to two clean repos

PR #4 correctedfleet-hooks promotedMotoko review gate remainsNo explain-to-me source copied
00

Short answer

Hermes core stays upstream. Lambda overlay code goes to fleet-lambda. Runtime snapshots go to hermes-fleet-backup. Live ~/.hermes/profiles/* remains deploy target, not source. getwololo stops being canonical for this fleet overlay after cutover.

2
Decision

Exactly two Lambda/Hermes fleet repos

Code repo: stevengonsalvez/fleet-lambda for all non-standard Hermes core additions: hooks, plugins, instructions, templates, specs, collectors, runbooks. Backup repo: stevengonsalvez/hermes-fleet-backup for live runtime/profile snapshots only.

01

Before: scattered ownership map

Hermes core

Runtime engine

  • ~/d/git/hermes-agent
  • Remote: NousResearch/hermes-agent
  • Owns gateways, profiles runtime, plugin loader, hooks runner, tools, skills, memory, sessions.
  • Canonical for engine only. Not fleet rules.
Fleet overlay intended

fleet-lambda

  • ~/d/git/fleet-lambda
  • Remote: stevengonsalvez/fleet-lambda
  • AGENTS.md says code/spec/docs/tests live here.
  • Before PR #4, no fleet-hooks / gateway-hooks source found here.
Public bootstrap

getwololo

  • ~/d/git/getwololo
  • Held standing orders, profile templates, fleet-hooks, gateway-hooks, cron templates, docs.
  • Best public source before consolidation.
  • After cutover: legacy/bootstrap source to retire for Lambda overlay.
Runtime backup

hermes-fleet-backup

  • ~/d/git/hermes-fleet-backup
  • Backs up profile config, hooks, plugins, scripts, cron state.
  • Contained source-like plugin extras.
  • Should not be authoring source.
Private config

getwololo-config-stevie

  • Expected private live values repo.
  • Not found in ~/d/git probe.
  • If used later: secrets/private overlays only.
Live bodies

~/.hermes/profiles/*

  • Freeman, Motoko, Tank profile dirs.
  • Hold config, env, plugins, hooks, scripts, cron jobs, memories, logs.
  • Deploy target and runtime state. Not source.
02

After: two-repo boundary

Repository 1 — source/code

~/d/git/fleet-lambda / stevengonsalvez/fleet-lambda

  • core/governance/base/ — shared standing orders and governance source.
  • harnesses/hermes/plugins/fleet-hooks/ — canonical fleet-hooks plugin source.
  • harnesses/hermes/gateway-hooks/ — canonical gateway hook source.
  • harnesses/hermes/cron/ — cron templates, not live job state.
  • harnesses/hermes/collectors/ — collector source.
  • profiles/_base/ and profiles/examples/ — redacted profile templates.
  • specs/fleet-hooks/ — schemas and test vectors promoted out of backup.
  • docs/runbooks/ and docs/migration/ — operational docs.

Repository 2 — backup only

~/d/git/hermes-fleet-backup / stevengonsalvez/hermes-fleet-backup

  • profiles/*/config.yaml, SOUL.md, STANDING_ORDERS.md, HEARTBEAT.md, agent-config.yaml.
  • plugins/, hooks/, scripts/ as runtime restore snapshots.
  • backup.sh and restore.sh.
  • No source-first edits here.
  • If backup has newer code, diff and promote to fleet-lambda, then regenerate backup.
03

Complete source migration list

Before surfaceAfter canonical surfaceStatusRule
getwololo/core/governance/base/fleet-lambda/core/governance/base/Imported in PR #4Shared rules source
getwololo/profiles/fleet-lambda/profiles/_base/, profiles/examples/Imported in PR #4Redacted templates only
getwololo/harnesses/hermes/plugins/fleet-hooks/ + backup plugin extrasfleet-lambda/harnesses/hermes/plugins/fleet-hooks/Corrected commit 3a8e2b5Canonical plugin source
getwololo/harnesses/hermes/gateway-hooks/fleet-lambda/harnesses/hermes/gateway-hooks/Imported in PR #4Canonical event hook source
getwololo/harnesses/hermes/cron/jobs.template.jsonfleet-lambda/harnesses/hermes/cron/jobs.template.jsonImported in PR #4Template, not live jobs
getwololo/harnesses/hermes/collectors/fleet-lambda/harnesses/hermes/collectors/Imported in PR #4Collector source
getwololo/harnesses/hermes/bin/fleet-lambda/harnesses/hermes/bin/Imported in PR #4Deploy/helper scripts
hermes-fleet-backup/plugins/fleet-hooks-spec/fleet-lambda/specs/fleet-hooks/Promoted in PR #4Schema/tests are source, not backup
~/.hermes/profiles/*hermes-fleet-backup/profiles/*Backup onlyLive runtime state
~/.hermes/profiles/*/.env, tokens, logs, sessions, DBsNowhere in source repoExcludedSecrets and mutable ledgers stay out
~/.claude/skills/explain-to-meNowhere in fleet-lambdaRemoved in 520e009Tool used to explain, not fleet source
04

fleet-hooks: exact current inventory

SurfacePathFilesMeaning
PR #4 canonical sourcefleet-lambda/harnesses/hermes/plugins/fleet-hooks/16 incl. .gitkeep, injection_history.py, spec_validator.pySource of truth after merge
Old public sourcegetwololo/harnesses/hermes/plugins/fleet-hooks/14; missing injection_history.py, spec_validator.pyLegacy/bootstrap copy
Runtime backuphermes-fleet-backup/plugins/fleet-hooks/15; has injection_history.py, spec_validator.py, no .gitkeepSnapshot/restore only
Spec backuphermes-fleet-backup/plugins/fleet-hooks-spec/7 top-level files plus schemas/vectorsPromoted to fleet-lambda/specs/fleet-hooks/
Freeman live~/.hermes/profiles/freeman/plugins/fleet-hooks/14; includes injection_history.py, no spec_validator.pyLive deploy target
Motoko live~/.hermes/profiles/motoko/plugins/fleet-hooks/14; includes injection_history.py, no spec_validator.pyLive deploy target
Tank live~/.hermes/profiles/tank/plugins/fleet-hooks/Missing directoryConfig references plugin, but no local plugin files found
Canonical file list after correction
  • .gitkeep
  • __init__.py
  • acp_metrics.py
  • bank_lookup.py
  • circuit_breaker.py
  • correction_detector.py
  • discovery_context.py
  • inbox_enforcer.py
  • injection_history.py
  • learning_sync.py
  • learning_verifier.py
  • manifest_context.py
  • plugin.yaml
  • session_rules.py
  • signals.json
  • spec_validator.py
05

System diagram

getwololoold hooks/plugins/templateshermes-fleet-backupbackup + source-like extras~/.hermes/profiles/*live body / mutable statefleet-lambdacanonical overlay sourcehooks · plugins · specs · docsgovernance · templates · collectorslive profilesdeploy targethermes-fleet-backuprestore snapshot onlyhermes-agent stays upstreamengine, not fleet overlay
Solid arrows = source promotion / deploy. Dashed arrows = backup snapshots. The crowbar works better when we know which end is handle.
06

Verification and PR state

CheckResult
PRfleet-lambda PR #4, open, mergeable/clean before latest push.
Latest correction commit3a8e2b5 fix: promote full fleet-hooks source inventory
Explain-to-me source in PRNone. Removed in 520e009.
Python specSUMMARY: 59/59 cases green
Node specSUMMARY: 59/59 cases green
Python compilepy_compile passed for plugin, hooks, collectors.
Security gateStill requires Motoko runtime/security review because imported hooks/plugins touch token-loading and X-MC-Token auth paths.
07

Final operating rule

Do not do this

  • Edit live profile plugin files first.
  • Treat backup repo as source because it contains Python.
  • Keep getwololo as hidden third source of truth.
  • Copy unrelated skills like /explain-to-me into fleet-lambda.

Do this

  • Edit fleet-lambda first.
  • Test from source.
  • Deploy/sync into ~/.hermes/profiles/<agent>.
  • Restart affected profile gateways.
  • Regenerate hermes-fleet-backup snapshot.
  • If backup reveals newer source, promote it back to fleet-lambda.