Skip to content

T-93OZ-fix-the-util-config-single-home-violations-as-one-sweep

State: closed/done · Impact: medium · Complexity: medium

From the Phase-4 audit’s recommended task list (docs/planning/notes/N-OCUK-2026-09-24-sdlc-1-0-audit.md, on origin/sdlc/p4-audit): Fix the util/config ‘single home’ violations as one sweep (resolveProjectRoot->findAncestor, misnamed pyResolve, raw yaml imports, isPlainObject->isRecord, nowIsoUtc/todayUtc/rfc3339 composition, cmpStr comparators, singularize/pluralize split).

AreaNote
lib/config/resolveProjectRoot
lib/util/findAncestor, yaml, isRecord, rfc3339/nowUtc/todayUtc, cmpStr, singularize/pluralize
lib/services/lease/lease/tree.ts nowCommitDate
lib/services/verify/verify/changes.ts inline ISO-date
lib/model/entities/task/Inline comparator
lib/services/project/Inline comparator
lib/services/gate/Inline comparator
skills/task-work/Raw yaml import
skills/migrate-runtime-state/Misnamed local pyResolve
  • AC-1: resolveProjectRoot calls findAncestor rather than reimplementing the walk.
  • AC-2: The misnamed local pyResolve in migrate-runtime-state is gone, replaced by the correct shared contract.
  • AC-3: No raw yaml-package import remains outside @lib/util/yaml.
  • AC-4: All nine named single-home violations are resolved and tests pass.
  • none
  • none

← Back to Tasks