Files
slp-modular-cms/aidlc-docs/features/slpsoftware-api/inception/application-design/unit-of-work-dependency.md
T
SluijsensandClaude Sonnet 5 cfb06b28b6
Continuous Integration / config (pull_request) Successful in 12s
Continuous Integration / changes (pull_request) Successful in 22s
Continuous Integration / backend-build (pull_request) Successful in 5m53s
Continuous Integration / vulnerability-scan (pull_request) Successful in 5m46s
Continuous Integration / frontend-prepare (pull_request) Successful in 1m54s
Continuous Integration / backend-test (pull_request) Successful in 7m37s
Continuous Integration / frontend-build (pull_request) Successful in 2m14s
Continuous Integration / frontend-test (pull_request) Successful in 4m59s
Continuous Integration / frontend-lint (pull_request) Successful in 2m2s
Continuous Integration / publish-production (pull_request) Skipped
Continuous Integration / deploy-production (pull_request) Skipped
Continuous Integration / publish-test (pull_request) Successful in 7m34s
Continuous Integration / deploy-test (pull_request) Skipped
Adds the Offerings module and retargets the CI/CD pipeline to Api.SlpSoftware
Implements Unit 2 "Offerings" (backend module, admin CRUD UI with
drag-and-drop reordering, public GET /api/v1/offerings endpoint) and
executes the feature's D-15 CI/CD cutover, switching the deploy
pipeline's build/publish target from SlpModularCms.Api to
SlpModularCms.Api.SlpSoftware.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FWyStNL2ZsjrS7FLd7xvvN
2026-08-02 16:23:09 +02:00

2.2 KiB

Unit of Work Dependency — SlpSoftware Production API

Dependency Matrix

Unit Depends On Nature of Dependency Blocking?
1. SlpSoftware Client Setup Existing SlpModularCms.Api (must not regress), existing Core.Hosting.* extension methods Behavior-preservation constraint: the extraction must reproduce Api's current pipeline exactly N/A (this unit is the starting point)
2. Offerings Unit 1 (SlpModularCms.Api.SlpSoftware project must exist) Structural: Unit 2 adds its own <ProjectReference> into Api.SlpSoftware.csproj, which requires that project to already exist Yes — Unit 2 cannot start its Code Generation until Unit 1's Api.SlpSoftware project shell exists

Sequencing

%%{init: {'themeVariables': {'primaryTextColor':'#000000','textColor':'#000000','tertiaryTextColor':'#000000'}}}%%
graph LR
    U1["Unit 1: SlpSoftware Client Setup<br/>(FR-1, FR-2, FR-3)"]
    U2["Unit 2: Offerings<br/>(FR-4..FR-8, US-01..US-12)"]
    U1 -->|"Api.SlpSoftware project must exist first"| U2

    classDef foundation fill:#bee3f8,stroke:#2b6cb0,stroke-width:2px,color:#000000,font-weight:bold;
    classDef feature fill:#fefcbf,stroke:#c05621,stroke-width:2px,color:#000000,font-weight:bold;

    class U1 foundation;
    class U2 feature;

Text alternative: Unit 1 (SlpSoftware Client Setup, blue) must complete before Unit 2 (Offerings, yellow) can start, because Unit 2's project reference requires Unit 1's Api.SlpSoftware project to already exist.

Shared / Cross-Cutting Concerns

  • SlpModularCms.Core: modified only by Unit 1 (the CmsHost addition). Unit 2 does not modify Core.
  • Security Baseline compliance: both units must satisfy their applicable rules from requirements.md's Security Compliance table independently — Unit 1 for the hosting/pipeline rules (SECURITY-03, 04, 09, 10, 14, 15 continuity), Unit 2 for the new-surface rules (SECURITY-05, 06, 08, 11, 13).
  • No shared mutable state or runtime coupling between the two units beyond the one-time structural dependency above — at runtime, Offerings is just another module discovered by ModuleOrchestrator inside the process Unit 1 built.