Source profileQuality 74/100Review permissions

affaan-m/ECC/docs/tr/skills/springboot-verification/SKILL.md

springboot-verification

Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR.

Source repository stars
234,327
Declared platforms
0
Static risk flags
1
Last source update
2026-07-27
Source checked
2026-07-28

Decision brief

What it does—and where it fits

PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/affaan-m/ECC --skill "docs/tr/skills/springboot-verification"
    Safe inspection promptEditorial

    Inspect the Agent Skill "springboot-verification" from https://github.com/affaan-m/ECC/blob/4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38/docs/tr/skills/springboot-verification/SKILL.md at commit 4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Ne Zaman Aktif Edilir

      Spring Boot servisi için pull request açmadan önce

      Spring Boot servisi için pull request açmadan önceBüyük refactoring veya bağımlılık yükseltmelerinden sonraStaging veya production için deployment öncesi doğrulama
    2. 02

      Faz 1: Build

      bash mvn -T 4 clean verify -DskipTests

      bash mvn -T 4 clean verify -DskipTests
    3. 03

      veya

      ./gradlew clean assemble -x test bash mvn -T 4 spotbugs:check pmd:check checkstyle:check bash ./gradlew checkstyleMain pmdMain spotbugsMain bash mvn -T 4 test mvn jacoco:report 80%+ kapsam doğrula

      ./gradlew clean assemble -x test bash mvn -T 4 spotbugs:check pmd:check checkstyle:check bash ./gradlew checkstyleMain pmdMain spotbugsMain bash mvn -T 4 test mvn jacoco:report 80%+ kapsam doğrula
    4. 04

      Faz 2: Static Analiz

      Maven (yaygın plugin'ler):

      Maven (yaygın plugin'ler):Gradle (yapılandırılmışsa):
    5. 05

      Faz 3: Testler + Kapsam

      bash mvn -T 4 test mvn jacoco:report 80%+ kapsam doğrula

      bash mvn -T 4 test mvn jacoco:report 80%+ kapsam doğrula

    Permission review

    Static risk signals and limitations

    Runs scripts

    medium · line 166

    The documentation asks the agent to run terminal commands or scripts.

    git secrets --scan # yapılandırılmışsa

    Runs scripts

    medium · line 192

    The documentation asks the agent to run terminal commands or scripts.

    git diff --stat

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score74/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars234,327SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    affaan-m/ECC
    Skill path
    docs/tr/skills/springboot-verification/SKILL.md
    Commit
    4e973d3eaf92d97f8d2e2d8abb39d8bdc8711b38
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    Spring Boot Doğrulama Döngüsü

    PR'lardan önce, büyük değişikliklerden sonra ve deployment öncesi çalıştırın.

    Ne Zaman Aktif Edilir

    • Spring Boot servisi için pull request açmadan önce
    • Büyük refactoring veya bağımlılık yükseltmelerinden sonra
    • Staging veya production için deployment öncesi doğrulama
    • Tam build → lint → test → güvenlik taraması pipeline'ı çalıştırma
    • Test kapsamının eşikleri karşıladığını doğrulama

    Faz 1: Build

    mvn -T 4 clean verify -DskipTests
    # veya
    ./gradlew clean assemble -x test
    

    Build başarısız olursa, durdurun ve düzeltin.

    Faz 2: Static Analiz

    Maven (yaygın plugin'ler):

    mvn -T 4 spotbugs:check pmd:check checkstyle:check
    

    Gradle (yapılandırılmışsa):

    ./gradlew checkstyleMain pmdMain spotbugsMain
    

    Faz 3: Testler + Kapsam

    mvn -T 4 test
    mvn jacoco:report   # 80%+ kapsam doğrula
    # veya
    ./gradlew test jacocoTestReport
    

    Rapor:

    • Toplam testler, geçen/başarısız
    • Kapsam % (satırlar/dallar)

    Unit Testler

    Mock bağımlılıklarla izole olarak servis mantığını test edin:

    @ExtendWith(MockitoExtension.class)
    class UserServiceTest {
    
      @Mock private UserRepository userRepository;
      @InjectMocks private UserService userService;
    
      @Test
      void createUser_validInput_returnsUser() {
        var dto = new CreateUserDto("Alice", "alice@example.com");
        var expected = new User(1L, "Alice", "alice@example.com");
        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", "existing@example.com");
        when(userRepository.existsByEmail(dto.email())).thenReturn(true);
    
        assertThatThrownBy(() -> userService.create(dto))
            .isInstanceOf(DuplicateEmailException.class);
      }
    }
    

    Testcontainers ile Entegrasyon Testleri

    H2 yerine gerçek bir veritabanına karşı test edin:

    @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", "alice@example.com"));
    
        var found = userRepository.findByEmail("alice@example.com");
    
        assertThat(found).isPresent();
        assertThat(found.get().getName()).isEqualTo("Alice");
      }
    }
    

    MockMvc ile API Testleri

    Tam Spring context ile controller katmanını test edin:

    @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", "alice@example.com");
        when(userService.create(any())).thenReturn(user);
    
        mockMvc.perform(post("/api/users")
                .contentType(MediaType.APPLICATION_JSON)
                .content("""
                    {"name": "Alice", "email": "alice@example.com"}
                    """))
            .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());
      }
    }
    

    Faz 4: Güvenlik Taraması

    # Bağımlılık CVE'leri
    mvn org.owasp:dependency-check-maven:check
    # veya
    ./gradlew dependencyCheckAnalyze
    
    # Kaynakta gizli bilgiler
    grep -rn "password\s*=\s*\"" src/ --include="*.java" --include="*.yml" --include="*.properties"
    grep -rn "sk-\|api_key\|secret" src/ --include="*.java" --include="*.yml"
    
    # Gizli bilgiler (git geçmişi)
    git secrets --scan  # yapılandırılmışsa
    

    Yaygın Güvenlik Bulguları

    # System.out.println kontrolü (yerine logger kullan)
    grep -rn "System\.out\.print" src/main/ --include="*.java"
    
    # Yanıtlarda ham exception mesajları kontrolü
    grep -rn "e\.getMessage()" src/main/ --include="*.java"
    
    # Wildcard CORS kontrolü
    grep -rn "allowedOrigins.*\*" src/main/ --include="*.java"
    

    Faz 5: Lint/Format (opsiyonel kapı)

    mvn spotless:apply   # Spotless plugin kullanıyorsanız
    ./gradlew spotlessApply
    

    Faz 6: Diff İncelemesi

    git diff --stat
    git diff
    

    Kontrol listesi:

    • Debug logları kalmamış (System.out, koruma olmadan log.debug)
    • Anlamlı hatalar ve HTTP durumları
    • Gerekli yerlerde transaction'lar ve validation mevcut
    • Config değişiklikleri belgelenmiş

    Çıktı Şablonu

    DOĞRULAMA RAPORU
    ===================
    Build:     [GEÇTİ/BAŞARISIZ]
    Static:    [GEÇTİ/BAŞARISIZ] (spotbugs/pmd/checkstyle)
    Testler:   [GEÇTİ/BAŞARISIZ] (X/Y geçti, Z% kapsam)
    Güvenlik:  [GEÇTİ/BAŞARISIZ] (CVE bulguları: N)
    Diff:      [X dosya değişti]
    
    Genel:     [HAZIR / HAZIR DEĞİL]
    
    Düzeltilecek Sorunlar:
    1. ...
    2. ...
    

    Sürekli Mod

    • Önemli değişikliklerde veya uzun oturumlarda her 30-60 dakikada bir fazları yeniden çalıştırın
    • Kısa döngü tutun: hızlı geri bildirim için mvn -T 4 test + spotbugs

    Unutmayın: Hızlı geri bildirim geç sürprizleri yener. Kapıyı sıkı tutun—production sistemlerinde uyarıları kusur olarak değerlendirin.

    Alternatives

    Compare before choosing