commit 0d1921fef1b7c5fc97bff3666d640308b56c9643 Author: José René White Enciso Date: Tue Feb 24 04:42:38 2026 -0600 chore(repo): initialize project's repository structure - Adds src/tests/docs scaffolding - Preserves Stage 1 planning tasks - Adds local AI orchestration folders (.agile, tasks) - Applies GitFlow development base branch diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..31c7257 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.tasks/ +.agile/ diff --git a/docs/architecture/module-map.puml b/docs/architecture/module-map.puml new file mode 100644 index 0000000..7a7c73c --- /dev/null +++ b/docs/architecture/module-map.puml @@ -0,0 +1,32 @@ +@startuml +skinparam shadowing false +skinparam packageStyle rectangle + +title furniture-domain module map + +package "furniture-domain" { + package "Availability" { + class FurnitureAvailabilityPolicy + class AvailabilityComposition + } + package "Abstractions" { + interface IFurnitureDomainDecision + } +} + +package "building-block-inventory" { + class InventoryItemLookupResponse +} + +package "building-block-catalog" { + class ProductContract +} + +InventoryItemLookupResponse ..> AvailabilityComposition +ProductContract ..> AvailabilityComposition + +note bottom +Domain decision layer only. +No transport or persistence implementation. +end note +@enduml diff --git a/docs/architecture/repository-charter.md b/docs/architecture/repository-charter.md new file mode 100644 index 0000000..b4387a1 --- /dev/null +++ b/docs/architecture/repository-charter.md @@ -0,0 +1,27 @@ +# Furniture Domain Repository Charter + +## Purpose +`furniture-domain` owns furniture capability decision and composition rules currently held in service application. + +## Ownership +- Furniture domain owns availability composition semantics. +- Service remains orchestration-only. +- DAL remains persistence and translation-only. + +## Scope +- Availability decision/composition rules +- Domain abstractions for capability aggregation +- Domain invariants and behavior contracts + +## Out of Scope +- gRPC/REST transport wiring +- Provider/repository implementation +- BFF edge adaptation + +## Dependency Boundary +Allowed direction: +- `blueprint-platform` -> `building-block-inventory` + `building-block-catalog` -> `furniture-domain` + +Forbidden: +- Domain references to DAL, Service, or BFF +- Any identity logic ownership outside Thalos diff --git a/docs/domain/domain-boundary-rules.md b/docs/domain/domain-boundary-rules.md new file mode 100644 index 0000000..11608b8 --- /dev/null +++ b/docs/domain/domain-boundary-rules.md @@ -0,0 +1,22 @@ +# Furniture Domain Boundary Rules + +## Domain Owns +- Availability composition decisions +- Capability aggregation semantics +- Domain invariants + +## Service Owns +- Use-case orchestration +- Transport contract adaptation + +## DAL Owns +- Persistence/retrieval +- Technical data translation + +## BFF Owns +- Edge transport exposure +- Service client adaptation + +## Forbidden +- Domain references to DAL/Service/BFF +- Domain runtime wiring concerns diff --git a/docs/migration/behavior-invariants.md b/docs/migration/behavior-invariants.md new file mode 100644 index 0000000..0233310 --- /dev/null +++ b/docs/migration/behavior-invariants.md @@ -0,0 +1,10 @@ +# Behavior Invariants for Domain Extraction + +## Invariants +- Availability decision outcome remains unchanged for equivalent inputs. +- Correlation propagation behavior remains unchanged. +- Transport contracts stay stable at service boundary. + +## Validation Approach +- Compare pre/post extraction contract examples. +- Keep orchestration path stable while decision ownership moves. diff --git a/docs/migration/service-to-domain-migration-map.md b/docs/migration/service-to-domain-migration-map.md new file mode 100644 index 0000000..cc03079 --- /dev/null +++ b/docs/migration/service-to-domain-migration-map.md @@ -0,0 +1,14 @@ +# Furniture Service to Domain Migration Map + +## Candidate Migrations + +| Current Source | Target Domain Area | Ownership Outcome | +|---|---|---| +| furniture-service availability use case flow | Domain/AvailabilityPolicies | Domain owns decision logic | +| furniture-service contract composition logic | Domain/CompositionRules | Service remains orchestration only | +| service-level decision branches | Domain/DecisionRules | DAL and BFF stay technical | + +## Service After Extraction +- Orchestration only +- Delegation to domain abstractions +- No direct decision ownership diff --git a/docs/provisioning/checklist.md b/docs/provisioning/checklist.md new file mode 100644 index 0000000..dcceeeb --- /dev/null +++ b/docs/provisioning/checklist.md @@ -0,0 +1,19 @@ +# Stage 7 Provisioning Checklist - furniture-domain + +## Preconditions +- [ ] Dependency direction verified against rules/15-workspace-dependency-graph.md. +- [ ] Building block contract dependencies identified. + +## Provisioning Scope +- [ ] Create domain-only module structure. +- [ ] Define availability domain contracts and abstractions. +- [ ] Publish ownership boundaries with service and DAL. + +## Guardrails +- [ ] No runtime wiring changes. +- [ ] No provider/repository implementation. +- [ ] No BFF transport concerns. + +## Handoff +- [ ] Service orchestration refactor plan documented. +- [ ] DAL boundary alignment plan documented.