diff --git a/tools/hygiene/audit-machine-specific-content.ts b/tools/hygiene/audit-machine-specific-content.ts index 1cfd1a818..e38af9df0 100644 --- a/tools/hygiene/audit-machine-specific-content.ts +++ b/tools/hygiene/audit-machine-specific-content.ts @@ -17,9 +17,16 @@ // - Windows home paths: `C:\Users\` (both backslash and // forward-slash forms) // -// Excluded from the scan: history surfaces (ROUND-HISTORY.md, -// hygiene-history/, DECISIONS/) and this audit script itself -// (its patterns ARE examples). +// Excluded from the scan: +// - History surfaces (ROUND-HISTORY.md, hygiene-history/, DECISIONS/) +// - This audit script itself (its patterns ARE examples). +// - launchd / service plist files under .gemini/launchd/ and +// .gemini/service/ — those are the CANONICAL home for machine- +// specific paths by design (maintainer-only artifacts with a +// maintainer-note comment explaining the paths are machine- +// specific and must be regenerated per-machine before +// `launchctl load`). Flagging them as gaps is a false-positive +// that creates ongoing audit noise. // // Usage: // bun tools/hygiene/audit-machine-specific-content.ts # summary @@ -65,7 +72,7 @@ const PATTERN_NAMES: readonly string[] = [ ]; const EXCLUDE_RE = - /^(docs\/ROUND-HISTORY\.md|docs\/hygiene-history\/|docs\/DECISIONS\/|tools\/hygiene\/audit-machine-specific-content\.(sh|ts))/; + /^(docs\/ROUND-HISTORY\.md|docs\/hygiene-history\/|docs\/DECISIONS\/|tools\/hygiene\/audit-machine-specific-content\.(sh|ts)|\.gemini\/(launchd|service)\/[^/]+\.plist$)/; const SPAWN_MAX_BUFFER = 64 * 1024 * 1024; // 64 MiB