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
- Look up the legacy repo (or module name) in the map below.
- Clone the vehicle. The module is at the listed path.
- Published identity is that path’s
MODULE.bazel— exceptcontractsandspec, whose published module is the repository root. - Tags are per-module
<dir>/vX.Y.Z(for examplerules_jena/v0.3.3,forge/v0.0.7).speckeeps root tagsvX.Y.Z.contractsis one module at the root. - For source SHA, absorbs, and excludes, open that vehicle’s
LEDGER.md.
The six vehicles
| Vehicle | Holds | Layout |
|---|---|---|
tomato-bazel/rules | public rules_* | one directory per module; LEDGER |
fastverk/plugin-shell | console plugins | one directory per module; private vehicle; LEDGER |
fastverk/contracts | public gRPC protos | one module, fastverk_contracts 0.0.1; LEDGER |
fastverk/platform | gateway / adapter implementations | forge, tracker, service-finder, wave; LEDGER |
fastverk/desktop | desktop / runtime | fvkit, fastverk-app; LEDGER |
fastverk/spec | Lean / RDF spine | native (not a sibling-repo subtree); LEDGER |
Disposition used in the map:
| Status | Meaning |
|---|---|
| imported | directory present; independent Bazel module; subtree history kept |
| native | already in spec; not subtree-imported from a sibling |
| consolidated | proto copied into fastverk_contracts; the source module name is not redeclared here |
| absorb | residue belongs with another imported module; not its own module directory |
| pending | listed 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 repo | Vehicle | Path | Disposition |
|---|---|---|---|
fastverk/agents (private) | contracts | proto/agent/v1 | consolidated into fastverk_contracts — not published as fastverk_agents |
fastverk/plugin-org | plugin-shell | plugin-estate | pending absorb — not an independent imported module |
fastverk/plugin-planning | platform | wave | absorb — not an independent imported module |
fastverk/forge protos | contracts | proto/forge/v1 | consolidated — not published as forge |
fastverk/tracker protos | contracts | proto/tracker/v1 | consolidated — not published as tracker |
fastverk/service-finder protos | contracts | proto/fastverk/finder/v1 | consolidated — not published as service_finder |
fastverk/wave protos | contracts | proto/wave/v1 | consolidated — 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.
Nested test-only module (not a published product):
| Path | module(name) | Version |
|---|---|---|
rules_nextjs/examples/minimal-app | minimal_app | 0.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 repo | Path | module(name) | Version |
|---|---|---|---|
| fastverk/plugin-agents | plugin-agents | plugin_agents | 0.0.1 |
| fastverk/plugin-apm | plugin-apm | plugin_apm | 0.0.1 |
| fastverk/plugin-builds | plugin-builds | plugin_builds | 0.0.1 |
| fastverk/plugin-chat | plugin-chat | plugin_chat | 0.0.1 |
| fastverk/plugin-compliance | plugin-compliance | plugin-compliance | 0.0.1 |
| fastverk/plugin-depot | plugin-depot | plugin_depot | 0.0.1 |
| fastverk/plugin-estate | plugin-estate | plugin_estate | 0.0.1 |
| fastverk/plugin-fleet | plugin-fleet | plugin_fleet | 0.0.1 |
| fastverk/plugin-forge | plugin-forge | plugin_forge | 0.0.1 |
| fastverk/plugin-integrations | plugin-integrations | plugin_integrations | 0.0.1 |
| fastverk/plugin-mycelium | plugin-mycelium | plugin_mycelium | 0.0.1 |
| fastverk/plugin-polyglot | plugin-polyglot | plugin_polyglot | 0.0.1 |
| fastverk/plugin-registry | plugin-registry | plugin_registry | 0.0.1 |
| fastverk/plugin-tbzl | plugin-tbzl | plugin_tbzl | 0.0.1 |
| fastverk/plugin-workspaces | plugin-workspaces | plugin_workspaces | 0.0.1 |
| fastverk/plugin-ws-proxy | plugin-ws-proxy | plugin_ws_proxy | 0.0.1 |
| Legacy repo | Path | Disposition |
|---|---|---|
| fastverk/plugin-org | plugin-estate | pending absorb — not an independent imported module |
| fastverk/plugin-planning | platform/wave | absorb into wave — not a plugin-shell module |
fastverk/contracts
This git repo is one Bazel module:
| Path | module(name) | Version |
|---|---|---|
| repository root | fastverk_contracts | 0.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 package | Legacy repo | Path in this vehicle |
|---|---|---|
forge.v1 | fastverk/forge | proto/forge/v1 |
tracker.v1 | fastverk/tracker | proto/tracker/v1 |
fastverk.finder.v1 | fastverk/service-finder | proto/fastverk/finder/v1 |
wave.v1 | fastverk/wave | proto/wave/v1 |
agent.v1 | fastverk/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 repo | Path | module(name) | Version |
|---|---|---|---|
| fastverk/forge | forge | forge | 0.0.6 |
| fastverk/tracker | tracker | tracker | 0.0.4 |
| fastverk/service-finder | service-finder | service_finder | 0.0.1 |
| fastverk/wave | wave | wave | 0.1.0 |
All four source repos are retired: edit here, not there.
| Legacy repo | Path | Disposition |
|---|---|---|
| fastverk/plugin-planning | wave | absorb — 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 repo | Path | module(name) | Version |
|---|---|---|---|
| fastverk/fvkit | fvkit | fvkit | 0.0.8 |
| fastverk/fastverk-app | fastverk-app | fastverk-app | 0.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.
| Path | module(name) | Version | Notes |
|---|---|---|---|
| repository root | spec | 0.8.3 | published framework |
smoke/consumer | spec_smoke_consumer | 0.0.0 | in-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.