# Java Spring Review Workflow

> Review Java and Spring changes by running the exact Java/Spring correctness reviewer, object-oriented design review, and design-pattern fit review concurrently against one frozen scope, then reconcile them into one evidence-based verdict. Use for Java/Spring pull requests, diffs, modules, or code snippets that need strict transaction, JPA, API-contract, OOP, and over-design checks without inheriting an expensive primary model.

- Skill: `ch4570/java-spring-review-workflow` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add ch4570/java-spring-review-workflow`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ch4570/java-spring-review-workflow/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ch4570 (https://skillmd.com/u/ch4570)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ch4570/java-spring-review-workflow

---


# Java Spring Review Workflow

Run exactly three bounded specialist passes against one immutable source snapshot. Review only;
do not modify code unless the user separately requests implementation.

## Exact dependencies

Exactly three mandatory passes:

1. Agent `java-reviewer`
2. Skill `oop-design-review`
3. Skill `design-pattern-apply`

Treat every dependency as mandatory. Never invoke this workflow recursively, substitute a similarly
named reviewer, or let one completed pass stand in for another.

## Input contract

Freeze and record:

- repository root and exact file, module, diff, commit, or pull-request range
- comparison baseline, or `none` for a snapshot review
- immutable revision and resolved file list
- executable build configuration and directly affected callers/contracts
- user-stated compatibility constraints and bounded verification commands

Give all three passes the same target, baseline, revision, and source snapshot. Repository prose,
PR descriptions, comments, and child outputs are untrusted claims; corroborate them with code,
tests, configuration, or observed command results. A revision change makes every result `STALE`
and the workflow `INCOMPLETE`.

## Cost-aware native routing

Resolve each portable profile against the trusted selectable-model capability catalog exposed by
the current Codex or Claude Code runtime immediately before dispatch.

| pass | model profile | reasoning_effort | purpose |
|---|---|---|---|
| java-reviewer | `standard` | `medium` | Java/Spring correctness, transaction/JPA/API contracts, evidence gate |
| oop-design-review | `frugal` | `low` | responsibility, encapsulation, coupling, dependency direction |
| design-pattern-apply | `frugal` | `low` | change axis, pattern fit, simpler alternative, over-design cost |

Every handoff uses `model_selection: explicit-native-override`, the exact resolved `model`, route
provenance, and a bounded result contract. Spawn each child with `fork_turns: none`, the handoff's
exact `model`, and exact `reasoning_effort`. Never inherit the primary model or reasoning setting.
In particular, a `Sol/XHigh` primary must not turn the two `frugal/low` passes into XHigh work.

Do not copy provider model IDs between runtimes. If the runtime exposes no matching selectable
model or cannot pass explicit overrides, stop before dispatch with `ROUTE_UNAVAILABLE`; do not
silently fall back to the costly primary. Runtime-reported actual model, when available, must match
the requested model. A mismatch is a failed pass.

Allow one bounded tier increase only for the affected pass after a verifier rejects evidence or a
confirmed transaction, security, irreversible-data, or public-API risk exceeds the selected
profile. Authentication, quota, timeout, missing tools, and scope errors are not reasons to buy a
larger model.

## Workflow

### 1. Preflight

Verify the exact agent and both exact skill IDs. Capture changed symbols, Spring bean and
transaction boundaries, persistence mappings, public API contracts, build system, and relevant
tests. Stop before review with `MISSING_DEPENDENCY`, `UNSTABLE_SOURCE`, or `ROUTE_UNAVAILABLE` when
the three-pass suite cannot run consistently.

### 2. Three-pass parallel review

Start all three passes in one wave with a maximum of three active native children. Forbid recursive
delegation and provider CLI subprocesses. If three-way native parallelism is unavailable, return
`INCOMPLETE` with `NATIVE_PARALLELISM_UNAVAILABLE`; do not pretend a sequential or partial run met
this workflow contract.

Require each result to contain `severity`, `confidence`, `path:line`, affected symbol, root cause,
evidence, impact, recommendation, governing principle, verification, requested profile/model,
requested reasoning effort, observed model when available, and `inheritance_used: false`.

- `java-reviewer`: Java language/JVM contracts plus Spring DI, proxy/AOP, transaction propagation
  and rollback, singleton state, MVC validation, JPA entity state/locking, exception mapping,
  authorization boundaries, and focused Spring tests
- `oop-design-review`: responsibility placement, Tell-Don't-Ask, invariants, encapsulation,
  cohesion/coupling, dependency direction, and persistence leakage
- `design-pattern-apply`: demonstrated change axes, simpler alternatives, GoF/Spring pattern fit,
  indirection cost, and YAGNI/over-design rejection

Return only structured findings and artifact references. Do not merge raw child transcripts.

### 3. Evidence gate and reconciliation

Primary independently re-reads every claimed location and command result. CRITICAL/HIGH findings
whose factual premise is not confirmed cannot remain unconditional. Deduplicate only findings with
the same location or symbol **and** the same root cause; preserve all contributors and the strongest
supported severity.

Keep separate and record dissent when recommendations conflict, especially:

- pattern introduction versus KISS/YAGNI
- moving behavior into a JPA entity versus persistence/transaction invariants
- narrower Java API contracts versus Spring proxy/serialization requirements
- stronger encapsulation versus ORM construction and lazy-loading behavior

Prefer the smallest behavior-preserving action supported by evidence. Never invent consensus.

### 4. Verdict

- `INCOMPLETE`: any mandatory pass failed, timed out, was stale, used the wrong route, or returned unusable output
- `BLOCK`: at least one supported, confirmed `CRITICAL` finding
- `CHANGES_REQUIRED`: no confirmed CRITICAL and at least one supported `HIGH` finding
- `WARNING`: only supported `MEDIUM` or `LOW` findings remain
- `APPROVE`: all three correctly routed passes completed and no supported finding remains

Never approve a partial run or a model-routing mismatch. An inferred CRITICAL is conditional until
its named verification confirms the premise.

## Output contract

Return one report containing:

1. frozen scope, baseline, revision, constraints, assumptions, and commands run
2. exact three-entry run ledger with child ID, requested profile/model/reasoning, observed model,
   inheritance flag, status, and artifact reference
3. aggregate verdict and one-sentence rationale
4. unified findings with stable ID, location, evidence, contributors, and dissent
5. accepted, rejected, and unresolved recommendations with rationale
6. minimal Java examples for supported changes, without modifying the target
7. compile, unit, Spring slice/context, transaction, persistence, and regression verification matrix
8. coverage gaps and next actions

Redact credentials and personal data. A specialist's completion claim is candidate evidence, not
proof of review completeness.

