Your client asks for the 'latest version'. You have `Proposal.pdf`, `Proposal_v2.pdf`, `Proposal_final.pdf`, `Proposal_FINAL_v3.pdf`, and `Proposal_use_this_one.pdf`. You're not sure which one is correct. Neither are they.
Five rules end this for good.
Rule 1: Versions only during active work
Drafts get versioned: `_v1`, `_v2`, `_v3`. The final version drops the number and gains a label: `_final` or `_signed`. The archive contains exactly one version: the final.
If you find yourself at `_v8`, that's a signal to consolidate — the project's drifted.
Rule 2: Date the latest, not the draft
The draft filename is `Proposal_v2.pdf`, not `Proposal_2025-08-15_v2.pdf`. Dates clutter draft filenames and don't add information. The final version gets the date: `2025-08-22_Acme_Proposal_final.pdf`.
The date marks finality, not iteration.
Rule 3: Archive old drafts in a _drafts subfolder
Once you're at `v3`, move `v1` and `v2` to a `/Working/<project>/_drafts` subfolder. They're not deleted (sometimes you need to reference them) but they're out of the way.
Keep only the current draft visible in the main folder.
Rule 4: Never edit a signed PDF
If a signed PDF needs changes, the new version is `_v1_amendment` or `_revised`. The original signed copy stays untouched. Editing a signed PDF is one of the fastest ways to lose trust.
Flatten signed copies so they can't be edited in place.
Rule 5: One final per project
Each project produces exactly one final PDF — the artefact that gets delivered, signed, archived. Any 'revision' is a new project (or sub-project), not a new version of the original.
This sounds strict. It's the difference between a clean archive and a swamp.
FAQ
What about multiple stakeholders all sending drafts?
Centralise into one working version. The PM or owner consolidates everyone's edits into `v2`, `v3`, etc. Distributed editing across multiple PDFs always ends in chaos.
Should I use semantic versioning (1.0, 1.1, 2.0)?
Overkill for most documents. Use it for documents with formal release cycles (policies, manuals). For everything else, `_v1` through `_v5` plus `_final` is enough.
How do I clean up an existing version mess?
Pick the most recent good version, rename it `_final`. Move everything else to `_drafts`. Don't try to forensically reconstruct history — accept the past, fix the future.
What about collaborators who don't follow the convention?
Send them the convention as a one-pager. Most people follow shared conventions if they exist. If not, you become the gatekeeper who renames their submissions before filing.
Versioning is a small discipline with outsized returns. Tidy your next project in Flint and feel the relief of one obvious 'latest version'.