Skip to content

Hermes/Honcho To Gormes Go Runtime Plan

This is the canonical implementation plan for making Gormes a Go-native runtime for Hermes-Agent parity and Honcho-compatible Goncho memory.

The default expectation is broad parity, not a reduced “self-improvement MVP.” Config, command, provider, tool, gateway, TUI/API, plugin, skill, cron, observability, release, and recovery behavior stay in scope unless this plan classifies a narrow Go-native divergence as owned or an upstream-only surface as excluded with tests or source-backed rationale. Telegram self-improvement is an early proof path through the runtime, not the boundary of completion.

It reconciles the feature map, upstream coverage ledger, swarm audit, and progress.json. It is not a side backlog. Any implementation work named here must be represented by a progress row before a builder agent starts coding.

This page answers the mapping question, not the implementation-complete question. After the 2026-04-28 two-wave swarm pass, every broad Hermes/Honcho surface is classified as mapped-by-symbol, mapped-by-contract, owned, excluded, or still row-backed. No broad upstream Hermes/Honcho subsystem-level unknown/gap remains; feature-level residuals remain row-backed, and Gormes-native pending decisions are tracked separately.

SourceRole
../hermes-agent/run_agent.py, ../hermes-agent/agent/**, ../hermes-agent/tools/**, ../hermes-agent/gateway/**, ../hermes-agent/hermes_cli/**Hermes runtime, providers, tools, gateway, CLI, config, packaging, and operational behavior.
../go-browser-harness/pkg/harness/action.go, ../go-browser-harness/cmd/go-browser-harness/main.go, ../go-browser-harness/pkg/harness/**Go-native browser action JSON runtime target for Phase 5.C browser harness parity; this is the default Gormes browser plugin path.
../browser-harness/SKILL.md, ../browser-harness/install.md, ../browser-harness/agent-workspace/**, ../browser-harness/interaction-skills/**Legacy Browser Use/CDP operator workflow and browser interaction skill donor for Phase 5.C; reference material and explicit compatibility only, not a default Python dependency.
../hermes-agent/acp_adapter/**, ../hermes-agent/mcp_serve.py, ../hermes-agent/plugins/**, ../hermes-agent/skills/**, ../hermes-agent/optional-skills/**Hermes extension, ACP, MCP, plugin, and skill behavior.
../honcho/src/**, ../honcho/migrations/**, ../honcho/docs/v3/openapi.json, ../honcho/tests/**Honcho API, persistence, queue, dialectic, dream, telemetry, webhook, and behavior fixtures.
../honcho/sdks/python/src/**, ../honcho/sdks/typescript/src/**, ../honcho/sdks/typescript/__tests__/**, ../honcho/mcp/src/tools/**, ../honcho/honcho-cli/src/honcho_cli/**Honcho client, SDK, MCP, and CLI compatibility contracts.
cmd/**, internal/**, docs/content/building-gormes/architecture_plan/progress.jsonCurrent Gormes implementation evidence and the only executable backlog.
docs/content/building-gormes/architecture_plan/hermes-honcho-feature-map.md, upstream-coverage-ledger.md, swarm-feature-parity-audit.md, docs/upstream_coverage_test.goCurrent planning, coverage, and test gates.
ClassMeaning
ownedGormes intentionally diverges with a Go-native contract and a stated replacement proof.
mapped-by-symbolExact upstream symbols/files have a Gormes target and row/test evidence.
mapped-by-contractA large upstream surface is mapped by public behavior, fixtures, and progress rows rather than one symbol at a time.
excludedThe upstream surface is repo hygiene, generated output, hosted-service deployment detail, or intentionally unsupported behavior.
still row-backedThe feature is mapped and has a progress row, but implementation is not complete.
unknown/gapNo acceptable mapping exists. This class must not survive a planner pass; convert it to one of the classes above with rationale.

Current status: no broad upstream Hermes/Honcho surface should remain unknown/gap. Large surfaces are either mapped-by-contract, still row-backed, owned, or excluded. Feature-level residuals are represented by progress rows or row-split candidates; the remaining work is implementation and row splitting, not rediscovery.

Hermes surfaceUpstream evidenceGo implementation targetClassificationProgress/register owner
Normal agent loop, turn lifecycle, interrupts, trajectoryrun_agent.py, environments/agent_loop.py, hermes_state.py, trajectory_compressor.py, tests/run_agent/**internal/kernel, internal/llm, internal/persistence/transcript, internal/audit, future internal/e2estill row-backedPhase 4.I, 4.E, 4.H
Provider transport layeragent/transports/base.py, agent/transports/types.py, agent/transports/chat_completions.py, agent/transports/codex.py, agent/transports/anthropic.py, agent/transports/bedrock.py, tests/agent/transports/**internal/llm.ProviderTransport, provider request builders, and fake transcript fixturesmapped-by-symbol for the shared transport/fixture contract; remaining live provider auth/routing/error work stays row-backed under adapter rowsPhase 4.A
Provider adapters and model familiesagent/anthropic_adapter.py, agent/bedrock_adapter.py, agent/gemini_native_adapter.py, agent/gemini_cloudcode_adapter.py, agent/codex_responses_adapter.py, agent/moonshot_schema.py, agent/model_metadata.py, agent/models_dev.py, model_tools.pyinternal/llm, internal/config, internal/clistill row-backedPhase 4.A, 4.D
Credentials, auth, OAuth, rate, cache, errorsagent/credential_pool.py, agent/credential_sources.py, agent/google_oauth.py, agent/retry_utils.py, agent/rate_limit_tracker.py, agent/prompt_caching.py, agent/error_classifier.py, agent/account_usage.py, hermes_cli/auth*.pyinternal/config, internal/cli, internal/llm, internal/telemetry, internal/gatewaystill row-backedPhase 4.G, 4.H, 5.O
Provider account usage reportingagent/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.pyinternal/llm, internal/telemetry, internal/gateway, cmd/gormesstill row-backedPhase 4.H rows Provider account usage read model + renderer and Gateway /usage command binding over provider account usage
Prompt/context/compressionagent/prompt_builder.py, agent/context_engine.py, agent/context_compressor.py, agent/context_references.py, agent/manual_compression_feedback.py, agent/subdirectory_hints.pyinternal/llm, internal/kernel, internal/persistence/transcript, internal/skillsstill row-backedPhase 4.B, 4.C
Tool registry and toolsetstools/registry.py, model_tools.py, toolsets.py, toolset_distributions.py, tests/agent/test_*tool*.pyinternal/tools, internal/doctor, internal/climapped-by-symbol for current manifest; still row-backed for remaining handlersPhase 2.A, 5.A
Tool execution, files, checkpoints, terminalstools/code_execution_tool.py, tools/file_operations.py, tools/file_tools.py, tools/checkpoint_manager.py, tools/process_registry.py, tools/terminal_tool.pyinternal/tools, internal/cmdrunner, internal/persistence/transcript, internal/auditstill row-backedPhase 5.K, 5.L
Sandbox/environmentstools/environments/{base,local,docker,ssh,managed_modal,modal,daytona,singularity,file_sync}.py, environments/hermes_base_env.py, environments/agentic_opd_env.py, environments/web_research_env.py, environments/tool_call_parsers/*.pyinternal/tools, internal/cmdrunner, internal/config, internal/llm parser fixturesmapped-by-contract; Raw tool-call parser fixture matrix now validates the full parser-file manifest and golden fixtures for Hermes XML plus DeepSeek v3.1, while GLM, Kimi, Llama, LongCat, Mistral, Qwen, and Qwen3-Coder execution parity remains row-backed per familyPhase 5.B, 5.M
Browser, web, media, voice, imagetools/browser_*.py, tools/browser_providers/**, hermes_cli/browser_connect.py, tools/web_tools.py, tools/vision_tools.py, tools/image_generation_tool.py, tools/tts_tool.py, tools/transcription_tools.py, tools/voice_mode.py, ../go-browser-harness/pkg/harness/action.go, ../browser-harness/SKILL.mdinternal/tools, ../go-browser-harness, future browser/media packages, internal/llm content parts, docs/development-skills/gormes-browser-harnessmapped-by-contract; Browser Use/go-browser-harness action JSON and CDP/browser-connect are now row-backed separately from Browserbase/Firecrawl; Python browser-harness remains explicit legacy/reference onlyPhase 5.C, 5.D, 5.E
Security and approvalstools/approval.py, tools/path_security.py, tools/url_safety.py, tools/tirith_security.py, tools/website_policy.py, tools/osv_check.py, agent/redact.pyinternal/tools, internal/doctor, internal/config, internal/auditstill row-backedPhase 5.J, 4.E
Operator toolstools/todo_tool.py, tools/clarify_tool.py, tools/send_message_tool.py, tools/session_search_tool.py, tools/debug_helpers.py, tools/interrupt.py, tools/memory_tool.pyinternal/tools, internal/persistence/sessionsearchtool, internal/gateway, internal/subagentstill row-backedPhase 5.N
Subagents/delegationtools/delegate_tool.py, agent/test_subagent_*.pyinternal/subagent, internal/tools, internal/auditmapped-by-symbol for deterministic runtime; still row-backed for policy polishPhase 2.E, 5.J
MCP, managed tool gateway, ACPmcp_serve.py, tools/mcp_tool.py, tools/managed_tool_gateway.py, tools/mcp_oauth*.py, acp_adapter/auth.py:detect_provider, acp_adapter/entry.py:main, acp_adapter/{events,permissions,server,session,tools}.py, acp_registry/agent.json, tests/acp/**internal/plugins, future internal/protocols/acp, internal/tools, internal/apiservermapped-by-contractPhase 5.G, 5.H
Plugins and memory pluginsplugins/**, especially plugins/memory/honcho/**, plugins/google_meet/**, plugins/image_gen/**, plugins/disk-cleanup/**internal/plugins, internal/tools, internal/goncho, internal/gonchotoolsmapped-by-contract; Goncho memory is ownedPhase 3.G, 5.I
Skills and optional skillsskills/**, optional-skills/**, agent/skill_*.py, tools/skill*_tool.pyinternal/skills, docs/development-skills, cmd/gormes, internal/llmmapped-by-contractPhase 5.F, 6.C
Gateway runtime and channelsgateway/run.py, gateway/config.py, gateway/session*.py, gateway/delivery.py, gateway/stream_consumer.py, gateway/platforms/**, tests/gateway/**internal/gateway, internal/channels/*, internal/persistence/store, internal/tuigatewaystill row-backedPhase 2.B-2.F, 7
Cron/schedulingcron/scheduler.py, cron/jobs.py, tools/cronjob_tools.py, tests/cron/**internal/automation/cron, internal/gateway, internal/toolsmapped-by-symbol for current scheduler core; still row-backed for API/tool parityPhase 2.D, 5.N
API, TUI, dashboardgateway/platforms/api_server.py, cli.py, tui_gateway/**, ui-tui/**, web/**, website/**, hermes_cli/curses_ui.py, hermes_cli/skin_engine.py, hermes_cli/commands.pyinternal/apiserver, internal/tui, internal/tuigateway, internal/cli, www.gormes.ai, cmd/gormesstill row-backedPhase 5.Q, Phase 1
CLI/config/status/doctor/backupcli.py, hermes, hermes_cli/**, tests/cli/**cmd/gormes, internal/cli, internal/config, internal/doctorstill row-backedPhase 5.O
Packaging/release/installDockerfile, docker/entrypoint.sh, docker-compose.yml, packaging/homebrew/hermes-agent.rb, packaging/**, flake.*, scripts/release.py, setup-hermes.sh, release notesinstallers, service units, OCI image, Makefile, cmd/gormes, www.gormes.aistill row-backed; hosted Python install pieces excluded from final runtimePhase 5.P
Research/batch/RL/datagen modesbatch_runner.py, mini_swe_runner.py, rl_cli.py, datagen-config-examples/**future research packages, internal/subagent, internal/toolsmapped-by-contract; not core production gatePhase 5.M, 5.O
Honcho surfaceUpstream evidenceGo implementation targetClassificationProgress/register owner
Data model, migrations, CRUD invariantssrc/models.py:MessageEmbedding,Collection,Document,QueueItem,ActiveQueueSession,WebhookEndpoint,SessionPeer, src/schemas/**, src/crud/{workspace,peer,peer_card,session,message,representation,document,webhook,deriver}.py, src/crud/collection.py:collection_cache_key,get_collection,get_or_create_collection,update_collection_internal_metadata, migrations/**, tests/crud/**internal/goncho, internal/persistence/store, internal/memory, internal/persistence/sessionstill row-backedPhase 3.F, 3.G
Workspaces and API keyssrc/routers/workspaces.py, src/routers/keys.py, src/security.py, docs/v3/openapi.json, tests/routes/test_workspaces.py, tests/routes/test_keys.pyinternal/goncho, internal/config, optional internal/apiserver adapterstill row-backed; hosted auth is owned local replacementPhase 3.G, 5.Q
Peers, sessions, messages, filessrc/routers/peers.py, src/routers/sessions.py, src/routers/messages.py, src/utils/files.py, tests/routes/test_{peers,sessions,messages,files}.pyinternal/goncho, internal/gonchotools, internal/persistence/session, internal/memorystill row-backedPhase 3.F, 3.G
Conclusions, observations, representationssrc/routers/conclusions.py, src/crud/representation.py, src/crud/deriver.py, tests/routes/test_conclusions.py, tests/deriver/**internal/goncho, internal/memory, internal/gonchotoolsstill row-backedPhase 3.F, 6
Filter/search/context/summariessrc/utils/filter.py, src/utils/search.py, src/utils/summarizer.py, src/utils/representation.py, tests/test_search.py, tests/test_advanced_filters.pyinternal/goncho, internal/memory, internal/llmstill row-backedPhase 3.F, 4.C
Queue/deriver/reconciler lifecyclesrc/deriver/**, src/crud/deriver.py, src/reconciler/**, tests/deriver/**, tests/reconciler/**, tests/routes/test_queue_status.pyinternal/goncho, internal/automation/cron, internal/doctor, internal/memorystill row-backedPhase 3.F, 6
Dialectic chat and tool loopsrc/dialectic/chat.py, src/dialectic/core.py, src/dialectic/prompts.py, src/llm/tool_loop.py, tests/dialectic/**, tests/llm/**internal/goncho, internal/kernel, internal/llmmapped-by-contractPhase 3.F, 3.G
Dreamingsrc/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, tests/dreamer/**, tests/unified/test_cases/dream_*.jsoninternal/goncho, internal/automation/cron, internal/memorystill row-backedPhase 3.F, 6
Vector stores and embeddingssrc/vector_store/{lancedb,turbopuffer}.py, src/reconciler/sync_vectors.py, src/embedding_client.py, tests/integration/test_message_embeddings.pyinternal/memory.VectorStoreDivergenceRows, internal/memory.semanticSeeds, SQLite entity_embeddingsowned with divergence contract; external LanceDB/Turbopuffer adapters and sync-vector reconciler are explicit excluded rows in Phase 3.F Vector store + reconciler divergence proofPhase 3.D, 3.G
Telemetry, reasoning, metricssrc/telemetry/emitter.py, src/telemetry/reasoning_traces.py, src/telemetry/metrics_collector.py, src/telemetry/sentry.py, src/telemetry/events/deletion.py, src/telemetry/events/**, tests/telemetry/**, tests/integration/test_telemetry.pyinternal/telemetry, internal/audit, internal/gonchostill row-backed by Self-monitoring telemetry; hosted metrics/exporters are owned local divergence unless later requiredPhase 3.F, 4.E
Webhooks and keyssrc/routers/{webhooks,keys}.py, src/security.py, src/crud/webhook.py, src/webhooks/events.py, src/webhooks/webhook_delivery.py, tests/routes/test_{webhooks,keys}.py, tests/webhooks/test_webhook_delivery.pyinternal/goncho.{CreateScopedKey,VerifyScopedKey,GetOrCreateWebhookEndpoint,ListWebhookEndpoints,DeleteWebhookEndpoint,NewTestWebhookEvent,SignWebhookPayload}, future delivery workercomplete for local key/webhook CRUD/test/signature surface; outbound delivery/retry worker and OpenAPI/SDK route binding remain row-backedPhase 3.G rows Goncho keys + webhooks compatibility surface and Goncho webhook delivery retry worker contract; 5.Q
Python SDKsdks/python/src/honcho/{client,aio,api_types,mixins,base,peer,session,message,conclusions,session_context,pagination,types}.py, tests/sdk/**Go SDK-style compatibility harness under internal/goncho/internal/gonchotoolsmapped-by-contractPhase 3.G
TypeScript SDKsdks/typescript/src/client.ts, sdks/typescript/src/validation.ts, sdks/typescript/src/http/streaming.ts, sdks/typescript/src/**, sdks/typescript/__tests__/**, tests/sdk_typescript/**Go fixture harness for SDK request/response behaviormapped-by-contractPhase 3.G
Honcho MCPmcp/src/tools/{workspace,peers,sessions,conclusions,system}.ts, mcp/src/server.ts, mcp/instructions.mdinternal/goncho, internal/plugins, internal/toolsmapped-by-contractPhase 3.G, 5.G
Honcho CLIhoncho-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, honcho-cli/tests/**Phase 3.G complete row Goncho CLI command-tree parity in cmd/gormes/goncho_cli_parity.go; functional command execution, config preservation, exact JSON/table output, destructive confirms, validation, exit codes, and SDK/API binding remain row-backedmapped-by-contractPhase 3.G, 5.O
Hosted deploy/config.env.template, config.toml.example, Dockerfile, docker-compose.yml.example, docker/entrypoint.sh, docker/prometheus.yml, docker/grafana-datasource.yml, fly.toml, database/init.sql, alembic.inilocal embedded Goncho config, doctor, and release docsowned/excluded by surfacePhase 3.G, 5.P
Docs/examples/unified testsdocs/v1/**, docs/v2/**, docs/v3/**, examples/**, tests/unified/**, tests/bench/**, tests/live_llm/**compatibility fixture donors and docs referencesmapped-by-contract; benchmarks are evidence-only unless a row promotes them; live-provider execution under tests/live_llm/** is excluded except as a source for fake/local LLM contract rowsPhase 3.G, 6
OrderGateImplementation package targetWhy it comes here
1Normal Go turn harnessinternal/kernel, internal/llm, internal/tools, internal/persistence/session, internal/memoryProves Gormes is replacing Hermes runtime behavior rather than routing around it.
2Provider transport contractinternal/llm, internal/configGives every provider row one stream/event/error vocabulary.
3Goncho SDK-style harnessinternal/goncho, internal/gonchotools, internal/memoryProves Honcho compatibility against local storage before normal turns depend on it.
4Prompt/context/compression spineinternal/llm, internal/kernel, internal/persistence/transcript, internal/skillsPrevents provider/tool rows from inventing their own prompt assembly.
5Descriptor-first tool surfaceinternal/tools, internal/doctor, internal/auditLets every handler expose schema, trust, availability, and audit evidence uniformly.
6Operator-control paritycmd/gormes, internal/cli, internal/config, internal/gateway, internal/tui, internal/tuigateway, internal/doctorHermes command/config/provider-control and local interactive behavior define how operators run, steer, inspect, and recover long turns; these rows stay near the front even when their phase is 5.O/5.Q.
7Gateway/API/TUI consumersinternal/gateway, internal/apiserver, internal/tui, internal/tuigateway, internal/channels/*UI and channels consume typed events instead of owning agent logic, while preserving Hermes-visible status, usage, slash, approval, interrupt, and progress behavior.
8Release/packaginginstallers, service units, OCI/Homebrew/Nix docs, cmd/repoctl, www.gormes.aiPublic install and operations promises should follow proven runtime, command, config, and provider behavior.
9Learning/research modesinternal/skills, internal/subagent, future research packagesHigher-level automation depends on stable turns, tools, memory, command/config control, and release flow.

TestNestedUpstreamFeatureCoverage protects these representative nested feature paths. It must skip cleanly when sibling upstream repos are absent and fail with nested_feature_unmapped when an upstream path exists but no plan, map, audit, ledger, or progress evidence mentions it.

LaneUpstream nested pathsRequired evidence
Hermes runtime/providersagent/transports/base.py, agent/transports/chat_completions.py, agent/transports/codex.py, agent/transports/bedrock.py, agent/anthropic_adapter.py, agent/gemini_native_adapter.py, agent/gemini_cloudcode_adapter.py, agent/codex_responses_adapter.py, agent/moonshot_schema.py, agent/model_metadata.py, agent/models_dev.py, agent/account_usage.py, agent/context_compressor.py, agent/prompt_builder.py, model_tools.py, trajectory_compressor.py, environments/hermes_base_env.py, environments/agentic_opd_env.py, environments/web_research_env.py, environments/tool_call_parsers/hermes_parser.py, environments/tool_call_parsers/deepseek_v3_1_parser.py, tests/agent/transports/test_transport.py, tests/test_account_usage.py, tests/gateway/test_usage_command.pyFeature map provider/model/context/environment rows, this plan, swarm audit, Phase 4/5 rows.
Hermes tools/security/pluginstools/registry.py, tools/environments/local.py, tools/environments/ssh.py, tools/yuanbao_tools.py, tools/mcp_tool.py, tools/managed_tool_gateway.py, tools/approval.py, tools/url_safety.py, tools/browser_providers/firecrawl.py, tools/browser_providers/browserbase.py, tools/browser_providers/browser_use.py, hermes_cli/browser_connect.py, plugins/memory/honcho/client.py, plugins/google_meet/tools.py, skills/yuanbao/SKILL.md, optional-skills/mcp/DESCRIPTION.mdTool/plugin/skill map rows, swarm audit gaps, Phase 5 rows.
Hermes gateway/CLI/releasegateway/run.py, gateway/channel_directory.py, gateway/stream_consumer.py, gateway/platforms/api_server.py, gateway/platforms/telegram.py, gateway/platforms/discord.py, cron/scheduler.py, hermes_cli/main.py, hermes_cli/auth.py, hermes_cli/plugins.py, hermes_cli/plugins_cmd.py, hermes_cli/web_server.py, scripts/release.py, Dockerfile, docker/entrypoint.sh, packaging/homebrew/hermes-agent.rb, flake.nixGateway/CLI/release map rows, Phase 2/5/7 rows, release divergence notes.
Hermes ACP/MCP extensionsacp_adapter/auth.py, acp_adapter/entry.py, acp_adapter/server.py, acp_adapter/session.py, acp_adapter/tools.py, acp_adapter/permissions.py, acp_registry/agent.json, mcp_serve.pyACP/MCP map rows, swarm audit rows, Phase 5.G/5.H rows.
Honcho core/Gonchosrc/models.py:MessageEmbedding, src/models.py:Collection, src/models.py:Document, src/models.py:QueueItem, src/models.py:ActiveQueueSession, src/models.py:WebhookEndpoint, src/models.py:SessionPeer, src/routers/workspaces.py, src/routers/peers.py, src/routers/sessions.py, src/routers/messages.py, src/routers/conclusions.py, src/routers/keys.py, src/routers/webhooks.py, src/crud/workspace.py, src/crud/peer.py, src/crud/peer_card.py, src/crud/session.py, src/crud/message.py, src/crud/document.py, src/crud/webhook.py, src/crud/deriver.py, src/crud/collection.py:collection_cache_key,get_collection,get_or_create_collection,update_collection_internal_metadata, src/crud/representation.py, src/deriver/queue_manager.py, src/dialectic/chat.py, src/dialectic/core.py, src/dialectic/prompts.py, src/dreamer/dream_scheduler.py, src/dreamer/surprisal.py, src/dreamer/specialists.py, src/dreamer/orchestrator.py, src/dreamer/trees/base.py, src/dreamer/trees/covertree.py, src/dreamer/trees/graph.py, src/dreamer/trees/lsh.py, src/dreamer/trees/prototype.py, src/dreamer/trees/rptree.py, src/dreamer/trees/sklearn_wrapper.py, src/webhooks/events.py, src/webhooks/webhook_delivery.py, src/telemetry/reasoning_traces.py, src/telemetry/metrics_collector.py, src/telemetry/sentry.py, src/telemetry/events/deletion.py, src/vector_store/lancedb.py, database/init.sqlHoncho feature rows, Goncho plan rows, owned divergence rows.
Honcho SDK/MCP/CLI/deploy/testsdocs/v3/openapi.json, sdks/python/src/honcho/client.py, sdks/python/src/honcho/aio.py, sdks/python/src/honcho/api_types.py, sdks/python/src/honcho/mixins.py, sdks/typescript/src/client.ts, sdks/typescript/src/validation.ts, sdks/typescript/src/http/streaming.ts, sdks/typescript/__tests__/streaming.test.ts, mcp/src/tools/sessions.ts, mcp/src/tools/conclusions.ts, honcho-cli/src/honcho_cli/main.py, honcho-cli/src/honcho_cli/config.py, honcho-cli/src/honcho_cli/output.py, honcho-cli/src/honcho_cli/validation.py, honcho-cli/src/honcho_cli/_help.py, honcho-cli/src/honcho_cli/branding.py, honcho-cli/src/honcho_cli/commands/workspace.py, honcho-cli/src/honcho_cli/commands/peer.py, honcho-cli/src/honcho_cli/commands/session.py, honcho-cli/src/honcho_cli/commands/message.py, honcho-cli/src/honcho_cli/commands/conclusion.py, honcho-cli/src/honcho_cli/commands/config_cmd.py, honcho-cli/src/honcho_cli/commands/setup.py, honcho-cli/tests/test_commands.py, tests/sdk/test_client.py, tests/routes/test_webhooks.py, tests/webhooks/test_webhook_delivery.py, tests/live_llm/README.md, .env.template, config.toml.example, Dockerfile, docker-compose.yml.example, docker/entrypoint.sh, docker/prometheus.yml, docker/grafana-datasource.yml, fly.tomlSDK/MCP/CLI/deploy rows, compatibility harness rows, owned hosted-service divergence, and explicit tests/live_llm exclusion for live-provider-only execution.
Gap classClassificationRequired implementation plan
Provider transport, provider-specific schemas, OAuth, credential/rate/cache/account-usage/error helpersstill row-backedSplit Phase 4.A/4.G/4.H into transcript-backed transport, auth, account-usage read-model, rate/cache, and error rows before broad provider ports.
Context compression, prompt builder, skill prompt injectionstill row-backedSplit Phase 4.B/4.C rows into budget, protected context, references, manual feedback, project-instruction, and skill-snapshot fixtures.
Tool handlers, sandbox adapters, browser/media/security/operator toolsmapped-by-contract, still row-backedKeep descriptor/trust/audit registry first, then implement category handlers with fake backends and path/URL/approval tests.
ACP/MCP/plugin/skill catalogsmapped-by-contractAdd explicit descriptor/catalog rows before live adapters; Goncho memory plugin is an owned in-process replacement.
Gateway/channel/bootstrap/cron/API/TUIstill row-backedKeep kernel event stream authoritative; port channel bootstrap and CLI/API management as consumers with fake adapters.
CLI/config/doctor/install/releasestill row-backedSplit command groups by side effect and preserve noninteractive safety, profile/auth/config, status/log/backup, service/release proofs, and explicit Hermes/OpenClaw migration commands.
Honcho CRUD/API/OpenAPI/SDK/MCP/CLImapped-by-contract, still row-backedUse SDK/OpenAPI/route fixtures to prove local Goncho compatibility; unsupported hosted fields require explicit evidence.
Honcho vector/deploy divergenceowned/excludedSQLite/FTS/graph local memory replaces hosted vector stores unless a row proves adapter need; FastAPI/Postgres/Redis/Fly/Alembic deployment is excluded from the local runtime.

These candidates are not a parallel queue. They are the row-splitting checklist for existing phase anchors when a planner or builder pass needs to make a broad row executable.

Candidate rowSource refsGo targetParent anchor
Provider transport abstraction../hermes-agent/agent/transports/{base,types,chat_completions,anthropic,bedrock,codex}.py, ../hermes-agent/tests/agent/transports/**internal/llm.ProviderTransport, normalized stream/event fixtures for Chat-Completions, Anthropic Messages, Bedrock Converse, and Codex ResponsesPhase 4.A
Moonshot/Kimi schema sanitizer../hermes-agent/agent/moonshot_schema.py, ../hermes-agent/tests/agent/test_moonshot_schema.py, ../hermes-agent/tests/agent/transports/test_chat_completions.pyinternal/llm.{IsMoonshotModel,SanitizeToolSchemaForModel,SanitizeMoonshotToolParameters,SanitizeMoonshotToolDescriptors} plus OpenAI-compatible request-builder wiringPhase 4.A complete row Moonshot/Kimi tool-schema sanitizer
Provider fallback chain contract../hermes-agent/agent/retry_utils.py, agent/error_classifier.py, agent/rate_limit_tracker.py, tests/agent/test_unsupported_parameter_retry.pyinternal/kernel, internal/llmPhase 4.H
Token vault and credential-source precedence../hermes-agent/agent/credential_pool.py, agent/credential_sources.py, hermes_cli/auth.pyinternal/config, internal/llm, internal/cliPhase 4.G, 5.O
Prompt cache and rate guard evidence../hermes-agent/agent/prompt_caching.py, agent/nous_rate_guard.py, tests/agent/test_prompt_caching.pyinternal/llm, internal/telemetryPhase 4.H
Provider account usage reporting../hermes-agent/agent/account_usage.py:render_account_usage_lines, ../hermes-agent/agent/account_usage.py:fetch_account_usage, ../hermes-agent/cli.py /usage, ../hermes-agent/gateway/run.py:_handle_usage_command, ../hermes-agent/tests/test_account_usage.py, ../hermes-agent/tests/gateway/test_usage_command.pyinternal/llm, internal/telemetry, internal/gateway, cmd/gormesPhase 4.H rows Provider account usage read model + renderer and Gateway /usage command binding over provider account usage
Context references stable-handle store../hermes-agent/agent/context_references.py, ../hermes-agent/tests/agent/test_context_references.pyinternal/llm.ParseContextReferences, internal/llm.AttachContextReferenceHandles, internal/contextrefs.Store, internal/persistence/transcript aliasesPhase 4.B complete row Context references stable-handle store; live file/folder/git/url expansion remains row-backed
Context compression internals../hermes-agent/agent/context_compressor.py, manual_compression_feedback.py, context_references.pyinternal/llm, internal/kernel, internal/persistence/transcriptPhase 4.B still row-backed for file/folder/git/url expansion, injection budget warnings, manual feedback, and remaining compression behavior
Prompt builder and skill prompt snapshots../hermes-agent/agent/prompt_builder.py, skill_preprocessing.py, skill_commands.pyinternal/llm, internal/skills, internal/cliPhase 4.C, 5.F
Telegram fallback network transport parity../hermes-agent/gateway/platforms/telegram_network.pyinternal/channels/telegram, internal/configPhase 2.B/7
Yuanbao tool parity manifest refresh../hermes-agent/tools/yuanbao_tools.py, ../hermes-agent/toolsets.py, ../hermes-agent/gateway/platforms/yuanbao*.pyinternal/tools/testdata/upstream_tool_parity_manifest.json, internal/channels/yuanbaoPhase 5.A, 7.E
Raw tool-call parser fixture matrix../hermes-agent/environments/tool_call_parsers/*.pyinternal/llm parser/repair fixtures or a dedicated parser packagePhase 5.B complete manifest; remaining parser-family execution fixtures stay under Phase 5.M/provider parser follow-ups
ACP server/session/tools/permissions matrix../hermes-agent/acp_adapter/{auth,entry,events,permissions,server,session,tools}.py, ../hermes-agent/tests/acp/**future internal/protocols/acp, internal/plugins, internal/apiserverPhase 5.H
MCP bridge/runtime matrix../hermes-agent/mcp_serve.py, tools/mcp_tool.py, tools/managed_tool_gateway.py, tools/mcp_oauth*.pyinternal/tools, internal/plugins, internal/apiserverPhase 5.G
Hermes prompt_toolkit TUI parity../hermes-agent/cli.py:HermesCLI.run,_get_tui_prompt_fragments,_get_status_bar_fragments,_render_spinner_text,_get_approval_display_fragments, ../hermes-agent/hermes_cli/skin_engine.py, ../hermes-agent/hermes_cli/commands.py, ../hermes-agent/tests/cli/test_cli_status_bar.py, ../hermes-agent/tests/cli/test_tool_progress_scrollback.py, ../hermes-agent/tests/cli/test_cli_approval_ui.pyinternal/tui, internal/cli, cmd/gormesPhase 5.Q rows Native TUI Hermes skin token renderer, Native TUI Hermes status bar renderer, Native TUI Hermes bottom-pinned chrome layout, Native TUI Hermes input keybinding semantics, Native TUI Hermes slash completion helpers, and Native TUI Hermes tool progress + modal panel renderers
Hermes CLI command-tree parity manifest../hermes-agent/hermes_cli/main.py, ../hermes-agent/hermes_cli/commands.py:GATEWAY_KNOWN_COMMANDS, ../hermes-agent/gateway/run.py:_handle_status_command,_handle_restart_command,_handle_reset_command,_handle_help_command,_handle_model_command,_handle_profile_command,_handle_update_command,_handle_approve_command,_handle_deny_command,_handle_voice_command,_handle_usage_command, ../hermes-agent/plugins/memory/__init__.py:discover_plugin_cli_commands, ../hermes-agent/plugins/disk-cleanup/__init__.py:PluginContext.register_command, cmd/gormes/main.go, internal/cli/command_registry.gocmd/gormes/hermes_cli_parity.go, cmd/gormes/hermes_cli_parity_test.goPhase 5.O row Hermes CLI command-tree parity manifest; classifies every top-level command, nested command, static slash command, dynamic plugin command, alias, gateway handler, removed Hermes -z/--oneshot guidance, and Gormes-owned addition before handler ports
Provider endpoint/API-key root flags + runtime resolutioncmd/gormes/main.go, internal/config/config.go, ../hermes-agent/hermes_cli/config.py, ../hermes-agent/tests/hermes_cli/test_set_config_value.pycmd/gormes, internal/configPhase 5.O row Provider endpoint/API-key root flags + runtime resolution
Gormes config command surface../hermes-agent/hermes_cli/config.py, ../hermes-agent/tests/hermes_cli/test_set_config_value.py, ../hermes-agent/tests/hermes_cli/test_config_env_expansion.py, internal/config/config.go, internal/config/dotenv.gocmd/gormes config, internal/config writer helpersPhase 5.O row Gormes config command surface
Gormes config edit/check/native schema-migrate closeout../hermes-agent/hermes_cli/config.py:edit_config,check_config_version,validate_config_structure,migrate_config, ../hermes-agent/tests/hermes_cli/test_config_validation.py, internal/config/config.go:CurrentConfigVersion,migrateConfigcmd/gormes config, internal/config check/migrate helpersPhase 5.O row Gormes config edit/check/native schema-migrate closeout; distinct from cross-product gormes migrate hermes/openclaw imports
Hermes state/config migration command./hermes-agent/hermes_constants.py, ./hermes-agent/hermes_state.py, ./hermes-agent/hermes_cli/config.py, ./hermes-agent/hermes_cli/setup.py:_setup_telegram, ./hermes-agent/hermes_cli/gateway.py:_PLATFORMS telegram, ./hermes-agent/gateway/config.py:_apply_env_overrides, ./hermes-agent/tests/hermes_cli/test_config*.pycmd/gormes migrate hermes, internal/platform/migrate/hermes, internal/config, internal/persistence/session, internal/memoryPhase 5.O rows Hermes config migration dry-run manifest and Hermes config migration writer
OpenClaw migration command../hermes-agent/hermes_cli/claw.py, ../hermes-agent/optional-skills/migration/openclaw-migration/scripts/openclaw_to_hermes.py, ../hermes-agent/website/docs/guides/migrate-from-openclaw.mdcmd/gormes migrate openclaw, internal/platform/migrate/openclaw, internal/config, internal/skills, internal/memoryPhase 5.O rows OpenClaw migration dry-run manifest and OpenClaw migration writer and cleanup command; gormes migrate ooenclaw is a typo-suggestion path, not an import alias
Product gateway service lifecycle../hermes-agent/gateway/status.py, gateway/restart.py, hermes_cli/service-style command behaviorcmd/gormes, internal/gateway, internal/cliPhase 2.F, 5.O, 5.P
Gormes logs command and failure envelope../hermes-agent/hermes_logging.py, hermes_cli/logs.py, CLI testscmd/gormes, internal/cli, internal/auditPhase 5.O
Trajectory compressor core and compressed evidence lineage../hermes-agent/trajectory_compressor.py, ../hermes-agent/tests/test_trajectory_compressor.pyinternal/persistence/transcript, internal/auditPhase 4.E complete row Trajectory compressor + compressed-evidence lineage
Release packaging divergence matrix../hermes-agent/scripts/release.py, Dockerfile, docker/**, packaging/**, flake.*, .github/workflows/**installers, service units, OCI/Homebrew/Nix docs, cmd/repoctlPhase 5.P
Supply-chain and skills-index workflow parity../hermes-agent/.github/workflows/supply-chain-audit.yml, skills-index.ymldocs/CI contract or cmd/repoctlPhase 5.P, 6
Goncho OpenAPI v3 route manifest and unsupported-route contract../honcho/docs/v3/openapi.json, ../honcho/src/routers/*.py, ../honcho/tests/routes/**Phase 3.G complete row Goncho HTTP route parity over OpenAPI v3 in internal/goncho/http; handler binding, auth, validation, pagination, response envelopes, status codes, and SDK route e2e remain row-backedPhase 3.G, 5.Q
Goncho Honcho CRUD lifecycle invariant matrix../honcho/src/crud/{workspace,peer,session,message,document}.py, ../honcho/tests/crud/**, ../honcho/tests/routes/**internal/goncho.Service.{CreateMessages,DeleteSession,DeleteWorkspace} plus local SQLite lifecycle metadata; remaining document/API/SDK fixtures stay row-backedPhase 3.F complete row Goncho CRUD lifecycle invariants, Phase 3.G for route/SDK compatibility
Honcho API validation limits and metadata sanitizer../honcho/src/schemas/api.py, ../honcho/tests/test_schema_validations.pyinternal/goncho/compat, internal/configPhase 3.G
Goncho effective config hierarchy fixtures../honcho/src/schemas/configuration.py, ../honcho/tests/unified/test_cases/config_*.jsoninternal/config.GonchoCfg, internal/goncho.ConfigPhase 3.F, 3.G
Goncho deriver queue lifecycle and ownership contract../honcho/src/deriver/{queue_manager,enqueue,consumer,deriver}.py, ../honcho/tests/deriver/**internal/goncho.WorkQueue, internal/doctorPhase 3.F, 6
Goncho observation document tree semantics../honcho/src/crud/document.py, ../honcho/src/dreamer/trees/*.py, ../honcho/tests/unified/test_cases/observation_*.jsoninternal/goncho.ConclusionStore, internal/memoryPhase 3.F
Goncho model config and provider bridge contract../honcho/src/llm/**, ../honcho/tests/llm/**internal/goncho, internal/llm bridge or owned deterministic local enginePhase 3.G, 4.A
Goncho dialectic and dream fake-provider execution../honcho/src/dialectic/**, ../honcho/src/dreamer/**, ../honcho/tests/dialectic/**, ../honcho/tests/dreamer/**internal/goncho.ChatEngine, internal/goncho.DreamRunner, internal/automation/cronPhase 3.F, 6
Goncho MCP catalog parity matrix../honcho/mcp/src/tools/{workspace,peers,sessions,conclusions,system}.ts, ../honcho/mcp/README.mdinternal/gonchotools.HonchoMCPToolCatalog plus existing Goncho descriptors and field-level partial compatibility evidencePhase 5.G complete row Goncho MCP tool catalog
Python and TypeScript SDK compatibility fixture matrices../honcho/sdks/python/src/honcho/**, ../honcho/sdks/typescript/src/**, ../honcho/tests/sdk/**, ../honcho/tests/sdk_typescript/**, ../honcho/sdks/typescript/__tests__/**internal/goncho/compat/testdataPhase 3.G
Goncho Honcho CLI compatibility matrix../honcho/honcho-cli/src/honcho_cli/**, ../honcho/honcho-cli/tests/**Phase 3.G complete row Goncho CLI command-tree parity covers command paths, global flags, and shared scope flags; execution rows remain for JSON/table output, config persistence, confirms, validation, exit codes, and SDK/API actionsPhase 3.G, 5.O
Honcho webhooks, keys, telemetry, and deploy divergence matrices../honcho/src/routers/{webhooks,keys}.py, ../honcho/src/webhooks/webhook_delivery.py, ../honcho/src/telemetry/reasoning_traces.py, ../honcho/docker-compose.yml.example, ../honcho/migrations/**, ../honcho/fly.tomlPhase 3.G complete row Goncho keys + webhooks compatibility surface covers scoped JWTs, webhook endpoint CRUD, test events, and HMAC signatures; Goncho webhook delivery retry worker contract covers outbound delivery/retry planning; Self-monitoring telemetry covers reasoning traces; route binding, SDK compatibility, and deploy divergence stay row-backedPhase 3.G, 4.E, 5.Q, 5.P
Honcho integration guide and example fixture import../honcho/docs/v3/guides/**, ../honcho/examples/**, ../honcho/tests/unified/**internal/goncho/compat/testdata, docs examplesPhase 3.G, 6
Durable progress and abort contractinternal/subagent, internal/doctor, internal/progresscmd/gormes, internal/audit, internal/doctorPhase 2.E, 5.O, 6
ActionStatus
Keep Hermes and Honcho feature parity map to Go implementation plan as the parent planning row, with this document added as the canonical fixture.complete
Promote Nested feature-level coverage test matrix for swarm gaps from draft to validated once TestNestedUpstreamFeatureCoverage lands.complete
Keep feature implementation gaps in existing Phase 2/3/4/5/6/7 rows; split only when a builder selects the surface or a row lacks source refs, write scope, tests, acceptance, or done signal.ongoing
Add no private TODO files. Any newly discovered runtime gap must update progress.json, the feature map, the swarm audit, and the nested coverage test in the same planner pass.standing rule
Provider account usage read model + renderer and Gateway /usage command binding over provider account usage split the agent/account_usage.py, cli.py, and gateway/run.py usage feature gap into read-model/rendering and command-binding builder slices.complete
Goncho webhook delivery retry worker contract and enriched Self-monitoring telemetry rows close the Honcho src/webhooks/webhook_delivery.py and src/telemetry/reasoning_traces.py row-backed classification gaps found by the 2026-04-28 Honcho mapper pass.complete

The 2026-04-27 runtime auditor pass produced a small register of Go packages that have no upstream parallel. They are owned-by-design and must not appear as unknown/gap again. Each entry names the replacement evidence.

Gormes pathReplacement evidenceWhy owned
internal/builderloop/**internal/builderloop/{audit,backend,claims,companions,config,failures,ledger,lifecycle,promote,run_health,runner,ship_ratio,speculative,watchdog,worktree}_test.goSkill-driven delivery infrastructure replaces the deleted autonomous loop binary; AGENTS.md ratifies it.
internal/plannerloop/**internal/plannerloop/{lifecycle,service,health_preservation,divergence_lifecycle}_test.goSame; planner orchestration library used by skills.
internal/plannertriggers/**internal/plannertriggers/{triggers,triggers_concurrent}_test.goTrigger event journal feeding the planner library.
internal/progress/**, internal/progressctl/**, cmd/progressinternal/progress/{progress,validate,health,markers,derive}_test.goprogress.json schema, validators, derived stats; cmd/progress write/validate is the supported entrypoint.
internal/repoctl/**, cmd/repoctlinternal/repoctl/{bench,makefile,readme}_test.goRepo bench/README hygiene CLI.
internal/persistence/store/**internal/persistence/store/{store,recording}_test.goCommand/ack replay store backing kernel + gateway durability.
internal/audit/jsonl.gointernal/audit/jsonl_test.goJSONL audit recorder; broader prompt-visible redaction (per agent/redact.py) is a still row-backed split target captured in this plan and the swarm audit.
internal/pybridge/**internal/pybridge/pybridge.go:NoRuntime,ErrNotImplemented; no runtime caller should depend on it for Hermes parityExcluded transition seam. Gormes’ completion definition is Hermes-in-Go, so Python interop is not a runtime parity target; a later cleanup row may delete the dormant package.

The same auditor pass surfaced Gormes-native package-shape decisions. These are not upstream Hermes/Honcho unknown/gap items; they are cleanup decisions inside the Go port.

SurfaceSymptomRequired decision
internal/discord and internal/channels/discordBoth packages target gateway/platforms/discord.py (legacy bot vs chassis). The feature map only references one.Pick one canonical Discord package and either delete the other or rename it as an owned divergence (legacy adapter retained for transition).
internal/llmThe name is correct for parity staging, but it now contains provider transport, model metadata, tool-call repair, prompt/context helpers, account usage, and fixture contracts that should become Gormes-owned architecture after parity is proven.Add the Phase 4.I Hermes compatibility namespace retirement boundary row: keep upstream import, command, config, provider/platform drift, and deprecation evidence under internal/compat/hermes; move durable runtime concepts to Gormes-owned provider, model registry, tool-call, and context/runtime packages; delete internal/llm after temporary import shims are gone.
internal/pybridgeDormant Python-interop seam with NoRuntime placeholder; not invoked anywhere. AGENTS.md says Gormes is complete only when it is Hermes in Go.Excluded as a runtime parity target in the owned/excluded table above; future builder cleanup may delete it.

These are recorded so they cannot quietly survive future audits as unknown/gap.

The Hermes mapper pass listed eleven hidden risks worth pinning into the plan so subsequent planner passes preserve them:

Hidden riskWhy it mattersWhere it lives
tinker-atropos/ empty submodule placeholderWires future RL training upstream via .gitmodules; skipping it skips RL parity.Phase 5.M owned/excluded; ledger row records it.
environments/ (repo root) RL/eval framework with 11 tool_call_parsers, 3 benchmarks, 2 env subdirsDistinct from tools/environments/ (sandboxes). Easy name collision; both are feature-bearing.Phase 5.M; runtime plan order #8 (research modes).
gateway/builtin_hooks/boot_md.pyAlways-on agent-spawning hook keyed on ~/.hermes/BOOT.md; not just config glue.Phase 2.F hooks/boot rows.
gateway/restart.py exit code 75 conventionsystemd, NixOS modules rely on exit 75 for graceful restart.Phase 2.F restart rows; internal/gateway/restart.go already encodes this.
gateway/whatsapp_identity.py JID collapseCollapses @lid and @s.whatsapp.net; required for WhatsApp parity.Phase 2.B.4 WhatsApp rows; internal/channels/whatsapp/identity.go already encodes this.
cli-config.yaml.example (51 KB) canonical config schemaSpec of record for hermes_cli/config.py; ledger now records it.Phase 5.O; ledger row records it.
RELEASE_v0.11.0.md (43 KB recent feature deltas)Most recent upgrade notes; should be diffed against any partial Gormes coverage.Phase 5.P; existing RELEASE_* ignored by source-class test (intentional release-note exclusion).
acp_registry/agent.json public ACP discovery manifestWithout porting it Gormes cannot register itself in editor ACP catalogs.Phase 5.H ACP rows.
docker/entrypoint.sh PID-1 reapingTested upstream; container parity depends on it.Phase 5.P packaging rows.
plugins/example-dashboard/ and plugins/strike-freedom-cockpit/ pre-built dashboard JSweb/src/plugins/registry.ts mounts them; non-trivial plugin SPA contract.Phase 5.I plugin rows.
skills/index-cache/*.json (anthropics_skills, claude_marketplace, lobehub, openai_skills)Skill discovery requires either these or live equivalents.Phase 5.F skills hub rows.