T-LCKH-sdlc-consumer-migration-detect-runners
State: closed/done · Impact: medium · Complexity: medium
Hard-cutover sdlc’s own consumers onto the now-consolidated
@sksizer/detect-runners, and delete the sdlc-local files whose logic moved
there in T-6K39: lib/config/detect-deps.ts, lib/config/pinned-manager.ts,
and lib/services/project/detect-setup.ts. No aliases, no re-exports left
behind at the old sdlc paths.
lib/config/verbs.ts’s defaultSetup calls detectDeps/
resolvePinnedManagerInstall from the two sdlc-local files as its trailing
fallback. lib/services/hooks/run.ts imports hasMissingDeps from
@lib/config/detect-deps for its when: deps-missing hook condition.
lib/services/config/ops/init.ts and lib/services/project/ops/setup.ts
both import detectSetup from lib/services/project/detect-setup.ts, whose
deps family delegates to detect-deps.ts and whose detectGitHooks/
detectToolTrust do their own from-scratch marker-file reads for a class of
aspect detect-runners doesn’t detect at all today.
Proposed
Section titled “Proposed”lib/config/detect-deps.tsandlib/config/pinned-manager.tsare deleted; every caller importsresolveInstall/hasMissingDeps/missingDeps/resolvePinnedManagerInstallfrom@sksizer/detect-runnersinstead.lib/services/project/detect-setup.tsis deleted; itsdepsfamily becomes a call to@sksizer/detect-runners’sresolveInstall; itsdetectGitHooks/detectToolTrustbecome direct reads ofAspectFacts.hookManagers/.toolTrustoffcollectAspects().defaultSetup(verbs.ts) calls the same consolidated functions, unchanged behavior.
Approach
Section titled “Approach”- Update
verbs.ts’sdefaultSetupto importresolveInstall/resolvePinnedManagerInstallfrom@sksizer/detect-runners; delete its own imports of the sdlc-local files. - Update
hooks/run.ts’swhen: deps-missingcondition to importhasMissingDepsfrom@sksizer/detect-runners. - Rewrite
config/ops/init.tsandproject/ops/setup.tsto callresolveInstalland readAspectFacts.hookManagers/.toolTrustdirectly (viacollectAspects), replacing theirdetectSetupimport. - Delete
lib/config/detect-deps.ts,lib/config/pinned-manager.ts,lib/services/project/detect-setup.tsand their test files (behavior moves todetect-runners’s own test suite fromT-6K39). - Grep sweep:
grep -rn "detect-deps\|pinned-manager\|project/detect-setup" solutions/ontologicalreturns nothing outside historical decision-doc prose.
| Area | Note |
|---|---|
solutions/ontological/lib/config/verbs.ts | defaultSetup imports from @sksizer/detect-runners |
solutions/ontological/lib/config/detect-deps.ts, pinned-manager.ts | Deleted |
solutions/ontological/lib/services/project/detect-setup.ts | Deleted |
solutions/ontological/lib/services/hooks/run.ts | hasMissingDeps import swap |
solutions/ontological/lib/services/config/ops/init.ts, lib/services/project/ops/setup.ts | detectSetup import replaced |
Acceptance criteria
Section titled “Acceptance criteria”- AC-1:
bun test solutions/ontological/lib/{config,services/project,services/hooks,services/config}passes. - AC-2:
defaultSetup('setup', root)’s observable output (the resolved setup command list) is byte-for-byte identical before and after this task, for every fixture the currentverbs.test.tsexercises. — SUPERSEDED, not failed:defaultSetupitself was retired outright byT-VE84rather than carried forward to compare against; see completion_note. - AC-3:
sdlc initandsdlc project setup --detectproduce identical output to today for the repo’s own fixtures (covered bysetup-candidates.test.ts/init_op.test.ts, both green above). - AC-4:
grep -rn "detect-deps\|pinned-manager\|detect-setup" solutions/ontological docs(excludingdocs/planning/decisions/) returns nothing outside historical task/milestone prose describing this migration and the intentionally-keptsdlc project detect-setupCLI command name.
Out of scope
Section titled “Out of scope”- Rewiring
resolveVerb’s ~10 other direct callers (that’sT-YZOM— unrelated to detection;defaultSetup/hooks/run.ts/init.ts/setup.tsabove are the only detection-specific ones). manifest-graph/project-facets.get.tsadoption —T-3GMU/T-OUKL.
Dependencies
Section titled “Dependencies”T-6K39 (needs the moved/rewired resolveInstall/hasMissingDeps/
resolvePinnedManagerInstall to already exist in @sksizer/detect-runners).
Discovery context
Section titled “Discovery context”Detection-consolidation research: ../decisions/D-LSLH-collapse-verbs-workflows-chain-hooks/detection-consolidation.md §4 “What gets deleted”, §5 “Migration map”.
Depends on
Section titled “Depends on”T-6K39