T-PLW6-co-locate-the-app-kit-suite-under-packages-app-kit
State: planning/proposed · Impact: medium · Complexity: medium
The app-kit suite is one control unit, but its members are spread across packages/rust/ and
packages/ts/. Moving them into packages/app-kit/ makes the suite a folder. Its planning root
becomes packages/app-kit/docs/planning/ and it needs no members: list. The folder sits under
packages/ because it is a library suite. Moving code is optional. The unit exists by declaration;
the move only changes where it lives.
| Moon id | Path today |
|---|---|
ui | packages/ts/ui |
app-frame | packages/ts/app-frame |
panes | packages/ts/panes |
node-tree | packages/ts/node-tree |
graph-canvas | packages/ts/graph-canvas |
code-editor | packages/ts/code-editor |
color | packages/ts/color |
spec-query | packages/ts/spec-query |
Proposed
Section titled “Proposed”Each member moves under packages/app-kit/ and keeps its moon project id. Rust and TS twins share
names, so the suite folder splits by language (for example packages/app-kit/rust/<name> and
packages/app-kit/ts/<name>). The exact layout is settled at the start of the task. 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. spec-query may belong to dev instead (open
in the breakdown); settle that before moving it.
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/app-kit/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.
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-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