Skip to content

T-3WLL-move-sdlc-source-ts-libraries-into-sksizer-sdlc-dev-consumes

State: planning/draft · Impact: medium · Complexity: large

D-P3NF-sksizer-sdlc-is-product-home makes sksizer/sdlc sdlc’s product home, but only for the ASSEMBLED release output — sdlc’s own TypeScript source (solutions/ontological) and its @sksizer/* library closure still live and develop inside sksizer/dev. This task tracks the follow-up: actually moving that source into sksizer/sdlc, so the repo that hosts the release also hosts the development, and sksizer/dev becomes a repo that consumes sdlc (and its libraries) as published packages rather than hosting their source. Closing this gap is also what makes npm publish (T-7H3A) fully natural — a real source tree building in place, not just an assembled artifact.

solutions/ontological (sdlc’s source) and its @sksizer/* dependency closure (packages/ts/*) live in sksizer/dev and build inside its moon/bun workspace. scripts/sdlc-mirror/assemble.ts computes that closure, packs it into vendored tarballs, and writes the result into sksizer/sdlc (--layout product) on release — a one-way, one-shot snapshot, not a live source relationship. Editing sdlc after a release still means working in sksizer/dev and cutting a new release to see it land in sksizer/sdlc.

sksizer/sdlc holds sdlc’s real, buildable source (not just the assembled plugin trees) and its own copies of (or published-package dependencies on) the @sksizer/* libraries it needs. sksizer/dev no longer holds solutions/ontological; it depends on sdlc (and any shared libraries it still needs) the same way any other consumer would — through published packages, not a workspace-relative path. This is a large, cross-cutting move and deliberately left undesigned here: see Approach for what has to be figured out before it can be scoped as an implementation-ready task.

  1. Decide which @sksizer/* libraries in packages/ts/* move to sksizer/sdlc outright (sdlc-only dependencies) versus which stay in sksizer/dev as genuinely shared libraries other products/solutions also consume — the vendored-tarball closure assemble.ts computes today is a reasonable starting map of “what sdlc actually needs.”
  2. Decide the TS libraries’ own distribution story once split: do they publish to npm as independent packages sdlc depends on normally, or move wholesale into sksizer/sdlc’s own workspace? This interacts with the existing OSS-mirror publishing channel (docs/PUBLISHING.md) — some may already be on it.
  3. Set up sksizer/sdlc as a real build workspace (its own package.json / lockfile / CI), seeded from sksizer/dev’s current solutions/ontological plus whichever libraries move with it, with history carried across via a normal commit (or a filtered import, kept out of scope for D-P3NF’s own --layout product work).
  4. Cut sksizer/dev over to consuming sdlc (and any moved libraries) as published packages: update sksizer/dev’s own tooling that currently reaches into solutions/ontological directly (this repo dogfoods sdlc against itself today).
  5. Retire scripts/sdlc-mirror/assemble.ts’s dependency-closure/vendor- tarball machinery once source lives natively in sksizer/sdlc — it becomes unnecessary rather than wrong.
  6. Update sksizer/dev’s own docs (root README.md, docs/PUBLISHING.md, the roadmap) to describe sksizer/dev as a product-consuming repo for sdlc, not sdlc’s home.
AreaNote
solutions/ontologicalsdlc’s own source — the thing that moves
packages/ts/*The @sksizer/* dependency closure assemble.ts already enumerates; some subset moves with sdlc
scripts/sdlc-mirror/assemble.tsRetired or substantially simplified once source lives natively in the target
sksizer/sdlc (external repo)Gains a real build workspace, not just assembled output
  • AC-1: A documented decision on which @sksizer/* libraries move with sdlc versus stay shared in sksizer/dev.
  • AC-2: sksizer/sdlc builds and tests sdlc from source in its own CI, with no dependency on a sksizer/dev checkout.
  • AC-3: sksizer/dev depends on sdlc (where it still does at all) as a published package, not a workspace-relative path.
  • AC-4: npm publish (T-7H3A) runs against sksizer/sdlc’s own real source tree rather than an assembled/vendored snapshot.
  • Actually performing the move — this task tracks the decision and the follow-up work; it is not itself the implementation.
  • Retiring sksizer/marketplace-sdlc — that repo is unrelated and stays in service as its own multi-plugin catalog regardless of this move.

Carved out of the v0.4.0 sdlc-release-to-sksizer/sdlc work (D-P3NF-sksizer-sdlc-is-product-home) as explicit follow-up: that decision retargets sdlc’s ASSEMBLED release to sksizer/sdlc now, but deliberately keeps today’s vendored-tarball closure for v0.4.0 rather than also moving source. This task is the placeholder for doing that move later.


← Back to Tasks