T-SKMB-co-locate-the-engine-suite-under-packages-engine
State: planning/proposed · Impact: medium · Complexity: medium
The engine suite is one control unit, but its members are spread across packages/rust/ and
packages/ts/. Moving them into packages/engine/ makes the suite a folder. Its planning root
becomes packages/engine/docs/planning/ and it needs no members: list. The folder sits under
packages/ because Ontological consumes Foreman, and D-0001’s tier rule puts what one solution
consumes from another in packages/ (D-XCXA-module-graph). Moving code is optional. The unit
exists by declaration; the move only changes where it lives.
| Moon id | Path today |
|---|---|
foreman | packages/rust/foreman |
graph-scheduler | packages/rust/graph-scheduler |
intersect | packages/rust/intersect |
intersect-ts | packages/ts/intersect |
intersect-docs | packages/ts/intersect/docs-site |
flowline | packages/ts/flowline |
flowline-docs | packages/ts/flowline/docs-site |
Proposed
Section titled “Proposed”Each member moves under packages/engine/ and keeps its moon project id. Rust and TS twins share
names, so the suite folder splits by language: packages/engine/rust/<name> and
packages/engine/ts/<name>. The move
updates every moon.yml, the globs and sources in .moon/workspace.yml, the root Cargo.toml
members, the package.json workspaces, and every import path, tsconfig path, and path dependency
that names an old location. Publishing config is unchanged: package names, registries, and mirror
targets stay as they are. The planning root sits at the suite folder, above its packages, so neither
a package snapshot nor a crate archive picks it up. The move waits until the five foreman PRs merge
(T-FW23-rebase-and-merge-the-foreman-implementation-stack-bottom-up), so it does not rebase
them.
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
moon project-graphlists the same project ids and edges as before the move; only paths differ. - AC-2: All builds and tests for the moved projects and their dependents are green.
- AC-3: Published package and crate names are unchanged, and no mirror or crate archive
contains
docs/planning/. - AC-4:
packages/engine/docs/planning/exists and is registered inplanning_roots:in the rootsdlc.yaml, with nomembers:list. - AC-5:
docs/LIBRARIES.mdand the comments in.moon/workspace.ymlname the new paths. - AC-6: The engine location statements in D-VSLI-distributed-work-runner-architecture and
PR-FRMN-foreman, which say
packages/rust/foreman, name the new paths.
Out of scope
Section titled “Out of scope”- API changes to any moved package.
- Renumbering entity ids, or moving entities into the new root. That is a separate triage.
Dependencies
Section titled “Dependencies”- T-FW23-rebase-and-merge-the-foreman-implementation-stack-bottom-up, so the move lands after the five foreman PRs.
- T-N3RW-derive-the-structural-module-graph-from-existing-manifests, so the move is checked against the derived graph.
- T-EIZX-declare-this-repo-s-own-control-units-as-planning-roots registers the root once this move lands.
Depends on
Section titled “Depends on”T-N3RW-derive-the-structural-module-graph-from-existing-manifests, T-FW23-rebase-and-merge-the-foreman-implementation-stack-bottom-up