Gormes

Upstream Coverage Ledger

Upstream Coverage Ledger

The feature map says what Hermes and Honcho behavior means in Go. This ledger answers the harder question: how do we know the map is complete?

Gormes does not claim completeness by vibes or by a long prose essay. A planner pass can claim a mapped upstream only when every feature-bearing upstream source class below has a feature-map anchor, a Go target, and either a concrete progress.json row or an explicit owned/excluded decision.

Completeness Standard

A Hermes or Honcho surface is mapped only when all five checks pass:

  1. Inventory: the upstream file, directory, endpoint group, SDK surface, or public document belongs to a row in this ledger.
  2. Feature-map anchor: the row links to a section in Hermes And Honcho Feature Map.
  3. Go target: the row names a Gormes package, command, doc surface, or an intentional Go-native replacement.
  4. Backlog reachability: incomplete behavior has a progress.json anchor; broad anchors stay non-builder-ready until split.
  5. Drift rule: new upstream feature-bearing files must update this ledger, the feature map, and progress.json in the same planner pass.

The status vocabulary is the same as the feature map: covered, planned, vague, missing, owned, and excluded. Excluded is allowed only for upstream repo hygiene, release notes, generated assets, or examples that do not change public runtime behavior.

Audit Commands

Use these commands during a full parity pass. They intentionally inventory source classes, not vendored caches or Git metadata:

find ../hermes-agent -type f \
  \( -name '*.py' -o -name '*.md' -o -name '*.json' -o -name '*.yaml' -o -name '*.yml' -o -name '*.toml' -o -name '*.lock' -o -name '*.nix' -o -name '*.sh' -o -name 'Dockerfile' -o -name 'docker-compose.yml' \) \
  ! -path '*/.git/*' ! -path '*/node_modules/*' ! -path '*/__pycache__/*' \
  | sed 's#^../hermes-agent/##' | awk -F/ '{print $1}' | sort | uniq -c

find ../honcho -type f \
  \( -name '*.py' -o -name '*.md' -o -name '*.mdx' -o -name '*.ts' -o -name '*.tsx' -o -name '*.json' -o -name '*.yaml' -o -name '*.yml' -o -name '*.toml' -o -name '*.lock' -o -name '*.ini' -o -name '*.sh' -o -name 'Dockerfile' \) \
  ! -path '*/.git/*' ! -path '*/node_modules/*' ! -path '*/__pycache__/*' \
  | sed 's#^../honcho/##' | awk -F/ '{print $1}' | sort | uniq -c

If either command shows a new feature-bearing class that is not represented below, the map is no longer complete.

Executable Check

go test ./docs -run TestUpstreamCoverageLedgerMatchesSourceClasses -count=1 compares this ledger against the local sibling ../hermes-agent and ../honcho checkouts when they are present. The test fails when a feature-like top-level source class is neither represented in this ledger nor explicitly classified as repo hygiene. It skips a missing sibling checkout so normal docs CI does not require cloning upstream repos.

This is necessary but not sufficient for feature parity. Use Hermes/Honcho To Gormes Go Runtime Plan for the reconciled subsystem classification and Go implementation order. Use Swarm Feature Parity Audit for nested feature-level gaps found inside broad source classes such as agent/**, tools/**, gateway/**, src/**, sdks/**, mcp/**, and tests/**. Use TestNestedUpstreamFeatureCoverage to make representative nested paths executable when sibling upstream checkouts are present.

Hermes Source Coverage

Upstream source classFeature-map anchorGo targetProgress anchorCoverage
run_agent.py, environments/agent_loop.py, hermes_state.py, trajectory_compressor.pyAgent Runtimeinternal/kernel, internal/hermes, internal/transcript, internal/e2ePhase 4.I, 4.B, 4.Eplanned
agent/*.py, agent/transports/*Providers, Models, Credentials; Prompt, Context, Compressioninternal/hermes, internal/kernel, internal/config, internal/telemetryPhase 4.A-4.Hplanned
agent/account_usage.py:render_account_usage_lines, agent/account_usage.py:fetch_account_usage, cli.py /usage, gateway/run.py:_handle_usage_command, tests/test_account_usage.py, tests/gateway/test_usage_command.pyProvider account-usage reporting and gateway usage commandinternal/hermes, internal/telemetry, internal/gateway, cmd/gormesPhase 4.H rows Provider account usage read model + renderer and Gateway /usage command binding over provider account usageplanned
root helpers: hermes_constants.py, hermes_logging.py, hermes_time.py, utils.pyRedaction, evidence filtering, config/time helpersinternal/config, internal/audit, internal/telemetry, internal/cliPhase 4.E, 5.Oplanned
tools/*.py, tools/environments/*, tools/browser_providers/*, tools/neutts_*Tools, Sandboxes, Securityinternal/tools, internal/cmdrunner, internal/plugins, internal/doctorPhase 2.A, 5.A-5.Nplanned
root tool/model helpers: model_tools.py, toolsets.py, toolset_distributions.py; model registry files agent/model_metadata.py, agent/models_dev.pyTool registry, toolsets, model metadatainternal/tools, internal/hermes, internal/doctorPhase 2.A, 4.D, 5.Aplanned
gateway/**/*.pyGateway, Channels, Cron, API, TUI, CLIinternal/gateway, internal/channels/*, internal/slack, internal/discordPhase 2.B-2.F, 7planned
cron/*.pyCron and scheduled jobsinternal/cron, internal/gateway, internal/toolsPhase 2.D, 5.Nplanned
cli.py, hermes, hermes_cli/**/*.py, exact plugin manager files hermes_cli/plugins.py, hermes_cli/plugins_cmd.py, and plugin command providers such as plugins/memory/__init__.py and plugins/disk-cleanup/__init__.pyCLI command tree, slash commands, dynamic plugin commands, config, secrets, auth/setup/profile/status, backup/import, logs, release/update commandscmd/gormes, internal/cli, internal/config, internal/doctor, internal/pluginsPhase 5.O row Hermes CLI command-tree parity manifest, Phase 5.O config/migration rows, Phase 5.Pplanned
cli-config.yaml.exampleCLI/config canonical schema example (51 KB; spec of record for hermes_cli/config.py)cmd/gormes, internal/cli, internal/config, docs/development-skillsPhase 5.Oplanned
hermes_cli/claw.py, optional-skills/migration/openclaw-migration/**, website/docs/guides/migrate-from-openclaw.mdOpenClaw migration command, mapping matrix, report/archive/cleanup behaviorcmd/gormes, internal/migrate/openclaw, internal/config, internal/skills, internal/memoryPhase 5.Oplanned
constraints-termux.txtPackaging hygiene (Termux/Android pip constraints used by setup-hermes.sh)installers, Makefile, www.gormes.aiPhase 5.Pexcluded as packaging hygiene
acp_adapter/auth.py:detect_provider, acp_adapter/entry.py:main, acp_adapter/{events,permissions,server,session,tools}.py, acp_registry/**ACP adapterinternal/plugins, internal/apiserver, future internal/acpPhase 5.H row ACP server sideplanned
mcp_serve.py, MCP config helpersMCP tools and managed gatewayinternal/plugins, internal/tools, internal/apiserverPhase 5.Gplanned
plugins/**Plugins, memory plugins, specialized modesinternal/plugins, internal/tools, internal/goncho, internal/gonchotoolsPhase 3.G, 5.Iplanned
skills/**, optional-skills/**Skill manager, slash skills, learning loopinternal/skills, docs/development-skills, cmd/gormesPhase 5.F, 6planned
tui_gateway/**, ui-tui/**, web/**, website/**TUI, API, public web surfacesinternal/tui, internal/tuigateway, internal/apiserver, www.gormes.aiPhase 5.Q, 5.Pplanned
batch_runner.py, mini_swe_runner.py, rl_cli.py, datagen-config-examples/**Batch, mini-SWE, RL, datagenfuture research packages, internal/subagent, internal/toolsPhase 5.M/5.Oplanned
tinker-atropos/**RL tinker submodule placeholder (currently empty; reserves slot for atropos environment integration)future research packages, internal/subagentPhase 5.Mowned (excluded until populated)
Dockerfile, docker/entrypoint.sh, docker-compose.yml, packaging/homebrew/hermes-agent.rb, packaging/**, nix/**, flake.*, setup-hermes.sh, package.json, package-lock.json, pyproject.toml, uv.lock, scripts/release.py, scripts/**Packaging and releaseinstallers, service units, OCI image, Homebrew formula, Makefile, cmd/gormesPhase 5.P rows OCI image and Homebrewplanned
environments/hermes_base_env.py, environments/agentic_opd_env.py, environments/web_research_env.py, environments/tool_call_parsers/{hermes_parser,deepseek_v3_1_parser}.py plus remaining parser filesRoot eval/research environments and raw tool-call parser fixtures distinct from tools/environments/** sandboxesinternal/tools, internal/cmdrunner, internal/hermes parser fixturesPhase 5.B row Environment interface + file sync contract; Phase 5.M row Raw tool-call parser fixture matrixplanned
tests/**, .plans/**, plans/**, release notes, AGENTS.md, README/SECURITY/CONTRIBUTING, hermes-already-has-routines.mdFixture and documentation donorsdocs, fixtures, progress source refsRows that cite the fixturecovered as evidence

Honcho Source Coverage

Upstream source classFeature-map anchorGo targetProgress anchorCoverage
src/models.py:MessageEmbedding,Collection,Document,QueueItem,ActiveQueueSession,WebhookEndpoint,SessionPeer, src/schemas/**, migrations/**Workspaces, peers, sessions, messages, conclusions, queues, webhooks, embeddingsinternal/goncho, internal/store, internal/configPhase 3.F/3.G rows including Goncho CRUD lifecycle invariantsplanned
src/routers/{workspaces,peers,sessions,messages,conclusions,keys,webhooks}.pyHoncho concepts and APIsinternal/goncho, internal/gonchotools, internal/apiserverPhase 3.G row OpenAPI v3 route manifest, Phase 5.Qplanned
src/crud/{workspace,peer,message,document,webhook,peer_card,deriver,session,representation}.py, src/crud/collection.py:collection_cache_key,get_collection,get_or_create_collection,update_collection_internal_metadataStorage semantics, collection cache keys, peer cards, messages, documents, webhooks, conclusionsinternal/goncho, internal/memory, internal/sessionPhase 3.F/3.G rows including Goncho CRUD lifecycle invariantsplanned
src/dialectic/chat.py, src/dialectic/core.py, src/dialectic/prompts.pyDialectic chatinternal/goncho, internal/kernelPhase 3.F/3.Gplanned
src/deriver/**, src/dreamer/dream_scheduler.py, src/dreamer/orchestrator.py, src/dreamer/specialists.py, src/dreamer/surprisal.py, src/dreamer/trees/{base,covertree,graph,lsh,prototype,rptree,sklearn_wrapper}.py, src/reconciler/**, src/llm/**Conclusions, dreaming, surprisal/tree algorithms, queue statusinternal/goncho, internal/memory, internal/cron, internal/doctorPhase 3.F, 6planned
src/utils/**, src/cache/**Filters, search, summaries, representation, filesinternal/goncho, internal/memory, internal/hermesPhase 3.F, 4.Cplanned
src/vector_store/**Vector stores and reconcilerinternal/memory, internal/storePhase 3.D/3.Gowned
src/telemetry/reasoning_traces.py, src/telemetry/metrics_collector.py, src/telemetry/sentry.py, src/telemetry/events/deletion.py, src/telemetry/events/**, src/webhooks/events.py, src/webhooks/webhook_delivery.pyTelemetry, reasoning traces, hosted metrics/Sentry divergence, deletion events, webhooksinternal/telemetry, internal/audit, internal/goncho, internal/apiserver, internal/gatewayPhase 3.G row Goncho webhook delivery retry worker contract, Phase 4.E row Self-monitoring telemetry, Phase 5.Qplanned
docs/v1/**, docs/v2/**, docs/v3/**Honcho public API and guide contractsGoncho compatibility docs and fixturesPhase 3.Gplanned
sdks/python/src/honcho/{client,aio,api_types,mixins}.py, sdks/typescript/src/client.ts, sdks/typescript/src/validation.ts, sdks/typescript/src/http/streaming.ts, sdks/typescript/**, mcp/**SDKs and MCPinternal/goncho, future local compatibility adapterPhase 3.G row Goncho Honcho SDK compatibility e2e harnessplanned
honcho-cli/src/honcho_cli/{main,config,output,validation,_help,branding}.py, honcho-cli/src/honcho_cli/commands/{workspace,peer,session,message,conclusion,config_cmd,setup}.py, .env.template, config.toml.example, alembic.iniCLI/self-hosting docscmd/gormes, internal/config, internal/doctorPhase 3.G row Goncho CLI command-tree parity, Phase 5.Oplanned
database/init.sqlHosted Postgres bootstrap (CREATE EXTENSION IF NOT EXISTS vector;)cmd/gormes, internal/config, internal/doctor, release docsPhase 3.G, 5.Powned (hosted-only divergence; replacement is local SQLite goncho store)
Dockerfile, docker-compose.yml.example, docker/entrypoint.sh, docker/prometheus.yml, docker/grafana-datasource.yml, docker/**, fly.toml, pyproject.toml, uv.lock, scripts/**Self-hosting, deploy, observability adjuncts, and maintenance toolingcmd/gormes, internal/doctor, installer/release docsPhase 3.G, 5.Powned/planned divergence
examples/**, tests/**, CHANGELOG.md, README/CLAUDE/CONTRIBUTINGCompatibility fixture and documentation donorsGoncho testdata and progress refsPhase 3.G, 6covered as evidence
.claude/skills/**Development workflow donordocs/development-skills when usefulPhase 1.D/6owned

What Counts As Unmapped

An upstream feature is unmapped when any of these are true:

  • its source class is absent from this ledger;
  • its ledger row points to no feature-map section;
  • the feature map names no Go target or intentional divergence;
  • incomplete behavior has no progress.json row;
  • a row exists but has no source_refs, write_scope, test_commands or no_test_required, acceptance, and done signal.

When that happens, the correct action is a gormes-parity-auditor pass followed by a gormes-planner pass. Do not hand the behavior to gormes-builder until the map and row are builder-ready.