We mark a feature done at the moment it works. The graph keeps a quieter record: the commits that arrive after the bulk is built, when the thing is already running and the celebration is over.
For scripts/enrichment — the pipeline that drafts and cross-links the site's content — four-fifths of every line was written by its seventh commit. Then six more commits came, holding twenty percent of the churn but none of the glory.
the next morningWhat only running reveals
The first two aftercare commits arrived the very next day. They are not features. They are the sound of a thing meeting reality for the first time:
A rate limit no one hit until the pipeline ran at volume. A field-name mismatch that returned nothing, silently, until someone checked the output. These bugs could not have been found before launch, because the bug was the launch — the collision between the plan and the live API. The work of finding them is invisible by construction. There is no feature to point at. There is only the thing that now, finally, works.
the slow tailCare has no end date
And it kept going, thinning out over weeks: a migration of its reads onto a database, then — five weeks past launch — a tuning of the prompt and a new validation pass.
This is the ordinary afterlife of anything that ships. The launch is a moment; the upkeep is a tenure. We tell the story of software as a sequence of births, because births are legible and maintenance is not. But the graph remembers that most of a working thing's life is spent simply being kept working.
core sample · scripts/enrichment · after the launch
A rate limit met at volume. A mismatch that returned nothing. A migration, a tuning, weeks apart. None of them a feature; all of them the reason the feature still runs.
The launch is the moment. The care is the rest of the life.