From 4d5668962b22806dce041c0e6eb293e446952a81 Mon Sep 17 00:00:00 2001 From: Eric Wheeler Date: Mon, 2 Jun 2025 20:25:39 -0700 Subject: [PATCH] docs: add rules for using safeWriteJson Add concise rules for using safeWriteJson instead of JSON.stringify with file operations to ensure atomic writes and prevent data corruption. Signed-off-by: Eric Wheeler --- .roo/rules-code/use-safeWriteJson.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .roo/rules-code/use-safeWriteJson.md diff --git a/.roo/rules-code/use-safeWriteJson.md b/.roo/rules-code/use-safeWriteJson.md new file mode 100644 index 0000000000..21e42553da --- /dev/null +++ b/.roo/rules-code/use-safeWriteJson.md @@ -0,0 +1,6 @@ +# JSON File Writing Must Be Atomic + +- You MUST use `safeWriteJson(filePath: string, data: any): Promise` from `src/utils/safeWriteJson.ts` instead of `JSON.stringify` with file-write operations +- `safeWriteJson` will create parent directories if necessary, so do not call `mkdir` prior to `safeWriteJson` +- `safeWriteJson` prevents data corruption via atomic writes with locking and streams the write to minimize memory footprint +- Test files are exempt from this rule