Run pre-release verification for Spring Boot builds, tests, scans, and diffs.
Copy the install command and let the AI configure it · recommended for beginners
Please install the "springboot-verification" skill from askskill: 1. Download https://raw.githubusercontent.com/affaan-m/ECC/main/skills/springboot-verification/SKILL.md 2. Save it as ~/.claude/skills/springboot-verification/SKILL.md 3. Reload skills and tell me it's ready
Run a pre-release verification for this Spring Boot project: build it first, then run static analysis, unit tests with coverage, followed by dependency and code security scans, and finally summarize whether it is ready for release.
A verification report with build status, test coverage, security risks, and a release recommendation.
Validate whether this Spring Boot branch is ready for a PR: run the build, tests, and static checks, compare the branch against main, and identify potential issues and required fixes.
A pre-PR summary listing failures, key change risks, and recommended fixes.
Run a quality gate verification for this Spring Boot project: check code quality, test pass rate, coverage thresholds, and known vulnerabilities, and if the gate fails, provide the blocking reasons.
A gate result showing pass or block status, with a concrete list of issues.
Run before PRs, after major changes, and pre-deploy.
mvn -T 4 clean verify -DskipTests
# or
./gradlew clean assemble -x test
If build fails, stop and fix.
Maven (common plugins):
mvn -T 4 spotbugs:check pmd:check checkstyle:check
Gradle (if configured):
./gradlew checkstyleMain pmdMain spotbugsMain
mvn -T 4 test
mvn jacoco:report # verify 80%+ coverage
# or
./gradlew test jacocoTestReport
Report:
Test service logic in isolation with mocked dependencies:
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock private UserRepository userRepository;
@InjectMocks private UserService userService;
@Test
void createUser_validInput_returnsUser() {
var dto = new CreateUserDto("Alice", "[email protected]");
var expected = new User(1L, "Alice", "[email protected]");
when(userRepository.save(any(User.class))).thenReturn(expected);
var result = userService.create(dto);
assertThat(result.name()).isEqualTo("Alice");
verify(userRepository).save(any(User.class));
}
@Test
void createUser_duplicateEmail_throwsException() {
var dto = new CreateUserDto("Alice", "[email protected]");
when(userRepository.existsByEmail(dto.email())).thenReturn(true);
assertThatThrownBy(() -> userService.create(dto))
.isInstanceOf(DuplicateEmailException.class);
}
}
Test against a real database instead of H2:
@SpringBootTest
@Testcontainers
class UserRepositoryIntegrationTest {
@Container
static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:16-alpine")
.withDatabaseName("testdb");
@DynamicPropertySource
static void configureProperties(DynamicPropertyRegistry registry) {
registry.add("spring.datasource.url", postgres::getJdbcUrl);
registry.add("spring.datasource.username", postgres::getUsername);
registry.add("spring.datasource.password", postgres::getPassword);
}
@Autowired private UserRepository userRepository;
@Test
void findByEmail_existingUser_returnsUser() {
userRepository.save(new User("Alice", "[email protected]"));
var found = userRepository.findByEmail("[email protected]");
assertThat(found).isPresent();
assertThat(found.get().getName()).isEqualTo("Alice");
}
}
Test controller layer with full Spring context:
@WebMvcTest(UserController.class)
class UserControllerTest {
@Autowired private MockMvc mockMvc;
@MockBean private UserService userService;
@Test
void createUser_validInput_returns201() throws Exception {
var user = new UserDto(1L, "Alice", "[email protected]");
when(userService.create(any())).thenReturn(user);
mockMvc.perform(post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content("""
{"name": "Alice", "email": "[email protected]"}
"""))
.andExpect(status().isCreated())
.andExpect(jsonPath("$.name").value("Alice"));
}
@Test
void createUser_invalidEmail_returns400() throws Exception {
mockMvc.perform(post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content("""
{"name": "Alice", "email": "not-an-email"}
"""))
.andExpect(status().isBadRequest());
}
}
# Dependency CVEs
mvn org.owasp:dependency-check-maven:check
# or
…
Use Bun for runtime, bundling, testing, packages, and Node migration decisions.
Use the correct Ethereum Keccak-256 hashing in Node.js and TypeScript.
Handle returns, refunds, fraud checks, and warranty claim decisions efficiently.
Design Quarkus 3 backend patterns for messaging, APIs, data, and async workflows.
Apply Laravel security best practices for auth, vulnerabilities, APIs, and deployment.
Apply Nuxt 4 patterns for SSR safety, performance, and data fetching.
Run a pre-release verification loop for Quarkus builds, tests, scans, and reviews.
Run pre-release verification for Django projects across tests, security, and deployment checks.
Verify Laravel projects with environment checks, tests, security scans, and release readiness.
Apply Spring Boot security best practices for authentication, authorization, and service hardening.
Provides systematic verification for Claude Code sessions to improve correctness and quality.
Verify results before claiming work is complete, fixed, or passing.