Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Ship vehicles

Git repos were collapsed by ship vehicle. Bazel module names and versions were not. Each of the six vehicles carries a LEDGER.md (the provenance record) and CI. Consumers still write bazel_dep(name = "…", version = "…") against the same identities as before.

Git repo ≠ Bazel module. A subtree import does not rename module(name = …) and does not rewrite module(version = …). Imports used git subtree add without --squash, so source history lives under the prefix. Source repos were not deleted.

Six of them are now retired: the vehicle is the edit surface, the source remote keeps its history, tags, and published registry versions. See Consolidation for what that means and which repos stay live.

How to find a module

  1. Look up the legacy repo (or module name) in the map below.
  2. Clone the vehicle. The module is at the listed path.
  3. Published identity is that path’s MODULE.bazel — except contracts and spec, whose published module is the repository root.
  4. Tags are per-module <dir>/vX.Y.Z (for example rules_jena/v0.3.3, forge/v0.0.7). spec keeps root tags vX.Y.Z. contracts is one module at the root.
  5. For source SHA, absorbs, and excludes, open that vehicle’s LEDGER.md.

The six vehicles

VehicleHoldsLayout
tomato-bazel/rulespublic rules_*one directory per module; LEDGER
fastverk/plugin-shellconsole pluginsone directory per module; private vehicle; LEDGER
fastverk/contractspublic gRPC protosone module, fastverk_contracts 0.0.1; LEDGER
fastverk/platformgateway / adapter implementationsforge, tracker, service-finder, wave; LEDGER
fastverk/desktopdesktop / runtimefvkit, fastverk-app; LEDGER
fastverk/specLean / RDF spinenative (not a sibling-repo subtree); LEDGER

Disposition used in the map:

StatusMeaning
importeddirectory present; independent Bazel module; subtree history kept
nativealready in spec; not subtree-imported from a sibling
consolidatedproto copied into fastverk_contracts; the source module name is not redeclared here
absorbresidue belongs with another imported module; not its own module directory
pendinglisted for a follow-up; not in the tree

Non-obvious legacy repos

These do not land as a same-named module directory. Everything else matches tomato-bazel/rules_<name> or fastverk/<top-level-dir>.

Legacy repoVehiclePathDisposition
fastverk/agents (private)contractsproto/agent/v1consolidated into fastverk_contracts — not published as fastverk_agents
fastverk/plugin-orgplugin-shellplugin-estatepending absorb — not an independent imported module
fastverk/plugin-planningplatformwaveabsorb — not an independent imported module
fastverk/forge protoscontractsproto/forge/v1consolidated — not published as forge
fastverk/tracker protoscontractsproto/tracker/v1consolidated — not published as tracker
fastverk/service-finder protoscontractsproto/fastverk/finder/v1consolidated — not published as service_finder
fastverk/wave protoscontractsproto/wave/v1consolidated — not published as wave

Implementation trees for forge / tracker / service-finder / wave still live under platform as their own modules (table below). fastverk/agents implementation stays in that private repo.

tomato-bazel/rules

Fifty imported rules_* modules. Tags: rules_<name>/vX.Y.Z.

Legacy repoPathmodule(name)Version
tomato-bazel/rules_agentic_iderules_agentic_iderules_agentic_ide0.0.4
tomato-bazel/rules_aiprules_aiprules_aip0.3.0
tomato-bazel/rules_astrorules_astrorules_astro0.0.1
tomato-bazel/rules_autoconfrules_autoconfrules_autoconf0.1.0
tomato-bazel/rules_beamrules_beamrules_beam0.0.2
tomato-bazel/rules_bibtexrules_bibtexrules_bibtex0.0.6
tomato-bazel/rules_bunrules_bunrules_bun0.4.1
tomato-bazel/rules_cc_crossrules_cc_crossrules_cc_cross0.1.0
tomato-bazel/rules_cc_hostrules_cc_hostrules_cc_host0.1.0
tomato-bazel/rules_chromerules_chromerules_chrome0.1.1
tomato-bazel/rules_cirules_cirules_ci0.3.0
tomato-bazel/rules_cloudformationrules_cloudformationrules_cloudformation0.10.0
tomato-bazel/rules_docker_composerules_docker_composerules_docker_compose0.2.6
tomato-bazel/rules_eslintrules_eslintrules_eslint0.1.0
tomato-bazel/rules_fastverk_pluginrules_fastverk_pluginrules_fastverk_plugin0.0.1
tomato-bazel/rules_githubrules_githubrules_github0.1.2
tomato-bazel/rules_gitlabrules_gitlabrules_gitlab0.3.4
tomato-bazel/rules_graphvizrules_graphvizrules_graphviz0.2.0
tomato-bazel/rules_helmrules_helmrules_helm0.2.0
tomato-bazel/rules_huggingfacerules_huggingfacerules_huggingface0.0.4
tomato-bazel/rules_jenarules_jenarules_jena0.3.2
tomato-bazel/rules_jsonschemarules_jsonschemarules_jsonschema0.4.0
tomato-bazel/rules_k8srules_k8srules_k8s0.0.3
tomato-bazel/rules_langrules_langrules_lang0.5.0
tomato-bazel/rules_leanrules_leanrules_lean0.7.0
tomato-bazel/rules_lorarules_lorarules_lora0.1.4
tomato-bazel/rules_macvmrules_macvmrules_macvm0.0.1
tomato-bazel/rules_markdownrules_markdownrules_markdown0.0.3
tomato-bazel/rules_mdbookrules_mdbookrules_mdbook0.3.1
tomato-bazel/rules_mesonrules_mesonrules_meson0.0.1
tomato-bazel/rules_nextjsrules_nextjsrules_nextjs0.3.0
tomato-bazel/rules_openapirules_openapirules_openapi0.4.0
tomato-bazel/rules_podmanrules_podmanrules_podman0.0.2
tomato-bazel/rules_postgresrules_postgresrules_postgres0.12.0
tomato-bazel/rules_pumlrules_pumlrules_puml0.0.2
tomato-bazel/rules_rdfrules_rdfrules_rdf0.4.0
tomato-bazel/rules_readmerules_readmerules_readme0.0.3
tomato-bazel/rules_schema_orgrules_schema_orgrules_schema_org0.0.3
tomato-bazel/rules_ssh_tuirules_ssh_tuirules_ssh_tui0.0.5
tomato-bazel/rules_storybookrules_storybookrules_storybook0.2.0
tomato-bazel/rules_systemdrules_systemdrules_systemd0.0.1
tomato-bazel/rules_taprules_taprules_tap0.0.3
tomato-bazel/rules_tectonicrules_tectonicrules_tectonic0.2.0
tomato-bazel/rules_tlarules_tlarules_tla0.2.0
tomato-bazel/rules_tomatorules_tomatorules_tomato0.1.2
tomato-bazel/rules_uvrules_uvrules_uv0.7.4
tomato-bazel/rules_viterules_viterules_vite0.1.1
tomato-bazel/rules_vscoderules_vscoderules_vscode0.0.2
tomato-bazel/rules_webrules_webrules_web0.0.1
tomato-bazel/rules_xsdrules_xsdrules_xsd0.0.1

Nested test-only module (not a published product):

Pathmodule(name)Version
rules_nextjs/examples/minimal-appminimal_app0.0.0

The registry (tomato-bazel/bazel-registry) stays a separate publishing surface. brand, docs, and other non-rules_* repos were not imported — see the rules LEDGER excludes.

fastverk/plugin-shell

Private console-plugin vehicle. Sixteen imported modules; two absorbs that must not appear as their own module directories.

Legacy repoPathmodule(name)Version
fastverk/plugin-agentsplugin-agentsplugin_agents0.0.1
fastverk/plugin-apmplugin-apmplugin_apm0.0.1
fastverk/plugin-buildsplugin-buildsplugin_builds0.0.1
fastverk/plugin-chatplugin-chatplugin_chat0.0.1
fastverk/plugin-complianceplugin-complianceplugin-compliance0.0.1
fastverk/plugin-depotplugin-depotplugin_depot0.0.1
fastverk/plugin-estateplugin-estateplugin_estate0.0.1
fastverk/plugin-fleetplugin-fleetplugin_fleet0.0.1
fastverk/plugin-forgeplugin-forgeplugin_forge0.0.1
fastverk/plugin-integrationsplugin-integrationsplugin_integrations0.0.1
fastverk/plugin-myceliumplugin-myceliumplugin_mycelium0.0.1
fastverk/plugin-polyglotplugin-polyglotplugin_polyglot0.0.1
fastverk/plugin-registryplugin-registryplugin_registry0.0.1
fastverk/plugin-tbzlplugin-tbzlplugin_tbzl0.0.1
fastverk/plugin-workspacesplugin-workspacesplugin_workspaces0.0.1
fastverk/plugin-ws-proxyplugin-ws-proxyplugin_ws_proxy0.0.1
Legacy repoPathDisposition
fastverk/plugin-orgplugin-estatepending absorb — not an independent imported module
fastverk/plugin-planningplatform/waveabsorb into wave — not a plugin-shell module

fastverk/contracts

This git repo is one Bazel module:

Pathmodule(name)Version
repository rootfastverk_contracts0.0.1

Legacy proto sources were copied into that one module. They are not redeclared under their implementation names (forge, tracker, service_finder, wave, fastverk_agents). Publishing proto-only modules under those names would collide with the implementation identities that still live in platform and private fastverk/agents.

Proto packageLegacy repoPath in this vehicle
forge.v1fastverk/forgeproto/forge/v1
tracker.v1fastverk/trackerproto/tracker/v1
fastverk.finder.v1fastverk/service-finderproto/fastverk/finder/v1
wave.v1fastverk/waveproto/wave/v1
agent.v1fastverk/agents (private)proto/agent/v1
bazel_dep(name = "fastverk_contracts", version = "0.0.1")

fastverk/platform

Gateway / adapter implementations. Public protos are in contracts, not here.

Legacy repoPathmodule(name)Version
fastverk/forgeforgeforge0.0.6
fastverk/trackertrackertracker0.0.4
fastverk/service-finderservice-finderservice_finder0.0.1
fastverk/wavewavewave0.1.0

All four source repos are retired: edit here, not there.

Legacy repoPathDisposition
fastverk/plugin-planningwaveabsorb — not a module directory
fastverk/geetch (private)pending — optional later; not imported

Directory names match the GitHub repo (service-finder); Bazel module(name) may differ (service_finder).

fastverk/desktop

Legacy repoPathmodule(name)Version
fastverk/fvkitfvkitfvkit0.0.8
fastverk/fastverk-appfastverk-appfastverk-app0.0.2

Both source repos are retired: edit here, not there.

No absorb rows. brand stays its own repo.

fastverk/spec

Native spine — not a subtree-import of sibling vehicles. Two Bazel modules in this git repo; do not rename either.

Pathmodule(name)VersionNotes
repository rootspec0.8.3published framework
smoke/consumerspec_smoke_consumer0.0.0in-repo registry-consumer smoke only; not a published product
bazel_dep(name = "spec", version = "0.8.3")

Tags stay root vX.Y.Z and must match module(version).

See also

  • Consolidation — which source repos are retired, what retirement means, and the remaining sequence.
  • The constellation — registry catalog (names and versions consumers pin).
  • The platform — products that sit on these modules.
  • Quick start — wire the registry into a Bazel build.
  • Philosophy — why modules stay independently versioned.