semantic-szz-analyzer

Identify bug-introducing commits by extending classic SZZ with semantic code analysis.

1|2|Updated Mar 10, 2026
One-click install
npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill semantic-szz-analyzer-santosomar
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: semantic-szz-analyzer
Source: https://github.com/santosomar/general-secure-coding-agent-skills/tree/main/skills/debugging/semantic-szz-analyzer
Command: npx skills add https://github.com/santosomar/general-secure-coding-agent-skills --skill semantic-szz-analyzer-santosomar

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill enhances the accuracy of identifying bug-introducing commits by moving beyond simple line-level blame to understand the semantic meaning of code changes.

Core Features & Use Cases

  • Semantic Filtering: Filters out false positives from classic SZZ (e.g., renames, reformats) using AST diffs and def-use chain analysis.
  • Intelligent Re-ranking: Ranks remaining candidates based on semantic distance, temporal proximity, and author signal.
  • Use Case: When classic SZZ identifies many unrelated commits as bug-introducers, use this Skill to refine the list to the most probable commit that actually caused the bug.

Quick Start

Use the semantic-szz-analyzer skill to analyze the commit history around the fix SHA 'fix-sha-12345'.

Frequently Asked Questions about semantic-szz-analyzer

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I identify bug-introducing commits in git without getting false positives from formatting changes?

To identify bug-introducing commits with fewer false positives, apply semantic SZZ analysis which filters out cosmetic changes like renames and reformats using AST-diff meaningfulness and def-use chain relevance. This yields higher-confidence bug-introduction data than classic SZZ.

What is the best way to improve classic SZZ precision when it flags too many unrelated commits as bug-introducers?

To improve classic SZZ precision when it flags too many unrelated commits, apply semantic code understanding to re-rank candidates based on semantic distance, temporal proximity, and author signal. This intelligent re-ranking isolates the most probable bug-introducing commit.

How does semantic code understanding detect bug-introducing commits differently from standard git blame?

Semantic code understanding detects bug-introducing commits by moving beyond simple line-level blame to analyze AST diffs, def-use chains, and bug-pattern matching. It identifies semantic-preserving refactorings to exclude them, pinpointing the actual code change that caused the bug.

Can I filter out semantic-preserving refactoring commits from my SZZ bug analysis results?

Yes, you can filter out semantic-preserving refactoring commits from SZZ bug analysis by applying semantic filtering. The analysis detects refactorings through AST-diff meaningfulness and bug-pattern matching to exclude them from the final bug-introduction candidate list.

When do I need semantic SZZ analysis for commit history debugging instead of standard blame?

You need semantic SZZ analysis for commit history debugging when classic SZZ precision is low or when high-confidence bug-introduction data is required. It is specifically designed for post-SZZ analysis to refine broad candidate lists into the most probable bug sources.

Why does classic SZZ identify unrelated git commits as bug-introducers and how can I refine the list?

Classic SZZ identifies unrelated git commits as bug-introducers because it relies on simple line-level blame without understanding code semantics. You can refine the list by applying semantic filtering and intelligent re-ranking based on AST diffs and bug-pattern matching.