the specgit blog
Why product specs go stale when they live away from the code
· the specgit team
The spec was accurate the day you shared it. Then engineering picked up the work, and every day since, the product has drifted a little further from the document.
Most teams treat this as a discipline problem — someone should have updated the doc. It isn't. It's a location problem, and it has a mechanical explanation.
A spec's accuracy peaks on kickoff day
Watch what actually happens to a spec written in a doc app. You share the link in Slack. Engineers read it once — carefully, even — then translate it into tickets and build from those. From that moment the ticket tracker is the working truth and the doc is a snapshot.
Then the product keeps moving. Scope gets cut in a standup. An edge case gets decided in a pull request comment. A third-party constraint forces a design change in week three. None of those decisions happen anywhere near the doc, and nothing carries them back into it.
Updating the doc is always extra work
When the change happens in the repo and the spec lives in a doc app, updating it means leaving the tool where the decision was made, opening another app, finding the page, and editing it — with no review, and no connection to the change that prompted it. Every step is friction and none of it is enforced, so mostly it doesn't happen.
Six months later the spec describes a product that no longer exists, and everyone quietly learns not to trust the docs folder — which defeats the point of writing specs at all.
Stale specs bill you later
A stale spec isn't just untidy. It has specific costs:
- New teammates onboard from it and build the wrong mental model of the product.
- Support and sales quote behavior as designed, not as shipped.
- Settled decisions get re-litigated because the rationale is buried in resolved comment threads nobody can find.
- AI coding agents never see it. They work from the repository — a spec in a doc app simply isn't context for them.
Put the spec where the change pressure is
Every change to the product passes through the repository — that's where code is written, reviewed, and merged. A doc that lives there sits in the path of those changes instead of a browser tab away from them: updating the spec is the same motion as changing the code, the same pull request can touch both, and the same review rules apply.
This is the idea engineering teams call docs as code, and it has historically excluded product people because the tooling assumed Git fluency. We wrote a separate guide on docs as code for product managers if you want the full picture.
You don't have to learn Git to do this
This is exactly the gap specgit closes. You write in a visual editor in the browser — no Markdown, no Git commands. Saving is a commit, attributed to you, with full history you can undo back through. Highlighting a paragraph and commenting starts a real pull request thread engineers can answer from GitHub. Publishing is a merge, honoring the same required approvals your repo already enforces for code.
The spec ends up as a plain Markdown file in the repository — current for engineers, on the record for reviewers, and visible to every AI agent working in the repo. Plans start free; see pricing.
Start with one spec
Don't migrate a wiki. Pick the spec for whatever is in development right now — if it's in Google Docs, export it as Word (.docx) and specgit converts it to clean Markdown in your repo (here's how that compares to staying in Google Docs). Then let the next change to that feature update the doc in the same review as the code. That one habit is the whole fix.
Want to see the editor before signing in? There's an interactive demo on the homepage — the real editor, no sign-up needed.