Skip to main content

Git forensics tool for analyzing AI-authored code quality

Project description

CodeAssay

Git forensics tool for analyzing AI-authored code quality. Detects AI-generated commits, identifies rework, classifies root causes, and generates quality reports.

Install

pip install codeassay

Quick Start

# Scan a repository
codeassay scan /path/to/repo

# View a report
codeassay report

# Scan multiple repos with combined output
codeassay scan ../repo1 ../repo2 ../repo3

Commands

Command Purpose
codeassay scan <paths> Scan repos for AI commits and rework
codeassay report Generate quality report (CLI or markdown)
codeassay commits List AI-authored commits
codeassay rework List rework events with classification
codeassay reclassify <commit> <category> Override a classification
codeassay export --format json Export raw data
codeassay dashboard Open interactive HTML dashboard in browser

How It Works

AI Commit Detection identifies AI-authored commits via:

  1. Co-Authored-By trailers (Claude, Copilot, GPT)
  2. Branch naming patterns (Superpowers worktrees)
  3. Manual AI-Assisted: true trailers

Rework Detection traces subsequent commits that modify AI-authored lines using git blame ancestry within a configurable time window (default: 14 days).

Classification categorizes rework into 7 types using commit message keywords and diff shape analysis:

  • Bug fix, Misunderstanding, Test failure, Style/convention violation
  • Security issue, Incomplete implementation, Over-engineering

Dashboard

Generate an interactive HTML dashboard with charts and visualizations:

codeassay dashboard

Opens a self-contained HTML file in your browser with:

  • Summary metric cards (AI commit rate, first-pass success, rework rate, MTTR)
  • Rework category doughnut chart with percentages
  • Monthly trend line chart (AI commits vs rework events)
  • Top rework file hotspots
  • Rework by AI tool comparison

The dashboard works offline, requires no server, and is shareable — copy the HTML file to screenshot or embed in publications. Use --no-open to generate without opening the browser, or --output path.html to save to a custom location.

Ignoring Files

Create a .codeassayignore file in your repo root to exclude files from analysis. Uses gitignore-style patterns:

# Exclude documentation and config noise
*.md
.DS_Store
.organization

# Exclude a directory (one level)
docs/*

# Exclude a directory (recursive)
docs/**

Ignored files are filtered from both AI commit tracking and rework detection, giving you cleaner metrics focused on actual code quality.

Data Storage

Scan data is stored in .codeassay/quality.db (SQLite) inside each scanned repo. Query it directly with any SQL tool:

sqlite3 .codeassay/quality.db "SELECT tool, COUNT(*) FROM ai_commits GROUP BY tool"

Claude Code Plugin

Install as a Claude Code plugin to use /codeassay within Claude Code sessions.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codeassay-0.1.1.tar.gz (93.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codeassay-0.1.1-py3-none-any.whl (90.0 kB view details)

Uploaded Python 3

File details

Details for the file codeassay-0.1.1.tar.gz.

File metadata

  • Download URL: codeassay-0.1.1.tar.gz
  • Upload date:
  • Size: 93.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for codeassay-0.1.1.tar.gz
Algorithm Hash digest
SHA256 89e0b9f27e7d3645faee915a8fb0ba1b13f7d27b95b8f0becbbe5b2b75d38312
MD5 acba7c8b063778f7ec334e74b22bc56d
BLAKE2b-256 d27f80e9cf5cbce125566118d945a372389c00dbfa383f60c378d848d9879741

See more details on using hashes here.

File details

Details for the file codeassay-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: codeassay-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 90.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for codeassay-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b91f3cdcd32c702417d7034867ebc449cf759a817fae970b2209960a7c219c6a
MD5 f2b175345ef82cfaf05221d1a88f21a3
BLAKE2b-256 bcc57c62c9bb089fd4c2f2668a7d7616b57d0656574940a2baa43cc4344b31bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page