Nine Thousand Files on Day One

Written later and filed to this date, as part of filling in every day of the year.

The README is confident. A modern job-search platform, Next.js in front and FastAPI behind: browse listings, filter by keyword, location, type and salary, apply with a cover letter and a resume, build an ATS-optimized resume with AI assistance. Sign in with credentials, Google or GitHub. Three test frameworks are named, one each for the front end, the back end and the browser. That was the plan.

The log is the record. The first commit, in March 2025, has 9,464 files and two and a half million lines in it. Roughly seven thousand of those files are the backend’s virtual environment and another twenty-two hundred are a second one, committed whole. Nine more commits follow over four weeks. Their subjects, in order: “Refactor testing setup and improve coverage”, “bug fixes”, “styles cleanup”, “UI updates”, “fixed test case”, “added jobs page”, “progress”, “/jobs page”, “WIP”. The one called “bug fixes” touched 467 files and added 280,000 lines. Then nothing for fourteen months.

What it was for was me. I wanted the thing to exist and I wanted the stack under my hands, and both of those are real reasons. Neither of them answers the question a product eventually asks, which is who maintains this, and the log shows the moment the question went unanswered: the last word written in 2025 is “WIP”.

When the build agents arrived in June 2026, the first things they met were not bugs in the product. They were the repository’s own tooling, left as it was the day its only user stopped. A pre-commit hook ran a formatter that was not installed, so every commit failed the hook and the only way to commit was to skip it. The lint configuration extended a plugin that was not in the dependencies, so lint could not load. Two copies of one test suite existed, and one had drifted from its component and failed every time. The agents’ first commit to the repository was about none of the features. It turned off an isolation setting because the test runner’s file crawler was finding the agents’ own scratch directories and colliding on them.

What the repository taught is in the commit messages. “progress” and “WIP” are what you write when you are the only reader, and you will remember. The agents’ messages on the same repository a year later run to paragraphs, because each one is written for a successor with no memory of the last. A project with no maintainer is a project whose log is addressed to nobody, and the log is the first thing a maintainer reads.

By the end of June the agents had taken it through forty-five sessions and given it the interview-prep tools the README never mentioned. The log’s two halves sit one line apart. “WIP”, April 2025. Then, fourteen months later: “chore(dev): work in place, ignore nested worktrees.”


← all writing