From 226249cbb4849cedeb57458838f5b86b853abe0f Mon Sep 17 00:00:00 2001 From: Don Beckham Date: Sun, 26 Jul 2026 16:49:18 -0500 Subject: [PATCH] Note the metadata convention for generated binaries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tool-generated files carry an embedded record of the machine that produced them. The report PDF under docs/reports, for instance, still names the HTML file it was rendered from, the browser engine and version, the operating system, and the minute it was made — none of it visible in the document, all of it in a public repository. Nothing sensitive in that particular file, so it stays as it is. Writing the convention down so the next generated artifact gets stripped before it lands. --- CONTRIBUTING.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2f32c51..9ef3f87 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -63,6 +63,13 @@ green before merge. are gitignored; document new settings with safe placeholders in `.env.example`. - **Update the docs with the code.** A change that adds a route, a setting, or an operational step updates the matching document under `docs/`. +- **Strip metadata from generated binaries before committing them.** Anything + produced by a tool — a PDF rendered from HTML, an exported image — carries an + embedded record of the machine that made it: source filename, the rendering + engine and its version, the operating system, a timestamp. None of it is + visible in the document and none of it belongs in a public repository. + `exiftool -all= file.pdf` clears it, or `qpdf` if you prefer to keep the + document structure untouched. - Match the surrounding code's style; keep functions small and the modules' single responsibilities intact (see [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)).