sem - Git के ऊपर function/class स्तर पर बदलाव tracking जोड़ने वाला semantic version management tool
(github.com/Ataraxy-Labs)- लाइनों के बजाय code entities की तुलना करके दिखाता है कि कौन-सा function/method/class जोड़ा, बदला, हटाया, move किया या rename किया गया है
- "line x~y बदली गई" → "function
blahबदला गया"
- "line x~y बदली गई" → "function
- किसी भी Git repo में बिना configuration के काम करता है, और Git के बाहर भी मनचाही files की तुलना की जा सकती है
- SQLite में stored entity cache, repository के बाहर OS cache directory में रखा जाता है, इसलिए working tree को pollute नहीं करता
- tree-sitter से code parse करता है, और entity ID → AST structure hash → 80% से अधिक token similarity के क्रम में बदलाव से पहले/बाद के code को जोड़कर rename और move detect करता है
-
Supported commands
sem diff: working tree/staging/commit/commit range/किसी भी दो files की तुलना करता है, और plain text/Markdown/JSON output support करता हैsem impact: किसी खास function में बदलाव होने पर प्रभावित dependent code/callers/tests ढूंढता हैsem blame: function/class/method के entity-level last modifier को दिखाता हैsem log: git history के जरिए track करता है कि कोई एक entity कैसे बदली है- entity specify न करने पर repository के hotspots(ज्यादा बदली गई चीजें)/co-change pairs(बार-बार साथ में बदले गए pairs) का analysis करता है ("एक को छेड़ें, तो इसे भी मत भूलिए")
sem entities: current folder के नीचे की सभी entities दिखाता हैsem context: agent के लिए जरूरी आसपास का code token budget के हिसाब से तैयार करता हैsem setup: चलाने पर मौजूदाgit diffentity-level output में बदल जाता है, और staged changes का impact scope दिखाने वाला pre-commit hook भी install होता है- macOS और Linux पर Claude Code में resident dependency graph और prompt शुरू होने पर context hook जोड़ता है, जिससे हर बार repository को फिर से analyze करने या code ढूंढते रहने की लागत घटती है
sem mcp:diff,impact,context,entities,blame,logको MCP tools के रूप में उपलब्ध कराता है, ताकि coding agent पूरी file के बजाय सिर्फ जरूरी functions और dependencies query करे
- GitHub Action जोड़ने पर हर PR में बदले हुए functions/classes/methods को एक fixed comment में update करता है, और केवल formatting/comments बदलने वाले PRs को भी अलग पहचानता है
- TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++ सहित 32 languages और JSON/YAML/TOML/CSV/Markdown को support करता है
- unsupported files को chunk-level diff के रूप में handle करता है
- License: MIT OR Apache-2.0
अभी कोई टिप्पणी नहीं है.