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.
Proposed
Section titled “Proposed”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.
Approach
Section titled “Approach”- Decide which
@sksizer/*libraries inpackages/ts/*move tosksizer/sdlcoutright (sdlc-only dependencies) versus which stay insksizer/devas genuinely shared libraries other products/solutions also consume — the vendored-tarball closureassemble.tscomputes today is a reasonable starting map of “what sdlc actually needs.” - 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. - Set up
sksizer/sdlcas a real build workspace (its ownpackage.json/ lockfile / CI), seeded fromsksizer/dev’s currentsolutions/ontologicalplus 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 productwork). - Cut
sksizer/devover to consuming sdlc (and any moved libraries) as published packages: updatesksizer/dev’s own tooling that currently reaches intosolutions/ontologicaldirectly (this repo dogfoods sdlc against itself today). - Retire
scripts/sdlc-mirror/assemble.ts’s dependency-closure/vendor- tarball machinery once source lives natively insksizer/sdlc— it becomes unnecessary rather than wrong. - Update
sksizer/dev’s own docs (rootREADME.md,docs/PUBLISHING.md, the roadmap) to describesksizer/devas a product-consuming repo for sdlc, not sdlc’s home.
| Area | Note |
|---|---|
solutions/ontological | sdlc’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.ts | Retired or substantially simplified once source lives natively in the target |
sksizer/sdlc (external repo) | Gains a real build workspace, not just assembled output |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: A documented decision on which
@sksizer/*libraries move with sdlc versus stay shared insksizer/dev. - AC-2:
sksizer/sdlcbuilds and tests sdlc from source in its own CI, with no dependency on asksizer/devcheckout. - AC-3:
sksizer/devdepends on sdlc (where it still does at all) as a published package, not a workspace-relative path. - AC-4: npm publish (
T-7H3A) runs againstsksizer/sdlc’s own real source tree rather than an assembled/vendored snapshot.
Out of scope
Section titled “Out of scope”- 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.
Dependencies
Section titled “Dependencies”- D-P3NF-sksizer-sdlc-is-product-home — the decision this task implements the deferred half of.
T-7H3A— npm publish, which this move is meant to make more natural.
Discovery context
Section titled “Discovery context”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.