explaingit

crimeacs/auto-improve

19PythonAudience · writerComplexity · 2/5Setup · easy

TLDR

auto-improve is a Python tool that automatically rewrites any text file in a loop, keeping only edits that pass a two-round AI quality test. A separate AI judges each change to avoid self-flattery bias, and every accepted edit is saved as a git commit.

Mindmap

mindmap
  root((auto-improve))
    How It Works
      Generate edits
      Score candidates
      Head-to-head compare
      Keep only winners
    Quality Check
      Separate judge AI
      Two-round comparison
      Bias elimination
    Rubric System
      Custom markdown rubric
      Auto-infer from file
      Weighted qualities
    Git Integration
      Commits each change
      Diff history
      Branch per session
    Use Cases
      Emails and posts
      Landing pages
      Prompts and configs
      API designs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically improve a landing page or blog post draft until the writing stops getting better.

USE CASE 2

Refine AI prompts iteratively so each version is meaningfully stronger than the last.

USE CASE 3

Polish emails or config files using a custom quality rubric that weights what matters to you.

USE CASE 4

Review improvement history as clean git diffs instead of one opaque rewrite.

Tech stack

PythonGoogle GeminiGit

Getting it running

Difficulty · easy Time to first run · 30min

Requires Python 3.9+, a Google Gemini API key, and the file must be inside a git repository. One external dependency beyond the standard library.

License not mentioned in the explanation.

In plain English

auto-improve is a Python tool that automatically rewrites and refines any text file, stopping after each edit only if the new version is genuinely better than the previous one. Point it at a file, and it runs a loop: generate a set of proposed edits, score each one against a quality rubric, run a head-to-head comparison between the best candidate and the current version, and keep the change only if it clearly wins. Edits that do not pass that test are discarded and the file reverts to what it was before. The quality check is done by a separate AI model from the one writing the edits. This matters because a model asked to improve something will almost always describe its own output as an improvement, whether or not it actually is. By separating the writer from the judge, the tool avoids that trap. The comparison step goes further: it runs the same head-to-head twice with the two versions in different positions, and only keeps the change if it wins both times. This removes a known bias where AI judges tend to favor whichever option appears first. You can give the tool a rubric, which is a markdown file listing the qualities you care about and how much weight each gets. If you do not have one, the tool will infer a rubric from the file itself given a one-line description of the goal. The rubric is what gets optimized, so the more precise it is, the better the results. Every accepted change is committed to a git branch, so the improvement history is visible as a series of diffs rather than a single rewrite. This also means the tool requires the file to be inside a git repository to work. The tool works on emails, landing pages, blog posts, prompts, configuration files, API designs, or any other text. It uses Google Gemini by default, requires Python 3.9 or later, and has one external dependency beyond the standard library.

Copy-paste prompts

Prompt 1
I have a landing page text file in a git repo. Using auto-improve, how do I run the improvement loop on it and write a rubric that prioritizes clarity and conversion?
Prompt 2
How do I use auto-improve to iteratively refine an AI prompt file? What rubric criteria should I include to measure prompt quality?
Prompt 3
Walk me through setting up auto-improve with my Google Gemini API key and pointing it at a blog post draft in Python 3.9.
Prompt 4
How does auto-improve's two-round comparison work, and how do I interpret the git commit history it creates after each accepted edit?
Prompt 5
I want auto-improve to infer a rubric automatically from my file. What one-line goal description should I give it for a product README?
Open on GitHub → Explain another repo

← crimeacs on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.