Files
clean-architecture-backend-…/docs/superpowers/plans/2026-09-17-jpa-leaf-verification-java.md
T

2.9 KiB

JPA Leaf Verification Java Migration Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Remove the remaining procedural JPA leaf verification logic from Groovy while deleting a redundant verifier-of-verifier task.

Architecture: Keep the security scenario as a declarative strictTestLanes.requires(...) contract and remove verifyJpaSecurityFixtures from both the leaf and readiness registry. Move the real PostgreSQL set_config source-safety rule into a typed task/verifier owned by the already-applied ca.jpa-evidence Java plugin.

Tech Stack: Java 21, Gradle 9 binary plugins/tasks, JUnit 6.

Spec: docs/superpowers/specs/2026-09-16-verification-surface-reduction-design.md

Global Constraints

  • Preserve the verifyJpaSqlConstructionSafety task name because readiness registry/evidence tooling references it.
  • Preserve the PostgreSQL security method selector on postgresqlSecurityBaselineIntegrationTest.
  • Remove verifyJpaSecurityFixtures only together with its readiness-card support-task reference.
  • Do not add production dependencies or change JPA runtime behavior.
  • Do not stage, commit, amend, or push.

Task 1: Typed SQL construction safety verifier

Files:

  • Create: src/build-tools/src/main/java/dev/caskeleton/buildtools/jpa/JpaSqlConstructionSafetyVerifier.java

  • Create: src/build-tools/src/main/java/dev/caskeleton/buildtools/jpa/JpaSqlConstructionSafetyResult.java

  • Test: src/build-tools/src/test/java/dev/caskeleton/buildtools/jpa/JpaSqlConstructionSafetyVerifierTest.java

  • Step 1: Write RED tests for parameterized set_config, non-parameterized set_config, comments, and nested source paths.

  • Step 2: Implement the minimal typed verifier preserving the current line-based rule.

  • Step 3: Run the focused verifier tests to GREEN.

Task 2: Java task ownership and redundant task removal

Files:

  • Create: src/build-tools/src/main/java/dev/caskeleton/buildtools/jpa/VerifyJpaSqlConstructionSafetyTask.java

  • Modify: src/build-tools/src/main/java/dev/caskeleton/buildtools/jpa/JpaEvidencePlugin.java

  • Modify: src/adapter/outbound/persistence-jpa/build.gradle

  • Modify: src/config/jpa/readiness-cards.yaml

  • Step 1: Register verifyJpaSqlConstructionSafety as a typed task from JpaEvidencePlugin.

  • Step 2: Delete the Groovy implementation of verifyJpaSqlConstructionSafety.

  • Step 3: Delete verifyJpaSecurityFixtures and remove it from the security card support tasks while keeping the requires(...) selector.

  • Step 4: Verify readiness registry and SQL-safety tasks.

  • Step 5: Run :adapter:outbound:persistence-jpa:check, build-tools tests, and git diff --check.