SIFT (WIP)
A command-line tool that inspects, health-checks, and diffs the project you're in, and says `unknown` instead of guessing.
Sole developer · 2026

Overview
SIFT answers four questions about the project you're standing in: what is it, does it look healthy, what might be wrong, and what did I change. It runs locally, needs no network and no accounts, and prints only what it can back with evidence.
Problem
Opening an unfamiliar repository means running git status, finding the build tool, guessing the test command, and checking whether the Java or lockfile setup is sane. SIFT does that routine in one place and never invents a command a project didn't ask for.
What I did
Solo project: the tool, its tests, the CI setup, and the documentation.
Built with
- Java
- Maven
- JUnit
Architecture
Detection reads marker files in the current directory (pom.xml, build.gradle, package.json, pyproject.toml) and declared dependencies, so framework and test framework come from evidence rather than guesses. A directory walk skips build output and dependency folders, never follows symlinks, and stops at 100,000 files.
check runs only the commands known to be right for the detected project, never reads commands from project files, and never goes through a shell. A failed build skips the tests, and each step has a 10 minute timeout.
doctor prints findings only, each with its evidence: conflict markers with file and line, a Java version newer than the runtime, tracked credential-looking files, missing lockfiles.
The challenges
Saying unknown instead of guessing
Anything SIFT can't identify is reported as unknown. That keeps its output trustworthy, but it means every detector has to prove what it claims from a marker file or a declared dependency.
Testing against real repositories
The tests build throwaway git repositories, so they exercise the same git behavior users see. CI runs on Linux, macOS, and Windows to catch path and process differences.
Screenshots



