T-Z0KK-co-locate-the-markdown-suite-under-packages-markdown
State: planning/proposed · Impact: medium · Complexity: large
The markdown suite is one control unit, but its members are spread across packages/rust/ and
packages/ts/. Moving them into packages/markdown/ makes the suite a folder. Its planning root
becomes packages/markdown/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 |
|---|---|
markdown-util | packages/rust/markdown-util |
yaml-splice | packages/rust/yaml-splice |
yaml-splice-wasm | packages/rust/yaml-splice-wasm |
wikilink | packages/rust/wikilink |
vault-fs | packages/rust/vault-fs |
vault-transform | packages/rust/vault-transform |
markdown-util-ts | packages/ts/markdown-util |
yaml-splice-ts | packages/ts/yaml-splice |
obsidian-md | packages/ts/obsidian-md |
obsidian-editor | packages/ts/obsidian-editor |
obsidian-editor-demo | packages/ts/obsidian-editor/demo |
markdown-ui | packages/ts/markdown-ui |
markdown-ui-playground | packages/ts/markdown-ui/playground |
obsidian-vault | packages/ts/obsidian-vault |
obsidian-bases | packages/ts/obsidian-bases |
vault-graph-core | packages/ts/vault-graph-core |
json-canvas-core | packages/ts/json-canvas-core |
json-canvas-vue | packages/ts/json-canvas-vue |
json-canvas-demo | packages/ts/json-canvas-vue/demo |
Proposed
Section titled “Proposed”Each member moves under packages/markdown/ and keeps its moon project id. Rust and TS twins share
names, so the suite folder splits by language (for example packages/markdown/rust/<name> and
packages/markdown/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.
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/markdown/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