Skip to content
Sri
All work

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

sift check run on SIFT itself: a git warning, a passing build, 101 passing tests, and PROJECT HEALTHY

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

sift inspect on a Next.js project: language, framework, build tool, test runner, and git state
inspect: what am I looking at?
sift doctor reporting eight passing checks and one git warning
doctor: problems, each with its evidence.
sift diff summarising one modified test file with two lines added and two removed
diff: changes grouped by file role.
sift inspect on a folder it can't identify, reporting unknown for language, build, and tests
Anything it can't identify is reported as unknown, not guessed.