DEV Community

Grigor Musoyan
Grigor Musoyan

Posted on

I built GitX to turn messy AI-generated changes into clean Git history

AI coding agents are great at changing code.

But after a long session with Codex, Claude Code, Cursor, or another coding agent, I often end up with something like this:

17 changed files
Enter fullscreen mode Exit fullscreen mode

Some files belong to a feature.

Some belong to a bug fix.

Some are tests.

Some are documentation.

Putting everything into one commit works, but it usually creates messy Git history.

So I built GitX.

GitX is a portable Git workflow skill for AI coding agents. It inspects your working tree, understands the changes, and helps organize them into clean, logical commits.

Start with a commit plan

One of the commands I use most is:

gitx plan
Enter fullscreen mode Exit fullscreen mode

It analyzes the current changes and proposes how they should be grouped without creating any commits.

For example:

3 logical commits

feat(auth): add token refresh support

fix(api): handle expired authentication sessions

test(auth): cover refresh token behavior
Enter fullscreen mode Exit fullscreen mode

This lets me review the plan before GitX changes anything.

Create the commits

If the plan looks good:

gitx
Enter fullscreen mode Exit fullscreen mode

GitX creates Conventional Commit messages based on the actual changes.

If the working tree contains multiple logical groups, GitX can separate them instead of automatically putting unrelated changes into one large commit.

GitX does more than commit messages

I didn't want GitX to be only another commit-message generator.

It can also help with the rest of the Git workflow:

gitx status
gitx tree
gitx plan
gitx check

gitx branch
gitx pull
gitx push

gitx pr

gitx issue <description>
gitx issue <number>

gitx resolve
gitx amend
Enter fullscreen mode Exit fullscreen mode

For example:

Run checks before committing

gitx check
Enter fullscreen mode Exit fullscreen mode

GitX detects relevant project checks such as tests or linting and runs them before creating the commit.

Create a branch

gitx branch
Enter fullscreen mode Exit fullscreen mode

GitX can infer an appropriate branch name and prefix such as feat/, fix/, docs/, or refactor/.

Create a GitHub pull request

gitx pr
Enter fullscreen mode Exit fullscreen mode

It inspects the commits and changes, pushes the branch when needed, and creates a pull request with a generated title and summary.

Work with GitHub issues

Create an issue:

gitx issue Login fails after token expiry
Enter fullscreen mode Exit fullscreen mode

Or ask your coding agent to work on an existing issue:

gitx issue 123
Enter fullscreen mode Exit fullscreen mode

Resolve conflicts

gitx resolve
Enter fullscreen mode Exit fullscreen mode

GitX can inspect an in-progress merge or rebase conflict, understand both sides of the change, resolve it, and run the relevant checks.

Safety matters

Git automation can become dangerous quickly, so GitX is intentionally conservative.

It avoids force-pushing, doesn't push during a normal commit workflow, protects existing branches and working-tree changes, and warns before including files that may contain credentials, secrets, logs, or build artifacts.

Install GitX

GitX follows the portable Agent Skills SKILL.md format and is designed for compatible coding agents such as Codex, Claude Code, Cursor, and other Agent Skills-compatible tools.

Install it with:

npx skills add musoyangrigor/gitx-skill --skill gitx
Enter fullscreen mode Exit fullscreen mode

Then start with:

gitx plan
Enter fullscreen mode Exit fullscreen mode

GitHub:

https://github.com/musoyangrigor/gitx-skill

Feedback is welcome

I'd especially like feedback from developers using AI coding agents on real projects.

If you try GitX, I'm curious about one thing:

Does gitx plan group your changes the way you would have grouped them yourself?

If it doesn't, I'd love to hear about the case so I can improve it.

Top comments (2)

Collapse
 
atern54aa profile image
Atern Nns

That really good!

Collapse
 
musoyangrigor profile image
Grigor Musoyan

Thanks