--- title: onboarding fixture package path mismatch source_type: error-note status: raw tags: [error, ca-skeleton, gradle, test-fixture, package-layout] created: 2026-06-25 --- # onboarding fixture package path mismatch ## Parent - [[raw/branch-notes/feature-domain-feature-onboarding-contract]] ## Symptom `./gradlew check` failed at `:app-bootstrap:compileSampleOffTestJava` after renaming the onboarding dry-run fixture from `Ticket*` to `FeatureAggregate*`. Compiler errors said packages such as `dev.caskeleton.onboarding.domain.feature` and `dev.caskeleton.onboarding.adapter.persistence.entity` did not exist, even though focused `:app-bootstrap:test` had previously passed. ## Root Cause Some fixture files lived under: ```text src/app-bootstrap/src/test/java/dev/caskeleton/bootstrap/architecture/allowed/onboarding/** ``` while declaring: ```text package dev.caskeleton.onboarding... ``` The logical package was intentionally chosen to avoid ArchUnit false positives from `bootstrap` in package names, but leaving the files under the `bootstrap/architecture/allowed` path created IDE/source-set confusion and exposed stale or incomplete compile output under `sampleOffTest`. ## Fix Move the onboarding positive fixture to a path that matches its package: ```text src/app-bootstrap/src/test/java/dev/caskeleton/onboarding/** ``` Keep the package declarations as: ```text dev.caskeleton.onboarding.* ``` ## Verification - `./gradlew :app-bootstrap:compileTestJava :app-bootstrap:compileSampleOffTestJava --rerun-tasks` — `BUILD SUCCESSFUL` - `./gradlew :app-bootstrap:test --tests '*DomainFeatureOnboardingContractTest' --tests '*ArchitectureViolationFixtureTest' :app-bootstrap:sampleOffTest --tests '*DomainFeatureOnboardingContractTest' --tests '*ArchitectureViolationFixtureTest'` — `BUILD SUCCESSFUL` - `./gradlew check` — `BUILD SUCCESSFUL` ## Prevention For architecture positive fixtures that intentionally use a synthetic package, make the source path match the synthetic package. Avoid putting synthetic production-like fixtures under `dev/caskeleton/bootstrap/architecture/allowed/**` unless the package also starts with `dev.caskeleton.bootstrap.architecture.allowed`.