[ { "id": "F001", "description": "Define target dependency layering rules for domain slices (billing/clients) and the new shared slice.", "implemented": true }, { "id": "F002", "description": "Create shared cross-domain module(s) in @alga-psa/shared for billing↔clients code with correct exports.", "implemented": true }, { "id": "F003", "description": "Move/implement client contract assignment APIs (create/update/get/list) into the shared slice.", "implemented": true }, { "id": "F004", "description": "Move/implement billing-needed client lookup APIs (getAllClients, paginated, billing-cycle-range filtered) into the shared slice.", "implemented": true }, { "id": "F005", "description": "Move/implement client default tax region lookup used by billing into @alga-psa/shared.", "implemented": true }, { "id": "F006", "description": "Refactor billing backend code to statically import cross-domain APIs from the shared slice.", "implemented": true }, { "id": "F007", "description": "Refactor billing UI code to statically import cross-domain APIs from the shared slice.", "implemented": true }, { "id": "F008", "description": "Refactor clients code to statically import cross-domain billing/contract APIs from the shared slice.", "implemented": true }, { "id": "F009", "description": "Remove billing-side dynamic import wrappers created to avoid static dependency detection.", "implemented": true }, { "id": "F010", "description": "Remove clients-side dynamic import wrappers created to avoid static dependency detection.", "implemented": true }, { "id": "F011", "description": "Ensure contract reactivation logic is accessible without introducing billing↔clients cycles.", "implemented": true }, { "id": "F012", "description": "Move ClientPicker into @alga-psa/ui to avoid domain-to-domain UI dependencies.", "implemented": true }, { "id": "F013", "description": "Update import paths across repo to the new shared slice exports (and UI primitive moves if adopted).", "implemented": true }, { "id": "F014", "description": "Verify the dependency graph has no billing↔clients cycle (and add/adjust any guardrails if available).", "implemented": true }, { "id": "F015", "description": "Run build/typecheck to confirm static dependency builds trigger correctly and no runtime-only dynamic import behavior remains.", "implemented": true }, { "id": "F016", "description": "Eliminate @alga-psa/ui imports of vertical slices (tenancy/users/clients/client-portal/etc) by moving feature components up into owning slices or server.", "implemented": true }, { "id": "F017", "description": "Fix auth package typecheck issues introduced during refactors (components moved + test files excluded from package typecheck).", "implemented": true }, { "id": "F018", "description": "Resolve NX build cycles involving ui by refactoring notifications/branding/i18n/settings components to avoid ui→vertical dependencies.", "implemented": true }, { "id": "F019", "description": "Verify nx build graph is cycle-free for build targets (nx run-many -t build).", "implemented": true } ]