Welcome to git-uncommitted-scanner. This document defines the mandatory guidelines, architectural standards, quality controls, and PR rules that all AI agents (including GitScanner Bolt ⚡, GitScanner Evo 🚀, GitScanner Palette 🎨, and standard coding assistants) MUST follow when contributing to this codebase.
git-uncommitted-scanner is a high-speed, cross-platform CLI & TUI utility that scans directories recursively to detect Git repositories with pending uncommitted changes.
- Primary Language: Python >= 3.9
- CLI Engine:
Typer - Console Output & Styling:
Rich - Interactive TUI:
Textual - Subprocess & OS Logic: Standard library
subprocess,pathlib.Path - Build Backend:
setuptools(PEP 621, pinned<75.0inpyproject.toml)
- Single Entry Point: All application logic, CLI routing, and TUI widgets reside cleanly under
git_scanner/main.py. - Cross-Platform Compatibility: Every file operation and terminal invocation must work seamlessly across Windows, macOS, and Linux.
- No Unnecessary Dependencies: Prefer standard library solutions or existing dependencies (
typer,rich,textual). Do not add external packages without explicit approval. - Preserve Functionality: Never modify existing working features, public interfaces, or CLI command signatures without explicit instructions.
- Zero-Change Execution: If an agent run uncovers no practical, high-value performance, feature, or UX improvement, the agent MUST NOT modify any files or submit commits/PRs.
- No Pure Aesthetic Churn: Never refactor code simply to change formatting, variable names, line spacing, or syntax style unless it delivers measurable, practical utility.
- Empirical Verification: All changes must be verified locally by running
scanreposor test commands.
- Avoid heavy module imports at the top level if they delay CLI invocation.
- Keep directory walking efficient (
Path.rgloboros.scandir) and minimizegit statussubprocess execution overhead. - Ensure
Textualworker threads run heavy directory scans in the background without blocking the UI main thread.
- Focus on practical, working CLI and TUI enhancements (e.g. branch info, uncommitted file counts, exclusion filters, JSON export, config files).
- No stub implementations, fake UI elements, TODO placeholders, or broken workflows.
- Maintain high visual contrast and modern terminal styling using
Richtables andTextualcomponents. - Ensure keyboard shortcuts are clean, intuitive, and properly documented in the TUI footer.
- Provide clear error feedback if external terminal execution fails.
- Never commit build artifacts (
dist/,build/,*.egg-info/,__pycache__/). - Never commit scratch files,
.patch,.log, or.tmpfiles. - Keep
.gitscanner/logs focused on long-term learnings.
When creating a Pull Request or submitting code changes, you MUST structure the PR description with the following sections:
-
Executive Summary: 2-3 sentences max explaining WHAT was changed and WHY.
-
Impact & Safety Matrix:
| File Changed / Removed | Action | Technical Reason | Post-Removal/Update Impact | Risk Level |
|---|---|---|---|---|
path/to/file |
Modified/Deleted | Why it was changed | What improves or changes | 🟢 Low / 🟡 Med / 🔴 High |
-
Verification: State tests run or how you verified this won't break existing IPC/UI threads.
-
Clean Artifacts: NEVER commit
.patch,.log, or.tmpfiles.