From b0b2b7d3870e2ba075facced4bf01874e9a9f564 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D7=A0=CF=85=CE=B1=CE=B7=20=D7=A0=CF=85=CE=B1=CE=B7=D1=95?= =?UTF-8?q?=CF=83=CE=B7?= Date: Fri, 14 Aug 2026 23:22:50 -0700 Subject: [PATCH] docs: require that only source is tracked MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit osapi tracked netplanStatus.txt — netplan output containing the machine's MAC addresses, a routable IPv6 address, LAN subnets, and its local bridge topology. Nothing in the corpus covered it, so nothing would have caught it. The .just/ half of that cleanup was already covered: the justfiles capability says fetched files are excluded from version control. This adds the missing half. Include the trap both cases share — an ignore rule has no effect on a file that is already committed, so the file must also be untracked. That is the third time this pattern has appeared, after the bun.lock rules and the .just/remote rule. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude Opus 5 (1M context) --- .../specs/repo-standards/spec.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/openspec/changes/standardize-repository-layout/specs/repo-standards/spec.md b/openspec/changes/standardize-repository-layout/specs/repo-standards/spec.md index 63be880..dbb1fd0 100644 --- a/openspec/changes/standardize-repository-layout/specs/repo-standards/spec.md +++ b/openspec/changes/standardize-repository-layout/specs/repo-standards/spec.md @@ -175,6 +175,35 @@ name of a repository and reads as that product rather than the organization. - **WHEN** a contributor wants to report a violation - **THEN** the document names a contact they can actually reach +### Requirement: Only source is tracked + +A repository SHALL track only its source, its configuration, and its +documentation. It SHALL NOT track command output, generated artifacts fetched at +build time, or data describing a particular machine. + +Where such a file has already been committed, adding it to `.gitignore` is not +sufficient — `.gitignore` suppresses only untracked files, so the file SHALL be +removed from tracking as well. + +#### Scenario: Command output is redirected to a file + +- **WHEN** a contributor redirects a command's output to a file inside the + repository +- **THEN** it is not committed, because it describes the machine it ran on + rather than the project + +#### Scenario: Fetched build-time file + +- **WHEN** a repository fetches shared configuration at build time +- **THEN** the fetched copy is ignored rather than committed, so it cannot drift + from its source + +#### Scenario: The file is already tracked + +- **WHEN** an ignore rule is added for a file that is already committed +- **THEN** the file is also removed from tracking, because the rule alone has no + effect on it + ### Requirement: Contributing documentation location Contributing documentation SHALL live in a single `CONTRIBUTING.md` at the