sem log, sem review, sem changelog #16
Replies: 2 comments 1 reply
-
|
Thanks a lot, I have a few thoughts in my mind will dump here soon. |
Beta Was this translation helpful? Give feedback.
-
|
sem log: The Rust CLI already has sem review: We actually built this as a separate tool called inspect. It does entity-level triage with ConGra change classification, risk scoring based on the dependency graph (blast radius, dependents, public API surface), and groups changes into logical units using Union-Find. It's designed as a pre-filter for LLMs: cut 100 changed entities down to the 10 that matter, then let an LLM look at those. We benchmarked it against Greptile and CodeRabbit on 141 golden comments across 52 PRs, and it hits 95% recall. The approach here is similar in spirit (grouping by API surface vs internal, counting dependents for risk) but inspect goes further with the graph-based scoring and LLM integration. sem changelog: This is a natural extension of On direction: sem's Rust rewrite is the foundation. sem-core is the library that weave, inspect all depend on for entity extraction, the dependency graph, and structural hashing. The CLI commands ( Would be happy to work together on getting |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hello team, I've been hacking on this a bit and wanted to surface this here for interest/input. I'm not sure which direction you're headed, seems there's some overlap with the typescript cli, but there's also divergence, both logs seem useful for different purposes.
TS sem log vs TS sem history vs Rust sem log --entity
sem log
Track the full history of any function, class, or entity across your entire git history and follow it through renames and moves.
How has this function changed over time?
sem log --entity authenticateUser
Most git tools lose track of an entity when it gets renamed or moved to another file. sem log follows it backward through the history automatically, so you see the full story in one view.
It also distinguishes between a change to the function signature (parameters added, removed, return type changed) and a change to just the body. If someone only reformatted the code, it tells you that too.
If the name is ambiguous, sem tells you and suggests how to narrow it
Scope to a specific file
sem log --entity login --file src/auth/login.ts
Limit to a commit range
sem log --entity login --from v1.0.0 --to v2.0.0
JSON output for scripts and AI agents
sem log --entity login --format json
sem review
Get a structured review of any set of changes, grouped by what matters: API surface changes that affect callers, internal implementation details, and
config/data changes.
For each API surface change, it tells you how many other entities depend on it and which files they live in. If you delete something that was referenced
elsewhere, it flags exactly who was calling it. The risk assessment is based on the actual dependency graph, not heuristics.
Review staged changes before committing
sem review --staged
Review a specific commit
sem review --commit abc1234
JSON for CI integration
sem review --format json
sem changelog
Generate a changelog from a commit range, automatically categorized into breaking changes, additions, modifications, and removals, with a semver bump suggestion.
It uses the dependency graph to determine whether a change is API-facing or internal, parses conventional commit messages when available, and suggests a
semver bump based on what actually changed in the code — not just the commit message.
Markdown output for release notes
sem changelog --from v1.0.0 --to v2.0.0 --format markdown --heading "v2.0.0"
Scoped to specific file types
sem changelog --from HEAD~10 --to HEAD --file-exts .ts .go
JSON for automation
sem changelog --format json
Beta Was this translation helpful? Give feedback.
All reactions